4 <meta charset=
"utf-8" />
5 <title>BIP39 - Mnemonic Code
</title>
7 * Bootstrap v3.2
.0 (http://getbootstrap.com)
8 * Copyright
2011-
2014 Twitter, Inc.
9 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10 *//*! normalize.css v3.0
.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:
100%;-ms-text-size-adjust:
100%}body{margin:
0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:
0}[hidden],template{display:none}a{background:
0 0}a:active,a:hover{outline:
0}abbr[title]{border-bottom:
1px dotted}b,strong{font-weight:
700}dfn{font-style:italic}h1{margin:
.67em
0;font-size:
2em}mark{color:#
000;background:#ff0}small{font-size:
80%}sub,sup{position:relative;font-size:
75%;line-height:
0;vertical-align:baseline}sup{top:-
.5em}sub{bottom:-
.25em}img{border:
0}svg:not(:root){overflow:hidden}figure{margin:
1em
40px}hr{height:
0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:
1em}button,input,optgroup,select,textarea{margin:
0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:
0;border:
0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:
0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:
.35em
.625em
.75em;margin:
0 2px;border:
1px solid silver}legend{padding:
0;border:
0}textarea{overflow:auto}optgroup{font-weight:
700}table{border-spacing:
0;border-collapse:collapse}td,th{padding:
0}@media print{*{color:#
000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:
1px solid #
999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:
100%!important}p,h2,h3{orphans:
3;widows:
3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn
>.caret,.dropup
>.btn
>.caret{border-top-color:#
000!important}.label{border:
1px solid #
000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:
1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:
1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:
400;line-height:
1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\
2a"}.glyphicon-plus:before{content:"\
2b"}.glyphicon-euro:before{content:"\
20ac"}.glyphicon-minus:before{content:"\
2212"}.glyphicon-cloud:before{content:"\
2601"}.glyphicon-envelope:before{content:"\
2709"}.glyphicon-pencil:before{content:"\
270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-
5-
1:before{content:"\e191"}.glyphicon-sound-
6-
1:before{content:"\e192"}.glyphicon-sound-
7-
1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:
10px;-webkit-tap-highlight-color:rgba(
0,
0,
0,
0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:
14px;line-height:
1.42857143;color:#
333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#
428bca;text-decoration:none}a:hover,a:focus{color:#
2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}figure{margin:
0}img{vertical-align:middle}.img-responsive,.thumbnail
>img,.thumbnail a
>img,.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{display:block;width:
100% \
9;max-width:
100%;height:auto}.img-rounded{border-radius:
6px}.img-thumbnail{display:inline-block;width:
100% \
9;max-width:
100%;height:auto;padding:
4px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.img-circle{border-radius:
50%}hr{margin-top:
20px;margin-bottom:
20px;border:
0;border-top:
1px solid #eee}.sr-only{position:absolute;width:
1px;height:
1px;padding:
0;margin:-
1px;overflow:hidden;clip:rect(
0,
0,
0,
0);border:
0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:
0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:
500;line-height:
1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:
400;line-height:
1;color:#
777}h1,.h1,h2,.h2,h3,.h3{margin-top:
20px;margin-bottom:
10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:
65%}h4,.h4,h5,.h5,h6,.h6{margin-top:
10px;margin-bottom:
10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:
75%}h1,.h1{font-size:
36px}h2,.h2{font-size:
30px}h3,.h3{font-size:
24px}h4,.h4{font-size:
18px}h5,.h5{font-size:
14px}h6,.h6{font-size:
12px}p{margin:
0 0 10px}.lead{margin-bottom:
20px;font-size:
16px;font-weight:
300;line-height:
1.4}@media (min-width:
768px){.lead{font-size:
21px}}small,.small{font-size:
85%}cite{font-style:normal}mark,.mark{padding:
.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#
777}.text-primary{color:#
428bca}a.text-primary:hover{color:#
3071a9}.text-success{color:#
3c763d}a.text-success:hover{color:#
2b542c}.text-info{color:#
31708f}a.text-info:hover{color:#
245269}.text-warning{color:#
8a6d3b}a.text-warning:hover{color:#
66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#
843534}.bg-primary{color:#fff;background-color:#
428bca}a.bg-primary:hover{background-color:#
3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:
9px;margin:
40px
0 20px;border-bottom:
1px solid #eee}ul,ol{margin-top:
0;margin-bottom:
10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:
0}.list-unstyled{padding-left:
0;list-style:none}.list-inline{padding-left:
0;margin-left:-
5px;list-style:none}.list-inline
>li{display:inline-block;padding-right:
5px;padding-left:
5px}dl{margin-top:
0;margin-bottom:
20px}dt,dd{line-height:
1.42857143}dt{font-weight:
700}dd{margin-left:
0}@media (min-width:
768px){.dl-horizontal dt{float:left;width:
160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:
180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:
1px dotted #
777}.initialism{font-size:
90%;text-transform:uppercase}blockquote{padding:
10px
20px;margin:
0 0 20px;font-size:
17.5px;border-left:
5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:
0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:
80%;line-height:
1.42857143;color:#
777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\
2014 \
00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:
15px;padding-left:
0;text-align:right;border-right:
5px solid #eee;border-left:
0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\
00A0 \
2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:
20px;font-style:normal;line-height:
1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:
2px
4px;font-size:
90%;color:#c7254e;background-color:#f9f2f4;border-radius:
4px}kbd{padding:
2px
4px;font-size:
90%;color:#fff;background-color:#
333;border-radius:
3px;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25)}kbd kbd{padding:
0;font-size:
100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:
9.5px;margin:
0 0 10px;font-size:
13px;line-height:
1.42857143;color:#
333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:
1px solid #ccc;border-radius:
4px}pre code{padding:
0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:
0}.pre-scrollable{max-height:
340px;overflow-y:scroll}.container{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}@media (min-width:
768px){.container{width:
750px}}@media (min-width:
992px){.container{width:
970px}}@media (min-width:
1200px){.container{width:
1170px}}.container-fluid{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}.row{margin-right:-
15px;margin-left:-
15px}.col-xs-
1,.col-sm-
1,.col-md-
1,.col-lg-
1,.col-xs-
2,.col-sm-
2,.col-md-
2,.col-lg-
2,.col-xs-
3,.col-sm-
3,.col-md-
3,.col-lg-
3,.col-xs-
4,.col-sm-
4,.col-md-
4,.col-lg-
4,.col-xs-
5,.col-sm-
5,.col-md-
5,.col-lg-
5,.col-xs-
6,.col-sm-
6,.col-md-
6,.col-lg-
6,.col-xs-
7,.col-sm-
7,.col-md-
7,.col-lg-
7,.col-xs-
8,.col-sm-
8,.col-md-
8,.col-lg-
8,.col-xs-
9,.col-sm-
9,.col-md-
9,.col-lg-
9,.col-xs-
10,.col-sm-
10,.col-md-
10,.col-lg-
10,.col-xs-
11,.col-sm-
11,.col-md-
11,.col-lg-
11,.col-xs-
12,.col-sm-
12,.col-md-
12,.col-lg-
12{position:relative;min-height:
1px;padding-right:
15px;padding-left:
15px}.col-xs-
1,.col-xs-
2,.col-xs-
3,.col-xs-
4,.col-xs-
5,.col-xs-
6,.col-xs-
7,.col-xs-
8,.col-xs-
9,.col-xs-
10,.col-xs-
11,.col-xs-
12{float:left}.col-xs-
12{width:
100%}.col-xs-
11{width:
91.66666667%}.col-xs-
10{width:
83.33333333%}.col-xs-
9{width:
75%}.col-xs-
8{width:
66.66666667%}.col-xs-
7{width:
58.33333333%}.col-xs-
6{width:
50%}.col-xs-
5{width:
41.66666667%}.col-xs-
4{width:
33.33333333%}.col-xs-
3{width:
25%}.col-xs-
2{width:
16.66666667%}.col-xs-
1{width:
8.33333333%}.col-xs-pull-
12{right:
100%}.col-xs-pull-
11{right:
91.66666667%}.col-xs-pull-
10{right:
83.33333333%}.col-xs-pull-
9{right:
75%}.col-xs-pull-
8{right:
66.66666667%}.col-xs-pull-
7{right:
58.33333333%}.col-xs-pull-
6{right:
50%}.col-xs-pull-
5{right:
41.66666667%}.col-xs-pull-
4{right:
33.33333333%}.col-xs-pull-
3{right:
25%}.col-xs-pull-
2{right:
16.66666667%}.col-xs-pull-
1{right:
8.33333333%}.col-xs-pull-
0{right:auto}.col-xs-push-
12{left:
100%}.col-xs-push-
11{left:
91.66666667%}.col-xs-push-
10{left:
83.33333333%}.col-xs-push-
9{left:
75%}.col-xs-push-
8{left:
66.66666667%}.col-xs-push-
7{left:
58.33333333%}.col-xs-push-
6{left:
50%}.col-xs-push-
5{left:
41.66666667%}.col-xs-push-
4{left:
33.33333333%}.col-xs-push-
3{left:
25%}.col-xs-push-
2{left:
16.66666667%}.col-xs-push-
1{left:
8.33333333%}.col-xs-push-
0{left:auto}.col-xs-offset-
12{margin-left:
100%}.col-xs-offset-
11{margin-left:
91.66666667%}.col-xs-offset-
10{margin-left:
83.33333333%}.col-xs-offset-
9{margin-left:
75%}.col-xs-offset-
8{margin-left:
66.66666667%}.col-xs-offset-
7{margin-left:
58.33333333%}.col-xs-offset-
6{margin-left:
50%}.col-xs-offset-
5{margin-left:
41.66666667%}.col-xs-offset-
4{margin-left:
33.33333333%}.col-xs-offset-
3{margin-left:
25%}.col-xs-offset-
2{margin-left:
16.66666667%}.col-xs-offset-
1{margin-left:
8.33333333%}.col-xs-offset-
0{margin-left:
0}@media (min-width:
768px){.col-sm-
1,.col-sm-
2,.col-sm-
3,.col-sm-
4,.col-sm-
5,.col-sm-
6,.col-sm-
7,.col-sm-
8,.col-sm-
9,.col-sm-
10,.col-sm-
11,.col-sm-
12{float:left}.col-sm-
12{width:
100%}.col-sm-
11{width:
91.66666667%}.col-sm-
10{width:
83.33333333%}.col-sm-
9{width:
75%}.col-sm-
8{width:
66.66666667%}.col-sm-
7{width:
58.33333333%}.col-sm-
6{width:
50%}.col-sm-
5{width:
41.66666667%}.col-sm-
4{width:
33.33333333%}.col-sm-
3{width:
25%}.col-sm-
2{width:
16.66666667%}.col-sm-
1{width:
8.33333333%}.col-sm-pull-
12{right:
100%}.col-sm-pull-
11{right:
91.66666667%}.col-sm-pull-
10{right:
83.33333333%}.col-sm-pull-
9{right:
75%}.col-sm-pull-
8{right:
66.66666667%}.col-sm-pull-
7{right:
58.33333333%}.col-sm-pull-
6{right:
50%}.col-sm-pull-
5{right:
41.66666667%}.col-sm-pull-
4{right:
33.33333333%}.col-sm-pull-
3{right:
25%}.col-sm-pull-
2{right:
16.66666667%}.col-sm-pull-
1{right:
8.33333333%}.col-sm-pull-
0{right:auto}.col-sm-push-
12{left:
100%}.col-sm-push-
11{left:
91.66666667%}.col-sm-push-
10{left:
83.33333333%}.col-sm-push-
9{left:
75%}.col-sm-push-
8{left:
66.66666667%}.col-sm-push-
7{left:
58.33333333%}.col-sm-push-
6{left:
50%}.col-sm-push-
5{left:
41.66666667%}.col-sm-push-
4{left:
33.33333333%}.col-sm-push-
3{left:
25%}.col-sm-push-
2{left:
16.66666667%}.col-sm-push-
1{left:
8.33333333%}.col-sm-push-
0{left:auto}.col-sm-offset-
12{margin-left:
100%}.col-sm-offset-
11{margin-left:
91.66666667%}.col-sm-offset-
10{margin-left:
83.33333333%}.col-sm-offset-
9{margin-left:
75%}.col-sm-offset-
8{margin-left:
66.66666667%}.col-sm-offset-
7{margin-left:
58.33333333%}.col-sm-offset-
6{margin-left:
50%}.col-sm-offset-
5{margin-left:
41.66666667%}.col-sm-offset-
4{margin-left:
33.33333333%}.col-sm-offset-
3{margin-left:
25%}.col-sm-offset-
2{margin-left:
16.66666667%}.col-sm-offset-
1{margin-left:
8.33333333%}.col-sm-offset-
0{margin-left:
0}}@media (min-width:
992px){.col-md-
1,.col-md-
2,.col-md-
3,.col-md-
4,.col-md-
5,.col-md-
6,.col-md-
7,.col-md-
8,.col-md-
9,.col-md-
10,.col-md-
11,.col-md-
12{float:left}.col-md-
12{width:
100%}.col-md-
11{width:
91.66666667%}.col-md-
10{width:
83.33333333%}.col-md-
9{width:
75%}.col-md-
8{width:
66.66666667%}.col-md-
7{width:
58.33333333%}.col-md-
6{width:
50%}.col-md-
5{width:
41.66666667%}.col-md-
4{width:
33.33333333%}.col-md-
3{width:
25%}.col-md-
2{width:
16.66666667%}.col-md-
1{width:
8.33333333%}.col-md-pull-
12{right:
100%}.col-md-pull-
11{right:
91.66666667%}.col-md-pull-
10{right:
83.33333333%}.col-md-pull-
9{right:
75%}.col-md-pull-
8{right:
66.66666667%}.col-md-pull-
7{right:
58.33333333%}.col-md-pull-
6{right:
50%}.col-md-pull-
5{right:
41.66666667%}.col-md-pull-
4{right:
33.33333333%}.col-md-pull-
3{right:
25%}.col-md-pull-
2{right:
16.66666667%}.col-md-pull-
1{right:
8.33333333%}.col-md-pull-
0{right:auto}.col-md-push-
12{left:
100%}.col-md-push-
11{left:
91.66666667%}.col-md-push-
10{left:
83.33333333%}.col-md-push-
9{left:
75%}.col-md-push-
8{left:
66.66666667%}.col-md-push-
7{left:
58.33333333%}.col-md-push-
6{left:
50%}.col-md-push-
5{left:
41.66666667%}.col-md-push-
4{left:
33.33333333%}.col-md-push-
3{left:
25%}.col-md-push-
2{left:
16.66666667%}.col-md-push-
1{left:
8.33333333%}.col-md-push-
0{left:auto}.col-md-offset-
12{margin-left:
100%}.col-md-offset-
11{margin-left:
91.66666667%}.col-md-offset-
10{margin-left:
83.33333333%}.col-md-offset-
9{margin-left:
75%}.col-md-offset-
8{margin-left:
66.66666667%}.col-md-offset-
7{margin-left:
58.33333333%}.col-md-offset-
6{margin-left:
50%}.col-md-offset-
5{margin-left:
41.66666667%}.col-md-offset-
4{margin-left:
33.33333333%}.col-md-offset-
3{margin-left:
25%}.col-md-offset-
2{margin-left:
16.66666667%}.col-md-offset-
1{margin-left:
8.33333333%}.col-md-offset-
0{margin-left:
0}}@media (min-width:
1200px){.col-lg-
1,.col-lg-
2,.col-lg-
3,.col-lg-
4,.col-lg-
5,.col-lg-
6,.col-lg-
7,.col-lg-
8,.col-lg-
9,.col-lg-
10,.col-lg-
11,.col-lg-
12{float:left}.col-lg-
12{width:
100%}.col-lg-
11{width:
91.66666667%}.col-lg-
10{width:
83.33333333%}.col-lg-
9{width:
75%}.col-lg-
8{width:
66.66666667%}.col-lg-
7{width:
58.33333333%}.col-lg-
6{width:
50%}.col-lg-
5{width:
41.66666667%}.col-lg-
4{width:
33.33333333%}.col-lg-
3{width:
25%}.col-lg-
2{width:
16.66666667%}.col-lg-
1{width:
8.33333333%}.col-lg-pull-
12{right:
100%}.col-lg-pull-
11{right:
91.66666667%}.col-lg-pull-
10{right:
83.33333333%}.col-lg-pull-
9{right:
75%}.col-lg-pull-
8{right:
66.66666667%}.col-lg-pull-
7{right:
58.33333333%}.col-lg-pull-
6{right:
50%}.col-lg-pull-
5{right:
41.66666667%}.col-lg-pull-
4{right:
33.33333333%}.col-lg-pull-
3{right:
25%}.col-lg-pull-
2{right:
16.66666667%}.col-lg-pull-
1{right:
8.33333333%}.col-lg-pull-
0{right:auto}.col-lg-push-
12{left:
100%}.col-lg-push-
11{left:
91.66666667%}.col-lg-push-
10{left:
83.33333333%}.col-lg-push-
9{left:
75%}.col-lg-push-
8{left:
66.66666667%}.col-lg-push-
7{left:
58.33333333%}.col-lg-push-
6{left:
50%}.col-lg-push-
5{left:
41.66666667%}.col-lg-push-
4{left:
33.33333333%}.col-lg-push-
3{left:
25%}.col-lg-push-
2{left:
16.66666667%}.col-lg-push-
1{left:
8.33333333%}.col-lg-push-
0{left:auto}.col-lg-offset-
12{margin-left:
100%}.col-lg-offset-
11{margin-left:
91.66666667%}.col-lg-offset-
10{margin-left:
83.33333333%}.col-lg-offset-
9{margin-left:
75%}.col-lg-offset-
8{margin-left:
66.66666667%}.col-lg-offset-
7{margin-left:
58.33333333%}.col-lg-offset-
6{margin-left:
50%}.col-lg-offset-
5{margin-left:
41.66666667%}.col-lg-offset-
4{margin-left:
33.33333333%}.col-lg-offset-
3{margin-left:
25%}.col-lg-offset-
2{margin-left:
16.66666667%}.col-lg-offset-
1{margin-left:
8.33333333%}.col-lg-offset-
0{margin-left:
0}}table{background-color:transparent}th{text-align:left}.table{width:
100%;max-width:
100%;margin-bottom:
20px}.table
>thead
>tr
>th,.table
>tbody
>tr
>th,.table
>tfoot
>tr
>th,.table
>thead
>tr
>td,.table
>tbody
>tr
>td,.table
>tfoot
>tr
>td{padding:
8px;line-height:
1.42857143;vertical-align:top;border-top:
1px solid #ddd}.table
>thead
>tr
>th{vertical-align:bottom;border-bottom:
2px solid #ddd}.table
>caption+thead
>tr:first-child
>th,.table
>colgroup+thead
>tr:first-child
>th,.table
>thead:first-child
>tr:first-child
>th,.table
>caption+thead
>tr:first-child
>td,.table
>colgroup+thead
>tr:first-child
>td,.table
>thead:first-child
>tr:first-child
>td{border-top:
0}.table
>tbody+tbody{border-top:
2px solid #ddd}.table .table{background-color:#fff}.table-condensed
>thead
>tr
>th,.table-condensed
>tbody
>tr
>th,.table-condensed
>tfoot
>tr
>th,.table-condensed
>thead
>tr
>td,.table-condensed
>tbody
>tr
>td,.table-condensed
>tfoot
>tr
>td{padding:
5px}.table-bordered{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>tbody
>tr
>th,.table-bordered
>tfoot
>tr
>th,.table-bordered
>thead
>tr
>td,.table-bordered
>tbody
>tr
>td,.table-bordered
>tfoot
>tr
>td{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>thead
>tr
>td{border-bottom-width:
2px}.table-striped
>tbody
>tr:nth-child(odd)
>td,.table-striped
>tbody
>tr:nth-child(odd)
>th{background-color:#f9f9f9}.table-hover
>tbody
>tr:hover
>td,.table-hover
>tbody
>tr:hover
>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table
>thead
>tr
>td.active,.table
>tbody
>tr
>td.active,.table
>tfoot
>tr
>td.active,.table
>thead
>tr
>th.active,.table
>tbody
>tr
>th.active,.table
>tfoot
>tr
>th.active,.table
>thead
>tr.active
>td,.table
>tbody
>tr.active
>td,.table
>tfoot
>tr.active
>td,.table
>thead
>tr.active
>th,.table
>tbody
>tr.active
>th,.table
>tfoot
>tr.active
>th{background-color:#f5f5f5}.table-hover
>tbody
>tr
>td.active:hover,.table-hover
>tbody
>tr
>th.active:hover,.table-hover
>tbody
>tr.active:hover
>td,.table-hover
>tbody
>tr:hover
>.active,.table-hover
>tbody
>tr.active:hover
>th{background-color:#e8e8e8}.table
>thead
>tr
>td.success,.table
>tbody
>tr
>td.success,.table
>tfoot
>tr
>td.success,.table
>thead
>tr
>th.success,.table
>tbody
>tr
>th.success,.table
>tfoot
>tr
>th.success,.table
>thead
>tr.success
>td,.table
>tbody
>tr.success
>td,.table
>tfoot
>tr.success
>td,.table
>thead
>tr.success
>th,.table
>tbody
>tr.success
>th,.table
>tfoot
>tr.success
>th{background-color:#dff0d8}.table-hover
>tbody
>tr
>td.success:hover,.table-hover
>tbody
>tr
>th.success:hover,.table-hover
>tbody
>tr.success:hover
>td,.table-hover
>tbody
>tr:hover
>.success,.table-hover
>tbody
>tr.success:hover
>th{background-color:#d0e9c6}.table
>thead
>tr
>td.info,.table
>tbody
>tr
>td.info,.table
>tfoot
>tr
>td.info,.table
>thead
>tr
>th.info,.table
>tbody
>tr
>th.info,.table
>tfoot
>tr
>th.info,.table
>thead
>tr.info
>td,.table
>tbody
>tr.info
>td,.table
>tfoot
>tr.info
>td,.table
>thead
>tr.info
>th,.table
>tbody
>tr.info
>th,.table
>tfoot
>tr.info
>th{background-color:#d9edf7}.table-hover
>tbody
>tr
>td.info:hover,.table-hover
>tbody
>tr
>th.info:hover,.table-hover
>tbody
>tr.info:hover
>td,.table-hover
>tbody
>tr:hover
>.info,.table-hover
>tbody
>tr.info:hover
>th{background-color:#c4e3f3}.table
>thead
>tr
>td.warning,.table
>tbody
>tr
>td.warning,.table
>tfoot
>tr
>td.warning,.table
>thead
>tr
>th.warning,.table
>tbody
>tr
>th.warning,.table
>tfoot
>tr
>th.warning,.table
>thead
>tr.warning
>td,.table
>tbody
>tr.warning
>td,.table
>tfoot
>tr.warning
>td,.table
>thead
>tr.warning
>th,.table
>tbody
>tr.warning
>th,.table
>tfoot
>tr.warning
>th{background-color:#fcf8e3}.table-hover
>tbody
>tr
>td.warning:hover,.table-hover
>tbody
>tr
>th.warning:hover,.table-hover
>tbody
>tr.warning:hover
>td,.table-hover
>tbody
>tr:hover
>.warning,.table-hover
>tbody
>tr.warning:hover
>th{background-color:#faf2cc}.table
>thead
>tr
>td.danger,.table
>tbody
>tr
>td.danger,.table
>tfoot
>tr
>td.danger,.table
>thead
>tr
>th.danger,.table
>tbody
>tr
>th.danger,.table
>tfoot
>tr
>th.danger,.table
>thead
>tr.danger
>td,.table
>tbody
>tr.danger
>td,.table
>tfoot
>tr.danger
>td,.table
>thead
>tr.danger
>th,.table
>tbody
>tr.danger
>th,.table
>tfoot
>tr.danger
>th{background-color:#f2dede}.table-hover
>tbody
>tr
>td.danger:hover,.table-hover
>tbody
>tr
>th.danger:hover,.table-hover
>tbody
>tr.danger:hover
>td,.table-hover
>tbody
>tr:hover
>.danger,.table-hover
>tbody
>tr.danger:hover
>th{background-color:#ebcccc}@media screen and (max-width:
767px){.table-responsive{width:
100%;margin-bottom:
15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:
1px solid #ddd}.table-responsive
>.table{margin-bottom:
0}.table-responsive
>.table
>thead
>tr
>th,.table-responsive
>.table
>tbody
>tr
>th,.table-responsive
>.table
>tfoot
>tr
>th,.table-responsive
>.table
>thead
>tr
>td,.table-responsive
>.table
>tbody
>tr
>td,.table-responsive
>.table
>tfoot
>tr
>td{white-space:nowrap}.table-responsive
>.table-bordered{border:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th,.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td{border-bottom:
0}}fieldset{min-width:
0;padding:
0;margin:
0;border:
0}legend{display:block;width:
100%;padding:
0;margin-bottom:
20px;font-size:
21px;line-height:inherit;color:#
333;border:
0;border-bottom:
1px solid #e5e5e5}label{display:inline-block;max-width:
100%;margin-bottom:
5px;font-weight:
700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:
4px
0 0;margin-top:
1px \
9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:
100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}output{display:block;padding-top:
7px;font-size:
14px;line-height:
1.42857143;color:#
555}.form-control{display:block;width:
100%;height:
34px;padding:
6px
12px;font-size:
14px;line-height:
1.42857143;color:#
555;background-color:#fff;background-image:none;border:
1px solid #ccc;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);-webkit-transition:border-color ease-in-out
.15s,-webkit-box-shadow ease-in-out
.15s;-o-transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s;transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s}.form-control:focus{border-color:#
66afe9;outline:
0;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6)}.form-control::-moz-placeholder{color:#
777;opacity:
1}.form-control:-ms-input-placeholder{color:#
777}.form-control::-webkit-input-placeholder{color:#
777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:
1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:
34px;line-height:
1.42857143 \
0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:
30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:
46px}.form-group{margin-bottom:
15px}.radio,.checkbox{position:relative;display:block;min-height:
20px;margin-top:
10px;margin-bottom:
10px}.radio label,.checkbox label{padding-left:
20px;margin-bottom:
0;font-weight:
400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:
4px \
9;margin-left:-
20px}.radio+.radio,.checkbox+.checkbox{margin-top:-
5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:
20px;margin-bottom:
0;font-weight:
400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:
0;margin-left:
10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:
7px;padding-bottom:
7px;margin-bottom:
0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:
0;padding-left:
0}.input-sm,.form-horizontal .form-group-sm .form-control{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-sm{height:
30px;line-height:
30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-lg{height:
46px;line-height:
46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:
42.5px}.form-control-feedback{position:absolute;top:
25px;right:
0;z-index:
2;display:block;width:
34px;height:
34px;line-height:
34px;text-align:center}.input-lg+.form-control-feedback{width:
46px;height:
46px;line-height:
46px}.input-sm+.form-control-feedback{width:
30px;height:
30px;line-height:
30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#
3c763d}.has-success .form-control{border-color:#
3c763d;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-success .form-control:focus{border-color:#
2b542c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168}.has-success .input-group-addon{color:#
3c763d;background-color:#dff0d8;border-color:#
3c763d}.has-success .form-control-feedback{color:#
3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#
8a6d3b}.has-warning .form-control{border-color:#
8a6d3b;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-warning .form-control:focus{border-color:#
66512c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b}.has-warning .input-group-addon{color:#
8a6d3b;background-color:#fcf8e3;border-color:#
8a6d3b}.has-warning .form-control-feedback{color:#
8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-error .form-control:focus{border-color:#
843534;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:
0}.help-block{display:block;margin-top:
5px;margin-bottom:
10px;color:#
737373}@media (min-width:
768px){.form-inline .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group
>.form-control{width:
100%}.form-inline .control-label{margin-bottom:
0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:
0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:
0}.form-inline .has-feedback .form-control-feedback{top:
0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:
7px;margin-top:
0;margin-bottom:
0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:
27px}.form-horizontal .form-group{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.form-horizontal .control-label{padding-top:
7px;margin-bottom:
0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:
0;right:
15px}@media (min-width:
768px){.form-horizontal .form-group-lg .control-label{padding-top:
14.3px}}@media (min-width:
768px){.form-horizontal .form-group-sm .control-label{padding-top:
6px}}.btn{display:inline-block;padding:
6px
12px;margin-bottom:
0;font-size:
14px;font-weight:
400;line-height:
1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:
1px solid transparent;border-radius:
4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}.btn:hover,.btn:focus{color:#
333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:
0;-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=
65);-webkit-box-shadow:none;box-shadow:none;opacity:
.65}.btn-default{color:#
333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{color:#
333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#
333}.btn-primary{color:#fff;background-color:#
428bca;border-color:#
357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{color:#fff;background-color:#
3071a9;border-color:#
285e8e}.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#
428bca;border-color:#
357ebd}.btn-primary .badge{color:#
428bca;background-color:#fff}.btn-success{color:#fff;background-color:#
5cb85c;border-color:#
4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{color:#fff;background-color:#
449d44;border-color:#
398439}.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#
5cb85c;border-color:#
4cae4c}.btn-success .badge{color:#
5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#
5bc0de;border-color:#
46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{color:#fff;background-color:#
31b0d5;border-color:#
269abc}.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#
5bc0de;border-color:#
46b8da}.btn-info .badge{color:#
5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:
400;color:#
428bca;cursor:pointer;border-radius:
0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#
2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#
777;text-decoration:none}.btn-lg,.btn-group-lg
>.btn{padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}.btn-sm,.btn-group-sm
>.btn{padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-xs,.btn-group-xs
>.btn{padding:
1px
5px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-block{display:block;width:
100%}.btn-block+.btn-block{margin-top:
5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:
100%}.fade{opacity:
0;-webkit-transition:opacity
.15s linear;-o-transition:opacity
.15s linear;transition:opacity
.15s linear}.fade.in{opacity:
1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:
0;overflow:hidden;-webkit-transition:height
.35s ease;-o-transition:height
.35s ease;transition:height
.35s ease}.caret{display:inline-block;width:
0;height:
0;margin-left:
2px;vertical-align:middle;border-top:
4px solid;border-right:
4px solid transparent;border-left:
4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:
0}.dropdown-menu{position:absolute;top:
100%;left:
0;z-index:
1000;display:none;float:left;min-width:
160px;padding:
5px
0;margin:
2px
0 0;font-size:
14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.15);border-radius:
4px;-webkit-box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175);box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175)}.dropdown-menu.pull-right{right:
0;left:auto}.dropdown-menu .divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu
>li
>a{display:block;padding:
3px
20px;clear:both;font-weight:
400;line-height:
1.42857143;color:#
333;white-space:nowrap}.dropdown-menu
>li
>a:hover,.dropdown-menu
>li
>a:focus{color:#
262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu
>.active
>a,.dropdown-menu
>.active
>a:hover,.dropdown-menu
>.active
>a:focus{color:#fff;text-decoration:none;background-color:#
428bca;outline:
0}.dropdown-menu
>.disabled
>a,.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{color:#
777}.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open
>.dropdown-menu{display:block}.open
>a{outline:
0}.dropdown-menu-right{right:
0;left:auto}.dropdown-menu-left{right:auto;left:
0}.dropdown-header{display:block;padding:
3px
20px;font-size:
12px;line-height:
1.42857143;color:#
777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
990}.pull-right
>.dropdown-menu{right:
0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:
0;border-bottom:
4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:
100%;margin-bottom:
1px}@media (min-width:
768px){.navbar-right .dropdown-menu{right:
0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:
0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group
>.btn,.btn-group-vertical
>.btn{position:relative;float:left}.btn-group
>.btn:hover,.btn-group-vertical
>.btn:hover,.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus,.btn-group
>.btn:active,.btn-group-vertical
>.btn:active,.btn-group
>.btn.active,.btn-group-vertical
>.btn.active{z-index:
2}.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus{outline:
0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-
1px}.btn-toolbar{margin-left:-
5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar
>.btn,.btn-toolbar
>.btn-group,.btn-toolbar
>.input-group{margin-left:
5px}.btn-group
>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:
0}.btn-group
>.btn:first-child{margin-left:
0}.btn-group
>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn:last-child:not(:first-child),.btn-group
>.dropdown-toggle:not(:first-child){border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group
>.btn-group{float:left}.btn-group
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group
>.btn-group:first-child
>.btn:last-child,.btn-group
>.btn-group:first-child
>.dropdown-toggle{border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn-group:last-child
>.btn:first-child{border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:
0}.btn-group
>.btn+.dropdown-toggle{padding-right:
8px;padding-left:
8px}.btn-group
>.btn-lg+.dropdown-toggle{padding-right:
12px;padding-left:
12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:
0}.btn-lg .caret{border-width:
5px
5px
0;border-bottom-width:
0}.dropup .btn-lg .caret{border-width:
0 5px
5px}.btn-group-vertical
>.btn,.btn-group-vertical
>.btn-group,.btn-group-vertical
>.btn-group
>.btn{display:block;float:none;width:
100%;max-width:
100%}.btn-group-vertical
>.btn-group
>.btn{float:none}.btn-group-vertical
>.btn+.btn,.btn-group-vertical
>.btn+.btn-group,.btn-group-vertical
>.btn-group+.btn,.btn-group-vertical
>.btn-group+.btn-group{margin-top:-
1px;margin-left:
0}.btn-group-vertical
>.btn:not(:first-child):not(:last-child){border-radius:
0}.btn-group-vertical
>.btn:first-child:not(:last-child){border-top-right-radius:
4px;border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn:last-child:not(:first-child){border-top-left-radius:
0;border-top-right-radius:
0;border-bottom-left-radius:
4px}.btn-group-vertical
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.btn:last-child,.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.dropdown-toggle{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn-group:last-child:not(:first-child)
>.btn:first-child{border-top-left-radius:
0;border-top-right-radius:
0}.btn-group-justified{display:table;width:
100%;table-layout:fixed;border-collapse:separate}.btn-group-justified
>.btn,.btn-group-justified
>.btn-group{display:table-cell;float:none;width:
1%}.btn-group-justified
>.btn-group .btn{width:
100%}.btn-group-justified
>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]
>.btn
>input[type=radio],[data-toggle=buttons]
>.btn
>input[type=checkbox]{position:absolute;z-index:-
1;filter:alpha(opacity=
0);opacity:
0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:
0;padding-left:
0}.input-group .form-control{position:relative;z-index:
2;float:left;width:
100%;margin-bottom:
0}.input-group-lg
>.form-control,.input-group-lg
>.input-group-addon,.input-group-lg
>.input-group-btn
>.btn{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-group-lg
>.form-control,select.input-group-lg
>.input-group-addon,select.input-group-lg
>.input-group-btn
>.btn{height:
46px;line-height:
46px}textarea.input-group-lg
>.form-control,textarea.input-group-lg
>.input-group-addon,textarea.input-group-lg
>.input-group-btn
>.btn,select[multiple].input-group-lg
>.form-control,select[multiple].input-group-lg
>.input-group-addon,select[multiple].input-group-lg
>.input-group-btn
>.btn{height:auto}.input-group-sm
>.form-control,.input-group-sm
>.input-group-addon,.input-group-sm
>.input-group-btn
>.btn{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-group-sm
>.form-control,select.input-group-sm
>.input-group-addon,select.input-group-sm
>.input-group-btn
>.btn{height:
30px;line-height:
30px}textarea.input-group-sm
>.form-control,textarea.input-group-sm
>.input-group-addon,textarea.input-group-sm
>.input-group-btn
>.btn,select[multiple].input-group-sm
>.form-control,select[multiple].input-group-sm
>.input-group-addon,select[multiple].input-group-sm
>.input-group-btn
>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:
0}.input-group-addon,.input-group-btn{width:
1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:
6px
12px;font-size:
14px;font-weight:
400;line-height:
1;color:#
555;text-align:center;background-color:#eee;border:
1px solid #ccc;border-radius:
4px}.input-group-addon.input-sm{padding:
5px
10px;font-size:
12px;border-radius:
3px}.input-group-addon.input-lg{padding:
10px
16px;font-size:
18px;border-radius:
6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:
0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group
>.btn,.input-group-btn:first-child
>.dropdown-toggle,.input-group-btn:last-child
>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child
>.btn-group:not(:last-child)
>.btn{border-top-right-radius:
0;border-bottom-right-radius:
0}.input-group-addon:first-child{border-right:
0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group
>.btn,.input-group-btn:last-child
>.dropdown-toggle,.input-group-btn:first-child
>.btn:not(:first-child),.input-group-btn:first-child
>.btn-group:not(:first-child)
>.btn{border-top-left-radius:
0;border-bottom-left-radius:
0}.input-group-addon:last-child{border-left:
0}.input-group-btn{position:relative;font-size:
0;white-space:nowrap}.input-group-btn
>.btn{position:relative}.input-group-btn
>.btn+.btn{margin-left:-
1px}.input-group-btn
>.btn:hover,.input-group-btn
>.btn:focus,.input-group-btn
>.btn:active{z-index:
2}.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group{margin-right:-
1px}.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group{margin-left:-
1px}.nav{padding-left:
0;margin-bottom:
0;list-style:none}.nav
>li{position:relative;display:block}.nav
>li
>a{position:relative;display:block;padding:
10px
15px}.nav
>li
>a:hover,.nav
>li
>a:focus{text-decoration:none;background-color:#eee}.nav
>li.disabled
>a{color:#
777}.nav
>li.disabled
>a:hover,.nav
>li.disabled
>a:focus{color:#
777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open
>a,.nav .open
>a:hover,.nav .open
>a:focus{background-color:#eee;border-color:#
428bca}.nav .nav-divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.nav
>li
>a
>img{max-width:none}.nav-tabs{border-bottom:
1px solid #ddd}.nav-tabs
>li{float:left;margin-bottom:-
1px}.nav-tabs
>li
>a{margin-right:
2px;line-height:
1.42857143;border:
1px solid transparent;border-radius:
4px
4px
0 0}.nav-tabs
>li
>a:hover{border-color:#eee #eee #ddd}.nav-tabs
>li.active
>a,.nav-tabs
>li.active
>a:hover,.nav-tabs
>li.active
>a:focus{color:#
555;cursor:default;background-color:#fff;border:
1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:
100%;border-bottom:
0}.nav-tabs.nav-justified
>li{float:none}.nav-tabs.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-tabs.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-tabs.nav-justified
>li{display:table-cell;width:
1%}.nav-tabs.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs.nav-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs.nav-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border-bottom-color:#fff}}.nav-pills
>li{float:left}.nav-pills
>li
>a{border-radius:
4px}.nav-pills
>li+li{margin-left:
2px}.nav-pills
>li.active
>a,.nav-pills
>li.active
>a:hover,.nav-pills
>li.active
>a:focus{color:#fff;background-color:#
428bca}.nav-stacked
>li{float:none}.nav-stacked
>li+li{margin-top:
2px;margin-left:
0}.nav-justified{width:
100%}.nav-justified
>li{float:none}.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-justified
>li{display:table-cell;width:
1%}.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs-justified{border-bottom:
0}.nav-tabs-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border-bottom-color:#fff}}.tab-content
>.tab-pane{display:none}.tab-content
>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-
1px;border-top-left-radius:
0;border-top-right-radius:
0}.navbar{position:relative;min-height:
50px;margin-bottom:
20px;border:
1px solid transparent}@media (min-width:
768px){.navbar{border-radius:
4px}}@media (min-width:
768px){.navbar-header{float:left}}.navbar-collapse{padding-right:
15px;padding-left:
15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:
768px){.navbar-collapse{width:auto;border-top:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:
0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:
0;padding-left:
0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
340px}@media (max-width:
480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
200px}}.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:
0;margin-left:
0}}.navbar-static-top{z-index:
1000;border-width:
0 0 1px}@media (min-width:
768px){.navbar-static-top{border-radius:
0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:
0;left:
0;z-index:
1030;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@media (min-width:
768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:
0}}.navbar-fixed-top{top:
0;border-width:
0 0 1px}.navbar-fixed-bottom{bottom:
0;margin-bottom:
0;border-width:
1px
0 0}.navbar-brand{float:left;height:
50px;padding:
15px
15px;font-size:
18px;line-height:
20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:
768px){.navbar
>.container .navbar-brand,.navbar
>.container-fluid .navbar-brand{margin-left:-
15px}}.navbar-toggle{position:relative;float:right;padding:
9px
10px;margin-top:
8px;margin-right:
15px;margin-bottom:
8px;background-color:transparent;background-image:none;border:
1px solid transparent;border-radius:
4px}.navbar-toggle:focus{outline:
0}.navbar-toggle .icon-bar{display:block;width:
22px;height:
2px;border-radius:
1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:
4px}@media (min-width:
768px){.navbar-toggle{display:none}}.navbar-nav{margin:
7.5px -
15px}.navbar-nav
>li
>a{padding-top:
10px;padding-bottom:
10px;line-height:
20px}@media (max-width:
767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:
0;background-color:transparent;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu
>li
>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:
5px
15px
5px
25px}.navbar-nav .open .dropdown-menu
>li
>a{line-height:
20px}.navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-nav .open .dropdown-menu
>li
>a:focus{background-image:none}}@media (min-width:
768px){.navbar-nav{float:left;margin:
0}.navbar-nav
>li{float:left}.navbar-nav
>li
>a{padding-top:
15px;padding-bottom:
15px}.navbar-nav.navbar-right:last-child{margin-right:-
15px}}@media (min-width:
768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:
10px
15px;margin-top:
8px;margin-right:-
15px;margin-bottom:
8px;margin-left:-
15px;border-top:
1px solid transparent;border-bottom:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1)}@media (min-width:
768px){.navbar-form .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group
>.form-control{width:
100%}.navbar-form .control-label{margin-bottom:
0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:
0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:
0}.navbar-form .has-feedback .form-control-feedback{top:
0}}@media (max-width:
767px){.navbar-form .form-group{margin-bottom:
5px}}@media (min-width:
768px){.navbar-form{width:auto;padding-top:
0;padding-bottom:
0;margin-right:
0;margin-left:
0;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-
15px}}.navbar-nav
>li
>.dropdown-menu{margin-top:
0;border-top-left-radius:
0;border-top-right-radius:
0}.navbar-fixed-bottom .navbar-nav
>li
>.dropdown-menu{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.navbar-btn{margin-top:
8px;margin-bottom:
8px}.navbar-btn.btn-sm{margin-top:
10px;margin-bottom:
10px}.navbar-btn.btn-xs{margin-top:
14px;margin-bottom:
14px}.navbar-text{margin-top:
15px;margin-bottom:
15px}@media (min-width:
768px){.navbar-text{float:left;margin-right:
15px;margin-left:
15px}.navbar-text.navbar-right:last-child{margin-right:
0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#
777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#
5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#
777}.navbar-default .navbar-nav
>li
>a{color:#
777}.navbar-default .navbar-nav
>li
>a:hover,.navbar-default .navbar-nav
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav
>.active
>a,.navbar-default .navbar-nav
>.active
>a:hover,.navbar-default .navbar-nav
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav
>.disabled
>a,.navbar-default .navbar-nav
>.disabled
>a:hover,.navbar-default .navbar-nav
>.disabled
>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#
888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav
>.open
>a,.navbar-default .navbar-nav
>.open
>a:hover,.navbar-default .navbar-nav
>.open
>a:focus{color:#
555;background-color:#e7e7e7}@media (max-width:
767px){.navbar-default .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#
777}.navbar-default .navbar-link:hover{color:#
333}.navbar-default .btn-link{color:#
777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#
333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#
222;border-color:#
080808}.navbar-inverse .navbar-brand{color:#
777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#
777}.navbar-inverse .navbar-nav
>li
>a{color:#
777}.navbar-inverse .navbar-nav
>li
>a:hover,.navbar-inverse .navbar-nav
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav
>.active
>a,.navbar-inverse .navbar-nav
>.active
>a:hover,.navbar-inverse .navbar-nav
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav
>.disabled
>a,.navbar-inverse .navbar-nav
>.disabled
>a:hover,.navbar-inverse .navbar-nav
>.disabled
>a:focus{color:#
444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#
333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#
333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#
101010}.navbar-inverse .navbar-nav
>.open
>a,.navbar-inverse .navbar-nav
>.open
>a:hover,.navbar-inverse .navbar-nav
>.open
>a:focus{color:#fff;background-color:#
080808}@media (max-width:
767px){.navbar-inverse .navbar-nav .open .dropdown-menu
>.dropdown-header{border-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#
444;background-color:transparent}}.navbar-inverse .navbar-link{color:#
777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#
777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#
444}.breadcrumb{padding:
8px
15px;margin-bottom:
20px;list-style:none;background-color:#f5f5f5;border-radius:
4px}.breadcrumb
>li{display:inline-block}.breadcrumb
>li+li:before{padding:
0 5px;color:#ccc;content:"/\
00a0"}.breadcrumb
>.active{color:#
777}.pagination{display:inline-block;padding-left:
0;margin:
20px
0;border-radius:
4px}.pagination
>li{display:inline}.pagination
>li
>a,.pagination
>li
>span{position:relative;float:left;padding:
6px
12px;margin-left:-
1px;line-height:
1.42857143;color:#
428bca;text-decoration:none;background-color:#fff;border:
1px solid #ddd}.pagination
>li:first-child
>a,.pagination
>li:first-child
>span{margin-left:
0;border-top-left-radius:
4px;border-bottom-left-radius:
4px}.pagination
>li:last-child
>a,.pagination
>li:last-child
>span{border-top-right-radius:
4px;border-bottom-right-radius:
4px}.pagination
>li
>a:hover,.pagination
>li
>span:hover,.pagination
>li
>a:focus,.pagination
>li
>span:focus{color:#
2a6496;background-color:#eee;border-color:#ddd}.pagination
>.active
>a,.pagination
>.active
>span,.pagination
>.active
>a:hover,.pagination
>.active
>span:hover,.pagination
>.active
>a:focus,.pagination
>.active
>span:focus{z-index:
2;color:#fff;cursor:default;background-color:#
428bca;border-color:#
428bca}.pagination
>.disabled
>span,.pagination
>.disabled
>span:hover,.pagination
>.disabled
>span:focus,.pagination
>.disabled
>a,.pagination
>.disabled
>a:hover,.pagination
>.disabled
>a:focus{color:#
777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg
>li
>a,.pagination-lg
>li
>span{padding:
10px
16px;font-size:
18px}.pagination-lg
>li:first-child
>a,.pagination-lg
>li:first-child
>span{border-top-left-radius:
6px;border-bottom-left-radius:
6px}.pagination-lg
>li:last-child
>a,.pagination-lg
>li:last-child
>span{border-top-right-radius:
6px;border-bottom-right-radius:
6px}.pagination-sm
>li
>a,.pagination-sm
>li
>span{padding:
5px
10px;font-size:
12px}.pagination-sm
>li:first-child
>a,.pagination-sm
>li:first-child
>span{border-top-left-radius:
3px;border-bottom-left-radius:
3px}.pagination-sm
>li:last-child
>a,.pagination-sm
>li:last-child
>span{border-top-right-radius:
3px;border-bottom-right-radius:
3px}.pager{padding-left:
0;margin:
20px
0;text-align:center;list-style:none}.pager li{display:inline}.pager li
>a,.pager li
>span{display:inline-block;padding:
5px
14px;background-color:#fff;border:
1px solid #ddd;border-radius:
15px}.pager li
>a:hover,.pager li
>a:focus{text-decoration:none;background-color:#eee}.pager .next
>a,.pager .next
>span{float:right}.pager .previous
>a,.pager .previous
>span{float:left}.pager .disabled
>a,.pager .disabled
>a:hover,.pager .disabled
>a:focus,.pager .disabled
>span{color:#
777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:
.2em
.6em
.3em;font-size:
75%;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:
.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-
1px}.label-default{background-color:#
777}.label-default[href]:hover,.label-default[href]:focus{background-color:#
5e5e5e}.label-primary{background-color:#
428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#
3071a9}.label-success{background-color:#
5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#
449d44}.label-info{background-color:#
5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#
31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:
10px;padding:
3px
7px;font-size:
12px;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#
777;border-radius:
10px}.badge:empty{display:none}.btn .badge{position:relative;top:-
1px}.btn-xs .badge{top:
0;padding:
1px
5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active
>.badge,.nav-pills
>.active
>a
>.badge{color:#
428bca;background-color:#fff}.nav-pills
>li
>a
>.badge{margin-left:
3px}.jumbotron{padding:
30px;margin-bottom:
30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:
15px;font-size:
21px;font-weight:
200}.jumbotron
>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:
6px}.jumbotron .container{max-width:
100%}@media screen and (min-width:
768px){.jumbotron{padding-top:
48px;padding-bottom:
48px}.container .jumbotron{padding-right:
60px;padding-left:
60px}.jumbotron h1,.jumbotron .h1{font-size:
63px}}.thumbnail{display:block;padding:
4px;margin-bottom:
20px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.thumbnail
>img,.thumbnail a
>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#
428bca}.thumbnail .caption{padding:
9px;color:#
333}.alert{padding:
15px;margin-bottom:
20px;border:
1px solid transparent;border-radius:
4px}.alert h4{margin-top:
0;color:inherit}.alert .alert-link{font-weight:
700}.alert
>p,.alert
>ul{margin-bottom:
0}.alert
>p+p{margin-top:
5px}.alert-dismissable,.alert-dismissible{padding-right:
35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-
2px;right:-
21px;color:inherit}.alert-success{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#
2b542c}.alert-info{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#
245269}.alert-warning{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#
66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#
843534}@-webkit-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@-o-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}.progress{height:
20px;margin-bottom:
20px;overflow:hidden;background-color:#f5f5f5;border-radius:
4px;-webkit-box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1);box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1)}.progress-bar{float:left;width:
0;height:
100%;font-size:
12px;line-height:
20px;color:#fff;text-align:center;background-color:#
428bca;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);-webkit-transition:width
.6s ease;-o-transition:width
.6s ease;transition:width
.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);-webkit-background-size:
40px
40px;background-size:
40px
40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes
2s linear infinite;-o-animation:progress-bar-stripes
2s linear infinite;animation:progress-bar-stripes
2s linear infinite}.progress-bar[
aria-valuenow="
1"],.progress-bar[
aria-valuenow="
2"]{min-width:
30px}.progress-bar[
aria-valuenow="
0"]{min-width:
30px;color:#
777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#
5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-info{background-color:#
5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.media,.media-body{overflow:hidden;zoom:
1}.media,.media .media{margin-top:
15px}.media:first-child{margin-top:
0}.media-object{display:block}.media-heading{margin:
0 0 5px}.media
>.pull-left{margin-right:
10px}.media
>.pull-right{margin-left:
10px}.media-list{padding-left:
0;list-style:none}.list-group{padding-left:
0;margin-bottom:
20px}.list-group-item{position:relative;display:block;padding:
10px
15px;margin-bottom:-
1px;background-color:#fff;border:
1px solid #ddd}.list-group-item:first-child{border-top-left-radius:
4px;border-top-right-radius:
4px}.list-group-item:last-child{margin-bottom:
0;border-bottom-right-radius:
4px;border-bottom-left-radius:
4px}.list-group-item
>.badge{float:right}.list-group-item
>.badge+.badge{margin-right:
5px}a.list-group-item{color:#
555}a.list-group-item .list-group-item-heading{color:#
333}a.list-group-item:hover,a.list-group-item:focus{color:#
555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#
777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#
777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:
2;color:#fff;background-color:#
428bca;border-color:#
428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading
>small,.list-group-item.active:hover .list-group-item-heading
>small,.list-group-item.active:focus .list-group-item-heading
>small,.list-group-item.active .list-group-item-heading
>.small,.list-group-item.active:hover .list-group-item-heading
>.small,.list-group-item.active:focus .list-group-item-heading
>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#
3c763d;background-color:#dff0d8}a.list-group-item-success{color:#
3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#
3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#
3c763d;border-color:#
3c763d}.list-group-item-info{color:#
31708f;background-color:#d9edf7}a.list-group-item-info{color:#
31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#
31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#
31708f;border-color:#
31708f}.list-group-item-warning{color:#
8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#
8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#
8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#
8a6d3b;border-color:#
8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:
0;margin-bottom:
5px}.list-group-item-text{margin-bottom:
0;line-height:
1.3}.panel{margin-bottom:
20px;background-color:#fff;border:
1px solid transparent;border-radius:
4px;-webkit-box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05)}.panel-body{padding:
15px}.panel-heading{padding:
10px
15px;border-bottom:
1px solid transparent;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel-heading
>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:
0;margin-bottom:
0;font-size:
16px;color:inherit}.panel-title
>a{color:inherit}.panel-footer{padding:
10px
15px;background-color:#f5f5f5;border-top:
1px solid #ddd;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.list-group{margin-bottom:
0}.panel
>.list-group .list-group-item{border-width:
1px
0;border-radius:
0}.panel
>.list-group:first-child .list-group-item:first-child{border-top:
0;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.list-group:last-child .list-group-item:last-child{border-bottom:
0;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:
0}.list-group+.panel-footer{border-top-width:
0}.panel
>.table,.panel
>.table-responsive
>.table,.panel
>.panel-collapse
>.table{margin-bottom:
0}.panel
>.table:first-child,.panel
>.table-responsive:first-child
>.table:first-child{border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child{border-top-left-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child{border-top-right-radius:
3px}.panel
>.table:last-child,.panel
>.table-responsive:last-child
>.table:last-child{border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child{border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child{border-bottom-right-radius:
3px}.panel
>.panel-body+.table,.panel
>.panel-body+.table-responsive{border-top:
1px solid #ddd}.panel
>.table
>tbody:first-child
>tr:first-child th,.panel
>.table
>tbody:first-child
>tr:first-child td{border-top:
0}.panel
>.table-bordered,.panel
>.table-responsive
>.table-bordered{border:
0}.panel
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-bordered
>tfoot
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.panel
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-bordered
>tfoot
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.panel
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-bordered
>tbody
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>th{border-bottom:
0}.panel
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-bordered
>tfoot
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th{border-bottom:
0}.panel
>.table-responsive{margin-bottom:
0;border:
0}.panel-group{margin-bottom:
20px}.panel-group .panel{margin-bottom:
0;border-radius:
4px}.panel-group .panel+.panel{margin-top:
5px}.panel-group .panel-heading{border-bottom:
0}.panel-group .panel-heading+.panel-collapse
>.panel-body{border-top:
1px solid #ddd}.panel-group .panel-footer{border-top:
0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:
1px solid #ddd}.panel-default{border-color:#ddd}.panel-default
>.panel-heading{color:#
333;background-color:#f5f5f5;border-color:#ddd}.panel-default
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ddd}.panel-default
>.panel-heading .badge{color:#f5f5f5;background-color:#
333}.panel-default
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#
428bca}.panel-primary
>.panel-heading{color:#fff;background-color:#
428bca;border-color:#
428bca}.panel-primary
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#
428bca}.panel-primary
>.panel-heading .badge{color:#
428bca;background-color:#fff}.panel-primary
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#
428bca}.panel-success{border-color:#d6e9c6}.panel-success
>.panel-heading{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#d6e9c6}.panel-success
>.panel-heading .badge{color:#dff0d8;background-color:#
3c763d}.panel-success
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info
>.panel-heading{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#bce8f1}.panel-info
>.panel-heading .badge{color:#d9edf7;background-color:#
31708f}.panel-info
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning
>.panel-heading{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#faebcc}.panel-warning
>.panel-heading .badge{color:#fcf8e3;background-color:#
8a6d3b}.panel-warning
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger
>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ebccd1}.panel-danger
>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:
0;padding:
0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:
0;bottom:
0;left:
0;width:
100%;height:
100%;border:
0}.embed-responsive.embed-responsive-
16by9{padding-bottom:
56.25%}.embed-responsive.embed-responsive-
4by3{padding-bottom:
75%}.well{min-height:
20px;padding:
19px;margin-bottom:
20px;background-color:#f5f5f5;border:
1px solid #e3e3e3;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05)}.well blockquote{border-color:#ddd;border-color:rgba(
0,
0,
0,
.15)}.well-lg{padding:
24px;border-radius:
6px}.well-sm{padding:
9px;border-radius:
3px}.close{float:right;font-size:
21px;font-weight:
700;line-height:
1;color:#
000;text-shadow:
0 1px
0 #fff;filter:alpha(opacity=
20);opacity:
.2}.close:hover,.close:focus{color:#
000;text-decoration:none;cursor:pointer;filter:alpha(opacity=
50);opacity:
.5}button.close{-webkit-appearance:none;padding:
0;cursor:pointer;background:
0 0;border:
0}.modal-open{overflow:hidden}.modal{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:
0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform
.3s ease-out;-o-transition:-o-transform
.3s ease-out;transition:transform
.3s ease-out;-webkit-transform:translate3d(
0,-
25%,
0);-o-transform:translate3d(
0,-
25%,
0);transform:translate3d(
0,-
25%,
0)}.modal.in .modal-dialog{-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:
10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #
999;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;outline:
0;-webkit-box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5);box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5)}.modal-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1040;background-color:#
000}.modal-backdrop.fade{filter:alpha(opacity=
0);opacity:
0}.modal-backdrop.in{filter:alpha(opacity=
50);opacity:
.5}.modal-header{min-height:
16.43px;padding:
15px;border-bottom:
1px solid #e5e5e5}.modal-header .close{margin-top:-
2px}.modal-title{margin:
0;line-height:
1.42857143}.modal-body{position:relative;padding:
15px}.modal-footer{padding:
15px;text-align:right;border-top:
1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:
0;margin-left:
5px}.modal-footer .btn-group .btn+.btn{margin-left:-
1px}.modal-footer .btn-block+.btn-block{margin-left:
0}.modal-scrollbar-measure{position:absolute;top:-
9999px;width:
50px;height:
50px;overflow:scroll}@media (min-width:
768px){.modal-dialog{width:
600px;margin:
30px auto}.modal-content{-webkit-box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5);box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5)}.modal-sm{width:
300px}}@media (min-width:
992px){.modal-lg{width:
900px}}.tooltip{position:absolute;z-index:
1070;display:block;font-size:
12px;line-height:
1.4;visibility:visible;filter:alpha(opacity=
0);opacity:
0}.tooltip.in{filter:alpha(opacity=
90);opacity:
.9}.tooltip.top{padding:
5px
0;margin-top:-
3px}.tooltip.right{padding:
0 5px;margin-left:
3px}.tooltip.bottom{padding:
5px
0;margin-top:
3px}.tooltip.left{padding:
0 5px;margin-left:-
3px}.tooltip-inner{max-width:
200px;padding:
3px
8px;color:#fff;text-align:center;text-decoration:none;background-color:#
000;border-radius:
4px}.tooltip-arrow{position:absolute;width:
0;height:
0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:
0;left:
50%;margin-left:-
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-left .tooltip-arrow{bottom:
0;left:
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-right .tooltip-arrow{right:
5px;bottom:
0;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.right .tooltip-arrow{top:
50%;left:
0;margin-top:-
5px;border-width:
5px
5px
5px
0;border-right-color:#
000}.tooltip.left .tooltip-arrow{top:
50%;right:
0;margin-top:-
5px;border-width:
5px
0 5px
5px;border-left-color:#
000}.tooltip.bottom .tooltip-arrow{top:
0;left:
50%;margin-left:-
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-left .tooltip-arrow{top:
0;left:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-right .tooltip-arrow{top:
0;right:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.popover{position:absolute;top:
0;left:
0;z-index:
1060;display:none;max-width:
276px;padding:
1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;-webkit-box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2);box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2)}.popover.top{margin-top:-
10px}.popover.right{margin-left:
10px}.popover.bottom{margin-top:
10px}.popover.left{margin-left:-
10px}.popover-title{padding:
8px
14px;margin:
0;font-size:
14px;font-weight:
400;line-height:
18px;background-color:#f7f7f7;border-bottom:
1px solid #ebebeb;border-radius:
5px
5px
0 0}.popover-content{padding:
9px
14px}.popover
>.arrow,.popover
>.arrow:after{position:absolute;display:block;width:
0;height:
0;border-color:transparent;border-style:solid}.popover
>.arrow{border-width:
11px}.popover
>.arrow:after{content:"";border-width:
10px}.popover.top
>.arrow{bottom:-
11px;left:
50%;margin-left:-
11px;border-top-color:#
999;border-top-color:rgba(
0,
0,
0,
.25);border-bottom-width:
0}.popover.top
>.arrow:after{bottom:
1px;margin-left:-
10px;content:" ";border-top-color:#fff;border-bottom-width:
0}.popover.right
>.arrow{top:
50%;left:-
11px;margin-top:-
11px;border-right-color:#
999;border-right-color:rgba(
0,
0,
0,
.25);border-left-width:
0}.popover.right
>.arrow:after{bottom:-
10px;left:
1px;content:" ";border-right-color:#fff;border-left-width:
0}.popover.bottom
>.arrow{top:-
11px;left:
50%;margin-left:-
11px;border-top-width:
0;border-bottom-color:#
999;border-bottom-color:rgba(
0,
0,
0,
.25)}.popover.bottom
>.arrow:after{top:
1px;margin-left:-
10px;content:" ";border-top-width:
0;border-bottom-color:#fff}.popover.left
>.arrow{top:
50%;right:-
11px;margin-top:-
11px;border-right-width:
0;border-left-color:#
999;border-left-color:rgba(
0,
0,
0,
.25)}.popover.left
>.arrow:after{right:
1px;bottom:-
10px;content:" ";border-right-width:
0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:
100%;overflow:hidden}.carousel-inner
>.item{position:relative;display:none;-webkit-transition:
.6s ease-in-out left;-o-transition:
.6s ease-in-out left;transition:
.6s ease-in-out left}.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{line-height:
1}.carousel-inner
>.active,.carousel-inner
>.next,.carousel-inner
>.prev{display:block}.carousel-inner
>.active{left:
0}.carousel-inner
>.next,.carousel-inner
>.prev{position:absolute;top:
0;width:
100%}.carousel-inner
>.next{left:
100%}.carousel-inner
>.prev{left:-
100%}.carousel-inner
>.next.left,.carousel-inner
>.prev.right{left:
0}.carousel-inner
>.active.left{left:-
100%}.carousel-inner
>.active.right{left:
100%}.carousel-control{position:absolute;top:
0;bottom:
0;left:
0;width:
15%;font-size:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6);filter:alpha(opacity=
50);opacity:
.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.5)),to(rgba(
0,
0,
0,
.0001)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
80000000', endColorstr='#
00000000', GradientType=
1);background-repeat:repeat-x}.carousel-control.right{right:
0;left:auto;background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.0001)),to(rgba(
0,
0,
0,
.5)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
00000000', endColorstr='#
80000000', GradientType=
1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=
90);outline:
0;opacity:
.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:
50%;z-index:
5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:
50%;margin-left:-
10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:
50%;margin-right:-
10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:
20px;height:
20px;margin-top:-
10px;font-family:serif}.carousel-control .icon-prev:before{content:'\
2039'}.carousel-control .icon-next:before{content:'\
203a'}.carousel-indicators{position:absolute;bottom:
10px;left:
50%;z-index:
15;width:
60%;padding-left:
0;margin-left:-
30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:
10px;height:
10px;margin:
1px;text-indent:-
999px;cursor:pointer;background-color:#
000 \
9;background-color:rgba(
0,
0,
0,
0);border:
1px solid #fff;border-radius:
10px}.carousel-indicators .active{width:
12px;height:
12px;margin:
0;background-color:#fff}.carousel-caption{position:absolute;right:
15%;bottom:
20px;left:
15%;z-index:
10;padding-top:
20px;padding-bottom:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:
768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:
30px;height:
30px;margin-top:-
15px;font-size:
30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-
15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-
15px}.carousel-caption{right:
20%;left:
20%;padding-bottom:
30px}.carousel-indicators{bottom:
20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical
>.btn-group:before,.btn-group-vertical
>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical
>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:
0/
0 a;color:transparent;text-shadow:none;background-color:transparent;border:
0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:
767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:
767px){.visible-xs-block{display:block!important}}@media (max-width:
767px){.visible-xs-inline{display:inline!important}}@media (max-width:
767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-block{display:block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline{display:inline!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-block{display:block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline{display:inline!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:
1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:
1200px){.visible-lg-block{display:block!important}}@media (min-width:
1200px){.visible-lg-inline{display:inline!important}}@media (min-width:
1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:
767px){.hidden-xs{display:none!important}}@media (min-width:
768px) and (max-width:
991px){.hidden-sm{display:none!important}}@media (min-width:
992px) and (max-width:
1199px){.hidden-md{display:none!important}}@media (min-width:
1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
</style>
11 <meta content=
"Mnemonic code for generating deterministic keys" name=
"description"/>
12 <meta content=
"width=device-width, initial-scale=1.0" name=
"viewport" />
13 <meta content=
"bitcoin mnemonic converter" name=
"description" />
14 <meta content=
"Ian Coleman" name=
"author" />
15 <link type=
"image/x-icon" rel=
"icon" href=
"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
21 .form-control[readonly] {
34 background-color: orange;
38 border:
2px solid #
555;
40 border-bottom-left-radius:
20px
20px;
41 border-bottom-right-radius:
20px
20px;
45 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
46 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
51 .generate-container .strength {
52 /* override mobile width from bootstrap */
53 width: auto!important;
54 display: inline-block;
59 .languages a:nth-of-type(
1) {
64 font-family: monospace;
66 .entropy-container .filtered,
67 .entropy-container .binary {
68 word-wrap: break-word;
70 .entropy-container li {
94 background-color: #FFF;
95 border:
1px solid #CCC;
107 border-bottom:
1px dashed #
000;
108 text-decoration: none;
118 <div class=
"container">
120 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
121 <p class=
"version">v0.2
.5</p>
124 <div class=
"col-md-12">
126 <form class=
"form-horizontal" role=
"form">
127 <div class=
"form-group">
128 <div class=
"col-sm-2"></div>
129 <div class=
"col-sm-10">
130 <p data-translate
>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).
</p>
131 <p data-translate-html
>
132 For more info see the
133 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
137 <div class=
"form-group generate-container">
138 <label class=
"col-sm-2 control-label"></label>
139 <div class=
"col-sm-10">
140 <div class=
"form-inline">
141 <div class=
"input-group-inline">
142 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
143 <button class=
"btn generate">Generate
</button>
144 <select id=
"strength" class=
"strength form-control">
145 <option value=
"3">3</option>
146 <option value=
"6">6</option>
147 <option value=
"9">9</option>
148 <option value=
"12">12</option>
149 <option value=
"15" selected
>15</option>
150 <option value=
"18">18</option>
151 <option value=
"21">21</option>
152 <option value=
"24">24</option>
154 <span data-translate
>words
</span>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes" data-translate
>Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
169 <div class=
"col-sm-7">
170 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder
></textarea>
172 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Based on estimates from zxcvbn using Filtered Entropy">Time To Crack
</span></label>
173 <div class=
"crack-time col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
175 <div class=
"event-count col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
179 <div class=
"type col-sm-3 form-control-static"></div>
180 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
181 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
184 <label class=
"col-sm-3 control-label" data-translate
>Raw Entropy Words
</label>
185 <div class=
"word-count col-sm-3 form-control-static"></div>
186 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
187 <div class=
"bits col-sm-3 form-control-static"></div>
189 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
190 <div class=
"filtered col-sm-9 form-control-static"></div>
191 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
192 <div class=
"binary col-sm-9 form-control-static"></div>
193 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
194 <div class=
"col-sm-9">
195 <select class=
"mnemonic-length form-control">
196 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
197 <option value=
"12">12 <span data-translate
>Words
</span></option>
198 <option value=
"15">15 <span data-translate
>Words
</option>
199 <option value=
"18">18 <span data-translate
>Words
</span></option>
200 <option value=
"21">21 <span data-translate
>Words
</span></option>
201 <option value=
"24">24 <span data-translate
>Words
</span></option>
205 <div class=
"col-sm-3">
206 <p data-translate
>Valid entropy values include:
</p>
208 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
209 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
210 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
211 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
212 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
213 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
218 <div class=
"form-group">
219 <div class=
"col-sm-2"></div>
220 <div class=
"col-sm-10 checkbox">
222 <input type=
"checkbox" class=
"use-entropy">
223 <span data-translate
>Supply my own source of entropy
</span>
227 <div class=
"form-group">
228 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
229 <div class=
"col-sm-10 languages">
230 <div class=
"form-control no-border">
231 <a href=
"#english">English
</a>
232 <a href=
"#japanese" title=
"Japanese">日本語
</a>
233 <a href=
"#spanish" title=
"Spanish">Español
</a>
234 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
235 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
236 <a href=
"#french" title=
"French">Français
</a>
237 <a href=
"#italian" title=
"Italian">Italiano
</a>
241 <div class=
"form-group">
242 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
247 <div class=
"form-group">
248 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
253 <div class=
"form-group">
254 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
255 <div class=
"col-sm-10">
256 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
259 <div class=
"form-group">
260 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
261 <div class=
"col-sm-10">
262 <select id=
"network-phrase" class=
"network form-control">
263 <!-- populated by javascript -->
267 <div class=
"form-group">
268 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
269 <div class=
"col-sm-10">
270 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
273 <div class=
"form-group litecoin-ltub-container hidden">
274 <label for=
"litecoin-use-ltub" class=
"col-sm-2 control-label" data-translate
>Prefixes
</label>
275 <div class=
"col-sm-10 checkbox">
277 <input type=
"checkbox" id=
"litecoin-use-ltub" class=
"litecoin-use-ltub">
278 Use
<code>Ltpv / Ltub
</code> instead of
<code>xprv / xpub
</code>
289 <div class=
"col-md-12">
290 <h2>Derivation Path
</h2>
291 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
293 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
295 <li id=
"bip44-tab" class=
"active">
296 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
299 <a href=
"#bip49" role=
"tab" data-toggle=
"tab">BIP49
</a>
302 <div class=
"derivation-type tab-content">
303 <div id=
"bip44" class=
"tab-pane active">
304 <form class=
"form-horizontal" role=
"form">
306 <div class=
"col-sm-2"></div>
307 <div class=
"col-sm-10">
308 <p data-translate-html
>
309 For more info see the
310 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
313 <div class=
"form-group">
314 <label for=
"purpose" class=
"col-sm-2 control-label">
315 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
317 <div class=
"col-sm-10">
318 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44" readonly
>
321 <div class=
"form-group">
322 <label for=
"coin" class=
"col-sm-2 control-label">
323 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
325 <div class=
"col-sm-10">
326 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
329 <div class=
"form-group">
330 <label for=
"account" class=
"col-sm-2 control-label">
331 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
333 <div class=
"col-sm-10">
334 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
337 <div class=
"form-group">
338 <label for=
"change" class=
"col-sm-2 control-label">
339 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
341 <div class=
"col-sm-10">
342 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
345 <div class=
"form-group">
346 <label class=
"col-sm-2 control-label">
348 <div class=
"col-sm-10">
349 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
352 <div class=
"form-group">
353 <label for=
"account-xprv" class=
"col-sm-2 control-label">
354 <span data-translate
>Account Extended Private Key
</span>
356 <div class=
"col-sm-10">
357 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
360 <div class=
"form-group">
361 <label for=
"account-xpub" class=
"col-sm-2 control-label">
362 <span data-translate
>Account Extended Public Key
</span>
364 <div class=
"col-sm-10">
365 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
368 <div class=
"form-group">
369 <label class=
"col-sm-2 control-label">
371 <div class=
"col-sm-10">
372 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
375 <div class=
"form-group">
376 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
377 <div class=
"col-sm-10">
378 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
383 <div id=
"bip32" class=
"tab-pane">
384 <form class=
"form-horizontal" role=
"form">
386 <div class=
"col-sm-2"></div>
387 <div class=
"col-sm-10">
389 For more info see the
390 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
393 <div class=
"form-group">
394 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
395 <div class=
"col-sm-10">
396 <select id=
"bip32-client" class=
"client form-control">
397 <option value=
"custom">Custom derivation path
</option>
398 <!-- populated by javascript -->
402 <div class=
"form-group">
403 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
404 <div class=
"col-sm-10">
405 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
408 <div class=
"form-group">
409 <div class=
"col-sm-2"></div>
410 <label class=
"col-sm-10">
411 <input class=
"hardened-addresses" type=
"checkbox">
412 <span data-translate
>Use hardened addresses
</span>
415 <div class=
"form-group">
416 <div class=
"col-sm-2"></div>
417 <label class=
"col-sm-10">
418 <input class=
"p2wpkh-nested-in-p2sh" type=
"checkbox">
419 <span data-translate
>Use SegWit addresses (ie P2WPKH Nested In P2SH)
</span>
422 <div class=
"form-group">
423 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
424 <div class=
"col-sm-10">
425 <p class=
"form-control no-border" data-translate-html
>
426 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
428 <p class=
"form-control no-border" data-translate-html
>
429 For more info see the
430 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
434 <div class=
"form-group">
435 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
436 <div class=
"col-sm-10">
437 <p class=
"form-control no-border">
438 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
440 <p class=
"form-control no-border">
441 <span data-translate
>For more info see
</span>
442 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
446 <div class=
"form-group">
447 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
448 <div class=
"col-sm-10">
449 <p class=
"form-control no-border">
450 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
451 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
453 <p class=
"form-control no-border">
454 <span data-translate
>Can be used with
</span>:
455 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
461 <div id=
"bip49" class=
"tab-pane">
462 <form class=
"form-horizontal" role=
"form">
464 <div class=
"unavailable hidden">
465 <div class=
"form-group">
466 <div class=
"col-sm-2"></div>
467 <div class=
"col-sm-10">
468 <p data-translate
>BIP49 is unavailable for this coin.
</p>
472 <div class=
"available">
473 <div class=
"col-sm-2"></div>
474 <div class=
"col-sm-10">
475 <p data-translate-html
>
476 For more info see the
477 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">BIP49 spec
</a>.
480 <div class=
"form-group">
481 <label for=
"purpose" class=
"col-sm-2 control-label">
482 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
484 <div class=
"col-sm-10">
485 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"49" readonly
>
488 <div class=
"form-group">
489 <label for=
"coin" class=
"col-sm-2 control-label">
490 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
492 <div class=
"col-sm-10">
493 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
496 <div class=
"form-group">
497 <label for=
"account" class=
"col-sm-2 control-label">
498 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
500 <div class=
"col-sm-10">
501 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
504 <div class=
"form-group">
505 <label for=
"change" class=
"col-sm-2 control-label">
506 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
508 <div class=
"col-sm-10">
509 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
512 <div class=
"form-group">
513 <label class=
"col-sm-2 control-label">
515 <div class=
"col-sm-10">
516 <p data-translate
>The account extended keys can be used for importing to most BIP49 compatible wallets.
</p>
519 <div class=
"form-group">
520 <label for=
"account-xprv" class=
"col-sm-2 control-label">
521 <span data-translate
>Account Extended Private Key
</span>
523 <div class=
"col-sm-10">
524 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
527 <div class=
"form-group">
528 <label for=
"account-xpub" class=
"col-sm-2 control-label">
529 <span data-translate
>Account Extended Public Key
</span>
531 <div class=
"col-sm-10">
532 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
535 <div class=
"form-group">
536 <label class=
"col-sm-2 control-label">
538 <div class=
"col-sm-10">
539 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
542 <div class=
"form-group">
543 <label for=
"bip49-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
544 <div class=
"col-sm-10">
545 <input id=
"bip49-path" type=
"text" class=
"path form-control" value=
"m/49'/0'/0'/0" readonly=
"readonly">
552 <form class=
"form-horizontal" role=
"form">
553 <div class=
"form-group">
554 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
555 <div class=
"col-sm-10">
556 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
559 <div class=
"form-group">
560 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
561 <div class=
"col-sm-10">
562 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
572 <div class=
"col-md-12">
573 <h2>Derived Addresses
</h2>
574 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
575 <table class=
"table table-striped">
578 <div class=
"input-group">
579 <span data-translate
>Path
</span>
580 <button class=
"index-toggle" data-translate
>Toggle
</button>
584 <div class=
"input-group">
585 <span data-translate
>Address
</span>
586 <button class=
"address-toggle" data-translate
>Toggle
</button>
590 <div class=
"input-group">
591 <span data-translate
>Public Key
</span>
592 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
596 <div class=
"input-group">
597 <span data-translate
>Private Key
</span>
598 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
602 <tbody class=
"addresses monospace">
603 <tr><td> </td><td> </td><td> </td><td> </td></tr>
604 <tr><td> </td><td> </td><td> </td><td> </td></tr>
605 <tr><td> </td><td> </td><td> </td><td> </td></tr>
606 <tr><td> </td><td> </td><td> </td><td> </td></tr>
607 <tr><td> </td><td> </td><td> </td><td> </td></tr>
612 <span data-translate
>Show more rows
</span>:
613 <input type=
"number" class=
"rows-to-add" value=
"20">
614 <button class=
"more" data-translate
>Show
</button>
619 <div class=
"col-md-12">
620 <h2 data-translate
>More info
</h2>
621 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
622 <p data-translate-html
>
624 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
626 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
627 <p data-translate-html
>
629 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
631 <p data-translate-html
>
633 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
635 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
636 <p data-translate-html
>
638 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
640 <h3 data-translate
>Private Keys
</h3>
642 <span data-translate-html
>
644 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
646 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
648 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
650 <span data-translate-html
>
651 Entropy values must be sourced from a
652 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
654 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
655 <span data-translate-html
>
656 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
657 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
658 random enough for the needs of this tool.
662 <strong><span data-translate
>Do not store entropy.
</span></strong>
665 <span data-translate
>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
666 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
667 <span data-translate-html
><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
670 <span data-translate-html
>
671 The random mnemonic generator on this page uses a
672 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
674 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
675 <span data-translate
>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
676 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
679 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
681 <h3 data-translate
>License
</h3>
683 <span data-translate-html
>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
686 <p data-translate
>The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
</p>
693 <div class=
"col-md-12">
695 <h2 data-translate
>Offline Usage
</h2>
698 You can use this tool without having to be online.
701 In your browser, select file save-as, and save this page
705 Double-click that file to open it in a browser
706 on any offline computer.
709 <span data-translate
>Alternatively, download the file from the repository
</span>
711 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
720 <div class=
"col-md-12">
722 <h2 data-translate
>This project is
100% open-source code
</h2>
725 <span data-translate
>Get the source code from the repository
</span>
727 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
728 https://github.com/iancoleman/bip39
732 <h3 data-translate
>Libraries
</h3>
735 <span>BitcoinJS -
</span>
736 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
737 https://github.com/bitcoinjs/bitcoinjs-lib
742 <span>jsBIP39 -
</span>
743 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
744 https://github.com/iancoleman/jsbip39
750 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
751 https://github.com/bitwiseshiftleft/sjcl
756 <span>jQuery -
</span>
757 <a href=
"https://jquery.com/" target=
"_blank">
763 <span>Twitter Bootstrap -
</span>
764 <a href=
"http://getbootstrap.com/" target=
"_blank">
765 http://getbootstrap.com/
774 <div class=
"qr-container hidden">
775 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
776 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
777 <div class=
"qr-hider hidden">
778 <div class=
"qr-image"></div>
779 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
783 <div class=
"feedback-container">
784 <div class=
"feedback">Loading...
</div>
787 <script type=
"text/template" id=
"address-row-template">
789 <td class=
"index"><span></span></td>
790 <td class=
"address"><span data-show-qr
></span></td>
791 <td class=
"pubkey"><span data-show-qr
></span></td>
792 <td class=
"privkey"><span data-show-qr
></span></td>
796 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
797 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
798 // but is not required in any modern browsers.
799 // For more information, see
800 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
802 //----------------------------------------------------------------------
804 // ECMAScript
2015 Polyfills
806 //----------------------------------------------------------------------
811 // Set this to always override native implementations, for testing
812 // the polyfill in browsers with partial/full ES2015 support.
813 var OVERRIDE_NATIVE_FOR_TESTING = false;
815 var undefined = (void
0); // Paranoia
820 return o === global ? undefined : o;
823 function hook(o, p, f) {
825 console.assert(typeof op === 'function', 'Hooking a non-function');
827 var o = strict(this);
828 var r = f.apply(o, arguments);
829 return r !== undefined ? r : op.apply(o, arguments);
833 function isSymbol(s) {
834 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
837 function getPropertyDescriptor(target, name) {
838 var desc = Object.getOwnPropertyDescriptor(target, name);
839 var proto = Object.getPrototypeOf(target);
840 while (!desc && proto) {
841 desc = Object.getOwnPropertyDescriptor(proto, name);
842 proto = Object.getPrototypeOf(proto);
847 var enqueue = (function(nativePromise, nativeSetImmediate) {
849 return function(job) { nativePromise.resolve().then(function() { job(); }); };
850 if (nativeSetImmediate)
851 return function(job) { nativeSetImmediate(job); };
852 return function(job) { setTimeout(job,
0); };
853 }(global['Promise'], global['setImmediate']));
855 function define(o, p, v, override) {
856 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
859 if (typeof v === 'function') {
860 // Sanity check that functions are appropriately named (where possible)
861 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
862 Object.defineProperty(o, p, {
869 Object.defineProperty(o, p, {
878 function set_internal(o, p, v) {
879 Object.defineProperty(o, p, {
887 // Snapshot intrinsic functions
888 var $isNaN = global.isNaN,
889 $parseInt = global.parseInt,
890 $parseFloat = global.parseFloat;
893 LOG10E = Math.LOG10E,
903 random = Math.random,
906 var orig_match = String.prototype.match,
907 orig_replace = String.prototype.replace,
908 orig_search = String.prototype.search,
909 orig_split = String.prototype.split;
911 // These are used for implementing the polyfills, but not exported.
913 // Inspired by https://gist.github.com/
1638059
915 function EphemeronTable() {
916 var secretKey = ObjectCreate(null);
918 function conceal(o) {
919 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
920 Object.defineProperty(o, 'valueOf', {
921 value: (function(secretKey) {
922 return function (k) {
923 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
934 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
935 return v === o ? null : v;
940 secretKey = ObjectCreate(null);
942 remove: function(key) {
943 var secrets = reveal(key);
944 if (secrets && HasOwnProperty(secrets, 'value')) {
945 delete secrets.value;
950 get: function(key, defaultValue) {
951 var secrets = reveal(key);
952 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
955 var secrets = reveal(key);
956 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
958 set: function(key, value) {
959 var secrets = reveal(key) || conceal(key);
960 secrets.value = value;
965 var empty = Object.create(null);
967 //----------------------------------------------------------------------
970 // http://www.ecma-international.org/ecma-
262/
6.0/
972 //----------------------------------------------------------------------
974 // ---------------------------------------
975 //
19.4 Symbol Objects
976 // ---------------------------------------
978 // NOTE: Symbols are defined here - out of spec order - since we need the
979 // properties and prototype to be populated for other polyfills.
981 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
985 var secret = Object.create(null);
987 symbolForKey = function(k) {
991 var GlobalSymbolRegistry = [];
993 function unique(bits) {
994 return Array(bits +
1).join('x').replace(/x/g, function() {
995 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
999 //
19.4.1 The Symbol Constructor
1000 //
19.4.1.1 Symbol ( description=undefined )
1001 function Symbol(description) {
1002 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1003 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1005 var descString = description === undefined ? undefined : String(description);
1007 set_internal(this, '[[SymbolData]]', unique(
128));
1008 set_internal(this, '[[Description]]', descString);
1010 symbolMap[this] = this;
1014 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1015 global.Symbol = Symbol;
1017 //
19.4.2 Properties of the Symbol Constructor
1019 //
19.4.2.1 Symbol.for (key)
1020 define(Symbol, 'for', function for_(key) {
1021 var stringKey = String(key);
1022 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1023 var e = GlobalSymbolRegistry[i];
1024 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1026 var newSymbol = Symbol(key);
1027 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1031 //
19.4.2.2 Symbol.hasInstance
1032 //
19.4.2.3 Symbol.isConcatSpreadable
1034 //
19.4.2.4 Symbol.iterator
1035 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1037 //
19.4.2.5 Symbol.keyFor (sym)
1038 define(Symbol, 'keyFor', function keyFor(sym) {
1039 if (!(sym instanceof Symbol)) throw TypeError();
1040 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1041 var e = GlobalSymbolRegistry[i];
1042 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1047 //
19.4.2.6 Symbol.match
1048 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1050 //
19.4.2.7 Symbol.prototype
1052 //
19.4.2.8 Symbol.replace
1053 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1055 //
19.4.2.9 Symbol.search
1056 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1058 //
19.4.2.10 Symbol.species
1060 //
19.4.2.11 Symbol.search
1061 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1063 //
19.4.2.12 Symbol.toPrimitive
1065 //
19.4.2.13 Symbol.toStringTag
1066 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1068 //
19.4.2.14 Symbol.unscopables
1070 //
19.4.3 Properties of the Symbol Prototype Object
1071 //
19.4.3.1 Symbol.prototype.constructor
1073 //
19.4.3.2 Symbol.prototype.toString ( )
1074 Object.defineProperty(Symbol.prototype, 'toString', {
1075 value: function toString() {
1076 var s = strict(this);
1077 var desc = s['[[Description]]'];
1078 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1080 configurable: true, writeable: true, enumerable: false });
1082 //
19.4.3.3 Symbol.prototype.valueOf ( )
1083 Object.defineProperty(Symbol.prototype, 'valueOf', {
1084 value: function valueOf() {
1085 // To prevent automatic string conversion:
1088 // Spec has approximately the following:
1089 //var s = strict(this);
1090 //if (Type(s) === 'symbol') return s;
1091 //if (Type(s) !== 'object') throw TypeError();
1092 //if (!('[[SymbolData]]' in s)) throw TypeError();
1093 //return s['[[SymbolData]]'];
1095 configurable: true, writeable: true, enumerable: false });
1097 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1098 // (Done later to polyfill partial implementations)
1100 //
19.4.4 Properties of Symbol Instances
1103 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1105 // Defined here so that other prototypes can reference it
1106 //
25.1.2 The %IteratorPrototype% Object
1107 var $IteratorPrototype$ = {};
1109 //----------------------------------------
1110 //
6 ECMAScript Data Types and Values
1111 //----------------------------------------
1113 //
6.1 ECMAScript Language Types
1115 // "Type(x)" is used as shorthand for "the type of x"...
1118 case 'undefined': return 'undefined';
1119 case 'boolean': return 'boolean';
1120 case 'number': return 'number';
1121 case 'string': return 'string';
1122 case 'symbol': return 'symbol';
1124 if (v === null) return 'null';
1125 if (v instanceof global.Symbol) return 'symbol';
1130 //
6.1.5.1 Well-Known Symbols
1131 var $$iterator = global.Symbol.iterator,
1132 $$match = global.Symbol.match,
1133 $$replace = global.Symbol.replace,
1134 $$search = global.Symbol.search,
1135 $$split = global.Symbol.split,
1136 $$toStringTag = global.Symbol.toStringTag;
1138 //----------------------------------------
1139 //
7 Abstract Operations
1140 //----------------------------------------
1142 //----------------------------------------
1143 //
7.1 Type Conversion
1144 //----------------------------------------
1146 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1147 // just use valueOf()
1149 //
7.1.2 ToBoolean ( argument )
1150 // just use Boolean()
1152 //
7.1.3 ToNumber ( argument )
1153 // just use Number()
1155 //
7.1.4 ToInteger ( argument )
1156 function ToInteger(n) {
1158 if ($isNaN(n)) return
0;
1159 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1160 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1163 //
7.1.5 ToInt32 ( argument )
1164 function ToInt32(v) { return v
>> 0; }
1166 //
7.1.6 ToUint32 ( argument )
1167 function ToUint32(v) { return v
>>> 0; }
1169 //
7.1.7 ToInt16 ( argument )
1170 function ToInt16(v) { return (v <<
16)
>> 16; }
1172 //
7.1.8 ToUint16 ( argument )
1173 function ToUint16(v) { return v &
0xFFFF; }
1175 //
7.1.9 ToInt8 ( argument )
1176 function ToInt8(v) { return (v <<
24)
>> 24; }
1178 //
7.1.10 ToUint8 ( argument )
1179 function ToUint8(v) { return v &
0xFF; }
1181 //
7.1.11 ToUint8Clamp ( argument )
1182 function ToUint8Clamp(argument) {
1183 var number = Number(argument);
1184 if ($isNaN(number)) return
0;
1185 if (number <=
0) return
0;
1186 if (number
>=
255) return
255;
1187 var f = floor(number);
1188 if ((f +
0.5) < number) return f +
1;
1189 if (number < (f +
0.5)) return f;
1190 if (f %
2) return f +
1;
1194 //
7.1.12 ToString ( argument )
1195 // just use String()
1197 //
7.1.13 ToObject ( argument )
1198 function ToObject(v) {
1199 if (v === null || v === undefined) throw TypeError();
1203 //
7.1.14 ToPropertyKey ( argument )
1204 function ToPropertyKey(v) {
1208 //
7.1.15 ToLength ( argument )
1209 function ToLength(v) {
1210 var len = ToInteger(v);
1211 if (len <=
0) return
0;
1212 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1213 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1216 //
7.1.16 CanonicalNumericIndexString ( argument )
1218 //----------------------------------------
1219 //
7.2 Testing and Comparison Operations
1220 //----------------------------------------
1222 //
7.2.1 RequireObjectCoercible ( argument )
1223 //
7.2.2 IsArray ( argument )
1225 //
7.2.3 IsCallable ( argument )
1226 function IsCallable(o) { return typeof o === 'function'; }
1228 //
7.2.4 IsConstructor ( argument )
1229 function IsConstructor(o) {
1230 // Hacks for Safari
7 TypedArray XXXConstructor objects
1231 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1232 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1233 // TODO: Can this be improved on?
1234 return typeof o === 'function';
1237 //
7.2.5 IsExtensible (O)
1238 //
7.2.6 IsInteger ( argument )
1240 //
7.2.7 IsPropertyKey ( argument )
1241 function IsPropertyKey(argument) {
1242 if (Type(argument) === 'string') return true;
1243 if (Type(argument) === 'symbol') return true;
1247 //
7.2.8 IsRegExp ( argument )
1248 //
7.2.5 IsConstructor ( argument )
1250 //
7.2.9 SameValue(x, y)
1251 function SameValue(x, y) {
1252 if (typeof x !== typeof y) return false;
1257 if (x !== x && y !== y) return true;
1258 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1268 //
7.2.10 SameValueZero(x, y)
1269 function SameValueZero(x, y) {
1270 if (typeof x !== typeof y) return false;
1275 if (x !== x && y !== y) return true;
1285 //----------------------------------------
1286 //
7.3 Operations on Objects
1287 //----------------------------------------
1290 // - just use o.p or o[p]
1292 //
7.3.2 GetV (V, P)
1293 function GetV(v, p) {
1294 var o = ToObject(v);
1298 //
7.3.3 Set (O, P, V, Throw)
1299 // - just use o.p = v or o[p] = v
1304 //
7.3.9 GetMethod (O, P)
1305 function GetMethod(o, p) {
1306 var func = GetV(o, p);
1307 if (func === undefined || func === null) return undefined;
1308 if (!IsCallable(func)) throw TypeError();
1312 //
7.3.10 HasProperty (O, P)
1313 function HasProperty(o, p) {
1315 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1316 if (Type(o) !== 'object') return false;
1317 o = Object.getPrototypeOf(o);
1322 //
7.3.11 HasOwnProperty (O, P)
1323 function HasOwnProperty(o, p) {
1324 return Object.prototype.hasOwnProperty.call(o, p);
1327 //----------------------------------------
1328 //
7.4 Operations on Iterator Objects
1329 //----------------------------------------
1331 //
7.4.1 GetIterator ( obj, method )
1332 function GetIterator(obj, method) {
1333 if (arguments.length <
2)
1334 method = GetMethod(obj, $$iterator);
1335 var iterator = method.call(obj);
1336 if (Type(iterator) !== 'object') throw TypeError();
1340 //
7.4.2 IteratorNext ( iterator, value )
1341 function IteratorNext(iterator, value) {
1342 if (arguments.length <
2)
1343 var result = iterator.next();
1345 result = iterator.next(value);
1346 if (Type(result) !== 'object') throw TypeError();
1350 //
7.4.3 IteratorComplete ( iterResult )
1351 function IteratorComplete(iterResult) {
1352 console.assert(Type(iterResult) === 'object');
1353 return Boolean(iterResult.done);
1356 //
7.4.4 IteratorValue ( iterResult )
1357 function IteratorValue(iterResult) {
1358 console.assert(Type(iterResult) === 'object');
1359 return iterResult.value;
1362 //
7.4.5 IteratorStep ( iterator )
1363 function IteratorStep( iterator, value ) {
1364 var result = IteratorNext(iterator, value);
1365 var done = result['done'];
1366 if (Boolean(done) === true) return false;
1370 //
7.4.6 IteratorClose( iterator, completion )
1371 function IteratorClose( iterator, completion ) {
1372 console.assert(Type(iterator) === 'object');
1373 var _return = GetMethod(iterator, 'return');
1374 if (_return === undefined) return completion;
1376 var innerResult = _return[iterator]();
1378 // TODO: If completion.[[type]] is throw, return completion
1381 if (Type(innerResult) !== 'object') throw TypeError();
1385 //
7.4.7 CreateIterResultObject (value, done)
1386 function CreateIterResultObject(value, done) {
1387 console.assert(Type(done) === 'boolean');
1389 obj["value"] = value;
1394 //
7.4.8 CreateListIterator (list)
1395 //
7.4.8.1 ListIterator next( )
1396 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1397 //
7.4.9.1 CompoundIterator next( )
1399 //----------------------------------------
1400 //
8 Executable Code and Execution Contexts
1401 //----------------------------------------
1403 //----------------------------------------
1404 //
8.4 Jobs and Job Queues
1405 //----------------------------------------
1407 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1408 function EnqueueJob(queueName, job, args) {
1409 var fn = function() { job.apply(undefined, args); };
1413 //
8.4.2 NextJob result
1414 function NextJob(result) {
1418 //----------------------------------------
1419 //
9 Ordinary and Exotic Objects Behaviors
1420 //----------------------------------------
1422 //
9.1.11 [[Enumerate]] ()
1423 function Enumerate(obj) {
1425 if (Object(obj) !== obj) return e;
1426 var visited = new Set;
1427 while (obj !== null) {
1428 Object.getOwnPropertyNames(obj).forEach(function(name) {
1429 if (!visited.has(name)) {
1430 var desc = Object.getOwnPropertyDescriptor(obj, name);
1433 if (desc.enumerable) e.push(name);
1437 obj = Object.getPrototypeOf(obj);
1439 return e[$$iterator]();
1442 //
9.1.12 [[OwnPropertyKeys]] ( )
1443 function OwnPropertyKeys(o) {
1444 return Object.getOwnPropertyNames(o);
1447 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1448 function ObjectCreate(proto, internalSlotsList) {
1449 return Object.create(proto, internalSlotsList);
1452 // ---------------------------------------
1453 //
19 Fundamental Objects
1454 // ---------------------------------------
1456 // ---------------------------------------
1457 //
19.1 Object Objects
1458 // ---------------------------------------
1460 //
19.1.1 The Object Constructor
1461 //
19.1.1.1 Object ( [ value ] )
1462 //
19.1.2 Properties of the Object Constructor
1463 //
19.1.2.1 Object.assign ( target, ...sources )
1466 function assign(target, /*...*/sources) {
1467 var to = ToObject(target);
1468 if (arguments.length <
2) return to;
1470 var sourcesIndex =
1;
1471 while (sourcesIndex < arguments.length) {
1472 var nextSource = arguments[sourcesIndex++];
1473 if (nextSource === undefined || nextSource === null) {
1476 var from = ToObject(nextSource);
1477 keys = OwnPropertyKeys(from);
1479 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1480 var nextKey = keys[keysIndex];
1481 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1482 if (desc !== undefined && desc.enumerable) {
1483 var propValue = from[nextKey];
1484 to[nextKey] = propValue;
1491 //
19.1.2.2 Object.create ( O [ , Properties ] )
1492 //
19.1.2.3 Object.defineProperties ( O, Properties )
1493 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1494 //
19.1.2.5 Object.freeze ( O )
1495 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1498 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1499 $getOwnPropertyNames = Object.getOwnPropertyNames,
1500 $keys = Object.keys,
1501 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1503 function isStringKey(k) { return !symbolForKey(k); }
1505 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1507 Object, 'getOwnPropertyNames',
1508 function getOwnPropertyNames(o) {
1509 if (Object.prototype.toString.call(o) === '[object Window]') {
1510 // Workaround for cross-realm calling by IE itself.
1511 // https://github.com/inexorabletash/polyfill/issues/
96
1513 return $getOwnPropertyNames(o).filter(isStringKey);
1515 return $window_names.slice();
1518 return $getOwnPropertyNames(o).filter(isStringKey);
1521 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1523 Object, 'getOwnPropertySymbols',
1524 function getOwnPropertySymbols(o) {
1525 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1528 //
19.1.2.14 Object.keys ( O )
1532 return $keys(o).filter(isStringKey);
1536 //
19.1.2.9 Object.getPrototypeOf ( O )
1537 //
19.1.2.10 Object.is ( value1, value2 )
1540 function is(value1, value2) {
1541 return SameValue(value1, value2);
1544 //
19.1.2.11 Object.isExtensible ( O )
1545 //
19.1.2.12 Object.isFrozen ( O )
1546 //
19.1.2.13 Object.isSealed ( O )
1548 //
19.1.2.14 Object.keys ( O )
1551 //
19.1.2.15 Object.preventExtensions ( O )
1552 //
19.1.2.16 Object.prototype
1553 //
19.1.2.17 Object.seal ( O )
1555 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1557 Object, 'setPrototypeOf',
1558 function setPrototypeOf(o, proto) {
1559 if (Type(o) !== 'object') throw TypeError();
1560 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1561 o.__proto__ = proto;
1566 //
19.1.3 Properties of the Object Prototype Object
1567 //
19.1.3.1 Object.prototype.constructor
1568 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1569 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1570 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1571 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1572 //
19.1.3.6 Object.prototype.toString ( )
1573 hook(Object.prototype, 'toString',
1575 var o = strict(this);
1576 if (o === Object(o) && $$toStringTag in o) {
1577 return '[object ' + o[$$toStringTag] + ']';
1582 //
19.1.3.7 Object.prototype.valueOf ( )
1583 //
19.1.4 Properties of Object Instances
1585 // ---------------------------------------
1586 //
19.2 Function Objects
1587 // ---------------------------------------
1589 //
19.2.1 The Function Constructor
1590 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1591 //
19.2.2 Properties of the Function Constructor
1592 //
19.2.2.1 Function.length
1593 //
19.2.2.2 Function.prototype
1594 //
19.2.3 Properties of the Function Prototype Object
1595 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1596 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1597 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1598 //
19.2.3.4 Function.prototype.constructor
1599 //
19.2.3.5 Function.prototype.toString ( )
1600 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1601 //
19.2.4 Function Instances
1604 //
19.2.4.3 prototype
1606 // (No polyfillable changes from ES5)
1608 // ---------------------------------------
1609 //
19.3 Boolean Objects
1610 // ---------------------------------------
1612 //
19.3.1 The Boolean Constructor
1613 //
19.3.1.1 Boolean ( value )
1614 //
19.3.2 Properties of the Boolean Constructor
1615 //
19.3.2.1 Boolean.prototype
1616 //
19.3.3 Properties of the Boolean Prototype Object
1617 //
19.3.3.1 Boolean.prototype.constructor
1618 //
19.3.3.2 Boolean.prototype.toString ( )
1619 //
19.3.3.3 Boolean.prototype.valueOf ( )
1620 //
19.3.4 Properties of Boolean Instances
1622 // (No polyfillable changes from ES5)
1624 // ---------------------------------------
1625 //
19.4 Symbol Objects
1626 // ---------------------------------------
1628 // Moved earlier in this script, so that other polyfills can depend on them.
1630 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1631 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1633 // ---------------------------------------
1634 //
19.5 Error Objects
1635 // ---------------------------------------
1637 //
19.5.1 The Error Constructor
1638 //
19.5.1.1 Error ( message )
1639 //
19.5.1.2 new Error( ...argumentsList )
1640 //
19.5.2 Properties of the Error Constructor
1641 //
19.5.2.1 Error.prototype
1642 //
19.5.3 Properties of the Error Prototype Object
1643 //
19.5.3.1 Error.prototype.constructor
1644 //
19.5.3.2 Error.prototype.message
1645 //
19.5.3.3 Error.prototype.name
1646 //
19.5.3.4 Error.prototype.toString ( )
1647 //
19.5.4 Properties of Error Instances
1648 //
19.5.5 Native Error Types Used in This Standard
1649 //
19.5.5.1 EvalError
1650 //
19.5.5.2 RangeError
1651 //
19.5.5.3 ReferenceError
1652 //
19.5.5.4 SyntaxError
1653 //
19.5.5.5 TypeError
1654 //
19.5.5.6 URIError
1655 //
19.5.6 NativeError Object Structure
1656 //
19.5.6.1 NativeError Constructors
1657 //
19.5.6.1.1 NativeError ( message )
1658 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1659 //
19.5.6.2 Properties of the NativeError Constructors
1660 //
19.5.6.2.1 NativeError.prototype
1661 //
19.5.6.3 Properties of the NativeError Prototype Objects
1662 //
19.5.6.4 Properties of NativeError Instances
1664 // (No polyfillable changes from ES5)
1666 // ---------------------------------------
1667 //
20 Numbers and Dates
1668 // ---------------------------------------
1670 // ---------------------------------------
1671 //
20.1 Number Objects
1672 // ---------------------------------------
1674 //
20.1.1 The Number Constructor
1675 //
20.1.1.1 Number ( [ value ] )
1676 //
20.1.1.2 new Number ( ...argumentsList )
1677 //
20.1.2 Properties of the Number Constructor
1679 //
20.1.2.1 Number.EPSILON
1684 for (next =
1;
1 + next !==
1; next = next /
2)
1689 //
20.1.2.2 Number.isFinite ( number )
1692 function isFinite(number) {
1693 if (Type(number) !== 'number') return false;
1694 if (number !== number || number === +Infinity || number === -Infinity) return false;
1698 //
20.1.2.3 Number.isInteger ( number )
1700 Number, 'isInteger',
1701 function isInteger(number) {
1702 if (Type(number) !== 'number') return false;
1703 if (number !== number || number === +Infinity || number === -Infinity) return false;
1704 var integer = ToInteger(number);
1705 if (integer !== number) return false;
1709 //
20.1.2.4 Number.isNaN ( number )
1712 function isNaN(number) {
1713 if (Type(number) !== 'number') return false;
1714 if (number !== number) return true;
1718 //
20.1.2.5 Number.isSafeInteger ( number )
1720 Number, 'isSafeInteger',
1721 function isSafeInteger(number) {
1722 if (Type(number) !== 'number') return false;
1723 if (number !== number || number === +Infinity || number === -Infinity) return false;
1724 var integer = ToInteger(number);
1725 if (integer !== number) return false;
1726 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1731 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1733 Number, 'MAX_SAFE_INTEGER',
1734 9007199254740991); //
2^
53-
1
1736 //
20.1.2.7 Number.MAX_VALUE
1738 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1740 Number, 'MIN_SAFE_INTEGER',
1741 -
9007199254740991); // -
2^
53+
1
1743 //
20.1.2.9 Number.MIN_VALUE
1744 //
20.1.2.10 Number.NaN
1745 //
20.1.2.11 Number.NEGATIVE_INFINITY
1747 //
20.1.2.12 Number.parseFloat ( string )
1748 define(Number, 'parseFloat', $parseFloat);
1750 //
20.1.2.13 Number.parseInt ( string, radix )
1751 define(Number, 'parseInt', $parseInt);
1753 //
20.1.2.14 Number.POSITIVE_INFINITY
1754 //
20.1.2.15 Number.prototype
1756 //
20.1.3 Properties of the Number Prototype Object
1757 //
20.1.3.1 Number.prototype.constructor
1758 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1759 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1760 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1761 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1762 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1763 //
20.1.3.7 Number.prototype.valueOf ( )
1764 //
20.1.4 Properties of Number Instances
1766 // ---------------------------------------
1767 //
20.2 The Math Object
1768 // ---------------------------------------
1770 //
20.2.1 Value Properties of the Math Object
1772 //
20.2.1.2 Math.LN10
1773 //
20.2.1.3 Math.LN2
1774 //
20.2.1.4 Math.LOG10E
1775 //
20.2.1.5 Math.LOG2E
1777 //
20.2.1.7 Math.SQRT1_2
1778 //
20.2.1.8 Math.SQRT2
1780 //
20.2.1.9 Math [ @@toStringTag ]
1781 define(Math, $$toStringTag, 'Math');
1783 //
20.2.2 Function Properties of the Math Object
1784 //
20.2.2.1 Math.abs ( x )
1785 //
20.2.2.2 Math.acos ( x )
1787 //
20.2.2.3 Math.acosh(x)
1792 return log(x + sqrt(x * x -
1));
1795 //
20.2.2.4 Math.asin ( x )
1797 //
20.2.2.5 Math.asinh( x )
1802 if (SameValue(x, -
0)) {
1805 var s = sqrt(x * x +
1);
1806 return (s === -x) ? log(
0) : log(x + s);
1809 //
20.2.2.6 Math.atan ( x )
1811 //
20.2.2.7 Math.atanh( x )
1816 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1819 //
20.2.2.8 Math.atan2 ( y, x )
1821 //
20.2.2.9 Math.cbrt ( x )
1829 var r = pow(abs(x),
1/
3);
1831 return r + (r * (t-r) / (
2*r + t));
1834 //
20.2.2.10 Math.ceil ( x )
1836 //
20.2.2.11 Math.clz32 ( x )
1841 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1842 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1845 return x &
0xff000000 ? clz8(x
>> 24) :
1846 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1847 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1852 //
20.2.2.12 Math.cos ( x )
1854 //
20.2.2.13 Math.cosh ( x )
1859 return (pow(E, x) + pow(E, -x)) /
2;
1862 //
20.2.2.14 Math.exp ( x )
1864 //
20.2.2.15 Math.expm1 ( x )
1869 // from: http://www.johndcook.com/cpp_log1p.html
1870 if (SameValue(x, -
0)) {
1872 } else if (abs(x) <
1e-5) {
1873 return x +
0.5 * x * x; // two terms of Taylor expansion
1879 //
20.2.2.16 Math.floor ( x )
1881 //
20.2.2.17 Math.fround ( x )
1884 function fround(x) {
1888 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1891 return (new Float32Array([x]))[
0];
1894 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1899 var m =
0, sawNaN = false;
1900 for (var i =
0; i < arguments.length; ++i) {
1901 var n = abs(Number(arguments[i]));
1902 if (n === Infinity) return n;
1903 if (n !== n) sawNaN = true;
1907 if (sawNaN) return NaN;
1908 if (m ===
0) return +
0;
1910 for (i =
0; i < values.length; ++i) {
1911 var r = values[i] / m;
1914 return m * sqrt(sum);
1917 //
20.2.2.19 Math.imul ( x, y )
1920 function imul(x, y) {
1921 var a = ToUint32(x);
1922 var b = ToUint32(y);
1923 // (slow but accurate)
1924 var ah = (a
>>> 16) &
0xffff;
1925 var al = a &
0xffff;
1926 var bh = (b
>>> 16) &
0xffff;
1927 var bl = b &
0xffff;
1928 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1929 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1932 //
20.2.2.20 Math.log ( x )
1934 //
20.2.2.21 Math.log1p ( x )
1939 // from: http://www.johndcook.com/cpp_expm1.html
1942 } else if (SameValue(x, -
0)) {
1944 } else if (abs(x)
> 1e-4) {
1947 return (-
0.5 * x +
1) * x;
1951 //
20.2.2.22 Math.log10 ( x )
1956 return log(x) * LOG10E;
1959 //
20.2.2.23 Math.log2 ( x )
1964 return log(x) * LOG2E;
1967 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1968 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1969 //
20.2.2.26 Math.pow ( x, y )
1970 //
20.2.2.27 Math.random ( )
1971 //
20.2.2.28 Math.round ( x )
1973 //
20.2.2.29 Math.sign(x)
1978 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1981 //
20.2.2.30 Math.sin ( x )
1983 //
20.2.2.31 Math.sinh( x )
1988 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1991 //
20.2.2.32 Math.sqrt ( x )
1992 //
20.2.2.33 Math.tan ( x )
1994 //
20.2.2.34 Math.tanh ( x )
1999 var n = pow(E,
2 * x) -
1,
2000 d = pow(E,
2 * x) +
1;
2001 if (SameValue(x, -
0))
2003 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2006 //
20.2.2.35 Math.trunc ( x )
2011 return $isNaN(x) ? NaN :
2012 x <
0 ? ceil(x) : floor(x);
2015 // ---------------------------------------
2016 //
20.3 Date Objects
2017 // ---------------------------------------
2019 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2020 //
20.3.1.1 Time Values and Time Range
2021 //
20.3.1.2 Day Number and Time within Day
2022 //
20.3.1.3 Year Number
2023 //
20.3.1.4 Month Number
2024 //
20.3.1.5 Date Number
2025 //
20.3.1.6 Week Day
2026 //
20.3.1.7 Local Time Zone Adjustment
2027 //
20.3.1.8 Daylight Saving Time Adjustment
2028 //
20.3.1.9 Local Time
2029 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2030 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2031 //
20.3.1.12 MakeDay (year, month, date)
2032 //
20.3.1.13 MakeDate (day, time)
2033 //
20.3.1.14 TimeClip (time)
2034 //
20.3.1.15 Date Time String Format
2035 //
20.3.1.15.1 Extended years
2036 //
20.3.2 The Date Constructor
2037 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2038 //
20.3.2.2 Date ( value )
2039 //
20.3.2.3 Date ( )
2040 //
20.3.3 Properties of the Date Constructor
2041 //
20.3.3.1 Date.now ( )
2042 //
20.3.3.2 Date.parse (string)
2043 //
20.3.3.3 Date.prototype
2044 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2045 //
20.3.4 Properties of the Date Prototype Object
2046 //
20.3.4.1 Date.prototype.constructor
2047 //
20.3.4.2 Date.prototype.getDate ( )
2048 //
20.3.4.3 Date.prototype.getDay ( )
2049 //
20.3.4.4 Date.prototype.getFullYear ( )
2050 //
20.3.4.5 Date.prototype.getHours ( )
2051 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2052 //
20.3.4.7 Date.prototype.getMinutes ( )
2053 //
20.3.4.8 Date.prototype.getMonth ( )
2054 //
20.3.4.9 Date.prototype.getSeconds ( )
2055 //
20.3.4.10 Date.prototype.getTime ( )
2056 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2057 //
20.3.4.12 Date.prototype.getUTCDate ( )
2058 //
20.3.4.13 Date.prototype.getUTCDay ( )
2059 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2060 //
20.3.4.15 Date.prototype.getUTCHours ( )
2061 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2062 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2063 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2064 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2065 //
20.3.4.20 Date.prototype.setDate ( date )
2066 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2067 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2068 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2069 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2070 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2071 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2072 //
20.3.4.27 Date.prototype.setTime ( time )
2073 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2074 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2075 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2076 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2077 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2078 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2079 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2080 //
20.3.4.35 Date.prototype.toDateString ( )
2081 //
20.3.4.36 Date.prototype.toISOString ( )
2082 //
20.3.4.37 Date.prototype.toJSON ( key )
2083 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2084 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2085 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2086 //
20.3.4.41 Date.prototype.toString ( )
2087 //
20.3.4.42 Date.prototype.toTimeString ( )
2088 //
20.3.4.43 Date.prototype.toUTCString ( )
2089 //
20.3.4.44 Date.prototype.valueOf ( )
2090 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2091 //
20.3.5 Properties of Date Instances
2093 // (No polyfillable changes from ES5)
2095 // ---------------------------------------
2096 //
21 Text Processing
2097 // ---------------------------------------
2099 var string_regexp_dispatch = (function() {
2100 var faux = {}, secret = Symbol();
2101 faux[Symbol.match] = function() { return secret; };
2102 return (
"").match(faux) === secret;
2105 //
21.1 String Objects
2106 //
21.1.1 The String Constructor
2107 //
21.1.1.1 String ( value )
2108 //
21.1.2 Properties of the String Constructor
2109 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2111 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2113 String, 'fromCodePoint',
2114 function fromCodePoint(/*...codePoints*/) {
2115 var codePoints = arguments,
2116 length = codePoints.length,
2119 while (nextIndex < length) {
2120 var next = codePoints[nextIndex];
2121 var nextCP = Number(next);
2122 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2123 nextCP <
0 || nextCP
> 0x10FFFF) {
2124 throw RangeError('Invalid code point ' + nextCP);
2126 if (nextCP <
0x10000) {
2127 elements.push(String.fromCharCode(nextCP));
2130 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2131 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2135 return elements.join('');
2138 //
21.1.2.3 String.prototype
2140 //
21.1.2.4 String.raw ( template , ...substitutions )
2143 function raw(template /*, ...substitutions*/) {
2144 var substitutions = [].slice.call(arguments,
1);
2146 var cooked = Object(template);
2147 var rawValue = cooked['raw'];
2148 var raw = Object(rawValue);
2149 var len = raw['length'];
2150 var literalSegments = ToLength(len);
2151 if (literalSegments <=
0) return '';
2152 var stringElements = [];
2155 var next = raw[nextIndex];
2156 var nextSeg = String(next);
2157 stringElements.push(nextSeg);
2158 if (nextIndex +
1 === literalSegments)
2159 return stringElements.join('');
2160 next = substitutions[nextIndex];
2161 var nextSub = String(next);
2162 stringElements.push(nextSub);
2163 nextIndex = nextIndex +
1;
2167 // See https://githib.com/inexorabletash/uate for a more useful version.
2169 //
21.1.3 Properties of the String Prototype Object
2170 //
21.1.3.1 String.prototype.charAt ( pos )
2171 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2173 //
21.1.3.3 String.prototype.codePointAt ( pos )
2175 String.prototype, 'codePointAt',
2176 function codePointAt(pos) {
2177 var o = strict(this);
2179 var position = ToInteger(pos);
2180 var size = s.length;
2181 if (position <
0 || position
>= size) return undefined;
2182 var first = s.charCodeAt(position);
2183 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2184 var second = s.charCodeAt(position +
1);
2185 if (second <
0xDC00 || second
> 0xDFFF) return first;
2186 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2189 //
21.1.3.4 String.prototype.concat ( ...args )
2190 //
21.1.3.5 String.prototype.constructor
2192 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2194 String.prototype, 'endsWith',
2195 function endsWith(searchString) {
2196 var endPosition = arguments[
1];
2198 var o = strict(this);
2200 var searchStr = String(searchString);
2202 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2203 var end = min(max(pos,
0), len);
2204 var searchLength = searchStr.length;
2205 var start = end - searchLength;
2206 if (start <
0) return false;
2207 if (s.substring(start, start + searchLength) === searchStr) return true;
2211 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2213 String.prototype, 'includes',
2214 function includes(searchString) {
2215 var position = arguments[
1];
2217 var o = strict(this);
2219 var searchStr = String(searchString);
2220 var pos = ToInteger(position);
2222 var start = min(max(pos,
0), len);
2223 return s.indexOf(searchStr, start) !== -
1;
2226 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2227 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2228 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2229 //
21.1.3.11 String.prototype.match ( regexp )
2231 String.prototype, 'match',
2232 function match(regexp) {
2233 var o = strict(this);
2235 if (HasProperty(regexp, $$match)) var rx = regexp;
2236 else rx = new RegExp(regexp);
2237 return rx[$$match](s);
2238 }, !string_regexp_dispatch);
2240 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2242 // Not practical due to table sizes; if needed, pull in:
2243 // https://github.com/walling/unorm/
2245 //
21.1.3.13 String.prototype.repeat ( count )
2247 String.prototype, 'repeat',
2248 function repeat(count) {
2249 var o = strict(this);
2251 var n = ToInteger(count);
2252 if (n <
0) throw RangeError();
2253 if (n === Infinity) throw RangeError();
2254 var t = new Array(n +
1).join(s);
2258 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2260 String.prototype, 'replace',
2261 function replace(searchValue, replaceValue) {
2262 var o = strict(this);
2263 if (HasProperty(searchValue, $$replace))
2264 return searchValue[$$replace](o, replaceValue);
2265 return orig_replace.call(o, searchValue, replaceValue);
2266 }, !string_regexp_dispatch);
2268 //
21.1.3.15 String.prototype.search ( regexp )
2270 String.prototype, 'search',
2271 function search(regexp) {
2272 var o = strict(this);
2273 var string = String(o);
2274 if (HasProperty(regexp, $$search)) var rx = regexp;
2275 else rx = new RegExp(regexp);
2276 return rx[$$search](string);
2277 }, !string_regexp_dispatch);
2279 //
21.1.3.16 String.prototype.slice ( start, end )
2280 //
21.1.3.17 String.prototype.split ( separator, limit )
2282 String.prototype, 'split',
2283 function split(separator, limit) {
2284 var o = strict(this);
2285 if (HasProperty(separator, $$split))
2286 return separator[$$split](o, limit);
2287 return orig_split.call(o, separator, limit);
2288 }, !string_regexp_dispatch);
2290 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2292 String.prototype, 'startsWith',
2293 function startsWith(searchString) {
2294 var position = arguments[
1];
2296 var o = strict(this);
2298 var searchStr = String(searchString);
2299 var pos = ToInteger(position);
2301 var start = min(max(pos,
0), len);
2302 var searchLength = searchStr.length;
2303 if (searchLength + start
> len) return false;
2304 if (s.substring(start, start + searchLength) === searchStr) return true;
2308 //
21.1.3.19 String.prototype.substring ( start, end )
2309 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2310 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2311 //
21.1.3.22 String.prototype.toLowerCase ( )
2312 //
21.1.3.23 String.prototype.toString ( )
2313 //
21.1.3.24 String.prototype.toUpperCase ( )
2314 //
21.1.3.25 String.prototype.trim ( )
2315 //
21.1.3.26 String.prototype.valueOf ( )
2317 //
21.1.3.27 String.prototype [ @@iterator ]( )
2319 String.prototype, $$iterator,
2320 function entries() {
2321 return CreateStringIterator(this, 'value');
2324 //
21.1.4 Properties of String Instances
2327 //
21.1.5 String Iterator Objects
2329 function StringIterator() {}
2331 //
21.1.5.1 CreateStringIterator Abstract Operation
2332 function CreateStringIterator(string, kind) {
2333 var s = String(string);
2334 var iterator = new StringIterator;
2335 set_internal(iterator, '[[IteratedString]]', s);
2336 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2337 set_internal(iterator, '[[StringIterationKind]]', kind);
2341 //
21.1.5.2 The %StringIteratorPrototype% Object
2342 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2343 StringIterator.prototype = $StringIteratorPrototype$;
2345 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2347 $StringIteratorPrototype$, 'next',
2349 var o = ToObject(this);
2350 var s = String(o['[[IteratedString]]']),
2351 index = o['[[StringIteratorNextIndex]]'],
2354 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2355 return CreateIterResultObject(undefined, true);
2357 var cp = s.codePointAt(index);
2358 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2359 return CreateIterResultObject(String.fromCodePoint(cp), false);
2362 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2363 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2365 //
21.1.5.3 Properties of String Iterator Instances
2367 // ---------------------------------------
2368 //
21.2 RegExp (Regular Expression) Objects
2369 // ---------------------------------------
2372 //
21.2.2 Pattern Semantics
2373 //
21.2.2.1 Notation
2375 //
21.2.2.3 Disjunction
2376 //
21.2.2.4 Alternative
2378 //
21.2.2.6 Assertion
2379 //
21.2.2.7 Quantifier
2381 //
21.2.2.9 AtomEscape
2382 //
21.2.2.10 CharacterEscape
2383 //
21.2.2.11 DecimalEscape
2384 //
21.2.2.12 CharacterClassEscape
2385 //
21.2.2.13 CharacterClass
2386 //
21.2.2.14 ClassRanges
2387 //
21.2.2.15 NonemptyClassRanges
2388 //
21.2.2.16 NonemptyClassRangesNoDash
2389 //
21.2.2.17 ClassAtom
2390 //
21.2.2.18 ClassAtomNoDash
2391 //
21.2.2.19 ClassEscape
2392 //
21.2.3 The RegExp Constructor
2393 //
21.2.3.1 RegExp ( pattern, flags )
2394 //
21.2.3.2 new RegExp( ...argumentsList )
2395 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2396 //
21.2.4 Properties of the RegExp Constructor
2397 //
21.2.4.1 RegExp.prototype
2398 //
21.2.5 Properties of the RegExp Prototype Object
2399 //
21.2.5.1 RegExp.prototype.constructor
2400 //
21.2.5.2 RegExp.prototype.exec ( string )
2402 //
21.2.5.3 get RegExp.prototype.flags
2403 if (!('flags' in RegExp.prototype)) {
2404 Object.defineProperty(
2405 RegExp.prototype, 'flags', {
2407 var s = String(this);
2408 return s.substring(s.lastIndexOf('/') +
1);
2413 //
21.2.5.4 get RegExp.prototype.global
2414 //
21.2.5.5 get RegExp.prototype.ignoreCase
2416 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2417 define(RegExp.prototype, $$match, function(string) {
2418 var o = strict(this);
2419 return orig_match.call(string, o);
2422 //
21.2.5.7 get RegExp.prototype.multiline
2424 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2425 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2426 var o = strict(this);
2427 return orig_replace.call(string, o, replaceValue);
2430 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2431 define(RegExp.prototype, $$search, function(string) {
2432 var o = strict(this);
2433 return orig_search.call(string, o);
2436 //
21.2.5.10 get RegExp.prototype.source
2438 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2439 define(RegExp.prototype, $$split, function(string, limit) {
2440 var o = strict(this);
2441 return orig_split.call(string, o, limit);
2444 //
21.2.5.12 get RegExp.prototype.sticky
2445 //
21.2.5.13 RegExp.prototype.test( S )
2446 //
21.2.5.14 RegExp.prototype.toString ( )
2447 //
21.2.5.15 get RegExp.prototype.unicode
2449 //
21.2.6 Properties of RegExp Instances
2450 //
21.2.6.1 lastIndex
2452 // (No polyfillable changes from ES5)
2454 // ---------------------------------------
2455 //
22 Indexed Collections
2456 // ---------------------------------------
2458 // ---------------------------------------
2459 //
22.1 Array Objects
2460 // ---------------------------------------
2462 //
22.1.1 The Array Constructor
2463 //
22.1.1.1 Array ( )
2464 //
22.1.1.2 Array (len)
2465 //
22.1.1.3 Array (...items )
2467 //
22.1.2 Properties of the Array Constructor
2469 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2472 function from(items) {
2473 var mapfn = arguments[
1];
2474 var thisArg = arguments[
2];
2476 var c = strict(this);
2477 if (mapfn === undefined) {
2478 var mapping = false;
2480 if (!IsCallable(mapfn)) throw TypeError();
2484 var usingIterator = GetMethod(items, $$iterator);
2485 if (usingIterator !== undefined) {
2486 if (IsConstructor(c)) {
2491 var iterator = GetIterator(items, usingIterator);
2494 var next = IteratorStep(iterator);
2495 if (next === false) {
2499 var nextValue = IteratorValue(next);
2501 var mappedValue = mapfn.call(t, nextValue);
2503 mappedValue = nextValue;
2508 var arrayLike = ToObject(items);
2509 var lenValue = arrayLike.length;
2510 var len = ToLength(lenValue);
2511 if (IsConstructor(c)) {
2518 var kValue = arrayLike[k];
2520 mappedValue = mapfn.call(t, kValue, k);
2522 mappedValue = kValue;
2530 //
22.1.2.2 Array.isArray ( arg )
2532 //
22.1.2.3 Array.of ( ...items )
2536 var items = arguments;
2538 var lenValue = items.length;
2539 var len = ToUint32(lenValue);
2540 var c = strict(this), a;
2541 if (IsConstructor(c)) {
2556 //
22.1.2.4 Array.prototype
2557 //
22.1.2.5 get Array [ @@species ]
2558 //
22.1.3 Properties of the Array Prototype Object
2559 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2560 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2561 //
22.1.3.2 Array.prototype.constructor
2562 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2564 Array.prototype, 'copyWithin',
2565 function copyWithin(target, start/*, end*/) {
2566 var end = arguments[
2];
2568 var o = ToObject(this);
2569 var lenVal = o.length;
2570 var len = ToLength(lenVal);
2572 var relativeTarget = ToInteger(target);
2574 if (relativeTarget <
0)
2575 to = max(len + relativeTarget,
0);
2577 to = min(relativeTarget, len);
2578 var relativeStart = ToInteger(start);
2580 if (relativeStart <
0)
2581 from = max(len + relativeStart,
0);
2583 from = min(relativeStart, len);
2585 if (end === undefined)
2588 relativeEnd = ToInteger(end);
2590 if (relativeEnd <
0)
2591 final = max(len + relativeEnd,
0);
2593 final = min(relativeEnd, len);
2594 var count = min(final - from, len - to);
2596 if (from < to && to < from + count) {
2598 from = from + count -
1;
2599 to = to + count -
1;
2604 var fromKey = String(from);
2605 var toKey = String(to);
2606 var fromPresent = HasProperty(o, fromKey);
2608 var fromVal = o[fromKey];
2613 from = from + direction;
2614 to = to + direction;
2620 //
22.1.3.4 Array.prototype.entries ( )
2621 var nativeArrayIteratorMethods =
2622 ('entries' in Array.prototype && 'next' in [].entries());
2625 Array.prototype, 'entries',
2626 function entries() {
2627 return CreateArrayIterator(this, 'key+value');
2628 }, !nativeArrayIteratorMethods);
2630 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2632 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2634 Array.prototype, 'fill',
2635 function fill(value/*, start, end*/) {
2636 var start = arguments[
1],
2639 var o = ToObject(this);
2640 var lenVal = o.length;
2641 var len = ToLength(lenVal);
2643 var relativeStart = ToInteger(start);
2645 if (relativeStart <
0)
2646 k = max((len + relativeStart),
0);
2648 k = min(relativeStart, len);
2650 if (end === undefined)
2653 relativeEnd = ToInteger(end);
2655 if (relativeEnd <
0)
2656 final = max((len + relativeEnd),
0);
2658 final = min(relativeEnd, len);
2667 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2669 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2671 Array.prototype, 'find',
2672 function find(predicate) {
2673 var o = ToObject(this);
2674 var lenValue = o.length;
2675 var len = ToInteger(lenValue);
2676 if (!IsCallable(predicate)) throw TypeError();
2677 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2681 var kPresent = HasProperty(o, pk);
2684 var testResult = predicate.call(t, kValue, k, o);
2685 if (Boolean(testResult)) {
2694 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2696 Array.prototype, 'findIndex',
2697 function findIndex(predicate) {
2698 var o = ToObject(this);
2699 var lenValue = o.length;
2700 var len = ToLength(lenValue);
2701 if (!IsCallable(predicate)) throw TypeError();
2702 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2706 var kPresent = HasProperty(o, pk);
2709 var testResult = predicate.call(t, kValue, k, o);
2710 if (Boolean(testResult)) {
2719 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2720 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2721 //
22.1.3.12 Array.prototype.join (separator)
2723 //
22.1.3.13 Array.prototype.keys ( )
2725 Array.prototype, 'keys',
2727 return CreateArrayIterator(this, 'key');
2728 }, !nativeArrayIteratorMethods);
2730 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2731 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2732 //
22.1.3.16 Array.prototype.pop ( )
2733 //
22.1.3.17 Array.prototype.push ( ...items )
2734 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2735 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2736 //
22.1.3.20 Array.prototype.reverse ( )
2737 //
22.1.3.21 Array.prototype.shift ( )
2738 //
22.1.3.22 Array.prototype.slice (start, end)
2739 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2740 //
22.1.3.24 Array.prototype.sort (comparefn)
2741 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2742 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2743 //
22.1.3.27 Array.prototype.toString ( )
2744 //
22.1.3.28 Array.prototype.unshift ( ...items )
2746 //
22.1.3.29 Array.prototype.values ( )
2748 Array.prototype, 'values',
2750 return CreateArrayIterator(this, 'value');
2751 }, !nativeArrayIteratorMethods);
2753 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2755 Array.prototype, $$iterator,
2756 Array.prototype.values
2759 //
22.1.3.31 Array.prototype [ @@unscopables ]
2760 //
22.1.4 Properties of Array Instances
2763 //
22.1.5 Array Iterator Objects
2764 function ArrayIterator() {}
2766 //
22.1.5.1 CreateArrayIterator Abstract Operation
2767 function CreateArrayIterator(array, kind) {
2768 var o = ToObject(array);
2769 var iterator = new ArrayIterator;
2770 set_internal(iterator, '[[IteratedObject]]', o);
2771 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2772 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2776 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2777 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2778 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2780 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2782 $ArrayIteratorPrototype$, 'next',
2784 var o = strict(this);
2785 if (Type(o) !== 'object') throw TypeError();
2786 var a = o['[[IteratedObject]]'],
2787 index = o['[[ArrayIteratorNextIndex]]'],
2788 itemKind = o['[[ArrayIterationKind]]'],
2789 lenValue = a.length,
2790 len = ToUint32(lenValue),
2793 if (itemKind.indexOf('sparse') !== -
1) {
2795 while (!found && index < len) {
2796 elementKey = String(index);
2797 found = HasProperty(a, elementKey);
2804 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2805 return CreateIterResultObject(undefined, true);
2808 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2809 if (itemKind.indexOf('value') !== -
1)
2810 elementValue = a[elementKey];
2811 if (itemKind.indexOf('key+value') !== -
1)
2812 return CreateIterResultObject([elementKey, elementValue], false);
2813 if (itemKind.indexOf('key') !== -
1)
2814 return CreateIterResultObject(elementKey, false);
2815 if (itemKind === 'value')
2816 return CreateIterResultObject(elementValue, false);
2817 throw Error('Internal error');
2820 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2821 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2823 //
22.1.5.3 Properties of Array Iterator Instances
2826 // ---------------------------------------
2827 //
22.2 TypedArray Objects
2828 // ---------------------------------------
2830 // See typedarray.js for TypedArray polyfill
2832 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2833 'Int16Array', 'Uint16Array',
2834 'Int32Array', 'Uint32Array',
2835 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2836 if (!($TypedArrayName$ in global))
2838 var $TypedArray$ = global[$TypedArrayName$];
2840 //
22.2.1 The %TypedArray% Intrinsic Object
2841 //
22.2.1.1 %TypedArray% ( length )
2842 //
22.2.1.2 %TypedArray% ( typedArray )
2843 //
22.2.1.3 %TypedArray% ( object )
2844 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2845 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2846 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2848 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2850 $TypedArray$, 'from',
2851 function from(source) {
2852 var mapfn = arguments[
1];
2853 var thisArg = arguments[
2];
2855 var c = strict(this);
2856 if (!IsConstructor(c)) throw TypeError();
2857 if (mapfn === undefined) {
2858 var mapping = false;
2860 if (IsCallable(mapfn)) throw TypeError();
2864 var usingIterator = GetMethod(source, $$iterator);
2865 if (usingIterator !== undefined) {
2866 var iterator = GetIterator(source, usingIterator);
2869 while (next !== false) {
2870 next = IteratorStep(iterator);
2871 if (next !== false) {
2872 var nextValue = IteratorValue(next);
2873 values.push(nextValue);
2876 var len = values.length;
2877 var newObj = new c(len);
2880 var kValue = values.shift();
2882 var mappedValue = mapfn.call(t, kValue);
2884 mappedValue = kValue;
2886 newObj[k] = mappedValue;
2889 console.assert(values.length ===
0);
2892 var arrayLike = ToObject(source);
2893 var lenValue = arrayLike.length;
2894 len = ToLength(lenValue);
2895 newObj = new c(len);
2898 kValue = arrayLike[k];
2900 mappedValue = mapfn.call(t, kValue, k);
2902 mappedValue = kValue;
2904 newObj[k] = mappedValue;
2910 //
22.2.2.2 %TypedArray%.of ( ...items )
2914 var items = arguments;
2916 var len = items.length;
2917 var c = strict(this);
2918 var newObj = new c(len);
2921 newObj[k] = items[k];
2927 //
22.2.2.3 %TypedArray%.prototype
2928 //
22.2.2.4 get %TypedArray% [ @@species ]
2929 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2930 //
22.2.3.1 get %TypedArray%.prototype.buffer
2931 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2932 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2933 //
22.2.3.4 %TypedArray%.prototype.constructor
2935 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2936 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2938 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2939 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2941 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2942 define($TypedArray$.prototype, 'every', Array.prototype.every);
2944 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2946 $TypedArray$.prototype, 'fill',
2947 //Array.prototype.fill // Doesn't work in Safari
7
2948 function fill(value/*, start, end*/) {
2949 var start = arguments[
1],
2952 var o = ToObject(this);
2953 var lenVal = o.length;
2954 var len = ToLength(lenVal);
2956 var relativeStart = ToInteger(start);
2958 if (relativeStart <
0) k = max((len + relativeStart),
0);
2959 else k = min(relativeStart, len);
2961 if (end === undefined) relativeEnd = len;
2962 else relativeEnd = ToInteger(end);
2964 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2965 else final = min(relativeEnd, len);
2974 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2976 $TypedArray$.prototype, 'filter',
2977 function filter(callbackfn) {
2978 var thisArg = arguments[
1];
2980 var o = ToObject(this);
2981 var lenVal = o.length;
2982 var len = ToLength(lenVal);
2983 if (!IsCallable(callbackfn)) throw TypeError();
2985 var c = o.constructor;
2991 var selected = callbackfn.call(t, kValue, k, o);
2998 var a = new c(captured);
3000 for (var i =
0; i < kept.length; ++i) {
3008 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3009 define($TypedArray$.prototype, 'find', Array.prototype.find);
3011 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3012 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3014 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3015 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3017 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3018 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3020 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3021 define($TypedArray$.prototype, 'join', Array.prototype.join);
3023 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3024 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3026 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3027 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3029 //
22.2.3.17 get %TypedArray%.prototype.length
3031 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3033 $TypedArray$.prototype, 'map',
3034 function map(callbackfn) {
3035 var thisArg = arguments[
1];
3037 var o = ToObject(this);
3038 var lenValue = o.length;
3039 var len = ToLength(lenValue);
3040 if (!IsCallable(callbackfn)) throw TypeError();
3043 var c = o.constructor;
3044 if (IsConstructor(c))
3046 if (a === undefined)
3050 var kPresent = HasProperty(o, k);
3053 var mappedValue = callbackfn.call(t, kValue, k, o);
3061 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3062 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3064 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3065 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3067 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3068 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3070 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3071 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3072 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3074 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3076 $TypedArray$.prototype, 'slice',
3077 function slice(start, end) {
3078 var o = ToObject(this);
3079 var lenVal = o.length;
3080 var len = ToLength(lenVal);
3081 var relativeStart = ToInteger(start);
3082 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3083 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3084 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3085 var count = final - k;
3086 var c = o.constructor;
3087 if (IsConstructor(c)) {
3088 var a = new c(count);
3102 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3103 define($TypedArray$.prototype, 'some', Array.prototype.some);
3105 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3107 $TypedArray$.prototype, 'sort',
3109 var comparefn = arguments[
0];
3111 function sortCompare(x, y) {
3112 console.assert(Type(x) === 'number' && Type(y) === 'number');
3113 if (x !== x && y !== y) return +
0;
3114 if (x !== x) return
1;
3115 if (y !== y) return -
1;
3116 if (comparefn !== undefined) {
3117 return comparefn(x, y);
3119 if (x < y) return -
1;
3120 if (x
> y) return
1;
3123 return Array.prototype.sort.call(this, sortCompare);
3126 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3127 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3128 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3130 //
22.2.3.29 %TypedArray%.prototype.values ( )
3131 define($TypedArray$.prototype, 'values', Array.prototype.values);
3133 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3135 $TypedArray$.prototype, $$iterator,
3136 $TypedArray$.prototype.values
3139 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3140 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3142 //
22.2.4 The TypedArray Constructors
3143 //
22.2.4.1TypedArray( ... argumentsList)
3144 //
22.2.5 Properties of the TypedArray Constructors
3145 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3146 //
22.2.5.2 TypedArray.prototype
3147 //
22.2.6 Properties of TypedArray Prototype Objects
3148 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3149 //
22.2.6.2 TypedArray.prototype.constructor
3150 //
22.2.7 Properties of TypedArray Instances
3153 // ---------------------------------------
3154 //
23 Keyed Collection
3155 // ---------------------------------------
3157 // ---------------------------------------
3159 // ---------------------------------------
3162 //
23.1.1 The Map Constructor
3164 //
23.1.1.1 Map ( [ iterable ] )
3166 function Map(/*iterable*/) {
3167 var map = strict(this);
3168 var iterable = arguments[
0];
3170 if (Type(map) !== 'object') throw TypeError();
3171 if ('[[MapData]]' in map) throw TypeError();
3173 if (iterable !== undefined) {
3174 var adder = map['set'];
3175 if (!IsCallable(adder)) throw TypeError();
3176 var iter = GetIterator(ToObject(iterable));
3178 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3179 if (iter === undefined) return map;
3181 var next = IteratorStep(iter);
3184 var nextItem = IteratorValue(next);
3185 if (Type(nextItem) !== 'object') throw TypeError();
3186 var k = nextItem[
0];
3187 var v = nextItem[
1];
3188 adder.call(map, k, v);
3194 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3195 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3196 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3197 (new global.Map([['a',
1]]).size !==
1))
3201 function MapDataIndexOf(mapData, key) {
3203 if (key === key) return mapData.keys.indexOf(key);
3204 // Slow case for NaN
3205 for (i =
0; i < mapData.keys.length; i +=
1)
3206 if (SameValueZero(mapData.keys[i], key)) return i;
3210 //
23.1.1.2 new Map ( ... argumentsList )
3211 //
23.1.2 Properties of the Map Constructor
3212 //
23.1.2.1 Map.prototype
3213 var $MapPrototype$ = {};
3214 Map.prototype = $MapPrototype$;
3216 //
23.1.2.2 get Map [ @@species ]
3218 //
23.1.3 Properties of the Map Prototype Object
3219 //
23.1.3.1 Map.prototype.clear ()
3221 Map.prototype, 'clear',
3223 var m = strict(this);
3224 if (Type(m) !== 'object') throw TypeError();
3225 if (!('[[MapData]]' in m)) throw TypeError();
3226 if (m['[[MapData]]'] === undefined) throw TypeError();
3227 var entries = m['[[MapData]]'];
3228 entries.keys.length =
0;
3229 entries.values.length =
0;
3233 //
23.1.3.2 Map.prototype.constructor
3235 //
23.1.3.3 Map.prototype.delete ( key )
3237 Map.prototype, 'delete',
3238 function delete_(key) {
3239 var m = strict(this);
3240 if (Type(m) !== 'object') throw TypeError();
3241 if (!('[[MapData]]' in m)) throw TypeError();
3242 if (m['[[MapData]]'] === undefined) throw TypeError();
3243 var entries = m['[[MapData]]'];
3244 var i = MapDataIndexOf(entries, key);
3245 if (i <
0) return false;
3246 entries.keys[i] = empty;
3247 entries.values[i] = empty;
3251 //
23.1.3.4 Map.prototype.entries ( )
3253 Map.prototype, 'entries',
3254 function entries() {
3255 var m = strict(this);
3256 if (Type(m) !== 'object') throw TypeError();
3257 return CreateMapIterator(m, 'key+value');
3260 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3262 Map.prototype, 'forEach',
3263 function forEach(callbackfn /*, thisArg*/) {
3264 var thisArg = arguments[
1];
3266 var m = strict(this);
3267 if (Type(m) !== 'object') throw TypeError();
3268 if (!('[[MapData]]' in m)) throw TypeError();
3269 if (m['[[MapData]]'] === undefined) throw TypeError();
3270 var entries = m['[[MapData]]'];
3272 if (!IsCallable(callbackfn)) {
3273 throw TypeError('First argument to forEach is not callable.');
3275 for (var i =
0; i < entries.keys.length; ++i) {
3276 if (entries.keys[i] !== empty) {
3277 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3283 //
23.1.3.6 Map.prototype.get ( key )
3285 Map.prototype, 'get',
3287 var m = strict(this);
3288 if (Type(m) !== 'object') throw TypeError();
3289 if (!('[[MapData]]' in m)) throw TypeError();
3290 if (m['[[MapData]]'] === undefined) throw TypeError();
3291 var entries = m['[[MapData]]'];
3292 var i = MapDataIndexOf(entries, key);
3293 if (i
>=
0) return entries.values[i];
3297 //
23.1.3.7 Map.prototype.has ( key )
3299 Map.prototype, 'has',
3301 var m = strict(this);
3302 if (Type(m) !== 'object') throw TypeError();
3303 if (!('[[MapData]]' in m)) throw TypeError();
3304 if (m['[[MapData]]'] === undefined) throw TypeError();
3305 var entries = m['[[MapData]]'];
3306 if (MapDataIndexOf(entries, key)
>=
0) return true;
3310 //
23.1.3.8 Map.prototype.keys ( )
3312 Map.prototype, 'keys',
3314 var m = strict(this);
3315 if (Type(m) !== 'object') throw TypeError();
3316 return CreateMapIterator(m, 'key');
3319 //
23.1.3.9 Map.prototype.set ( key , value )
3321 Map.prototype, 'set',
3322 function set(key, value) {
3323 var m = strict(this);
3324 if (Type(m) !== 'object') throw TypeError();
3325 if (!('[[MapData]]' in m)) throw TypeError();
3326 if (m['[[MapData]]'] === undefined) throw TypeError();
3327 var entries = m['[[MapData]]'];
3328 var i = MapDataIndexOf(entries, key);
3329 if (i <
0) i = entries.keys.length;
3330 if (SameValue(key, -
0)) key =
0;
3331 entries.keys[i] = key;
3332 entries.values[i] = value;
3336 //
23.1.3.10 get Map.prototype.size
3337 Object.defineProperty(
3338 Map.prototype, 'size', {
3340 var m = strict(this);
3341 if (Type(m) !== 'object') throw TypeError();
3342 if (!('[[MapData]]' in m)) throw TypeError();
3343 if (m['[[MapData]]'] === undefined) throw TypeError();
3344 var entries = m['[[MapData]]'];
3346 for (var i =
0; i < entries.keys.length; ++i) {
3347 if (entries.keys[i] !== empty)
3354 //
23.1.3.11 Map.prototype.values ( )
3356 Map.prototype, 'values',
3358 var m = strict(this);
3359 if (Type(m) !== 'object') throw TypeError();
3360 return CreateMapIterator(m, 'value');
3363 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3365 Map.prototype, $$iterator,
3367 var m = strict(this);
3368 if (Type(m) !== 'object') throw TypeError();
3369 return CreateMapIterator(m, 'key+value');
3372 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3373 define(global.Map.prototype, $$toStringTag, 'Map');
3375 //
23.1.4 Properties of Map Instances
3376 //
23.1.5 Map Iterator Objects
3379 function MapIterator() {}
3381 //
23.1.5.1 CreateMapIterator Abstract Operation
3382 function CreateMapIterator(map, kind) {
3383 if (Type(map) !== 'object') throw TypeError();
3384 if (!('[[MapData]]' in map)) throw TypeError();
3385 if (map['[[MapData]]'] === undefined) throw TypeError();
3386 var iterator = new MapIterator;
3387 set_internal(iterator, '[[Map]]', map);
3388 set_internal(iterator, '[[MapNextIndex]]',
0);
3389 set_internal(iterator, '[[MapIterationKind]]', kind);
3393 //
23.1.5.2 The %MapIteratorPrototype% Object
3394 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3395 MapIterator.prototype = $MapIteratorPrototype$;
3397 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3399 $MapIteratorPrototype$, 'next',
3401 var o = strict(this);
3402 if (Type(o) !== 'object') throw TypeError();
3403 var m = o['[[Map]]'],
3404 index = o['[[MapNextIndex]]'],
3405 itemKind = o['[[MapIterationKind]]'],
3406 entries = m['[[MapData]]'];
3407 while (index < entries.keys.length) {
3408 var e = {key: entries.keys[index], value: entries.values[index]};
3410 set_internal(o, '[[MapNextIndex]]', index);
3411 if (e.key !== empty) {
3412 if (itemKind === 'key') {
3413 return CreateIterResultObject(e.key, false);
3414 } else if (itemKind === 'value') {
3415 return CreateIterResultObject(e.value, false);
3417 return CreateIterResultObject([e.key, e.value], false);
3421 return CreateIterResultObject(undefined, true);
3424 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3425 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3427 //
23.1.5.3 Properties of Map Iterator Instances
3430 // ---------------------------------------
3432 // ---------------------------------------
3435 //
23.2.1 The Set Constructor
3436 //
23.2.1.1 Set ( [ iterable ] )
3439 function Set(/*iterable*/) {
3440 var set = strict(this);
3441 var iterable = arguments[
0];
3443 if (Type(set) !== 'object') throw TypeError();
3444 if ('[[SetData]]' in set) throw TypeError();
3446 if (iterable !== undefined) {
3447 var adder = set['add'];
3448 if (!IsCallable(adder)) throw TypeError();
3449 var iter = GetIterator(ToObject(iterable));
3451 set_internal(set, '[[SetData]]', []);
3452 if (iter === undefined) return set;
3454 var next = IteratorStep(iter);
3457 var nextValue = IteratorValue(next);
3458 adder.call(set, nextValue);
3464 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3465 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3466 (new global.Set([
1]).size !==
1))
3469 function SetDataIndexOf(setData, key) {
3472 return setData.indexOf(key);
3473 // Slow case for NaN
3474 for (i =
0; i < setData.length; i +=
1)
3475 if (SameValueZero(setData[i], key)) return i;
3479 //
23.2.1.2 new Set ( ...argumentsList )
3480 //
23.2.2 Properties of the Set Constructor
3482 //
23.2.2.1 Set.prototype
3483 var $SetPrototype$ = {};
3484 Set.prototype = $SetPrototype$;
3486 //
23.2.2.2 get Set [ @@species ]
3487 //
23.2.3 Properties of the Set Prototype Object
3489 //
23.2.3.1 Set.prototype.add (value )
3491 Set.prototype, 'add',
3492 function add(value) {
3493 var s = strict(this);
3494 if (Type(s) !== 'object') throw TypeError();
3495 if (!('[[SetData]]' in s)) throw TypeError();
3496 if (s['[[SetData]]'] === undefined) throw TypeError();
3497 if (SameValue(value, -
0)) value =
0;
3498 var entries = s['[[SetData]]'];
3499 var i = SetDataIndexOf(entries, value);
3500 if (i <
0) i = s['[[SetData]]'].length;
3501 s['[[SetData]]'][i] = value;
3506 //
23.2.3.2 Set.prototype.clear ()
3508 Set.prototype, 'clear',
3510 var s = strict(this);
3511 if (Type(s) !== 'object') throw TypeError();
3512 if (!('[[SetData]]' in s)) throw TypeError();
3513 if (s['[[SetData]]'] === undefined) throw TypeError();
3514 var entries = s['[[SetData]]'];
3519 //
23.2.3.3 Set.prototype.constructor
3520 //
23.2.3.4 Set.prototype.delete ( value )
3522 Set.prototype, 'delete',
3523 function delete_(value) {
3524 var s = strict(this);
3525 if (Type(s) !== 'object') throw TypeError();
3526 if (!('[[SetData]]' in s)) throw TypeError();
3527 if (s['[[SetData]]'] === undefined) throw TypeError();
3528 var entries = s['[[SetData]]'];
3529 var i = SetDataIndexOf(entries, value);
3530 if (i <
0) return false;
3535 //
23.2.3.5 Set.prototype.entries ( )
3537 Set.prototype, 'entries',
3538 function entries() {
3539 var s = strict(this);
3540 if (Type(s) !== 'object') throw TypeError();
3541 return CreateSetIterator(s, 'key+value');
3544 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3546 Set.prototype, 'forEach',
3547 function forEach(callbackfn/*, thisArg*/) {
3548 var thisArg = arguments[
1];
3550 var s = strict(this);
3551 if (Type(s) !== 'object') throw TypeError();
3552 if (!('[[SetData]]' in s)) throw TypeError();
3553 if (s['[[SetData]]'] === undefined) throw TypeError();
3554 var entries = s['[[SetData]]'];
3556 if (!IsCallable(callbackfn)) {
3557 throw TypeError('First argument to forEach is not callable.');
3559 for (var i =
0; i < entries.length; ++i) {
3560 if (entries[i] !== empty) {
3561 callbackfn.call(thisArg, entries[i], entries[i], s);
3566 //
23.2.3.7 Set.prototype.has ( value )
3568 Set.prototype, 'has',
3570 var s = strict(this);
3571 if (Type(s) !== 'object') throw TypeError();
3572 if (!('[[SetData]]' in s)) throw TypeError();
3573 if (s['[[SetData]]'] === undefined) throw TypeError();
3574 var entries = s['[[SetData]]'];
3575 return SetDataIndexOf(entries, key) !== -
1;
3578 //
23.2.3.8 Set.prototype.keys ( )
3579 // See Set.prototype.values
3581 //
23.2.3.9 get Set.prototype.size
3582 Object.defineProperty(
3583 Set.prototype, 'size', {
3585 var s = strict(this);
3586 if (Type(s) !== 'object') throw TypeError();
3587 if (!('[[SetData]]' in s)) throw TypeError();
3588 if (s['[[SetData]]'] === undefined) throw TypeError();
3589 var entries = s['[[SetData]]'];
3591 for (var i =
0; i < entries.length; ++i) {
3592 if (entries[i] !== empty)
3599 //
23.2.3.10 Set.prototype.values ( )
3601 Set.prototype, 'values',
3603 var s = strict(this);
3604 if (Type(s) !== 'object') throw TypeError();
3605 return CreateSetIterator(s, 'value');
3607 // NOTE: function name is still 'values':
3608 Set.prototype.keys = Set.prototype.values;
3610 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3612 Set.prototype, $$iterator,
3614 var s = strict(this);
3615 if (Type(s) !== 'object') throw TypeError();
3616 return CreateSetIterator(s);
3619 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3620 define(global.Set.prototype, $$toStringTag, 'Set');
3622 //
23.2.4 Properties of Set Instances
3623 //
23.2.5 Set Iterator Objects
3625 function SetIterator() {}
3627 //
23.2.5.1 CreateSetIterator Abstract Operation
3628 function CreateSetIterator(set, kind) {
3629 if (Type(set) !== 'object') throw TypeError();
3630 if (!('[[SetData]]' in set)) throw TypeError();
3631 if (set['[[SetData]]'] === undefined) throw TypeError();
3632 var iterator = new SetIterator;
3633 set_internal(iterator, '[[IteratedSet]]', set);
3634 set_internal(iterator, '[[SetNextIndex]]',
0);
3635 set_internal(iterator, '[[SetIterationKind]]', kind);
3639 //
23.2.5.2 The %SetIteratorPrototype% Object
3640 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3641 SetIterator.prototype = $SetIteratorPrototype$;
3643 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3645 $SetIteratorPrototype$, 'next',
3647 var o = strict(this);
3648 if (Type(o) !== 'object') throw TypeError();
3649 var s = o['[[IteratedSet]]'],
3650 index = o['[[SetNextIndex]]'],
3651 itemKind = o['[[SetIterationKind]]'],
3652 entries = s['[[SetData]]'];
3653 while (index < entries.length) {
3654 var e = entries[index];
3656 set_internal(o, '[[SetNextIndex]]', index);
3658 if (itemKind === 'key+value')
3659 return CreateIterResultObject([e, e], false);
3660 return CreateIterResultObject(e, false);
3663 return CreateIterResultObject(undefined, true);
3666 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3667 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3669 //
23.2.5.3 Properties of Set Iterator Instances
3673 // ---------------------------------------
3674 //
23.3 WeakMap Objects
3675 // ---------------------------------------
3678 //
23.3.1 The WeakMap Constructor
3679 //
23.3.1.1 WeakMap ( [ iterable ] )
3681 function WeakMap(/*iterable*/) {
3682 var map = strict(this);
3683 var iterable = arguments[
0];
3685 if (Type(map) !== 'object') throw TypeError();
3686 if ('[[WeakMapData]]' in map) throw TypeError();
3688 if (iterable !== undefined) {
3689 var adder = map['set'];
3690 if (!IsCallable(adder)) throw TypeError();
3691 var iter = GetIterator(ToObject(iterable));
3693 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3694 if (iter === undefined) return map;
3696 var next = IteratorStep(iter);
3699 var nextValue = IteratorValue(next);
3700 if (Type(nextValue) !== 'object') throw TypeError();
3701 var k = nextValue[
0];
3702 var v = nextValue[
1];
3703 adder.call(map, k, v);
3709 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3710 global.WeakMap = WeakMap;
3712 //
23.3.2 Properties of the WeakMap Constructor
3713 //
23.3.2.1 WeakMap.prototype
3714 var $WeakMapPrototype$ = {};
3715 WeakMap.prototype = $WeakMapPrototype$;
3719 //
23.3.2.2 WeakMap[ @@create ] ( )
3720 //
23.3.3 Properties of the WeakMap Prototype Object
3722 //
23.3.3.1 WeakMap.prototype.constructor
3724 //
23.3.3.2 WeakMap.prototype.delete ( key )
3726 WeakMap.prototype, 'delete',
3727 function delete_(key) {
3728 var M = strict(this);
3729 if (Type(M) !== 'object') throw TypeError();
3730 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3731 if (Type(key) !== 'object') throw TypeError('Expected object');
3732 return M['[[WeakMapData]]'].remove(key);
3735 //
23.3.3.3 WeakMap.prototype.get ( key )
3737 WeakMap.prototype, 'get',
3738 function get(key, defaultValue) {
3739 var M = strict(this);
3740 if (Type(M) !== 'object') throw TypeError();
3741 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3742 if (Type(key) !== 'object') throw TypeError('Expected object');
3743 return M['[[WeakMapData]]'].get(key, defaultValue);
3746 //
23.3.3.4 WeakMap.prototype.has ( key )
3748 WeakMap.prototype, 'has',
3750 var M = strict(this);
3751 if (Type(M) !== 'object') throw TypeError();
3752 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3753 if (Type(key) !== 'object') throw TypeError('Expected object');
3754 return M['[[WeakMapData]]'].has(key);
3757 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3759 WeakMap.prototype, 'set',
3760 function set(key, value) {
3761 var M = strict(this);
3762 if (Type(M) !== 'object') throw TypeError();
3763 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3764 if (Type(key) !== 'object') throw TypeError('Expected object');
3765 M['[[WeakMapData]]'].set(key, value);
3769 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3770 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3772 //
23.3.4 Properties of WeakMap Instances
3774 // Polyfills for incomplete native implementations:
3776 var wm = new global.WeakMap();
3777 var orig = global.WeakMap.prototype.set;
3778 define(global.WeakMap.prototype, 'set', function set() {
3779 orig.apply(this, arguments);
3781 }, wm.set({},
0) !== wm);
3785 // ---------------------------------------
3786 //
23.4 WeakSet Objects
3787 // ---------------------------------------
3790 //
23.4.1 The WeakSet Constructor
3791 //
23.4.1.1 WeakSet ( [ iterable ] )
3793 function WeakSet(/*iterable*/) {
3794 var set = strict(this);
3795 var iterable = arguments[
0];
3797 if (Type(set) !== 'object') throw TypeError();
3798 if ('[[WeakSetData]]' in set) throw TypeError();
3800 if (iterable !== undefined) {
3801 var adder = set['add'];
3802 if (!IsCallable(adder)) throw TypeError();
3803 var iter = GetIterator(ToObject(iterable));
3805 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3806 if (iter === undefined) return set;
3808 var next = IteratorStep(iter);
3811 var nextValue = IteratorValue(next);
3812 adder.call(set, nextValue);
3818 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3819 global.WeakSet = WeakSet;
3821 //
23.4.2 Properties of the WeakSet Constructor
3822 //
23.4.2.1 WeakSet.prototype
3823 var $WeakSetPrototype$ = {};
3824 WeakSet.prototype = $WeakSetPrototype$;
3826 //
23.4.3 Properties of the WeakSet Prototype Object
3827 //
23.4.3.1 WeakSet.prototype.add (value )
3829 WeakSet.prototype, 'add',
3830 function add(value) {
3831 var S = strict(this);
3832 if (Type(S) !== 'object') throw TypeError();
3833 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3834 if (Type(value) !== 'object') throw TypeError('Expected object');
3835 S['[[WeakSetData]]'].set(value, true);
3839 //
23.4.3.2 WeakSet.prototype.constructor
3840 //
23.4.3.3 WeakSet.prototype.delete ( value )
3842 WeakSet.prototype, 'delete',
3843 function delete_(value) {
3844 var S = strict(this);
3845 if (Type(S) !== 'object') throw TypeError();
3846 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3847 if (Type(value) !== 'object') throw TypeError('Expected object');
3848 return S['[[WeakSetData]]'].remove(value);
3851 //
23.4.3.4 WeakSet.prototype.has ( value )
3853 WeakSet.prototype, 'has',
3855 var S = strict(this);
3856 if (Type(S) !== 'object') throw TypeError();
3857 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3858 if (Type(key) !== 'object') throw TypeError('Expected object');
3859 return S['[[WeakSetData]]'].has(key);
3862 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3863 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3865 //
23.4.4 Properties of WeakSet Instances
3867 // Polyfills for incomplete native implementations:
3869 var ws = new global.WeakSet();
3870 var orig = global.WeakSet.prototype.add;
3871 define(global.WeakSet.prototype, 'add', function add() {
3872 orig.apply(this, arguments);
3874 }, ws.add({}) !== ws);
3878 // ---------------------------------------
3879 //
24 Structured Data
3880 // ---------------------------------------
3882 // ---------------------------------------
3883 //
24.1 ArrayBuffer Objects
3884 // ---------------------------------------
3886 // See typedarray.js for TypedArray polyfill
3889 if (!('ArrayBuffer' in global))
3892 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3893 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3894 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3895 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3896 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3897 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3898 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3899 //
24.1.2 The ArrayBuffer Constructor
3900 //
24.1.2.1 ArrayBuffer( length )
3901 //
24.1.3 Properties of the ArrayBuffer Constructor
3903 //
24.1.3.1 ArrayBuffer.isView ( arg )
3905 ArrayBuffer, 'isView',
3906 function isView(arg) {
3907 if (Type(arg) !== 'object') return false;
3908 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3912 //
24.1.3.2 ArrayBuffer.prototype
3913 //
24.1.3.3 get ArrayBuffer [ @@species ]
3914 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3915 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3916 //
24.1.4.2 ArrayBuffer.prototype.constructor
3917 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3919 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3920 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3922 //
24.1.5 Properties of the ArrayBuffer Instances
3925 // ---------------------------------------
3926 //
24.2 DataView Objects
3927 // ---------------------------------------
3929 // See typedarray.js for TypedArray polyfill
3932 if (!('DataView' in global))
3935 //
24.2.1 Abstract Operations For DataView Objects
3936 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3937 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3938 //
24.2.2 The DataView Constructor
3939 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3940 //
24.2.3 Properties of the DataView Constructor
3941 //
24.2.3.1 DataView.prototype
3942 //
24.2.4 Properties of the DataView Prototype Object
3943 //
24.2.4.1 get DataView.prototype.buffer
3944 //
24.2.4.2 get DataView.prototype.byteLength
3945 //
24.2.4.3 get DataView.prototype.byteOffset
3946 //
24.2.4.4 DataView.prototype.constructor
3947 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3948 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3949 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3950 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3951 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3952 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3953 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3954 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3955 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3956 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3957 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3958 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3959 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3960 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3961 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3962 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3964 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3965 define(DataView.prototype, $$toStringTag, 'DataView');
3967 //
24.2.5 Properties of DataView Instances
3970 // ---------------------------------------
3971 //
24.3 The JSON Object
3972 // ---------------------------------------
3974 //
24.3.1 JSON.parse ( text [ , reviver ] )
3975 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3976 //
24.3.3 JSON [ @@toStringTag ]
3977 define(JSON, $$toStringTag, 'JSON');
3979 // ---------------------------------------
3981 // ---------------------------------------
3983 //
25.1.1 Common Iteration Interfaces
3984 //
25.1.1.1 The Iterable Interface
3985 //
25.1.1.2 The Iterator Interface
3986 //
25.1.1.3 The IteratorResult Interface
3988 //
25.1.2 The %IteratorPrototype% Object
3989 // Defined earlier, so other prototypes can reference it.
3990 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3991 define($IteratorPrototype$, $$iterator, function() {
3996 // ---------------------------------------
3997 //
25.4 Promise Objects
3998 // ---------------------------------------
4001 //
25.4 Promise Objects
4003 //
25.4.1 Promise Abstract Operations
4005 //
25.4.1.1 PromiseCapability Records
4006 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4008 function IfAbruptRejectPromise(value, capability) {
4009 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4010 return capability['[[Promise]]'];
4013 //
25.4.1.2 PromiseReaction Records
4015 //
25.4.1.3 CreateResolvingFunctions ( promise )
4017 function CreateResolvingFunctions(promise) {
4018 var alreadyResolved = {'[[value]]': false};
4019 var resolve = PromiseResolveFunction();
4020 set_internal(resolve, '[[Promise]]', promise);
4021 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4022 var reject = PromiseRejectFunction();
4023 set_internal(reject, '[[Promise]]', promise);
4024 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4025 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4028 //
25.4.1.3.1 Promise Reject Functions
4030 function PromiseRejectFunction() {
4031 var F = function(reason) {
4032 console.assert(Type(F['[[Promise]]']) === 'object');
4033 var promise = F['[[Promise]]'];
4034 var alreadyResolved = F['[[AlreadyResolved]]'];
4035 if (alreadyResolved['[[value]]']) return undefined;
4036 set_internal(alreadyResolved, '[[value]]', true);
4037 return RejectPromise(promise, reason);
4042 //
25.4.1.3.2 Promise Resolve Functions
4044 function PromiseResolveFunction() {
4045 var F = function(resolution) {
4046 console.assert(Type(F['[[Promise]]']) === 'object');
4047 var promise = F['[[Promise]]'];
4048 var alreadyResolved = F['[[AlreadyResolved]]'];
4049 if (alreadyResolved['[[value]]']) return undefined;
4050 set_internal(alreadyResolved, '[[value]]', true);
4052 if (SameValue(resolution, promise)) {
4053 var selfResolutionError = TypeError();
4054 return RejectPromise(promise, selfResolutionError);
4056 if (Type(resolution) !== 'object')
4057 return FulfillPromise(promise, resolution);
4059 var then = resolution['then'];
4061 return RejectPromise(promise, then);
4063 if (!IsCallable(then))
4064 return FulfillPromise(promise, resolution);
4065 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4071 //
25.4.1.4 FulfillPromise ( promise, value )
4073 function FulfillPromise(promise, value) {
4074 console.assert(promise['[[PromiseState]]'] === 'pending');
4075 var reactions = promise['[[PromiseFulfillReactions]]'];
4076 set_internal(promise, '[[PromiseResult]]', value);
4077 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4078 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4079 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4080 return TriggerPromiseReactions(reactions, value);
4083 //
25.4.1.5 NewPromiseCapability ( C )
4085 function NewPromiseCapability(c) {
4086 // To keep Promise hermetic, this doesn't look much like the spec.
4087 return CreatePromiseCapabilityRecord(undefined, c);
4090 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4092 function CreatePromiseCapabilityRecord(promise, constructor) {
4093 // To keep Promise hermetic, this doesn't look much like the spec.
4094 console.assert(IsConstructor(constructor));
4095 var promiseCapability = {};
4096 set_internal(promiseCapability, '[[Promise]]', promise);
4097 set_internal(promiseCapability, '[[Resolve]]', undefined);
4098 set_internal(promiseCapability, '[[Reject]]', undefined);
4099 var executor = GetCapabilitiesExecutor();
4100 set_internal(executor, '[[Capability]]', promiseCapability);
4102 // NOTE: Differs from spec; object is constructed here
4103 var constructorResult = promise = new constructor(executor);
4104 set_internal(promiseCapability, '[[Promise]]', promise);
4106 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4107 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4108 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4109 return promiseCapability;
4112 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4114 function GetCapabilitiesExecutor() {
4115 var F = function(resolve, reject) {
4116 console.assert(F['[[Capability]]']);
4117 var promiseCapability = F['[[Capability]]'];
4118 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4119 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4120 set_internal(promiseCapability, '[[Resolve]]', resolve);
4121 set_internal(promiseCapability, '[[Reject]]', reject);
4127 //
25.4.1.6 IsPromise ( x )
4129 function IsPromise(x) {
4130 if (Type(x) !== 'object') return false;
4131 if (!('[[PromiseState]]' in x)) return false;
4132 if (x['[[PromiseState]]'] === undefined) return false;
4136 //
25.4.1.7 RejectPromise ( promise, reason )
4138 function RejectPromise(promise, reason) {
4139 console.assert(promise['[[PromiseState]]'] === 'pending');
4140 var reactions = promise['[[PromiseRejectReactions]]'];
4141 set_internal(promise, '[[PromiseResult]]', reason);
4142 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4143 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4144 set_internal(promise, '[[PromiseState]]', 'rejected');
4145 return TriggerPromiseReactions(reactions, reason);
4148 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4150 function TriggerPromiseReactions(reactions, argument) {
4151 for (var i =
0, len = reactions.length; i < len; ++i)
4152 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4156 //
25.4.2 Promise Jobs
4158 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4160 function PromiseReactionJob(reaction, argument) {
4161 var promiseCapability = reaction['[[Capabilities]]'];
4162 var handler = reaction['[[Handler]]'];
4163 var handlerResult, status;
4165 if (handler === 'Identity') handlerResult = argument;
4166 else if (handler === 'Thrower') throw argument;
4167 else handlerResult = handler.call(undefined, argument);
4168 } catch (handlerResult) {
4169 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4170 NextJob(status); return;
4172 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4176 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4178 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4179 // SPEC BUG: promise vs. promiseToResolve
4180 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4182 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4183 resolvingFunctions['[[Reject]]']);
4184 } catch (thenCallResult) {
4185 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4186 NextJob(status); return;
4188 NextJob(thenCallResult);
4191 //
25.4.3 The Promise Constructor
4193 //
25.4.3.1 Promise ( executor )
4195 function Promise(executor) {
4196 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4197 Object.defineProperty(this, '[[PromiseState]]', config);
4198 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4199 Object.defineProperty(this, '[[PromiseResult]]', config);
4200 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4201 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4204 if (Type(promise) !== 'object') throw new TypeError();
4205 if (!('[[PromiseState]]' in promise)) throw TypeError();
4206 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4207 if (!IsCallable(executor)) throw TypeError();
4209 set_internal(promise, '[[PromiseConstructor]]', Promise);
4211 return InitializePromise(promise, executor);
4214 //
25.4.3.1.1 InitializePromise ( promise, executor )
4216 function InitializePromise(promise, executor) {
4217 console.assert('[[PromiseState]]' in promise);
4218 console.assert(IsCallable(executor));
4219 set_internal(promise, '[[PromiseState]]', 'pending');
4220 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4221 set_internal(promise, '[[PromiseRejectReactions]]', []);
4222 var resolvingFunctions = CreateResolvingFunctions(promise);
4224 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4225 resolvingFunctions['[[Reject]]']);
4226 } catch (completion) {
4227 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4232 //
25.4.4 Properties of the Promise Constructor
4233 //
25.4.4.1 Promise.all ( iterable )
4235 define(Promise, 'all', function all(iterable) {
4236 var c = strict(this);
4237 var promiseCapability = NewPromiseCapability(c);
4239 var iterator = GetIterator(iterable);
4241 promiseCapability['[[Reject]]'].call(undefined, value);
4242 return promiseCapability['[[Promise]]'];
4245 var remainingElementsCount = { value:
1 };
4249 var next = IteratorStep(iterator);
4251 promiseCapability['[[Reject]]'].call(undefined, value);
4252 return promiseCapability['[[Promise]]'];
4255 remainingElementsCount.value -=
1;
4256 if (remainingElementsCount.value ===
0) {
4257 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4261 return promiseCapability['[[Promise]]'];
4264 var nextValue = IteratorValue(next);
4266 promiseCapability['[[Reject]]'].call(undefined, value);
4267 return promiseCapability['[[Promise]]'];
4270 var nextPromise = c.resolve(nextValue);
4272 promiseCapability['[[Reject]]'].call(undefined, value);
4273 return promiseCapability['[[Promise]]'];
4275 var resolveElement = PromiseAllResolveElementFunction();
4276 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4277 set_internal(resolveElement, '[[Index]]', index);
4278 set_internal(resolveElement, '[[Values]]', values);
4279 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4280 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4281 remainingElementsCount.value +=
1;
4283 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4285 promiseCapability['[[Reject]]'].call(undefined, value);
4286 return promiseCapability['[[Promise]]'];
4292 //
25.4.4.1.1 Promise.all Resolve Element Functions
4294 function PromiseAllResolveElementFunction() {
4295 var F = function(x) {
4296 var alreadyCalled = F['[[AlreadyCalled]]'];
4297 if (alreadyCalled.value) return undefined;
4298 alreadyCalled.value = true;
4299 var index = F['[[Index]]'];
4300 var values = F['[[Values]]'];
4301 var promiseCapability = F['[[Capabilities]]'];
4302 var remainingElementsCount = F['[[RemainingElements]]'];
4306 promiseCapability['[[Reject]]'].call(undefined, result);
4307 return promiseCapability['[[Promise]]'];
4309 remainingElementsCount.value -=
1;
4310 if (remainingElementsCount.value ===
0)
4311 return promiseCapability['[[Resolve]]'].call(undefined, values);
4317 //
25.4.4.2 Promise.prototype
4319 Promise.prototype = {};
4321 //
25.4.4.3 Promise.race ( iterable )
4323 define(Promise, 'race', function race(iterable) {
4324 var c = strict(this);
4325 var promiseCapability = NewPromiseCapability(c);
4327 var iterator = GetIterator(iterable);
4329 promiseCapability['[[Reject]]'].call(undefined, value);
4330 return promiseCapability['[[Promise]]'];
4334 var next = IteratorStep(iterator);
4336 promiseCapability['[[Reject]]'].call(undefined, value);
4337 return promiseCapability['[[Promise]]'];
4339 if (!next) return promiseCapability['[[Promise]]'];
4341 var nextValue = IteratorValue(next);
4343 promiseCapability['[[Reject]]'].call(undefined, value);
4344 return promiseCapability['[[Promise]]'];
4347 var nextPromise = c.resolve(nextValue);
4349 promiseCapability['[[Reject]]'].call(undefined, value);
4350 return promiseCapability['[[Promise]]'];
4353 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4355 promiseCapability['[[Reject]]'].call(undefined, value);
4356 return promiseCapability['[[Promise]]'];
4361 //
25.4.4.4 Promise.reject ( r )
4363 define(Promise, 'reject', function reject(r) {
4364 var c = strict(this);
4365 var promiseCapability = NewPromiseCapability(c);
4366 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4367 return promiseCapability['[[Promise]]'];
4370 //
25.4.4.5 Promise.resolve ( x )
4372 define(Promise, 'resolve', function resolve(x) {
4373 var c = strict(this);
4375 var constructor = x['[[PromiseConstructor]]'];
4376 if (SameValue(constructor, c)) return x;
4378 var promiseCapability = NewPromiseCapability(c);
4379 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4380 return promiseCapability['[[Promise]]'];
4383 //
25.4.4.6 Promise [ @@create ] ( )
4384 //
25.4.4.6.1 AllocatePromise ( constructor )
4385 //
25.4.5 Properties of the Promise Prototype Object
4386 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4388 define(Promise.prototype, 'catch', function catch_(onRejected) {
4390 return promise.then(undefined, onRejected);
4393 //
25.4.5.2 Promise.prototype.constructor
4395 Promise.prototype.constructor = Promise;
4397 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4399 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4401 if (!IsPromise(promise)) throw TypeError();
4402 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4403 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4404 var c = promise.constructor;
4405 var promiseCapability = NewPromiseCapability(c);
4406 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4407 '[[Handler]]': onFulfilled };
4408 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4409 '[[Handler]]': onRejected };
4410 if (promise['[[PromiseState]]'] === 'pending') {
4411 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4412 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4413 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4414 var value = promise['[[PromiseResult]]'];
4415 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4416 } else if (promise['[[PromiseState]]'] === 'rejected') {
4417 var reason = promise['[[PromiseResult]]'];
4418 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4420 return promiseCapability['[[Promise]]'];
4423 //
25.4.6 Properties of Promise Instances
4425 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4426 global.Promise = Promise;
4428 // Patch early Promise.cast vs. Promise.resolve implementations
4429 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4432 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4433 define(Promise.prototype, $$toStringTag, 'Promise');
4435 // ---------------------------------------
4437 // ---------------------------------------
4440 //
26.1 The Reflect Object
4441 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4442 global.Reflect = {};
4444 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4447 function apply(target, thisArgument, argumentsList) {
4448 if (!IsCallable(target)) throw TypeError();
4449 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4452 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4454 Reflect, 'construct',
4455 function construct(target, argumentsList) {
4456 return __cons(target, argumentsList);
4459 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4461 Reflect, 'defineProperty',
4462 function defineProperty(target, propertyKey, attributes) {
4464 Object.defineProperty(target, propertyKey, attributes);
4471 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4473 Reflect, 'deleteProperty',
4474 function deleteProperty(target,name) {
4476 delete target[name];
4477 return !HasOwnProperty(target, name);
4483 //
26.1.5 Reflect.enumerate ( target )
4485 Reflect, 'enumerate',
4486 function enumerate(target) {
4487 target = ToObject(target);
4488 var iterator = Enumerate(target);
4492 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4495 function get(target, name, receiver) {
4496 target = ToObject(target);
4497 name = String(name);
4498 receiver = (receiver === undefined) ? target : ToObject(receiver);
4499 var desc = getPropertyDescriptor(target, name);
4500 if (desc && 'get' in desc)
4501 return Function.prototype.call.call(desc['get'], receiver);
4502 return target[name];
4505 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4507 Reflect, 'getOwnPropertyDescriptor',
4508 Object.getOwnPropertyDescriptor);
4510 //
26.1.8 Reflect.getPrototypeOf ( target )
4512 Reflect, 'getPrototypeOf',
4513 Object.getPrototypeOf);
4515 //
26.1.9 Reflect.has ( target, propertyKey )
4518 function has(target,name) {
4519 return String(name) in ToObject(target);
4522 //
26.1.10 Reflect.isExtensible (target)
4524 Reflect, 'isExtensible',
4525 Object.isExtensible);
4527 //
26.1.11 Reflect.ownKeys ( target )
4530 function ownKeys(target) {
4531 var obj = ToObject(target);
4532 return Object.getOwnPropertyNames(obj);
4535 //
26.1.12 Reflect.preventExtensions ( target )
4537 Reflect, 'preventExtensions',
4538 function preventExtensions(target) {
4539 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4542 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4545 function set(target, name, value, receiver) {
4546 target = ToObject(target);
4547 name = String(name);
4548 receiver = (receiver === undefined) ? target : ToObject(receiver);
4549 var desc = getPropertyDescriptor(target, name);
4551 if (desc && 'set' in desc)
4552 Function.prototype.call.call(desc['set'], receiver, value);
4554 target[name] = value;
4561 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4563 Reflect, 'setPrototypeOf',
4564 function setPrototypeOf(target, proto) {
4566 target.__proto__ = proto;
4567 return Reflect.getPrototypeOf(target) === proto;
4575 // ---------------------------------------
4576 //
26.2 Proxy Objects
4577 // ---------------------------------------
4579 // Not polyfillable.
4583 // This helper is defined outside the main scope so that the use of
4584 // 'eval' does not taint the scope for minifiers.
4585 function __cons(t, a) {
4586 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4589 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.foo = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
4592 exports.byteLength = byteLength
4593 exports.toByteArray = toByteArray
4594 exports.fromByteArray = fromByteArray
4598 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4600 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4601 for (var i =
0, len = code.length; i < len; ++i) {
4603 revLookup[code.charCodeAt(i)] = i
4606 revLookup['-'.charCodeAt(
0)] =
62
4607 revLookup['_'.charCodeAt(
0)] =
63
4609 function placeHoldersCount (b64) {
4610 var len = b64.length
4612 throw new Error('Invalid string. Length must be a multiple of
4')
4615 // the number of equal signs (place holders)
4616 // if there are two placeholders, than the two characters before it
4617 // represent one byte
4618 // if there is only one, then the three characters before it represent
2 bytes
4619 // this is just a cheap hack to not do indexOf twice
4620 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4623 function byteLength (b64) {
4624 // base64 is
4/
3 + up to two characters of the original data
4625 return b64.length *
3 /
4 - placeHoldersCount(b64)
4628 function toByteArray (b64) {
4629 var i, j, l, tmp, placeHolders, arr
4630 var len = b64.length
4631 placeHolders = placeHoldersCount(b64)
4633 arr = new Arr(len *
3 /
4 - placeHolders)
4635 // if there are placeholders, only get up to the last complete
4 chars
4636 l = placeHolders
> 0 ? len -
4 : len
4640 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4641 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4642 arr[L++] = (tmp
>> 16) &
0xFF
4643 arr[L++] = (tmp
>> 8) &
0xFF
4644 arr[L++] = tmp &
0xFF
4647 if (placeHolders ===
2) {
4648 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4649 arr[L++] = tmp &
0xFF
4650 } else if (placeHolders ===
1) {
4651 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4652 arr[L++] = (tmp
>> 8) &
0xFF
4653 arr[L++] = tmp &
0xFF
4659 function tripletToBase64 (num) {
4660 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4663 function encodeChunk (uint8, start, end) {
4666 for (var i = start; i < end; i +=
3) {
4667 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4668 output.push(tripletToBase64(tmp))
4670 return output.join('')
4673 function fromByteArray (uint8) {
4675 var len = uint8.length
4676 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4679 var maxChunkLength =
16383 // must be multiple of
3
4681 // go through the array every three bytes, we'll deal with trailing stuff later
4682 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4683 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4686 // pad the end with zeros, but make sure to not forget the extra bytes
4687 if (extraBytes ===
1) {
4688 tmp = uint8[len -
1]
4689 output += lookup[tmp
>> 2]
4690 output += lookup[(tmp <<
4) &
0x3F]
4692 } else if (extraBytes ===
2) {
4693 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4694 output += lookup[tmp
>> 10]
4695 output += lookup[(tmp
>> 4) &
0x3F]
4696 output += lookup[(tmp <<
2) &
0x3F]
4702 return parts.join('')
4705 },{}],
2:[function(require,module,exports){
4707 * The buffer module from node.js, for the browser.
4709 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4712 /* eslint-disable no-proto */
4716 var base64 = require('base64-js')
4717 var ieee754 = require('ieee754')
4719 exports.Buffer = Buffer
4720 exports.SlowBuffer = SlowBuffer
4721 exports.INSPECT_MAX_BYTES =
50
4723 var K_MAX_LENGTH =
0x7fffffff
4724 exports.kMaxLength = K_MAX_LENGTH
4727 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4728 * === true Use Uint8Array implementation (fastest)
4729 * === false Print warning and recommend using `buffer` v4.x which has an Object
4730 * implementation (most compatible, even IE6)
4732 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4733 * Opera
11.6+, iOS
4.2+.
4735 * We report that the browser does not support typed arrays if the are not subclassable
4736 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4737 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4738 * for __proto__ and has a buggy typed array implementation.
4740 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4742 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4743 typeof console.error === 'function') {
4745 'This browser lacks typed array (Uint8Array) support which is required by ' +
4746 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4750 function typedArraySupport () {
4751 // Can typed array instances can be augmented?
4753 var arr = new Uint8Array(
1)
4754 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4755 return arr.foo() ===
42
4761 function createBuffer (length) {
4762 if (length
> K_MAX_LENGTH) {
4763 throw new RangeError('Invalid typed array length')
4765 // Return an augmented `Uint8Array` instance
4766 var buf = new Uint8Array(length)
4767 buf.__proto__ = Buffer.prototype
4772 * The Buffer constructor returns instances of `Uint8Array` that have their
4773 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4774 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4775 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4776 * returns a single octet.
4778 * The `Uint8Array` prototype remains unmodified.
4781 function Buffer (arg, encodingOrOffset, length) {
4783 if (typeof arg === 'number') {
4784 if (typeof encodingOrOffset === 'string') {
4786 'If encoding is specified then the first argument must be a string'
4789 return allocUnsafe(arg)
4791 return from(arg, encodingOrOffset, length)
4794 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4795 if (typeof Symbol !== 'undefined' && Symbol.species &&
4796 Buffer[Symbol.species] === Buffer) {
4797 Object.defineProperty(Buffer, Symbol.species, {
4805 Buffer.poolSize =
8192 // not used by this implementation
4807 function from (value, encodingOrOffset, length) {
4808 if (typeof value === 'number') {
4809 throw new TypeError('"value" argument must not be a number')
4812 if (value instanceof ArrayBuffer) {
4813 return fromArrayBuffer(value, encodingOrOffset, length)
4816 if (typeof value === 'string') {
4817 return fromString(value, encodingOrOffset)
4820 return fromObject(value)
4824 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4825 * if value is a number.
4826 * Buffer.from(str[, encoding])
4827 * Buffer.from(array)
4828 * Buffer.from(buffer)
4829 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4831 Buffer.from = function (value, encodingOrOffset, length) {
4832 return from(value, encodingOrOffset, length)
4835 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4836 // https://github.com/feross/buffer/pull/
148
4837 Buffer.prototype.__proto__ = Uint8Array.prototype
4838 Buffer.__proto__ = Uint8Array
4840 function assertSize (size) {
4841 if (typeof size !== 'number') {
4842 throw new TypeError('"size" argument must be a number')
4843 } else if (size <
0) {
4844 throw new RangeError('"size" argument must not be negative')
4848 function alloc (size, fill, encoding) {
4851 return createBuffer(size)
4853 if (fill !== undefined) {
4854 // Only pay attention to encoding if it's a string. This
4855 // prevents accidentally sending in a number that would
4856 // be interpretted as a start offset.
4857 return typeof encoding === 'string'
4858 ? createBuffer(size).fill(fill, encoding)
4859 : createBuffer(size).fill(fill)
4861 return createBuffer(size)
4865 * Creates a new filled Buffer instance.
4866 * alloc(size[, fill[, encoding]])
4868 Buffer.alloc = function (size, fill, encoding) {
4869 return alloc(size, fill, encoding)
4872 function allocUnsafe (size) {
4874 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4878 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4880 Buffer.allocUnsafe = function (size) {
4881 return allocUnsafe(size)
4884 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4886 Buffer.allocUnsafeSlow = function (size) {
4887 return allocUnsafe(size)
4890 function fromString (string, encoding) {
4891 if (typeof encoding !== 'string' || encoding === '') {
4895 if (!Buffer.isEncoding(encoding)) {
4896 throw new TypeError('"encoding" must be a valid string encoding')
4899 var length = byteLength(string, encoding) |
0
4900 var buf = createBuffer(length)
4902 var actual = buf.write(string, encoding)
4904 if (actual !== length) {
4905 // Writing a hex string, for example, that contains invalid characters will
4906 // cause everything after the first invalid character to be ignored. (e.g.
4907 // 'abxxcd' will be treated as 'ab')
4908 buf = buf.slice(
0, actual)
4914 function fromArrayLike (array) {
4915 var length = array.length <
0 ?
0 : checked(array.length) |
0
4916 var buf = createBuffer(length)
4917 for (var i =
0; i < length; i +=
1) {
4918 buf[i] = array[i] &
255
4923 function fromArrayBuffer (array, byteOffset, length) {
4924 if (byteOffset <
0 || array.byteLength < byteOffset) {
4925 throw new RangeError('\'offset\' is out of bounds')
4928 if (array.byteLength < byteOffset + (length ||
0)) {
4929 throw new RangeError('\'length\' is out of bounds')
4933 if (byteOffset === undefined && length === undefined) {
4934 buf = new Uint8Array(array)
4935 } else if (length === undefined) {
4936 buf = new Uint8Array(array, byteOffset)
4938 buf = new Uint8Array(array, byteOffset, length)
4941 // Return an augmented `Uint8Array` instance
4942 buf.__proto__ = Buffer.prototype
4946 function fromObject (obj) {
4947 if (Buffer.isBuffer(obj)) {
4948 var len = checked(obj.length) |
0
4949 var buf = createBuffer(len)
4951 if (buf.length ===
0) {
4955 obj.copy(buf,
0,
0, len)
4960 if (isArrayBufferView(obj) || 'length' in obj) {
4961 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4962 return createBuffer(
0)
4964 return fromArrayLike(obj)
4967 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4968 return fromArrayLike(obj.data)
4972 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4975 function checked (length) {
4976 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4977 // length is NaN (which is otherwise coerced to zero.)
4978 if (length
>= K_MAX_LENGTH) {
4979 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4980 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4985 function SlowBuffer (length) {
4986 if (+length != length) { // eslint-disable-line eqeqeq
4989 return Buffer.alloc(+length)
4992 Buffer.isBuffer = function isBuffer (b) {
4993 return b != null && b._isBuffer === true
4996 Buffer.compare = function compare (a, b) {
4997 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4998 throw new TypeError('Arguments must be Buffers')
5001 if (a === b) return
0
5006 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5007 if (a[i] !== b[i]) {
5014 if (x < y) return -
1
5019 Buffer.isEncoding = function isEncoding (encoding) {
5020 switch (String(encoding).toLowerCase()) {
5038 Buffer.concat = function concat (list, length) {
5039 if (!Array.isArray(list)) {
5040 throw new TypeError('"list" argument must be an Array of Buffers')
5043 if (list.length ===
0) {
5044 return Buffer.alloc(
0)
5048 if (length === undefined) {
5050 for (i =
0; i < list.length; ++i) {
5051 length += list[i].length
5055 var buffer = Buffer.allocUnsafe(length)
5057 for (i =
0; i < list.length; ++i) {
5059 if (!Buffer.isBuffer(buf)) {
5060 throw new TypeError('"list" argument must be an Array of Buffers')
5062 buf.copy(buffer, pos)
5068 function byteLength (string, encoding) {
5069 if (Buffer.isBuffer(string)) {
5070 return string.length
5072 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5073 return string.byteLength
5075 if (typeof string !== 'string') {
5076 string = '' + string
5079 var len = string.length
5080 if (len ===
0) return
0
5082 // Use a for loop to avoid recursion
5083 var loweredCase = false
5093 return utf8ToBytes(string).length
5102 return base64ToBytes(string).length
5104 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5105 encoding = ('' + encoding).toLowerCase()
5110 Buffer.byteLength = byteLength
5112 function slowToString (encoding, start, end) {
5113 var loweredCase = false
5115 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5116 // property of a typed array.
5118 // This behaves neither like String nor Uint8Array in that we set start/end
5119 // to their upper/lower bounds if the value passed is out of range.
5120 // undefined is handled specially as per ECMA-
262 6th Edition,
5121 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5122 if (start === undefined || start <
0) {
5125 // Return early if start
> this.length. Done here to prevent potential uint32
5126 // coercion fail below.
5127 if (start
> this.length) {
5131 if (end === undefined || end
> this.length) {
5139 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5147 if (!encoding) encoding = 'utf8'
5152 return hexSlice(this, start, end)
5156 return utf8Slice(this, start, end)
5159 return asciiSlice(this, start, end)
5163 return latin1Slice(this, start, end)
5166 return base64Slice(this, start, end)
5172 return utf16leSlice(this, start, end)
5175 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5176 encoding = (encoding + '').toLowerCase()
5182 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5183 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5184 // reliably in a browserify context because there could be multiple different
5185 // copies of the 'buffer' package in use. This method works even for Buffer
5186 // instances that were created from another copy of the `buffer` package.
5187 // See: https://github.com/feross/buffer/issues/
154
5188 Buffer.prototype._isBuffer = true
5190 function swap (b, n, m) {
5196 Buffer.prototype.swap16 = function swap16 () {
5197 var len = this.length
5198 if (len %
2 !==
0) {
5199 throw new RangeError('Buffer size must be a multiple of
16-bits')
5201 for (var i =
0; i < len; i +=
2) {
5202 swap(this, i, i +
1)
5207 Buffer.prototype.swap32 = function swap32 () {
5208 var len = this.length
5209 if (len %
4 !==
0) {
5210 throw new RangeError('Buffer size must be a multiple of
32-bits')
5212 for (var i =
0; i < len; i +=
4) {
5213 swap(this, i, i +
3)
5214 swap(this, i +
1, i +
2)
5219 Buffer.prototype.swap64 = function swap64 () {
5220 var len = this.length
5221 if (len %
8 !==
0) {
5222 throw new RangeError('Buffer size must be a multiple of
64-bits')
5224 for (var i =
0; i < len; i +=
8) {
5225 swap(this, i, i +
7)
5226 swap(this, i +
1, i +
6)
5227 swap(this, i +
2, i +
5)
5228 swap(this, i +
3, i +
4)
5233 Buffer.prototype.toString = function toString () {
5234 var length = this.length
5235 if (length ===
0) return ''
5236 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5237 return slowToString.apply(this, arguments)
5240 Buffer.prototype.equals = function equals (b) {
5241 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5242 if (this === b) return true
5243 return Buffer.compare(this, b) ===
0
5246 Buffer.prototype.inspect = function inspect () {
5248 var max = exports.INSPECT_MAX_BYTES
5249 if (this.length
> 0) {
5250 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5251 if (this.length
> max) str += ' ... '
5253 return '
<Buffer ' + str + '
>'
5256 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5257 if (!Buffer.isBuffer(target)) {
5258 throw new TypeError('Argument must be a Buffer')
5261 if (start === undefined) {
5264 if (end === undefined) {
5265 end = target ? target.length :
0
5267 if (thisStart === undefined) {
5270 if (thisEnd === undefined) {
5271 thisEnd = this.length
5274 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5275 throw new RangeError('out of range index')
5278 if (thisStart
>= thisEnd && start
>= end) {
5281 if (thisStart
>= thisEnd) {
5293 if (this === target) return
0
5295 var x = thisEnd - thisStart
5297 var len = Math.min(x, y)
5299 var thisCopy = this.slice(thisStart, thisEnd)
5300 var targetCopy = target.slice(start, end)
5302 for (var i =
0; i < len; ++i) {
5303 if (thisCopy[i] !== targetCopy[i]) {
5310 if (x < y) return -
1
5315 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5316 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5319 // - buffer - a Buffer to search
5320 // - val - a string, Buffer, or number
5321 // - byteOffset - an index into `buffer`; will be clamped to an int32
5322 // - encoding - an optional encoding, relevant is val is a string
5323 // - dir - true for indexOf, false for lastIndexOf
5324 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5325 // Empty buffer means no match
5326 if (buffer.length ===
0) return -
1
5328 // Normalize byteOffset
5329 if (typeof byteOffset === 'string') {
5330 encoding = byteOffset
5332 } else if (byteOffset
> 0x7fffffff) {
5333 byteOffset =
0x7fffffff
5334 } else if (byteOffset < -
0x80000000) {
5335 byteOffset = -
0x80000000
5337 byteOffset = +byteOffset // Coerce to Number.
5338 if (numberIsNaN(byteOffset)) {
5339 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5340 byteOffset = dir ?
0 : (buffer.length -
1)
5343 // Normalize byteOffset: negative offsets start from the end of the buffer
5344 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5345 if (byteOffset
>= buffer.length) {
5347 else byteOffset = buffer.length -
1
5348 } else if (byteOffset <
0) {
5349 if (dir) byteOffset =
0
5354 if (typeof val === 'string') {
5355 val = Buffer.from(val, encoding)
5358 // Finally, search either indexOf (if dir is true) or lastIndexOf
5359 if (Buffer.isBuffer(val)) {
5360 // Special case: looking for empty string/buffer always fails
5361 if (val.length ===
0) {
5364 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5365 } else if (typeof val === 'number') {
5366 val = val &
0xFF // Search for a byte value [
0-
255]
5367 if (typeof Uint8Array.prototype.indexOf === 'function') {
5369 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5371 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5374 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5377 throw new TypeError('val must be string, number or Buffer')
5380 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5382 var arrLength = arr.length
5383 var valLength = val.length
5385 if (encoding !== undefined) {
5386 encoding = String(encoding).toLowerCase()
5387 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5388 encoding === 'utf16le' || encoding === 'utf-
16le') {
5389 if (arr.length <
2 || val.length <
2) {
5399 function read (buf, i) {
5400 if (indexSize ===
1) {
5403 return buf.readUInt16BE(i * indexSize)
5410 for (i = byteOffset; i < arrLength; i++) {
5411 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5412 if (foundIndex === -
1) foundIndex = i
5413 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5415 if (foundIndex !== -
1) i -= i - foundIndex
5420 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5421 for (i = byteOffset; i
>=
0; i--) {
5423 for (var j =
0; j < valLength; j++) {
5424 if (read(arr, i + j) !== read(val, j)) {
5436 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5437 return this.indexOf(val, byteOffset, encoding) !== -
1
5440 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5441 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5444 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5445 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5448 function hexWrite (buf, string, offset, length) {
5449 offset = Number(offset) ||
0
5450 var remaining = buf.length - offset
5454 length = Number(length)
5455 if (length
> remaining) {
5460 // must be an even number of digits
5461 var strLen = string.length
5462 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5464 if (length
> strLen /
2) {
5467 for (var i =
0; i < length; ++i) {
5468 var parsed = parseInt(string.substr(i *
2,
2),
16)
5469 if (numberIsNaN(parsed)) return i
5470 buf[offset + i] = parsed
5475 function utf8Write (buf, string, offset, length) {
5476 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5479 function asciiWrite (buf, string, offset, length) {
5480 return blitBuffer(asciiToBytes(string), buf, offset, length)
5483 function latin1Write (buf, string, offset, length) {
5484 return asciiWrite(buf, string, offset, length)
5487 function base64Write (buf, string, offset, length) {
5488 return blitBuffer(base64ToBytes(string), buf, offset, length)
5491 function ucs2Write (buf, string, offset, length) {
5492 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5495 Buffer.prototype.write = function write (string, offset, length, encoding) {
5496 // Buffer#write(string)
5497 if (offset === undefined) {
5499 length = this.length
5501 // Buffer#write(string, encoding)
5502 } else if (length === undefined && typeof offset === 'string') {
5504 length = this.length
5506 // Buffer#write(string, offset[, length][, encoding])
5507 } else if (isFinite(offset)) {
5508 offset = offset
>>> 0
5509 if (isFinite(length)) {
5510 length = length
>>> 0
5511 if (encoding === undefined) encoding = 'utf8'
5518 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5522 var remaining = this.length - offset
5523 if (length === undefined || length
> remaining) length = remaining
5525 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5526 throw new RangeError('Attempt to write outside buffer bounds')
5529 if (!encoding) encoding = 'utf8'
5531 var loweredCase = false
5535 return hexWrite(this, string, offset, length)
5539 return utf8Write(this, string, offset, length)
5542 return asciiWrite(this, string, offset, length)
5546 return latin1Write(this, string, offset, length)
5549 // Warning: maxLength not taken into account in base64Write
5550 return base64Write(this, string, offset, length)
5556 return ucs2Write(this, string, offset, length)
5559 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5560 encoding = ('' + encoding).toLowerCase()
5566 Buffer.prototype.toJSON = function toJSON () {
5569 data: Array.prototype.slice.call(this._arr || this,
0)
5573 function base64Slice (buf, start, end) {
5574 if (start ===
0 && end === buf.length) {
5575 return base64.fromByteArray(buf)
5577 return base64.fromByteArray(buf.slice(start, end))
5581 function utf8Slice (buf, start, end) {
5582 end = Math.min(buf.length, end)
5587 var firstByte = buf[i]
5588 var codePoint = null
5589 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5590 : (firstByte
> 0xDF) ?
3
5591 : (firstByte
> 0xBF) ?
2
5594 if (i + bytesPerSequence <= end) {
5595 var secondByte, thirdByte, fourthByte, tempCodePoint
5597 switch (bytesPerSequence) {
5599 if (firstByte <
0x80) {
5600 codePoint = firstByte
5604 secondByte = buf[i +
1]
5605 if ((secondByte &
0xC0) ===
0x80) {
5606 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5607 if (tempCodePoint
> 0x7F) {
5608 codePoint = tempCodePoint
5613 secondByte = buf[i +
1]
5614 thirdByte = buf[i +
2]
5615 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5616 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5617 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5618 codePoint = tempCodePoint
5623 secondByte = buf[i +
1]
5624 thirdByte = buf[i +
2]
5625 fourthByte = buf[i +
3]
5626 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5627 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5628 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5629 codePoint = tempCodePoint
5635 if (codePoint === null) {
5636 // we did not generate a valid codePoint so insert a
5637 // replacement char (U+FFFD) and advance only
1 byte
5639 bytesPerSequence =
1
5640 } else if (codePoint
> 0xFFFF) {
5641 // encode to utf16 (surrogate pair dance)
5642 codePoint -=
0x10000
5643 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5644 codePoint =
0xDC00 | codePoint &
0x3FF
5648 i += bytesPerSequence
5651 return decodeCodePointsArray(res)
5654 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5655 // the lowest limit is Chrome, with
0x10000 args.
5656 // We go
1 magnitude less, for safety
5657 var MAX_ARGUMENTS_LENGTH =
0x1000
5659 function decodeCodePointsArray (codePoints) {
5660 var len = codePoints.length
5661 if (len <= MAX_ARGUMENTS_LENGTH) {
5662 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5665 // Decode in chunks to avoid
"call stack size exceeded".
5669 res += String.fromCharCode.apply(
5671 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5677 function asciiSlice (buf, start, end) {
5679 end = Math.min(buf.length, end)
5681 for (var i = start; i < end; ++i) {
5682 ret += String.fromCharCode(buf[i] &
0x7F)
5687 function latin1Slice (buf, start, end) {
5689 end = Math.min(buf.length, end)
5691 for (var i = start; i < end; ++i) {
5692 ret += String.fromCharCode(buf[i])
5697 function hexSlice (buf, start, end) {
5698 var len = buf.length
5700 if (!start || start <
0) start =
0
5701 if (!end || end <
0 || end
> len) end = len
5704 for (var i = start; i < end; ++i) {
5705 out += toHex(buf[i])
5710 function utf16leSlice (buf, start, end) {
5711 var bytes = buf.slice(start, end)
5713 for (var i =
0; i < bytes.length; i +=
2) {
5714 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5719 Buffer.prototype.slice = function slice (start, end) {
5720 var len = this.length
5722 end = end === undefined ? len : ~~end
5726 if (start <
0) start =
0
5727 } else if (start
> len) {
5733 if (end <
0) end =
0
5734 } else if (end
> len) {
5738 if (end < start) end = start
5740 var newBuf = this.subarray(start, end)
5741 // Return an augmented `Uint8Array` instance
5742 newBuf.__proto__ = Buffer.prototype
5747 * Need to make sure that buffer isn't trying to write out of bounds.
5749 function checkOffset (offset, ext, length) {
5750 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5751 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5754 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5755 offset = offset
>>> 0
5756 byteLength = byteLength
>>> 0
5757 if (!noAssert) checkOffset(offset, byteLength, this.length)
5759 var val = this[offset]
5762 while (++i < byteLength && (mul *=
0x100)) {
5763 val += this[offset + i] * mul
5769 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5770 offset = offset
>>> 0
5771 byteLength = byteLength
>>> 0
5773 checkOffset(offset, byteLength, this.length)
5776 var val = this[offset + --byteLength]
5778 while (byteLength
> 0 && (mul *=
0x100)) {
5779 val += this[offset + --byteLength] * mul
5785 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5786 offset = offset
>>> 0
5787 if (!noAssert) checkOffset(offset,
1, this.length)
5791 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5792 offset = offset
>>> 0
5793 if (!noAssert) checkOffset(offset,
2, this.length)
5794 return this[offset] | (this[offset +
1] <<
8)
5797 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
2, this.length)
5800 return (this[offset] <<
8) | this[offset +
1]
5803 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
4, this.length)
5807 return ((this[offset]) |
5808 (this[offset +
1] <<
8) |
5809 (this[offset +
2] <<
16)) +
5810 (this[offset +
3] *
0x1000000)
5813 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5814 offset = offset
>>> 0
5815 if (!noAssert) checkOffset(offset,
4, this.length)
5817 return (this[offset] *
0x1000000) +
5818 ((this[offset +
1] <<
16) |
5819 (this[offset +
2] <<
8) |
5823 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5824 offset = offset
>>> 0
5825 byteLength = byteLength
>>> 0
5826 if (!noAssert) checkOffset(offset, byteLength, this.length)
5828 var val = this[offset]
5831 while (++i < byteLength && (mul *=
0x100)) {
5832 val += this[offset + i] * mul
5836 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5841 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5842 offset = offset
>>> 0
5843 byteLength = byteLength
>>> 0
5844 if (!noAssert) checkOffset(offset, byteLength, this.length)
5848 var val = this[offset + --i]
5849 while (i
> 0 && (mul *=
0x100)) {
5850 val += this[offset + --i] * mul
5854 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5859 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5860 offset = offset
>>> 0
5861 if (!noAssert) checkOffset(offset,
1, this.length)
5862 if (!(this[offset] &
0x80)) return (this[offset])
5863 return ((
0xff - this[offset] +
1) * -
1)
5866 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5867 offset = offset
>>> 0
5868 if (!noAssert) checkOffset(offset,
2, this.length)
5869 var val = this[offset] | (this[offset +
1] <<
8)
5870 return (val &
0x8000) ? val |
0xFFFF0000 : val
5873 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5874 offset = offset
>>> 0
5875 if (!noAssert) checkOffset(offset,
2, this.length)
5876 var val = this[offset +
1] | (this[offset] <<
8)
5877 return (val &
0x8000) ? val |
0xFFFF0000 : val
5880 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5881 offset = offset
>>> 0
5882 if (!noAssert) checkOffset(offset,
4, this.length)
5884 return (this[offset]) |
5885 (this[offset +
1] <<
8) |
5886 (this[offset +
2] <<
16) |
5887 (this[offset +
3] <<
24)
5890 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5891 offset = offset
>>> 0
5892 if (!noAssert) checkOffset(offset,
4, this.length)
5894 return (this[offset] <<
24) |
5895 (this[offset +
1] <<
16) |
5896 (this[offset +
2] <<
8) |
5900 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5901 offset = offset
>>> 0
5902 if (!noAssert) checkOffset(offset,
4, this.length)
5903 return ieee754.read(this, offset, true,
23,
4)
5906 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5907 offset = offset
>>> 0
5908 if (!noAssert) checkOffset(offset,
4, this.length)
5909 return ieee754.read(this, offset, false,
23,
4)
5912 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5913 offset = offset
>>> 0
5914 if (!noAssert) checkOffset(offset,
8, this.length)
5915 return ieee754.read(this, offset, true,
52,
8)
5918 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5919 offset = offset
>>> 0
5920 if (!noAssert) checkOffset(offset,
8, this.length)
5921 return ieee754.read(this, offset, false,
52,
8)
5924 function checkInt (buf, value, offset, ext, max, min) {
5925 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5926 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5927 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5930 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5932 offset = offset
>>> 0
5933 byteLength = byteLength
>>> 0
5935 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5936 checkInt(this, value, offset, byteLength, maxBytes,
0)
5941 this[offset] = value &
0xFF
5942 while (++i < byteLength && (mul *=
0x100)) {
5943 this[offset + i] = (value / mul) &
0xFF
5946 return offset + byteLength
5949 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5951 offset = offset
>>> 0
5952 byteLength = byteLength
>>> 0
5954 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5955 checkInt(this, value, offset, byteLength, maxBytes,
0)
5958 var i = byteLength -
1
5960 this[offset + i] = value &
0xFF
5961 while (--i
>=
0 && (mul *=
0x100)) {
5962 this[offset + i] = (value / mul) &
0xFF
5965 return offset + byteLength
5968 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5970 offset = offset
>>> 0
5971 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5972 this[offset] = (value &
0xff)
5976 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5978 offset = offset
>>> 0
5979 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5980 this[offset] = (value &
0xff)
5981 this[offset +
1] = (value
>>> 8)
5985 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5987 offset = offset
>>> 0
5988 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5989 this[offset] = (value
>>> 8)
5990 this[offset +
1] = (value &
0xff)
5994 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5996 offset = offset
>>> 0
5997 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5998 this[offset +
3] = (value
>>> 24)
5999 this[offset +
2] = (value
>>> 16)
6000 this[offset +
1] = (value
>>> 8)
6001 this[offset] = (value &
0xff)
6005 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6007 offset = offset
>>> 0
6008 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6009 this[offset] = (value
>>> 24)
6010 this[offset +
1] = (value
>>> 16)
6011 this[offset +
2] = (value
>>> 8)
6012 this[offset +
3] = (value &
0xff)
6016 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6018 offset = offset
>>> 0
6020 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6022 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6028 this[offset] = value &
0xFF
6029 while (++i < byteLength && (mul *=
0x100)) {
6030 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6033 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6036 return offset + byteLength
6039 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6041 offset = offset
>>> 0
6043 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6045 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6048 var i = byteLength -
1
6051 this[offset + i] = value &
0xFF
6052 while (--i
>=
0 && (mul *=
0x100)) {
6053 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6056 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6059 return offset + byteLength
6062 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6064 offset = offset
>>> 0
6065 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6066 if (value <
0) value =
0xff + value +
1
6067 this[offset] = (value &
0xff)
6071 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6073 offset = offset
>>> 0
6074 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6075 this[offset] = (value &
0xff)
6076 this[offset +
1] = (value
>>> 8)
6080 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6082 offset = offset
>>> 0
6083 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6084 this[offset] = (value
>>> 8)
6085 this[offset +
1] = (value &
0xff)
6089 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6091 offset = offset
>>> 0
6092 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6093 this[offset] = (value &
0xff)
6094 this[offset +
1] = (value
>>> 8)
6095 this[offset +
2] = (value
>>> 16)
6096 this[offset +
3] = (value
>>> 24)
6100 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6102 offset = offset
>>> 0
6103 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6104 if (value <
0) value =
0xffffffff + value +
1
6105 this[offset] = (value
>>> 24)
6106 this[offset +
1] = (value
>>> 16)
6107 this[offset +
2] = (value
>>> 8)
6108 this[offset +
3] = (value &
0xff)
6112 function checkIEEE754 (buf, value, offset, ext, max, min) {
6113 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6114 if (offset <
0) throw new RangeError('Index out of range')
6117 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6119 offset = offset
>>> 0
6121 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6123 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6127 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6128 return writeFloat(this, value, offset, true, noAssert)
6131 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6132 return writeFloat(this, value, offset, false, noAssert)
6135 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6137 offset = offset
>>> 0
6139 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6141 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6145 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6146 return writeDouble(this, value, offset, true, noAssert)
6149 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6150 return writeDouble(this, value, offset, false, noAssert)
6153 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6154 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6155 if (!start) start =
0
6156 if (!end && end !==
0) end = this.length
6157 if (targetStart
>= target.length) targetStart = target.length
6158 if (!targetStart) targetStart =
0
6159 if (end
> 0 && end < start) end = start
6161 // Copy
0 bytes; we're done
6162 if (end === start) return
0
6163 if (target.length ===
0 || this.length ===
0) return
0
6165 // Fatal error conditions
6166 if (targetStart <
0) {
6167 throw new RangeError('targetStart out of bounds')
6169 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6170 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6173 if (end
> this.length) end = this.length
6174 if (target.length - targetStart < end - start) {
6175 end = target.length - targetStart + start
6178 var len = end - start
6181 if (this === target && start < targetStart && targetStart < end) {
6182 // descending copy from end
6183 for (i = len -
1; i
>=
0; --i) {
6184 target[i + targetStart] = this[i + start]
6186 } else if (len <
1000) {
6187 // ascending copy from start
6188 for (i =
0; i < len; ++i) {
6189 target[i + targetStart] = this[i + start]
6192 Uint8Array.prototype.set.call(
6194 this.subarray(start, start + len),
6203 // buffer.fill(number[, offset[, end]])
6204 // buffer.fill(buffer[, offset[, end]])
6205 // buffer.fill(string[, offset[, end]][, encoding])
6206 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6207 // Handle string cases:
6208 if (typeof val === 'string') {
6209 if (typeof start === 'string') {
6213 } else if (typeof end === 'string') {
6217 if (val.length ===
1) {
6218 var code = val.charCodeAt(
0)
6223 if (encoding !== undefined && typeof encoding !== 'string') {
6224 throw new TypeError('encoding must be a string')
6226 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6227 throw new TypeError('Unknown encoding: ' + encoding)
6229 } else if (typeof val === 'number') {
6233 // Invalid ranges are not set to a default, so can range check early.
6234 if (start <
0 || this.length < start || this.length < end) {
6235 throw new RangeError('Out of range index')
6243 end = end === undefined ? this.length : end
>>> 0
6248 if (typeof val === 'number') {
6249 for (i = start; i < end; ++i) {
6253 var bytes = Buffer.isBuffer(val)
6255 : new Buffer(val, encoding)
6256 var len = bytes.length
6257 for (i =
0; i < end - start; ++i) {
6258 this[i + start] = bytes[i % len]
6268 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6270 function base64clean (str) {
6271 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6272 str = str.trim().replace(INVALID_BASE64_RE, '')
6273 // Node converts strings with length <
2 to ''
6274 if (str.length <
2) return ''
6275 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6276 while (str.length %
4 !==
0) {
6282 function toHex (n) {
6283 if (n <
16) return '
0' + n.toString(
16)
6284 return n.toString(
16)
6287 function utf8ToBytes (string, units) {
6288 units = units || Infinity
6290 var length = string.length
6291 var leadSurrogate = null
6294 for (var i =
0; i < length; ++i) {
6295 codePoint = string.charCodeAt(i)
6297 // is surrogate component
6298 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6299 // last char was a lead
6300 if (!leadSurrogate) {
6302 if (codePoint
> 0xDBFF) {
6304 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6306 } else if (i +
1 === length) {
6308 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6313 leadSurrogate = codePoint
6319 if (codePoint <
0xDC00) {
6320 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6321 leadSurrogate = codePoint
6325 // valid surrogate pair
6326 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6327 } else if (leadSurrogate) {
6328 // valid bmp char, but last char was a lead
6329 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6332 leadSurrogate = null
6335 if (codePoint <
0x80) {
6336 if ((units -=
1) <
0) break
6337 bytes.push(codePoint)
6338 } else if (codePoint <
0x800) {
6339 if ((units -=
2) <
0) break
6341 codePoint
>> 0x6 |
0xC0,
6342 codePoint &
0x3F |
0x80
6344 } else if (codePoint <
0x10000) {
6345 if ((units -=
3) <
0) break
6347 codePoint
>> 0xC |
0xE0,
6348 codePoint
>> 0x6 &
0x3F |
0x80,
6349 codePoint &
0x3F |
0x80
6351 } else if (codePoint <
0x110000) {
6352 if ((units -=
4) <
0) break
6354 codePoint
>> 0x12 |
0xF0,
6355 codePoint
>> 0xC &
0x3F |
0x80,
6356 codePoint
>> 0x6 &
0x3F |
0x80,
6357 codePoint &
0x3F |
0x80
6360 throw new Error('Invalid code point')
6367 function asciiToBytes (str) {
6369 for (var i =
0; i < str.length; ++i) {
6370 // Node's code seems to be doing this and not &
0x7F..
6371 byteArray.push(str.charCodeAt(i) &
0xFF)
6376 function utf16leToBytes (str, units) {
6379 for (var i =
0; i < str.length; ++i) {
6380 if ((units -=
2) <
0) break
6382 c = str.charCodeAt(i)
6392 function base64ToBytes (str) {
6393 return base64.toByteArray(base64clean(str))
6396 function blitBuffer (src, dst, offset, length) {
6397 for (var i =
0; i < length; ++i) {
6398 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6399 dst[i + offset] = src[i]
6404 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6405 function isArrayBufferView (obj) {
6406 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6409 function numberIsNaN (obj) {
6410 return obj !== obj // eslint-disable-line no-self-compare
6413 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6414 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6416 var eLen = nBytes *
8 - mLen -
1
6417 var eMax = (
1 << eLen) -
1
6418 var eBias = eMax
>> 1
6420 var i = isLE ? (nBytes -
1) :
0
6421 var d = isLE ? -
1 :
1
6422 var s = buffer[offset + i]
6426 e = s & ((
1 << (-nBits)) -
1)
6429 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6431 m = e & ((
1 << (-nBits)) -
1)
6434 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6438 } else if (e === eMax) {
6439 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6441 m = m + Math.pow(
2, mLen)
6444 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6447 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6449 var eLen = nBytes *
8 - mLen -
1
6450 var eMax = (
1 << eLen) -
1
6451 var eBias = eMax
>> 1
6452 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6453 var i = isLE ?
0 : (nBytes -
1)
6454 var d = isLE ?
1 : -
1
6455 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6457 value = Math.abs(value)
6459 if (isNaN(value) || value === Infinity) {
6460 m = isNaN(value) ?
1 :
0
6463 e = Math.floor(Math.log(value) / Math.LN2)
6464 if (value * (c = Math.pow(
2, -e)) <
1) {
6468 if (e + eBias
>=
1) {
6471 value += rt * Math.pow(
2,
1 - eBias)
6473 if (value * c
>=
2) {
6478 if (e + eBias
>= eMax) {
6481 } else if (e + eBias
>=
1) {
6482 m = (value * c -
1) * Math.pow(
2, mLen)
6485 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6490 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6494 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6496 buffer[offset + i - d] |= s *
128
6499 },{}],
4:[function(require,module,exports){
6500 window.basex = require('base-x')
6501 },{
"base-x":
5}],
5:[function(require,module,exports){
6503 // Forked from https://github.com/cryptocoinjs/bs58
6504 // Originally written by Mike Hearn for BitcoinJ
6505 // Copyright (c)
2011 Google Inc
6506 // Ported to JavaScript by Stefan Thomas
6507 // Merged Buffer refactorings from base58-native by Stephen Pair
6508 // Copyright (c)
2013 BitPay Inc
6510 var Buffer = require('safe-buffer').Buffer
6512 module.exports = function base (ALPHABET) {
6513 var ALPHABET_MAP = {}
6514 var BASE = ALPHABET.length
6515 var LEADER = ALPHABET.charAt(
0)
6517 // pre-compute lookup table
6518 for (var z =
0; z < ALPHABET.length; z++) {
6519 var x = ALPHABET.charAt(z)
6521 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6525 function encode (source) {
6526 if (source.length ===
0) return ''
6529 for (var i =
0; i < source.length; ++i) {
6530 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6531 carry += digits[j] <<
8
6532 digits[j] = carry % BASE
6533 carry = (carry / BASE) |
0
6537 digits.push(carry % BASE)
6538 carry = (carry / BASE) |
0
6544 // deal with leading zeros
6545 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6546 // convert digits to a string
6547 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6552 function decodeUnsafe (string) {
6553 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6556 for (var i =
0; i < string.length; i++) {
6557 var value = ALPHABET_MAP[string[i]]
6558 if (value === undefined) return
6560 for (var j =
0, carry = value; j < bytes.length; ++j) {
6561 carry += bytes[j] * BASE
6562 bytes[j] = carry &
0xff
6567 bytes.push(carry &
0xff)
6572 // deal with leading zeros
6573 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6577 return Buffer.from(bytes.reverse())
6580 function decode (string) {
6581 var buffer = decodeUnsafe(string)
6582 if (buffer) return buffer
6584 throw new Error('Non-base' + BASE + ' character')
6589 decodeUnsafe: decodeUnsafe,
6594 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6595 module.exports = require('buffer')
6597 },{"buffer":
2}]},{},[
4])(
4)
6599 <script>(function (root) {
6602 /***** unorm.js *****/
6605 * UnicodeNormalizer
1.0.0
6606 * Copyright (c)
2008 Matsuza
6607 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6608 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6612 var DEFAULT_FEATURE = [null,
0, {}];
6613 var CACHE_THRESHOLD =
10;
6614 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6615 var NCount = VCount * TCount; //
588
6616 var SCount = LCount * NCount; //
11172
6618 var UChar = function(cp, feature){
6619 this.codepoint = cp;
6620 this.feature = feature;
6625 var cacheCounter = [];
6626 for (var i =
0; i <=
0xFF; ++i){
6627 cacheCounter[i] =
0;
6630 function fromCache(next, cp, needFeature){
6631 var ret = cache[cp];
6633 ret = next(cp, needFeature);
6634 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6641 function fromData(next, cp, needFeature){
6642 var hash = cp &
0xFF00;
6643 var dunit = UChar.udata[hash] || {};
6645 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6647 function fromCpOnly(next, cp, needFeature){
6648 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6650 function fromRuleBasedJamo(next, cp, needFeature){
6652 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6653 return next(cp, needFeature);
6655 if(LBase <= cp && cp < LBase + LCount){
6657 var base = (cp - LBase) * VCount;
6658 for (j =
0; j < VCount; ++j){
6659 c[VBase + j] = SBase + TCount * (j + base);
6661 return new UChar(cp, [,,c]);
6664 var SIndex = cp - SBase;
6665 var TIndex = SIndex % TCount;
6668 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6670 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6672 for (j =
1; j < TCount; ++j){
6673 feature[
2][TBase + j] = cp + j;
6676 return new UChar(cp, feature);
6678 function fromCpFilter(next, cp, needFeature){
6679 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6682 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6684 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6685 return function (cp, needFeature) {
6686 return strategy(next, cp, needFeature);
6690 UChar.isHighSurrogate = function(cp){
6691 return cp
>=
0xD800 && cp <=
0xDBFF;
6693 UChar.isLowSurrogate = function(cp){
6694 return cp
>=
0xDC00 && cp <=
0xDFFF;
6697 UChar.prototype.prepFeature = function(){
6699 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6703 UChar.prototype.toString = function(){
6704 if(this.codepoint <
0x10000){
6705 return String.fromCharCode(this.codepoint);
6707 var x = this.codepoint -
0x10000;
6708 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6712 UChar.prototype.getDecomp = function(){
6714 return this.feature[
0] || null;
6717 UChar.prototype.isCompatibility = function(){
6719 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6721 UChar.prototype.isExclude = function(){
6723 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6725 UChar.prototype.getCanonicalClass = function(){
6727 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6729 UChar.prototype.getComposite = function(following){
6731 if(!this.feature[
2]){
6734 var cp = this.feature[
2][following.codepoint];
6735 return cp ? UChar.fromCharCode(cp) : null;
6738 var UCharIterator = function(str){
6742 UCharIterator.prototype.next = function(){
6743 if(!!this.str && this.cursor < this.str.length){
6744 var cp = this.str.charCodeAt(this.cursor++);
6746 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6747 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6750 return UChar.fromCharCode(cp);
6757 var RecursDecompIterator = function(it, cano){
6759 this.canonical = cano;
6763 RecursDecompIterator.prototype.next = function(){
6764 function recursiveDecomp(cano, uchar){
6765 var decomp = uchar.getDecomp();
6766 if(!!decomp && !(cano && uchar.isCompatibility())){
6768 for(var i =
0; i < decomp.length; ++i){
6769 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6770 ret = ret.concat(a);
6777 if(this.resBuf.length ===
0){
6778 var uchar = this.it.next();
6782 this.resBuf = recursiveDecomp(this.canonical, uchar);
6784 return this.resBuf.shift();
6787 var DecompIterator = function(it){
6792 DecompIterator.prototype.next = function(){
6794 if(this.resBuf.length ===
0){
6796 var uchar = this.it.next();
6800 cc = uchar.getCanonicalClass();
6801 var inspt = this.resBuf.length;
6803 for(; inspt
> 0; --inspt){
6804 var uchar2 = this.resBuf[inspt -
1];
6805 var cc2 = uchar2.getCanonicalClass();
6811 this.resBuf.splice(inspt,
0, uchar);
6814 return this.resBuf.shift();
6817 var CompIterator = function(it){
6821 this.lastClass = null;
6824 CompIterator.prototype.next = function(){
6825 while(this.resBuf.length ===
0){
6826 var uchar = this.it.next();
6828 this.resBuf = this.procBuf;
6832 if(this.procBuf.length ===
0){
6833 this.lastClass = uchar.getCanonicalClass();
6834 this.procBuf.push(uchar);
6836 var starter = this.procBuf[
0];
6837 var composite = starter.getComposite(uchar);
6838 var cc = uchar.getCanonicalClass();
6839 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6840 this.procBuf[
0] = composite;
6843 this.resBuf = this.procBuf;
6846 this.lastClass = cc;
6847 this.procBuf.push(uchar);
6851 return this.resBuf.shift();
6854 var createIterator = function(mode, str){
6857 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6859 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6861 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6863 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6865 throw mode +
" is invalid";
6867 var normalize = function(mode, str){
6868 var it = createIterator(mode, str);
6871 while(!!(uchar = it.next())){
6872 ret += uchar.toString();
6879 return normalize(
"NFD", str);
6883 return normalize(
"NFKD", str);
6887 return normalize(
"NFC", str);
6891 return normalize(
"NFKC", str);
6896 0:{
60:[,,{
824:
8814}],
61:[,,{
824:
8800}],
62:[,,{
824:
8815}],
65:[,,{
768:
192,
769:
193,
770:
194,
771:
195,
772:
256,
774:
258,
775:
550,
776:
196,
777:
7842,
778:
197,
780:
461,
783:
512,
785:
514,
803:
7840,
805:
7680,
808:
260}],
66:[,,{
775:
7682,
803:
7684,
817:
7686}],
67:[,,{
769:
262,
770:
264,
775:
266,
780:
268,
807:
199}],
68:[,,{
775:
7690,
780:
270,
803:
7692,
807:
7696,
813:
7698,
817:
7694}],
69:[,,{
768:
200,
769:
201,
770:
202,
771:
7868,
772:
274,
774:
276,
775:
278,
776:
203,
777:
7866,
780:
282,
783:
516,
785:
518,
803:
7864,
807:
552,
808:
280,
813:
7704,
816:
7706}],
70:[,,{
775:
7710}],
71:[,,{
769:
500,
770:
284,
772:
7712,
774:
286,
775:
288,
780:
486,
807:
290}],
72:[,,{
770:
292,
775:
7714,
776:
7718,
780:
542,
803:
7716,
807:
7720,
814:
7722}],
73:[,,{
768:
204,
769:
205,
770:
206,
771:
296,
772:
298,
774:
300,
775:
304,
776:
207,
777:
7880,
780:
463,
783:
520,
785:
522,
803:
7882,
808:
302,
816:
7724}],
74:[,,{
770:
308}],
75:[,,{
769:
7728,
780:
488,
803:
7730,
807:
310,
817:
7732}],
76:[,,{
769:
313,
780:
317,
803:
7734,
807:
315,
813:
7740,
817:
7738}],
77:[,,{
769:
7742,
775:
7744,
803:
7746}],
78:[,,{
768:
504,
769:
323,
771:
209,
775:
7748,
780:
327,
803:
7750,
807:
325,
813:
7754,
817:
7752}],
79:[,,{
768:
210,
769:
211,
770:
212,
771:
213,
772:
332,
774:
334,
775:
558,
776:
214,
777:
7886,
779:
336,
780:
465,
783:
524,
785:
526,
795:
416,
803:
7884,
808:
490}],
80:[,,{
769:
7764,
775:
7766}],
82:[,,{
769:
340,
775:
7768,
780:
344,
783:
528,
785:
530,
803:
7770,
807:
342,
817:
7774}],
83:[,,{
769:
346,
770:
348,
775:
7776,
780:
352,
803:
7778,
806:
536,
807:
350}],
84:[,,{
775:
7786,
780:
356,
803:
7788,
806:
538,
807:
354,
813:
7792,
817:
7790}],
85:[,,{
768:
217,
769:
218,
770:
219,
771:
360,
772:
362,
774:
364,
776:
220,
777:
7910,
778:
366,
779:
368,
780:
467,
783:
532,
785:
534,
795:
431,
803:
7908,
804:
7794,
808:
370,
813:
7798,
816:
7796}],
86:[,,{
771:
7804,
803:
7806}],
87:[,,{
768:
7808,
769:
7810,
770:
372,
775:
7814,
776:
7812,
803:
7816}],
88:[,,{
775:
7818,
776:
7820}],
89:[,,{
768:
7922,
769:
221,
770:
374,
771:
7928,
772:
562,
775:
7822,
776:
376,
777:
7926,
803:
7924}],
90:[,,{
769:
377,
770:
7824,
775:
379,
780:
381,
803:
7826,
817:
7828}],
97:[,,{
768:
224,
769:
225,
770:
226,
771:
227,
772:
257,
774:
259,
775:
551,
776:
228,
777:
7843,
778:
229,
780:
462,
783:
513,
785:
515,
803:
7841,
805:
7681,
808:
261}],
98:[,,{
775:
7683,
803:
7685,
817:
7687}],
99:[,,{
769:
263,
770:
265,
775:
267,
780:
269,
807:
231}],
100:[,,{
775:
7691,
780:
271,
803:
7693,
807:
7697,
813:
7699,
817:
7695}],
101:[,,{
768:
232,
769:
233,
770:
234,
771:
7869,
772:
275,
774:
277,
775:
279,
776:
235,
777:
7867,
780:
283,
783:
517,
785:
519,
803:
7865,
807:
553,
808:
281,
813:
7705,
816:
7707}],
102:[,,{
775:
7711}],
103:[,,{
769:
501,
770:
285,
772:
7713,
774:
287,
775:
289,
780:
487,
807:
291}],
104:[,,{
770:
293,
775:
7715,
776:
7719,
780:
543,
803:
7717,
807:
7721,
814:
7723,
817:
7830}],
105:[,,{
768:
236,
769:
237,
770:
238,
771:
297,
772:
299,
774:
301,
776:
239,
777:
7881,
780:
464,
783:
521,
785:
523,
803:
7883,
808:
303,
816:
7725}],
106:[,,{
770:
309,
780:
496}],
107:[,,{
769:
7729,
780:
489,
803:
7731,
807:
311,
817:
7733}],
108:[,,{
769:
314,
780:
318,
803:
7735,
807:
316,
813:
7741,
817:
7739}],
109:[,,{
769:
7743,
775:
7745,
803:
7747}],
110:[,,{
768:
505,
769:
324,
771:
241,
775:
7749,
780:
328,
803:
7751,
807:
326,
813:
7755,
817:
7753}],
111:[,,{
768:
242,
769:
243,
770:
244,
771:
245,
772:
333,
774:
335,
775:
559,
776:
246,
777:
7887,
779:
337,
780:
466,
783:
525,
785:
527,
795:
417,
803:
7885,
808:
491}],
112:[,,{
769:
7765,
775:
7767}],
114:[,,{
769:
341,
775:
7769,
780:
345,
783:
529,
785:
531,
803:
7771,
807:
343,
817:
7775}],
115:[,,{
769:
347,
770:
349,
775:
7777,
780:
353,
803:
7779,
806:
537,
807:
351}],
116:[,,{
775:
7787,
776:
7831,
780:
357,
803:
7789,
806:
539,
807:
355,
813:
7793,
817:
7791}],
117:[,,{
768:
249,
769:
250,
770:
251,
771:
361,
772:
363,
774:
365,
776:
252,
777:
7911,
778:
367,
779:
369,
780:
468,
783:
533,
785:
535,
795:
432,
803:
7909,
804:
7795,
808:
371,
813:
7799,
816:
7797}],
118:[,,{
771:
7805,
803:
7807}],
119:[,,{
768:
7809,
769:
7811,
770:
373,
775:
7815,
776:
7813,
778:
7832,
803:
7817}],
120:[,,{
775:
7819,
776:
7821}],
121:[,,{
768:
7923,
769:
253,
770:
375,
771:
7929,
772:
563,
775:
7823,
776:
255,
777:
7927,
778:
7833,
803:
7925}],
122:[,,{
769:
378,
770:
7825,
775:
380,
780:
382,
803:
7827,
817:
7829}],
160:[[
32],
256],
168:[[
32,
776],
256,{
768:
8173,
769:
901,
834:
8129}],
170:[[
97],
256],
175:[[
32,
772],
256],
178:[[
50],
256],
179:[[
51],
256],
180:[[
32,
769],
256],
181:[[
956],
256],
184:[[
32,
807],
256],
185:[[
49],
256],
186:[[
111],
256],
188:[[
49,
8260,
52],
256],
189:[[
49,
8260,
50],
256],
190:[[
51,
8260,
52],
256],
192:[[
65,
768]],
193:[[
65,
769]],
194:[[
65,
770],,{
768:
7846,
769:
7844,
771:
7850,
777:
7848}],
195:[[
65,
771]],
196:[[
65,
776],,{
772:
478}],
197:[[
65,
778],,{
769:
506}],
198:[,,{
769:
508,
772:
482}],
199:[[
67,
807],,{
769:
7688}],
200:[[
69,
768]],
201:[[
69,
769]],
202:[[
69,
770],,{
768:
7872,
769:
7870,
771:
7876,
777:
7874}],
203:[[
69,
776]],
204:[[
73,
768]],
205:[[
73,
769]],
206:[[
73,
770]],
207:[[
73,
776],,{
769:
7726}],
209:[[
78,
771]],
210:[[
79,
768]],
211:[[
79,
769]],
212:[[
79,
770],,{
768:
7890,
769:
7888,
771:
7894,
777:
7892}],
213:[[
79,
771],,{
769:
7756,
772:
556,
776:
7758}],
214:[[
79,
776],,{
772:
554}],
216:[,,{
769:
510}],
217:[[
85,
768]],
218:[[
85,
769]],
219:[[
85,
770]],
220:[[
85,
776],,{
768:
475,
769:
471,
772:
469,
780:
473}],
221:[[
89,
769]],
224:[[
97,
768]],
225:[[
97,
769]],
226:[[
97,
770],,{
768:
7847,
769:
7845,
771:
7851,
777:
7849}],
227:[[
97,
771]],
228:[[
97,
776],,{
772:
479}],
229:[[
97,
778],,{
769:
507}],
230:[,,{
769:
509,
772:
483}],
231:[[
99,
807],,{
769:
7689}],
232:[[
101,
768]],
233:[[
101,
769]],
234:[[
101,
770],,{
768:
7873,
769:
7871,
771:
7877,
777:
7875}],
235:[[
101,
776]],
236:[[
105,
768]],
237:[[
105,
769]],
238:[[
105,
770]],
239:[[
105,
776],,{
769:
7727}],
241:[[
110,
771]],
242:[[
111,
768]],
243:[[
111,
769]],
244:[[
111,
770],,{
768:
7891,
769:
7889,
771:
7895,
777:
7893}],
245:[[
111,
771],,{
769:
7757,
772:
557,
776:
7759}],
246:[[
111,
776],,{
772:
555}],
248:[,,{
769:
511}],
249:[[
117,
768]],
250:[[
117,
769]],
251:[[
117,
770]],
252:[[
117,
776],,{
768:
476,
769:
472,
772:
470,
780:
474}],
253:[[
121,
769]],
255:[[
121,
776]]},
6897 256:{
256:[[
65,
772]],
257:[[
97,
772]],
258:[[
65,
774],,{
768:
7856,
769:
7854,
771:
7860,
777:
7858}],
259:[[
97,
774],,{
768:
7857,
769:
7855,
771:
7861,
777:
7859}],
260:[[
65,
808]],
261:[[
97,
808]],
262:[[
67,
769]],
263:[[
99,
769]],
264:[[
67,
770]],
265:[[
99,
770]],
266:[[
67,
775]],
267:[[
99,
775]],
268:[[
67,
780]],
269:[[
99,
780]],
270:[[
68,
780]],
271:[[
100,
780]],
274:[[
69,
772],,{
768:
7700,
769:
7702}],
275:[[
101,
772],,{
768:
7701,
769:
7703}],
276:[[
69,
774]],
277:[[
101,
774]],
278:[[
69,
775]],
279:[[
101,
775]],
280:[[
69,
808]],
281:[[
101,
808]],
282:[[
69,
780]],
283:[[
101,
780]],
284:[[
71,
770]],
285:[[
103,
770]],
286:[[
71,
774]],
287:[[
103,
774]],
288:[[
71,
775]],
289:[[
103,
775]],
290:[[
71,
807]],
291:[[
103,
807]],
292:[[
72,
770]],
293:[[
104,
770]],
296:[[
73,
771]],
297:[[
105,
771]],
298:[[
73,
772]],
299:[[
105,
772]],
300:[[
73,
774]],
301:[[
105,
774]],
302:[[
73,
808]],
303:[[
105,
808]],
304:[[
73,
775]],
306:[[
73,
74],
256],
307:[[
105,
106],
256],
308:[[
74,
770]],
309:[[
106,
770]],
310:[[
75,
807]],
311:[[
107,
807]],
313:[[
76,
769]],
314:[[
108,
769]],
315:[[
76,
807]],
316:[[
108,
807]],
317:[[
76,
780]],
318:[[
108,
780]],
319:[[
76,
183],
256],
320:[[
108,
183],
256],
323:[[
78,
769]],
324:[[
110,
769]],
325:[[
78,
807]],
326:[[
110,
807]],
327:[[
78,
780]],
328:[[
110,
780]],
329:[[
700,
110],
256],
332:[[
79,
772],,{
768:
7760,
769:
7762}],
333:[[
111,
772],,{
768:
7761,
769:
7763}],
334:[[
79,
774]],
335:[[
111,
774]],
336:[[
79,
779]],
337:[[
111,
779]],
340:[[
82,
769]],
341:[[
114,
769]],
342:[[
82,
807]],
343:[[
114,
807]],
344:[[
82,
780]],
345:[[
114,
780]],
346:[[
83,
769],,{
775:
7780}],
347:[[
115,
769],,{
775:
7781}],
348:[[
83,
770]],
349:[[
115,
770]],
350:[[
83,
807]],
351:[[
115,
807]],
352:[[
83,
780],,{
775:
7782}],
353:[[
115,
780],,{
775:
7783}],
354:[[
84,
807]],
355:[[
116,
807]],
356:[[
84,
780]],
357:[[
116,
780]],
360:[[
85,
771],,{
769:
7800}],
361:[[
117,
771],,{
769:
7801}],
362:[[
85,
772],,{
776:
7802}],
363:[[
117,
772],,{
776:
7803}],
364:[[
85,
774]],
365:[[
117,
774]],
366:[[
85,
778]],
367:[[
117,
778]],
368:[[
85,
779]],
369:[[
117,
779]],
370:[[
85,
808]],
371:[[
117,
808]],
372:[[
87,
770]],
373:[[
119,
770]],
374:[[
89,
770]],
375:[[
121,
770]],
376:[[
89,
776]],
377:[[
90,
769]],
378:[[
122,
769]],
379:[[
90,
775]],
380:[[
122,
775]],
381:[[
90,
780]],
382:[[
122,
780]],
383:[[
115],
256,{
775:
7835}],
416:[[
79,
795],,{
768:
7900,
769:
7898,
771:
7904,
777:
7902,
803:
7906}],
417:[[
111,
795],,{
768:
7901,
769:
7899,
771:
7905,
777:
7903,
803:
7907}],
431:[[
85,
795],,{
768:
7914,
769:
7912,
771:
7918,
777:
7916,
803:
7920}],
432:[[
117,
795],,{
768:
7915,
769:
7913,
771:
7919,
777:
7917,
803:
7921}],
439:[,,{
780:
494}],
452:[[
68,
381],
256],
453:[[
68,
382],
256],
454:[[
100,
382],
256],
455:[[
76,
74],
256],
456:[[
76,
106],
256],
457:[[
108,
106],
256],
458:[[
78,
74],
256],
459:[[
78,
106],
256],
460:[[
110,
106],
256],
461:[[
65,
780]],
462:[[
97,
780]],
463:[[
73,
780]],
464:[[
105,
780]],
465:[[
79,
780]],
466:[[
111,
780]],
467:[[
85,
780]],
468:[[
117,
780]],
469:[[
220,
772]],
470:[[
252,
772]],
471:[[
220,
769]],
472:[[
252,
769]],
473:[[
220,
780]],
474:[[
252,
780]],
475:[[
220,
768]],
476:[[
252,
768]],
478:[[
196,
772]],
479:[[
228,
772]],
480:[[
550,
772]],
481:[[
551,
772]],
482:[[
198,
772]],
483:[[
230,
772]],
486:[[
71,
780]],
487:[[
103,
780]],
488:[[
75,
780]],
489:[[
107,
780]],
490:[[
79,
808],,{
772:
492}],
491:[[
111,
808],,{
772:
493}],
492:[[
490,
772]],
493:[[
491,
772]],
494:[[
439,
780]],
495:[[
658,
780]],
496:[[
106,
780]],
497:[[
68,
90],
256],
498:[[
68,
122],
256],
499:[[
100,
122],
256],
500:[[
71,
769]],
501:[[
103,
769]],
504:[[
78,
768]],
505:[[
110,
768]],
506:[[
197,
769]],
507:[[
229,
769]],
508:[[
198,
769]],
509:[[
230,
769]],
510:[[
216,
769]],
511:[[
248,
769]],
66045:[,
220]},
6898 512:{
512:[[
65,
783]],
513:[[
97,
783]],
514:[[
65,
785]],
515:[[
97,
785]],
516:[[
69,
783]],
517:[[
101,
783]],
518:[[
69,
785]],
519:[[
101,
785]],
520:[[
73,
783]],
521:[[
105,
783]],
522:[[
73,
785]],
523:[[
105,
785]],
524:[[
79,
783]],
525:[[
111,
783]],
526:[[
79,
785]],
527:[[
111,
785]],
528:[[
82,
783]],
529:[[
114,
783]],
530:[[
82,
785]],
531:[[
114,
785]],
532:[[
85,
783]],
533:[[
117,
783]],
534:[[
85,
785]],
535:[[
117,
785]],
536:[[
83,
806]],
537:[[
115,
806]],
538:[[
84,
806]],
539:[[
116,
806]],
542:[[
72,
780]],
543:[[
104,
780]],
550:[[
65,
775],,{
772:
480}],
551:[[
97,
775],,{
772:
481}],
552:[[
69,
807],,{
774:
7708}],
553:[[
101,
807],,{
774:
7709}],
554:[[
214,
772]],
555:[[
246,
772]],
556:[[
213,
772]],
557:[[
245,
772]],
558:[[
79,
775],,{
772:
560}],
559:[[
111,
775],,{
772:
561}],
560:[[
558,
772]],
561:[[
559,
772]],
562:[[
89,
772]],
563:[[
121,
772]],
658:[,,{
780:
495}],
688:[[
104],
256],
689:[[
614],
256],
690:[[
106],
256],
691:[[
114],
256],
692:[[
633],
256],
693:[[
635],
256],
694:[[
641],
256],
695:[[
119],
256],
696:[[
121],
256],
728:[[
32,
774],
256],
729:[[
32,
775],
256],
730:[[
32,
778],
256],
731:[[
32,
808],
256],
732:[[
32,
771],
256],
733:[[
32,
779],
256],
736:[[
611],
256],
737:[[
108],
256],
738:[[
115],
256],
739:[[
120],
256],
740:[[
661],
256],
66272:[,
220]},
6899 768:{
768:[,
230],
769:[,
230],
770:[,
230],
771:[,
230],
772:[,
230],
773:[,
230],
774:[,
230],
775:[,
230],
776:[,
230,{
769:
836}],
777:[,
230],
778:[,
230],
779:[,
230],
780:[,
230],
781:[,
230],
782:[,
230],
783:[,
230],
784:[,
230],
785:[,
230],
786:[,
230],
787:[,
230],
788:[,
230],
789:[,
232],
790:[,
220],
791:[,
220],
792:[,
220],
793:[,
220],
794:[,
232],
795:[,
216],
796:[,
220],
797:[,
220],
798:[,
220],
799:[,
220],
800:[,
220],
801:[,
202],
802:[,
202],
803:[,
220],
804:[,
220],
805:[,
220],
806:[,
220],
807:[,
202],
808:[,
202],
809:[,
220],
810:[,
220],
811:[,
220],
812:[,
220],
813:[,
220],
814:[,
220],
815:[,
220],
816:[,
220],
817:[,
220],
818:[,
220],
819:[,
220],
820:[,
1],
821:[,
1],
822:[,
1],
823:[,
1],
824:[,
1],
825:[,
220],
826:[,
220],
827:[,
220],
828:[,
220],
829:[,
230],
830:[,
230],
831:[,
230],
832:[[
768],
230],
833:[[
769],
230],
834:[,
230],
835:[[
787],
230],
836:[[
776,
769],
230],
837:[,
240],
838:[,
230],
839:[,
220],
840:[,
220],
841:[,
220],
842:[,
230],
843:[,
230],
844:[,
230],
845:[,
220],
846:[,
220],
848:[,
230],
849:[,
230],
850:[,
230],
851:[,
220],
852:[,
220],
853:[,
220],
854:[,
220],
855:[,
230],
856:[,
232],
857:[,
220],
858:[,
220],
859:[,
230],
860:[,
233],
861:[,
234],
862:[,
234],
863:[,
233],
864:[,
234],
865:[,
234],
866:[,
233],
867:[,
230],
868:[,
230],
869:[,
230],
870:[,
230],
871:[,
230],
872:[,
230],
873:[,
230],
874:[,
230],
875:[,
230],
876:[,
230],
877:[,
230],
878:[,
230],
879:[,
230],
884:[[
697]],
890:[[
32,
837],
256],
894:[[
59]],
900:[[
32,
769],
256],
901:[[
168,
769]],
902:[[
913,
769]],
903:[[
183]],
904:[[
917,
769]],
905:[[
919,
769]],
906:[[
921,
769]],
908:[[
927,
769]],
910:[[
933,
769]],
911:[[
937,
769]],
912:[[
970,
769]],
913:[,,{
768:
8122,
769:
902,
772:
8121,
774:
8120,
787:
7944,
788:
7945,
837:
8124}],
917:[,,{
768:
8136,
769:
904,
787:
7960,
788:
7961}],
919:[,,{
768:
8138,
769:
905,
787:
7976,
788:
7977,
837:
8140}],
921:[,,{
768:
8154,
769:
906,
772:
8153,
774:
8152,
776:
938,
787:
7992,
788:
7993}],
927:[,,{
768:
8184,
769:
908,
787:
8008,
788:
8009}],
929:[,,{
788:
8172}],
933:[,,{
768:
8170,
769:
910,
772:
8169,
774:
8168,
776:
939,
788:
8025}],
937:[,,{
768:
8186,
769:
911,
787:
8040,
788:
8041,
837:
8188}],
938:[[
921,
776]],
939:[[
933,
776]],
940:[[
945,
769],,{
837:
8116}],
941:[[
949,
769]],
942:[[
951,
769],,{
837:
8132}],
943:[[
953,
769]],
944:[[
971,
769]],
945:[,,{
768:
8048,
769:
940,
772:
8113,
774:
8112,
787:
7936,
788:
7937,
834:
8118,
837:
8115}],
949:[,,{
768:
8050,
769:
941,
787:
7952,
788:
7953}],
951:[,,{
768:
8052,
769:
942,
787:
7968,
788:
7969,
834:
8134,
837:
8131}],
953:[,,{
768:
8054,
769:
943,
772:
8145,
774:
8144,
776:
970,
787:
7984,
788:
7985,
834:
8150}],
959:[,,{
768:
8056,
769:
972,
787:
8000,
788:
8001}],
961:[,,{
787:
8164,
788:
8165}],
965:[,,{
768:
8058,
769:
973,
772:
8161,
774:
8160,
776:
971,
787:
8016,
788:
8017,
834:
8166}],
969:[,,{
768:
8060,
769:
974,
787:
8032,
788:
8033,
834:
8182,
837:
8179}],
970:[[
953,
776],,{
768:
8146,
769:
912,
834:
8151}],
971:[[
965,
776],,{
768:
8162,
769:
944,
834:
8167}],
972:[[
959,
769]],
973:[[
965,
769]],
974:[[
969,
769],,{
837:
8180}],
976:[[
946],
256],
977:[[
952],
256],
978:[[
933],
256,{
769:
979,
776:
980}],
979:[[
978,
769]],
980:[[
978,
776]],
981:[[
966],
256],
982:[[
960],
256],
1008:[[
954],
256],
1009:[[
961],
256],
1010:[[
962],
256],
1012:[[
920],
256],
1013:[[
949],
256],
1017:[[
931],
256],
66422:[,
230],
66423:[,
230],
66424:[,
230],
66425:[,
230],
66426:[,
230]},
6900 1024:{
1024:[[
1045,
768]],
1025:[[
1045,
776]],
1027:[[
1043,
769]],
1030:[,,{
776:
1031}],
1031:[[
1030,
776]],
1036:[[
1050,
769]],
1037:[[
1048,
768]],
1038:[[
1059,
774]],
1040:[,,{
774:
1232,
776:
1234}],
1043:[,,{
769:
1027}],
1045:[,,{
768:
1024,
774:
1238,
776:
1025}],
1046:[,,{
774:
1217,
776:
1244}],
1047:[,,{
776:
1246}],
1048:[,,{
768:
1037,
772:
1250,
774:
1049,
776:
1252}],
1049:[[
1048,
774]],
1050:[,,{
769:
1036}],
1054:[,,{
776:
1254}],
1059:[,,{
772:
1262,
774:
1038,
776:
1264,
779:
1266}],
1063:[,,{
776:
1268}],
1067:[,,{
776:
1272}],
1069:[,,{
776:
1260}],
1072:[,,{
774:
1233,
776:
1235}],
1075:[,,{
769:
1107}],
1077:[,,{
768:
1104,
774:
1239,
776:
1105}],
1078:[,,{
774:
1218,
776:
1245}],
1079:[,,{
776:
1247}],
1080:[,,{
768:
1117,
772:
1251,
774:
1081,
776:
1253}],
1081:[[
1080,
774]],
1082:[,,{
769:
1116}],
1086:[,,{
776:
1255}],
1091:[,,{
772:
1263,
774:
1118,
776:
1265,
779:
1267}],
1095:[,,{
776:
1269}],
1099:[,,{
776:
1273}],
1101:[,,{
776:
1261}],
1104:[[
1077,
768]],
1105:[[
1077,
776]],
1107:[[
1075,
769]],
1110:[,,{
776:
1111}],
1111:[[
1110,
776]],
1116:[[
1082,
769]],
1117:[[
1080,
768]],
1118:[[
1091,
774]],
1140:[,,{
783:
1142}],
1141:[,,{
783:
1143}],
1142:[[
1140,
783]],
1143:[[
1141,
783]],
1155:[,
230],
1156:[,
230],
1157:[,
230],
1158:[,
230],
1159:[,
230],
1217:[[
1046,
774]],
1218:[[
1078,
774]],
1232:[[
1040,
774]],
1233:[[
1072,
774]],
1234:[[
1040,
776]],
1235:[[
1072,
776]],
1238:[[
1045,
774]],
1239:[[
1077,
774]],
1240:[,,{
776:
1242}],
1241:[,,{
776:
1243}],
1242:[[
1240,
776]],
1243:[[
1241,
776]],
1244:[[
1046,
776]],
1245:[[
1078,
776]],
1246:[[
1047,
776]],
1247:[[
1079,
776]],
1250:[[
1048,
772]],
1251:[[
1080,
772]],
1252:[[
1048,
776]],
1253:[[
1080,
776]],
1254:[[
1054,
776]],
1255:[[
1086,
776]],
1256:[,,{
776:
1258}],
1257:[,,{
776:
1259}],
1258:[[
1256,
776]],
1259:[[
1257,
776]],
1260:[[
1069,
776]],
1261:[[
1101,
776]],
1262:[[
1059,
772]],
1263:[[
1091,
772]],
1264:[[
1059,
776]],
1265:[[
1091,
776]],
1266:[[
1059,
779]],
1267:[[
1091,
779]],
1268:[[
1063,
776]],
1269:[[
1095,
776]],
1272:[[
1067,
776]],
1273:[[
1099,
776]]},
6901 1280:{
1415:[[
1381,
1410],
256],
1425:[,
220],
1426:[,
230],
1427:[,
230],
1428:[,
230],
1429:[,
230],
1430:[,
220],
1431:[,
230],
1432:[,
230],
1433:[,
230],
1434:[,
222],
1435:[,
220],
1436:[,
230],
1437:[,
230],
1438:[,
230],
1439:[,
230],
1440:[,
230],
1441:[,
230],
1442:[,
220],
1443:[,
220],
1444:[,
220],
1445:[,
220],
1446:[,
220],
1447:[,
220],
1448:[,
230],
1449:[,
230],
1450:[,
220],
1451:[,
230],
1452:[,
230],
1453:[,
222],
1454:[,
228],
1455:[,
230],
1456:[,
10],
1457:[,
11],
1458:[,
12],
1459:[,
13],
1460:[,
14],
1461:[,
15],
1462:[,
16],
1463:[,
17],
1464:[,
18],
1465:[,
19],
1466:[,
19],
1467:[,
20],
1468:[,
21],
1469:[,
22],
1471:[,
23],
1473:[,
24],
1474:[,
25],
1476:[,
230],
1477:[,
220],
1479:[,
18]},
6902 1536:{
1552:[,
230],
1553:[,
230],
1554:[,
230],
1555:[,
230],
1556:[,
230],
1557:[,
230],
1558:[,
230],
1559:[,
230],
1560:[,
30],
1561:[,
31],
1562:[,
32],
1570:[[
1575,
1619]],
1571:[[
1575,
1620]],
1572:[[
1608,
1620]],
1573:[[
1575,
1621]],
1574:[[
1610,
1620]],
1575:[,,{
1619:
1570,
1620:
1571,
1621:
1573}],
1608:[,,{
1620:
1572}],
1610:[,,{
1620:
1574}],
1611:[,
27],
1612:[,
28],
1613:[,
29],
1614:[,
30],
1615:[,
31],
1616:[,
32],
1617:[,
33],
1618:[,
34],
1619:[,
230],
1620:[,
230],
1621:[,
220],
1622:[,
220],
1623:[,
230],
1624:[,
230],
1625:[,
230],
1626:[,
230],
1627:[,
230],
1628:[,
220],
1629:[,
230],
1630:[,
230],
1631:[,
220],
1648:[,
35],
1653:[[
1575,
1652],
256],
1654:[[
1608,
1652],
256],
1655:[[
1735,
1652],
256],
1656:[[
1610,
1652],
256],
1728:[[
1749,
1620]],
1729:[,,{
1620:
1730}],
1730:[[
1729,
1620]],
1746:[,,{
1620:
1747}],
1747:[[
1746,
1620]],
1749:[,,{
1620:
1728}],
1750:[,
230],
1751:[,
230],
1752:[,
230],
1753:[,
230],
1754:[,
230],
1755:[,
230],
1756:[,
230],
1759:[,
230],
1760:[,
230],
1761:[,
230],
1762:[,
230],
1763:[,
220],
1764:[,
230],
1767:[,
230],
1768:[,
230],
1770:[,
220],
1771:[,
230],
1772:[,
230],
1773:[,
220]},
6903 1792:{
1809:[,
36],
1840:[,
230],
1841:[,
220],
1842:[,
230],
1843:[,
230],
1844:[,
220],
1845:[,
230],
1846:[,
230],
1847:[,
220],
1848:[,
220],
1849:[,
220],
1850:[,
230],
1851:[,
220],
1852:[,
220],
1853:[,
230],
1854:[,
220],
1855:[,
230],
1856:[,
230],
1857:[,
230],
1858:[,
220],
1859:[,
230],
1860:[,
220],
1861:[,
230],
1862:[,
220],
1863:[,
230],
1864:[,
220],
1865:[,
230],
1866:[,
230],
2027:[,
230],
2028:[,
230],
2029:[,
230],
2030:[,
230],
2031:[,
230],
2032:[,
230],
2033:[,
230],
2034:[,
220],
2035:[,
230]},
6904 2048:{
2070:[,
230],
2071:[,
230],
2072:[,
230],
2073:[,
230],
2075:[,
230],
2076:[,
230],
2077:[,
230],
2078:[,
230],
2079:[,
230],
2080:[,
230],
2081:[,
230],
2082:[,
230],
2083:[,
230],
2085:[,
230],
2086:[,
230],
2087:[,
230],
2089:[,
230],
2090:[,
230],
2091:[,
230],
2092:[,
230],
2093:[,
230],
2137:[,
220],
2138:[,
220],
2139:[,
220],
2276:[,
230],
2277:[,
230],
2278:[,
220],
2279:[,
230],
2280:[,
230],
2281:[,
220],
2282:[,
230],
2283:[,
230],
2284:[,
230],
2285:[,
220],
2286:[,
220],
2287:[,
220],
2288:[,
27],
2289:[,
28],
2290:[,
29],
2291:[,
230],
2292:[,
230],
2293:[,
230],
2294:[,
220],
2295:[,
230],
2296:[,
230],
2297:[,
220],
2298:[,
220],
2299:[,
230],
2300:[,
230],
2301:[,
230],
2302:[,
230],
2303:[,
230]},
6905 2304:{
2344:[,,{
2364:
2345}],
2345:[[
2344,
2364]],
2352:[,,{
2364:
2353}],
2353:[[
2352,
2364]],
2355:[,,{
2364:
2356}],
2356:[[
2355,
2364]],
2364:[,
7],
2381:[,
9],
2385:[,
230],
2386:[,
220],
2387:[,
230],
2388:[,
230],
2392:[[
2325,
2364],
512],
2393:[[
2326,
2364],
512],
2394:[[
2327,
2364],
512],
2395:[[
2332,
2364],
512],
2396:[[
2337,
2364],
512],
2397:[[
2338,
2364],
512],
2398:[[
2347,
2364],
512],
2399:[[
2351,
2364],
512],
2492:[,
7],
2503:[,,{
2494:
2507,
2519:
2508}],
2507:[[
2503,
2494]],
2508:[[
2503,
2519]],
2509:[,
9],
2524:[[
2465,
2492],
512],
2525:[[
2466,
2492],
512],
2527:[[
2479,
2492],
512]},
6906 2560:{
2611:[[
2610,
2620],
512],
2614:[[
2616,
2620],
512],
2620:[,
7],
2637:[,
9],
2649:[[
2582,
2620],
512],
2650:[[
2583,
2620],
512],
2651:[[
2588,
2620],
512],
2654:[[
2603,
2620],
512],
2748:[,
7],
2765:[,
9],
68109:[,
220],
68111:[,
230],
68152:[,
230],
68153:[,
1],
68154:[,
220],
68159:[,
9],
68325:[,
230],
68326:[,
220]},
6907 2816:{
2876:[,
7],
2887:[,,{
2878:
2891,
2902:
2888,
2903:
2892}],
2888:[[
2887,
2902]],
2891:[[
2887,
2878]],
2892:[[
2887,
2903]],
2893:[,
9],
2908:[[
2849,
2876],
512],
2909:[[
2850,
2876],
512],
2962:[,,{
3031:
2964}],
2964:[[
2962,
3031]],
3014:[,,{
3006:
3018,
3031:
3020}],
3015:[,,{
3006:
3019}],
3018:[[
3014,
3006]],
3019:[[
3015,
3006]],
3020:[[
3014,
3031]],
3021:[,
9]},
6908 3072:{
3142:[,,{
3158:
3144}],
3144:[[
3142,
3158]],
3149:[,
9],
3157:[,
84],
3158:[,
91],
3260:[,
7],
3263:[,,{
3285:
3264}],
3264:[[
3263,
3285]],
3270:[,,{
3266:
3274,
3285:
3271,
3286:
3272}],
3271:[[
3270,
3285]],
3272:[[
3270,
3286]],
3274:[[
3270,
3266],,{
3285:
3275}],
3275:[[
3274,
3285]],
3277:[,
9]},
6909 3328:{
3398:[,,{
3390:
3402,
3415:
3404}],
3399:[,,{
3390:
3403}],
3402:[[
3398,
3390]],
3403:[[
3399,
3390]],
3404:[[
3398,
3415]],
3405:[,
9],
3530:[,
9],
3545:[,,{
3530:
3546,
3535:
3548,
3551:
3550}],
3546:[[
3545,
3530]],
3548:[[
3545,
3535],,{
3530:
3549}],
3549:[[
3548,
3530]],
3550:[[
3545,
3551]]},
6910 3584:{
3635:[[
3661,
3634],
256],
3640:[,
103],
3641:[,
103],
3642:[,
9],
3656:[,
107],
3657:[,
107],
3658:[,
107],
3659:[,
107],
3763:[[
3789,
3762],
256],
3768:[,
118],
3769:[,
118],
3784:[,
122],
3785:[,
122],
3786:[,
122],
3787:[,
122],
3804:[[
3755,
3737],
256],
3805:[[
3755,
3745],
256]},
6911 3840:{
3852:[[
3851],
256],
3864:[,
220],
3865:[,
220],
3893:[,
220],
3895:[,
220],
3897:[,
216],
3907:[[
3906,
4023],
512],
3917:[[
3916,
4023],
512],
3922:[[
3921,
4023],
512],
3927:[[
3926,
4023],
512],
3932:[[
3931,
4023],
512],
3945:[[
3904,
4021],
512],
3953:[,
129],
3954:[,
130],
3955:[[
3953,
3954],
512],
3956:[,
132],
3957:[[
3953,
3956],
512],
3958:[[
4018,
3968],
512],
3959:[[
4018,
3969],
256],
3960:[[
4019,
3968],
512],
3961:[[
4019,
3969],
256],
3962:[,
130],
3963:[,
130],
3964:[,
130],
3965:[,
130],
3968:[,
130],
3969:[[
3953,
3968],
512],
3970:[,
230],
3971:[,
230],
3972:[,
9],
3974:[,
230],
3975:[,
230],
3987:[[
3986,
4023],
512],
3997:[[
3996,
4023],
512],
4002:[[
4001,
4023],
512],
4007:[[
4006,
4023],
512],
4012:[[
4011,
4023],
512],
4025:[[
3984,
4021],
512],
4038:[,
220]},
6912 4096:{
4133:[,,{
4142:
4134}],
4134:[[
4133,
4142]],
4151:[,
7],
4153:[,
9],
4154:[,
9],
4237:[,
220],
4348:[[
4316],
256],
69702:[,
9],
69759:[,
9],
69785:[,,{
69818:
69786}],
69786:[[
69785,
69818]],
69787:[,,{
69818:
69788}],
69788:[[
69787,
69818]],
69797:[,,{
69818:
69803}],
69803:[[
69797,
69818]],
69817:[,
9],
69818:[,
7]},
6913 4352:{
69888:[,
230],
69889:[,
230],
69890:[,
230],
69934:[[
69937,
69927]],
69935:[[
69938,
69927]],
69937:[,,{
69927:
69934}],
69938:[,,{
69927:
69935}],
69939:[,
9],
69940:[,
9],
70003:[,
7],
70080:[,
9]},
6914 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6915 4864:{
4957:[,
230],
4958:[,
230],
4959:[,
230],
70460:[,
7],
70471:[,,{
70462:
70475,
70487:
70476}],
70475:[[
70471,
70462]],
70476:[[
70471,
70487]],
70477:[,
9],
70502:[,
230],
70503:[,
230],
70504:[,
230],
70505:[,
230],
70506:[,
230],
70507:[,
230],
70508:[,
230],
70512:[,
230],
70513:[,
230],
70514:[,
230],
70515:[,
230],
70516:[,
230]},
6916 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6917 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6918 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6919 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6921 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6922 6656:{
6679:[,
230],
6680:[,
220],
6752:[,
9],
6773:[,
230],
6774:[,
230],
6775:[,
230],
6776:[,
230],
6777:[,
230],
6778:[,
230],
6779:[,
230],
6780:[,
230],
6783:[,
220],
6832:[,
230],
6833:[,
230],
6834:[,
230],
6835:[,
230],
6836:[,
230],
6837:[,
220],
6838:[,
220],
6839:[,
220],
6840:[,
220],
6841:[,
220],
6842:[,
220],
6843:[,
230],
6844:[,
230],
6845:[,
220]},
6923 6912:{
6917:[,,{
6965:
6918}],
6918:[[
6917,
6965]],
6919:[,,{
6965:
6920}],
6920:[[
6919,
6965]],
6921:[,,{
6965:
6922}],
6922:[[
6921,
6965]],
6923:[,,{
6965:
6924}],
6924:[[
6923,
6965]],
6925:[,,{
6965:
6926}],
6926:[[
6925,
6965]],
6929:[,,{
6965:
6930}],
6930:[[
6929,
6965]],
6964:[,
7],
6970:[,,{
6965:
6971}],
6971:[[
6970,
6965]],
6972:[,,{
6965:
6973}],
6973:[[
6972,
6965]],
6974:[,,{
6965:
6976}],
6975:[,,{
6965:
6977}],
6976:[[
6974,
6965]],
6977:[[
6975,
6965]],
6978:[,,{
6965:
6979}],
6979:[[
6978,
6965]],
6980:[,
9],
7019:[,
230],
7020:[,
220],
7021:[,
230],
7022:[,
230],
7023:[,
230],
7024:[,
230],
7025:[,
230],
7026:[,
230],
7027:[,
230],
7082:[,
9],
7083:[,
9],
7142:[,
7],
7154:[,
9],
7155:[,
9]},
6924 7168:{
7223:[,
7],
7376:[,
230],
7377:[,
230],
7378:[,
230],
7380:[,
1],
7381:[,
220],
7382:[,
220],
7383:[,
220],
7384:[,
220],
7385:[,
220],
7386:[,
230],
7387:[,
230],
7388:[,
220],
7389:[,
220],
7390:[,
220],
7391:[,
220],
7392:[,
230],
7394:[,
1],
7395:[,
1],
7396:[,
1],
7397:[,
1],
7398:[,
1],
7399:[,
1],
7400:[,
1],
7405:[,
220],
7412:[,
230],
7416:[,
230],
7417:[,
230]},
6925 7424:{
7468:[[
65],
256],
7469:[[
198],
256],
7470:[[
66],
256],
7472:[[
68],
256],
7473:[[
69],
256],
7474:[[
398],
256],
7475:[[
71],
256],
7476:[[
72],
256],
7477:[[
73],
256],
7478:[[
74],
256],
7479:[[
75],
256],
7480:[[
76],
256],
7481:[[
77],
256],
7482:[[
78],
256],
7484:[[
79],
256],
7485:[[
546],
256],
7486:[[
80],
256],
7487:[[
82],
256],
7488:[[
84],
256],
7489:[[
85],
256],
7490:[[
87],
256],
7491:[[
97],
256],
7492:[[
592],
256],
7493:[[
593],
256],
7494:[[
7426],
256],
7495:[[
98],
256],
7496:[[
100],
256],
7497:[[
101],
256],
7498:[[
601],
256],
7499:[[
603],
256],
7500:[[
604],
256],
7501:[[
103],
256],
7503:[[
107],
256],
7504:[[
109],
256],
7505:[[
331],
256],
7506:[[
111],
256],
7507:[[
596],
256],
7508:[[
7446],
256],
7509:[[
7447],
256],
7510:[[
112],
256],
7511:[[
116],
256],
7512:[[
117],
256],
7513:[[
7453],
256],
7514:[[
623],
256],
7515:[[
118],
256],
7516:[[
7461],
256],
7517:[[
946],
256],
7518:[[
947],
256],
7519:[[
948],
256],
7520:[[
966],
256],
7521:[[
967],
256],
7522:[[
105],
256],
7523:[[
114],
256],
7524:[[
117],
256],
7525:[[
118],
256],
7526:[[
946],
256],
7527:[[
947],
256],
7528:[[
961],
256],
7529:[[
966],
256],
7530:[[
967],
256],
7544:[[
1085],
256],
7579:[[
594],
256],
7580:[[
99],
256],
7581:[[
597],
256],
7582:[[
240],
256],
7583:[[
604],
256],
7584:[[
102],
256],
7585:[[
607],
256],
7586:[[
609],
256],
7587:[[
613],
256],
7588:[[
616],
256],
7589:[[
617],
256],
7590:[[
618],
256],
7591:[[
7547],
256],
7592:[[
669],
256],
7593:[[
621],
256],
7594:[[
7557],
256],
7595:[[
671],
256],
7596:[[
625],
256],
7597:[[
624],
256],
7598:[[
626],
256],
7599:[[
627],
256],
7600:[[
628],
256],
7601:[[
629],
256],
7602:[[
632],
256],
7603:[[
642],
256],
7604:[[
643],
256],
7605:[[
427],
256],
7606:[[
649],
256],
7607:[[
650],
256],
7608:[[
7452],
256],
7609:[[
651],
256],
7610:[[
652],
256],
7611:[[
122],
256],
7612:[[
656],
256],
7613:[[
657],
256],
7614:[[
658],
256],
7615:[[
952],
256],
7616:[,
230],
7617:[,
230],
7618:[,
220],
7619:[,
230],
7620:[,
230],
7621:[,
230],
7622:[,
230],
7623:[,
230],
7624:[,
230],
7625:[,
230],
7626:[,
220],
7627:[,
230],
7628:[,
230],
7629:[,
234],
7630:[,
214],
7631:[,
220],
7632:[,
202],
7633:[,
230],
7634:[,
230],
7635:[,
230],
7636:[,
230],
7637:[,
230],
7638:[,
230],
7639:[,
230],
7640:[,
230],
7641:[,
230],
7642:[,
230],
7643:[,
230],
7644:[,
230],
7645:[,
230],
7646:[,
230],
7647:[,
230],
7648:[,
230],
7649:[,
230],
7650:[,
230],
7651:[,
230],
7652:[,
230],
7653:[,
230],
7654:[,
230],
7655:[,
230],
7656:[,
230],
7657:[,
230],
7658:[,
230],
7659:[,
230],
7660:[,
230],
7661:[,
230],
7662:[,
230],
7663:[,
230],
7664:[,
230],
7665:[,
230],
7666:[,
230],
7667:[,
230],
7668:[,
230],
7669:[,
230],
7676:[,
233],
7677:[,
220],
7678:[,
230],
7679:[,
220]},
6926 7680:{
7680:[[
65,
805]],
7681:[[
97,
805]],
7682:[[
66,
775]],
7683:[[
98,
775]],
7684:[[
66,
803]],
7685:[[
98,
803]],
7686:[[
66,
817]],
7687:[[
98,
817]],
7688:[[
199,
769]],
7689:[[
231,
769]],
7690:[[
68,
775]],
7691:[[
100,
775]],
7692:[[
68,
803]],
7693:[[
100,
803]],
7694:[[
68,
817]],
7695:[[
100,
817]],
7696:[[
68,
807]],
7697:[[
100,
807]],
7698:[[
68,
813]],
7699:[[
100,
813]],
7700:[[
274,
768]],
7701:[[
275,
768]],
7702:[[
274,
769]],
7703:[[
275,
769]],
7704:[[
69,
813]],
7705:[[
101,
813]],
7706:[[
69,
816]],
7707:[[
101,
816]],
7708:[[
552,
774]],
7709:[[
553,
774]],
7710:[[
70,
775]],
7711:[[
102,
775]],
7712:[[
71,
772]],
7713:[[
103,
772]],
7714:[[
72,
775]],
7715:[[
104,
775]],
7716:[[
72,
803]],
7717:[[
104,
803]],
7718:[[
72,
776]],
7719:[[
104,
776]],
7720:[[
72,
807]],
7721:[[
104,
807]],
7722:[[
72,
814]],
7723:[[
104,
814]],
7724:[[
73,
816]],
7725:[[
105,
816]],
7726:[[
207,
769]],
7727:[[
239,
769]],
7728:[[
75,
769]],
7729:[[
107,
769]],
7730:[[
75,
803]],
7731:[[
107,
803]],
7732:[[
75,
817]],
7733:[[
107,
817]],
7734:[[
76,
803],,{
772:
7736}],
7735:[[
108,
803],,{
772:
7737}],
7736:[[
7734,
772]],
7737:[[
7735,
772]],
7738:[[
76,
817]],
7739:[[
108,
817]],
7740:[[
76,
813]],
7741:[[
108,
813]],
7742:[[
77,
769]],
7743:[[
109,
769]],
7744:[[
77,
775]],
7745:[[
109,
775]],
7746:[[
77,
803]],
7747:[[
109,
803]],
7748:[[
78,
775]],
7749:[[
110,
775]],
7750:[[
78,
803]],
7751:[[
110,
803]],
7752:[[
78,
817]],
7753:[[
110,
817]],
7754:[[
78,
813]],
7755:[[
110,
813]],
7756:[[
213,
769]],
7757:[[
245,
769]],
7758:[[
213,
776]],
7759:[[
245,
776]],
7760:[[
332,
768]],
7761:[[
333,
768]],
7762:[[
332,
769]],
7763:[[
333,
769]],
7764:[[
80,
769]],
7765:[[
112,
769]],
7766:[[
80,
775]],
7767:[[
112,
775]],
7768:[[
82,
775]],
7769:[[
114,
775]],
7770:[[
82,
803],,{
772:
7772}],
7771:[[
114,
803],,{
772:
7773}],
7772:[[
7770,
772]],
7773:[[
7771,
772]],
7774:[[
82,
817]],
7775:[[
114,
817]],
7776:[[
83,
775]],
7777:[[
115,
775]],
7778:[[
83,
803],,{
775:
7784}],
7779:[[
115,
803],,{
775:
7785}],
7780:[[
346,
775]],
7781:[[
347,
775]],
7782:[[
352,
775]],
7783:[[
353,
775]],
7784:[[
7778,
775]],
7785:[[
7779,
775]],
7786:[[
84,
775]],
7787:[[
116,
775]],
7788:[[
84,
803]],
7789:[[
116,
803]],
7790:[[
84,
817]],
7791:[[
116,
817]],
7792:[[
84,
813]],
7793:[[
116,
813]],
7794:[[
85,
804]],
7795:[[
117,
804]],
7796:[[
85,
816]],
7797:[[
117,
816]],
7798:[[
85,
813]],
7799:[[
117,
813]],
7800:[[
360,
769]],
7801:[[
361,
769]],
7802:[[
362,
776]],
7803:[[
363,
776]],
7804:[[
86,
771]],
7805:[[
118,
771]],
7806:[[
86,
803]],
7807:[[
118,
803]],
7808:[[
87,
768]],
7809:[[
119,
768]],
7810:[[
87,
769]],
7811:[[
119,
769]],
7812:[[
87,
776]],
7813:[[
119,
776]],
7814:[[
87,
775]],
7815:[[
119,
775]],
7816:[[
87,
803]],
7817:[[
119,
803]],
7818:[[
88,
775]],
7819:[[
120,
775]],
7820:[[
88,
776]],
7821:[[
120,
776]],
7822:[[
89,
775]],
7823:[[
121,
775]],
7824:[[
90,
770]],
7825:[[
122,
770]],
7826:[[
90,
803]],
7827:[[
122,
803]],
7828:[[
90,
817]],
7829:[[
122,
817]],
7830:[[
104,
817]],
7831:[[
116,
776]],
7832:[[
119,
778]],
7833:[[
121,
778]],
7834:[[
97,
702],
256],
7835:[[
383,
775]],
7840:[[
65,
803],,{
770:
7852,
774:
7862}],
7841:[[
97,
803],,{
770:
7853,
774:
7863}],
7842:[[
65,
777]],
7843:[[
97,
777]],
7844:[[
194,
769]],
7845:[[
226,
769]],
7846:[[
194,
768]],
7847:[[
226,
768]],
7848:[[
194,
777]],
7849:[[
226,
777]],
7850:[[
194,
771]],
7851:[[
226,
771]],
7852:[[
7840,
770]],
7853:[[
7841,
770]],
7854:[[
258,
769]],
7855:[[
259,
769]],
7856:[[
258,
768]],
7857:[[
259,
768]],
7858:[[
258,
777]],
7859:[[
259,
777]],
7860:[[
258,
771]],
7861:[[
259,
771]],
7862:[[
7840,
774]],
7863:[[
7841,
774]],
7864:[[
69,
803],,{
770:
7878}],
7865:[[
101,
803],,{
770:
7879}],
7866:[[
69,
777]],
7867:[[
101,
777]],
7868:[[
69,
771]],
7869:[[
101,
771]],
7870:[[
202,
769]],
7871:[[
234,
769]],
7872:[[
202,
768]],
7873:[[
234,
768]],
7874:[[
202,
777]],
7875:[[
234,
777]],
7876:[[
202,
771]],
7877:[[
234,
771]],
7878:[[
7864,
770]],
7879:[[
7865,
770]],
7880:[[
73,
777]],
7881:[[
105,
777]],
7882:[[
73,
803]],
7883:[[
105,
803]],
7884:[[
79,
803],,{
770:
7896}],
7885:[[
111,
803],,{
770:
7897}],
7886:[[
79,
777]],
7887:[[
111,
777]],
7888:[[
212,
769]],
7889:[[
244,
769]],
7890:[[
212,
768]],
7891:[[
244,
768]],
7892:[[
212,
777]],
7893:[[
244,
777]],
7894:[[
212,
771]],
7895:[[
244,
771]],
7896:[[
7884,
770]],
7897:[[
7885,
770]],
7898:[[
416,
769]],
7899:[[
417,
769]],
7900:[[
416,
768]],
7901:[[
417,
768]],
7902:[[
416,
777]],
7903:[[
417,
777]],
7904:[[
416,
771]],
7905:[[
417,
771]],
7906:[[
416,
803]],
7907:[[
417,
803]],
7908:[[
85,
803]],
7909:[[
117,
803]],
7910:[[
85,
777]],
7911:[[
117,
777]],
7912:[[
431,
769]],
7913:[[
432,
769]],
7914:[[
431,
768]],
7915:[[
432,
768]],
7916:[[
431,
777]],
7917:[[
432,
777]],
7918:[[
431,
771]],
7919:[[
432,
771]],
7920:[[
431,
803]],
7921:[[
432,
803]],
7922:[[
89,
768]],
7923:[[
121,
768]],
7924:[[
89,
803]],
7925:[[
121,
803]],
7926:[[
89,
777]],
7927:[[
121,
777]],
7928:[[
89,
771]],
7929:[[
121,
771]]},
6927 7936:{
7936:[[
945,
787],,{
768:
7938,
769:
7940,
834:
7942,
837:
8064}],
7937:[[
945,
788],,{
768:
7939,
769:
7941,
834:
7943,
837:
8065}],
7938:[[
7936,
768],,{
837:
8066}],
7939:[[
7937,
768],,{
837:
8067}],
7940:[[
7936,
769],,{
837:
8068}],
7941:[[
7937,
769],,{
837:
8069}],
7942:[[
7936,
834],,{
837:
8070}],
7943:[[
7937,
834],,{
837:
8071}],
7944:[[
913,
787],,{
768:
7946,
769:
7948,
834:
7950,
837:
8072}],
7945:[[
913,
788],,{
768:
7947,
769:
7949,
834:
7951,
837:
8073}],
7946:[[
7944,
768],,{
837:
8074}],
7947:[[
7945,
768],,{
837:
8075}],
7948:[[
7944,
769],,{
837:
8076}],
7949:[[
7945,
769],,{
837:
8077}],
7950:[[
7944,
834],,{
837:
8078}],
7951:[[
7945,
834],,{
837:
8079}],
7952:[[
949,
787],,{
768:
7954,
769:
7956}],
7953:[[
949,
788],,{
768:
7955,
769:
7957}],
7954:[[
7952,
768]],
7955:[[
7953,
768]],
7956:[[
7952,
769]],
7957:[[
7953,
769]],
7960:[[
917,
787],,{
768:
7962,
769:
7964}],
7961:[[
917,
788],,{
768:
7963,
769:
7965}],
7962:[[
7960,
768]],
7963:[[
7961,
768]],
7964:[[
7960,
769]],
7965:[[
7961,
769]],
7968:[[
951,
787],,{
768:
7970,
769:
7972,
834:
7974,
837:
8080}],
7969:[[
951,
788],,{
768:
7971,
769:
7973,
834:
7975,
837:
8081}],
7970:[[
7968,
768],,{
837:
8082}],
7971:[[
7969,
768],,{
837:
8083}],
7972:[[
7968,
769],,{
837:
8084}],
7973:[[
7969,
769],,{
837:
8085}],
7974:[[
7968,
834],,{
837:
8086}],
7975:[[
7969,
834],,{
837:
8087}],
7976:[[
919,
787],,{
768:
7978,
769:
7980,
834:
7982,
837:
8088}],
7977:[[
919,
788],,{
768:
7979,
769:
7981,
834:
7983,
837:
8089}],
7978:[[
7976,
768],,{
837:
8090}],
7979:[[
7977,
768],,{
837:
8091}],
7980:[[
7976,
769],,{
837:
8092}],
7981:[[
7977,
769],,{
837:
8093}],
7982:[[
7976,
834],,{
837:
8094}],
7983:[[
7977,
834],,{
837:
8095}],
7984:[[
953,
787],,{
768:
7986,
769:
7988,
834:
7990}],
7985:[[
953,
788],,{
768:
7987,
769:
7989,
834:
7991}],
7986:[[
7984,
768]],
7987:[[
7985,
768]],
7988:[[
7984,
769]],
7989:[[
7985,
769]],
7990:[[
7984,
834]],
7991:[[
7985,
834]],
7992:[[
921,
787],,{
768:
7994,
769:
7996,
834:
7998}],
7993:[[
921,
788],,{
768:
7995,
769:
7997,
834:
7999}],
7994:[[
7992,
768]],
7995:[[
7993,
768]],
7996:[[
7992,
769]],
7997:[[
7993,
769]],
7998:[[
7992,
834]],
7999:[[
7993,
834]],
8000:[[
959,
787],,{
768:
8002,
769:
8004}],
8001:[[
959,
788],,{
768:
8003,
769:
8005}],
8002:[[
8000,
768]],
8003:[[
8001,
768]],
8004:[[
8000,
769]],
8005:[[
8001,
769]],
8008:[[
927,
787],,{
768:
8010,
769:
8012}],
8009:[[
927,
788],,{
768:
8011,
769:
8013}],
8010:[[
8008,
768]],
8011:[[
8009,
768]],
8012:[[
8008,
769]],
8013:[[
8009,
769]],
8016:[[
965,
787],,{
768:
8018,
769:
8020,
834:
8022}],
8017:[[
965,
788],,{
768:
8019,
769:
8021,
834:
8023}],
8018:[[
8016,
768]],
8019:[[
8017,
768]],
8020:[[
8016,
769]],
8021:[[
8017,
769]],
8022:[[
8016,
834]],
8023:[[
8017,
834]],
8025:[[
933,
788],,{
768:
8027,
769:
8029,
834:
8031}],
8027:[[
8025,
768]],
8029:[[
8025,
769]],
8031:[[
8025,
834]],
8032:[[
969,
787],,{
768:
8034,
769:
8036,
834:
8038,
837:
8096}],
8033:[[
969,
788],,{
768:
8035,
769:
8037,
834:
8039,
837:
8097}],
8034:[[
8032,
768],,{
837:
8098}],
8035:[[
8033,
768],,{
837:
8099}],
8036:[[
8032,
769],,{
837:
8100}],
8037:[[
8033,
769],,{
837:
8101}],
8038:[[
8032,
834],,{
837:
8102}],
8039:[[
8033,
834],,{
837:
8103}],
8040:[[
937,
787],,{
768:
8042,
769:
8044,
834:
8046,
837:
8104}],
8041:[[
937,
788],,{
768:
8043,
769:
8045,
834:
8047,
837:
8105}],
8042:[[
8040,
768],,{
837:
8106}],
8043:[[
8041,
768],,{
837:
8107}],
8044:[[
8040,
769],,{
837:
8108}],
8045:[[
8041,
769],,{
837:
8109}],
8046:[[
8040,
834],,{
837:
8110}],
8047:[[
8041,
834],,{
837:
8111}],
8048:[[
945,
768],,{
837:
8114}],
8049:[[
940]],
8050:[[
949,
768]],
8051:[[
941]],
8052:[[
951,
768],,{
837:
8130}],
8053:[[
942]],
8054:[[
953,
768]],
8055:[[
943]],
8056:[[
959,
768]],
8057:[[
972]],
8058:[[
965,
768]],
8059:[[
973]],
8060:[[
969,
768],,{
837:
8178}],
8061:[[
974]],
8064:[[
7936,
837]],
8065:[[
7937,
837]],
8066:[[
7938,
837]],
8067:[[
7939,
837]],
8068:[[
7940,
837]],
8069:[[
7941,
837]],
8070:[[
7942,
837]],
8071:[[
7943,
837]],
8072:[[
7944,
837]],
8073:[[
7945,
837]],
8074:[[
7946,
837]],
8075:[[
7947,
837]],
8076:[[
7948,
837]],
8077:[[
7949,
837]],
8078:[[
7950,
837]],
8079:[[
7951,
837]],
8080:[[
7968,
837]],
8081:[[
7969,
837]],
8082:[[
7970,
837]],
8083:[[
7971,
837]],
8084:[[
7972,
837]],
8085:[[
7973,
837]],
8086:[[
7974,
837]],
8087:[[
7975,
837]],
8088:[[
7976,
837]],
8089:[[
7977,
837]],
8090:[[
7978,
837]],
8091:[[
7979,
837]],
8092:[[
7980,
837]],
8093:[[
7981,
837]],
8094:[[
7982,
837]],
8095:[[
7983,
837]],
8096:[[
8032,
837]],
8097:[[
8033,
837]],
8098:[[
8034,
837]],
8099:[[
8035,
837]],
8100:[[
8036,
837]],
8101:[[
8037,
837]],
8102:[[
8038,
837]],
8103:[[
8039,
837]],
8104:[[
8040,
837]],
8105:[[
8041,
837]],
8106:[[
8042,
837]],
8107:[[
8043,
837]],
8108:[[
8044,
837]],
8109:[[
8045,
837]],
8110:[[
8046,
837]],
8111:[[
8047,
837]],
8112:[[
945,
774]],
8113:[[
945,
772]],
8114:[[
8048,
837]],
8115:[[
945,
837]],
8116:[[
940,
837]],
8118:[[
945,
834],,{
837:
8119}],
8119:[[
8118,
837]],
8120:[[
913,
774]],
8121:[[
913,
772]],
8122:[[
913,
768]],
8123:[[
902]],
8124:[[
913,
837]],
8125:[[
32,
787],
256],
8126:[[
953]],
8127:[[
32,
787],
256,{
768:
8141,
769:
8142,
834:
8143}],
8128:[[
32,
834],
256],
8129:[[
168,
834]],
8130:[[
8052,
837]],
8131:[[
951,
837]],
8132:[[
942,
837]],
8134:[[
951,
834],,{
837:
8135}],
8135:[[
8134,
837]],
8136:[[
917,
768]],
8137:[[
904]],
8138:[[
919,
768]],
8139:[[
905]],
8140:[[
919,
837]],
8141:[[
8127,
768]],
8142:[[
8127,
769]],
8143:[[
8127,
834]],
8144:[[
953,
774]],
8145:[[
953,
772]],
8146:[[
970,
768]],
8147:[[
912]],
8150:[[
953,
834]],
8151:[[
970,
834]],
8152:[[
921,
774]],
8153:[[
921,
772]],
8154:[[
921,
768]],
8155:[[
906]],
8157:[[
8190,
768]],
8158:[[
8190,
769]],
8159:[[
8190,
834]],
8160:[[
965,
774]],
8161:[[
965,
772]],
8162:[[
971,
768]],
8163:[[
944]],
8164:[[
961,
787]],
8165:[[
961,
788]],
8166:[[
965,
834]],
8167:[[
971,
834]],
8168:[[
933,
774]],
8169:[[
933,
772]],
8170:[[
933,
768]],
8171:[[
910]],
8172:[[
929,
788]],
8173:[[
168,
768]],
8174:[[
901]],
8175:[[
96]],
8178:[[
8060,
837]],
8179:[[
969,
837]],
8180:[[
974,
837]],
8182:[[
969,
834],,{
837:
8183}],
8183:[[
8182,
837]],
8184:[[
927,
768]],
8185:[[
908]],
8186:[[
937,
768]],
8187:[[
911]],
8188:[[
937,
837]],
8189:[[
180]],
8190:[[
32,
788],
256,{
768:
8157,
769:
8158,
834:
8159}]},
6928 8192:{
8192:[[
8194]],
8193:[[
8195]],
8194:[[
32],
256],
8195:[[
32],
256],
8196:[[
32],
256],
8197:[[
32],
256],
8198:[[
32],
256],
8199:[[
32],
256],
8200:[[
32],
256],
8201:[[
32],
256],
8202:[[
32],
256],
8209:[[
8208],
256],
8215:[[
32,
819],
256],
8228:[[
46],
256],
8229:[[
46,
46],
256],
8230:[[
46,
46,
46],
256],
8239:[[
32],
256],
8243:[[
8242,
8242],
256],
8244:[[
8242,
8242,
8242],
256],
8246:[[
8245,
8245],
256],
8247:[[
8245,
8245,
8245],
256],
8252:[[
33,
33],
256],
8254:[[
32,
773],
256],
8263:[[
63,
63],
256],
8264:[[
63,
33],
256],
8265:[[
33,
63],
256],
8279:[[
8242,
8242,
8242,
8242],
256],
8287:[[
32],
256],
8304:[[
48],
256],
8305:[[
105],
256],
8308:[[
52],
256],
8309:[[
53],
256],
8310:[[
54],
256],
8311:[[
55],
256],
8312:[[
56],
256],
8313:[[
57],
256],
8314:[[
43],
256],
8315:[[
8722],
256],
8316:[[
61],
256],
8317:[[
40],
256],
8318:[[
41],
256],
8319:[[
110],
256],
8320:[[
48],
256],
8321:[[
49],
256],
8322:[[
50],
256],
8323:[[
51],
256],
8324:[[
52],
256],
8325:[[
53],
256],
8326:[[
54],
256],
8327:[[
55],
256],
8328:[[
56],
256],
8329:[[
57],
256],
8330:[[
43],
256],
8331:[[
8722],
256],
8332:[[
61],
256],
8333:[[
40],
256],
8334:[[
41],
256],
8336:[[
97],
256],
8337:[[
101],
256],
8338:[[
111],
256],
8339:[[
120],
256],
8340:[[
601],
256],
8341:[[
104],
256],
8342:[[
107],
256],
8343:[[
108],
256],
8344:[[
109],
256],
8345:[[
110],
256],
8346:[[
112],
256],
8347:[[
115],
256],
8348:[[
116],
256],
8360:[[
82,
115],
256],
8400:[,
230],
8401:[,
230],
8402:[,
1],
8403:[,
1],
8404:[,
230],
8405:[,
230],
8406:[,
230],
8407:[,
230],
8408:[,
1],
8409:[,
1],
8410:[,
1],
8411:[,
230],
8412:[,
230],
8417:[,
230],
8421:[,
1],
8422:[,
1],
8423:[,
230],
8424:[,
220],
8425:[,
230],
8426:[,
1],
8427:[,
1],
8428:[,
220],
8429:[,
220],
8430:[,
220],
8431:[,
220],
8432:[,
230]},
6929 8448:{
8448:[[
97,
47,
99],
256],
8449:[[
97,
47,
115],
256],
8450:[[
67],
256],
8451:[[
176,
67],
256],
8453:[[
99,
47,
111],
256],
8454:[[
99,
47,
117],
256],
8455:[[
400],
256],
8457:[[
176,
70],
256],
8458:[[
103],
256],
8459:[[
72],
256],
8460:[[
72],
256],
8461:[[
72],
256],
8462:[[
104],
256],
8463:[[
295],
256],
8464:[[
73],
256],
8465:[[
73],
256],
8466:[[
76],
256],
8467:[[
108],
256],
8469:[[
78],
256],
8470:[[
78,
111],
256],
8473:[[
80],
256],
8474:[[
81],
256],
8475:[[
82],
256],
8476:[[
82],
256],
8477:[[
82],
256],
8480:[[
83,
77],
256],
8481:[[
84,
69,
76],
256],
8482:[[
84,
77],
256],
8484:[[
90],
256],
8486:[[
937]],
8488:[[
90],
256],
8490:[[
75]],
8491:[[
197]],
8492:[[
66],
256],
8493:[[
67],
256],
8495:[[
101],
256],
8496:[[
69],
256],
8497:[[
70],
256],
8499:[[
77],
256],
8500:[[
111],
256],
8501:[[
1488],
256],
8502:[[
1489],
256],
8503:[[
1490],
256],
8504:[[
1491],
256],
8505:[[
105],
256],
8507:[[
70,
65,
88],
256],
8508:[[
960],
256],
8509:[[
947],
256],
8510:[[
915],
256],
8511:[[
928],
256],
8512:[[
8721],
256],
8517:[[
68],
256],
8518:[[
100],
256],
8519:[[
101],
256],
8520:[[
105],
256],
8521:[[
106],
256],
8528:[[
49,
8260,
55],
256],
8529:[[
49,
8260,
57],
256],
8530:[[
49,
8260,
49,
48],
256],
8531:[[
49,
8260,
51],
256],
8532:[[
50,
8260,
51],
256],
8533:[[
49,
8260,
53],
256],
8534:[[
50,
8260,
53],
256],
8535:[[
51,
8260,
53],
256],
8536:[[
52,
8260,
53],
256],
8537:[[
49,
8260,
54],
256],
8538:[[
53,
8260,
54],
256],
8539:[[
49,
8260,
56],
256],
8540:[[
51,
8260,
56],
256],
8541:[[
53,
8260,
56],
256],
8542:[[
55,
8260,
56],
256],
8543:[[
49,
8260],
256],
8544:[[
73],
256],
8545:[[
73,
73],
256],
8546:[[
73,
73,
73],
256],
8547:[[
73,
86],
256],
8548:[[
86],
256],
8549:[[
86,
73],
256],
8550:[[
86,
73,
73],
256],
8551:[[
86,
73,
73,
73],
256],
8552:[[
73,
88],
256],
8553:[[
88],
256],
8554:[[
88,
73],
256],
8555:[[
88,
73,
73],
256],
8556:[[
76],
256],
8557:[[
67],
256],
8558:[[
68],
256],
8559:[[
77],
256],
8560:[[
105],
256],
8561:[[
105,
105],
256],
8562:[[
105,
105,
105],
256],
8563:[[
105,
118],
256],
8564:[[
118],
256],
8565:[[
118,
105],
256],
8566:[[
118,
105,
105],
256],
8567:[[
118,
105,
105,
105],
256],
8568:[[
105,
120],
256],
8569:[[
120],
256],
8570:[[
120,
105],
256],
8571:[[
120,
105,
105],
256],
8572:[[
108],
256],
8573:[[
99],
256],
8574:[[
100],
256],
8575:[[
109],
256],
8585:[[
48,
8260,
51],
256],
8592:[,,{
824:
8602}],
8594:[,,{
824:
8603}],
8596:[,,{
824:
8622}],
8602:[[
8592,
824]],
8603:[[
8594,
824]],
8622:[[
8596,
824]],
8653:[[
8656,
824]],
8654:[[
8660,
824]],
8655:[[
8658,
824]],
8656:[,,{
824:
8653}],
8658:[,,{
824:
8655}],
8660:[,,{
824:
8654}]},
6930 8704:{
8707:[,,{
824:
8708}],
8708:[[
8707,
824]],
8712:[,,{
824:
8713}],
8713:[[
8712,
824]],
8715:[,,{
824:
8716}],
8716:[[
8715,
824]],
8739:[,,{
824:
8740}],
8740:[[
8739,
824]],
8741:[,,{
824:
8742}],
8742:[[
8741,
824]],
8748:[[
8747,
8747],
256],
8749:[[
8747,
8747,
8747],
256],
8751:[[
8750,
8750],
256],
8752:[[
8750,
8750,
8750],
256],
8764:[,,{
824:
8769}],
8769:[[
8764,
824]],
8771:[,,{
824:
8772}],
8772:[[
8771,
824]],
8773:[,,{
824:
8775}],
8775:[[
8773,
824]],
8776:[,,{
824:
8777}],
8777:[[
8776,
824]],
8781:[,,{
824:
8813}],
8800:[[
61,
824]],
8801:[,,{
824:
8802}],
8802:[[
8801,
824]],
8804:[,,{
824:
8816}],
8805:[,,{
824:
8817}],
8813:[[
8781,
824]],
8814:[[
60,
824]],
8815:[[
62,
824]],
8816:[[
8804,
824]],
8817:[[
8805,
824]],
8818:[,,{
824:
8820}],
8819:[,,{
824:
8821}],
8820:[[
8818,
824]],
8821:[[
8819,
824]],
8822:[,,{
824:
8824}],
8823:[,,{
824:
8825}],
8824:[[
8822,
824]],
8825:[[
8823,
824]],
8826:[,,{
824:
8832}],
8827:[,,{
824:
8833}],
8828:[,,{
824:
8928}],
8829:[,,{
824:
8929}],
8832:[[
8826,
824]],
8833:[[
8827,
824]],
8834:[,,{
824:
8836}],
8835:[,,{
824:
8837}],
8836:[[
8834,
824]],
8837:[[
8835,
824]],
8838:[,,{
824:
8840}],
8839:[,,{
824:
8841}],
8840:[[
8838,
824]],
8841:[[
8839,
824]],
8849:[,,{
824:
8930}],
8850:[,,{
824:
8931}],
8866:[,,{
824:
8876}],
8872:[,,{
824:
8877}],
8873:[,,{
824:
8878}],
8875:[,,{
824:
8879}],
8876:[[
8866,
824]],
8877:[[
8872,
824]],
8878:[[
8873,
824]],
8879:[[
8875,
824]],
8882:[,,{
824:
8938}],
8883:[,,{
824:
8939}],
8884:[,,{
824:
8940}],
8885:[,,{
824:
8941}],
8928:[[
8828,
824]],
8929:[[
8829,
824]],
8930:[[
8849,
824]],
8931:[[
8850,
824]],
8938:[[
8882,
824]],
8939:[[
8883,
824]],
8940:[[
8884,
824]],
8941:[[
8885,
824]]},
6931 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6932 9216:{
9312:[[
49],
256],
9313:[[
50],
256],
9314:[[
51],
256],
9315:[[
52],
256],
9316:[[
53],
256],
9317:[[
54],
256],
9318:[[
55],
256],
9319:[[
56],
256],
9320:[[
57],
256],
9321:[[
49,
48],
256],
9322:[[
49,
49],
256],
9323:[[
49,
50],
256],
9324:[[
49,
51],
256],
9325:[[
49,
52],
256],
9326:[[
49,
53],
256],
9327:[[
49,
54],
256],
9328:[[
49,
55],
256],
9329:[[
49,
56],
256],
9330:[[
49,
57],
256],
9331:[[
50,
48],
256],
9332:[[
40,
49,
41],
256],
9333:[[
40,
50,
41],
256],
9334:[[
40,
51,
41],
256],
9335:[[
40,
52,
41],
256],
9336:[[
40,
53,
41],
256],
9337:[[
40,
54,
41],
256],
9338:[[
40,
55,
41],
256],
9339:[[
40,
56,
41],
256],
9340:[[
40,
57,
41],
256],
9341:[[
40,
49,
48,
41],
256],
9342:[[
40,
49,
49,
41],
256],
9343:[[
40,
49,
50,
41],
256],
9344:[[
40,
49,
51,
41],
256],
9345:[[
40,
49,
52,
41],
256],
9346:[[
40,
49,
53,
41],
256],
9347:[[
40,
49,
54,
41],
256],
9348:[[
40,
49,
55,
41],
256],
9349:[[
40,
49,
56,
41],
256],
9350:[[
40,
49,
57,
41],
256],
9351:[[
40,
50,
48,
41],
256],
9352:[[
49,
46],
256],
9353:[[
50,
46],
256],
9354:[[
51,
46],
256],
9355:[[
52,
46],
256],
9356:[[
53,
46],
256],
9357:[[
54,
46],
256],
9358:[[
55,
46],
256],
9359:[[
56,
46],
256],
9360:[[
57,
46],
256],
9361:[[
49,
48,
46],
256],
9362:[[
49,
49,
46],
256],
9363:[[
49,
50,
46],
256],
9364:[[
49,
51,
46],
256],
9365:[[
49,
52,
46],
256],
9366:[[
49,
53,
46],
256],
9367:[[
49,
54,
46],
256],
9368:[[
49,
55,
46],
256],
9369:[[
49,
56,
46],
256],
9370:[[
49,
57,
46],
256],
9371:[[
50,
48,
46],
256],
9372:[[
40,
97,
41],
256],
9373:[[
40,
98,
41],
256],
9374:[[
40,
99,
41],
256],
9375:[[
40,
100,
41],
256],
9376:[[
40,
101,
41],
256],
9377:[[
40,
102,
41],
256],
9378:[[
40,
103,
41],
256],
9379:[[
40,
104,
41],
256],
9380:[[
40,
105,
41],
256],
9381:[[
40,
106,
41],
256],
9382:[[
40,
107,
41],
256],
9383:[[
40,
108,
41],
256],
9384:[[
40,
109,
41],
256],
9385:[[
40,
110,
41],
256],
9386:[[
40,
111,
41],
256],
9387:[[
40,
112,
41],
256],
9388:[[
40,
113,
41],
256],
9389:[[
40,
114,
41],
256],
9390:[[
40,
115,
41],
256],
9391:[[
40,
116,
41],
256],
9392:[[
40,
117,
41],
256],
9393:[[
40,
118,
41],
256],
9394:[[
40,
119,
41],
256],
9395:[[
40,
120,
41],
256],
9396:[[
40,
121,
41],
256],
9397:[[
40,
122,
41],
256],
9398:[[
65],
256],
9399:[[
66],
256],
9400:[[
67],
256],
9401:[[
68],
256],
9402:[[
69],
256],
9403:[[
70],
256],
9404:[[
71],
256],
9405:[[
72],
256],
9406:[[
73],
256],
9407:[[
74],
256],
9408:[[
75],
256],
9409:[[
76],
256],
9410:[[
77],
256],
9411:[[
78],
256],
9412:[[
79],
256],
9413:[[
80],
256],
9414:[[
81],
256],
9415:[[
82],
256],
9416:[[
83],
256],
9417:[[
84],
256],
9418:[[
85],
256],
9419:[[
86],
256],
9420:[[
87],
256],
9421:[[
88],
256],
9422:[[
89],
256],
9423:[[
90],
256],
9424:[[
97],
256],
9425:[[
98],
256],
9426:[[
99],
256],
9427:[[
100],
256],
9428:[[
101],
256],
9429:[[
102],
256],
9430:[[
103],
256],
9431:[[
104],
256],
9432:[[
105],
256],
9433:[[
106],
256],
9434:[[
107],
256],
9435:[[
108],
256],
9436:[[
109],
256],
9437:[[
110],
256],
9438:[[
111],
256],
9439:[[
112],
256],
9440:[[
113],
256],
9441:[[
114],
256],
9442:[[
115],
256],
9443:[[
116],
256],
9444:[[
117],
256],
9445:[[
118],
256],
9446:[[
119],
256],
9447:[[
120],
256],
9448:[[
121],
256],
9449:[[
122],
256],
9450:[[
48],
256]},
6933 10752:{
10764:[[
8747,
8747,
8747,
8747],
256],
10868:[[
58,
58,
61],
256],
10869:[[
61,
61],
256],
10870:[[
61,
61,
61],
256],
10972:[[
10973,
824],
512]},
6934 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6935 11520:{
11631:[[
11617],
256],
11647:[,
9],
11744:[,
230],
11745:[,
230],
11746:[,
230],
11747:[,
230],
11748:[,
230],
11749:[,
230],
11750:[,
230],
11751:[,
230],
11752:[,
230],
11753:[,
230],
11754:[,
230],
11755:[,
230],
11756:[,
230],
11757:[,
230],
11758:[,
230],
11759:[,
230],
11760:[,
230],
11761:[,
230],
11762:[,
230],
11763:[,
230],
11764:[,
230],
11765:[,
230],
11766:[,
230],
11767:[,
230],
11768:[,
230],
11769:[,
230],
11770:[,
230],
11771:[,
230],
11772:[,
230],
11773:[,
230],
11774:[,
230],
11775:[,
230]},
6936 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6937 12032:{
12032:[[
19968],
256],
12033:[[
20008],
256],
12034:[[
20022],
256],
12035:[[
20031],
256],
12036:[[
20057],
256],
12037:[[
20101],
256],
12038:[[
20108],
256],
12039:[[
20128],
256],
12040:[[
20154],
256],
12041:[[
20799],
256],
12042:[[
20837],
256],
12043:[[
20843],
256],
12044:[[
20866],
256],
12045:[[
20886],
256],
12046:[[
20907],
256],
12047:[[
20960],
256],
12048:[[
20981],
256],
12049:[[
20992],
256],
12050:[[
21147],
256],
12051:[[
21241],
256],
12052:[[
21269],
256],
12053:[[
21274],
256],
12054:[[
21304],
256],
12055:[[
21313],
256],
12056:[[
21340],
256],
12057:[[
21353],
256],
12058:[[
21378],
256],
12059:[[
21430],
256],
12060:[[
21448],
256],
12061:[[
21475],
256],
12062:[[
22231],
256],
12063:[[
22303],
256],
12064:[[
22763],
256],
12065:[[
22786],
256],
12066:[[
22794],
256],
12067:[[
22805],
256],
12068:[[
22823],
256],
12069:[[
22899],
256],
12070:[[
23376],
256],
12071:[[
23424],
256],
12072:[[
23544],
256],
12073:[[
23567],
256],
12074:[[
23586],
256],
12075:[[
23608],
256],
12076:[[
23662],
256],
12077:[[
23665],
256],
12078:[[
24027],
256],
12079:[[
24037],
256],
12080:[[
24049],
256],
12081:[[
24062],
256],
12082:[[
24178],
256],
12083:[[
24186],
256],
12084:[[
24191],
256],
12085:[[
24308],
256],
12086:[[
24318],
256],
12087:[[
24331],
256],
12088:[[
24339],
256],
12089:[[
24400],
256],
12090:[[
24417],
256],
12091:[[
24435],
256],
12092:[[
24515],
256],
12093:[[
25096],
256],
12094:[[
25142],
256],
12095:[[
25163],
256],
12096:[[
25903],
256],
12097:[[
25908],
256],
12098:[[
25991],
256],
12099:[[
26007],
256],
12100:[[
26020],
256],
12101:[[
26041],
256],
12102:[[
26080],
256],
12103:[[
26085],
256],
12104:[[
26352],
256],
12105:[[
26376],
256],
12106:[[
26408],
256],
12107:[[
27424],
256],
12108:[[
27490],
256],
12109:[[
27513],
256],
12110:[[
27571],
256],
12111:[[
27595],
256],
12112:[[
27604],
256],
12113:[[
27611],
256],
12114:[[
27663],
256],
12115:[[
27668],
256],
12116:[[
27700],
256],
12117:[[
28779],
256],
12118:[[
29226],
256],
12119:[[
29238],
256],
12120:[[
29243],
256],
12121:[[
29247],
256],
12122:[[
29255],
256],
12123:[[
29273],
256],
12124:[[
29275],
256],
12125:[[
29356],
256],
12126:[[
29572],
256],
12127:[[
29577],
256],
12128:[[
29916],
256],
12129:[[
29926],
256],
12130:[[
29976],
256],
12131:[[
29983],
256],
12132:[[
29992],
256],
12133:[[
30000],
256],
12134:[[
30091],
256],
12135:[[
30098],
256],
12136:[[
30326],
256],
12137:[[
30333],
256],
12138:[[
30382],
256],
12139:[[
30399],
256],
12140:[[
30446],
256],
12141:[[
30683],
256],
12142:[[
30690],
256],
12143:[[
30707],
256],
12144:[[
31034],
256],
12145:[[
31160],
256],
12146:[[
31166],
256],
12147:[[
31348],
256],
12148:[[
31435],
256],
12149:[[
31481],
256],
12150:[[
31859],
256],
12151:[[
31992],
256],
12152:[[
32566],
256],
12153:[[
32593],
256],
12154:[[
32650],
256],
12155:[[
32701],
256],
12156:[[
32769],
256],
12157:[[
32780],
256],
12158:[[
32786],
256],
12159:[[
32819],
256],
12160:[[
32895],
256],
12161:[[
32905],
256],
12162:[[
33251],
256],
12163:[[
33258],
256],
12164:[[
33267],
256],
12165:[[
33276],
256],
12166:[[
33292],
256],
12167:[[
33307],
256],
12168:[[
33311],
256],
12169:[[
33390],
256],
12170:[[
33394],
256],
12171:[[
33400],
256],
12172:[[
34381],
256],
12173:[[
34411],
256],
12174:[[
34880],
256],
12175:[[
34892],
256],
12176:[[
34915],
256],
12177:[[
35198],
256],
12178:[[
35211],
256],
12179:[[
35282],
256],
12180:[[
35328],
256],
12181:[[
35895],
256],
12182:[[
35910],
256],
12183:[[
35925],
256],
12184:[[
35960],
256],
12185:[[
35997],
256],
12186:[[
36196],
256],
12187:[[
36208],
256],
12188:[[
36275],
256],
12189:[[
36523],
256],
12190:[[
36554],
256],
12191:[[
36763],
256],
12192:[[
36784],
256],
12193:[[
36789],
256],
12194:[[
37009],
256],
12195:[[
37193],
256],
12196:[[
37318],
256],
12197:[[
37324],
256],
12198:[[
37329],
256],
12199:[[
38263],
256],
12200:[[
38272],
256],
12201:[[
38428],
256],
12202:[[
38582],
256],
12203:[[
38585],
256],
12204:[[
38632],
256],
12205:[[
38737],
256],
12206:[[
38750],
256],
12207:[[
38754],
256],
12208:[[
38761],
256],
12209:[[
38859],
256],
12210:[[
38893],
256],
12211:[[
38899],
256],
12212:[[
38913],
256],
12213:[[
39080],
256],
12214:[[
39131],
256],
12215:[[
39135],
256],
12216:[[
39318],
256],
12217:[[
39321],
256],
12218:[[
39340],
256],
12219:[[
39592],
256],
12220:[[
39640],
256],
12221:[[
39647],
256],
12222:[[
39717],
256],
12223:[[
39727],
256],
12224:[[
39730],
256],
12225:[[
39740],
256],
12226:[[
39770],
256],
12227:[[
40165],
256],
12228:[[
40565],
256],
12229:[[
40575],
256],
12230:[[
40613],
256],
12231:[[
40635],
256],
12232:[[
40643],
256],
12233:[[
40653],
256],
12234:[[
40657],
256],
12235:[[
40697],
256],
12236:[[
40701],
256],
12237:[[
40718],
256],
12238:[[
40723],
256],
12239:[[
40736],
256],
12240:[[
40763],
256],
12241:[[
40778],
256],
12242:[[
40786],
256],
12243:[[
40845],
256],
12244:[[
40860],
256],
12245:[[
40864],
256]},
6938 12288:{
12288:[[
32],
256],
12330:[,
218],
12331:[,
228],
12332:[,
232],
12333:[,
222],
12334:[,
224],
12335:[,
224],
12342:[[
12306],
256],
12344:[[
21313],
256],
12345:[[
21316],
256],
12346:[[
21317],
256],
12358:[,,{
12441:
12436}],
12363:[,,{
12441:
12364}],
12364:[[
12363,
12441]],
12365:[,,{
12441:
12366}],
12366:[[
12365,
12441]],
12367:[,,{
12441:
12368}],
12368:[[
12367,
12441]],
12369:[,,{
12441:
12370}],
12370:[[
12369,
12441]],
12371:[,,{
12441:
12372}],
12372:[[
12371,
12441]],
12373:[,,{
12441:
12374}],
12374:[[
12373,
12441]],
12375:[,,{
12441:
12376}],
12376:[[
12375,
12441]],
12377:[,,{
12441:
12378}],
12378:[[
12377,
12441]],
12379:[,,{
12441:
12380}],
12380:[[
12379,
12441]],
12381:[,,{
12441:
12382}],
12382:[[
12381,
12441]],
12383:[,,{
12441:
12384}],
12384:[[
12383,
12441]],
12385:[,,{
12441:
12386}],
12386:[[
12385,
12441]],
12388:[,,{
12441:
12389}],
12389:[[
12388,
12441]],
12390:[,,{
12441:
12391}],
12391:[[
12390,
12441]],
12392:[,,{
12441:
12393}],
12393:[[
12392,
12441]],
12399:[,,{
12441:
12400,
12442:
12401}],
12400:[[
12399,
12441]],
12401:[[
12399,
12442]],
12402:[,,{
12441:
12403,
12442:
12404}],
12403:[[
12402,
12441]],
12404:[[
12402,
12442]],
12405:[,,{
12441:
12406,
12442:
12407}],
12406:[[
12405,
12441]],
12407:[[
12405,
12442]],
12408:[,,{
12441:
12409,
12442:
12410}],
12409:[[
12408,
12441]],
12410:[[
12408,
12442]],
12411:[,,{
12441:
12412,
12442:
12413}],
12412:[[
12411,
12441]],
12413:[[
12411,
12442]],
12436:[[
12358,
12441]],
12441:[,
8],
12442:[,
8],
12443:[[
32,
12441],
256],
12444:[[
32,
12442],
256],
12445:[,,{
12441:
12446}],
12446:[[
12445,
12441]],
12447:[[
12424,
12426],
256],
12454:[,,{
12441:
12532}],
12459:[,,{
12441:
12460}],
12460:[[
12459,
12441]],
12461:[,,{
12441:
12462}],
12462:[[
12461,
12441]],
12463:[,,{
12441:
12464}],
12464:[[
12463,
12441]],
12465:[,,{
12441:
12466}],
12466:[[
12465,
12441]],
12467:[,,{
12441:
12468}],
12468:[[
12467,
12441]],
12469:[,,{
12441:
12470}],
12470:[[
12469,
12441]],
12471:[,,{
12441:
12472}],
12472:[[
12471,
12441]],
12473:[,,{
12441:
12474}],
12474:[[
12473,
12441]],
12475:[,,{
12441:
12476}],
12476:[[
12475,
12441]],
12477:[,,{
12441:
12478}],
12478:[[
12477,
12441]],
12479:[,,{
12441:
12480}],
12480:[[
12479,
12441]],
12481:[,,{
12441:
12482}],
12482:[[
12481,
12441]],
12484:[,,{
12441:
12485}],
12485:[[
12484,
12441]],
12486:[,,{
12441:
12487}],
12487:[[
12486,
12441]],
12488:[,,{
12441:
12489}],
12489:[[
12488,
12441]],
12495:[,,{
12441:
12496,
12442:
12497}],
12496:[[
12495,
12441]],
12497:[[
12495,
12442]],
12498:[,,{
12441:
12499,
12442:
12500}],
12499:[[
12498,
12441]],
12500:[[
12498,
12442]],
12501:[,,{
12441:
12502,
12442:
12503}],
12502:[[
12501,
12441]],
12503:[[
12501,
12442]],
12504:[,,{
12441:
12505,
12442:
12506}],
12505:[[
12504,
12441]],
12506:[[
12504,
12442]],
12507:[,,{
12441:
12508,
12442:
12509}],
12508:[[
12507,
12441]],
12509:[[
12507,
12442]],
12527:[,,{
12441:
12535}],
12528:[,,{
12441:
12536}],
12529:[,,{
12441:
12537}],
12530:[,,{
12441:
12538}],
12532:[[
12454,
12441]],
12535:[[
12527,
12441]],
12536:[[
12528,
12441]],
12537:[[
12529,
12441]],
12538:[[
12530,
12441]],
12541:[,,{
12441:
12542}],
12542:[[
12541,
12441]],
12543:[[
12467,
12488],
256]},
6939 12544:{
12593:[[
4352],
256],
12594:[[
4353],
256],
12595:[[
4522],
256],
12596:[[
4354],
256],
12597:[[
4524],
256],
12598:[[
4525],
256],
12599:[[
4355],
256],
12600:[[
4356],
256],
12601:[[
4357],
256],
12602:[[
4528],
256],
12603:[[
4529],
256],
12604:[[
4530],
256],
12605:[[
4531],
256],
12606:[[
4532],
256],
12607:[[
4533],
256],
12608:[[
4378],
256],
12609:[[
4358],
256],
12610:[[
4359],
256],
12611:[[
4360],
256],
12612:[[
4385],
256],
12613:[[
4361],
256],
12614:[[
4362],
256],
12615:[[
4363],
256],
12616:[[
4364],
256],
12617:[[
4365],
256],
12618:[[
4366],
256],
12619:[[
4367],
256],
12620:[[
4368],
256],
12621:[[
4369],
256],
12622:[[
4370],
256],
12623:[[
4449],
256],
12624:[[
4450],
256],
12625:[[
4451],
256],
12626:[[
4452],
256],
12627:[[
4453],
256],
12628:[[
4454],
256],
12629:[[
4455],
256],
12630:[[
4456],
256],
12631:[[
4457],
256],
12632:[[
4458],
256],
12633:[[
4459],
256],
12634:[[
4460],
256],
12635:[[
4461],
256],
12636:[[
4462],
256],
12637:[[
4463],
256],
12638:[[
4464],
256],
12639:[[
4465],
256],
12640:[[
4466],
256],
12641:[[
4467],
256],
12642:[[
4468],
256],
12643:[[
4469],
256],
12644:[[
4448],
256],
12645:[[
4372],
256],
12646:[[
4373],
256],
12647:[[
4551],
256],
12648:[[
4552],
256],
12649:[[
4556],
256],
12650:[[
4558],
256],
12651:[[
4563],
256],
12652:[[
4567],
256],
12653:[[
4569],
256],
12654:[[
4380],
256],
12655:[[
4573],
256],
12656:[[
4575],
256],
12657:[[
4381],
256],
12658:[[
4382],
256],
12659:[[
4384],
256],
12660:[[
4386],
256],
12661:[[
4387],
256],
12662:[[
4391],
256],
12663:[[
4393],
256],
12664:[[
4395],
256],
12665:[[
4396],
256],
12666:[[
4397],
256],
12667:[[
4398],
256],
12668:[[
4399],
256],
12669:[[
4402],
256],
12670:[[
4406],
256],
12671:[[
4416],
256],
12672:[[
4423],
256],
12673:[[
4428],
256],
12674:[[
4593],
256],
12675:[[
4594],
256],
12676:[[
4439],
256],
12677:[[
4440],
256],
12678:[[
4441],
256],
12679:[[
4484],
256],
12680:[[
4485],
256],
12681:[[
4488],
256],
12682:[[
4497],
256],
12683:[[
4498],
256],
12684:[[
4500],
256],
12685:[[
4510],
256],
12686:[[
4513],
256],
12690:[[
19968],
256],
12691:[[
20108],
256],
12692:[[
19977],
256],
12693:[[
22235],
256],
12694:[[
19978],
256],
12695:[[
20013],
256],
12696:[[
19979],
256],
12697:[[
30002],
256],
12698:[[
20057],
256],
12699:[[
19993],
256],
12700:[[
19969],
256],
12701:[[
22825],
256],
12702:[[
22320],
256],
12703:[[
20154],
256]},
6940 12800:{
12800:[[
40,
4352,
41],
256],
12801:[[
40,
4354,
41],
256],
12802:[[
40,
4355,
41],
256],
12803:[[
40,
4357,
41],
256],
12804:[[
40,
4358,
41],
256],
12805:[[
40,
4359,
41],
256],
12806:[[
40,
4361,
41],
256],
12807:[[
40,
4363,
41],
256],
12808:[[
40,
4364,
41],
256],
12809:[[
40,
4366,
41],
256],
12810:[[
40,
4367,
41],
256],
12811:[[
40,
4368,
41],
256],
12812:[[
40,
4369,
41],
256],
12813:[[
40,
4370,
41],
256],
12814:[[
40,
4352,
4449,
41],
256],
12815:[[
40,
4354,
4449,
41],
256],
12816:[[
40,
4355,
4449,
41],
256],
12817:[[
40,
4357,
4449,
41],
256],
12818:[[
40,
4358,
4449,
41],
256],
12819:[[
40,
4359,
4449,
41],
256],
12820:[[
40,
4361,
4449,
41],
256],
12821:[[
40,
4363,
4449,
41],
256],
12822:[[
40,
4364,
4449,
41],
256],
12823:[[
40,
4366,
4449,
41],
256],
12824:[[
40,
4367,
4449,
41],
256],
12825:[[
40,
4368,
4449,
41],
256],
12826:[[
40,
4369,
4449,
41],
256],
12827:[[
40,
4370,
4449,
41],
256],
12828:[[
40,
4364,
4462,
41],
256],
12829:[[
40,
4363,
4457,
4364,
4453,
4523,
41],
256],
12830:[[
40,
4363,
4457,
4370,
4462,
41],
256],
12832:[[
40,
19968,
41],
256],
12833:[[
40,
20108,
41],
256],
12834:[[
40,
19977,
41],
256],
12835:[[
40,
22235,
41],
256],
12836:[[
40,
20116,
41],
256],
12837:[[
40,
20845,
41],
256],
12838:[[
40,
19971,
41],
256],
12839:[[
40,
20843,
41],
256],
12840:[[
40,
20061,
41],
256],
12841:[[
40,
21313,
41],
256],
12842:[[
40,
26376,
41],
256],
12843:[[
40,
28779,
41],
256],
12844:[[
40,
27700,
41],
256],
12845:[[
40,
26408,
41],
256],
12846:[[
40,
37329,
41],
256],
12847:[[
40,
22303,
41],
256],
12848:[[
40,
26085,
41],
256],
12849:[[
40,
26666,
41],
256],
12850:[[
40,
26377,
41],
256],
12851:[[
40,
31038,
41],
256],
12852:[[
40,
21517,
41],
256],
12853:[[
40,
29305,
41],
256],
12854:[[
40,
36001,
41],
256],
12855:[[
40,
31069,
41],
256],
12856:[[
40,
21172,
41],
256],
12857:[[
40,
20195,
41],
256],
12858:[[
40,
21628,
41],
256],
12859:[[
40,
23398,
41],
256],
12860:[[
40,
30435,
41],
256],
12861:[[
40,
20225,
41],
256],
12862:[[
40,
36039,
41],
256],
12863:[[
40,
21332,
41],
256],
12864:[[
40,
31085,
41],
256],
12865:[[
40,
20241,
41],
256],
12866:[[
40,
33258,
41],
256],
12867:[[
40,
33267,
41],
256],
12868:[[
21839],
256],
12869:[[
24188],
256],
12870:[[
25991],
256],
12871:[[
31631],
256],
12880:[[
80,
84,
69],
256],
12881:[[
50,
49],
256],
12882:[[
50,
50],
256],
12883:[[
50,
51],
256],
12884:[[
50,
52],
256],
12885:[[
50,
53],
256],
12886:[[
50,
54],
256],
12887:[[
50,
55],
256],
12888:[[
50,
56],
256],
12889:[[
50,
57],
256],
12890:[[
51,
48],
256],
12891:[[
51,
49],
256],
12892:[[
51,
50],
256],
12893:[[
51,
51],
256],
12894:[[
51,
52],
256],
12895:[[
51,
53],
256],
12896:[[
4352],
256],
12897:[[
4354],
256],
12898:[[
4355],
256],
12899:[[
4357],
256],
12900:[[
4358],
256],
12901:[[
4359],
256],
12902:[[
4361],
256],
12903:[[
4363],
256],
12904:[[
4364],
256],
12905:[[
4366],
256],
12906:[[
4367],
256],
12907:[[
4368],
256],
12908:[[
4369],
256],
12909:[[
4370],
256],
12910:[[
4352,
4449],
256],
12911:[[
4354,
4449],
256],
12912:[[
4355,
4449],
256],
12913:[[
4357,
4449],
256],
12914:[[
4358,
4449],
256],
12915:[[
4359,
4449],
256],
12916:[[
4361,
4449],
256],
12917:[[
4363,
4449],
256],
12918:[[
4364,
4449],
256],
12919:[[
4366,
4449],
256],
12920:[[
4367,
4449],
256],
12921:[[
4368,
4449],
256],
12922:[[
4369,
4449],
256],
12923:[[
4370,
4449],
256],
12924:[[
4366,
4449,
4535,
4352,
4457],
256],
12925:[[
4364,
4462,
4363,
4468],
256],
12926:[[
4363,
4462],
256],
12928:[[
19968],
256],
12929:[[
20108],
256],
12930:[[
19977],
256],
12931:[[
22235],
256],
12932:[[
20116],
256],
12933:[[
20845],
256],
12934:[[
19971],
256],
12935:[[
20843],
256],
12936:[[
20061],
256],
12937:[[
21313],
256],
12938:[[
26376],
256],
12939:[[
28779],
256],
12940:[[
27700],
256],
12941:[[
26408],
256],
12942:[[
37329],
256],
12943:[[
22303],
256],
12944:[[
26085],
256],
12945:[[
26666],
256],
12946:[[
26377],
256],
12947:[[
31038],
256],
12948:[[
21517],
256],
12949:[[
29305],
256],
12950:[[
36001],
256],
12951:[[
31069],
256],
12952:[[
21172],
256],
12953:[[
31192],
256],
12954:[[
30007],
256],
12955:[[
22899],
256],
12956:[[
36969],
256],
12957:[[
20778],
256],
12958:[[
21360],
256],
12959:[[
27880],
256],
12960:[[
38917],
256],
12961:[[
20241],
256],
12962:[[
20889],
256],
12963:[[
27491],
256],
12964:[[
19978],
256],
12965:[[
20013],
256],
12966:[[
19979],
256],
12967:[[
24038],
256],
12968:[[
21491],
256],
12969:[[
21307],
256],
12970:[[
23447],
256],
12971:[[
23398],
256],
12972:[[
30435],
256],
12973:[[
20225],
256],
12974:[[
36039],
256],
12975:[[
21332],
256],
12976:[[
22812],
256],
12977:[[
51,
54],
256],
12978:[[
51,
55],
256],
12979:[[
51,
56],
256],
12980:[[
51,
57],
256],
12981:[[
52,
48],
256],
12982:[[
52,
49],
256],
12983:[[
52,
50],
256],
12984:[[
52,
51],
256],
12985:[[
52,
52],
256],
12986:[[
52,
53],
256],
12987:[[
52,
54],
256],
12988:[[
52,
55],
256],
12989:[[
52,
56],
256],
12990:[[
52,
57],
256],
12991:[[
53,
48],
256],
12992:[[
49,
26376],
256],
12993:[[
50,
26376],
256],
12994:[[
51,
26376],
256],
12995:[[
52,
26376],
256],
12996:[[
53,
26376],
256],
12997:[[
54,
26376],
256],
12998:[[
55,
26376],
256],
12999:[[
56,
26376],
256],
13000:[[
57,
26376],
256],
13001:[[
49,
48,
26376],
256],
13002:[[
49,
49,
26376],
256],
13003:[[
49,
50,
26376],
256],
13004:[[
72,
103],
256],
13005:[[
101,
114,
103],
256],
13006:[[
101,
86],
256],
13007:[[
76,
84,
68],
256],
13008:[[
12450],
256],
13009:[[
12452],
256],
13010:[[
12454],
256],
13011:[[
12456],
256],
13012:[[
12458],
256],
13013:[[
12459],
256],
13014:[[
12461],
256],
13015:[[
12463],
256],
13016:[[
12465],
256],
13017:[[
12467],
256],
13018:[[
12469],
256],
13019:[[
12471],
256],
13020:[[
12473],
256],
13021:[[
12475],
256],
13022:[[
12477],
256],
13023:[[
12479],
256],
13024:[[
12481],
256],
13025:[[
12484],
256],
13026:[[
12486],
256],
13027:[[
12488],
256],
13028:[[
12490],
256],
13029:[[
12491],
256],
13030:[[
12492],
256],
13031:[[
12493],
256],
13032:[[
12494],
256],
13033:[[
12495],
256],
13034:[[
12498],
256],
13035:[[
12501],
256],
13036:[[
12504],
256],
13037:[[
12507],
256],
13038:[[
12510],
256],
13039:[[
12511],
256],
13040:[[
12512],
256],
13041:[[
12513],
256],
13042:[[
12514],
256],
13043:[[
12516],
256],
13044:[[
12518],
256],
13045:[[
12520],
256],
13046:[[
12521],
256],
13047:[[
12522],
256],
13048:[[
12523],
256],
13049:[[
12524],
256],
13050:[[
12525],
256],
13051:[[
12527],
256],
13052:[[
12528],
256],
13053:[[
12529],
256],
13054:[[
12530],
256]},
6941 13056:{
13056:[[
12450,
12497,
12540,
12488],
256],
13057:[[
12450,
12523,
12501,
12449],
256],
13058:[[
12450,
12531,
12506,
12450],
256],
13059:[[
12450,
12540,
12523],
256],
13060:[[
12452,
12491,
12531,
12464],
256],
13061:[[
12452,
12531,
12481],
256],
13062:[[
12454,
12457,
12531],
256],
13063:[[
12456,
12473,
12463,
12540,
12489],
256],
13064:[[
12456,
12540,
12459,
12540],
256],
13065:[[
12458,
12531,
12473],
256],
13066:[[
12458,
12540,
12512],
256],
13067:[[
12459,
12452,
12522],
256],
13068:[[
12459,
12521,
12483,
12488],
256],
13069:[[
12459,
12525,
12522,
12540],
256],
13070:[[
12460,
12525,
12531],
256],
13071:[[
12460,
12531,
12510],
256],
13072:[[
12462,
12460],
256],
13073:[[
12462,
12491,
12540],
256],
13074:[[
12461,
12517,
12522,
12540],
256],
13075:[[
12462,
12523,
12480,
12540],
256],
13076:[[
12461,
12525],
256],
13077:[[
12461,
12525,
12464,
12521,
12512],
256],
13078:[[
12461,
12525,
12513,
12540,
12488,
12523],
256],
13079:[[
12461,
12525,
12527,
12483,
12488],
256],
13080:[[
12464,
12521,
12512],
256],
13081:[[
12464,
12521,
12512,
12488,
12531],
256],
13082:[[
12463,
12523,
12476,
12452,
12525],
256],
13083:[[
12463,
12525,
12540,
12493],
256],
13084:[[
12465,
12540,
12473],
256],
13085:[[
12467,
12523,
12490],
256],
13086:[[
12467,
12540,
12509],
256],
13087:[[
12469,
12452,
12463,
12523],
256],
13088:[[
12469,
12531,
12481,
12540,
12512],
256],
13089:[[
12471,
12522,
12531,
12464],
256],
13090:[[
12475,
12531,
12481],
256],
13091:[[
12475,
12531,
12488],
256],
13092:[[
12480,
12540,
12473],
256],
13093:[[
12487,
12471],
256],
13094:[[
12489,
12523],
256],
13095:[[
12488,
12531],
256],
13096:[[
12490,
12494],
256],
13097:[[
12494,
12483,
12488],
256],
13098:[[
12495,
12452,
12484],
256],
13099:[[
12497,
12540,
12475,
12531,
12488],
256],
13100:[[
12497,
12540,
12484],
256],
13101:[[
12496,
12540,
12524,
12523],
256],
13102:[[
12500,
12450,
12473,
12488,
12523],
256],
13103:[[
12500,
12463,
12523],
256],
13104:[[
12500,
12467],
256],
13105:[[
12499,
12523],
256],
13106:[[
12501,
12449,
12521,
12483,
12489],
256],
13107:[[
12501,
12451,
12540,
12488],
256],
13108:[[
12502,
12483,
12471,
12455,
12523],
256],
13109:[[
12501,
12521,
12531],
256],
13110:[[
12504,
12463,
12479,
12540,
12523],
256],
13111:[[
12506,
12477],
256],
13112:[[
12506,
12491,
12498],
256],
13113:[[
12504,
12523,
12484],
256],
13114:[[
12506,
12531,
12473],
256],
13115:[[
12506,
12540,
12472],
256],
13116:[[
12505,
12540,
12479],
256],
13117:[[
12509,
12452,
12531,
12488],
256],
13118:[[
12508,
12523,
12488],
256],
13119:[[
12507,
12531],
256],
13120:[[
12509,
12531,
12489],
256],
13121:[[
12507,
12540,
12523],
256],
13122:[[
12507,
12540,
12531],
256],
13123:[[
12510,
12452,
12463,
12525],
256],
13124:[[
12510,
12452,
12523],
256],
13125:[[
12510,
12483,
12495],
256],
13126:[[
12510,
12523,
12463],
256],
13127:[[
12510,
12531,
12471,
12519,
12531],
256],
13128:[[
12511,
12463,
12525,
12531],
256],
13129:[[
12511,
12522],
256],
13130:[[
12511,
12522,
12496,
12540,
12523],
256],
13131:[[
12513,
12460],
256],
13132:[[
12513,
12460,
12488,
12531],
256],
13133:[[
12513,
12540,
12488,
12523],
256],
13134:[[
12516,
12540,
12489],
256],
13135:[[
12516,
12540,
12523],
256],
13136:[[
12518,
12450,
12531],
256],
13137:[[
12522,
12483,
12488,
12523],
256],
13138:[[
12522,
12521],
256],
13139:[[
12523,
12500,
12540],
256],
13140:[[
12523,
12540,
12502,
12523],
256],
13141:[[
12524,
12512],
256],
13142:[[
12524,
12531,
12488,
12466,
12531],
256],
13143:[[
12527,
12483,
12488],
256],
13144:[[
48,
28857],
256],
13145:[[
49,
28857],
256],
13146:[[
50,
28857],
256],
13147:[[
51,
28857],
256],
13148:[[
52,
28857],
256],
13149:[[
53,
28857],
256],
13150:[[
54,
28857],
256],
13151:[[
55,
28857],
256],
13152:[[
56,
28857],
256],
13153:[[
57,
28857],
256],
13154:[[
49,
48,
28857],
256],
13155:[[
49,
49,
28857],
256],
13156:[[
49,
50,
28857],
256],
13157:[[
49,
51,
28857],
256],
13158:[[
49,
52,
28857],
256],
13159:[[
49,
53,
28857],
256],
13160:[[
49,
54,
28857],
256],
13161:[[
49,
55,
28857],
256],
13162:[[
49,
56,
28857],
256],
13163:[[
49,
57,
28857],
256],
13164:[[
50,
48,
28857],
256],
13165:[[
50,
49,
28857],
256],
13166:[[
50,
50,
28857],
256],
13167:[[
50,
51,
28857],
256],
13168:[[
50,
52,
28857],
256],
13169:[[
104,
80,
97],
256],
13170:[[
100,
97],
256],
13171:[[
65,
85],
256],
13172:[[
98,
97,
114],
256],
13173:[[
111,
86],
256],
13174:[[
112,
99],
256],
13175:[[
100,
109],
256],
13176:[[
100,
109,
178],
256],
13177:[[
100,
109,
179],
256],
13178:[[
73,
85],
256],
13179:[[
24179,
25104],
256],
13180:[[
26157,
21644],
256],
13181:[[
22823,
27491],
256],
13182:[[
26126,
27835],
256],
13183:[[
26666,
24335,
20250,
31038],
256],
13184:[[
112,
65],
256],
13185:[[
110,
65],
256],
13186:[[
956,
65],
256],
13187:[[
109,
65],
256],
13188:[[
107,
65],
256],
13189:[[
75,
66],
256],
13190:[[
77,
66],
256],
13191:[[
71,
66],
256],
13192:[[
99,
97,
108],
256],
13193:[[
107,
99,
97,
108],
256],
13194:[[
112,
70],
256],
13195:[[
110,
70],
256],
13196:[[
956,
70],
256],
13197:[[
956,
103],
256],
13198:[[
109,
103],
256],
13199:[[
107,
103],
256],
13200:[[
72,
122],
256],
13201:[[
107,
72,
122],
256],
13202:[[
77,
72,
122],
256],
13203:[[
71,
72,
122],
256],
13204:[[
84,
72,
122],
256],
13205:[[
956,
8467],
256],
13206:[[
109,
8467],
256],
13207:[[
100,
8467],
256],
13208:[[
107,
8467],
256],
13209:[[
102,
109],
256],
13210:[[
110,
109],
256],
13211:[[
956,
109],
256],
13212:[[
109,
109],
256],
13213:[[
99,
109],
256],
13214:[[
107,
109],
256],
13215:[[
109,
109,
178],
256],
13216:[[
99,
109,
178],
256],
13217:[[
109,
178],
256],
13218:[[
107,
109,
178],
256],
13219:[[
109,
109,
179],
256],
13220:[[
99,
109,
179],
256],
13221:[[
109,
179],
256],
13222:[[
107,
109,
179],
256],
13223:[[
109,
8725,
115],
256],
13224:[[
109,
8725,
115,
178],
256],
13225:[[
80,
97],
256],
13226:[[
107,
80,
97],
256],
13227:[[
77,
80,
97],
256],
13228:[[
71,
80,
97],
256],
13229:[[
114,
97,
100],
256],
13230:[[
114,
97,
100,
8725,
115],
256],
13231:[[
114,
97,
100,
8725,
115,
178],
256],
13232:[[
112,
115],
256],
13233:[[
110,
115],
256],
13234:[[
956,
115],
256],
13235:[[
109,
115],
256],
13236:[[
112,
86],
256],
13237:[[
110,
86],
256],
13238:[[
956,
86],
256],
13239:[[
109,
86],
256],
13240:[[
107,
86],
256],
13241:[[
77,
86],
256],
13242:[[
112,
87],
256],
13243:[[
110,
87],
256],
13244:[[
956,
87],
256],
13245:[[
109,
87],
256],
13246:[[
107,
87],
256],
13247:[[
77,
87],
256],
13248:[[
107,
937],
256],
13249:[[
77,
937],
256],
13250:[[
97,
46,
109,
46],
256],
13251:[[
66,
113],
256],
13252:[[
99,
99],
256],
13253:[[
99,
100],
256],
13254:[[
67,
8725,
107,
103],
256],
13255:[[
67,
111,
46],
256],
13256:[[
100,
66],
256],
13257:[[
71,
121],
256],
13258:[[
104,
97],
256],
13259:[[
72,
80],
256],
13260:[[
105,
110],
256],
13261:[[
75,
75],
256],
13262:[[
75,
77],
256],
13263:[[
107,
116],
256],
13264:[[
108,
109],
256],
13265:[[
108,
110],
256],
13266:[[
108,
111,
103],
256],
13267:[[
108,
120],
256],
13268:[[
109,
98],
256],
13269:[[
109,
105,
108],
256],
13270:[[
109,
111,
108],
256],
13271:[[
80,
72],
256],
13272:[[
112,
46,
109,
46],
256],
13273:[[
80,
80,
77],
256],
13274:[[
80,
82],
256],
13275:[[
115,
114],
256],
13276:[[
83,
118],
256],
13277:[[
87,
98],
256],
13278:[[
86,
8725,
109],
256],
13279:[[
65,
8725,
109],
256],
13280:[[
49,
26085],
256],
13281:[[
50,
26085],
256],
13282:[[
51,
26085],
256],
13283:[[
52,
26085],
256],
13284:[[
53,
26085],
256],
13285:[[
54,
26085],
256],
13286:[[
55,
26085],
256],
13287:[[
56,
26085],
256],
13288:[[
57,
26085],
256],
13289:[[
49,
48,
26085],
256],
13290:[[
49,
49,
26085],
256],
13291:[[
49,
50,
26085],
256],
13292:[[
49,
51,
26085],
256],
13293:[[
49,
52,
26085],
256],
13294:[[
49,
53,
26085],
256],
13295:[[
49,
54,
26085],
256],
13296:[[
49,
55,
26085],
256],
13297:[[
49,
56,
26085],
256],
13298:[[
49,
57,
26085],
256],
13299:[[
50,
48,
26085],
256],
13300:[[
50,
49,
26085],
256],
13301:[[
50,
50,
26085],
256],
13302:[[
50,
51,
26085],
256],
13303:[[
50,
52,
26085],
256],
13304:[[
50,
53,
26085],
256],
13305:[[
50,
54,
26085],
256],
13306:[[
50,
55,
26085],
256],
13307:[[
50,
56,
26085],
256],
13308:[[
50,
57,
26085],
256],
13309:[[
51,
48,
26085],
256],
13310:[[
51,
49,
26085],
256],
13311:[[
103,
97,
108],
256]},
6942 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6943 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6944 42496:{
42607:[,
230],
42612:[,
230],
42613:[,
230],
42614:[,
230],
42615:[,
230],
42616:[,
230],
42617:[,
230],
42618:[,
230],
42619:[,
230],
42620:[,
230],
42621:[,
230],
42652:[[
1098],
256],
42653:[[
1100],
256],
42655:[,
230],
42736:[,
230],
42737:[,
230]},
6945 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6946 43008:{
43014:[,
9],
43204:[,
9],
43232:[,
230],
43233:[,
230],
43234:[,
230],
43235:[,
230],
43236:[,
230],
43237:[,
230],
43238:[,
230],
43239:[,
230],
43240:[,
230],
43241:[,
230],
43242:[,
230],
43243:[,
230],
43244:[,
230],
43245:[,
230],
43246:[,
230],
43247:[,
230],
43248:[,
230],
43249:[,
230]},
6947 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6948 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6949 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6950 48128:{
113822:[,
1]},
6951 53504:{
119134:[[
119127,
119141],
512],
119135:[[
119128,
119141],
512],
119136:[[
119135,
119150],
512],
119137:[[
119135,
119151],
512],
119138:[[
119135,
119152],
512],
119139:[[
119135,
119153],
512],
119140:[[
119135,
119154],
512],
119141:[,
216],
119142:[,
216],
119143:[,
1],
119144:[,
1],
119145:[,
1],
119149:[,
226],
119150:[,
216],
119151:[,
216],
119152:[,
216],
119153:[,
216],
119154:[,
216],
119163:[,
220],
119164:[,
220],
119165:[,
220],
119166:[,
220],
119167:[,
220],
119168:[,
220],
119169:[,
220],
119170:[,
220],
119173:[,
230],
119174:[,
230],
119175:[,
230],
119176:[,
230],
119177:[,
230],
119178:[,
220],
119179:[,
220],
119210:[,
230],
119211:[,
230],
119212:[,
230],
119213:[,
230],
119227:[[
119225,
119141],
512],
119228:[[
119226,
119141],
512],
119229:[[
119227,
119150],
512],
119230:[[
119228,
119150],
512],
119231:[[
119227,
119151],
512],
119232:[[
119228,
119151],
512]},
6952 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6953 54272:{
119808:[[
65],
256],
119809:[[
66],
256],
119810:[[
67],
256],
119811:[[
68],
256],
119812:[[
69],
256],
119813:[[
70],
256],
119814:[[
71],
256],
119815:[[
72],
256],
119816:[[
73],
256],
119817:[[
74],
256],
119818:[[
75],
256],
119819:[[
76],
256],
119820:[[
77],
256],
119821:[[
78],
256],
119822:[[
79],
256],
119823:[[
80],
256],
119824:[[
81],
256],
119825:[[
82],
256],
119826:[[
83],
256],
119827:[[
84],
256],
119828:[[
85],
256],
119829:[[
86],
256],
119830:[[
87],
256],
119831:[[
88],
256],
119832:[[
89],
256],
119833:[[
90],
256],
119834:[[
97],
256],
119835:[[
98],
256],
119836:[[
99],
256],
119837:[[
100],
256],
119838:[[
101],
256],
119839:[[
102],
256],
119840:[[
103],
256],
119841:[[
104],
256],
119842:[[
105],
256],
119843:[[
106],
256],
119844:[[
107],
256],
119845:[[
108],
256],
119846:[[
109],
256],
119847:[[
110],
256],
119848:[[
111],
256],
119849:[[
112],
256],
119850:[[
113],
256],
119851:[[
114],
256],
119852:[[
115],
256],
119853:[[
116],
256],
119854:[[
117],
256],
119855:[[
118],
256],
119856:[[
119],
256],
119857:[[
120],
256],
119858:[[
121],
256],
119859:[[
122],
256],
119860:[[
65],
256],
119861:[[
66],
256],
119862:[[
67],
256],
119863:[[
68],
256],
119864:[[
69],
256],
119865:[[
70],
256],
119866:[[
71],
256],
119867:[[
72],
256],
119868:[[
73],
256],
119869:[[
74],
256],
119870:[[
75],
256],
119871:[[
76],
256],
119872:[[
77],
256],
119873:[[
78],
256],
119874:[[
79],
256],
119875:[[
80],
256],
119876:[[
81],
256],
119877:[[
82],
256],
119878:[[
83],
256],
119879:[[
84],
256],
119880:[[
85],
256],
119881:[[
86],
256],
119882:[[
87],
256],
119883:[[
88],
256],
119884:[[
89],
256],
119885:[[
90],
256],
119886:[[
97],
256],
119887:[[
98],
256],
119888:[[
99],
256],
119889:[[
100],
256],
119890:[[
101],
256],
119891:[[
102],
256],
119892:[[
103],
256],
119894:[[
105],
256],
119895:[[
106],
256],
119896:[[
107],
256],
119897:[[
108],
256],
119898:[[
109],
256],
119899:[[
110],
256],
119900:[[
111],
256],
119901:[[
112],
256],
119902:[[
113],
256],
119903:[[
114],
256],
119904:[[
115],
256],
119905:[[
116],
256],
119906:[[
117],
256],
119907:[[
118],
256],
119908:[[
119],
256],
119909:[[
120],
256],
119910:[[
121],
256],
119911:[[
122],
256],
119912:[[
65],
256],
119913:[[
66],
256],
119914:[[
67],
256],
119915:[[
68],
256],
119916:[[
69],
256],
119917:[[
70],
256],
119918:[[
71],
256],
119919:[[
72],
256],
119920:[[
73],
256],
119921:[[
74],
256],
119922:[[
75],
256],
119923:[[
76],
256],
119924:[[
77],
256],
119925:[[
78],
256],
119926:[[
79],
256],
119927:[[
80],
256],
119928:[[
81],
256],
119929:[[
82],
256],
119930:[[
83],
256],
119931:[[
84],
256],
119932:[[
85],
256],
119933:[[
86],
256],
119934:[[
87],
256],
119935:[[
88],
256],
119936:[[
89],
256],
119937:[[
90],
256],
119938:[[
97],
256],
119939:[[
98],
256],
119940:[[
99],
256],
119941:[[
100],
256],
119942:[[
101],
256],
119943:[[
102],
256],
119944:[[
103],
256],
119945:[[
104],
256],
119946:[[
105],
256],
119947:[[
106],
256],
119948:[[
107],
256],
119949:[[
108],
256],
119950:[[
109],
256],
119951:[[
110],
256],
119952:[[
111],
256],
119953:[[
112],
256],
119954:[[
113],
256],
119955:[[
114],
256],
119956:[[
115],
256],
119957:[[
116],
256],
119958:[[
117],
256],
119959:[[
118],
256],
119960:[[
119],
256],
119961:[[
120],
256],
119962:[[
121],
256],
119963:[[
122],
256],
119964:[[
65],
256],
119966:[[
67],
256],
119967:[[
68],
256],
119970:[[
71],
256],
119973:[[
74],
256],
119974:[[
75],
256],
119977:[[
78],
256],
119978:[[
79],
256],
119979:[[
80],
256],
119980:[[
81],
256],
119982:[[
83],
256],
119983:[[
84],
256],
119984:[[
85],
256],
119985:[[
86],
256],
119986:[[
87],
256],
119987:[[
88],
256],
119988:[[
89],
256],
119989:[[
90],
256],
119990:[[
97],
256],
119991:[[
98],
256],
119992:[[
99],
256],
119993:[[
100],
256],
119995:[[
102],
256],
119997:[[
104],
256],
119998:[[
105],
256],
119999:[[
106],
256],
120000:[[
107],
256],
120001:[[
108],
256],
120002:[[
109],
256],
120003:[[
110],
256],
120005:[[
112],
256],
120006:[[
113],
256],
120007:[[
114],
256],
120008:[[
115],
256],
120009:[[
116],
256],
120010:[[
117],
256],
120011:[[
118],
256],
120012:[[
119],
256],
120013:[[
120],
256],
120014:[[
121],
256],
120015:[[
122],
256],
120016:[[
65],
256],
120017:[[
66],
256],
120018:[[
67],
256],
120019:[[
68],
256],
120020:[[
69],
256],
120021:[[
70],
256],
120022:[[
71],
256],
120023:[[
72],
256],
120024:[[
73],
256],
120025:[[
74],
256],
120026:[[
75],
256],
120027:[[
76],
256],
120028:[[
77],
256],
120029:[[
78],
256],
120030:[[
79],
256],
120031:[[
80],
256],
120032:[[
81],
256],
120033:[[
82],
256],
120034:[[
83],
256],
120035:[[
84],
256],
120036:[[
85],
256],
120037:[[
86],
256],
120038:[[
87],
256],
120039:[[
88],
256],
120040:[[
89],
256],
120041:[[
90],
256],
120042:[[
97],
256],
120043:[[
98],
256],
120044:[[
99],
256],
120045:[[
100],
256],
120046:[[
101],
256],
120047:[[
102],
256],
120048:[[
103],
256],
120049:[[
104],
256],
120050:[[
105],
256],
120051:[[
106],
256],
120052:[[
107],
256],
120053:[[
108],
256],
120054:[[
109],
256],
120055:[[
110],
256],
120056:[[
111],
256],
120057:[[
112],
256],
120058:[[
113],
256],
120059:[[
114],
256],
120060:[[
115],
256],
120061:[[
116],
256],
120062:[[
117],
256],
120063:[[
118],
256]},
6954 54528:{
120064:[[
119],
256],
120065:[[
120],
256],
120066:[[
121],
256],
120067:[[
122],
256],
120068:[[
65],
256],
120069:[[
66],
256],
120071:[[
68],
256],
120072:[[
69],
256],
120073:[[
70],
256],
120074:[[
71],
256],
120077:[[
74],
256],
120078:[[
75],
256],
120079:[[
76],
256],
120080:[[
77],
256],
120081:[[
78],
256],
120082:[[
79],
256],
120083:[[
80],
256],
120084:[[
81],
256],
120086:[[
83],
256],
120087:[[
84],
256],
120088:[[
85],
256],
120089:[[
86],
256],
120090:[[
87],
256],
120091:[[
88],
256],
120092:[[
89],
256],
120094:[[
97],
256],
120095:[[
98],
256],
120096:[[
99],
256],
120097:[[
100],
256],
120098:[[
101],
256],
120099:[[
102],
256],
120100:[[
103],
256],
120101:[[
104],
256],
120102:[[
105],
256],
120103:[[
106],
256],
120104:[[
107],
256],
120105:[[
108],
256],
120106:[[
109],
256],
120107:[[
110],
256],
120108:[[
111],
256],
120109:[[
112],
256],
120110:[[
113],
256],
120111:[[
114],
256],
120112:[[
115],
256],
120113:[[
116],
256],
120114:[[
117],
256],
120115:[[
118],
256],
120116:[[
119],
256],
120117:[[
120],
256],
120118:[[
121],
256],
120119:[[
122],
256],
120120:[[
65],
256],
120121:[[
66],
256],
120123:[[
68],
256],
120124:[[
69],
256],
120125:[[
70],
256],
120126:[[
71],
256],
120128:[[
73],
256],
120129:[[
74],
256],
120130:[[
75],
256],
120131:[[
76],
256],
120132:[[
77],
256],
120134:[[
79],
256],
120138:[[
83],
256],
120139:[[
84],
256],
120140:[[
85],
256],
120141:[[
86],
256],
120142:[[
87],
256],
120143:[[
88],
256],
120144:[[
89],
256],
120146:[[
97],
256],
120147:[[
98],
256],
120148:[[
99],
256],
120149:[[
100],
256],
120150:[[
101],
256],
120151:[[
102],
256],
120152:[[
103],
256],
120153:[[
104],
256],
120154:[[
105],
256],
120155:[[
106],
256],
120156:[[
107],
256],
120157:[[
108],
256],
120158:[[
109],
256],
120159:[[
110],
256],
120160:[[
111],
256],
120161:[[
112],
256],
120162:[[
113],
256],
120163:[[
114],
256],
120164:[[
115],
256],
120165:[[
116],
256],
120166:[[
117],
256],
120167:[[
118],
256],
120168:[[
119],
256],
120169:[[
120],
256],
120170:[[
121],
256],
120171:[[
122],
256],
120172:[[
65],
256],
120173:[[
66],
256],
120174:[[
67],
256],
120175:[[
68],
256],
120176:[[
69],
256],
120177:[[
70],
256],
120178:[[
71],
256],
120179:[[
72],
256],
120180:[[
73],
256],
120181:[[
74],
256],
120182:[[
75],
256],
120183:[[
76],
256],
120184:[[
77],
256],
120185:[[
78],
256],
120186:[[
79],
256],
120187:[[
80],
256],
120188:[[
81],
256],
120189:[[
82],
256],
120190:[[
83],
256],
120191:[[
84],
256],
120192:[[
85],
256],
120193:[[
86],
256],
120194:[[
87],
256],
120195:[[
88],
256],
120196:[[
89],
256],
120197:[[
90],
256],
120198:[[
97],
256],
120199:[[
98],
256],
120200:[[
99],
256],
120201:[[
100],
256],
120202:[[
101],
256],
120203:[[
102],
256],
120204:[[
103],
256],
120205:[[
104],
256],
120206:[[
105],
256],
120207:[[
106],
256],
120208:[[
107],
256],
120209:[[
108],
256],
120210:[[
109],
256],
120211:[[
110],
256],
120212:[[
111],
256],
120213:[[
112],
256],
120214:[[
113],
256],
120215:[[
114],
256],
120216:[[
115],
256],
120217:[[
116],
256],
120218:[[
117],
256],
120219:[[
118],
256],
120220:[[
119],
256],
120221:[[
120],
256],
120222:[[
121],
256],
120223:[[
122],
256],
120224:[[
65],
256],
120225:[[
66],
256],
120226:[[
67],
256],
120227:[[
68],
256],
120228:[[
69],
256],
120229:[[
70],
256],
120230:[[
71],
256],
120231:[[
72],
256],
120232:[[
73],
256],
120233:[[
74],
256],
120234:[[
75],
256],
120235:[[
76],
256],
120236:[[
77],
256],
120237:[[
78],
256],
120238:[[
79],
256],
120239:[[
80],
256],
120240:[[
81],
256],
120241:[[
82],
256],
120242:[[
83],
256],
120243:[[
84],
256],
120244:[[
85],
256],
120245:[[
86],
256],
120246:[[
87],
256],
120247:[[
88],
256],
120248:[[
89],
256],
120249:[[
90],
256],
120250:[[
97],
256],
120251:[[
98],
256],
120252:[[
99],
256],
120253:[[
100],
256],
120254:[[
101],
256],
120255:[[
102],
256],
120256:[[
103],
256],
120257:[[
104],
256],
120258:[[
105],
256],
120259:[[
106],
256],
120260:[[
107],
256],
120261:[[
108],
256],
120262:[[
109],
256],
120263:[[
110],
256],
120264:[[
111],
256],
120265:[[
112],
256],
120266:[[
113],
256],
120267:[[
114],
256],
120268:[[
115],
256],
120269:[[
116],
256],
120270:[[
117],
256],
120271:[[
118],
256],
120272:[[
119],
256],
120273:[[
120],
256],
120274:[[
121],
256],
120275:[[
122],
256],
120276:[[
65],
256],
120277:[[
66],
256],
120278:[[
67],
256],
120279:[[
68],
256],
120280:[[
69],
256],
120281:[[
70],
256],
120282:[[
71],
256],
120283:[[
72],
256],
120284:[[
73],
256],
120285:[[
74],
256],
120286:[[
75],
256],
120287:[[
76],
256],
120288:[[
77],
256],
120289:[[
78],
256],
120290:[[
79],
256],
120291:[[
80],
256],
120292:[[
81],
256],
120293:[[
82],
256],
120294:[[
83],
256],
120295:[[
84],
256],
120296:[[
85],
256],
120297:[[
86],
256],
120298:[[
87],
256],
120299:[[
88],
256],
120300:[[
89],
256],
120301:[[
90],
256],
120302:[[
97],
256],
120303:[[
98],
256],
120304:[[
99],
256],
120305:[[
100],
256],
120306:[[
101],
256],
120307:[[
102],
256],
120308:[[
103],
256],
120309:[[
104],
256],
120310:[[
105],
256],
120311:[[
106],
256],
120312:[[
107],
256],
120313:[[
108],
256],
120314:[[
109],
256],
120315:[[
110],
256],
120316:[[
111],
256],
120317:[[
112],
256],
120318:[[
113],
256],
120319:[[
114],
256]},
6955 54784:{
120320:[[
115],
256],
120321:[[
116],
256],
120322:[[
117],
256],
120323:[[
118],
256],
120324:[[
119],
256],
120325:[[
120],
256],
120326:[[
121],
256],
120327:[[
122],
256],
120328:[[
65],
256],
120329:[[
66],
256],
120330:[[
67],
256],
120331:[[
68],
256],
120332:[[
69],
256],
120333:[[
70],
256],
120334:[[
71],
256],
120335:[[
72],
256],
120336:[[
73],
256],
120337:[[
74],
256],
120338:[[
75],
256],
120339:[[
76],
256],
120340:[[
77],
256],
120341:[[
78],
256],
120342:[[
79],
256],
120343:[[
80],
256],
120344:[[
81],
256],
120345:[[
82],
256],
120346:[[
83],
256],
120347:[[
84],
256],
120348:[[
85],
256],
120349:[[
86],
256],
120350:[[
87],
256],
120351:[[
88],
256],
120352:[[
89],
256],
120353:[[
90],
256],
120354:[[
97],
256],
120355:[[
98],
256],
120356:[[
99],
256],
120357:[[
100],
256],
120358:[[
101],
256],
120359:[[
102],
256],
120360:[[
103],
256],
120361:[[
104],
256],
120362:[[
105],
256],
120363:[[
106],
256],
120364:[[
107],
256],
120365:[[
108],
256],
120366:[[
109],
256],
120367:[[
110],
256],
120368:[[
111],
256],
120369:[[
112],
256],
120370:[[
113],
256],
120371:[[
114],
256],
120372:[[
115],
256],
120373:[[
116],
256],
120374:[[
117],
256],
120375:[[
118],
256],
120376:[[
119],
256],
120377:[[
120],
256],
120378:[[
121],
256],
120379:[[
122],
256],
120380:[[
65],
256],
120381:[[
66],
256],
120382:[[
67],
256],
120383:[[
68],
256],
120384:[[
69],
256],
120385:[[
70],
256],
120386:[[
71],
256],
120387:[[
72],
256],
120388:[[
73],
256],
120389:[[
74],
256],
120390:[[
75],
256],
120391:[[
76],
256],
120392:[[
77],
256],
120393:[[
78],
256],
120394:[[
79],
256],
120395:[[
80],
256],
120396:[[
81],
256],
120397:[[
82],
256],
120398:[[
83],
256],
120399:[[
84],
256],
120400:[[
85],
256],
120401:[[
86],
256],
120402:[[
87],
256],
120403:[[
88],
256],
120404:[[
89],
256],
120405:[[
90],
256],
120406:[[
97],
256],
120407:[[
98],
256],
120408:[[
99],
256],
120409:[[
100],
256],
120410:[[
101],
256],
120411:[[
102],
256],
120412:[[
103],
256],
120413:[[
104],
256],
120414:[[
105],
256],
120415:[[
106],
256],
120416:[[
107],
256],
120417:[[
108],
256],
120418:[[
109],
256],
120419:[[
110],
256],
120420:[[
111],
256],
120421:[[
112],
256],
120422:[[
113],
256],
120423:[[
114],
256],
120424:[[
115],
256],
120425:[[
116],
256],
120426:[[
117],
256],
120427:[[
118],
256],
120428:[[
119],
256],
120429:[[
120],
256],
120430:[[
121],
256],
120431:[[
122],
256],
120432:[[
65],
256],
120433:[[
66],
256],
120434:[[
67],
256],
120435:[[
68],
256],
120436:[[
69],
256],
120437:[[
70],
256],
120438:[[
71],
256],
120439:[[
72],
256],
120440:[[
73],
256],
120441:[[
74],
256],
120442:[[
75],
256],
120443:[[
76],
256],
120444:[[
77],
256],
120445:[[
78],
256],
120446:[[
79],
256],
120447:[[
80],
256],
120448:[[
81],
256],
120449:[[
82],
256],
120450:[[
83],
256],
120451:[[
84],
256],
120452:[[
85],
256],
120453:[[
86],
256],
120454:[[
87],
256],
120455:[[
88],
256],
120456:[[
89],
256],
120457:[[
90],
256],
120458:[[
97],
256],
120459:[[
98],
256],
120460:[[
99],
256],
120461:[[
100],
256],
120462:[[
101],
256],
120463:[[
102],
256],
120464:[[
103],
256],
120465:[[
104],
256],
120466:[[
105],
256],
120467:[[
106],
256],
120468:[[
107],
256],
120469:[[
108],
256],
120470:[[
109],
256],
120471:[[
110],
256],
120472:[[
111],
256],
120473:[[
112],
256],
120474:[[
113],
256],
120475:[[
114],
256],
120476:[[
115],
256],
120477:[[
116],
256],
120478:[[
117],
256],
120479:[[
118],
256],
120480:[[
119],
256],
120481:[[
120],
256],
120482:[[
121],
256],
120483:[[
122],
256],
120484:[[
305],
256],
120485:[[
567],
256],
120488:[[
913],
256],
120489:[[
914],
256],
120490:[[
915],
256],
120491:[[
916],
256],
120492:[[
917],
256],
120493:[[
918],
256],
120494:[[
919],
256],
120495:[[
920],
256],
120496:[[
921],
256],
120497:[[
922],
256],
120498:[[
923],
256],
120499:[[
924],
256],
120500:[[
925],
256],
120501:[[
926],
256],
120502:[[
927],
256],
120503:[[
928],
256],
120504:[[
929],
256],
120505:[[
1012],
256],
120506:[[
931],
256],
120507:[[
932],
256],
120508:[[
933],
256],
120509:[[
934],
256],
120510:[[
935],
256],
120511:[[
936],
256],
120512:[[
937],
256],
120513:[[
8711],
256],
120514:[[
945],
256],
120515:[[
946],
256],
120516:[[
947],
256],
120517:[[
948],
256],
120518:[[
949],
256],
120519:[[
950],
256],
120520:[[
951],
256],
120521:[[
952],
256],
120522:[[
953],
256],
120523:[[
954],
256],
120524:[[
955],
256],
120525:[[
956],
256],
120526:[[
957],
256],
120527:[[
958],
256],
120528:[[
959],
256],
120529:[[
960],
256],
120530:[[
961],
256],
120531:[[
962],
256],
120532:[[
963],
256],
120533:[[
964],
256],
120534:[[
965],
256],
120535:[[
966],
256],
120536:[[
967],
256],
120537:[[
968],
256],
120538:[[
969],
256],
120539:[[
8706],
256],
120540:[[
1013],
256],
120541:[[
977],
256],
120542:[[
1008],
256],
120543:[[
981],
256],
120544:[[
1009],
256],
120545:[[
982],
256],
120546:[[
913],
256],
120547:[[
914],
256],
120548:[[
915],
256],
120549:[[
916],
256],
120550:[[
917],
256],
120551:[[
918],
256],
120552:[[
919],
256],
120553:[[
920],
256],
120554:[[
921],
256],
120555:[[
922],
256],
120556:[[
923],
256],
120557:[[
924],
256],
120558:[[
925],
256],
120559:[[
926],
256],
120560:[[
927],
256],
120561:[[
928],
256],
120562:[[
929],
256],
120563:[[
1012],
256],
120564:[[
931],
256],
120565:[[
932],
256],
120566:[[
933],
256],
120567:[[
934],
256],
120568:[[
935],
256],
120569:[[
936],
256],
120570:[[
937],
256],
120571:[[
8711],
256],
120572:[[
945],
256],
120573:[[
946],
256],
120574:[[
947],
256],
120575:[[
948],
256]},
6956 55040:{
120576:[[
949],
256],
120577:[[
950],
256],
120578:[[
951],
256],
120579:[[
952],
256],
120580:[[
953],
256],
120581:[[
954],
256],
120582:[[
955],
256],
120583:[[
956],
256],
120584:[[
957],
256],
120585:[[
958],
256],
120586:[[
959],
256],
120587:[[
960],
256],
120588:[[
961],
256],
120589:[[
962],
256],
120590:[[
963],
256],
120591:[[
964],
256],
120592:[[
965],
256],
120593:[[
966],
256],
120594:[[
967],
256],
120595:[[
968],
256],
120596:[[
969],
256],
120597:[[
8706],
256],
120598:[[
1013],
256],
120599:[[
977],
256],
120600:[[
1008],
256],
120601:[[
981],
256],
120602:[[
1009],
256],
120603:[[
982],
256],
120604:[[
913],
256],
120605:[[
914],
256],
120606:[[
915],
256],
120607:[[
916],
256],
120608:[[
917],
256],
120609:[[
918],
256],
120610:[[
919],
256],
120611:[[
920],
256],
120612:[[
921],
256],
120613:[[
922],
256],
120614:[[
923],
256],
120615:[[
924],
256],
120616:[[
925],
256],
120617:[[
926],
256],
120618:[[
927],
256],
120619:[[
928],
256],
120620:[[
929],
256],
120621:[[
1012],
256],
120622:[[
931],
256],
120623:[[
932],
256],
120624:[[
933],
256],
120625:[[
934],
256],
120626:[[
935],
256],
120627:[[
936],
256],
120628:[[
937],
256],
120629:[[
8711],
256],
120630:[[
945],
256],
120631:[[
946],
256],
120632:[[
947],
256],
120633:[[
948],
256],
120634:[[
949],
256],
120635:[[
950],
256],
120636:[[
951],
256],
120637:[[
952],
256],
120638:[[
953],
256],
120639:[[
954],
256],
120640:[[
955],
256],
120641:[[
956],
256],
120642:[[
957],
256],
120643:[[
958],
256],
120644:[[
959],
256],
120645:[[
960],
256],
120646:[[
961],
256],
120647:[[
962],
256],
120648:[[
963],
256],
120649:[[
964],
256],
120650:[[
965],
256],
120651:[[
966],
256],
120652:[[
967],
256],
120653:[[
968],
256],
120654:[[
969],
256],
120655:[[
8706],
256],
120656:[[
1013],
256],
120657:[[
977],
256],
120658:[[
1008],
256],
120659:[[
981],
256],
120660:[[
1009],
256],
120661:[[
982],
256],
120662:[[
913],
256],
120663:[[
914],
256],
120664:[[
915],
256],
120665:[[
916],
256],
120666:[[
917],
256],
120667:[[
918],
256],
120668:[[
919],
256],
120669:[[
920],
256],
120670:[[
921],
256],
120671:[[
922],
256],
120672:[[
923],
256],
120673:[[
924],
256],
120674:[[
925],
256],
120675:[[
926],
256],
120676:[[
927],
256],
120677:[[
928],
256],
120678:[[
929],
256],
120679:[[
1012],
256],
120680:[[
931],
256],
120681:[[
932],
256],
120682:[[
933],
256],
120683:[[
934],
256],
120684:[[
935],
256],
120685:[[
936],
256],
120686:[[
937],
256],
120687:[[
8711],
256],
120688:[[
945],
256],
120689:[[
946],
256],
120690:[[
947],
256],
120691:[[
948],
256],
120692:[[
949],
256],
120693:[[
950],
256],
120694:[[
951],
256],
120695:[[
952],
256],
120696:[[
953],
256],
120697:[[
954],
256],
120698:[[
955],
256],
120699:[[
956],
256],
120700:[[
957],
256],
120701:[[
958],
256],
120702:[[
959],
256],
120703:[[
960],
256],
120704:[[
961],
256],
120705:[[
962],
256],
120706:[[
963],
256],
120707:[[
964],
256],
120708:[[
965],
256],
120709:[[
966],
256],
120710:[[
967],
256],
120711:[[
968],
256],
120712:[[
969],
256],
120713:[[
8706],
256],
120714:[[
1013],
256],
120715:[[
977],
256],
120716:[[
1008],
256],
120717:[[
981],
256],
120718:[[
1009],
256],
120719:[[
982],
256],
120720:[[
913],
256],
120721:[[
914],
256],
120722:[[
915],
256],
120723:[[
916],
256],
120724:[[
917],
256],
120725:[[
918],
256],
120726:[[
919],
256],
120727:[[
920],
256],
120728:[[
921],
256],
120729:[[
922],
256],
120730:[[
923],
256],
120731:[[
924],
256],
120732:[[
925],
256],
120733:[[
926],
256],
120734:[[
927],
256],
120735:[[
928],
256],
120736:[[
929],
256],
120737:[[
1012],
256],
120738:[[
931],
256],
120739:[[
932],
256],
120740:[[
933],
256],
120741:[[
934],
256],
120742:[[
935],
256],
120743:[[
936],
256],
120744:[[
937],
256],
120745:[[
8711],
256],
120746:[[
945],
256],
120747:[[
946],
256],
120748:[[
947],
256],
120749:[[
948],
256],
120750:[[
949],
256],
120751:[[
950],
256],
120752:[[
951],
256],
120753:[[
952],
256],
120754:[[
953],
256],
120755:[[
954],
256],
120756:[[
955],
256],
120757:[[
956],
256],
120758:[[
957],
256],
120759:[[
958],
256],
120760:[[
959],
256],
120761:[[
960],
256],
120762:[[
961],
256],
120763:[[
962],
256],
120764:[[
963],
256],
120765:[[
964],
256],
120766:[[
965],
256],
120767:[[
966],
256],
120768:[[
967],
256],
120769:[[
968],
256],
120770:[[
969],
256],
120771:[[
8706],
256],
120772:[[
1013],
256],
120773:[[
977],
256],
120774:[[
1008],
256],
120775:[[
981],
256],
120776:[[
1009],
256],
120777:[[
982],
256],
120778:[[
988],
256],
120779:[[
989],
256],
120782:[[
48],
256],
120783:[[
49],
256],
120784:[[
50],
256],
120785:[[
51],
256],
120786:[[
52],
256],
120787:[[
53],
256],
120788:[[
54],
256],
120789:[[
55],
256],
120790:[[
56],
256],
120791:[[
57],
256],
120792:[[
48],
256],
120793:[[
49],
256],
120794:[[
50],
256],
120795:[[
51],
256],
120796:[[
52],
256],
120797:[[
53],
256],
120798:[[
54],
256],
120799:[[
55],
256],
120800:[[
56],
256],
120801:[[
57],
256],
120802:[[
48],
256],
120803:[[
49],
256],
120804:[[
50],
256],
120805:[[
51],
256],
120806:[[
52],
256],
120807:[[
53],
256],
120808:[[
54],
256],
120809:[[
55],
256],
120810:[[
56],
256],
120811:[[
57],
256],
120812:[[
48],
256],
120813:[[
49],
256],
120814:[[
50],
256],
120815:[[
51],
256],
120816:[[
52],
256],
120817:[[
53],
256],
120818:[[
54],
256],
120819:[[
55],
256],
120820:[[
56],
256],
120821:[[
57],
256],
120822:[[
48],
256],
120823:[[
49],
256],
120824:[[
50],
256],
120825:[[
51],
256],
120826:[[
52],
256],
120827:[[
53],
256],
120828:[[
54],
256],
120829:[[
55],
256],
120830:[[
56],
256],
120831:[[
57],
256]},
6957 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6958 60928:{
126464:[[
1575],
256],
126465:[[
1576],
256],
126466:[[
1580],
256],
126467:[[
1583],
256],
126469:[[
1608],
256],
126470:[[
1586],
256],
126471:[[
1581],
256],
126472:[[
1591],
256],
126473:[[
1610],
256],
126474:[[
1603],
256],
126475:[[
1604],
256],
126476:[[
1605],
256],
126477:[[
1606],
256],
126478:[[
1587],
256],
126479:[[
1593],
256],
126480:[[
1601],
256],
126481:[[
1589],
256],
126482:[[
1602],
256],
126483:[[
1585],
256],
126484:[[
1588],
256],
126485:[[
1578],
256],
126486:[[
1579],
256],
126487:[[
1582],
256],
126488:[[
1584],
256],
126489:[[
1590],
256],
126490:[[
1592],
256],
126491:[[
1594],
256],
126492:[[
1646],
256],
126493:[[
1722],
256],
126494:[[
1697],
256],
126495:[[
1647],
256],
126497:[[
1576],
256],
126498:[[
1580],
256],
126500:[[
1607],
256],
126503:[[
1581],
256],
126505:[[
1610],
256],
126506:[[
1603],
256],
126507:[[
1604],
256],
126508:[[
1605],
256],
126509:[[
1606],
256],
126510:[[
1587],
256],
126511:[[
1593],
256],
126512:[[
1601],
256],
126513:[[
1589],
256],
126514:[[
1602],
256],
126516:[[
1588],
256],
126517:[[
1578],
256],
126518:[[
1579],
256],
126519:[[
1582],
256],
126521:[[
1590],
256],
126523:[[
1594],
256],
126530:[[
1580],
256],
126535:[[
1581],
256],
126537:[[
1610],
256],
126539:[[
1604],
256],
126541:[[
1606],
256],
126542:[[
1587],
256],
126543:[[
1593],
256],
126545:[[
1589],
256],
126546:[[
1602],
256],
126548:[[
1588],
256],
126551:[[
1582],
256],
126553:[[
1590],
256],
126555:[[
1594],
256],
126557:[[
1722],
256],
126559:[[
1647],
256],
126561:[[
1576],
256],
126562:[[
1580],
256],
126564:[[
1607],
256],
126567:[[
1581],
256],
126568:[[
1591],
256],
126569:[[
1610],
256],
126570:[[
1603],
256],
126572:[[
1605],
256],
126573:[[
1606],
256],
126574:[[
1587],
256],
126575:[[
1593],
256],
126576:[[
1601],
256],
126577:[[
1589],
256],
126578:[[
1602],
256],
126580:[[
1588],
256],
126581:[[
1578],
256],
126582:[[
1579],
256],
126583:[[
1582],
256],
126585:[[
1590],
256],
126586:[[
1592],
256],
126587:[[
1594],
256],
126588:[[
1646],
256],
126590:[[
1697],
256],
126592:[[
1575],
256],
126593:[[
1576],
256],
126594:[[
1580],
256],
126595:[[
1583],
256],
126596:[[
1607],
256],
126597:[[
1608],
256],
126598:[[
1586],
256],
126599:[[
1581],
256],
126600:[[
1591],
256],
126601:[[
1610],
256],
126603:[[
1604],
256],
126604:[[
1605],
256],
126605:[[
1606],
256],
126606:[[
1587],
256],
126607:[[
1593],
256],
126608:[[
1601],
256],
126609:[[
1589],
256],
126610:[[
1602],
256],
126611:[[
1585],
256],
126612:[[
1588],
256],
126613:[[
1578],
256],
126614:[[
1579],
256],
126615:[[
1582],
256],
126616:[[
1584],
256],
126617:[[
1590],
256],
126618:[[
1592],
256],
126619:[[
1594],
256],
126625:[[
1576],
256],
126626:[[
1580],
256],
126627:[[
1583],
256],
126629:[[
1608],
256],
126630:[[
1586],
256],
126631:[[
1581],
256],
126632:[[
1591],
256],
126633:[[
1610],
256],
126635:[[
1604],
256],
126636:[[
1605],
256],
126637:[[
1606],
256],
126638:[[
1587],
256],
126639:[[
1593],
256],
126640:[[
1601],
256],
126641:[[
1589],
256],
126642:[[
1602],
256],
126643:[[
1585],
256],
126644:[[
1588],
256],
126645:[[
1578],
256],
126646:[[
1579],
256],
126647:[[
1582],
256],
126648:[[
1584],
256],
126649:[[
1590],
256],
126650:[[
1592],
256],
126651:[[
1594],
256]},
6959 61696:{
127232:[[
48,
46],
256],
127233:[[
48,
44],
256],
127234:[[
49,
44],
256],
127235:[[
50,
44],
256],
127236:[[
51,
44],
256],
127237:[[
52,
44],
256],
127238:[[
53,
44],
256],
127239:[[
54,
44],
256],
127240:[[
55,
44],
256],
127241:[[
56,
44],
256],
127242:[[
57,
44],
256],
127248:[[
40,
65,
41],
256],
127249:[[
40,
66,
41],
256],
127250:[[
40,
67,
41],
256],
127251:[[
40,
68,
41],
256],
127252:[[
40,
69,
41],
256],
127253:[[
40,
70,
41],
256],
127254:[[
40,
71,
41],
256],
127255:[[
40,
72,
41],
256],
127256:[[
40,
73,
41],
256],
127257:[[
40,
74,
41],
256],
127258:[[
40,
75,
41],
256],
127259:[[
40,
76,
41],
256],
127260:[[
40,
77,
41],
256],
127261:[[
40,
78,
41],
256],
127262:[[
40,
79,
41],
256],
127263:[[
40,
80,
41],
256],
127264:[[
40,
81,
41],
256],
127265:[[
40,
82,
41],
256],
127266:[[
40,
83,
41],
256],
127267:[[
40,
84,
41],
256],
127268:[[
40,
85,
41],
256],
127269:[[
40,
86,
41],
256],
127270:[[
40,
87,
41],
256],
127271:[[
40,
88,
41],
256],
127272:[[
40,
89,
41],
256],
127273:[[
40,
90,
41],
256],
127274:[[
12308,
83,
12309],
256],
127275:[[
67],
256],
127276:[[
82],
256],
127277:[[
67,
68],
256],
127278:[[
87,
90],
256],
127280:[[
65],
256],
127281:[[
66],
256],
127282:[[
67],
256],
127283:[[
68],
256],
127284:[[
69],
256],
127285:[[
70],
256],
127286:[[
71],
256],
127287:[[
72],
256],
127288:[[
73],
256],
127289:[[
74],
256],
127290:[[
75],
256],
127291:[[
76],
256],
127292:[[
77],
256],
127293:[[
78],
256],
127294:[[
79],
256],
127295:[[
80],
256],
127296:[[
81],
256],
127297:[[
82],
256],
127298:[[
83],
256],
127299:[[
84],
256],
127300:[[
85],
256],
127301:[[
86],
256],
127302:[[
87],
256],
127303:[[
88],
256],
127304:[[
89],
256],
127305:[[
90],
256],
127306:[[
72,
86],
256],
127307:[[
77,
86],
256],
127308:[[
83,
68],
256],
127309:[[
83,
83],
256],
127310:[[
80,
80,
86],
256],
127311:[[
87,
67],
256],
127338:[[
77,
67],
256],
127339:[[
77,
68],
256],
127376:[[
68,
74],
256]},
6960 61952:{
127488:[[
12411,
12363],
256],
127489:[[
12467,
12467],
256],
127490:[[
12469],
256],
127504:[[
25163],
256],
127505:[[
23383],
256],
127506:[[
21452],
256],
127507:[[
12487],
256],
127508:[[
20108],
256],
127509:[[
22810],
256],
127510:[[
35299],
256],
127511:[[
22825],
256],
127512:[[
20132],
256],
127513:[[
26144],
256],
127514:[[
28961],
256],
127515:[[
26009],
256],
127516:[[
21069],
256],
127517:[[
24460],
256],
127518:[[
20877],
256],
127519:[[
26032],
256],
127520:[[
21021],
256],
127521:[[
32066],
256],
127522:[[
29983],
256],
127523:[[
36009],
256],
127524:[[
22768],
256],
127525:[[
21561],
256],
127526:[[
28436],
256],
127527:[[
25237],
256],
127528:[[
25429],
256],
127529:[[
19968],
256],
127530:[[
19977],
256],
127531:[[
36938],
256],
127532:[[
24038],
256],
127533:[[
20013],
256],
127534:[[
21491],
256],
127535:[[
25351],
256],
127536:[[
36208],
256],
127537:[[
25171],
256],
127538:[[
31105],
256],
127539:[[
31354],
256],
127540:[[
21512],
256],
127541:[[
28288],
256],
127542:[[
26377],
256],
127543:[[
26376],
256],
127544:[[
30003],
256],
127545:[[
21106],
256],
127546:[[
21942],
256],
127552:[[
12308,
26412,
12309],
256],
127553:[[
12308,
19977,
12309],
256],
127554:[[
12308,
20108,
12309],
256],
127555:[[
12308,
23433,
12309],
256],
127556:[[
12308,
28857,
12309],
256],
127557:[[
12308,
25171,
12309],
256],
127558:[[
12308,
30423,
12309],
256],
127559:[[
12308,
21213,
12309],
256],
127560:[[
12308,
25943,
12309],
256],
127568:[[
24471],
256],
127569:[[
21487],
256]},
6961 63488:{
194560:[[
20029]],
194561:[[
20024]],
194562:[[
20033]],
194563:[[
131362]],
194564:[[
20320]],
194565:[[
20398]],
194566:[[
20411]],
194567:[[
20482]],
194568:[[
20602]],
194569:[[
20633]],
194570:[[
20711]],
194571:[[
20687]],
194572:[[
13470]],
194573:[[
132666]],
194574:[[
20813]],
194575:[[
20820]],
194576:[[
20836]],
194577:[[
20855]],
194578:[[
132380]],
194579:[[
13497]],
194580:[[
20839]],
194581:[[
20877]],
194582:[[
132427]],
194583:[[
20887]],
194584:[[
20900]],
194585:[[
20172]],
194586:[[
20908]],
194587:[[
20917]],
194588:[[
168415]],
194589:[[
20981]],
194590:[[
20995]],
194591:[[
13535]],
194592:[[
21051]],
194593:[[
21062]],
194594:[[
21106]],
194595:[[
21111]],
194596:[[
13589]],
194597:[[
21191]],
194598:[[
21193]],
194599:[[
21220]],
194600:[[
21242]],
194601:[[
21253]],
194602:[[
21254]],
194603:[[
21271]],
194604:[[
21321]],
194605:[[
21329]],
194606:[[
21338]],
194607:[[
21363]],
194608:[[
21373]],
194609:[[
21375]],
194610:[[
21375]],
194611:[[
21375]],
194612:[[
133676]],
194613:[[
28784]],
194614:[[
21450]],
194615:[[
21471]],
194616:[[
133987]],
194617:[[
21483]],
194618:[[
21489]],
194619:[[
21510]],
194620:[[
21662]],
194621:[[
21560]],
194622:[[
21576]],
194623:[[
21608]],
194624:[[
21666]],
194625:[[
21750]],
194626:[[
21776]],
194627:[[
21843]],
194628:[[
21859]],
194629:[[
21892]],
194630:[[
21892]],
194631:[[
21913]],
194632:[[
21931]],
194633:[[
21939]],
194634:[[
21954]],
194635:[[
22294]],
194636:[[
22022]],
194637:[[
22295]],
194638:[[
22097]],
194639:[[
22132]],
194640:[[
20999]],
194641:[[
22766]],
194642:[[
22478]],
194643:[[
22516]],
194644:[[
22541]],
194645:[[
22411]],
194646:[[
22578]],
194647:[[
22577]],
194648:[[
22700]],
194649:[[
136420]],
194650:[[
22770]],
194651:[[
22775]],
194652:[[
22790]],
194653:[[
22810]],
194654:[[
22818]],
194655:[[
22882]],
194656:[[
136872]],
194657:[[
136938]],
194658:[[
23020]],
194659:[[
23067]],
194660:[[
23079]],
194661:[[
23000]],
194662:[[
23142]],
194663:[[
14062]],
194664:[[
14076]],
194665:[[
23304]],
194666:[[
23358]],
194667:[[
23358]],
194668:[[
137672]],
194669:[[
23491]],
194670:[[
23512]],
194671:[[
23527]],
194672:[[
23539]],
194673:[[
138008]],
194674:[[
23551]],
194675:[[
23558]],
194676:[[
24403]],
194677:[[
23586]],
194678:[[
14209]],
194679:[[
23648]],
194680:[[
23662]],
194681:[[
23744]],
194682:[[
23693]],
194683:[[
138724]],
194684:[[
23875]],
194685:[[
138726]],
194686:[[
23918]],
194687:[[
23915]],
194688:[[
23932]],
194689:[[
24033]],
194690:[[
24034]],
194691:[[
14383]],
194692:[[
24061]],
194693:[[
24104]],
194694:[[
24125]],
194695:[[
24169]],
194696:[[
14434]],
194697:[[
139651]],
194698:[[
14460]],
194699:[[
24240]],
194700:[[
24243]],
194701:[[
24246]],
194702:[[
24266]],
194703:[[
172946]],
194704:[[
24318]],
194705:[[
140081]],
194706:[[
140081]],
194707:[[
33281]],
194708:[[
24354]],
194709:[[
24354]],
194710:[[
14535]],
194711:[[
144056]],
194712:[[
156122]],
194713:[[
24418]],
194714:[[
24427]],
194715:[[
14563]],
194716:[[
24474]],
194717:[[
24525]],
194718:[[
24535]],
194719:[[
24569]],
194720:[[
24705]],
194721:[[
14650]],
194722:[[
14620]],
194723:[[
24724]],
194724:[[
141012]],
194725:[[
24775]],
194726:[[
24904]],
194727:[[
24908]],
194728:[[
24910]],
194729:[[
24908]],
194730:[[
24954]],
194731:[[
24974]],
194732:[[
25010]],
194733:[[
24996]],
194734:[[
25007]],
194735:[[
25054]],
194736:[[
25074]],
194737:[[
25078]],
194738:[[
25104]],
194739:[[
25115]],
194740:[[
25181]],
194741:[[
25265]],
194742:[[
25300]],
194743:[[
25424]],
194744:[[
142092]],
194745:[[
25405]],
194746:[[
25340]],
194747:[[
25448]],
194748:[[
25475]],
194749:[[
25572]],
194750:[[
142321]],
194751:[[
25634]],
194752:[[
25541]],
194753:[[
25513]],
194754:[[
14894]],
194755:[[
25705]],
194756:[[
25726]],
194757:[[
25757]],
194758:[[
25719]],
194759:[[
14956]],
194760:[[
25935]],
194761:[[
25964]],
194762:[[
143370]],
194763:[[
26083]],
194764:[[
26360]],
194765:[[
26185]],
194766:[[
15129]],
194767:[[
26257]],
194768:[[
15112]],
194769:[[
15076]],
194770:[[
20882]],
194771:[[
20885]],
194772:[[
26368]],
194773:[[
26268]],
194774:[[
32941]],
194775:[[
17369]],
194776:[[
26391]],
194777:[[
26395]],
194778:[[
26401]],
194779:[[
26462]],
194780:[[
26451]],
194781:[[
144323]],
194782:[[
15177]],
194783:[[
26618]],
194784:[[
26501]],
194785:[[
26706]],
194786:[[
26757]],
194787:[[
144493]],
194788:[[
26766]],
194789:[[
26655]],
194790:[[
26900]],
194791:[[
15261]],
194792:[[
26946]],
194793:[[
27043]],
194794:[[
27114]],
194795:[[
27304]],
194796:[[
145059]],
194797:[[
27355]],
194798:[[
15384]],
194799:[[
27425]],
194800:[[
145575]],
194801:[[
27476]],
194802:[[
15438]],
194803:[[
27506]],
194804:[[
27551]],
194805:[[
27578]],
194806:[[
27579]],
194807:[[
146061]],
194808:[[
138507]],
194809:[[
146170]],
194810:[[
27726]],
194811:[[
146620]],
194812:[[
27839]],
194813:[[
27853]],
194814:[[
27751]],
194815:[[
27926]]},
6962 63744:{
63744:[[
35912]],
63745:[[
26356]],
63746:[[
36554]],
63747:[[
36040]],
63748:[[
28369]],
63749:[[
20018]],
63750:[[
21477]],
63751:[[
40860]],
63752:[[
40860]],
63753:[[
22865]],
63754:[[
37329]],
63755:[[
21895]],
63756:[[
22856]],
63757:[[
25078]],
63758:[[
30313]],
63759:[[
32645]],
63760:[[
34367]],
63761:[[
34746]],
63762:[[
35064]],
63763:[[
37007]],
63764:[[
27138]],
63765:[[
27931]],
63766:[[
28889]],
63767:[[
29662]],
63768:[[
33853]],
63769:[[
37226]],
63770:[[
39409]],
63771:[[
20098]],
63772:[[
21365]],
63773:[[
27396]],
63774:[[
29211]],
63775:[[
34349]],
63776:[[
40478]],
63777:[[
23888]],
63778:[[
28651]],
63779:[[
34253]],
63780:[[
35172]],
63781:[[
25289]],
63782:[[
33240]],
63783:[[
34847]],
63784:[[
24266]],
63785:[[
26391]],
63786:[[
28010]],
63787:[[
29436]],
63788:[[
37070]],
63789:[[
20358]],
63790:[[
20919]],
63791:[[
21214]],
63792:[[
25796]],
63793:[[
27347]],
63794:[[
29200]],
63795:[[
30439]],
63796:[[
32769]],
63797:[[
34310]],
63798:[[
34396]],
63799:[[
36335]],
63800:[[
38706]],
63801:[[
39791]],
63802:[[
40442]],
63803:[[
30860]],
63804:[[
31103]],
63805:[[
32160]],
63806:[[
33737]],
63807:[[
37636]],
63808:[[
40575]],
63809:[[
35542]],
63810:[[
22751]],
63811:[[
24324]],
63812:[[
31840]],
63813:[[
32894]],
63814:[[
29282]],
63815:[[
30922]],
63816:[[
36034]],
63817:[[
38647]],
63818:[[
22744]],
63819:[[
23650]],
63820:[[
27155]],
63821:[[
28122]],
63822:[[
28431]],
63823:[[
32047]],
63824:[[
32311]],
63825:[[
38475]],
63826:[[
21202]],
63827:[[
32907]],
63828:[[
20956]],
63829:[[
20940]],
63830:[[
31260]],
63831:[[
32190]],
63832:[[
33777]],
63833:[[
38517]],
63834:[[
35712]],
63835:[[
25295]],
63836:[[
27138]],
63837:[[
35582]],
63838:[[
20025]],
63839:[[
23527]],
63840:[[
24594]],
63841:[[
29575]],
63842:[[
30064]],
63843:[[
21271]],
63844:[[
30971]],
63845:[[
20415]],
63846:[[
24489]],
63847:[[
19981]],
63848:[[
27852]],
63849:[[
25976]],
63850:[[
32034]],
63851:[[
21443]],
63852:[[
22622]],
63853:[[
30465]],
63854:[[
33865]],
63855:[[
35498]],
63856:[[
27578]],
63857:[[
36784]],
63858:[[
27784]],
63859:[[
25342]],
63860:[[
33509]],
63861:[[
25504]],
63862:[[
30053]],
63863:[[
20142]],
63864:[[
20841]],
63865:[[
20937]],
63866:[[
26753]],
63867:[[
31975]],
63868:[[
33391]],
63869:[[
35538]],
63870:[[
37327]],
63871:[[
21237]],
63872:[[
21570]],
63873:[[
22899]],
63874:[[
24300]],
63875:[[
26053]],
63876:[[
28670]],
63877:[[
31018]],
63878:[[
38317]],
63879:[[
39530]],
63880:[[
40599]],
63881:[[
40654]],
63882:[[
21147]],
63883:[[
26310]],
63884:[[
27511]],
63885:[[
36706]],
63886:[[
24180]],
63887:[[
24976]],
63888:[[
25088]],
63889:[[
25754]],
63890:[[
28451]],
63891:[[
29001]],
63892:[[
29833]],
63893:[[
31178]],
63894:[[
32244]],
63895:[[
32879]],
63896:[[
36646]],
63897:[[
34030]],
63898:[[
36899]],
63899:[[
37706]],
63900:[[
21015]],
63901:[[
21155]],
63902:[[
21693]],
63903:[[
28872]],
63904:[[
35010]],
63905:[[
35498]],
63906:[[
24265]],
63907:[[
24565]],
63908:[[
25467]],
63909:[[
27566]],
63910:[[
31806]],
63911:[[
29557]],
63912:[[
20196]],
63913:[[
22265]],
63914:[[
23527]],
63915:[[
23994]],
63916:[[
24604]],
63917:[[
29618]],
63918:[[
29801]],
63919:[[
32666]],
63920:[[
32838]],
63921:[[
37428]],
63922:[[
38646]],
63923:[[
38728]],
63924:[[
38936]],
63925:[[
20363]],
63926:[[
31150]],
63927:[[
37300]],
63928:[[
38584]],
63929:[[
24801]],
63930:[[
20102]],
63931:[[
20698]],
63932:[[
23534]],
63933:[[
23615]],
63934:[[
26009]],
63935:[[
27138]],
63936:[[
29134]],
63937:[[
30274]],
63938:[[
34044]],
63939:[[
36988]],
63940:[[
40845]],
63941:[[
26248]],
63942:[[
38446]],
63943:[[
21129]],
63944:[[
26491]],
63945:[[
26611]],
63946:[[
27969]],
63947:[[
28316]],
63948:[[
29705]],
63949:[[
30041]],
63950:[[
30827]],
63951:[[
32016]],
63952:[[
39006]],
63953:[[
20845]],
63954:[[
25134]],
63955:[[
38520]],
63956:[[
20523]],
63957:[[
23833]],
63958:[[
28138]],
63959:[[
36650]],
63960:[[
24459]],
63961:[[
24900]],
63962:[[
26647]],
63963:[[
29575]],
63964:[[
38534]],
63965:[[
21033]],
63966:[[
21519]],
63967:[[
23653]],
63968:[[
26131]],
63969:[[
26446]],
63970:[[
26792]],
63971:[[
27877]],
63972:[[
29702]],
63973:[[
30178]],
63974:[[
32633]],
63975:[[
35023]],
63976:[[
35041]],
63977:[[
37324]],
63978:[[
38626]],
63979:[[
21311]],
63980:[[
28346]],
63981:[[
21533]],
63982:[[
29136]],
63983:[[
29848]],
63984:[[
34298]],
63985:[[
38563]],
63986:[[
40023]],
63987:[[
40607]],
63988:[[
26519]],
63989:[[
28107]],
63990:[[
33256]],
63991:[[
31435]],
63992:[[
31520]],
63993:[[
31890]],
63994:[[
29376]],
63995:[[
28825]],
63996:[[
35672]],
63997:[[
20160]],
63998:[[
33590]],
63999:[[
21050]],
194816:[[
27966]],
194817:[[
28023]],
194818:[[
27969]],
194819:[[
28009]],
194820:[[
28024]],
194821:[[
28037]],
194822:[[
146718]],
194823:[[
27956]],
194824:[[
28207]],
194825:[[
28270]],
194826:[[
15667]],
194827:[[
28363]],
194828:[[
28359]],
194829:[[
147153]],
194830:[[
28153]],
194831:[[
28526]],
194832:[[
147294]],
194833:[[
147342]],
194834:[[
28614]],
194835:[[
28729]],
194836:[[
28702]],
194837:[[
28699]],
194838:[[
15766]],
194839:[[
28746]],
194840:[[
28797]],
194841:[[
28791]],
194842:[[
28845]],
194843:[[
132389]],
194844:[[
28997]],
194845:[[
148067]],
194846:[[
29084]],
194847:[[
148395]],
194848:[[
29224]],
194849:[[
29237]],
194850:[[
29264]],
194851:[[
149000]],
194852:[[
29312]],
194853:[[
29333]],
194854:[[
149301]],
194855:[[
149524]],
194856:[[
29562]],
194857:[[
29579]],
194858:[[
16044]],
194859:[[
29605]],
194860:[[
16056]],
194861:[[
16056]],
194862:[[
29767]],
194863:[[
29788]],
194864:[[
29809]],
194865:[[
29829]],
194866:[[
29898]],
194867:[[
16155]],
194868:[[
29988]],
194869:[[
150582]],
194870:[[
30014]],
194871:[[
150674]],
194872:[[
30064]],
194873:[[
139679]],
194874:[[
30224]],
194875:[[
151457]],
194876:[[
151480]],
194877:[[
151620]],
194878:[[
16380]],
194879:[[
16392]],
194880:[[
30452]],
194881:[[
151795]],
194882:[[
151794]],
194883:[[
151833]],
194884:[[
151859]],
194885:[[
30494]],
194886:[[
30495]],
194887:[[
30495]],
194888:[[
30538]],
194889:[[
16441]],
194890:[[
30603]],
194891:[[
16454]],
194892:[[
16534]],
194893:[[
152605]],
194894:[[
30798]],
194895:[[
30860]],
194896:[[
30924]],
194897:[[
16611]],
194898:[[
153126]],
194899:[[
31062]],
194900:[[
153242]],
194901:[[
153285]],
194902:[[
31119]],
194903:[[
31211]],
194904:[[
16687]],
194905:[[
31296]],
194906:[[
31306]],
194907:[[
31311]],
194908:[[
153980]],
194909:[[
154279]],
194910:[[
154279]],
194911:[[
31470]],
194912:[[
16898]],
194913:[[
154539]],
194914:[[
31686]],
194915:[[
31689]],
194916:[[
16935]],
194917:[[
154752]],
194918:[[
31954]],
194919:[[
17056]],
194920:[[
31976]],
194921:[[
31971]],
194922:[[
32000]],
194923:[[
155526]],
194924:[[
32099]],
194925:[[
17153]],
194926:[[
32199]],
194927:[[
32258]],
194928:[[
32325]],
194929:[[
17204]],
194930:[[
156200]],
194931:[[
156231]],
194932:[[
17241]],
194933:[[
156377]],
194934:[[
32634]],
194935:[[
156478]],
194936:[[
32661]],
194937:[[
32762]],
194938:[[
32773]],
194939:[[
156890]],
194940:[[
156963]],
194941:[[
32864]],
194942:[[
157096]],
194943:[[
32880]],
194944:[[
144223]],
194945:[[
17365]],
194946:[[
32946]],
194947:[[
33027]],
194948:[[
17419]],
194949:[[
33086]],
194950:[[
23221]],
194951:[[
157607]],
194952:[[
157621]],
194953:[[
144275]],
194954:[[
144284]],
194955:[[
33281]],
194956:[[
33284]],
194957:[[
36766]],
194958:[[
17515]],
194959:[[
33425]],
194960:[[
33419]],
194961:[[
33437]],
194962:[[
21171]],
194963:[[
33457]],
194964:[[
33459]],
194965:[[
33469]],
194966:[[
33510]],
194967:[[
158524]],
194968:[[
33509]],
194969:[[
33565]],
194970:[[
33635]],
194971:[[
33709]],
194972:[[
33571]],
194973:[[
33725]],
194974:[[
33767]],
194975:[[
33879]],
194976:[[
33619]],
194977:[[
33738]],
194978:[[
33740]],
194979:[[
33756]],
194980:[[
158774]],
194981:[[
159083]],
194982:[[
158933]],
194983:[[
17707]],
194984:[[
34033]],
194985:[[
34035]],
194986:[[
34070]],
194987:[[
160714]],
194988:[[
34148]],
194989:[[
159532]],
194990:[[
17757]],
194991:[[
17761]],
194992:[[
159665]],
194993:[[
159954]],
194994:[[
17771]],
194995:[[
34384]],
194996:[[
34396]],
194997:[[
34407]],
194998:[[
34409]],
194999:[[
34473]],
195000:[[
34440]],
195001:[[
34574]],
195002:[[
34530]],
195003:[[
34681]],
195004:[[
34600]],
195005:[[
34667]],
195006:[[
34694]],
195007:[[
17879]],
195008:[[
34785]],
195009:[[
34817]],
195010:[[
17913]],
195011:[[
34912]],
195012:[[
34915]],
195013:[[
161383]],
195014:[[
35031]],
195015:[[
35038]],
195016:[[
17973]],
195017:[[
35066]],
195018:[[
13499]],
195019:[[
161966]],
195020:[[
162150]],
195021:[[
18110]],
195022:[[
18119]],
195023:[[
35488]],
195024:[[
35565]],
195025:[[
35722]],
195026:[[
35925]],
195027:[[
162984]],
195028:[[
36011]],
195029:[[
36033]],
195030:[[
36123]],
195031:[[
36215]],
195032:[[
163631]],
195033:[[
133124]],
195034:[[
36299]],
195035:[[
36284]],
195036:[[
36336]],
195037:[[
133342]],
195038:[[
36564]],
195039:[[
36664]],
195040:[[
165330]],
195041:[[
165357]],
195042:[[
37012]],
195043:[[
37105]],
195044:[[
37137]],
195045:[[
165678]],
195046:[[
37147]],
195047:[[
37432]],
195048:[[
37591]],
195049:[[
37592]],
195050:[[
37500]],
195051:[[
37881]],
195052:[[
37909]],
195053:[[
166906]],
195054:[[
38283]],
195055:[[
18837]],
195056:[[
38327]],
195057:[[
167287]],
195058:[[
18918]],
195059:[[
38595]],
195060:[[
23986]],
195061:[[
38691]],
195062:[[
168261]],
195063:[[
168474]],
195064:[[
19054]],
195065:[[
19062]],
195066:[[
38880]],
195067:[[
168970]],
195068:[[
19122]],
195069:[[
169110]],
195070:[[
38923]],
195071:[[
38923]]},
6963 64000:{
64000:[[
20999]],
64001:[[
24230]],
64002:[[
25299]],
64003:[[
31958]],
64004:[[
23429]],
64005:[[
27934]],
64006:[[
26292]],
64007:[[
36667]],
64008:[[
34892]],
64009:[[
38477]],
64010:[[
35211]],
64011:[[
24275]],
64012:[[
20800]],
64013:[[
21952]],
64016:[[
22618]],
64018:[[
26228]],
64021:[[
20958]],
64022:[[
29482]],
64023:[[
30410]],
64024:[[
31036]],
64025:[[
31070]],
64026:[[
31077]],
64027:[[
31119]],
64028:[[
38742]],
64029:[[
31934]],
64030:[[
32701]],
64032:[[
34322]],
64034:[[
35576]],
64037:[[
36920]],
64038:[[
37117]],
64042:[[
39151]],
64043:[[
39164]],
64044:[[
39208]],
64045:[[
40372]],
64046:[[
37086]],
64047:[[
38583]],
64048:[[
20398]],
64049:[[
20711]],
64050:[[
20813]],
64051:[[
21193]],
64052:[[
21220]],
64053:[[
21329]],
64054:[[
21917]],
64055:[[
22022]],
64056:[[
22120]],
64057:[[
22592]],
64058:[[
22696]],
64059:[[
23652]],
64060:[[
23662]],
64061:[[
24724]],
64062:[[
24936]],
64063:[[
24974]],
64064:[[
25074]],
64065:[[
25935]],
64066:[[
26082]],
64067:[[
26257]],
64068:[[
26757]],
64069:[[
28023]],
64070:[[
28186]],
64071:[[
28450]],
64072:[[
29038]],
64073:[[
29227]],
64074:[[
29730]],
64075:[[
30865]],
64076:[[
31038]],
64077:[[
31049]],
64078:[[
31048]],
64079:[[
31056]],
64080:[[
31062]],
64081:[[
31069]],
64082:[[
31117]],
64083:[[
31118]],
64084:[[
31296]],
64085:[[
31361]],
64086:[[
31680]],
64087:[[
32244]],
64088:[[
32265]],
64089:[[
32321]],
64090:[[
32626]],
64091:[[
32773]],
64092:[[
33261]],
64093:[[
33401]],
64094:[[
33401]],
64095:[[
33879]],
64096:[[
35088]],
64097:[[
35222]],
64098:[[
35585]],
64099:[[
35641]],
64100:[[
36051]],
64101:[[
36104]],
64102:[[
36790]],
64103:[[
36920]],
64104:[[
38627]],
64105:[[
38911]],
64106:[[
38971]],
64107:[[
24693]],
64108:[[
148206]],
64109:[[
33304]],
64112:[[
20006]],
64113:[[
20917]],
64114:[[
20840]],
64115:[[
20352]],
64116:[[
20805]],
64117:[[
20864]],
64118:[[
21191]],
64119:[[
21242]],
64120:[[
21917]],
64121:[[
21845]],
64122:[[
21913]],
64123:[[
21986]],
64124:[[
22618]],
64125:[[
22707]],
64126:[[
22852]],
64127:[[
22868]],
64128:[[
23138]],
64129:[[
23336]],
64130:[[
24274]],
64131:[[
24281]],
64132:[[
24425]],
64133:[[
24493]],
64134:[[
24792]],
64135:[[
24910]],
64136:[[
24840]],
64137:[[
24974]],
64138:[[
24928]],
64139:[[
25074]],
64140:[[
25140]],
64141:[[
25540]],
64142:[[
25628]],
64143:[[
25682]],
64144:[[
25942]],
64145:[[
26228]],
64146:[[
26391]],
64147:[[
26395]],
64148:[[
26454]],
64149:[[
27513]],
64150:[[
27578]],
64151:[[
27969]],
64152:[[
28379]],
64153:[[
28363]],
64154:[[
28450]],
64155:[[
28702]],
64156:[[
29038]],
64157:[[
30631]],
64158:[[
29237]],
64159:[[
29359]],
64160:[[
29482]],
64161:[[
29809]],
64162:[[
29958]],
64163:[[
30011]],
64164:[[
30237]],
64165:[[
30239]],
64166:[[
30410]],
64167:[[
30427]],
64168:[[
30452]],
64169:[[
30538]],
64170:[[
30528]],
64171:[[
30924]],
64172:[[
31409]],
64173:[[
31680]],
64174:[[
31867]],
64175:[[
32091]],
64176:[[
32244]],
64177:[[
32574]],
64178:[[
32773]],
64179:[[
33618]],
64180:[[
33775]],
64181:[[
34681]],
64182:[[
35137]],
64183:[[
35206]],
64184:[[
35222]],
64185:[[
35519]],
64186:[[
35576]],
64187:[[
35531]],
64188:[[
35585]],
64189:[[
35582]],
64190:[[
35565]],
64191:[[
35641]],
64192:[[
35722]],
64193:[[
36104]],
64194:[[
36664]],
64195:[[
36978]],
64196:[[
37273]],
64197:[[
37494]],
64198:[[
38524]],
64199:[[
38627]],
64200:[[
38742]],
64201:[[
38875]],
64202:[[
38911]],
64203:[[
38923]],
64204:[[
38971]],
64205:[[
39698]],
64206:[[
40860]],
64207:[[
141386]],
64208:[[
141380]],
64209:[[
144341]],
64210:[[
15261]],
64211:[[
16408]],
64212:[[
16441]],
64213:[[
152137]],
64214:[[
154832]],
64215:[[
163539]],
64216:[[
40771]],
64217:[[
40846]],
195072:[[
38953]],
195073:[[
169398]],
195074:[[
39138]],
195075:[[
19251]],
195076:[[
39209]],
195077:[[
39335]],
195078:[[
39362]],
195079:[[
39422]],
195080:[[
19406]],
195081:[[
170800]],
195082:[[
39698]],
195083:[[
40000]],
195084:[[
40189]],
195085:[[
19662]],
195086:[[
19693]],
195087:[[
40295]],
195088:[[
172238]],
195089:[[
19704]],
195090:[[
172293]],
195091:[[
172558]],
195092:[[
172689]],
195093:[[
40635]],
195094:[[
19798]],
195095:[[
40697]],
195096:[[
40702]],
195097:[[
40709]],
195098:[[
40719]],
195099:[[
40726]],
195100:[[
40763]],
195101:[[
173568]]},
6964 64256:{
64256:[[
102,
102],
256],
64257:[[
102,
105],
256],
64258:[[
102,
108],
256],
64259:[[
102,
102,
105],
256],
64260:[[
102,
102,
108],
256],
64261:[[
383,
116],
256],
64262:[[
115,
116],
256],
64275:[[
1396,
1398],
256],
64276:[[
1396,
1381],
256],
64277:[[
1396,
1387],
256],
64278:[[
1406,
1398],
256],
64279:[[
1396,
1389],
256],
64285:[[
1497,
1460],
512],
64286:[,
26],
64287:[[
1522,
1463],
512],
64288:[[
1506],
256],
64289:[[
1488],
256],
64290:[[
1491],
256],
64291:[[
1492],
256],
64292:[[
1499],
256],
64293:[[
1500],
256],
64294:[[
1501],
256],
64295:[[
1512],
256],
64296:[[
1514],
256],
64297:[[
43],
256],
64298:[[
1513,
1473],
512],
64299:[[
1513,
1474],
512],
64300:[[
64329,
1473],
512],
64301:[[
64329,
1474],
512],
64302:[[
1488,
1463],
512],
64303:[[
1488,
1464],
512],
64304:[[
1488,
1468],
512],
64305:[[
1489,
1468],
512],
64306:[[
1490,
1468],
512],
64307:[[
1491,
1468],
512],
64308:[[
1492,
1468],
512],
64309:[[
1493,
1468],
512],
64310:[[
1494,
1468],
512],
64312:[[
1496,
1468],
512],
64313:[[
1497,
1468],
512],
64314:[[
1498,
1468],
512],
64315:[[
1499,
1468],
512],
64316:[[
1500,
1468],
512],
64318:[[
1502,
1468],
512],
64320:[[
1504,
1468],
512],
64321:[[
1505,
1468],
512],
64323:[[
1507,
1468],
512],
64324:[[
1508,
1468],
512],
64326:[[
1510,
1468],
512],
64327:[[
1511,
1468],
512],
64328:[[
1512,
1468],
512],
64329:[[
1513,
1468],
512],
64330:[[
1514,
1468],
512],
64331:[[
1493,
1465],
512],
64332:[[
1489,
1471],
512],
64333:[[
1499,
1471],
512],
64334:[[
1508,
1471],
512],
64335:[[
1488,
1500],
256],
64336:[[
1649],
256],
64337:[[
1649],
256],
64338:[[
1659],
256],
64339:[[
1659],
256],
64340:[[
1659],
256],
64341:[[
1659],
256],
64342:[[
1662],
256],
64343:[[
1662],
256],
64344:[[
1662],
256],
64345:[[
1662],
256],
64346:[[
1664],
256],
64347:[[
1664],
256],
64348:[[
1664],
256],
64349:[[
1664],
256],
64350:[[
1658],
256],
64351:[[
1658],
256],
64352:[[
1658],
256],
64353:[[
1658],
256],
64354:[[
1663],
256],
64355:[[
1663],
256],
64356:[[
1663],
256],
64357:[[
1663],
256],
64358:[[
1657],
256],
64359:[[
1657],
256],
64360:[[
1657],
256],
64361:[[
1657],
256],
64362:[[
1700],
256],
64363:[[
1700],
256],
64364:[[
1700],
256],
64365:[[
1700],
256],
64366:[[
1702],
256],
64367:[[
1702],
256],
64368:[[
1702],
256],
64369:[[
1702],
256],
64370:[[
1668],
256],
64371:[[
1668],
256],
64372:[[
1668],
256],
64373:[[
1668],
256],
64374:[[
1667],
256],
64375:[[
1667],
256],
64376:[[
1667],
256],
64377:[[
1667],
256],
64378:[[
1670],
256],
64379:[[
1670],
256],
64380:[[
1670],
256],
64381:[[
1670],
256],
64382:[[
1671],
256],
64383:[[
1671],
256],
64384:[[
1671],
256],
64385:[[
1671],
256],
64386:[[
1677],
256],
64387:[[
1677],
256],
64388:[[
1676],
256],
64389:[[
1676],
256],
64390:[[
1678],
256],
64391:[[
1678],
256],
64392:[[
1672],
256],
64393:[[
1672],
256],
64394:[[
1688],
256],
64395:[[
1688],
256],
64396:[[
1681],
256],
64397:[[
1681],
256],
64398:[[
1705],
256],
64399:[[
1705],
256],
64400:[[
1705],
256],
64401:[[
1705],
256],
64402:[[
1711],
256],
64403:[[
1711],
256],
64404:[[
1711],
256],
64405:[[
1711],
256],
64406:[[
1715],
256],
64407:[[
1715],
256],
64408:[[
1715],
256],
64409:[[
1715],
256],
64410:[[
1713],
256],
64411:[[
1713],
256],
64412:[[
1713],
256],
64413:[[
1713],
256],
64414:[[
1722],
256],
64415:[[
1722],
256],
64416:[[
1723],
256],
64417:[[
1723],
256],
64418:[[
1723],
256],
64419:[[
1723],
256],
64420:[[
1728],
256],
64421:[[
1728],
256],
64422:[[
1729],
256],
64423:[[
1729],
256],
64424:[[
1729],
256],
64425:[[
1729],
256],
64426:[[
1726],
256],
64427:[[
1726],
256],
64428:[[
1726],
256],
64429:[[
1726],
256],
64430:[[
1746],
256],
64431:[[
1746],
256],
64432:[[
1747],
256],
64433:[[
1747],
256],
64467:[[
1709],
256],
64468:[[
1709],
256],
64469:[[
1709],
256],
64470:[[
1709],
256],
64471:[[
1735],
256],
64472:[[
1735],
256],
64473:[[
1734],
256],
64474:[[
1734],
256],
64475:[[
1736],
256],
64476:[[
1736],
256],
64477:[[
1655],
256],
64478:[[
1739],
256],
64479:[[
1739],
256],
64480:[[
1733],
256],
64481:[[
1733],
256],
64482:[[
1737],
256],
64483:[[
1737],
256],
64484:[[
1744],
256],
64485:[[
1744],
256],
64486:[[
1744],
256],
64487:[[
1744],
256],
64488:[[
1609],
256],
64489:[[
1609],
256],
64490:[[
1574,
1575],
256],
64491:[[
1574,
1575],
256],
64492:[[
1574,
1749],
256],
64493:[[
1574,
1749],
256],
64494:[[
1574,
1608],
256],
64495:[[
1574,
1608],
256],
64496:[[
1574,
1735],
256],
64497:[[
1574,
1735],
256],
64498:[[
1574,
1734],
256],
64499:[[
1574,
1734],
256],
64500:[[
1574,
1736],
256],
64501:[[
1574,
1736],
256],
64502:[[
1574,
1744],
256],
64503:[[
1574,
1744],
256],
64504:[[
1574,
1744],
256],
64505:[[
1574,
1609],
256],
64506:[[
1574,
1609],
256],
64507:[[
1574,
1609],
256],
64508:[[
1740],
256],
64509:[[
1740],
256],
64510:[[
1740],
256],
64511:[[
1740],
256]},
6965 64512:{
64512:[[
1574,
1580],
256],
64513:[[
1574,
1581],
256],
64514:[[
1574,
1605],
256],
64515:[[
1574,
1609],
256],
64516:[[
1574,
1610],
256],
64517:[[
1576,
1580],
256],
64518:[[
1576,
1581],
256],
64519:[[
1576,
1582],
256],
64520:[[
1576,
1605],
256],
64521:[[
1576,
1609],
256],
64522:[[
1576,
1610],
256],
64523:[[
1578,
1580],
256],
64524:[[
1578,
1581],
256],
64525:[[
1578,
1582],
256],
64526:[[
1578,
1605],
256],
64527:[[
1578,
1609],
256],
64528:[[
1578,
1610],
256],
64529:[[
1579,
1580],
256],
64530:[[
1579,
1605],
256],
64531:[[
1579,
1609],
256],
64532:[[
1579,
1610],
256],
64533:[[
1580,
1581],
256],
64534:[[
1580,
1605],
256],
64535:[[
1581,
1580],
256],
64536:[[
1581,
1605],
256],
64537:[[
1582,
1580],
256],
64538:[[
1582,
1581],
256],
64539:[[
1582,
1605],
256],
64540:[[
1587,
1580],
256],
64541:[[
1587,
1581],
256],
64542:[[
1587,
1582],
256],
64543:[[
1587,
1605],
256],
64544:[[
1589,
1581],
256],
64545:[[
1589,
1605],
256],
64546:[[
1590,
1580],
256],
64547:[[
1590,
1581],
256],
64548:[[
1590,
1582],
256],
64549:[[
1590,
1605],
256],
64550:[[
1591,
1581],
256],
64551:[[
1591,
1605],
256],
64552:[[
1592,
1605],
256],
64553:[[
1593,
1580],
256],
64554:[[
1593,
1605],
256],
64555:[[
1594,
1580],
256],
64556:[[
1594,
1605],
256],
64557:[[
1601,
1580],
256],
64558:[[
1601,
1581],
256],
64559:[[
1601,
1582],
256],
64560:[[
1601,
1605],
256],
64561:[[
1601,
1609],
256],
64562:[[
1601,
1610],
256],
64563:[[
1602,
1581],
256],
64564:[[
1602,
1605],
256],
64565:[[
1602,
1609],
256],
64566:[[
1602,
1610],
256],
64567:[[
1603,
1575],
256],
64568:[[
1603,
1580],
256],
64569:[[
1603,
1581],
256],
64570:[[
1603,
1582],
256],
64571:[[
1603,
1604],
256],
64572:[[
1603,
1605],
256],
64573:[[
1603,
1609],
256],
64574:[[
1603,
1610],
256],
64575:[[
1604,
1580],
256],
64576:[[
1604,
1581],
256],
64577:[[
1604,
1582],
256],
64578:[[
1604,
1605],
256],
64579:[[
1604,
1609],
256],
64580:[[
1604,
1610],
256],
64581:[[
1605,
1580],
256],
64582:[[
1605,
1581],
256],
64583:[[
1605,
1582],
256],
64584:[[
1605,
1605],
256],
64585:[[
1605,
1609],
256],
64586:[[
1605,
1610],
256],
64587:[[
1606,
1580],
256],
64588:[[
1606,
1581],
256],
64589:[[
1606,
1582],
256],
64590:[[
1606,
1605],
256],
64591:[[
1606,
1609],
256],
64592:[[
1606,
1610],
256],
64593:[[
1607,
1580],
256],
64594:[[
1607,
1605],
256],
64595:[[
1607,
1609],
256],
64596:[[
1607,
1610],
256],
64597:[[
1610,
1580],
256],
64598:[[
1610,
1581],
256],
64599:[[
1610,
1582],
256],
64600:[[
1610,
1605],
256],
64601:[[
1610,
1609],
256],
64602:[[
1610,
1610],
256],
64603:[[
1584,
1648],
256],
64604:[[
1585,
1648],
256],
64605:[[
1609,
1648],
256],
64606:[[
32,
1612,
1617],
256],
64607:[[
32,
1613,
1617],
256],
64608:[[
32,
1614,
1617],
256],
64609:[[
32,
1615,
1617],
256],
64610:[[
32,
1616,
1617],
256],
64611:[[
32,
1617,
1648],
256],
64612:[[
1574,
1585],
256],
64613:[[
1574,
1586],
256],
64614:[[
1574,
1605],
256],
64615:[[
1574,
1606],
256],
64616:[[
1574,
1609],
256],
64617:[[
1574,
1610],
256],
64618:[[
1576,
1585],
256],
64619:[[
1576,
1586],
256],
64620:[[
1576,
1605],
256],
64621:[[
1576,
1606],
256],
64622:[[
1576,
1609],
256],
64623:[[
1576,
1610],
256],
64624:[[
1578,
1585],
256],
64625:[[
1578,
1586],
256],
64626:[[
1578,
1605],
256],
64627:[[
1578,
1606],
256],
64628:[[
1578,
1609],
256],
64629:[[
1578,
1610],
256],
64630:[[
1579,
1585],
256],
64631:[[
1579,
1586],
256],
64632:[[
1579,
1605],
256],
64633:[[
1579,
1606],
256],
64634:[[
1579,
1609],
256],
64635:[[
1579,
1610],
256],
64636:[[
1601,
1609],
256],
64637:[[
1601,
1610],
256],
64638:[[
1602,
1609],
256],
64639:[[
1602,
1610],
256],
64640:[[
1603,
1575],
256],
64641:[[
1603,
1604],
256],
64642:[[
1603,
1605],
256],
64643:[[
1603,
1609],
256],
64644:[[
1603,
1610],
256],
64645:[[
1604,
1605],
256],
64646:[[
1604,
1609],
256],
64647:[[
1604,
1610],
256],
64648:[[
1605,
1575],
256],
64649:[[
1605,
1605],
256],
64650:[[
1606,
1585],
256],
64651:[[
1606,
1586],
256],
64652:[[
1606,
1605],
256],
64653:[[
1606,
1606],
256],
64654:[[
1606,
1609],
256],
64655:[[
1606,
1610],
256],
64656:[[
1609,
1648],
256],
64657:[[
1610,
1585],
256],
64658:[[
1610,
1586],
256],
64659:[[
1610,
1605],
256],
64660:[[
1610,
1606],
256],
64661:[[
1610,
1609],
256],
64662:[[
1610,
1610],
256],
64663:[[
1574,
1580],
256],
64664:[[
1574,
1581],
256],
64665:[[
1574,
1582],
256],
64666:[[
1574,
1605],
256],
64667:[[
1574,
1607],
256],
64668:[[
1576,
1580],
256],
64669:[[
1576,
1581],
256],
64670:[[
1576,
1582],
256],
64671:[[
1576,
1605],
256],
64672:[[
1576,
1607],
256],
64673:[[
1578,
1580],
256],
64674:[[
1578,
1581],
256],
64675:[[
1578,
1582],
256],
64676:[[
1578,
1605],
256],
64677:[[
1578,
1607],
256],
64678:[[
1579,
1605],
256],
64679:[[
1580,
1581],
256],
64680:[[
1580,
1605],
256],
64681:[[
1581,
1580],
256],
64682:[[
1581,
1605],
256],
64683:[[
1582,
1580],
256],
64684:[[
1582,
1605],
256],
64685:[[
1587,
1580],
256],
64686:[[
1587,
1581],
256],
64687:[[
1587,
1582],
256],
64688:[[
1587,
1605],
256],
64689:[[
1589,
1581],
256],
64690:[[
1589,
1582],
256],
64691:[[
1589,
1605],
256],
64692:[[
1590,
1580],
256],
64693:[[
1590,
1581],
256],
64694:[[
1590,
1582],
256],
64695:[[
1590,
1605],
256],
64696:[[
1591,
1581],
256],
64697:[[
1592,
1605],
256],
64698:[[
1593,
1580],
256],
64699:[[
1593,
1605],
256],
64700:[[
1594,
1580],
256],
64701:[[
1594,
1605],
256],
64702:[[
1601,
1580],
256],
64703:[[
1601,
1581],
256],
64704:[[
1601,
1582],
256],
64705:[[
1601,
1605],
256],
64706:[[
1602,
1581],
256],
64707:[[
1602,
1605],
256],
64708:[[
1603,
1580],
256],
64709:[[
1603,
1581],
256],
64710:[[
1603,
1582],
256],
64711:[[
1603,
1604],
256],
64712:[[
1603,
1605],
256],
64713:[[
1604,
1580],
256],
64714:[[
1604,
1581],
256],
64715:[[
1604,
1582],
256],
64716:[[
1604,
1605],
256],
64717:[[
1604,
1607],
256],
64718:[[
1605,
1580],
256],
64719:[[
1605,
1581],
256],
64720:[[
1605,
1582],
256],
64721:[[
1605,
1605],
256],
64722:[[
1606,
1580],
256],
64723:[[
1606,
1581],
256],
64724:[[
1606,
1582],
256],
64725:[[
1606,
1605],
256],
64726:[[
1606,
1607],
256],
64727:[[
1607,
1580],
256],
64728:[[
1607,
1605],
256],
64729:[[
1607,
1648],
256],
64730:[[
1610,
1580],
256],
64731:[[
1610,
1581],
256],
64732:[[
1610,
1582],
256],
64733:[[
1610,
1605],
256],
64734:[[
1610,
1607],
256],
64735:[[
1574,
1605],
256],
64736:[[
1574,
1607],
256],
64737:[[
1576,
1605],
256],
64738:[[
1576,
1607],
256],
64739:[[
1578,
1605],
256],
64740:[[
1578,
1607],
256],
64741:[[
1579,
1605],
256],
64742:[[
1579,
1607],
256],
64743:[[
1587,
1605],
256],
64744:[[
1587,
1607],
256],
64745:[[
1588,
1605],
256],
64746:[[
1588,
1607],
256],
64747:[[
1603,
1604],
256],
64748:[[
1603,
1605],
256],
64749:[[
1604,
1605],
256],
64750:[[
1606,
1605],
256],
64751:[[
1606,
1607],
256],
64752:[[
1610,
1605],
256],
64753:[[
1610,
1607],
256],
64754:[[
1600,
1614,
1617],
256],
64755:[[
1600,
1615,
1617],
256],
64756:[[
1600,
1616,
1617],
256],
64757:[[
1591,
1609],
256],
64758:[[
1591,
1610],
256],
64759:[[
1593,
1609],
256],
64760:[[
1593,
1610],
256],
64761:[[
1594,
1609],
256],
64762:[[
1594,
1610],
256],
64763:[[
1587,
1609],
256],
64764:[[
1587,
1610],
256],
64765:[[
1588,
1609],
256],
64766:[[
1588,
1610],
256],
64767:[[
1581,
1609],
256]},
6966 64768:{
64768:[[
1581,
1610],
256],
64769:[[
1580,
1609],
256],
64770:[[
1580,
1610],
256],
64771:[[
1582,
1609],
256],
64772:[[
1582,
1610],
256],
64773:[[
1589,
1609],
256],
64774:[[
1589,
1610],
256],
64775:[[
1590,
1609],
256],
64776:[[
1590,
1610],
256],
64777:[[
1588,
1580],
256],
64778:[[
1588,
1581],
256],
64779:[[
1588,
1582],
256],
64780:[[
1588,
1605],
256],
64781:[[
1588,
1585],
256],
64782:[[
1587,
1585],
256],
64783:[[
1589,
1585],
256],
64784:[[
1590,
1585],
256],
64785:[[
1591,
1609],
256],
64786:[[
1591,
1610],
256],
64787:[[
1593,
1609],
256],
64788:[[
1593,
1610],
256],
64789:[[
1594,
1609],
256],
64790:[[
1594,
1610],
256],
64791:[[
1587,
1609],
256],
64792:[[
1587,
1610],
256],
64793:[[
1588,
1609],
256],
64794:[[
1588,
1610],
256],
64795:[[
1581,
1609],
256],
64796:[[
1581,
1610],
256],
64797:[[
1580,
1609],
256],
64798:[[
1580,
1610],
256],
64799:[[
1582,
1609],
256],
64800:[[
1582,
1610],
256],
64801:[[
1589,
1609],
256],
64802:[[
1589,
1610],
256],
64803:[[
1590,
1609],
256],
64804:[[
1590,
1610],
256],
64805:[[
1588,
1580],
256],
64806:[[
1588,
1581],
256],
64807:[[
1588,
1582],
256],
64808:[[
1588,
1605],
256],
64809:[[
1588,
1585],
256],
64810:[[
1587,
1585],
256],
64811:[[
1589,
1585],
256],
64812:[[
1590,
1585],
256],
64813:[[
1588,
1580],
256],
64814:[[
1588,
1581],
256],
64815:[[
1588,
1582],
256],
64816:[[
1588,
1605],
256],
64817:[[
1587,
1607],
256],
64818:[[
1588,
1607],
256],
64819:[[
1591,
1605],
256],
64820:[[
1587,
1580],
256],
64821:[[
1587,
1581],
256],
64822:[[
1587,
1582],
256],
64823:[[
1588,
1580],
256],
64824:[[
1588,
1581],
256],
64825:[[
1588,
1582],
256],
64826:[[
1591,
1605],
256],
64827:[[
1592,
1605],
256],
64828:[[
1575,
1611],
256],
64829:[[
1575,
1611],
256],
64848:[[
1578,
1580,
1605],
256],
64849:[[
1578,
1581,
1580],
256],
64850:[[
1578,
1581,
1580],
256],
64851:[[
1578,
1581,
1605],
256],
64852:[[
1578,
1582,
1605],
256],
64853:[[
1578,
1605,
1580],
256],
64854:[[
1578,
1605,
1581],
256],
64855:[[
1578,
1605,
1582],
256],
64856:[[
1580,
1605,
1581],
256],
64857:[[
1580,
1605,
1581],
256],
64858:[[
1581,
1605,
1610],
256],
64859:[[
1581,
1605,
1609],
256],
64860:[[
1587,
1581,
1580],
256],
64861:[[
1587,
1580,
1581],
256],
64862:[[
1587,
1580,
1609],
256],
64863:[[
1587,
1605,
1581],
256],
64864:[[
1587,
1605,
1581],
256],
64865:[[
1587,
1605,
1580],
256],
64866:[[
1587,
1605,
1605],
256],
64867:[[
1587,
1605,
1605],
256],
64868:[[
1589,
1581,
1581],
256],
64869:[[
1589,
1581,
1581],
256],
64870:[[
1589,
1605,
1605],
256],
64871:[[
1588,
1581,
1605],
256],
64872:[[
1588,
1581,
1605],
256],
64873:[[
1588,
1580,
1610],
256],
64874:[[
1588,
1605,
1582],
256],
64875:[[
1588,
1605,
1582],
256],
64876:[[
1588,
1605,
1605],
256],
64877:[[
1588,
1605,
1605],
256],
64878:[[
1590,
1581,
1609],
256],
64879:[[
1590,
1582,
1605],
256],
64880:[[
1590,
1582,
1605],
256],
64881:[[
1591,
1605,
1581],
256],
64882:[[
1591,
1605,
1581],
256],
64883:[[
1591,
1605,
1605],
256],
64884:[[
1591,
1605,
1610],
256],
64885:[[
1593,
1580,
1605],
256],
64886:[[
1593,
1605,
1605],
256],
64887:[[
1593,
1605,
1605],
256],
64888:[[
1593,
1605,
1609],
256],
64889:[[
1594,
1605,
1605],
256],
64890:[[
1594,
1605,
1610],
256],
64891:[[
1594,
1605,
1609],
256],
64892:[[
1601,
1582,
1605],
256],
64893:[[
1601,
1582,
1605],
256],
64894:[[
1602,
1605,
1581],
256],
64895:[[
1602,
1605,
1605],
256],
64896:[[
1604,
1581,
1605],
256],
64897:[[
1604,
1581,
1610],
256],
64898:[[
1604,
1581,
1609],
256],
64899:[[
1604,
1580,
1580],
256],
64900:[[
1604,
1580,
1580],
256],
64901:[[
1604,
1582,
1605],
256],
64902:[[
1604,
1582,
1605],
256],
64903:[[
1604,
1605,
1581],
256],
64904:[[
1604,
1605,
1581],
256],
64905:[[
1605,
1581,
1580],
256],
64906:[[
1605,
1581,
1605],
256],
64907:[[
1605,
1581,
1610],
256],
64908:[[
1605,
1580,
1581],
256],
64909:[[
1605,
1580,
1605],
256],
64910:[[
1605,
1582,
1580],
256],
64911:[[
1605,
1582,
1605],
256],
64914:[[
1605,
1580,
1582],
256],
64915:[[
1607,
1605,
1580],
256],
64916:[[
1607,
1605,
1605],
256],
64917:[[
1606,
1581,
1605],
256],
64918:[[
1606,
1581,
1609],
256],
64919:[[
1606,
1580,
1605],
256],
64920:[[
1606,
1580,
1605],
256],
64921:[[
1606,
1580,
1609],
256],
64922:[[
1606,
1605,
1610],
256],
64923:[[
1606,
1605,
1609],
256],
64924:[[
1610,
1605,
1605],
256],
64925:[[
1610,
1605,
1605],
256],
64926:[[
1576,
1582,
1610],
256],
64927:[[
1578,
1580,
1610],
256],
64928:[[
1578,
1580,
1609],
256],
64929:[[
1578,
1582,
1610],
256],
64930:[[
1578,
1582,
1609],
256],
64931:[[
1578,
1605,
1610],
256],
64932:[[
1578,
1605,
1609],
256],
64933:[[
1580,
1605,
1610],
256],
64934:[[
1580,
1581,
1609],
256],
64935:[[
1580,
1605,
1609],
256],
64936:[[
1587,
1582,
1609],
256],
64937:[[
1589,
1581,
1610],
256],
64938:[[
1588,
1581,
1610],
256],
64939:[[
1590,
1581,
1610],
256],
64940:[[
1604,
1580,
1610],
256],
64941:[[
1604,
1605,
1610],
256],
64942:[[
1610,
1581,
1610],
256],
64943:[[
1610,
1580,
1610],
256],
64944:[[
1610,
1605,
1610],
256],
64945:[[
1605,
1605,
1610],
256],
64946:[[
1602,
1605,
1610],
256],
64947:[[
1606,
1581,
1610],
256],
64948:[[
1602,
1605,
1581],
256],
64949:[[
1604,
1581,
1605],
256],
64950:[[
1593,
1605,
1610],
256],
64951:[[
1603,
1605,
1610],
256],
64952:[[
1606,
1580,
1581],
256],
64953:[[
1605,
1582,
1610],
256],
64954:[[
1604,
1580,
1605],
256],
64955:[[
1603,
1605,
1605],
256],
64956:[[
1604,
1580,
1605],
256],
64957:[[
1606,
1580,
1581],
256],
64958:[[
1580,
1581,
1610],
256],
64959:[[
1581,
1580,
1610],
256],
64960:[[
1605,
1580,
1610],
256],
64961:[[
1601,
1605,
1610],
256],
64962:[[
1576,
1581,
1610],
256],
64963:[[
1603,
1605,
1605],
256],
64964:[[
1593,
1580,
1605],
256],
64965:[[
1589,
1605,
1605],
256],
64966:[[
1587,
1582,
1610],
256],
64967:[[
1606,
1580,
1610],
256],
65008:[[
1589,
1604,
1746],
256],
65009:[[
1602,
1604,
1746],
256],
65010:[[
1575,
1604,
1604,
1607],
256],
65011:[[
1575,
1603,
1576,
1585],
256],
65012:[[
1605,
1581,
1605,
1583],
256],
65013:[[
1589,
1604,
1593,
1605],
256],
65014:[[
1585,
1587,
1608,
1604],
256],
65015:[[
1593,
1604,
1610,
1607],
256],
65016:[[
1608,
1587,
1604,
1605],
256],
65017:[[
1589,
1604,
1609],
256],
65018:[[
1589,
1604,
1609,
32,
1575,
1604,
1604,
1607,
32,
1593,
1604,
1610,
1607,
32,
1608,
1587,
1604,
1605],
256],
65019:[[
1580,
1604,
32,
1580,
1604,
1575,
1604,
1607],
256],
65020:[[
1585,
1740,
1575,
1604],
256]},
6967 65024:{
65040:[[
44],
256],
65041:[[
12289],
256],
65042:[[
12290],
256],
65043:[[
58],
256],
65044:[[
59],
256],
65045:[[
33],
256],
65046:[[
63],
256],
65047:[[
12310],
256],
65048:[[
12311],
256],
65049:[[
8230],
256],
65056:[,
230],
65057:[,
230],
65058:[,
230],
65059:[,
230],
65060:[,
230],
65061:[,
230],
65062:[,
230],
65063:[,
220],
65064:[,
220],
65065:[,
220],
65066:[,
220],
65067:[,
220],
65068:[,
220],
65069:[,
220],
65072:[[
8229],
256],
65073:[[
8212],
256],
65074:[[
8211],
256],
65075:[[
95],
256],
65076:[[
95],
256],
65077:[[
40],
256],
65078:[[
41],
256],
65079:[[
123],
256],
65080:[[
125],
256],
65081:[[
12308],
256],
65082:[[
12309],
256],
65083:[[
12304],
256],
65084:[[
12305],
256],
65085:[[
12298],
256],
65086:[[
12299],
256],
65087:[[
12296],
256],
65088:[[
12297],
256],
65089:[[
12300],
256],
65090:[[
12301],
256],
65091:[[
12302],
256],
65092:[[
12303],
256],
65095:[[
91],
256],
65096:[[
93],
256],
65097:[[
8254],
256],
65098:[[
8254],
256],
65099:[[
8254],
256],
65100:[[
8254],
256],
65101:[[
95],
256],
65102:[[
95],
256],
65103:[[
95],
256],
65104:[[
44],
256],
65105:[[
12289],
256],
65106:[[
46],
256],
65108:[[
59],
256],
65109:[[
58],
256],
65110:[[
63],
256],
65111:[[
33],
256],
65112:[[
8212],
256],
65113:[[
40],
256],
65114:[[
41],
256],
65115:[[
123],
256],
65116:[[
125],
256],
65117:[[
12308],
256],
65118:[[
12309],
256],
65119:[[
35],
256],
65120:[[
38],
256],
65121:[[
42],
256],
65122:[[
43],
256],
65123:[[
45],
256],
65124:[[
60],
256],
65125:[[
62],
256],
65126:[[
61],
256],
65128:[[
92],
256],
65129:[[
36],
256],
65130:[[
37],
256],
65131:[[
64],
256],
65136:[[
32,
1611],
256],
65137:[[
1600,
1611],
256],
65138:[[
32,
1612],
256],
65140:[[
32,
1613],
256],
65142:[[
32,
1614],
256],
65143:[[
1600,
1614],
256],
65144:[[
32,
1615],
256],
65145:[[
1600,
1615],
256],
65146:[[
32,
1616],
256],
65147:[[
1600,
1616],
256],
65148:[[
32,
1617],
256],
65149:[[
1600,
1617],
256],
65150:[[
32,
1618],
256],
65151:[[
1600,
1618],
256],
65152:[[
1569],
256],
65153:[[
1570],
256],
65154:[[
1570],
256],
65155:[[
1571],
256],
65156:[[
1571],
256],
65157:[[
1572],
256],
65158:[[
1572],
256],
65159:[[
1573],
256],
65160:[[
1573],
256],
65161:[[
1574],
256],
65162:[[
1574],
256],
65163:[[
1574],
256],
65164:[[
1574],
256],
65165:[[
1575],
256],
65166:[[
1575],
256],
65167:[[
1576],
256],
65168:[[
1576],
256],
65169:[[
1576],
256],
65170:[[
1576],
256],
65171:[[
1577],
256],
65172:[[
1577],
256],
65173:[[
1578],
256],
65174:[[
1578],
256],
65175:[[
1578],
256],
65176:[[
1578],
256],
65177:[[
1579],
256],
65178:[[
1579],
256],
65179:[[
1579],
256],
65180:[[
1579],
256],
65181:[[
1580],
256],
65182:[[
1580],
256],
65183:[[
1580],
256],
65184:[[
1580],
256],
65185:[[
1581],
256],
65186:[[
1581],
256],
65187:[[
1581],
256],
65188:[[
1581],
256],
65189:[[
1582],
256],
65190:[[
1582],
256],
65191:[[
1582],
256],
65192:[[
1582],
256],
65193:[[
1583],
256],
65194:[[
1583],
256],
65195:[[
1584],
256],
65196:[[
1584],
256],
65197:[[
1585],
256],
65198:[[
1585],
256],
65199:[[
1586],
256],
65200:[[
1586],
256],
65201:[[
1587],
256],
65202:[[
1587],
256],
65203:[[
1587],
256],
65204:[[
1587],
256],
65205:[[
1588],
256],
65206:[[
1588],
256],
65207:[[
1588],
256],
65208:[[
1588],
256],
65209:[[
1589],
256],
65210:[[
1589],
256],
65211:[[
1589],
256],
65212:[[
1589],
256],
65213:[[
1590],
256],
65214:[[
1590],
256],
65215:[[
1590],
256],
65216:[[
1590],
256],
65217:[[
1591],
256],
65218:[[
1591],
256],
65219:[[
1591],
256],
65220:[[
1591],
256],
65221:[[
1592],
256],
65222:[[
1592],
256],
65223:[[
1592],
256],
65224:[[
1592],
256],
65225:[[
1593],
256],
65226:[[
1593],
256],
65227:[[
1593],
256],
65228:[[
1593],
256],
65229:[[
1594],
256],
65230:[[
1594],
256],
65231:[[
1594],
256],
65232:[[
1594],
256],
65233:[[
1601],
256],
65234:[[
1601],
256],
65235:[[
1601],
256],
65236:[[
1601],
256],
65237:[[
1602],
256],
65238:[[
1602],
256],
65239:[[
1602],
256],
65240:[[
1602],
256],
65241:[[
1603],
256],
65242:[[
1603],
256],
65243:[[
1603],
256],
65244:[[
1603],
256],
65245:[[
1604],
256],
65246:[[
1604],
256],
65247:[[
1604],
256],
65248:[[
1604],
256],
65249:[[
1605],
256],
65250:[[
1605],
256],
65251:[[
1605],
256],
65252:[[
1605],
256],
65253:[[
1606],
256],
65254:[[
1606],
256],
65255:[[
1606],
256],
65256:[[
1606],
256],
65257:[[
1607],
256],
65258:[[
1607],
256],
65259:[[
1607],
256],
65260:[[
1607],
256],
65261:[[
1608],
256],
65262:[[
1608],
256],
65263:[[
1609],
256],
65264:[[
1609],
256],
65265:[[
1610],
256],
65266:[[
1610],
256],
65267:[[
1610],
256],
65268:[[
1610],
256],
65269:[[
1604,
1570],
256],
65270:[[
1604,
1570],
256],
65271:[[
1604,
1571],
256],
65272:[[
1604,
1571],
256],
65273:[[
1604,
1573],
256],
65274:[[
1604,
1573],
256],
65275:[[
1604,
1575],
256],
65276:[[
1604,
1575],
256]},
6968 65280:{
65281:[[
33],
256],
65282:[[
34],
256],
65283:[[
35],
256],
65284:[[
36],
256],
65285:[[
37],
256],
65286:[[
38],
256],
65287:[[
39],
256],
65288:[[
40],
256],
65289:[[
41],
256],
65290:[[
42],
256],
65291:[[
43],
256],
65292:[[
44],
256],
65293:[[
45],
256],
65294:[[
46],
256],
65295:[[
47],
256],
65296:[[
48],
256],
65297:[[
49],
256],
65298:[[
50],
256],
65299:[[
51],
256],
65300:[[
52],
256],
65301:[[
53],
256],
65302:[[
54],
256],
65303:[[
55],
256],
65304:[[
56],
256],
65305:[[
57],
256],
65306:[[
58],
256],
65307:[[
59],
256],
65308:[[
60],
256],
65309:[[
61],
256],
65310:[[
62],
256],
65311:[[
63],
256],
65312:[[
64],
256],
65313:[[
65],
256],
65314:[[
66],
256],
65315:[[
67],
256],
65316:[[
68],
256],
65317:[[
69],
256],
65318:[[
70],
256],
65319:[[
71],
256],
65320:[[
72],
256],
65321:[[
73],
256],
65322:[[
74],
256],
65323:[[
75],
256],
65324:[[
76],
256],
65325:[[
77],
256],
65326:[[
78],
256],
65327:[[
79],
256],
65328:[[
80],
256],
65329:[[
81],
256],
65330:[[
82],
256],
65331:[[
83],
256],
65332:[[
84],
256],
65333:[[
85],
256],
65334:[[
86],
256],
65335:[[
87],
256],
65336:[[
88],
256],
65337:[[
89],
256],
65338:[[
90],
256],
65339:[[
91],
256],
65340:[[
92],
256],
65341:[[
93],
256],
65342:[[
94],
256],
65343:[[
95],
256],
65344:[[
96],
256],
65345:[[
97],
256],
65346:[[
98],
256],
65347:[[
99],
256],
65348:[[
100],
256],
65349:[[
101],
256],
65350:[[
102],
256],
65351:[[
103],
256],
65352:[[
104],
256],
65353:[[
105],
256],
65354:[[
106],
256],
65355:[[
107],
256],
65356:[[
108],
256],
65357:[[
109],
256],
65358:[[
110],
256],
65359:[[
111],
256],
65360:[[
112],
256],
65361:[[
113],
256],
65362:[[
114],
256],
65363:[[
115],
256],
65364:[[
116],
256],
65365:[[
117],
256],
65366:[[
118],
256],
65367:[[
119],
256],
65368:[[
120],
256],
65369:[[
121],
256],
65370:[[
122],
256],
65371:[[
123],
256],
65372:[[
124],
256],
65373:[[
125],
256],
65374:[[
126],
256],
65375:[[
10629],
256],
65376:[[
10630],
256],
65377:[[
12290],
256],
65378:[[
12300],
256],
65379:[[
12301],
256],
65380:[[
12289],
256],
65381:[[
12539],
256],
65382:[[
12530],
256],
65383:[[
12449],
256],
65384:[[
12451],
256],
65385:[[
12453],
256],
65386:[[
12455],
256],
65387:[[
12457],
256],
65388:[[
12515],
256],
65389:[[
12517],
256],
65390:[[
12519],
256],
65391:[[
12483],
256],
65392:[[
12540],
256],
65393:[[
12450],
256],
65394:[[
12452],
256],
65395:[[
12454],
256],
65396:[[
12456],
256],
65397:[[
12458],
256],
65398:[[
12459],
256],
65399:[[
12461],
256],
65400:[[
12463],
256],
65401:[[
12465],
256],
65402:[[
12467],
256],
65403:[[
12469],
256],
65404:[[
12471],
256],
65405:[[
12473],
256],
65406:[[
12475],
256],
65407:[[
12477],
256],
65408:[[
12479],
256],
65409:[[
12481],
256],
65410:[[
12484],
256],
65411:[[
12486],
256],
65412:[[
12488],
256],
65413:[[
12490],
256],
65414:[[
12491],
256],
65415:[[
12492],
256],
65416:[[
12493],
256],
65417:[[
12494],
256],
65418:[[
12495],
256],
65419:[[
12498],
256],
65420:[[
12501],
256],
65421:[[
12504],
256],
65422:[[
12507],
256],
65423:[[
12510],
256],
65424:[[
12511],
256],
65425:[[
12512],
256],
65426:[[
12513],
256],
65427:[[
12514],
256],
65428:[[
12516],
256],
65429:[[
12518],
256],
65430:[[
12520],
256],
65431:[[
12521],
256],
65432:[[
12522],
256],
65433:[[
12523],
256],
65434:[[
12524],
256],
65435:[[
12525],
256],
65436:[[
12527],
256],
65437:[[
12531],
256],
65438:[[
12441],
256],
65439:[[
12442],
256],
65440:[[
12644],
256],
65441:[[
12593],
256],
65442:[[
12594],
256],
65443:[[
12595],
256],
65444:[[
12596],
256],
65445:[[
12597],
256],
65446:[[
12598],
256],
65447:[[
12599],
256],
65448:[[
12600],
256],
65449:[[
12601],
256],
65450:[[
12602],
256],
65451:[[
12603],
256],
65452:[[
12604],
256],
65453:[[
12605],
256],
65454:[[
12606],
256],
65455:[[
12607],
256],
65456:[[
12608],
256],
65457:[[
12609],
256],
65458:[[
12610],
256],
65459:[[
12611],
256],
65460:[[
12612],
256],
65461:[[
12613],
256],
65462:[[
12614],
256],
65463:[[
12615],
256],
65464:[[
12616],
256],
65465:[[
12617],
256],
65466:[[
12618],
256],
65467:[[
12619],
256],
65468:[[
12620],
256],
65469:[[
12621],
256],
65470:[[
12622],
256],
65474:[[
12623],
256],
65475:[[
12624],
256],
65476:[[
12625],
256],
65477:[[
12626],
256],
65478:[[
12627],
256],
65479:[[
12628],
256],
65482:[[
12629],
256],
65483:[[
12630],
256],
65484:[[
12631],
256],
65485:[[
12632],
256],
65486:[[
12633],
256],
65487:[[
12634],
256],
65490:[[
12635],
256],
65491:[[
12636],
256],
65492:[[
12637],
256],
65493:[[
12638],
256],
65494:[[
12639],
256],
65495:[[
12640],
256],
65498:[[
12641],
256],
65499:[[
12642],
256],
65500:[[
12643],
256],
65504:[[
162],
256],
65505:[[
163],
256],
65506:[[
172],
256],
65507:[[
175],
256],
65508:[[
166],
256],
65509:[[
165],
256],
65510:[[
8361],
256],
65512:[[
9474],
256],
65513:[[
8592],
256],
65514:[[
8593],
256],
65515:[[
8594],
256],
65516:[[
8595],
256],
65517:[[
9632],
256],
65518:[[
9675],
256]}
6972 /***** Module to export */
6980 /*globals module:true,define:true*/
6983 if (typeof module ===
"object") {
6984 module.exports = unorm;
6987 } else if (typeof define ===
"function" && define.amd) {
6988 define(
"unorm", function () {
6997 /***** Export as shim for String::normalize method *****/
6999 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7001 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7002 When the normalize method is called with one argument form, the following steps are taken:
7004 1. Let O be CheckObjectCoercible(this value).
7005 2. Let S be ToString(O).
7006 3. ReturnIfAbrupt(S).
7007 4. If form is not provided or undefined let form be
"NFC".
7008 5. Let f be ToString(form).
7009 6. ReturnIfAbrupt(f).
7010 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7011 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #
15, UnicodeNormalizatoin Forms.
7014 The length property of the normalize method is
0.
7016 *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.
7018 unorm.shimApplied = false;
7020 if (!String.prototype.normalize) {
7021 String.prototype.normalize = function(form) {
7022 var str =
"" + this;
7023 form = form === undefined ?
"NFC" : form;
7025 if (form ===
"NFC") {
7026 return unorm.nfc(str);
7027 } else if (form ===
"NFD") {
7028 return unorm.nfd(str);
7029 } else if (form ===
"NFKC") {
7030 return unorm.nfkc(str);
7031 } else if (form ===
"NFKD") {
7032 return unorm.nfkd(str);
7034 throw new RangeError(
"Invalid normalization form: " + form);
7038 unorm.shimApplied = true;
7042 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7043 !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!
0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,
m="
2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:
0,toArray:function(){return d.call(this)},get:function(a){return null!=a?
0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(
0)},last:function(){return this.eq(-
1)},eq:function(a){var b=this.length,c=+a+(
0>a?b:
0);return this.pushStack(c
>=
0&&b
>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[
0]||{},h=
1,i=arguments.length,j=!
1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i
>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!
1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void
0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!
0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)
>=
0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!
1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!
1:!
0},isEmptyObject:function(a){var b;for(b in a)return!
1;return!
0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(
1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=
0,f=a.length,g=s(a);if(c){if(g){for(;f
>e;e++)if(d=b.apply(a[e],c),d===!
1)break}else for(e in a)if(d=b.apply(a[e],c),d===!
1)break}else if(g){for(;f
>e;e++)if(d=b.call(a[e],e,a[e]),d===!
1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!
1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-
1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=
0,e=a.length;c
>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=
0,g=a.length,h=!c;g
>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=
0,g=a.length,h=s(a),i=[];if(h)for(;g
>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:
1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,
2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void
0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!
1:
1===a.nodeType&&b?!
0:"array"===c||
0===b||"number"==typeof b&&b
>0&&b-
1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,
u=
"sizzle"+-new Date,v=a.document,w=
0,x=
0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!
0),
0},
C=
"undefined",D=
1<
<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=
0,c=this.length;c
>b;b++)if(this[b]===a)return b;return-
1},
L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
M="[\\x20\\t\\r\\n\\f]",
N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),
P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",
Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([
>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[
>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{
1,
6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var
d="
0x"+b-
65536;return d!==d||c?b:
0>d?String.fromCharCode(d+
65536):String.fromCharCode(d
>>10|
55296,
1023&d|
56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=
0;while(a[c++]=b[d++]);a.length=c-
1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||
"string"!=typeof a)return d;if(
1!==(k=b.nodeType)&&
9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[
1]){if(
9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[
2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[
3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=
9===k&&a,
1===k&&
"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(
"id"))?s=r.replace(bb,
"\\$&"):b.setAttribute(
"id",s),
s=
"[id='"+s+
"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(
",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(
"id")}}}return i(a.replace(R,
"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+
" ")
>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!
0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!
1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&
1===a.nodeType&&
1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-
1;return a?
1:-
1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!
1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&
9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!
1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.
className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.
innerHTML="
<div class='a'
></div><div class='a i'
></div>",a.firstChild.className="i
",2===a.getElementsByClassName("i
").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id
")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id
");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*
"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''
><option selected=''
></option></select>",a.querySelectorAll("[msallowclip^='']
").length&&q.push("[*^$]=
"+M+"*(?:''|\
"\")
"),a.querySelectorAll("[selected]
").length||q.push("\\[
"+M+"*(?:value|
"+L+")
"),a.querySelectorAll(":checked
").length||q.push(":checked
")}),ib(function(a){var b=e.createElement("input
");b.setAttribute("type
","hidden
"),a.appendChild(b).setAttribute("name
","D
"),a.querySelectorAll("[name=d]
").length&&q.push("name
"+M+"*[*^$|!~]?=
"),a.querySelectorAll(":enabled
").length||q.push(":enabled
",":disabled
"),a.querySelectorAll("*,:x
"),q.push(",.*:
")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div
"),s.call(a,"[s!='']:x
"),r.push("!=
",Q)}),q=q.length&&new RegExp(q.join("|
")),r=r.length&&new RegExp(r.join("|
")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$
1']
"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression:
"+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string
"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode
",first:!0}," ":{dir:"parentNode
"},"+
":{dir:"previousSibling
",first:!0},"~
":{dir:"previousSibling
"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~=
"===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth
"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even
"===a[3]||"odd
"===a[3])),a[5]=+(a[7]+a[8]||"odd
"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")
",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*
"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|
"+M+")
"+a+"(
"+M+"|$)
"))&&y(a,function(a){return b.test("string
"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class
")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!=
"===b:b?(e+="","=
"===b?e===c:"!=
"===b?e!==c:"^=
"===b?c&&0===e.indexOf(c):"*=
"===b?c&&e.indexOf(c)>-1:"$=
"===b?c&&e.slice(-c.length)===c:"~=
"===b?(" "+e+" ").indexOf(c)>-1:"|=
"===b?e===c||e.slice(0,c.length+1)===c+"-
":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth
"!==a.slice(0,3),g="last
"!==a.slice(-4),h="of-type
"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling
":"previousSibling
",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only
"===a&&!o&&"nextSibling
"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo:
"+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$
1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang:
"+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang
")||b.getAttribute("lang
"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-
");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&!!a.checked||"option
"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&"button
"===a.type||"button
"===b},text:function(a){var b;return"input
"===a.nodeName.toLowerCase()&&"text
"===a.type&&(null==(b=a.getAttribute("type
"))||"text
"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(
1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((
1===b.nodeType||e)&&a(b,c,g))return!
0}else while(b=b[d])if(
1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[
0]===w&&h[
1]===f)return j[
2]=h[
2];if(i[d]=j,j[
2]=a(b,c,g))return!
0}}}function sb(a){return a.length
>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!
1;return!
0}:a[
0]}function tb(a,b,c){for(var d=
0,e=b.length;e
>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=
0,i=a.length,j=null!=b;i
>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])
>-
1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[
0].type],h=g||d.relative[" "],i=g?
1:
0,k=rb(function(a){return a===b},h,!
0),l=rb(function(a){return K.call(b,a)
>-
1},h,!
0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f
>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f
>e;e++)if(d.relative[a[e].type])break;return vb(i
>1&&sb(m),i
>1&&qb(a.slice(
0,i-
1).concat({value:
" "===a[i-
2].type?
"*":
""})).replace(R,
"$1"),c,e
>i&&wb(a.slice(i,e)),f
>e&&wb(a=a.slice(e)),f
>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length
>0,e=a.length
>0,f=function(f,g,h,i,k){var l,m,o,p=
0,
q=
"0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(
"*",k),v=w+=null==t?
1:Math.random()||
.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=
0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=
0;while(o=b[m++])o(r,s,g,h);if(f){if(p
>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length
>0&&p+b.length
>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+
" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,
n=
"function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],
1===o.length){if(j=o[
0]=o[
0].slice(
0),j.length
>2&&
"ID"===(k=j[
0]).type&&c.getById&&
9===b.nodeType&&p&&d.relative[j[
1].type]){if(b=(d.find.ID(k.matches[
0].replace(cb,db),b)||[])[
0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?
0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[
0].replace(cb,db),ab.test(j[
0].type)&&ob(b.parentNode)||b))){if(j.splice(i,
1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split(
"").sort(B).join(
"")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return
1&a.compareDocumentPosition(n.createElement(
"div"))}),ib(function(a){return a.
innerHTML=
"<a href='#'></a>",
"#"===a.firstChild.getAttribute(
"href")})||jb(
"type|href|height|width",function(a,b,c){return c?void
0:a.getAttribute(b,
"type"===b.toLowerCase()?
1:
2)}),c.attributes&&ib(function(a){return a.
innerHTML=
"<input/>",a.firstChild.setAttribute(
"value",
""),
""===a.firstChild.getAttribute(
"value")})||jb(
"value",function(a,b,c){return c||
"input"!==a.nodeName.toLowerCase()?void
0:a.defaultValue}),ib(function(a){return null==a.getAttribute(
"disabled")})||jb(L,function(a,b,c){var d;return c?void
0:a[b]===!
0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[
":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/
?>(?:<\/\
1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)
>=
0!==c})}n.filter=function(a,b,c){var d=b[
0];return c&&(
a=":not("+a+")"),
1===b.length&&
1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return
1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=
0;c
>b;b++)if(n.contains(e[b],this))return!
0}));for(b=
0;c
>b;b++)n.find(a,e[b],d);return d=this.pushStack(c
>1?n.unique(d):d),d.selector=this.selector?this.selector+
" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!
1))},not:function(a){return this.pushStack(x(this,a||[],!
0))},is:function(a){return!!x(this,
"string"==typeof a&&u.test(a)?n(a):a||[],!
1).length}});var y,z=/^(?:\s*(<[\w\W]+
>)[^
>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(
c="<"===a[
0]&&"
>"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined
"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):
0;e
>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType
<11&&(g?g.index(c)
>-
1:
1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length
>1?n.unique(f):f)},index:function(a){return a?
"string"==typeof a?g.call(n(a),this[
0]):g.call(this,a.jquery?a[
0]:a):this[
0]&&this[
0].parentNode?this.first().prevAll().length:-
1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&
1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&
11!==b.nodeType?b:null},parents:function(a){return n.dir(a,
"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,
"parentNode",c)},next:function(a){return D(a,
"nextSibling")},prev:function(a){return D(a,
"previousSibling")},nextAll:function(a){return n.dir(a,
"nextSibling")},prevAll:function(a){return n.dir(a,
"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,
"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,
"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return
"Until"!==a.slice(-
5)&&(d=c),d&&
"string"==typeof d&&(e=n.filter(d,e)),this.length
>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!
0}),b}n.Callbacks=function(a){
a=
"string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!
0,g=e||
0,e=
0,f=h.length,d=!
0;h&&f
>g;g++)if(h[g].apply(l[
0],l[
1])===!
1&&a.stopOnFalse){b=!
1;break}d=!
1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))
>-
1)h.splice(c,
1),d&&(f
>=c&&f--,g
>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)
>-
1:!(!h||!h.length)},empty:function(){return h=[],f=
0,this},disable:function(){return h=i=b=void
0,this},disabled:function(){return!h},lock:function(){return i=void
0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],
c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[
1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[
0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[
2],h=f[
3];d[f[
1]]=g.add,h&&g.add(function(){c=h},b[
1^a][
2].disable,b[
2][
2].lock),e[f[
0]]=function(){return e[f[
0]+"With"](this===e?d:this,arguments),this},e[f[
0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=
0,c=d.call(arguments),e=c.length,f=
1!==e||a&&n.isFunction(a.promise)?e:
0,g=
1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length
>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e
>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e
>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!
1,readyWait:
1,holdReady:function(a){a?n.readyWait++:n.ready(!
0)},ready:function(a){(a===!
0?--n.readyWait:n.isReady)||(n.isReady=!
0,a!==!
0&&--n.readyWait
>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(
"ready"),n(l).off(
"ready"))))}});function I(){l.removeEventListener(
"DOMContentLoaded",I,!
1),a.removeEventListener(
"load",I,!
1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),
"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener(
"DOMContentLoaded",I,!
1),a.addEventListener(
"load",I,!
1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=
0,i=a.length,j=null==c;if(
"object"===n.type(c)){e=!
0;for(h in c)n.access(a,b,h,c[h],!
0,f,g)}else if(void
0!==d&&(e=!
0,n.isFunction(d)||(g=!
0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i
>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[
0],c):f};n.acceptData=function(a){return
1===a.nodeType||
9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},
0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=
1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return
0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void
0===b?c:c[b]},access:function(a,b,c){var d;return void
0===b||b&&"string"==typeof b&&void
0===c?(d=this.get(a,b),void
0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void
0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void
0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void
0===c&&
1===a.nodeType)if(
d="data-"+b.replace(O,"-$
1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{
c="true"===c?!
0:"false"===c?!
1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void
0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
7044 },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[
0],g=f&&f.attributes;if(void
0===a){if(this.length&&(e=M.get(f),
1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,
0===d.indexOf("data-")&&(d=n.camelCase(d.slice(
5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!
0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void
0===b){if(c=M.get(f,a),void
0!==c)return c;if(c=M.get(f,d),void
0!==c)return c;if(c=P(f,d,void
0),void
0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-
1!==a.indexOf("-")&&void
0!==c&&M.set(this,a,b)})},null,b,arguments.length
>1,null,!
0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||
"fx")+
"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void
0},dequeue:function(a,b){b=b||
"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};
"inprogress"===e&&(e=c.shift(),d--),e&&(
"fx"===b&&c.unshift(
"inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+
"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(
"once memory").add(function(){L.remove(a,[b+
"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=
2;return
"string"!=typeof a&&(b=a,
a=
"fx",c--),arguments.length
<c?n.queue(this[
0],a):void
0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),
"fx"===a&&
"inprogress"!==c[
0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||
"fx",[])},promise:function(a,b){var c,d=
1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};
"string"!=typeof a&&(b=a,a=void
0),a=a||
"fx";while(g--)c=L.get(f[g],a+
"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=[
"Top",
"Right",
"Bottom",
"Left"],S=function(a,b){return a=b||a,
"none"===n.css(a,
"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement(
"div")),c=l.createElement(
"input");c.setAttribute(
"type",
"radio"),c.setAttribute(
"checked",
"checked"),c.setAttribute(
"name",
"t"),b.appendChild(c),k.checkClone=b.cloneNode(!
0).cloneNode(!
0).lastChild.checked,b.
innerHTML=
"<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!
0).lastChild.defaultValue}();var
U=
"undefined";k.
focusinBubbles=
"onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!
0}function $(){return!
1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void
0}),b=(b||
"").match(E)||[
""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(
".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=
0,l.setup&&l.setup.call(a,d,p,g)!==!
1||a.addEventListener&&a.addEventListener(o,g,!
1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,
0,k):m.push(k),n.event.global[o]=!
0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||
"").match(E)||[
""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[
2]&&new RegExp(
"(^|\\.)"+p.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(
"**"!==d||!k.selector)||(m.splice(f,
1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!
1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!
0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,
"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,
"type")?b.type:b,r=j.call(b,
"namespace")?b.namespace.split(
"."):[];if(g=h=d=d||l,
3!==d.nodeType&&
8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(
".")
>=
0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")
<0&&
"on"+q,b=b[n.expando]?b:new n.Event(q,
"object"==typeof b&&b),b.isTrigger=e?
2:
3,b.namespace=r.join(
"."),b.namespace_re=b.namespace?new RegExp(
"(^|\\.)"+r.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"):null,b.result=void
0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!
1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=
0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f
>1?i:o.bindType||q,m=(L.get(g,
"events")||{})[b.type]&&L.get(g,
"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!
1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!
1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void
0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,
"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[
0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!
1){h=n.event.handlers.call(this,a,j),b=
0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=
0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void
0!==e&&(a.result=e)===!
1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||
"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!
0||
"click"!==a.type){for(d=[],c=
0;h
>c;c++)f=b[c],e=f.selector+" ",void
0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)
>=
0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h
<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:
"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
" "),fixHooks:{},keyHooks:{props:
"char charCode key keyCode".split(
" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:
"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(
" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||
0)-(d&&d.clientLeft||e&&e.clientLeft||
0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||
0)-(d&&d.clientTop||e&&e.clientTop||
0)),a.which||void
0===f||(a.which=
1&f?
1:
2&f?
3:
4&f?
2:
0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),
3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!
0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!
1):void
0},delegateType:
"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!
1):void
0},delegateType:
"focusout"},click:{trigger:function(){return
"checkbox"===this.type&&this.click&&n.nodeName(this,
"input")?(this.click(),!
1):void
0},_default:function(a){return n.nodeName(a.target,
"a")}},beforeunload:{postDispatch:function(a){void
0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!
0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!
1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void
0===a.defaultPrevented&&a.returnValue===!
1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!
0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:
"mouseover",mouseleave:
"mouseout",pointerenter:
"pointerover",pointerleave:
"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:
"focusin",blur:
"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!
0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!
0),L.access(d,b,(e||
0)+
1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-
1;e?L.access(d,b,e):(d.removeEventListener(a,c,!
0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if(
"object"==typeof a){
"string"!=typeof b&&(c=c||b,b=void
0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void
0):null==d&&(
"string"==typeof b?(d=c,c=void
0):(d=c,c=b,b=void
0)),d===!
1)d=$;else if(!d)return this;return
1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,
1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+
"."+d.namespace:d.origType,d.selector,d.handler),this;if(
"object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!
1||
"function"==typeof b)&&(c=b,b=void
0),c===!
1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[
0];return c?n.event.trigger(a,b,c,!
0):void
0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^
>]*)\
/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)
>\s*$/g,ib={option:[
1,"
<select multiple='multiple'
>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table
")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr
")?a.getElementsByTagName("tbody
")[0]||a.appendChild(a.ownerDocument.createElement("tbody
")):a}function kb(a){return a.type=(null!==a.getAttribute("type
"))+"/
"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type
"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(
1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=
0,d=j[e].length;d
>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void
0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!
0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||
1!==a.nodeType&&
11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=
0,e=f.length;e
>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=
0,e=f.length;e
>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length
>0&&mb(g,!i&&ob(a,
"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=
0,o=a.length;o
>m;m++)if(e=a[m],e||
0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[
1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[
1]+e.replace(ab,"<$
1></$
2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script
"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script
")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string
"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$
1></$
2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string
"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script
"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-
1].ownerDocument,n.map(f,lb),j=
0;g
>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-
1,h=
0;g
>=h;h++)c=h===g?this:this.clone(!
0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[
0]))?d.display:n.css(e[
0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("
<iframe frameborder='
0' width='
0' height='
0'
/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^(
"+Q+")(?!px)[a-z%]+$
","i
"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div
"),f=l.createElement("div
");if(f.style){f.style.backgroundClip="content-box
",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box
"===f.style.backgroundClip,e.style.cssText="border:
0;width:
0;height:
0;top:
0;left:-
9999px;margin-top:
1px;position:absolute
",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:
1%;top:
1%;border:
1px;padding:
1px;width:
4px;position:absolute
",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%
"!==g.top,c="4px
"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div
"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:
0;border:
0;padding:
0",c.style.marginRight=c.style.width="0",f.style.width="1px
",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^(
"+Q+")(.*)$
","i
"),Bb=new RegExp("^([+-])=(
"+Q+")
","i
"),Cb={position:"absolute
",visibility:"hidden
",display:"block
"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit
","O
","Moz
","ms
"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px
"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border
":"content
")?4:"width
"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!
0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!
0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!
0,e))):(g+=n.css(a,"padding"+R[f],!
0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!
0,e)));return g}function Ib(a,b,c){var d=!
0,
e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),
g="border-box"===n.css(a,"boxSizing",!
1,f);if(
0>=e||null==e){if(e=xb(a,b,f),(
0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||
0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=
0,h=a.length;h
>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.
display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=
0;h
>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"
1":c}}}},cssNumber:{columnCount:!
0,fillOpacity:!
0,flexGrow:!
0,flexShrink:!
0,fontWeight:!
0,lineHeight:!
0,opacity:!
0,order:!
0,orphans:!
0,widows:!
0,zIndex:!
0,zoom:!
0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&
3!==a.nodeType&&
8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void
0===c?g&&"get"in g&&void
0!==(e=g.get(a,!
1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[
1]+
1)*e[
2]+parseFloat(n.css(a,b)),
f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||
0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void
0===(c=g.set(a,c,d))||(i[b]=c)),void
0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!
0,c)),void
0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!
0||n.isNumeric(f)?f||
0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&
0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void
0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!
1,e),e):
0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void
0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=
0,e={},
f="string"==typeof c?c.split(" "):[c];
4>d;d++)e[a+R[d]+b]=f[d]||f[d-
2]||f[
0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=
0;if(n.isArray(b)){for(d=wb(a),e=b.length;e
>g;g++)f[b[g]]=n.css(a,b[g],!
1,d);return f}return void
0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length
>1)},show:function(){return Jb(this,!
0)},hide:function(){return Jb(this)},toggle:function(a){return
"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||
"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?
"":
"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,
0,
1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,
""),b&&
"auto"!==b?b:
0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return
.5-Math.cos(a*Math.PI)/
2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp(
"^(?:([+-])=|)("+Q+
")([a-z%]*)$",
"i"),Pb=/queueHooks$/,Qb=[Vb],Rb={
"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[
3]||(n.cssNumber[a]?
"":
"px"),g=(n.cssNumber[a]||
"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=
1,i=
20;if(g&&g[
3]!==f){f=f||g[
3],e=e||[],g=+d||
1;do h=h||
".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&
1!==h&&--i)}return e&&(g=c.start=+g||+d||
0,c.unit=f,c.end=e[
1]?g+(e[
1]+
1)*e[
2]:+e[
2]),c}]};function Sb(){return setTimeout(function(){Lb=void
0}),Lb=n.now()}function Tb(a,b){var c,d=
0,e={height:a};for(b=b?
1:
0;
4>d;d+=
2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=
0,g=e.length;g
>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=
0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),
1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),
k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.
display="inline-block")),c.overflow&&(o.
overflow="hidden",l.always(function(){o.overflow=c.overflow[
0],o.overflowX=c.overflow[
1],o.overflowY=c.overflow[
2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void
0===q[d])continue;p=!
0}m[d]=q&&q[d]||n.style(a,d)}else j=void
0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:
0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.
start="width"===d||"height"===d?
1:
0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[
1],f=a[c]=f[
0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=
0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!
1;for(var b=Lb||Sb(),c=Math.max(
0,j.startTime+j.duration-b),d=c/j.duration||
0,f=
1-d,g=
0,i=j.tweens.length;i
>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),
1>f&&i?c:(h.resolveWith(a,[j]),!
1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!
0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=
0,d=b?j.tweens.length:
0;if(e)return this;for(e=!
0;d
>c;c++)j.tweens[c].run(
1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g
>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=
0,e=a.length;e
>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?
0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!
0)&&(d.
queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",
0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!
0)};return g.finish=g,e||f.queue===!
1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void
0),b&&a!==!
1&&this.queue(a||"fx",[]),this.each(function(){var b=!
0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!
1,f.splice(e,
1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!
1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:
0;for(c.finish=!
0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!
0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!
0),f.splice(b,
1));for(b=
0;g
>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!
0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=
0,c=n.timers;for(Lb=n.now();b
<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,
1);c.length||n.fx.stop(),Lb=void
0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=
13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:
600,fast:
200,_default:
400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||
"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement(
"input"),b=l.createElement(
"select"),c=b.appendChild(l.createElement(
"option"));a.
type=
"checkbox",k.
checkOn=
""!==a.value,k.optSelected=c.selected,b.disabled=!
0,k.optDisabled=!c.disabled,a=l.createElement(
"input"),a.
value=
"t",a.
type=
"radio",k.
radioValue=
"t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length
>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&
3!==f&&
8!==f&&
2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(
1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void
0===c?d&&
"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void
0:e):null!==c?d&&
"set"in d&&void
0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+
""),c):void n.removeAttr(a,b))
7045 },removeAttr:function(a,b){var c,d,e=
0,f=b&&b.match(E);if(f&&
1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!
1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&
"radio"===b&&n.nodeName(a,
"input")){var c=a.value;return a.setAttribute(
"type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!
1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length
>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{
"for":
"htmlFor",
"class":
"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&
3!==g&&
8!==g&&
2!==g)return f=
1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void
0!==c?e&&
"set"in e&&void
0!==(d=e.set(a,c,b))?d:a[b]=c:e&&
"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(
"tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-
1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each([
"tabIndex",
"readOnly",
"maxLength",
"cellSpacing",
"cellPadding",
"rowSpan",
"colSpan",
"useMap",
"frameBorder",
"contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,
h=
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=
0;while(e=b[f++])d.indexOf(" "+e+" ")
<0&&(d+=e+
" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=
0===arguments.length||
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=
0;while(e=b[f++])while(d.indexOf(" "+e+" ")
>=
0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=
0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!
1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var
b=" "+a+" ",c=
0,d=this.length;d
>c;c++)if(
1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)
>=
0)return!
0;return!
1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[
0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;
1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?
e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void
0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void
0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,
f="select-one"===a.type||
0>e,g=f?null:[],h=f?e+
1:d.length,i=
0>e?h:f?e:
0;h
>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)
>=
0)&&(c=!
0);return c||(a.selectedIndex=-
1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)
>=
0:void
0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length
>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return
1===arguments.length?this.off(a,
"**"):this.off(b,a||
"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+
"")},n.parseXML=function(a){var b,c;if(!a||
"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,
"text/xml")}catch(d){b=void
0}return(!b||b.getElementsByTagName(
"parsererror").length)&&n.error(
"Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},
pc=
"*/".concat(
"*");try{fc=location.href}catch(qc){fc=l.createElement(
"a"),fc.
href=
"",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){
"string"!=typeof b&&(c=b,
b=
"*");var d,e=
0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])
"+"===d[
0]?(d=d.slice(
1)||
"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!
0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return
"string"!=typeof j||f||e[j]?f?!(i=j):void
0:(b.dataTypes.unshift(j),g(j),!
1)}),i}return g(b.dataTypes[
0])||!e[
"*"]&&g(
"*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void
0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!
0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(
"*"===i[
0])i.shift(),void
0===d&&(d=a.mimeType||b.getResponseHeader(
"Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[
0]in c)f=i[
0];else{for(e in c){if(!i[
0]||a.converters[e+
" "+i[
0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[
0]&&i.unshift(f),c[f]):void
0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[
1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(
"*"===f)f=i;else if(
"*"!==i&&i!==f){if(g=j[i+
" "+f]||j[
"* "+f],!g)for(e in j)if(h=e.split(
" "),h[
1]===f&&(g=j[i+
" "+h[
0]]||j[
"* "+h[
0]])){g===!
0?g=j[e]:j[e]!==!
0&&(f=h[
0],k.unshift(h[
1]));break}if(g!==!
0)if(g&&a[
"throws"])b=g(b);else try{b=g(b)}catch(l){return{state:
"parsererror",error:g?l:
"No conversion from "+i+
" to "+f}}}return{state:
"success",data:b}}n.extend({active:
0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:
"GET",isLocal:jc.test(ec[
1]),global:!
0,processData:!
0,async:!
0,contentType:
"application/x-www-form-urlencoded; charset=UTF-8",accepts:{
"*":pc,text:
"text/plain",html:
"text/html",xml:
"application/xml, text/xml",json:
"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:
"responseXML",text:
"responseText",json:
"responseJSON"},converters:{
"* text":String,
"text html":!
0,
"text json":n.parseJSON,
"text xml":n.parseXML},flatOptions:{url:!
0,context:!
0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){
"object"==typeof a&&(b=a,a=void
0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks(
"once memory"),q=k.statusCode||{},r={},s={},t=
0,
u=
"canceled",v={readyState:
0,getResponseHeader:function(a){var b;if(
2===t){if(!f){f={};while(b=ic.exec(e))f[b[
1].toLowerCase()]=b[
2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return
2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(
2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(
0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[
1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[
1]===ec[
1]&&h[
2]===ec[
2]&&(h[
3]||("http:"===h[
1]?"
80":"
443"))===(ec[
3]||("http:"===ec[
1]?"
80":"
443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),
2===t)return v;i=k.global,i&&
0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!
1&&(k.url=hc.test(d)?d.replace(hc,"$
1_="+cc++):d+(dc.test(d)?"&":"?")+"
_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!
1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[
0]&&k.accepts[k.dataTypes[
0]]?k.accepts[k.dataTypes[
0]]+("*"!==k.dataTypes[
0]?", "+pc+"; q=
0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!
1||
2===t))return v.abort();
u="abort";for(j in{success:
1,error:
1,complete:
1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=
1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout
>0&&(g=setTimeout(function(){v.abort(
"timeout")},k.timeout));try{t=
1,c.send(r,x)}catch(w){if(!(
2>t))throw w;x(-
1,w)}}else x(-
1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;
2!==t&&(t=
2,g&&clearTimeout(g),c=void
0,e=h||"",v.readyState=a
>0?
4:
0,j=a
>=
200&&
300>a||
304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),
204===a||"HEAD"===k.type?
x="nocontent":
304===a?
x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(
x="error",
0>a&&(a=
0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void
0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void
0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void
0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!
1,global:!
1,"throws":!
0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[
0]&&(b=n(a,this[
0].ownerDocument).eq(
0).clone(!
0),this[
0].parentNode&&b.insertBefore(this[
0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=
0&&a.offsetHeight<=
0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%
20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void
0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=
0,Dc={},Ec={
0:
200,
1223:
204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void
0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void
0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void
0===a.cache&&(a.cache=!
1),a.crossDomain&&(a.
type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("
<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error
",c=function(a){b.remove(),c=null,a&&e("error
"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback
",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_
"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp
",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url
":"string
"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded
")&&Hc.test(b.data)&&"data
");return h||"jsonp
"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$
1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&
":"?
")+b.jsonp+"=
"+e),b.converters["script json
"]=function(){return g||n.error(e+" was not called
"),g[0]},b.dataTypes[0]="json
",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script
"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string
"!=typeof a)return null;"boolean
"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string
"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object
"==typeof b&&(e="POST
"),g.length>0&&n.ajax({url:a,type:e,dataType:"html
",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position
"),l=n(a),m={};"static
"===k&&(a.style.position="relative
"),h=l.offset(),f=n.css(a,"top
"),i=n.css(a,"left
"),j=("absolute
"===k||"fixed
"===k)&&(f+i).indexOf("auto
")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using
"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed
"===n.css(c,"position
")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html
")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth
",!0),d.left+=n.css(a[0],"borderLeftWidth
",!0)),{top:b.top-d.top-n.css(c,"marginTop
",!0),left:b.left-d.left-n.css(c,"marginLeft
",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html
")&&"static
"===n.css(a,"position
"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset
",scrollTop:"pageYOffset
"},function(b,c){var d="pageYOffset
"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top
","left
"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px
":c):void 0})}),n.each({Height:"height
",Width:"width
"},function(a,b){n.each({padding:"inner
"+a,content:b,"":"outer
"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean
"!=typeof d),g=c||(d===!0||e===!0?"margin
":"border
");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client
"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll
"+a],e["scroll
"+a],b.body["offset
"+a],e["offset
"+a],e["client
"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function
"==typeof define&&define.amd&&define("jquery
",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
7048 * Bootstrap v3.2.0 (http://getbootstrap.com)
7049 * Copyright 2011-2014 Twitter, Inc.
7050 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7052 if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void
0!==a.style[c])return{end:b[c]};return!
1}a.fn.emulateTransitionEnd=function(b){var c=!
1,d=this;a(this).one("bsTransitionEnd",function(){c=!
0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void
0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[
data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.
VERSION="
3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(
150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),
f="object"==typeof b&
&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!
1};c.
VERSION="
3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var
c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!
0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!
1,d.removeClass(c).removeAttr(c))},this),
0)},c.prototype.toggle=function(){var a=!
0,b=this.$element.closest('[
data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!
1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),
g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.
VERSION="
3.2.0",c.DEFAULTS={interval:
5e3,pause:"hover",wrap:!
0},c.prototype.keydown=function(a){switch(a.which){case
37:this.prev();break;case
39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!
1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b
>this.$items.length-
1||
0>b?void
0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b
>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!
0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!
0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void
0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void
0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,
g="next"==b?"left":"right",
h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!
1;var j=e[
0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!
0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[
0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!
1,setTimeout(function(){i.$element.trigger(m)},
0)}).emulateTransitionEnd(
1e3*d.css("transition-duration").slice(
0,-
1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!
1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!
1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[
data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.
VERSION="
3.2.0",c.DEFAULTS={toggle:!
0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("
> .panel
> .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](
0),this.transitioning=
1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=
0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(
350)[f](this.$element[
0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[
0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=
1;var d=function(){this.transitioning=
0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](
0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(
350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[
data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[
data-toggle="collapse"][
data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&
3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var
e=".dropdown-backdrop",f='[
data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.
VERSION="
3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
<div class=
"dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!
1}},g.prototype.keydown=function(b){if(/(
38|
40|
27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&
27==b.keyCode)return
27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var
h=" li:not(.divider):visible a",i=e.find('[
role="menu"]'+h+', [
role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));
38==b.keyCode&&j
>0&&j--,
40==b.keyCode&&j
<i.length-
1&&j++,~j||(j=
0),i.eq(j).trigger(
"focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on(
"click.bs.dropdown.data-api",b).on(
"click.bs.dropdown.data-api",
".dropdown form",function(a){a.stopPropagation()}).on(
"click.bs.dropdown.data-api",f,g.prototype.toggle).on(
"keydown.bs.dropdown.data-api",f+', [
role=
"menu"], [
role=
"listbox"]',g.prototype.keydown)}(jQuery),+function(a){
"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data(
"bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),
"object"==typeof b&&b);f||e.data(
"bs.modal",f=new c(this,g)),
"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=
0,this.options.remote&&this.$element.find(
".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger(
"loaded.bs.modal")},this))};c.
VERSION=
"3.2.0",c.DEFAULTS={backdrop:!
0,keyboard:!
0,show:!
0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event(
"show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!
0,this.checkScrollbar(),this.$body.addClass(
"modal-open"),this.setScrollbar(),this.escape(),this.$element.on(
"click.dismiss.bs.modal",'[
data-dismiss=
"modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass(
"fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(
0),d&&c.$element[
0].offsetWidth,c.$element.addClass(
"in").attr(
"aria-hidden",!
1),c.enforceFocus();var e=a.Event(
"shown.bs.modal",{relatedTarget:b});d?c.$element.find(
".modal-dialog").one(
"bsTransitionEnd",function(){c.$element.trigger(
"focus").trigger(e)}).emulateTransitionEnd(
300):c.$element.trigger(
"focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event(
"hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!
1,this.$body.removeClass(
"modal-open"),this.resetScrollbar(),this.escape(),a(document).off(
"focusin.bs.modal"),this.$element.removeClass(
"in").attr(
"aria-hidden",!
0).off(
"click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass(
"fade")?this.$element.one(
"bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(
300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off(
"focusin.bs.modal").on(
"focusin.bs.modal",a.proxy(function(a){this.$element[
0]===a.target||this.$element.has(a.target).length||this.$element.trigger(
"focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(
"keyup.dismiss.bs.modal",a.proxy(function(a){
27==a.which&&this.hide()},this)):this.isShown||this.$element.off(
"keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger(
"hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass(
"fade")?
"fade":
"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&
&d;if(this.$backdrop=a('
<div class=
"modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[
0].focus.call(this.$element[
0]):this.hide.call(this))},this)),e&&this.$backdrop[
0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(
150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(
150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth
>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||
0,
10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.
className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[
0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[
data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.
VERSION="
3.2.0",c.DEFAULTS={animation:!
0,placement:"top",selector:!
1,template:'
<div class=
"tooltip" role=
"tooltip"><div class=
"tooltip-arrow"></div><div class=
"tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:
0,html:!
1,container:!
1,viewport:{selector:"body",padding:
0}},c.prototype.init=function(b,c,d){this.enabled=!
0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var
h="hover"==g?"mouseenter":"focusin",
i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[
0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var
g="function"==typeof this.options.placement?this.options.placement.call(this,e[
0],this.$element[
0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:
0,left:
0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[
0].offsetWidth,l=e[
0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);
g="bottom"==g&&j.top+j.height+l-o.scroll
>o.height?"top":"top"==g&&j.top-o.scroll-l
<0?
"bottom":
"right"==g&&j.right+k
>o.width?"left":"left"==g&&j.left-k
<o.left?
"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger(
"shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass(
"fade")?e.one(
"bsTransitionEnd",q).emulateTransitionEnd(
150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[
0].offsetWidth,f=d[
0].offsetHeight,g=parseInt(d.css(
"margin-top"),
10),h=parseInt(d.css(
"margin-left"),
10);isNaN(g)&&(g=
0),isNaN(h)&&(h=
0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[
0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),
0),d.addClass(
"in");var i=d[
0].offsetWidth,j=d[
0].offsetHeight;
"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?
2*k.left-e+i:
2*k.top-f+j,m=k.left?
"left":
"top",n=k.left?
"offsetWidth":
"offsetHeight";d.offset(b),this.replaceArrow(l,d[
0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?
50*(
1-a/b)+
"%":
"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(
".tooltip-inner")[this.options.html?
"html":
"text"](b),a.removeClass(
"fade in top bottom left right")},c.prototype.hide=function(){function b(){
"in"!=c.hoverState&&d.detach(),c.$element.trigger(
"hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event(
"hide.bs."+this.type);return this.$element.removeAttr(
"aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void
0:(d.removeClass(
"in"),a.support.transition&&this.$tip.hasClass(
"fade")?d.one(
"bsTransitionEnd",b).emulateTransitionEnd(
150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr(
"title")||
"string"!=typeof a.attr(
"data-original-title"))&&a.attr(
"data-original-title",a.attr(
"title")||
"").attr(
"title",
"")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[
0],
d=
"BODY"==c.tagName;return a.extend({},
"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:
0,left:
0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return
"bottom"==a?{top:b.top+b.height,left:b.left+b.width/
2-c/
2}:
"top"==a?{top:b.top-d,left:b.left+b.width/
2-c/
2}:
"left"==a?{top:b.top+b.height/
2-d/
2,left:b.left-c}:{top:b.top+b.height/
2-d/
2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:
0,left:
0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||
0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h
<g.top?e.top=g.top-h:i
>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j
<g.left?e.left=g.left-j:k
>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[
0]):c.title)},c.prototype.getUID=function(a){do a+=~~(
1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[
0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!
0},c.prototype.disable=function(){this.enabled=!
1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.
VERSION="
3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'
<div class=
"popover" role=
"tooltip"><div class=
"arrow"></div><h3 class=
"popover-title"></h3><div class=
"popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[
0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li
> a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=
0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),
f="object"==typeof c&
&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.
VERSION="
3.2.0",b.DEFAULTS={offset:
10},b.prototype.getScrollHeight=function(){return this.$scrollElement[
0].scrollHeight||Math.max(this.$body[
0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var
b="offset",c=
0;a.isWindow(this.$scrollElement[
0])||(
b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[
0]-b[
0]}).each(function(){d.offsets.push(this[
0]),d.targets.push(this[
1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b
>=d)return g!=(a=f[f.length-
1])&&this.activate(a);if(g&&b<=e[
0])return g!=(a=f[
0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b
>=e[a]&&(!e[a+
1]||b<=e[a+
1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[
data-target="'+b+'"],'+this.selector+'[
href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[
data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.
VERSION="
3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[
0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("
> .dropdown-menu
> .active").removeClass("active"),b.addClass("active"),g?(b[
0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("
> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(
150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[
data-toggle="tab"], [
data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),
f="object"==typeof b&
&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.
VERSION="
3.2.0",c.
RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:
0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),
1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!
1:null!=h&&e.top+this.$element.height()
>=b-h?"bottom":null!=g&&g
>=d?"top":!
1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var
j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.
unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[
data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
</script>
7053 <script>(function() {
7057 * Extend an Object with another Object's properties.
7059 * The source objects are specified as additional arguments.
7061 * @param dst Object the object to extend.
7063 * @return Object the final object.
7065 var _extend = function(dst) {
7066 var sources = Array.prototype.slice.call(arguments,
1);
7067 for (var i=
0; i
<sources.length; ++i) {
7068 var src = sources[i];
7069 for (var p in src) {
7070 if (src.hasOwnProperty(p)) dst[p] = src[p];
7078 * Defer execution of given function.
7079 * @param {Function} func
7081 var _defer = function(func) {
7082 if (typeof setImmediate === 'function') {
7083 return setImmediate(func);
7085 return setTimeout(func,
0);
7090 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7094 * Calculate levenshtein distance of the two strings.
7096 * @param str1 String the first string.
7097 * @param str2 String the second string.
7098 * @return Integer the levenshtein distance (
0 and above).
7100 get: function(str1, str2) {
7102 if (str1 === str2) return
0;
7103 if (str1.length ===
0) return str2.length;
7104 if (str2.length ===
0) return str1.length;
7107 var prevRow = new Array(str2.length +
1),
7108 curCol, nextCol, i, j, tmp;
7110 // initialise previous row
7111 for (i=
0; i
<prevRow.length; ++i) {
7115 // calculate current row distance from previous row
7116 for (i=
0; i
<str1.length; ++i) {
7119 for (j=
0; j
<str2.length; ++j) {
7123 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7126 if (nextCol
> tmp) {
7130 tmp = prevRow[j +
1] +
1;
7131 if (nextCol
> tmp) {
7135 // copy current col value into previous (in preparation for next iteration)
7136 prevRow[j] = curCol;
7139 // copy last col value into previous (in preparation for next iteration)
7140 prevRow[j] = nextCol;
7147 * Asynchronously calculate levenshtein distance of the two strings.
7149 * @param str1 String the first string.
7150 * @param str2 String the second string.
7151 * @param cb Function callback function with signature: function(Error err, int distance)
7152 * @param [options] Object additional options.
7153 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7155 getAsync: function(str1, str2, cb, options) {
7156 options = _extend({}, {
7161 if (str1 === str2) return cb(null,
0);
7162 if (str1.length ===
0) return cb(null, str2.length);
7163 if (str2.length ===
0) return cb(null, str1.length);
7166 var prevRow = new Array(str2.length +
1),
7169 startTime, currentTime;
7171 // initialise previous row
7172 for (i=
0; i
<prevRow.length; ++i) {
7180 var __calculate = function() {
7182 startTime = new Date().valueOf();
7183 currentTime = startTime;
7185 // keep going until one second has elapsed
7186 while (currentTime - startTime <
1000) {
7187 // reached end of current row?
7188 if (str2.length <= (++j)) {
7189 // copy current into previous (in preparation for next iteration)
7190 prevRow[j] = nextCol;
7192 // if already done all chars
7193 if (str1.length <= (++i)) {
7194 return cb(null, nextCol);
7196 // else if we have more left to do
7207 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7210 if (nextCol
> tmp) {
7214 tmp = prevRow[j +
1] +
1;
7215 if (nextCol
> tmp) {
7219 // copy current into previous (in preparation for next iteration)
7220 prevRow[j] = curCol;
7223 currentTime = new Date().valueOf();
7226 // send a progress update?
7227 if (null !== options.progress) {
7229 options.progress.call(null, (i *
100.0/ str1.length));
7231 return cb('Progress callback: ' + err.toString());
7236 _defer(__calculate);
7245 if (typeof define !== "undefined" && define !== null && define.amd) {
7251 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7252 module.exports = Levenshtein;
7255 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7256 self.Levenshtein = Levenshtein;
7258 // browser main thread
7259 else if (typeof window !== "undefined" && window !== null) {
7260 window.Levenshtein = Levenshtein;
7265 <script>(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=
0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void
0==a.length)throw Error(a.length+"/"+c);for(var d=
0;d
<a.length&&
0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=
0;b
<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=
0}u.prototype={getLength:function(){return this.data.length},
7266 write:function(a){for(var c=
0;c
<this.data.length;c++)a.put(this.data.charCodeAt(c),
8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(
0>a||this.moduleCount<=a||
0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(
1>this.typeNumber){for(var a=
1,a=
1;
40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=
0,e=
0;e
<c.length;e++)b+=c[e].dataCount;
7267 for(e=
0;e
<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,
4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=
8*b)break}this.typeNumber=a}this.makeImpl(!
1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=
4*this.typeNumber+
17;this.modules=Array(this.moduleCount);for(var d=
0;d
<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=
0;b
<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(
0,
0);this.setupPositionProbePattern(this.moduleCount-
7268 7,
0);this.setupPositionProbePattern(
0,this.moduleCount-
7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);
7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-
1;
7>=d;d++)if(!(-
1>=a+d||this.moduleCount<=a+d))for(var b=-
1;
7>=b;b++)-
1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
7269 0<=d&&
6>=d&&(
0==b||
6==b)||
0<=b&&
6>=b&&(
0==d||
6==d)||
2<=d&&
4>=d&&
2<=b&&
4>=b?!
0:!
1)},getBestMaskPattern:function(){for(var a=
0,c=
0,d=
0;
8>d;d++){this.makeImpl(!
0,d);var b=j.getLostPoint(this);if(
0==d||a
>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=
0;c
<this.modules.length;c++)for(var d=
1*c,b=
0;b
<this.modules[c].length;b++){var e=
1*b;this.modules[c][b]&&(a.beginFill(
0,
100),a.moveTo(e,d),a.lineTo(e+
1,d),a.lineTo(e+
1,d+
1),a.lineTo(e,d+
1),a.endFill())}return a},
7270 setupTimingPattern:function(){for(var a=
8;a
<this.moduleCount-
8;a++)null==this.modules[a][
6]&&(this.modules[a][
6]=
0==a%
2);for(a=
8;a
<this.moduleCount-
8;a++)null==this.modules[
6][a]&&(this.modules[
6][a]=
0==a%
2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=
0;c
<a.length;c++)for(var d=
0;d
<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-
2;
2>=f;f++)for(var i=-
2;
2>=i;i++)this.modules[b+f][e+i]=-
2==f||
2==f||-
2==i||
2==i||
0==f&&
0==i?!
0:!
1}},setupTypeNumber:function(a){for(var c=
7271 j.getBCHTypeNumber(this.typeNumber),d=
0;
18>d;d++){var b=!a&&
1==(c
>>d&
1);this.modules[Math.floor(d/
3)][d%
3+this.moduleCount-
8-
3]=b}for(d=
0;
18>d;d++)b=!a&&
1==(c
>>d&
1),this.modules[d%
3+this.moduleCount-
8-
3][Math.floor(d/
3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<
<3|c),b=
0;
15>b;b++){var e=!a&&
1==(d
>>b&
1);
6>b?this.modules[b][
8]=e:
8>b?this.modules[b+
1][
8]=e:this.modules[this.moduleCount-
15+b][
8]=e}for(b=
0;
15>b;b++)e=!a&&
1==(d
>>b&
1),
8>b?this.modules[
8][this.moduleCount-
7272 b-
1]=e:
9>b?this.modules[
8][
15-b-
1+
1]=e:this.modules[
8][
15-b-
1]=e;this.modules[this.moduleCount-
8][
8]=!a},mapData:function(a,c){for(var d=-
1,b=this.moduleCount-
1,e=
7,f=
0,i=this.moduleCount-
1;
0<i;i-=
2)for(
6==i&&i--;;){for(var g=
0;
2>g;g++)if(null==this.modules[b][i-g]){var n=!
1;f
<a.length&&(n=
1==(a[f]
>>>e&
1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -
1==e&&(f++,e=
7)}b+=d;if(
0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=
236;o.PAD1=
17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
7273 c),b=new t,e=
0;e
<d.length;e++){var f=d[e];b.put(f.mode,
4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=
0;e
<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()
>8*a)throw Error(
"code length overflow. ("+b.getLengthInBits()+
">"+
8*a+
")");for(b.getLengthInBits()+
4<=
8*a&&b.put(
0,
4);
0!=b.getLengthInBits()%
8;)b.putBit(!
1);for(;!(b.getLengthInBits()
>=
8*a);){b.put(o.PAD0,
8);if(b.getLengthInBits()
>=
8*a)break;b.put(o.PAD1,
8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
7274 0,b=
0,e=
0,f=Array(c.length),i=Array(c.length),g=
0;g
<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=
0;k
<f[g].length;k++)f[g][k]=
255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-
1)).mod(k);i[g]=Array(k.getLength()-
1);for(k=
0;k
<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=
0<=h?n.get(h):
0}for(k=g=
0;k
<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=
0;k
<b;k++)for(g=
0;g
<c.length;g++)k
<f[g].length&&
7275 (d[n++]=f[g][k]);for(k=
0;k
<e;k++)for(g=
0;g
<c.length;g++)k
<i[g].length&&(d[n++]=i[g][k]);return d};s=
4;for(var j={PATTERN_POSITION_TABLE:[[],[
6,
18],[
6,
22],[
6,
26],[
6,
30],[
6,
34],[
6,
22,
38],[
6,
24,
42],[
6,
26,
46],[
6,
28,
50],[
6,
30,
54],[
6,
32,
58],[
6,
34,
62],[
6,
26,
46,
66],[
6,
26,
48,
70],[
6,
26,
50,
74],[
6,
30,
54,
78],[
6,
30,
56,
82],[
6,
30,
58,
86],[
6,
34,
62,
90],[
6,
28,
50,
72,
94],[
6,
26,
50,
74,
98],[
6,
30,
54,
78,
102],[
6,
28,
54,
80,
106],[
6,
32,
58,
84,
110],[
6,
30,
58,
86,
114],[
6,
34,
62,
90,
118],[
6,
26,
50,
74,
98,
122],[
6,
30,
54,
78,
102,
126],[
6,
26,
52,
7276 78,
104,
130],[
6,
30,
56,
82,
108,
134],[
6,
34,
60,
86,
112,
138],[
6,
30,
58,
86,
114,
142],[
6,
34,
62,
90,
118,
146],[
6,
30,
54,
78,
102,
126,
150],[
6,
24,
50,
76,
102,
128,
154],[
6,
28,
54,
80,
106,
132,
158],[
6,
32,
58,
84,
110,
136,
162],[
6,
26,
54,
82,
110,
138,
166],[
6,
30,
58,
86,
114,
142,
170]],G15:
1335,G18:
7973,G15_MASK:
21522,getBCHTypeInfo:function(a){for(var c=a<
<10;
0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<
<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<
<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<
<12;
0<=j.getBCHDigit(c)-
7277 j.getBCHDigit(j.G18);)c^=j.G18<
<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<
<12|c},getBCHDigit:function(a){for(var c=
0;
0!=a;)c++,a
>>>=
1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-
1]},getMask:function(a,c,d){switch(a){case
0:return
0==(c+d)%
2;case
1:return
0==c%
2;case
2:return
0==d%
3;case
3:return
0==(c+d)%
3;case
4:return
0==(Math.floor(c/
2)+Math.floor(d/
3))%
2;case
5:return
0==c*d%
2+c*d%
3;case
6:return
0==(c*d%
2+c*d%
3)%
2;case
7:return
0==(c*d%
3+(c+d)%
2)%
2;default:throw Error("bad maskPattern:"+
7278 a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([
1],
0),d=
0;d
<a;d++)c=c.multiply(new q([
1,l.gexp(d)],
0));return c},getLengthInBits:function(a,c){if(
1<=c&&
10>c)switch(a){case
1:return
10;case
2:return
9;case s:return
8;case
8:return
8;default:throw Error("mode:"+a);}else if(
27>c)switch(a){case
1:return
12;case
2:return
11;case s:return
16;case
8:return
10;default:throw Error("mode:"+a);}else if(
41>c)switch(a){case
1:return
14;case
2:return
13;case s:return
16;case
8:return
12;default:throw Error("mode:"+
7279 a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=
0,b=
0;b
<c;b++)for(var e=
0;e
<c;e++){for(var f=
0,i=a.isDark(b,e),g=-
1;
1>=g;g++)if(!(
0>b+g||c<=b+g))for(var h=-
1;
1>=h;h++)
0>e+h||c<=e+h||
0==g&&
0==h||i==a.isDark(b+g,e+h)&&f++;
5<f&&(d+=
3+f-
5)}for(b=
0;b
<c-1;b++)for(e=
0;e
<c-1;e++)if(f=
0,a.isDark(b,e)&&f++,a.isDark(b+
1,e)&&f++,a.isDark(b,e+
1)&&f++,a.isDark(b+
1,e+
1)&&f++,
0==f||
4==f)d+=
3;for(b=
0;b
<c;b++)for(e=
0;e
<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+
1)&&a.isDark(b,e+
7280 2)&&a.isDark(b,e+
3)&&a.isDark(b,e+
4)&&!a.isDark(b,e+
5)&&a.isDark(b,e+
6)&&(d+=
40);for(e=
0;e
<c;e++)for(b=
0;b
<c-6;b++)a.isDark(b,e)&&!a.isDark(b+
1,e)&&a.isDark(b+
2,e)&&a.isDark(b+
3,e)&&a.isDark(b+
4,e)&&!a.isDark(b+
5,e)&&a.isDark(b+
6,e)&&(d+=
40);for(e=f=
0;e
<c;e++)for(b=
0;b
<c;b++)a.isDark(b,e)&&f++;a=Math.abs(
100*f/c/c-
50)/
5;return d+
10*a}},l={glog:function(a){if(
1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;
0>a;)a+=
255;for(;
256<=a;)a-=
255;return l.EXP_TABLE[a]},EXP_TABLE:Array(
256),
7281 LOG_TABLE:Array(
256)},m=
0;
8>m;m++)l.EXP_TABLE[m]=
1<
<m;for(m=
8;
256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-
4]^l.EXP_TABLE[m-
5]^l.EXP_TABLE[m-
6]^l.EXP_TABLE[m-
8];for(m=
0;
255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-
1),d=
0;d
<this.getLength();d++)for(var b=
0;b
<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,
0)},mod:function(a){if(
0>
7282 this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(
0))-l.glog(a.get(
0)),d=Array(this.getLength()),b=
0;b
<this.getLength();b++)d[b]=this.get(b);for(b=
0;b
<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,
0)).mod(a)}};p.RS_BLOCK_TABLE=[[
1,
26,
19],[
1,
26,
16],[
1,
26,
13],[
1,
26,
9],[
1,
44,
34],[
1,
44,
28],[
1,
44,
22],[
1,
44,
16],[
1,
70,
55],[
1,
70,
44],[
2,
35,
17],[
2,
35,
13],[
1,
100,
80],[
2,
50,
32],[
2,
50,
24],[
4,
25,
9],[
1,
134,
108],[
2,
67,
43],[
2,
33,
15,
2,
34,
16],[
2,
33,
11,
2,
34,
12],[
2,
86,
68],[
4,
43,
27],
7283 [
4,
43,
19],[
4,
43,
15],[
2,
98,
78],[
4,
49,
31],[
2,
32,
14,
4,
33,
15],[
4,
39,
13,
1,
40,
14],[
2,
121,
97],[
2,
60,
38,
2,
61,
39],[
4,
40,
18,
2,
41,
19],[
4,
40,
14,
2,
41,
15],[
2,
146,
116],[
3,
58,
36,
2,
59,
37],[
4,
36,
16,
4,
37,
17],[
4,
36,
12,
4,
37,
13],[
2,
86,
68,
2,
87,
69],[
4,
69,
43,
1,
70,
44],[
6,
43,
19,
2,
44,
20],[
6,
43,
15,
2,
44,
16],[
4,
101,
81],[
1,
80,
50,
4,
81,
51],[
4,
50,
22,
4,
51,
23],[
3,
36,
12,
8,
37,
13],[
2,
116,
92,
2,
117,
93],[
6,
58,
36,
2,
59,
37],[
4,
46,
20,
6,
47,
21],[
7,
42,
14,
4,
43,
15],[
4,
133,
107],[
8,
59,
37,
1,
60,
38],[
8,
44,
20,
4,
45,
21],[
12,
33,
11,
4,
34,
12],[
3,
145,
115,
1,
146,
7284 116],[
4,
64,
40,
5,
65,
41],[
11,
36,
16,
5,
37,
17],[
11,
36,
12,
5,
37,
13],[
5,
109,
87,
1,
110,
88],[
5,
65,
41,
5,
66,
42],[
5,
54,
24,
7,
55,
25],[
11,
36,
12],[
5,
122,
98,
1,
123,
99],[
7,
73,
45,
3,
74,
46],[
15,
43,
19,
2,
44,
20],[
3,
45,
15,
13,
46,
16],[
1,
135,
107,
5,
136,
108],[
10,
74,
46,
1,
75,
47],[
1,
50,
22,
15,
51,
23],[
2,
42,
14,
17,
43,
15],[
5,
150,
120,
1,
151,
121],[
9,
69,
43,
4,
70,
44],[
17,
50,
22,
1,
51,
23],[
2,
42,
14,
19,
43,
15],[
3,
141,
113,
4,
142,
114],[
3,
70,
44,
11,
71,
45],[
17,
47,
21,
4,
48,
22],[
9,
39,
13,
16,
40,
14],[
3,
135,
107,
5,
136,
108],[
3,
67,
41,
13,
68,
42],[
15,
54,
24,
5,
55,
25],[
15,
7285 43,
15,
10,
44,
16],[
4,
144,
116,
4,
145,
117],[
17,
68,
42],[
17,
50,
22,
6,
51,
23],[
19,
46,
16,
6,
47,
17],[
2,
139,
111,
7,
140,
112],[
17,
74,
46],[
7,
54,
24,
16,
55,
25],[
34,
37,
13],[
4,
151,
121,
5,
152,
122],[
4,
75,
47,
14,
76,
48],[
11,
54,
24,
14,
55,
25],[
16,
45,
15,
14,
46,
16],[
6,
147,
117,
4,
148,
118],[
6,
73,
45,
14,
74,
46],[
11,
54,
24,
16,
55,
25],[
30,
46,
16,
2,
47,
17],[
8,
132,
106,
4,
133,
107],[
8,
75,
47,
13,
76,
48],[
7,
54,
24,
22,
55,
25],[
22,
45,
15,
13,
46,
16],[
10,
142,
114,
2,
143,
115],[
19,
74,
46,
4,
75,
47],[
28,
50,
22,
6,
51,
23],[
33,
46,
16,
4,
47,
17],[
8,
152,
122,
4,
153,
123],[
22,
73,
45,
7286 3,
74,
46],[
8,
53,
23,
26,
54,
24],[
12,
45,
15,
28,
46,
16],[
3,
147,
117,
10,
148,
118],[
3,
73,
45,
23,
74,
46],[
4,
54,
24,
31,
55,
25],[
11,
45,
15,
31,
46,
16],[
7,
146,
116,
7,
147,
117],[
21,
73,
45,
7,
74,
46],[
1,
53,
23,
37,
54,
24],[
19,
45,
15,
26,
46,
16],[
5,
145,
115,
10,
146,
116],[
19,
75,
47,
10,
76,
48],[
15,
54,
24,
25,
55,
25],[
23,
45,
15,
25,
46,
16],[
13,
145,
115,
3,
146,
116],[
2,
74,
46,
29,
75,
47],[
42,
54,
24,
1,
55,
25],[
23,
45,
15,
28,
46,
16],[
17,
145,
115],[
10,
74,
46,
23,
75,
47],[
10,
54,
24,
35,
55,
25],[
19,
45,
15,
35,
46,
16],[
17,
145,
115,
1,
146,
116],[
14,
74,
46,
21,
75,
47],[
29,
54,
24,
19,
7287 55,
25],[
11,
45,
15,
46,
46,
16],[
13,
145,
115,
6,
146,
116],[
14,
74,
46,
23,
75,
47],[
44,
54,
24,
7,
55,
25],[
59,
46,
16,
1,
47,
17],[
12,
151,
121,
7,
152,
122],[
12,
75,
47,
26,
76,
48],[
39,
54,
24,
14,
55,
25],[
22,
45,
15,
41,
46,
16],[
6,
151,
121,
14,
152,
122],[
6,
75,
47,
34,
76,
48],[
46,
54,
24,
10,
55,
25],[
2,
45,
15,
64,
46,
16],[
17,
152,
122,
4,
153,
123],[
29,
74,
46,
14,
75,
47],[
49,
54,
24,
10,
55,
25],[
24,
45,
15,
46,
46,
16],[
4,
152,
122,
18,
153,
123],[
13,
74,
46,
32,
75,
47],[
48,
54,
24,
14,
55,
25],[
42,
45,
15,
32,
46,
16],[
20,
147,
117,
4,
148,
118],[
40,
75,
47,
7,
76,
48],[
43,
54,
24,
22,
55,
25],[
10,
7288 45,
15,
67,
46,
16],[
19,
148,
118,
6,
149,
119],[
18,
75,
47,
31,
76,
48],[
34,
54,
24,
34,
55,
25],[
20,
45,
15,
61,
46,
16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void
0==d)throw Error(
"bad rs block @ typeNumber:"+a+
"/errorCorrectLevel:"+c);for(var b=d.length/
3,e=[],f=
0;f
<b;f++)for(var h=d[
3*f+
0],g=d[
3*f+
1],j=d[
3*f+
2],l=
0;l
<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case
1:return p.RS_BLOCK_TABLE[
4*(a-
1)+
0];case
0:return p.RS_BLOCK_TABLE[
4*(a-
1)+
1];case
3:return p.RS_BLOCK_TABLE[
4*
7289 (a-
1)+
2];case
2:return p.RS_BLOCK_TABLE[
4*(a-
1)+
3]}};t.prototype={get:function(a){return
1==(this.buffer[Math.floor(a/
8)]
>>>7-a%
8&
1)},put:function(a,c){for(var d=
0;d
<c;d++)this.putBit(
1==(a
>>>c-d-
1&
1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/
8);this.buffer.length<=c&&this.buffer.push(
0);a&&(this.buffer[c]|=
128>>>this.length%
8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:
256,height:
256,typeNumber:-
1,
7290 correctLevel:
2,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
7291 j=Math.ceil((f+
1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r(
"<table></table>").css(
"width",h.width+
"px").css(
"height",h.height+
"px").css(
"border",
"0px").css(
"border-collapse",
"collapse").css(
"background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=
0;e
<a.getModuleCount();e++){f=r(
"<tr></tr>").css(
"height",b+
"px").appendTo(c);for(i=
0;i
<a.getModuleCount();i++)r(
"<td></td>").css(
"width",
7292 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7294 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.bitcoinjs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
7298 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7302 * The buffer module from node.js, for the browser.
7304 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7307 function compare(a, b) {
7315 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7316 if (a[i] !== b[i]) {
7331 function isBuffer(b) {
7332 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7333 return global.Buffer.isBuffer(b);
7335 return !!(b != null && b._isBuffer);
7338 // based on node assert, original notice:
7340 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7342 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7344 // Originally from narwhal.js (http://narwhaljs.org)
7345 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7347 // Permission is hereby granted, free of charge, to any person obtaining a copy
7348 // of this software and associated documentation files (the 'Software'), to
7349 // deal in the Software without restriction, including without limitation the
7350 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7351 // sell copies of the Software, and to permit persons to whom the Software is
7352 // furnished to do so, subject to the following conditions:
7354 // The above copyright notice and this permission notice shall be included in
7355 // all copies or substantial portions of the Software.
7357 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7358 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7359 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7360 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7361 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7362 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7364 var util = require('util/');
7365 var hasOwn = Object.prototype.hasOwnProperty;
7366 var pSlice = Array.prototype.slice;
7367 var functionsHaveNames = (function () {
7368 return function foo() {}.name === 'foo';
7370 function pToString (obj) {
7371 return Object.prototype.toString.call(obj);
7373 function isView(arrbuf) {
7374 if (isBuffer(arrbuf)) {
7377 if (typeof global.ArrayBuffer !== 'function') {
7380 if (typeof ArrayBuffer.isView === 'function') {
7381 return ArrayBuffer.isView(arrbuf);
7386 if (arrbuf instanceof DataView) {
7389 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7394 //
1. The assert module provides functions that throw
7395 // AssertionError's when particular conditions are not met. The
7396 // assert module must conform to the following interface.
7398 var assert = module.exports = ok;
7400 //
2. The AssertionError is defined in assert.
7401 // new assert.AssertionError({ message: message,
7403 // expected: expected })
7405 var regex = /\s*function\s+([^\(\s]*)\s*/;
7406 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7407 function getName(func) {
7408 if (!util.isFunction(func)) {
7411 if (functionsHaveNames) {
7414 var str = func.toString();
7415 var match = str.match(regex);
7416 return match && match[
1];
7418 assert.AssertionError = function AssertionError(options) {
7419 this.name = 'AssertionError';
7420 this.actual = options.actual;
7421 this.expected = options.expected;
7422 this.operator = options.operator;
7423 if (options.message) {
7424 this.message = options.message;
7425 this.generatedMessage = false;
7427 this.message = getMessage(this);
7428 this.generatedMessage = true;
7430 var stackStartFunction = options.stackStartFunction || fail;
7431 if (Error.captureStackTrace) {
7432 Error.captureStackTrace(this, stackStartFunction);
7434 // non v8 browsers so we can have a stacktrace
7435 var err = new Error();
7437 var out = err.stack;
7439 // try to strip useless frames
7440 var fn_name = getName(stackStartFunction);
7441 var idx = out.indexOf('\n' + fn_name);
7443 // once we have located the function frame
7444 // we need to strip out everything before it (and its line)
7445 var next_line = out.indexOf('\n', idx +
1);
7446 out = out.substring(next_line +
1);
7454 // assert.AssertionError instanceof Error
7455 util.inherits(assert.AssertionError, Error);
7457 function truncate(s, n) {
7458 if (typeof s === 'string') {
7459 return s.length < n ? s : s.slice(
0, n);
7464 function inspect(something) {
7465 if (functionsHaveNames || !util.isFunction(something)) {
7466 return util.inspect(something);
7468 var rawname = getName(something);
7469 var name = rawname ? ': ' + rawname : '';
7470 return '[Function' + name + ']';
7472 function getMessage(self) {
7473 return truncate(inspect(self.actual),
128) + ' ' +
7474 self.operator + ' ' +
7475 truncate(inspect(self.expected),
128);
7478 // At present only the three keys mentioned above are used and
7479 // understood by the spec. Implementations or sub modules can pass
7480 // other keys to the AssertionError's constructor - they will be
7483 //
3. All of the following functions must throw an AssertionError
7484 // when a corresponding condition is not met, with a message that
7485 // may be undefined if not provided. All assertion methods provide
7486 // both the actual and expected values to the assertion error for
7487 // display purposes.
7489 function fail(actual, expected, message, operator, stackStartFunction) {
7490 throw new assert.AssertionError({
7495 stackStartFunction: stackStartFunction
7499 // EXTENSION! allows for well behaved errors defined elsewhere.
7502 //
4. Pure assertion tests whether a value is truthy, as determined
7504 // assert.ok(guard, message_opt);
7505 // This statement is equivalent to assert.equal(true, !!guard,
7506 // message_opt);. To test strictly for the value true, use
7507 // assert.strictEqual(true, guard, message_opt);.
7509 function ok(value, message) {
7510 if (!value) fail(value, true, message, '==', assert.ok);
7514 //
5. The equality assertion tests shallow, coercive equality with
7516 // assert.equal(actual, expected, message_opt);
7518 assert.equal = function equal(actual, expected, message) {
7519 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7522 //
6. The non-equality assertion tests for whether two objects are not equal
7523 // with != assert.notEqual(actual, expected, message_opt);
7525 assert.notEqual = function notEqual(actual, expected, message) {
7526 if (actual == expected) {
7527 fail(actual, expected, message, '!=', assert.notEqual);
7531 //
7. The equivalence assertion tests a deep equality relation.
7532 // assert.deepEqual(actual, expected, message_opt);
7534 assert.deepEqual = function deepEqual(actual, expected, message) {
7535 if (!_deepEqual(actual, expected, false)) {
7536 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7540 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7541 if (!_deepEqual(actual, expected, true)) {
7542 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7546 function _deepEqual(actual, expected, strict, memos) {
7547 //
7.1. All identical values are equivalent, as determined by ===.
7548 if (actual === expected) {
7550 } else if (isBuffer(actual) && isBuffer(expected)) {
7551 return compare(actual, expected) ===
0;
7553 //
7.2. If the expected value is a Date object, the actual value is
7554 // equivalent if it is also a Date object that refers to the same time.
7555 } else if (util.isDate(actual) && util.isDate(expected)) {
7556 return actual.getTime() === expected.getTime();
7558 //
7.3 If the expected value is a RegExp object, the actual value is
7559 // equivalent if it is also a RegExp object with the same source and
7560 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7561 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7562 return actual.source === expected.source &&
7563 actual.global === expected.global &&
7564 actual.multiline === expected.multiline &&
7565 actual.lastIndex === expected.lastIndex &&
7566 actual.ignoreCase === expected.ignoreCase;
7568 //
7.4. Other pairs that do not both pass typeof value == 'object',
7569 // equivalence is determined by ==.
7570 } else if ((actual === null || typeof actual !== 'object') &&
7571 (expected === null || typeof expected !== 'object')) {
7572 return strict ? actual === expected : actual == expected;
7574 // If both values are instances of typed arrays, wrap their underlying
7575 // ArrayBuffers in a Buffer each to increase performance
7576 // This optimization requires the arrays to have the same type as checked by
7577 // Object.prototype.toString (aka pToString). Never perform binary
7578 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7579 // bit patterns are not identical.
7580 } else if (isView(actual) && isView(expected) &&
7581 pToString(actual) === pToString(expected) &&
7582 !(actual instanceof Float32Array ||
7583 actual instanceof Float64Array)) {
7584 return compare(new Uint8Array(actual.buffer),
7585 new Uint8Array(expected.buffer)) ===
0;
7587 //
7.5 For all other Object pairs, including Array objects, equivalence is
7588 // determined by having the same number of owned properties (as verified
7589 // with Object.prototype.hasOwnProperty.call), the same set of keys
7590 // (although not necessarily the same order), equivalent values for every
7591 // corresponding key, and an identical 'prototype' property. Note: this
7592 // accounts for both named and indexed properties on Arrays.
7593 } else if (isBuffer(actual) !== isBuffer(expected)) {
7596 memos = memos || {actual: [], expected: []};
7598 var actualIndex = memos.actual.indexOf(actual);
7599 if (actualIndex !== -
1) {
7600 if (actualIndex === memos.expected.indexOf(expected)) {
7605 memos.actual.push(actual);
7606 memos.expected.push(expected);
7608 return objEquiv(actual, expected, strict, memos);
7612 function isArguments(object) {
7613 return Object.prototype.toString.call(object) == '[object Arguments]';
7616 function objEquiv(a, b, strict, actualVisitedObjects) {
7617 if (a === null || a === undefined || b === null || b === undefined)
7619 // if one is a primitive, the other must be same
7620 if (util.isPrimitive(a) || util.isPrimitive(b))
7622 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7624 var aIsArgs = isArguments(a);
7625 var bIsArgs = isArguments(b);
7626 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7631 return _deepEqual(a, b, strict);
7633 var ka = objectKeys(a);
7634 var kb = objectKeys(b);
7636 // having the same number of owned properties (keys incorporates
7638 if (ka.length !== kb.length)
7640 //the same set of keys (although not necessarily the same order),
7644 for (i = ka.length -
1; i
>=
0; i--) {
7645 if (ka[i] !== kb[i])
7648 //equivalent values for every corresponding key, and
7649 //~~~possibly expensive deep test
7650 for (i = ka.length -
1; i
>=
0; i--) {
7652 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7658 //
8. The non-equivalence assertion tests for any deep inequality.
7659 // assert.notDeepEqual(actual, expected, message_opt);
7661 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7662 if (_deepEqual(actual, expected, false)) {
7663 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7667 assert.notDeepStrictEqual = notDeepStrictEqual;
7668 function notDeepStrictEqual(actual, expected, message) {
7669 if (_deepEqual(actual, expected, true)) {
7670 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7675 //
9. The strict equality assertion tests strict equality, as determined by ===.
7676 // assert.strictEqual(actual, expected, message_opt);
7678 assert.strictEqual = function strictEqual(actual, expected, message) {
7679 if (actual !== expected) {
7680 fail(actual, expected, message, '===', assert.strictEqual);
7684 //
10. The strict non-equality assertion tests for strict inequality, as
7685 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7687 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7688 if (actual === expected) {
7689 fail(actual, expected, message, '!==', assert.notStrictEqual);
7693 function expectedException(actual, expected) {
7694 if (!actual || !expected) {
7698 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7699 return expected.test(actual);
7703 if (actual instanceof expected) {
7707 // Ignore. The instanceof check doesn't work for arrow functions.
7710 if (Error.isPrototypeOf(expected)) {
7714 return expected.call({}, actual) === true;
7717 function _tryBlock(block) {
7727 function _throws(shouldThrow, block, expected, message) {
7730 if (typeof block !== 'function') {
7731 throw new TypeError('"block" argument must be a function');
7734 if (typeof expected === 'string') {
7739 actual = _tryBlock(block);
7741 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7742 (message ? ' ' + message : '.');
7744 if (shouldThrow && !actual) {
7745 fail(actual, expected, 'Missing expected exception' + message);
7748 var userProvidedMessage = typeof message === 'string';
7749 var isUnwantedException = !shouldThrow && util.isError(actual);
7750 var isUnexpectedException = !shouldThrow && actual && !expected;
7752 if ((isUnwantedException &&
7753 userProvidedMessage &&
7754 expectedException(actual, expected)) ||
7755 isUnexpectedException) {
7756 fail(actual, expected, 'Got unwanted exception' + message);
7759 if ((shouldThrow && actual && expected &&
7760 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7765 //
11. Expected to throw an error:
7766 // assert.throws(block, Error_opt, message_opt);
7768 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7769 _throws(true, block, error, message);
7772 // EXTENSION! This is annoying to write outside this module.
7773 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7774 _throws(false, block, error, message);
7777 assert.ifError = function(err) { if (err) throw err; };
7779 var objectKeys = Object.keys || function (obj) {
7781 for (var key in obj) {
7782 if (hasOwn.call(obj, key)) keys.push(key);
7787 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7788 },{"util/":
32}],
2:[function(require,module,exports){
7791 exports.byteLength = byteLength
7792 exports.toByteArray = toByteArray
7793 exports.fromByteArray = fromByteArray
7797 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7799 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7800 for (var i =
0, len = code.length; i < len; ++i) {
7802 revLookup[code.charCodeAt(i)] = i
7805 revLookup['-'.charCodeAt(
0)] =
62
7806 revLookup['_'.charCodeAt(
0)] =
63
7808 function placeHoldersCount (b64) {
7809 var len = b64.length
7811 throw new Error('Invalid string. Length must be a multiple of
4')
7814 // the number of equal signs (place holders)
7815 // if there are two placeholders, than the two characters before it
7816 // represent one byte
7817 // if there is only one, then the three characters before it represent
2 bytes
7818 // this is just a cheap hack to not do indexOf twice
7819 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7822 function byteLength (b64) {
7823 // base64 is
4/
3 + up to two characters of the original data
7824 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7827 function toByteArray (b64) {
7828 var i, l, tmp, placeHolders, arr
7829 var len = b64.length
7830 placeHolders = placeHoldersCount(b64)
7832 arr = new Arr((len *
3 /
4) - placeHolders)
7834 // if there are placeholders, only get up to the last complete
4 chars
7835 l = placeHolders
> 0 ? len -
4 : len
7839 for (i =
0; i < l; i +=
4) {
7840 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7841 arr[L++] = (tmp
>> 16) &
0xFF
7842 arr[L++] = (tmp
>> 8) &
0xFF
7843 arr[L++] = tmp &
0xFF
7846 if (placeHolders ===
2) {
7847 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7848 arr[L++] = tmp &
0xFF
7849 } else if (placeHolders ===
1) {
7850 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7851 arr[L++] = (tmp
>> 8) &
0xFF
7852 arr[L++] = tmp &
0xFF
7858 function tripletToBase64 (num) {
7859 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7862 function encodeChunk (uint8, start, end) {
7865 for (var i = start; i < end; i +=
3) {
7866 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7867 output.push(tripletToBase64(tmp))
7869 return output.join('')
7872 function fromByteArray (uint8) {
7874 var len = uint8.length
7875 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7878 var maxChunkLength =
16383 // must be multiple of
3
7880 // go through the array every three bytes, we'll deal with trailing stuff later
7881 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7882 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7885 // pad the end with zeros, but make sure to not forget the extra bytes
7886 if (extraBytes ===
1) {
7887 tmp = uint8[len -
1]
7888 output += lookup[tmp
>> 2]
7889 output += lookup[(tmp <<
4) &
0x3F]
7891 } else if (extraBytes ===
2) {
7892 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7893 output += lookup[tmp
>> 10]
7894 output += lookup[(tmp
>> 4) &
0x3F]
7895 output += lookup[(tmp <<
2) &
0x3F]
7901 return parts.join('')
7904 },{}],
3:[function(require,module,exports){
7906 },{}],
4:[function(require,module,exports){
7908 * The buffer module from node.js, for the browser.
7910 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7913 /* eslint-disable no-proto */
7917 var base64 = require('base64-js')
7918 var ieee754 = require('ieee754')
7920 exports.Buffer = Buffer
7921 exports.SlowBuffer = SlowBuffer
7922 exports.INSPECT_MAX_BYTES =
50
7924 var K_MAX_LENGTH =
0x7fffffff
7925 exports.kMaxLength = K_MAX_LENGTH
7928 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7929 * === true Use Uint8Array implementation (fastest)
7930 * === false Print warning and recommend using `buffer` v4.x which has an Object
7931 * implementation (most compatible, even IE6)
7933 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7934 * Opera
11.6+, iOS
4.2+.
7936 * We report that the browser does not support typed arrays if the are not subclassable
7937 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7938 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7939 * for __proto__ and has a buggy typed array implementation.
7941 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7943 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7944 typeof console.error === 'function') {
7946 'This browser lacks typed array (Uint8Array) support which is required by ' +
7947 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7951 function typedArraySupport () {
7952 // Can typed array instances can be augmented?
7954 var arr = new Uint8Array(
1)
7955 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7956 return arr.foo() ===
42
7962 function createBuffer (length) {
7963 if (length
> K_MAX_LENGTH) {
7964 throw new RangeError('Invalid typed array length')
7966 // Return an augmented `Uint8Array` instance
7967 var buf = new Uint8Array(length)
7968 buf.__proto__ = Buffer.prototype
7973 * The Buffer constructor returns instances of `Uint8Array` that have their
7974 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
7975 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
7976 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
7977 * returns a single octet.
7979 * The `Uint8Array` prototype remains unmodified.
7982 function Buffer (arg, encodingOrOffset, length) {
7984 if (typeof arg === 'number') {
7985 if (typeof encodingOrOffset === 'string') {
7987 'If encoding is specified then the first argument must be a string'
7990 return allocUnsafe(arg)
7992 return from(arg, encodingOrOffset, length)
7995 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
7996 if (typeof Symbol !== 'undefined' && Symbol.species &&
7997 Buffer[Symbol.species] === Buffer) {
7998 Object.defineProperty(Buffer, Symbol.species, {
8006 Buffer.poolSize =
8192 // not used by this implementation
8008 function from (value, encodingOrOffset, length) {
8009 if (typeof value === 'number') {
8010 throw new TypeError('"value" argument must not be a number')
8013 if (value instanceof ArrayBuffer) {
8014 return fromArrayBuffer(value, encodingOrOffset, length)
8017 if (typeof value === 'string') {
8018 return fromString(value, encodingOrOffset)
8021 return fromObject(value)
8025 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8026 * if value is a number.
8027 * Buffer.from(str[, encoding])
8028 * Buffer.from(array)
8029 * Buffer.from(buffer)
8030 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8032 Buffer.from = function (value, encodingOrOffset, length) {
8033 return from(value, encodingOrOffset, length)
8036 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8037 // https://github.com/feross/buffer/pull/
148
8038 Buffer.prototype.__proto__ = Uint8Array.prototype
8039 Buffer.__proto__ = Uint8Array
8041 function assertSize (size) {
8042 if (typeof size !== 'number') {
8043 throw new TypeError('"size" argument must be a number')
8044 } else if (size <
0) {
8045 throw new RangeError('"size" argument must not be negative')
8049 function alloc (size, fill, encoding) {
8052 return createBuffer(size)
8054 if (fill !== undefined) {
8055 // Only pay attention to encoding if it's a string. This
8056 // prevents accidentally sending in a number that would
8057 // be interpretted as a start offset.
8058 return typeof encoding === 'string'
8059 ? createBuffer(size).fill(fill, encoding)
8060 : createBuffer(size).fill(fill)
8062 return createBuffer(size)
8066 * Creates a new filled Buffer instance.
8067 * alloc(size[, fill[, encoding]])
8069 Buffer.alloc = function (size, fill, encoding) {
8070 return alloc(size, fill, encoding)
8073 function allocUnsafe (size) {
8075 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8079 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8081 Buffer.allocUnsafe = function (size) {
8082 return allocUnsafe(size)
8085 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8087 Buffer.allocUnsafeSlow = function (size) {
8088 return allocUnsafe(size)
8091 function fromString (string, encoding) {
8092 if (typeof encoding !== 'string' || encoding === '') {
8096 if (!Buffer.isEncoding(encoding)) {
8097 throw new TypeError('"encoding" must be a valid string encoding')
8100 var length = byteLength(string, encoding) |
0
8101 var buf = createBuffer(length)
8103 var actual = buf.write(string, encoding)
8105 if (actual !== length) {
8106 // Writing a hex string, for example, that contains invalid characters will
8107 // cause everything after the first invalid character to be ignored. (e.g.
8108 // 'abxxcd' will be treated as 'ab')
8109 buf = buf.slice(
0, actual)
8115 function fromArrayLike (array) {
8116 var length = array.length <
0 ?
0 : checked(array.length) |
0
8117 var buf = createBuffer(length)
8118 for (var i =
0; i < length; i +=
1) {
8119 buf[i] = array[i] &
255
8124 function fromArrayBuffer (array, byteOffset, length) {
8125 if (byteOffset <
0 || array.byteLength < byteOffset) {
8126 throw new RangeError('\'offset\' is out of bounds')
8129 if (array.byteLength < byteOffset + (length ||
0)) {
8130 throw new RangeError('\'length\' is out of bounds')
8134 if (byteOffset === undefined && length === undefined) {
8135 buf = new Uint8Array(array)
8136 } else if (length === undefined) {
8137 buf = new Uint8Array(array, byteOffset)
8139 buf = new Uint8Array(array, byteOffset, length)
8142 // Return an augmented `Uint8Array` instance
8143 buf.__proto__ = Buffer.prototype
8147 function fromObject (obj) {
8148 if (Buffer.isBuffer(obj)) {
8149 var len = checked(obj.length) |
0
8150 var buf = createBuffer(len)
8152 if (buf.length ===
0) {
8156 obj.copy(buf,
0,
0, len)
8161 if (isArrayBufferView(obj) || 'length' in obj) {
8162 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8163 return createBuffer(
0)
8165 return fromArrayLike(obj)
8168 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8169 return fromArrayLike(obj.data)
8173 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8176 function checked (length) {
8177 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8178 // length is NaN (which is otherwise coerced to zero.)
8179 if (length
>= K_MAX_LENGTH) {
8180 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8181 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8186 function SlowBuffer (length) {
8187 if (+length != length) { // eslint-disable-line eqeqeq
8190 return Buffer.alloc(+length)
8193 Buffer.isBuffer = function isBuffer (b) {
8194 return b != null && b._isBuffer === true
8197 Buffer.compare = function compare (a, b) {
8198 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8199 throw new TypeError('Arguments must be Buffers')
8202 if (a === b) return
0
8207 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8208 if (a[i] !== b[i]) {
8215 if (x < y) return -
1
8220 Buffer.isEncoding = function isEncoding (encoding) {
8221 switch (String(encoding).toLowerCase()) {
8239 Buffer.concat = function concat (list, length) {
8240 if (!Array.isArray(list)) {
8241 throw new TypeError('"list" argument must be an Array of Buffers')
8244 if (list.length ===
0) {
8245 return Buffer.alloc(
0)
8249 if (length === undefined) {
8251 for (i =
0; i < list.length; ++i) {
8252 length += list[i].length
8256 var buffer = Buffer.allocUnsafe(length)
8258 for (i =
0; i < list.length; ++i) {
8260 if (!Buffer.isBuffer(buf)) {
8261 throw new TypeError('"list" argument must be an Array of Buffers')
8263 buf.copy(buffer, pos)
8269 function byteLength (string, encoding) {
8270 if (Buffer.isBuffer(string)) {
8271 return string.length
8273 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8274 return string.byteLength
8276 if (typeof string !== 'string') {
8277 string = '' + string
8280 var len = string.length
8281 if (len ===
0) return
0
8283 // Use a for loop to avoid recursion
8284 var loweredCase = false
8294 return utf8ToBytes(string).length
8303 return base64ToBytes(string).length
8305 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8306 encoding = ('' + encoding).toLowerCase()
8311 Buffer.byteLength = byteLength
8313 function slowToString (encoding, start, end) {
8314 var loweredCase = false
8316 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8317 // property of a typed array.
8319 // This behaves neither like String nor Uint8Array in that we set start/end
8320 // to their upper/lower bounds if the value passed is out of range.
8321 // undefined is handled specially as per ECMA-
262 6th Edition,
8322 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8323 if (start === undefined || start <
0) {
8326 // Return early if start
> this.length. Done here to prevent potential uint32
8327 // coercion fail below.
8328 if (start
> this.length) {
8332 if (end === undefined || end
> this.length) {
8340 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8348 if (!encoding) encoding = 'utf8'
8353 return hexSlice(this, start, end)
8357 return utf8Slice(this, start, end)
8360 return asciiSlice(this, start, end)
8364 return latin1Slice(this, start, end)
8367 return base64Slice(this, start, end)
8373 return utf16leSlice(this, start, end)
8376 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8377 encoding = (encoding + '').toLowerCase()
8383 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8384 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8385 // reliably in a browserify context because there could be multiple different
8386 // copies of the 'buffer' package in use. This method works even for Buffer
8387 // instances that were created from another copy of the `buffer` package.
8388 // See: https://github.com/feross/buffer/issues/
154
8389 Buffer.prototype._isBuffer = true
8391 function swap (b, n, m) {
8397 Buffer.prototype.swap16 = function swap16 () {
8398 var len = this.length
8399 if (len %
2 !==
0) {
8400 throw new RangeError('Buffer size must be a multiple of
16-bits')
8402 for (var i =
0; i < len; i +=
2) {
8403 swap(this, i, i +
1)
8408 Buffer.prototype.swap32 = function swap32 () {
8409 var len = this.length
8410 if (len %
4 !==
0) {
8411 throw new RangeError('Buffer size must be a multiple of
32-bits')
8413 for (var i =
0; i < len; i +=
4) {
8414 swap(this, i, i +
3)
8415 swap(this, i +
1, i +
2)
8420 Buffer.prototype.swap64 = function swap64 () {
8421 var len = this.length
8422 if (len %
8 !==
0) {
8423 throw new RangeError('Buffer size must be a multiple of
64-bits')
8425 for (var i =
0; i < len; i +=
8) {
8426 swap(this, i, i +
7)
8427 swap(this, i +
1, i +
6)
8428 swap(this, i +
2, i +
5)
8429 swap(this, i +
3, i +
4)
8434 Buffer.prototype.toString = function toString () {
8435 var length = this.length
8436 if (length ===
0) return ''
8437 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8438 return slowToString.apply(this, arguments)
8441 Buffer.prototype.equals = function equals (b) {
8442 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8443 if (this === b) return true
8444 return Buffer.compare(this, b) ===
0
8447 Buffer.prototype.inspect = function inspect () {
8449 var max = exports.INSPECT_MAX_BYTES
8450 if (this.length
> 0) {
8451 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8452 if (this.length
> max) str += ' ... '
8454 return '
<Buffer ' + str + '
>'
8457 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8458 if (!Buffer.isBuffer(target)) {
8459 throw new TypeError('Argument must be a Buffer')
8462 if (start === undefined) {
8465 if (end === undefined) {
8466 end = target ? target.length :
0
8468 if (thisStart === undefined) {
8471 if (thisEnd === undefined) {
8472 thisEnd = this.length
8475 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8476 throw new RangeError('out of range index')
8479 if (thisStart
>= thisEnd && start
>= end) {
8482 if (thisStart
>= thisEnd) {
8494 if (this === target) return
0
8496 var x = thisEnd - thisStart
8498 var len = Math.min(x, y)
8500 var thisCopy = this.slice(thisStart, thisEnd)
8501 var targetCopy = target.slice(start, end)
8503 for (var i =
0; i < len; ++i) {
8504 if (thisCopy[i] !== targetCopy[i]) {
8511 if (x < y) return -
1
8516 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8517 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8520 // - buffer - a Buffer to search
8521 // - val - a string, Buffer, or number
8522 // - byteOffset - an index into `buffer`; will be clamped to an int32
8523 // - encoding - an optional encoding, relevant is val is a string
8524 // - dir - true for indexOf, false for lastIndexOf
8525 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8526 // Empty buffer means no match
8527 if (buffer.length ===
0) return -
1
8529 // Normalize byteOffset
8530 if (typeof byteOffset === 'string') {
8531 encoding = byteOffset
8533 } else if (byteOffset
> 0x7fffffff) {
8534 byteOffset =
0x7fffffff
8535 } else if (byteOffset < -
0x80000000) {
8536 byteOffset = -
0x80000000
8538 byteOffset = +byteOffset // Coerce to Number.
8539 if (numberIsNaN(byteOffset)) {
8540 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8541 byteOffset = dir ?
0 : (buffer.length -
1)
8544 // Normalize byteOffset: negative offsets start from the end of the buffer
8545 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8546 if (byteOffset
>= buffer.length) {
8548 else byteOffset = buffer.length -
1
8549 } else if (byteOffset <
0) {
8550 if (dir) byteOffset =
0
8555 if (typeof val === 'string') {
8556 val = Buffer.from(val, encoding)
8559 // Finally, search either indexOf (if dir is true) or lastIndexOf
8560 if (Buffer.isBuffer(val)) {
8561 // Special case: looking for empty string/buffer always fails
8562 if (val.length ===
0) {
8565 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8566 } else if (typeof val === 'number') {
8567 val = val &
0xFF // Search for a byte value [
0-
255]
8568 if (typeof Uint8Array.prototype.indexOf === 'function') {
8570 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8572 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8575 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8578 throw new TypeError('val must be string, number or Buffer')
8581 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8583 var arrLength = arr.length
8584 var valLength = val.length
8586 if (encoding !== undefined) {
8587 encoding = String(encoding).toLowerCase()
8588 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8589 encoding === 'utf16le' || encoding === 'utf-
16le') {
8590 if (arr.length <
2 || val.length <
2) {
8600 function read (buf, i) {
8601 if (indexSize ===
1) {
8604 return buf.readUInt16BE(i * indexSize)
8611 for (i = byteOffset; i < arrLength; i++) {
8612 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8613 if (foundIndex === -
1) foundIndex = i
8614 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8616 if (foundIndex !== -
1) i -= i - foundIndex
8621 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8622 for (i = byteOffset; i
>=
0; i--) {
8624 for (var j =
0; j < valLength; j++) {
8625 if (read(arr, i + j) !== read(val, j)) {
8637 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8638 return this.indexOf(val, byteOffset, encoding) !== -
1
8641 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8642 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8645 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8646 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8649 function hexWrite (buf, string, offset, length) {
8650 offset = Number(offset) ||
0
8651 var remaining = buf.length - offset
8655 length = Number(length)
8656 if (length
> remaining) {
8661 // must be an even number of digits
8662 var strLen = string.length
8663 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8665 if (length
> strLen /
2) {
8668 for (var i =
0; i < length; ++i) {
8669 var parsed = parseInt(string.substr(i *
2,
2),
16)
8670 if (numberIsNaN(parsed)) return i
8671 buf[offset + i] = parsed
8676 function utf8Write (buf, string, offset, length) {
8677 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8680 function asciiWrite (buf, string, offset, length) {
8681 return blitBuffer(asciiToBytes(string), buf, offset, length)
8684 function latin1Write (buf, string, offset, length) {
8685 return asciiWrite(buf, string, offset, length)
8688 function base64Write (buf, string, offset, length) {
8689 return blitBuffer(base64ToBytes(string), buf, offset, length)
8692 function ucs2Write (buf, string, offset, length) {
8693 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8696 Buffer.prototype.write = function write (string, offset, length, encoding) {
8697 // Buffer#write(string)
8698 if (offset === undefined) {
8700 length = this.length
8702 // Buffer#write(string, encoding)
8703 } else if (length === undefined && typeof offset === 'string') {
8705 length = this.length
8707 // Buffer#write(string, offset[, length][, encoding])
8708 } else if (isFinite(offset)) {
8709 offset = offset
>>> 0
8710 if (isFinite(length)) {
8711 length = length
>>> 0
8712 if (encoding === undefined) encoding = 'utf8'
8719 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8723 var remaining = this.length - offset
8724 if (length === undefined || length
> remaining) length = remaining
8726 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8727 throw new RangeError('Attempt to write outside buffer bounds')
8730 if (!encoding) encoding = 'utf8'
8732 var loweredCase = false
8736 return hexWrite(this, string, offset, length)
8740 return utf8Write(this, string, offset, length)
8743 return asciiWrite(this, string, offset, length)
8747 return latin1Write(this, string, offset, length)
8750 // Warning: maxLength not taken into account in base64Write
8751 return base64Write(this, string, offset, length)
8757 return ucs2Write(this, string, offset, length)
8760 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8761 encoding = ('' + encoding).toLowerCase()
8767 Buffer.prototype.toJSON = function toJSON () {
8770 data: Array.prototype.slice.call(this._arr || this,
0)
8774 function base64Slice (buf, start, end) {
8775 if (start ===
0 && end === buf.length) {
8776 return base64.fromByteArray(buf)
8778 return base64.fromByteArray(buf.slice(start, end))
8782 function utf8Slice (buf, start, end) {
8783 end = Math.min(buf.length, end)
8788 var firstByte = buf[i]
8789 var codePoint = null
8790 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8791 : (firstByte
> 0xDF) ?
3
8792 : (firstByte
> 0xBF) ?
2
8795 if (i + bytesPerSequence <= end) {
8796 var secondByte, thirdByte, fourthByte, tempCodePoint
8798 switch (bytesPerSequence) {
8800 if (firstByte <
0x80) {
8801 codePoint = firstByte
8805 secondByte = buf[i +
1]
8806 if ((secondByte &
0xC0) ===
0x80) {
8807 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8808 if (tempCodePoint
> 0x7F) {
8809 codePoint = tempCodePoint
8814 secondByte = buf[i +
1]
8815 thirdByte = buf[i +
2]
8816 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8817 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8818 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8819 codePoint = tempCodePoint
8824 secondByte = buf[i +
1]
8825 thirdByte = buf[i +
2]
8826 fourthByte = buf[i +
3]
8827 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8828 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8829 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8830 codePoint = tempCodePoint
8836 if (codePoint === null) {
8837 // we did not generate a valid codePoint so insert a
8838 // replacement char (U+FFFD) and advance only
1 byte
8840 bytesPerSequence =
1
8841 } else if (codePoint
> 0xFFFF) {
8842 // encode to utf16 (surrogate pair dance)
8843 codePoint -=
0x10000
8844 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8845 codePoint =
0xDC00 | codePoint &
0x3FF
8849 i += bytesPerSequence
8852 return decodeCodePointsArray(res)
8855 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8856 // the lowest limit is Chrome, with
0x10000 args.
8857 // We go
1 magnitude less, for safety
8858 var MAX_ARGUMENTS_LENGTH =
0x1000
8860 function decodeCodePointsArray (codePoints) {
8861 var len = codePoints.length
8862 if (len <= MAX_ARGUMENTS_LENGTH) {
8863 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8866 // Decode in chunks to avoid
"call stack size exceeded".
8870 res += String.fromCharCode.apply(
8872 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8878 function asciiSlice (buf, start, end) {
8880 end = Math.min(buf.length, end)
8882 for (var i = start; i < end; ++i) {
8883 ret += String.fromCharCode(buf[i] &
0x7F)
8888 function latin1Slice (buf, start, end) {
8890 end = Math.min(buf.length, end)
8892 for (var i = start; i < end; ++i) {
8893 ret += String.fromCharCode(buf[i])
8898 function hexSlice (buf, start, end) {
8899 var len = buf.length
8901 if (!start || start <
0) start =
0
8902 if (!end || end <
0 || end
> len) end = len
8905 for (var i = start; i < end; ++i) {
8906 out += toHex(buf[i])
8911 function utf16leSlice (buf, start, end) {
8912 var bytes = buf.slice(start, end)
8914 for (var i =
0; i < bytes.length; i +=
2) {
8915 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8920 Buffer.prototype.slice = function slice (start, end) {
8921 var len = this.length
8923 end = end === undefined ? len : ~~end
8927 if (start <
0) start =
0
8928 } else if (start
> len) {
8934 if (end <
0) end =
0
8935 } else if (end
> len) {
8939 if (end < start) end = start
8941 var newBuf = this.subarray(start, end)
8942 // Return an augmented `Uint8Array` instance
8943 newBuf.__proto__ = Buffer.prototype
8948 * Need to make sure that buffer isn't trying to write out of bounds.
8950 function checkOffset (offset, ext, length) {
8951 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8952 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8955 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8956 offset = offset
>>> 0
8957 byteLength = byteLength
>>> 0
8958 if (!noAssert) checkOffset(offset, byteLength, this.length)
8960 var val = this[offset]
8963 while (++i < byteLength && (mul *=
0x100)) {
8964 val += this[offset + i] * mul
8970 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8971 offset = offset
>>> 0
8972 byteLength = byteLength
>>> 0
8974 checkOffset(offset, byteLength, this.length)
8977 var val = this[offset + --byteLength]
8979 while (byteLength
> 0 && (mul *=
0x100)) {
8980 val += this[offset + --byteLength] * mul
8986 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8987 offset = offset
>>> 0
8988 if (!noAssert) checkOffset(offset,
1, this.length)
8992 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
8993 offset = offset
>>> 0
8994 if (!noAssert) checkOffset(offset,
2, this.length)
8995 return this[offset] | (this[offset +
1] <<
8)
8998 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
8999 offset = offset
>>> 0
9000 if (!noAssert) checkOffset(offset,
2, this.length)
9001 return (this[offset] <<
8) | this[offset +
1]
9004 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9005 offset = offset
>>> 0
9006 if (!noAssert) checkOffset(offset,
4, this.length)
9008 return ((this[offset]) |
9009 (this[offset +
1] <<
8) |
9010 (this[offset +
2] <<
16)) +
9011 (this[offset +
3] *
0x1000000)
9014 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9015 offset = offset
>>> 0
9016 if (!noAssert) checkOffset(offset,
4, this.length)
9018 return (this[offset] *
0x1000000) +
9019 ((this[offset +
1] <<
16) |
9020 (this[offset +
2] <<
8) |
9024 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9025 offset = offset
>>> 0
9026 byteLength = byteLength
>>> 0
9027 if (!noAssert) checkOffset(offset, byteLength, this.length)
9029 var val = this[offset]
9032 while (++i < byteLength && (mul *=
0x100)) {
9033 val += this[offset + i] * mul
9037 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9042 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9043 offset = offset
>>> 0
9044 byteLength = byteLength
>>> 0
9045 if (!noAssert) checkOffset(offset, byteLength, this.length)
9049 var val = this[offset + --i]
9050 while (i
> 0 && (mul *=
0x100)) {
9051 val += this[offset + --i] * mul
9055 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9060 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9061 offset = offset
>>> 0
9062 if (!noAssert) checkOffset(offset,
1, this.length)
9063 if (!(this[offset] &
0x80)) return (this[offset])
9064 return ((
0xff - this[offset] +
1) * -
1)
9067 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9068 offset = offset
>>> 0
9069 if (!noAssert) checkOffset(offset,
2, this.length)
9070 var val = this[offset] | (this[offset +
1] <<
8)
9071 return (val &
0x8000) ? val |
0xFFFF0000 : val
9074 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9075 offset = offset
>>> 0
9076 if (!noAssert) checkOffset(offset,
2, this.length)
9077 var val = this[offset +
1] | (this[offset] <<
8)
9078 return (val &
0x8000) ? val |
0xFFFF0000 : val
9081 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9082 offset = offset
>>> 0
9083 if (!noAssert) checkOffset(offset,
4, this.length)
9085 return (this[offset]) |
9086 (this[offset +
1] <<
8) |
9087 (this[offset +
2] <<
16) |
9088 (this[offset +
3] <<
24)
9091 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9092 offset = offset
>>> 0
9093 if (!noAssert) checkOffset(offset,
4, this.length)
9095 return (this[offset] <<
24) |
9096 (this[offset +
1] <<
16) |
9097 (this[offset +
2] <<
8) |
9101 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9102 offset = offset
>>> 0
9103 if (!noAssert) checkOffset(offset,
4, this.length)
9104 return ieee754.read(this, offset, true,
23,
4)
9107 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9108 offset = offset
>>> 0
9109 if (!noAssert) checkOffset(offset,
4, this.length)
9110 return ieee754.read(this, offset, false,
23,
4)
9113 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9114 offset = offset
>>> 0
9115 if (!noAssert) checkOffset(offset,
8, this.length)
9116 return ieee754.read(this, offset, true,
52,
8)
9119 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9120 offset = offset
>>> 0
9121 if (!noAssert) checkOffset(offset,
8, this.length)
9122 return ieee754.read(this, offset, false,
52,
8)
9125 function checkInt (buf, value, offset, ext, max, min) {
9126 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9127 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9128 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9131 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9133 offset = offset
>>> 0
9134 byteLength = byteLength
>>> 0
9136 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9137 checkInt(this, value, offset, byteLength, maxBytes,
0)
9142 this[offset] = value &
0xFF
9143 while (++i < byteLength && (mul *=
0x100)) {
9144 this[offset + i] = (value / mul) &
0xFF
9147 return offset + byteLength
9150 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9152 offset = offset
>>> 0
9153 byteLength = byteLength
>>> 0
9155 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9156 checkInt(this, value, offset, byteLength, maxBytes,
0)
9159 var i = byteLength -
1
9161 this[offset + i] = value &
0xFF
9162 while (--i
>=
0 && (mul *=
0x100)) {
9163 this[offset + i] = (value / mul) &
0xFF
9166 return offset + byteLength
9169 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9171 offset = offset
>>> 0
9172 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9173 this[offset] = (value &
0xff)
9177 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9179 offset = offset
>>> 0
9180 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9181 this[offset] = (value &
0xff)
9182 this[offset +
1] = (value
>>> 8)
9186 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9188 offset = offset
>>> 0
9189 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9190 this[offset] = (value
>>> 8)
9191 this[offset +
1] = (value &
0xff)
9195 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9197 offset = offset
>>> 0
9198 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9199 this[offset +
3] = (value
>>> 24)
9200 this[offset +
2] = (value
>>> 16)
9201 this[offset +
1] = (value
>>> 8)
9202 this[offset] = (value &
0xff)
9206 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9208 offset = offset
>>> 0
9209 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9210 this[offset] = (value
>>> 24)
9211 this[offset +
1] = (value
>>> 16)
9212 this[offset +
2] = (value
>>> 8)
9213 this[offset +
3] = (value &
0xff)
9217 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9219 offset = offset
>>> 0
9221 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9223 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9229 this[offset] = value &
0xFF
9230 while (++i < byteLength && (mul *=
0x100)) {
9231 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9234 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9237 return offset + byteLength
9240 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9242 offset = offset
>>> 0
9244 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9246 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9249 var i = byteLength -
1
9252 this[offset + i] = value &
0xFF
9253 while (--i
>=
0 && (mul *=
0x100)) {
9254 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9257 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9260 return offset + byteLength
9263 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9265 offset = offset
>>> 0
9266 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9267 if (value <
0) value =
0xff + value +
1
9268 this[offset] = (value &
0xff)
9272 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9274 offset = offset
>>> 0
9275 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9276 this[offset] = (value &
0xff)
9277 this[offset +
1] = (value
>>> 8)
9281 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9283 offset = offset
>>> 0
9284 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9285 this[offset] = (value
>>> 8)
9286 this[offset +
1] = (value &
0xff)
9290 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9292 offset = offset
>>> 0
9293 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9294 this[offset] = (value &
0xff)
9295 this[offset +
1] = (value
>>> 8)
9296 this[offset +
2] = (value
>>> 16)
9297 this[offset +
3] = (value
>>> 24)
9301 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9303 offset = offset
>>> 0
9304 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9305 if (value <
0) value =
0xffffffff + value +
1
9306 this[offset] = (value
>>> 24)
9307 this[offset +
1] = (value
>>> 16)
9308 this[offset +
2] = (value
>>> 8)
9309 this[offset +
3] = (value &
0xff)
9313 function checkIEEE754 (buf, value, offset, ext, max, min) {
9314 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9315 if (offset <
0) throw new RangeError('Index out of range')
9318 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9320 offset = offset
>>> 0
9322 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9324 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9328 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9329 return writeFloat(this, value, offset, true, noAssert)
9332 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9333 return writeFloat(this, value, offset, false, noAssert)
9336 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9338 offset = offset
>>> 0
9340 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9342 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9346 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9347 return writeDouble(this, value, offset, true, noAssert)
9350 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9351 return writeDouble(this, value, offset, false, noAssert)
9354 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9355 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9356 if (!start) start =
0
9357 if (!end && end !==
0) end = this.length
9358 if (targetStart
>= target.length) targetStart = target.length
9359 if (!targetStart) targetStart =
0
9360 if (end
> 0 && end < start) end = start
9362 // Copy
0 bytes; we're done
9363 if (end === start) return
0
9364 if (target.length ===
0 || this.length ===
0) return
0
9366 // Fatal error conditions
9367 if (targetStart <
0) {
9368 throw new RangeError('targetStart out of bounds')
9370 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9371 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9374 if (end
> this.length) end = this.length
9375 if (target.length - targetStart < end - start) {
9376 end = target.length - targetStart + start
9379 var len = end - start
9382 if (this === target && start < targetStart && targetStart < end) {
9383 // descending copy from end
9384 for (i = len -
1; i
>=
0; --i) {
9385 target[i + targetStart] = this[i + start]
9387 } else if (len <
1000) {
9388 // ascending copy from start
9389 for (i =
0; i < len; ++i) {
9390 target[i + targetStart] = this[i + start]
9393 Uint8Array.prototype.set.call(
9395 this.subarray(start, start + len),
9404 // buffer.fill(number[, offset[, end]])
9405 // buffer.fill(buffer[, offset[, end]])
9406 // buffer.fill(string[, offset[, end]][, encoding])
9407 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9408 // Handle string cases:
9409 if (typeof val === 'string') {
9410 if (typeof start === 'string') {
9414 } else if (typeof end === 'string') {
9418 if (val.length ===
1) {
9419 var code = val.charCodeAt(
0)
9424 if (encoding !== undefined && typeof encoding !== 'string') {
9425 throw new TypeError('encoding must be a string')
9427 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9428 throw new TypeError('Unknown encoding: ' + encoding)
9430 } else if (typeof val === 'number') {
9434 // Invalid ranges are not set to a default, so can range check early.
9435 if (start <
0 || this.length < start || this.length < end) {
9436 throw new RangeError('Out of range index')
9444 end = end === undefined ? this.length : end
>>> 0
9449 if (typeof val === 'number') {
9450 for (i = start; i < end; ++i) {
9454 var bytes = Buffer.isBuffer(val)
9456 : new Buffer(val, encoding)
9457 var len = bytes.length
9458 for (i =
0; i < end - start; ++i) {
9459 this[i + start] = bytes[i % len]
9469 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9471 function base64clean (str) {
9472 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9473 str = str.trim().replace(INVALID_BASE64_RE, '')
9474 // Node converts strings with length <
2 to ''
9475 if (str.length <
2) return ''
9476 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9477 while (str.length %
4 !==
0) {
9483 function toHex (n) {
9484 if (n <
16) return '
0' + n.toString(
16)
9485 return n.toString(
16)
9488 function utf8ToBytes (string, units) {
9489 units = units || Infinity
9491 var length = string.length
9492 var leadSurrogate = null
9495 for (var i =
0; i < length; ++i) {
9496 codePoint = string.charCodeAt(i)
9498 // is surrogate component
9499 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9500 // last char was a lead
9501 if (!leadSurrogate) {
9503 if (codePoint
> 0xDBFF) {
9505 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9507 } else if (i +
1 === length) {
9509 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9514 leadSurrogate = codePoint
9520 if (codePoint <
0xDC00) {
9521 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9522 leadSurrogate = codePoint
9526 // valid surrogate pair
9527 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9528 } else if (leadSurrogate) {
9529 // valid bmp char, but last char was a lead
9530 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9533 leadSurrogate = null
9536 if (codePoint <
0x80) {
9537 if ((units -=
1) <
0) break
9538 bytes.push(codePoint)
9539 } else if (codePoint <
0x800) {
9540 if ((units -=
2) <
0) break
9542 codePoint
>> 0x6 |
0xC0,
9543 codePoint &
0x3F |
0x80
9545 } else if (codePoint <
0x10000) {
9546 if ((units -=
3) <
0) break
9548 codePoint
>> 0xC |
0xE0,
9549 codePoint
>> 0x6 &
0x3F |
0x80,
9550 codePoint &
0x3F |
0x80
9552 } else if (codePoint <
0x110000) {
9553 if ((units -=
4) <
0) break
9555 codePoint
>> 0x12 |
0xF0,
9556 codePoint
>> 0xC &
0x3F |
0x80,
9557 codePoint
>> 0x6 &
0x3F |
0x80,
9558 codePoint &
0x3F |
0x80
9561 throw new Error('Invalid code point')
9568 function asciiToBytes (str) {
9570 for (var i =
0; i < str.length; ++i) {
9571 // Node's code seems to be doing this and not &
0x7F..
9572 byteArray.push(str.charCodeAt(i) &
0xFF)
9577 function utf16leToBytes (str, units) {
9580 for (var i =
0; i < str.length; ++i) {
9581 if ((units -=
2) <
0) break
9583 c = str.charCodeAt(i)
9593 function base64ToBytes (str) {
9594 return base64.toByteArray(base64clean(str))
9597 function blitBuffer (src, dst, offset, length) {
9598 for (var i =
0; i < length; ++i) {
9599 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9600 dst[i + offset] = src[i]
9605 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9606 function isArrayBufferView (obj) {
9607 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9610 function numberIsNaN (obj) {
9611 return obj !== obj // eslint-disable-line no-self-compare
9614 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9616 // Copyright Joyent, Inc. and other Node contributors.
9618 // Permission is hereby granted, free of charge, to any person obtaining a
9619 // copy of this software and associated documentation files (the
9620 // "Software"), to deal in the Software without restriction, including
9621 // without limitation the rights to use, copy, modify, merge, publish,
9622 // distribute, sublicense, and/or sell copies of the Software, and to permit
9623 // persons to whom the Software is furnished to do so, subject to the
9624 // following conditions:
9626 // The above copyright notice and this permission notice shall be included
9627 // in all copies or substantial portions of the Software.
9629 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9630 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9631 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9632 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9633 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9634 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9635 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9637 // NOTE: These type checking functions intentionally don't use `instanceof`
9638 // because it is fragile and can be easily faked with `Object.create()`.
9640 function isArray(arg) {
9641 if (Array.isArray) {
9642 return Array.isArray(arg);
9644 return objectToString(arg) === '[object Array]';
9646 exports.isArray = isArray;
9648 function isBoolean(arg) {
9649 return typeof arg === 'boolean';
9651 exports.isBoolean = isBoolean;
9653 function isNull(arg) {
9654 return arg === null;
9656 exports.isNull = isNull;
9658 function isNullOrUndefined(arg) {
9661 exports.isNullOrUndefined = isNullOrUndefined;
9663 function isNumber(arg) {
9664 return typeof arg === 'number';
9666 exports.isNumber = isNumber;
9668 function isString(arg) {
9669 return typeof arg === 'string';
9671 exports.isString = isString;
9673 function isSymbol(arg) {
9674 return typeof arg === 'symbol';
9676 exports.isSymbol = isSymbol;
9678 function isUndefined(arg) {
9679 return arg === void
0;
9681 exports.isUndefined = isUndefined;
9683 function isRegExp(re) {
9684 return objectToString(re) === '[object RegExp]';
9686 exports.isRegExp = isRegExp;
9688 function isObject(arg) {
9689 return typeof arg === 'object' && arg !== null;
9691 exports.isObject = isObject;
9693 function isDate(d) {
9694 return objectToString(d) === '[object Date]';
9696 exports.isDate = isDate;
9698 function isError(e) {
9699 return (objectToString(e) === '[object Error]' || e instanceof Error);
9701 exports.isError = isError;
9703 function isFunction(arg) {
9704 return typeof arg === 'function';
9706 exports.isFunction = isFunction;
9708 function isPrimitive(arg) {
9709 return arg === null ||
9710 typeof arg === 'boolean' ||
9711 typeof arg === 'number' ||
9712 typeof arg === 'string' ||
9713 typeof arg === 'symbol' || // ES6 symbol
9714 typeof arg === 'undefined';
9716 exports.isPrimitive = isPrimitive;
9718 exports.isBuffer = Buffer.isBuffer;
9720 function objectToString(o) {
9721 return Object.prototype.toString.call(o);
9724 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9725 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9726 // Copyright Joyent, Inc. and other Node contributors.
9728 // Permission is hereby granted, free of charge, to any person obtaining a
9729 // copy of this software and associated documentation files (the
9730 // "Software"), to deal in the Software without restriction, including
9731 // without limitation the rights to use, copy, modify, merge, publish,
9732 // distribute, sublicense, and/or sell copies of the Software, and to permit
9733 // persons to whom the Software is furnished to do so, subject to the
9734 // following conditions:
9736 // The above copyright notice and this permission notice shall be included
9737 // in all copies or substantial portions of the Software.
9739 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9740 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9741 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9742 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9743 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9744 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9745 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9747 function EventEmitter() {
9748 this._events = this._events || {};
9749 this._maxListeners = this._maxListeners || undefined;
9751 module.exports = EventEmitter;
9753 // Backwards-compat with node
0.10.x
9754 EventEmitter.EventEmitter = EventEmitter;
9756 EventEmitter.prototype._events = undefined;
9757 EventEmitter.prototype._maxListeners = undefined;
9759 // By default EventEmitters will print a warning if more than
10 listeners are
9760 // added to it. This is a useful default which helps finding memory leaks.
9761 EventEmitter.defaultMaxListeners =
10;
9763 // Obviously not all Emitters should be limited to
10. This function allows
9764 // that to be increased. Set to zero for unlimited.
9765 EventEmitter.prototype.setMaxListeners = function(n) {
9766 if (!isNumber(n) || n <
0 || isNaN(n))
9767 throw TypeError('n must be a positive number');
9768 this._maxListeners = n;
9772 EventEmitter.prototype.emit = function(type) {
9773 var er, handler, len, args, i, listeners;
9778 // If there is no 'error' event listener then throw.
9779 if (type === 'error') {
9780 if (!this._events.error ||
9781 (isObject(this._events.error) && !this._events.error.length)) {
9783 if (er instanceof Error) {
9784 throw er; // Unhandled 'error' event
9786 // At least give some kind of context to the user
9787 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9794 handler = this._events[type];
9796 if (isUndefined(handler))
9799 if (isFunction(handler)) {
9800 switch (arguments.length) {
9806 handler.call(this, arguments[
1]);
9809 handler.call(this, arguments[
1], arguments[
2]);
9813 args = Array.prototype.slice.call(arguments,
1);
9814 handler.apply(this, args);
9816 } else if (isObject(handler)) {
9817 args = Array.prototype.slice.call(arguments,
1);
9818 listeners = handler.slice();
9819 len = listeners.length;
9820 for (i =
0; i < len; i++)
9821 listeners[i].apply(this, args);
9827 EventEmitter.prototype.addListener = function(type, listener) {
9830 if (!isFunction(listener))
9831 throw TypeError('listener must be a function');
9836 // To avoid recursion in the case that type === "newListener"! Before
9837 // adding it to the listeners, first emit "newListener".
9838 if (this._events.newListener)
9839 this.emit('newListener', type,
9840 isFunction(listener.listener) ?
9841 listener.listener : listener);
9843 if (!this._events[type])
9844 // Optimize the case of one listener. Don't need the extra array object.
9845 this._events[type] = listener;
9846 else if (isObject(this._events[type]))
9847 // If we've already got an array, just append.
9848 this._events[type].push(listener);
9850 // Adding the second element, need to change to array.
9851 this._events[type] = [this._events[type], listener];
9853 // Check for listener leak
9854 if (isObject(this._events[type]) && !this._events[type].warned) {
9855 if (!isUndefined(this._maxListeners)) {
9856 m = this._maxListeners;
9858 m = EventEmitter.defaultMaxListeners;
9861 if (m && m
> 0 && this._events[type].length
> m) {
9862 this._events[type].warned = true;
9863 console.error('(node) warning: possible EventEmitter memory ' +
9864 'leak detected. %d listeners added. ' +
9865 'Use emitter.setMaxListeners() to increase limit.',
9866 this._events[type].length);
9867 if (typeof console.trace === 'function') {
9868 // not supported in IE
10
9877 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9879 EventEmitter.prototype.once = function(type, listener) {
9880 if (!isFunction(listener))
9881 throw TypeError('listener must be a function');
9886 this.removeListener(type, g);
9890 listener.apply(this, arguments);
9894 g.listener = listener;
9900 // emits a 'removeListener' event iff the listener was removed
9901 EventEmitter.prototype.removeListener = function(type, listener) {
9902 var list, position, length, i;
9904 if (!isFunction(listener))
9905 throw TypeError('listener must be a function');
9907 if (!this._events || !this._events[type])
9910 list = this._events[type];
9911 length = list.length;
9914 if (list === listener ||
9915 (isFunction(list.listener) && list.listener === listener)) {
9916 delete this._events[type];
9917 if (this._events.removeListener)
9918 this.emit('removeListener', type, listener);
9920 } else if (isObject(list)) {
9921 for (i = length; i--
> 0;) {
9922 if (list[i] === listener ||
9923 (list[i].listener && list[i].listener === listener)) {
9932 if (list.length ===
1) {
9934 delete this._events[type];
9936 list.splice(position,
1);
9939 if (this._events.removeListener)
9940 this.emit('removeListener', type, listener);
9946 EventEmitter.prototype.removeAllListeners = function(type) {
9952 // not listening for removeListener, no need to emit
9953 if (!this._events.removeListener) {
9954 if (arguments.length ===
0)
9956 else if (this._events[type])
9957 delete this._events[type];
9961 // emit removeListener for all listeners on all events
9962 if (arguments.length ===
0) {
9963 for (key in this._events) {
9964 if (key === 'removeListener') continue;
9965 this.removeAllListeners(key);
9967 this.removeAllListeners('removeListener');
9972 listeners = this._events[type];
9974 if (isFunction(listeners)) {
9975 this.removeListener(type, listeners);
9976 } else if (listeners) {
9978 while (listeners.length)
9979 this.removeListener(type, listeners[listeners.length -
1]);
9981 delete this._events[type];
9986 EventEmitter.prototype.listeners = function(type) {
9988 if (!this._events || !this._events[type])
9990 else if (isFunction(this._events[type]))
9991 ret = [this._events[type]];
9993 ret = this._events[type].slice();
9997 EventEmitter.prototype.listenerCount = function(type) {
9999 var evlistener = this._events[type];
10001 if (isFunction(evlistener))
10003 else if (evlistener)
10004 return evlistener.length;
10009 EventEmitter.listenerCount = function(emitter, type) {
10010 return emitter.listenerCount(type);
10013 function isFunction(arg) {
10014 return typeof arg === 'function';
10017 function isNumber(arg) {
10018 return typeof arg === 'number';
10021 function isObject(arg) {
10022 return typeof arg === 'object' && arg !== null;
10025 function isUndefined(arg) {
10026 return arg === void
0;
10029 },{}],
7:[function(require,module,exports){
10030 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10032 var eLen = nBytes *
8 - mLen -
1
10033 var eMax = (
1 << eLen) -
1
10034 var eBias = eMax
>> 1
10036 var i = isLE ? (nBytes -
1) :
0
10037 var d = isLE ? -
1 :
1
10038 var s = buffer[offset + i]
10042 e = s & ((
1 << (-nBits)) -
1)
10045 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10047 m = e & ((
1 << (-nBits)) -
1)
10050 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10054 } else if (e === eMax) {
10055 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10057 m = m + Math.pow(
2, mLen)
10060 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10063 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10065 var eLen = nBytes *
8 - mLen -
1
10066 var eMax = (
1 << eLen) -
1
10067 var eBias = eMax
>> 1
10068 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10069 var i = isLE ?
0 : (nBytes -
1)
10070 var d = isLE ?
1 : -
1
10071 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10073 value = Math.abs(value)
10075 if (isNaN(value) || value === Infinity) {
10076 m = isNaN(value) ?
1 :
0
10079 e = Math.floor(Math.log(value) / Math.LN2)
10080 if (value * (c = Math.pow(
2, -e)) <
1) {
10084 if (e + eBias
>=
1) {
10087 value += rt * Math.pow(
2,
1 - eBias)
10089 if (value * c
>=
2) {
10094 if (e + eBias
>= eMax) {
10097 } else if (e + eBias
>=
1) {
10098 m = (value * c -
1) * Math.pow(
2, mLen)
10101 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10106 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10108 e = (e << mLen) | m
10110 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10112 buffer[offset + i - d] |= s *
128
10115 },{}],
8:[function(require,module,exports){
10116 if (typeof Object.create === 'function') {
10117 // implementation from standard node.js 'util' module
10118 module.exports = function inherits(ctor, superCtor) {
10119 ctor.super_ = superCtor
10120 ctor.prototype = Object.create(superCtor.prototype, {
10130 // old school shim for old browsers
10131 module.exports = function inherits(ctor, superCtor) {
10132 ctor.super_ = superCtor
10133 var TempCtor = function () {}
10134 TempCtor.prototype = superCtor.prototype
10135 ctor.prototype = new TempCtor()
10136 ctor.prototype.constructor = ctor
10140 },{}],
9:[function(require,module,exports){
10142 * Determine if an object is a Buffer
10144 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10148 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10149 // Object.prototype.constructor. Remove this eventually
10150 module.exports = function (obj) {
10151 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10154 function isBuffer (obj) {
10155 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10158 // For Node v0.10 support. Remove this eventually.
10159 function isSlowBuffer (obj) {
10160 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10163 },{}],
10:[function(require,module,exports){
10164 var toString = {}.toString;
10166 module.exports = Array.isArray || function (arr) {
10167 return toString.call(arr) == '[object Array]';
10170 },{}],
11:[function(require,module,exports){
10171 (function (process){
10174 if (!process.version ||
10175 process.version.indexOf('v0.') ===
0 ||
10176 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10177 module.exports = nextTick;
10179 module.exports = process.nextTick;
10182 function nextTick(fn, arg1, arg2, arg3) {
10183 if (typeof fn !== 'function') {
10184 throw new TypeError('"callback" argument must be a function');
10186 var len = arguments.length;
10191 return process.nextTick(fn);
10193 return process.nextTick(function afterTickOne() {
10194 fn.call(null, arg1);
10197 return process.nextTick(function afterTickTwo() {
10198 fn.call(null, arg1, arg2);
10201 return process.nextTick(function afterTickThree() {
10202 fn.call(null, arg1, arg2, arg3);
10205 args = new Array(len -
1);
10207 while (i < args.length) {
10208 args[i++] = arguments[i];
10210 return process.nextTick(function afterTick() {
10211 fn.apply(null, args);
10216 }).call(this,require('_process'))
10217 },{"_process":
12}],
12:[function(require,module,exports){
10218 // shim for using process in browser
10219 var process = module.exports = {};
10221 // cached from whatever global is present so that test runners that stub it
10222 // don't break things. But we need to wrap it in a try catch in case it is
10223 // wrapped in strict mode code which doesn't define any globals. It's inside a
10224 // function because try/catches deoptimize in certain engines.
10226 var cachedSetTimeout;
10227 var cachedClearTimeout;
10229 function defaultSetTimout() {
10230 throw new Error('setTimeout has not been defined');
10232 function defaultClearTimeout () {
10233 throw new Error('clearTimeout has not been defined');
10237 if (typeof setTimeout === 'function') {
10238 cachedSetTimeout = setTimeout;
10240 cachedSetTimeout = defaultSetTimout;
10243 cachedSetTimeout = defaultSetTimout;
10246 if (typeof clearTimeout === 'function') {
10247 cachedClearTimeout = clearTimeout;
10249 cachedClearTimeout = defaultClearTimeout;
10252 cachedClearTimeout = defaultClearTimeout;
10255 function runTimeout(fun) {
10256 if (cachedSetTimeout === setTimeout) {
10257 //normal enviroments in sane situations
10258 return setTimeout(fun,
0);
10260 // if setTimeout wasn't available but was latter defined
10261 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10262 cachedSetTimeout = setTimeout;
10263 return setTimeout(fun,
0);
10266 // when when somebody has screwed with setTimeout but no I.E. maddness
10267 return cachedSetTimeout(fun,
0);
10270 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10271 return cachedSetTimeout.call(null, fun,
0);
10273 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
10274 return cachedSetTimeout.call(this, fun,
0);
10280 function runClearTimeout(marker) {
10281 if (cachedClearTimeout === clearTimeout) {
10282 //normal enviroments in sane situations
10283 return clearTimeout(marker);
10285 // if clearTimeout wasn't available but was latter defined
10286 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10287 cachedClearTimeout = clearTimeout;
10288 return clearTimeout(marker);
10291 // when when somebody has screwed with setTimeout but no I.E. maddness
10292 return cachedClearTimeout(marker);
10295 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10296 return cachedClearTimeout.call(null, marker);
10298 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
10299 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10300 return cachedClearTimeout.call(this, marker);
10308 var draining = false;
10310 var queueIndex = -
1;
10312 function cleanUpNextTick() {
10313 if (!draining || !currentQueue) {
10317 if (currentQueue.length) {
10318 queue = currentQueue.concat(queue);
10322 if (queue.length) {
10327 function drainQueue() {
10331 var timeout = runTimeout(cleanUpNextTick);
10334 var len = queue.length;
10336 currentQueue = queue;
10338 while (++queueIndex < len) {
10339 if (currentQueue) {
10340 currentQueue[queueIndex].run();
10344 len = queue.length;
10346 currentQueue = null;
10348 runClearTimeout(timeout);
10351 process.nextTick = function (fun) {
10352 var args = new Array(arguments.length -
1);
10353 if (arguments.length
> 1) {
10354 for (var i =
1; i < arguments.length; i++) {
10355 args[i -
1] = arguments[i];
10358 queue.push(new Item(fun, args));
10359 if (queue.length ===
1 && !draining) {
10360 runTimeout(drainQueue);
10364 // v8 likes predictible objects
10365 function Item(fun, array) {
10367 this.array = array;
10369 Item.prototype.run = function () {
10370 this.fun.apply(null, this.array);
10372 process.title = 'browser';
10373 process.browser = true;
10376 process.version = ''; // empty string to avoid regexp issues
10377 process.versions = {};
10382 process.addListener = noop;
10383 process.once = noop;
10384 process.off = noop;
10385 process.removeListener = noop;
10386 process.removeAllListeners = noop;
10387 process.emit = noop;
10388 process.prependListener = noop;
10389 process.prependOnceListener = noop;
10391 process.listeners = function (name) { return [] }
10393 process.binding = function (name) {
10394 throw new Error('process.binding is not supported');
10397 process.cwd = function () { return '/' };
10398 process.chdir = function (dir) {
10399 throw new Error('process.chdir is not supported');
10401 process.umask = function() { return
0; };
10403 },{}],
13:[function(require,module,exports){
10404 module.exports = require('./lib/_stream_duplex.js');
10406 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10407 // Copyright Joyent, Inc. and other Node contributors.
10409 // Permission is hereby granted, free of charge, to any person obtaining a
10410 // copy of this software and associated documentation files (the
10411 //
"Software"), to deal in the Software without restriction, including
10412 // without limitation the rights to use, copy, modify, merge, publish,
10413 // distribute, sublicense, and/or sell copies of the Software, and to permit
10414 // persons to whom the Software is furnished to do so, subject to the
10415 // following conditions:
10417 // The above copyright notice and this permission notice shall be included
10418 // in all copies or substantial portions of the Software.
10420 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10421 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10422 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10423 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10424 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10425 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10426 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10428 // a duplex stream is just a stream that is both readable and writable.
10429 // Since JS doesn't have multiple prototypal inheritance, this class
10430 // prototypally inherits from Readable, and then parasitically from
10437 var processNextTick = require('process-nextick-args');
10441 var objectKeys = Object.keys || function (obj) {
10443 for (var key in obj) {
10449 module.exports = Duplex;
10452 var util = require('core-util-is');
10453 util.inherits = require('inherits');
10456 var Readable = require('./_stream_readable');
10457 var Writable = require('./_stream_writable');
10459 util.inherits(Duplex, Readable);
10461 var keys = objectKeys(Writable.prototype);
10462 for (var v =
0; v < keys.length; v++) {
10463 var method = keys[v];
10464 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10467 function Duplex(options) {
10468 if (!(this instanceof Duplex)) return new Duplex(options);
10470 Readable.call(this, options);
10471 Writable.call(this, options);
10473 if (options && options.readable === false) this.readable = false;
10475 if (options && options.writable === false) this.writable = false;
10477 this.allowHalfOpen = true;
10478 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10480 this.once('end', onend);
10483 // the no-half-open enforcer
10485 // if we allow half-open state, or if the writable side ended,
10487 if (this.allowHalfOpen || this._writableState.ended) return;
10489 // no more data can be written.
10490 // But allow more writes to happen in this tick.
10491 processNextTick(onEndNT, this);
10494 function onEndNT(self) {
10498 Object.defineProperty(Duplex.prototype, 'destroyed', {
10500 if (this._readableState === undefined || this._writableState === undefined) {
10503 return this._readableState.destroyed && this._writableState.destroyed;
10505 set: function (value) {
10506 // we ignore the value if the stream
10507 // has not been initialized yet
10508 if (this._readableState === undefined || this._writableState === undefined) {
10512 // backward compatibility, the user is explicitly
10513 // managing destroyed
10514 this._readableState.destroyed = value;
10515 this._writableState.destroyed = value;
10519 Duplex.prototype._destroy = function (err, cb) {
10523 processNextTick(cb, err);
10526 function forEach(xs, f) {
10527 for (var i =
0, l = xs.length; i < l; i++) {
10531 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10532 // Copyright Joyent, Inc. and other Node contributors.
10534 // Permission is hereby granted, free of charge, to any person obtaining a
10535 // copy of this software and associated documentation files (the
10536 // "Software"), to deal in the Software without restriction, including
10537 // without limitation the rights to use, copy, modify, merge, publish,
10538 // distribute, sublicense, and/or sell copies of the Software, and to permit
10539 // persons to whom the Software is furnished to do so, subject to the
10540 // following conditions:
10542 // The above copyright notice and this permission notice shall be included
10543 // in all copies or substantial portions of the Software.
10545 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10546 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10547 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10548 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10549 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10550 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10551 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10553 // a passthrough stream.
10554 // basically just the most minimal sort of Transform stream.
10555 // Every written chunk gets output as-is.
10559 module.exports = PassThrough;
10561 var Transform = require('./_stream_transform');
10564 var util = require('core-util-is');
10565 util.inherits = require('inherits');
10568 util.inherits(PassThrough, Transform);
10570 function PassThrough(options) {
10571 if (!(this instanceof PassThrough)) return new PassThrough(options);
10573 Transform.call(this, options);
10576 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10579 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10580 (function (process,global){
10581 // Copyright Joyent, Inc. and other Node contributors.
10583 // Permission is hereby granted, free of charge, to any person obtaining a
10584 // copy of this software and associated documentation files (the
10585 // "Software"), to deal in the Software without restriction, including
10586 // without limitation the rights to use, copy, modify, merge, publish,
10587 // distribute, sublicense, and/or sell copies of the Software, and to permit
10588 // persons to whom the Software is furnished to do so, subject to the
10589 // following conditions:
10591 // The above copyright notice and this permission notice shall be included
10592 // in all copies or substantial portions of the Software.
10594 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10595 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10596 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10597 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10598 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10599 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10600 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10606 var processNextTick = require('process-nextick-args');
10609 module.exports = Readable;
10612 var isArray = require('isarray');
10619 Readable.ReadableState = ReadableState;
10622 var EE = require('events').EventEmitter;
10624 var EElistenerCount = function (emitter, type) {
10625 return emitter.listeners(type).length;
10630 var Stream = require('./internal/streams/stream');
10633 // TODO(bmeurer): Change this back to const once hole checks are
10634 // properly optimized away early in Ignition+TurboFan.
10636 var Buffer = require('safe-buffer').Buffer;
10637 var OurUint8Array = global.Uint8Array || function () {};
10638 function _uint8ArrayToBuffer(chunk) {
10639 return Buffer.from(chunk);
10641 function _isUint8Array(obj) {
10642 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10647 var util = require('core-util-is');
10648 util.inherits = require('inherits');
10652 var debugUtil = require('util');
10653 var debug = void
0;
10654 if (debugUtil && debugUtil.debuglog) {
10655 debug = debugUtil.debuglog('stream');
10657 debug = function () {};
10661 var BufferList = require('./internal/streams/BufferList');
10662 var destroyImpl = require('./internal/streams/destroy');
10665 util.inherits(Readable, Stream);
10667 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10669 function prependListener(emitter, event, fn) {
10670 // Sadly this is not cacheable as some libraries bundle their own
10671 // event emitter implementation with them.
10672 if (typeof emitter.prependListener === 'function') {
10673 return emitter.prependListener(event, fn);
10675 // This is a hack to make sure that our error handler is attached before any
10676 // userland ones. NEVER DO THIS. This is here only because this code needs
10677 // to continue to work with older versions of Node.js that do not include
10678 // the prependListener() method. The goal is to eventually remove this hack.
10679 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
10683 function ReadableState(options, stream) {
10684 Duplex = Duplex || require('./_stream_duplex');
10686 options = options || {};
10688 // object stream flag. Used to make read(n) ignore n and to
10689 // make all the buffer merging and length checks go away
10690 this.objectMode = !!options.objectMode;
10692 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10694 // the point at which it stops calling _read() to fill the buffer
10695 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10696 var hwm = options.highWaterMark;
10697 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10698 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10701 this.highWaterMark = Math.floor(this.highWaterMark);
10703 // A linked list is used to store data chunks instead of an array because the
10704 // linked list can remove elements from the beginning faster than
10706 this.buffer = new BufferList();
10709 this.pipesCount =
0;
10710 this.flowing = null;
10711 this.ended = false;
10712 this.endEmitted = false;
10713 this.reading = false;
10715 // a flag to be able to tell if the event 'readable'/'data' is emitted
10716 // immediately, or on a later tick. We set this to true at first, because
10717 // any actions that shouldn't happen until "later" should generally also
10718 // not happen before the first read call.
10721 // whenever we return null, then we set a flag to say
10722 // that we're awaiting a 'readable' event emission.
10723 this.needReadable = false;
10724 this.emittedReadable = false;
10725 this.readableListening = false;
10726 this.resumeScheduled = false;
10728 // has it been destroyed
10729 this.destroyed = false;
10731 // Crypto is kind of old and crusty. Historically, its default string
10732 // encoding is 'binary' so we have to make this configurable.
10733 // Everything else in the universe uses 'utf8', though.
10734 this.defaultEncoding = options.defaultEncoding || 'utf8';
10736 // the number of writers that are awaiting a drain event in .pipe()s
10737 this.awaitDrain =
0;
10739 // if true, a maybeReadMore has been scheduled
10740 this.readingMore = false;
10742 this.decoder = null;
10743 this.encoding = null;
10744 if (options.encoding) {
10745 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10746 this.decoder = new StringDecoder(options.encoding);
10747 this.encoding = options.encoding;
10751 function Readable(options) {
10752 Duplex = Duplex || require('./_stream_duplex');
10754 if (!(this instanceof Readable)) return new Readable(options);
10756 this._readableState = new ReadableState(options, this);
10759 this.readable = true;
10762 if (typeof options.read === 'function') this._read = options.read;
10764 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10770 Object.defineProperty(Readable.prototype, 'destroyed', {
10772 if (this._readableState === undefined) {
10775 return this._readableState.destroyed;
10777 set: function (value) {
10778 // we ignore the value if the stream
10779 // has not been initialized yet
10780 if (!this._readableState) {
10784 // backward compatibility, the user is explicitly
10785 // managing destroyed
10786 this._readableState.destroyed = value;
10790 Readable.prototype.destroy = destroyImpl.destroy;
10791 Readable.prototype._undestroy = destroyImpl.undestroy;
10792 Readable.prototype._destroy = function (err, cb) {
10797 // Manually shove something into the read() buffer.
10798 // This returns true if the highWaterMark has not been hit yet,
10799 // similar to how Writable.write() returns true if you should
10800 // write() some more.
10801 Readable.prototype.push = function (chunk, encoding) {
10802 var state = this._readableState;
10803 var skipChunkCheck;
10805 if (!state.objectMode) {
10806 if (typeof chunk === 'string') {
10807 encoding = encoding || state.defaultEncoding;
10808 if (encoding !== state.encoding) {
10809 chunk = Buffer.from(chunk, encoding);
10812 skipChunkCheck = true;
10815 skipChunkCheck = true;
10818 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10821 // Unshift should *always* be something directly out of read()
10822 Readable.prototype.unshift = function (chunk) {
10823 return readableAddChunk(this, chunk, null, true, false);
10826 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10827 var state = stream._readableState;
10828 if (chunk === null) {
10829 state.reading = false;
10830 onEofChunk(stream, state);
10833 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10835 stream.emit('error', er);
10836 } else if (state.objectMode || chunk && chunk.length
> 0) {
10837 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10838 chunk = _uint8ArrayToBuffer(chunk);
10842 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10843 } else if (state.ended) {
10844 stream.emit('error', new Error('stream.push() after EOF'));
10846 state.reading = false;
10847 if (state.decoder && !encoding) {
10848 chunk = state.decoder.write(chunk);
10849 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10851 addChunk(stream, state, chunk, false);
10854 } else if (!addToFront) {
10855 state.reading = false;
10859 return needMoreData(state);
10862 function addChunk(stream, state, chunk, addToFront) {
10863 if (state.flowing && state.length ===
0 && !state.sync) {
10864 stream.emit('data', chunk);
10867 // update the buffer info.
10868 state.length += state.objectMode ?
1 : chunk.length;
10869 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10871 if (state.needReadable) emitReadable(stream);
10873 maybeReadMore(stream, state);
10876 function chunkInvalid(state, chunk) {
10878 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10879 er = new TypeError('Invalid non-string/buffer chunk');
10884 // if it's past the high water mark, we can push in some more.
10885 // Also, if we have no data yet, we can stand some
10886 // more bytes. This is to work around cases where hwm=
0,
10887 // such as the repl. Also, if the push() triggered a
10888 // readable event, and the user called read(largeNumber) such that
10889 // needReadable was set, then we ought to push more, so that another
10890 // 'readable' event will be triggered.
10891 function needMoreData(state) {
10892 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10895 Readable.prototype.isPaused = function () {
10896 return this._readableState.flowing === false;
10899 // backwards compatibility.
10900 Readable.prototype.setEncoding = function (enc) {
10901 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10902 this._readableState.decoder = new StringDecoder(enc);
10903 this._readableState.encoding = enc;
10907 // Don't raise the hwm
> 8MB
10908 var MAX_HWM =
0x800000;
10909 function computeNewHighWaterMark(n) {
10910 if (n
>= MAX_HWM) {
10913 // Get the next highest power of
2 to prevent increasing hwm excessively in
10926 // This function is designed to be inlinable, so please take care when making
10927 // changes to the function body.
10928 function howMuchToRead(n, state) {
10929 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10930 if (state.objectMode) return
1;
10932 // Only flow one buffer at a time
10933 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10935 // If we're asking for more than the current hwm, then raise the hwm.
10936 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10937 if (n <= state.length) return n;
10938 // Don't have enough
10939 if (!state.ended) {
10940 state.needReadable = true;
10943 return state.length;
10946 // you can override either this method, or the async _read(n) below.
10947 Readable.prototype.read = function (n) {
10949 n = parseInt(n,
10);
10950 var state = this._readableState;
10953 if (n !==
0) state.emittedReadable = false;
10955 // if we're doing read(
0) to trigger a readable event, but we
10956 // already have a bunch of data in the buffer, then just trigger
10957 // the 'readable' event and move on.
10958 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10959 debug('read: emitReadable', state.length, state.ended);
10960 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10964 n = howMuchToRead(n, state);
10966 // if we've ended, and we're now clear, then finish it up.
10967 if (n ===
0 && state.ended) {
10968 if (state.length ===
0) endReadable(this);
10972 // All the actual chunk generation logic needs to be
10973 // *below* the call to _read. The reason is that in certain
10974 // synthetic stream cases, such as passthrough streams, _read
10975 // may be a completely synchronous operation which may change
10976 // the state of the read buffer, providing enough data when
10977 // before there was *not* enough.
10979 // So, the steps are:
10980 //
1. Figure out what the state of things will be after we do
10981 // a read from the buffer.
10983 //
2. If that resulting state will trigger a _read, then call _read.
10984 // Note that this may be asynchronous, or synchronous. Yes, it is
10985 // deeply ugly to write APIs this way, but that still doesn't mean
10986 // that the Readable class should behave improperly, as streams are
10987 // designed to be sync/async agnostic.
10988 // Take note if the _read call is sync or async (ie, if the read call
10989 // has returned yet), so that we know whether or not it's safe to emit
10992 //
3. Actually pull the requested chunks out of the buffer and return.
10994 // if we need a readable event, then we need to do some reading.
10995 var doRead = state.needReadable;
10996 debug('need readable', doRead);
10998 // if we currently have less than the highWaterMark, then also read some
10999 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11001 debug('length less than watermark', doRead);
11004 // however, if we've ended, then there's no point, and if we're already
11005 // reading, then it's unnecessary.
11006 if (state.ended || state.reading) {
11008 debug('reading or ended', doRead);
11009 } else if (doRead) {
11011 state.reading = true;
11013 // if the length is currently zero, then we *need* a readable event.
11014 if (state.length ===
0) state.needReadable = true;
11015 // call internal read method
11016 this._read(state.highWaterMark);
11017 state.sync = false;
11018 // If _read pushed data synchronously, then `reading` will be false,
11019 // and we need to re-evaluate how much data we can return to the user.
11020 if (!state.reading) n = howMuchToRead(nOrig, state);
11024 if (n
> 0) ret = fromList(n, state);else ret = null;
11026 if (ret === null) {
11027 state.needReadable = true;
11033 if (state.length ===
0) {
11034 // If we have nothing in the buffer, then we want to know
11035 // as soon as we *do* get something into the buffer.
11036 if (!state.ended) state.needReadable = true;
11038 // If we tried to read() past the EOF, then emit end on the next tick.
11039 if (nOrig !== n && state.ended) endReadable(this);
11042 if (ret !== null) this.emit('data', ret);
11047 function onEofChunk(stream, state) {
11048 if (state.ended) return;
11049 if (state.decoder) {
11050 var chunk = state.decoder.end();
11051 if (chunk && chunk.length) {
11052 state.buffer.push(chunk);
11053 state.length += state.objectMode ?
1 : chunk.length;
11056 state.ended = true;
11058 // emit 'readable' now to make sure it gets picked up.
11059 emitReadable(stream);
11062 // Don't emit readable right away in sync mode, because this can trigger
11063 // another read() call =
> stack overflow. This way, it might trigger
11064 // a nextTick recursion warning, but that's not so bad.
11065 function emitReadable(stream) {
11066 var state = stream._readableState;
11067 state.needReadable = false;
11068 if (!state.emittedReadable) {
11069 debug('emitReadable', state.flowing);
11070 state.emittedReadable = true;
11071 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11075 function emitReadable_(stream) {
11076 debug('emit readable');
11077 stream.emit('readable');
11081 // at this point, the user has presumably seen the 'readable' event,
11082 // and called read() to consume some data. that may have triggered
11083 // in turn another _read(n) call, in which case reading = true if
11084 // it's in progress.
11085 // However, if we're not ended, or reading, and the length < hwm,
11086 // then go ahead and try to read some more preemptively.
11087 function maybeReadMore(stream, state) {
11088 if (!state.readingMore) {
11089 state.readingMore = true;
11090 processNextTick(maybeReadMore_, stream, state);
11094 function maybeReadMore_(stream, state) {
11095 var len = state.length;
11096 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11097 debug('maybeReadMore read
0');
11099 if (len === state.length)
11100 // didn't get any data, stop spinning.
11101 break;else len = state.length;
11103 state.readingMore = false;
11106 // abstract method. to be overridden in specific implementation classes.
11107 // call cb(er, data) where data is <= n in length.
11108 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11109 // arbitrary, and perhaps not very meaningful.
11110 Readable.prototype._read = function (n) {
11111 this.emit('error', new Error('_read() is not implemented'));
11114 Readable.prototype.pipe = function (dest, pipeOpts) {
11116 var state = this._readableState;
11118 switch (state.pipesCount) {
11120 state.pipes = dest;
11123 state.pipes = [state.pipes, dest];
11126 state.pipes.push(dest);
11129 state.pipesCount +=
1;
11130 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11132 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11134 var endFn = doEnd ? onend : unpipe;
11135 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11137 dest.on('unpipe', onunpipe);
11138 function onunpipe(readable, unpipeInfo) {
11140 if (readable === src) {
11141 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11142 unpipeInfo.hasUnpiped = true;
11153 // when the dest drains, it reduces the awaitDrain counter
11154 // on the source. This would be more elegant with a .once()
11155 // handler in flow(), but adding and removing repeatedly is
11157 var ondrain = pipeOnDrain(src);
11158 dest.on('drain', ondrain);
11160 var cleanedUp = false;
11161 function cleanup() {
11163 // cleanup event handlers once the pipe is broken
11164 dest.removeListener('close', onclose);
11165 dest.removeListener('finish', onfinish);
11166 dest.removeListener('drain', ondrain);
11167 dest.removeListener('error', onerror);
11168 dest.removeListener('unpipe', onunpipe);
11169 src.removeListener('end', onend);
11170 src.removeListener('end', unpipe);
11171 src.removeListener('data', ondata);
11175 // if the reader is waiting for a drain event from this
11176 // specific writer, then it would cause it to never start
11178 // So, if this is awaiting a drain, then we just call it now.
11179 // If we don't know, then assume that we are waiting for one.
11180 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11183 // If the user pushes more data while we're writing to dest then we'll end up
11184 // in ondata again. However, we only want to increase awaitDrain once because
11185 // dest will only emit one 'drain' event for the multiple writes.
11186 // =
> Introduce a guard on increasing awaitDrain.
11187 var increasedAwaitDrain = false;
11188 src.on('data', ondata);
11189 function ondata(chunk) {
11191 increasedAwaitDrain = false;
11192 var ret = dest.write(chunk);
11193 if (false === ret && !increasedAwaitDrain) {
11194 // If the user unpiped during `dest.write()`, it is possible
11195 // to get stuck in a permanently paused state if that write
11196 // also returned false.
11197 // =
> Check whether `dest` is still a piping destination.
11198 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11199 debug('false write response, pause', src._readableState.awaitDrain);
11200 src._readableState.awaitDrain++;
11201 increasedAwaitDrain = true;
11207 // if the dest has an error, then stop piping into it.
11208 // however, don't suppress the throwing behavior for this.
11209 function onerror(er) {
11210 debug('onerror', er);
11212 dest.removeListener('error', onerror);
11213 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11216 // Make sure our error handler is attached before userland ones.
11217 prependListener(dest, 'error', onerror);
11219 // Both close and finish should trigger unpipe, but only once.
11220 function onclose() {
11221 dest.removeListener('finish', onfinish);
11224 dest.once('close', onclose);
11225 function onfinish() {
11227 dest.removeListener('close', onclose);
11230 dest.once('finish', onfinish);
11232 function unpipe() {
11237 // tell the dest that it's being piped to
11238 dest.emit('pipe', src);
11240 // start the flow if it hasn't been started already.
11241 if (!state.flowing) {
11242 debug('pipe resume');
11249 function pipeOnDrain(src) {
11250 return function () {
11251 var state = src._readableState;
11252 debug('pipeOnDrain', state.awaitDrain);
11253 if (state.awaitDrain) state.awaitDrain--;
11254 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11255 state.flowing = true;
11261 Readable.prototype.unpipe = function (dest) {
11262 var state = this._readableState;
11263 var unpipeInfo = { hasUnpiped: false };
11265 // if we're not piping anywhere, then do nothing.
11266 if (state.pipesCount ===
0) return this;
11268 // just one destination. most common case.
11269 if (state.pipesCount ===
1) {
11270 // passed in one, but it's not the right one.
11271 if (dest && dest !== state.pipes) return this;
11273 if (!dest) dest = state.pipes;
11276 state.pipes = null;
11277 state.pipesCount =
0;
11278 state.flowing = false;
11279 if (dest) dest.emit('unpipe', this, unpipeInfo);
11283 // slow case. multiple pipe destinations.
11287 var dests = state.pipes;
11288 var len = state.pipesCount;
11289 state.pipes = null;
11290 state.pipesCount =
0;
11291 state.flowing = false;
11293 for (var i =
0; i < len; i++) {
11294 dests[i].emit('unpipe', this, unpipeInfo);
11298 // try to find the right one.
11299 var index = indexOf(state.pipes, dest);
11300 if (index === -
1) return this;
11302 state.pipes.splice(index,
1);
11303 state.pipesCount -=
1;
11304 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11306 dest.emit('unpipe', this, unpipeInfo);
11311 // set up data events if they are asked for
11312 // Ensure readable listeners eventually get something
11313 Readable.prototype.on = function (ev, fn) {
11314 var res = Stream.prototype.on.call(this, ev, fn);
11316 if (ev === 'data') {
11317 // Start flowing on next tick if stream isn't explicitly paused
11318 if (this._readableState.flowing !== false) this.resume();
11319 } else if (ev === 'readable') {
11320 var state = this._readableState;
11321 if (!state.endEmitted && !state.readableListening) {
11322 state.readableListening = state.needReadable = true;
11323 state.emittedReadable = false;
11324 if (!state.reading) {
11325 processNextTick(nReadingNextTick, this);
11326 } else if (state.length) {
11327 emitReadable(this);
11334 Readable.prototype.addListener = Readable.prototype.on;
11336 function nReadingNextTick(self) {
11337 debug('readable nexttick read
0');
11341 // pause() and resume() are remnants of the legacy readable stream API
11342 // If the user uses them, then switch into old mode.
11343 Readable.prototype.resume = function () {
11344 var state = this._readableState;
11345 if (!state.flowing) {
11347 state.flowing = true;
11348 resume(this, state);
11353 function resume(stream, state) {
11354 if (!state.resumeScheduled) {
11355 state.resumeScheduled = true;
11356 processNextTick(resume_, stream, state);
11360 function resume_(stream, state) {
11361 if (!state.reading) {
11362 debug('resume read
0');
11366 state.resumeScheduled = false;
11367 state.awaitDrain =
0;
11368 stream.emit('resume');
11370 if (state.flowing && !state.reading) stream.read(
0);
11373 Readable.prototype.pause = function () {
11374 debug('call pause flowing=%j', this._readableState.flowing);
11375 if (false !== this._readableState.flowing) {
11377 this._readableState.flowing = false;
11378 this.emit('pause');
11383 function flow(stream) {
11384 var state = stream._readableState;
11385 debug('flow', state.flowing);
11386 while (state.flowing && stream.read() !== null) {}
11389 // wrap an old-style stream as the async data source.
11390 // This is *not* part of the readable stream interface.
11391 // It is an ugly unfortunate mess of history.
11392 Readable.prototype.wrap = function (stream) {
11393 var state = this._readableState;
11394 var paused = false;
11397 stream.on('end', function () {
11398 debug('wrapped end');
11399 if (state.decoder && !state.ended) {
11400 var chunk = state.decoder.end();
11401 if (chunk && chunk.length) self.push(chunk);
11407 stream.on('data', function (chunk) {
11408 debug('wrapped data');
11409 if (state.decoder) chunk = state.decoder.write(chunk);
11411 // don't skip over falsy values in objectMode
11412 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11414 var ret = self.push(chunk);
11421 // proxy all the other methods.
11422 // important when wrapping filters and duplexes.
11423 for (var i in stream) {
11424 if (this[i] === undefined && typeof stream[i] === 'function') {
11425 this[i] = function (method) {
11426 return function () {
11427 return stream[method].apply(stream, arguments);
11433 // proxy certain important events.
11434 for (var n =
0; n < kProxyEvents.length; n++) {
11435 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11438 // when we try to consume some more bytes, simply unpause the
11439 // underlying stream.
11440 self._read = function (n) {
11441 debug('wrapped _read', n);
11451 // exposed for testing purposes only.
11452 Readable._fromList = fromList;
11454 // Pluck off n bytes from an array of buffers.
11455 // Length is the combined lengths of all the buffers in the list.
11456 // This function is designed to be inlinable, so please take care when making
11457 // changes to the function body.
11458 function fromList(n, state) {
11459 // nothing buffered
11460 if (state.length ===
0) return null;
11463 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11464 // read it all, truncate the list
11465 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
11466 state.buffer.clear();
11468 // read part of list
11469 ret = fromListPartial(n, state.buffer, state.decoder);
11475 // Extracts only enough buffered data to satisfy the amount requested.
11476 // This function is designed to be inlinable, so please take care when making
11477 // changes to the function body.
11478 function fromListPartial(n, list, hasStrings) {
11480 if (n < list.head.data.length) {
11481 // slice is the same for buffers and strings
11482 ret = list.head.data.slice(
0, n);
11483 list.head.data = list.head.data.slice(n);
11484 } else if (n === list.head.data.length) {
11485 // first chunk is a perfect match
11486 ret = list.shift();
11488 // result spans more than one buffer
11489 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11494 // Copies a specified amount of characters from the list of buffered data
11496 // This function is designed to be inlinable, so please take care when making
11497 // changes to the function body.
11498 function copyFromBufferString(n, list) {
11503 while (p = p.next) {
11505 var nb = n
> str.length ? str.length : n;
11506 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11509 if (nb === str.length) {
11511 if (p.next) list.head = p.next;else list.head = list.tail = null;
11514 p.data = str.slice(nb);
11524 // Copies a specified amount of bytes from the list of buffered data chunks.
11525 // This function is designed to be inlinable, so please take care when making
11526 // changes to the function body.
11527 function copyFromBuffer(n, list) {
11528 var ret = Buffer.allocUnsafe(n);
11532 n -= p.data.length;
11533 while (p = p.next) {
11535 var nb = n
> buf.length ? buf.length : n;
11536 buf.copy(ret, ret.length - n,
0, nb);
11539 if (nb === buf.length) {
11541 if (p.next) list.head = p.next;else list.head = list.tail = null;
11544 p.data = buf.slice(nb);
11554 function endReadable(stream) {
11555 var state = stream._readableState;
11557 // If we get here before consuming all the bytes, then that is a
11558 // bug in node. Should never happen.
11559 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11561 if (!state.endEmitted) {
11562 state.ended = true;
11563 processNextTick(endReadableNT, state, stream);
11567 function endReadableNT(state, stream) {
11568 // Check that we didn't get one last unshift.
11569 if (!state.endEmitted && state.length ===
0) {
11570 state.endEmitted = true;
11571 stream.readable = false;
11572 stream.emit('end');
11576 function forEach(xs, f) {
11577 for (var i =
0, l = xs.length; i < l; i++) {
11582 function indexOf(xs, x) {
11583 for (var i =
0, l = xs.length; i < l; i++) {
11584 if (xs[i] === x) return i;
11588 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11589 },{
"./_stream_duplex":
14,
"./internal/streams/BufferList":
19,
"./internal/streams/destroy":
20,
"./internal/streams/stream":
21,
"_process":
12,
"core-util-is":
5,
"events":
6,
"inherits":
8,
"isarray":
10,
"process-nextick-args":
11,
"safe-buffer":
26,
"string_decoder/":
28,
"util":
3}],
17:[function(require,module,exports){
11590 // Copyright Joyent, Inc. and other Node contributors.
11592 // Permission is hereby granted, free of charge, to any person obtaining a
11593 // copy of this software and associated documentation files (the
11594 //
"Software"), to deal in the Software without restriction, including
11595 // without limitation the rights to use, copy, modify, merge, publish,
11596 // distribute, sublicense, and/or sell copies of the Software, and to permit
11597 // persons to whom the Software is furnished to do so, subject to the
11598 // following conditions:
11600 // The above copyright notice and this permission notice shall be included
11601 // in all copies or substantial portions of the Software.
11603 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11604 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11605 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11606 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11607 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11608 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11609 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11611 // a transform stream is a readable/writable stream where you do
11612 // something with the data. Sometimes it's called a
"filter",
11613 // but that's not a great name for it, since that implies a thing where
11614 // some bits pass through, and others are simply ignored. (That would
11615 // be a valid example of a transform, of course.)
11617 // While the output is causally related to the input, it's not a
11618 // necessarily symmetric or synchronous transformation. For example,
11619 // a zlib stream might take multiple plain-text writes(), and then
11620 // emit a single compressed chunk some time in the future.
11622 // Here's how this works:
11624 // The Transform stream has all the aspects of the readable and writable
11625 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11626 // internally, and returns false if there's a lot of pending writes
11627 // buffered up. When you call read(), that calls _read(n) until
11628 // there's enough pending readable data buffered up.
11630 // In a transform stream, the written data is placed in a buffer. When
11631 // _read(n) is called, it transforms the queued up data, calling the
11632 // buffered _write cb's as it consumes chunks. If consuming a single
11633 // written chunk would result in multiple output chunks, then the first
11634 // outputted bit calls the readcb, and subsequent chunks just go into
11635 // the read buffer, and will cause it to emit 'readable' if necessary.
11637 // This way, back-pressure is actually determined by the reading side,
11638 // since _read has to be called to start processing a new chunk. However,
11639 // a pathological inflate type of transform can cause excessive buffering
11640 // here. For example, imagine a stream where every byte of input is
11641 // interpreted as an integer from
0-
255, and then results in that many
11642 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11643 //
1kb of data being output. In this case, you could write a very small
11644 // amount of input, and end up with a very large amount of output. In
11645 // such a pathological inflating mechanism, there'd be no way to tell
11646 // the system to stop doing the transform. A single
4MB write could
11647 // cause the system to run out of memory.
11649 // However, even in such a pathological case, only a single written chunk
11650 // would be consumed, and then the rest would wait (un-transformed) until
11651 // the results of the previous transformed chunk were consumed.
11655 module.exports = Transform;
11657 var Duplex = require('./_stream_duplex');
11660 var util = require('core-util-is');
11661 util.inherits = require('inherits');
11664 util.inherits(Transform, Duplex);
11666 function TransformState(stream) {
11667 this.afterTransform = function (er, data) {
11668 return afterTransform(stream, er, data);
11671 this.needTransform = false;
11672 this.transforming = false;
11673 this.writecb = null;
11674 this.writechunk = null;
11675 this.writeencoding = null;
11678 function afterTransform(stream, er, data) {
11679 var ts = stream._transformState;
11680 ts.transforming = false;
11682 var cb = ts.writecb;
11685 return stream.emit('error', new Error('write callback called multiple times'));
11688 ts.writechunk = null;
11691 if (data !== null && data !== undefined) stream.push(data);
11695 var rs = stream._readableState;
11696 rs.reading = false;
11697 if (rs.needReadable || rs.length < rs.highWaterMark) {
11698 stream._read(rs.highWaterMark);
11702 function Transform(options) {
11703 if (!(this instanceof Transform)) return new Transform(options);
11705 Duplex.call(this, options);
11707 this._transformState = new TransformState(this);
11711 // start out asking for a readable event once data is transformed.
11712 this._readableState.needReadable = true;
11714 // we have implemented the _read method, and done the other things
11715 // that Readable wants before the first _read call, so unset the
11716 // sync guard flag.
11717 this._readableState.sync = false;
11720 if (typeof options.transform === 'function') this._transform = options.transform;
11722 if (typeof options.flush === 'function') this._flush = options.flush;
11725 // When the writable side finishes, then flush out anything remaining.
11726 this.once('prefinish', function () {
11727 if (typeof this._flush === 'function') this._flush(function (er, data) {
11728 done(stream, er, data);
11729 });else done(stream);
11733 Transform.prototype.push = function (chunk, encoding) {
11734 this._transformState.needTransform = false;
11735 return Duplex.prototype.push.call(this, chunk, encoding);
11738 // This is the part where you do stuff!
11739 // override this function in implementation classes.
11740 // 'chunk' is an input chunk.
11742 // Call `push(newChunk)` to pass along transformed output
11743 // to the readable side. You may call 'push' zero or more times.
11745 // Call `cb(err)` when you are done with this chunk. If you pass
11746 // an error, then that'll put the hurt on the whole operation. If you
11747 // never call cb(), then you'll never get another chunk.
11748 Transform.prototype._transform = function (chunk, encoding, cb) {
11749 throw new Error('_transform() is not implemented');
11752 Transform.prototype._write = function (chunk, encoding, cb) {
11753 var ts = this._transformState;
11755 ts.writechunk = chunk;
11756 ts.writeencoding = encoding;
11757 if (!ts.transforming) {
11758 var rs = this._readableState;
11759 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11763 // Doesn't matter what the args are here.
11764 // _transform does all the work.
11765 // That we got here means that the readable side wants more data.
11766 Transform.prototype._read = function (n) {
11767 var ts = this._transformState;
11769 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11770 ts.transforming = true;
11771 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11773 // mark that we need a transform, so that any data that comes in
11774 // will get processed, now that we've asked for it.
11775 ts.needTransform = true;
11779 Transform.prototype._destroy = function (err, cb) {
11782 Duplex.prototype._destroy.call(this, err, function (err2) {
11784 _this.emit('close');
11788 function done(stream, er, data) {
11789 if (er) return stream.emit('error', er);
11791 if (data !== null && data !== undefined) stream.push(data);
11793 // if there's nothing in the write buffer, then that means
11794 // that nothing more will ever be provided
11795 var ws = stream._writableState;
11796 var ts = stream._transformState;
11798 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11800 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11802 return stream.push(null);
11804 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11805 (function (process,global){
11806 // Copyright Joyent, Inc. and other Node contributors.
11808 // Permission is hereby granted, free of charge, to any person obtaining a
11809 // copy of this software and associated documentation files (the
11810 // "Software"), to deal in the Software without restriction, including
11811 // without limitation the rights to use, copy, modify, merge, publish,
11812 // distribute, sublicense, and/or sell copies of the Software, and to permit
11813 // persons to whom the Software is furnished to do so, subject to the
11814 // following conditions:
11816 // The above copyright notice and this permission notice shall be included
11817 // in all copies or substantial portions of the Software.
11819 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11820 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11821 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11822 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11823 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11824 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11825 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11827 // A bit simpler than readable streams.
11828 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11829 // the drain event emission and buffering.
11835 var processNextTick = require('process-nextick-args');
11838 module.exports = Writable;
11840 /*
<replacement> */
11841 function WriteReq(chunk, encoding, cb) {
11842 this.chunk = chunk;
11843 this.encoding = encoding;
11844 this.callback = cb;
11848 // It seems a linked list but it is not
11849 // there will be only
2 of these for each stream
11850 function CorkedRequest(state) {
11855 this.finish = function () {
11856 onCorkedFinish(_this, state);
11859 /*
</replacement> */
11862 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11869 Writable.WritableState = WritableState;
11872 var util = require('core-util-is');
11873 util.inherits = require('inherits');
11877 var internalUtil = {
11878 deprecate: require('util-deprecate')
11883 var Stream = require('./internal/streams/stream');
11887 var Buffer = require('safe-buffer').Buffer;
11888 var OurUint8Array = global.Uint8Array || function () {};
11889 function _uint8ArrayToBuffer(chunk) {
11890 return Buffer.from(chunk);
11892 function _isUint8Array(obj) {
11893 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11897 var destroyImpl = require('./internal/streams/destroy');
11899 util.inherits(Writable, Stream);
11903 function WritableState(options, stream) {
11904 Duplex = Duplex || require('./_stream_duplex');
11906 options = options || {};
11908 // object stream flag to indicate whether or not this stream
11909 // contains buffers or objects.
11910 this.objectMode = !!options.objectMode;
11912 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11914 // the point at which write() starts returning false
11915 // Note:
0 is a valid value, means that we always return false if
11916 // the entire buffer is not flushed immediately on write()
11917 var hwm = options.highWaterMark;
11918 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11919 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11922 this.highWaterMark = Math.floor(this.highWaterMark);
11924 // if _final has been called
11925 this.finalCalled = false;
11927 // drain event flag.
11928 this.needDrain = false;
11929 // at the start of calling end()
11930 this.ending = false;
11931 // when end() has been called, and returned
11932 this.ended = false;
11933 // when 'finish' is emitted
11934 this.finished = false;
11936 // has it been destroyed
11937 this.destroyed = false;
11939 // should we decode strings into buffers before passing to _write?
11940 // this is here so that some node-core streams can optimize string
11941 // handling at a lower level.
11942 var noDecode = options.decodeStrings === false;
11943 this.decodeStrings = !noDecode;
11945 // Crypto is kind of old and crusty. Historically, its default string
11946 // encoding is 'binary' so we have to make this configurable.
11947 // Everything else in the universe uses 'utf8', though.
11948 this.defaultEncoding = options.defaultEncoding || 'utf8';
11950 // not an actual buffer we keep track of, but a measurement
11951 // of how much we're waiting to get pushed to some underlying
11955 // a flag to see when we're in the middle of a write.
11956 this.writing = false;
11958 // when true all writes will be buffered until .uncork() call
11961 // a flag to be able to tell if the onwrite cb is called immediately,
11962 // or on a later tick. We set this to true at first, because any
11963 // actions that shouldn't happen until "later" should generally also
11964 // not happen before the first write call.
11967 // a flag to know if we're processing previously buffered items, which
11968 // may call the _write() callback in the same tick, so that we don't
11969 // end up in an overlapped onwrite situation.
11970 this.bufferProcessing = false;
11972 // the callback that's passed to _write(chunk,cb)
11973 this.onwrite = function (er) {
11974 onwrite(stream, er);
11977 // the callback that the user supplies to write(chunk,encoding,cb)
11978 this.writecb = null;
11980 // the amount that is being written when _write is called.
11983 this.bufferedRequest = null;
11984 this.lastBufferedRequest = null;
11986 // number of pending user-supplied write callbacks
11987 // this must be
0 before 'finish' can be emitted
11988 this.pendingcb =
0;
11990 // emit prefinish if the only thing we're waiting for is _write cbs
11991 // This is relevant for synchronous Transform streams
11992 this.prefinished = false;
11994 // True if the error was already emitted and should not be thrown again
11995 this.errorEmitted = false;
11997 // count buffered requests
11998 this.bufferedRequestCount =
0;
12000 // allocate the first CorkedRequest, there is always
12001 // one allocated and free to use, and we maintain at most two
12002 this.corkedRequestsFree = new CorkedRequest(this);
12005 WritableState.prototype.getBuffer = function getBuffer() {
12006 var current = this.bufferedRequest;
12010 current = current.next;
12017 Object.defineProperty(WritableState.prototype, 'buffer', {
12018 get: internalUtil.deprecate(function () {
12019 return this.getBuffer();
12020 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12025 // Test _writableState for inheritance to account for Duplex streams,
12026 // whose prototype chain only points to Readable.
12027 var realHasInstance;
12028 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12029 realHasInstance = Function.prototype[Symbol.hasInstance];
12030 Object.defineProperty(Writable, Symbol.hasInstance, {
12031 value: function (object) {
12032 if (realHasInstance.call(this, object)) return true;
12034 return object && object._writableState instanceof WritableState;
12038 realHasInstance = function (object) {
12039 return object instanceof this;
12043 function Writable(options) {
12044 Duplex = Duplex || require('./_stream_duplex');
12046 // Writable ctor is applied to Duplexes, too.
12047 // `realHasInstance` is necessary because using plain `instanceof`
12048 // would return false, as no `_writableState` property is attached.
12050 // Trying to use the custom `instanceof` for Writable here will also break the
12051 // Node.js LazyTransform implementation, which has a non-trivial getter for
12052 // `_writableState` that would lead to infinite recursion.
12053 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12054 return new Writable(options);
12057 this._writableState = new WritableState(options, this);
12060 this.writable = true;
12063 if (typeof options.write === 'function') this._write = options.write;
12065 if (typeof options.writev === 'function') this._writev = options.writev;
12067 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12069 if (typeof options.final === 'function') this._final = options.final;
12075 // Otherwise people can pipe Writable streams, which is just wrong.
12076 Writable.prototype.pipe = function () {
12077 this.emit('error', new Error('Cannot pipe, not readable'));
12080 function writeAfterEnd(stream, cb) {
12081 var er = new Error('write after end');
12082 // TODO: defer error events consistently everywhere, not just the cb
12083 stream.emit('error', er);
12084 processNextTick(cb, er);
12087 // Checks that a user-supplied chunk is valid, especially for the particular
12088 // mode the stream is in. Currently this means that `null` is never accepted
12089 // and undefined/non-string values are only allowed in object mode.
12090 function validChunk(stream, state, chunk, cb) {
12094 if (chunk === null) {
12095 er = new TypeError('May not write null values to stream');
12096 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12097 er = new TypeError('Invalid non-string/buffer chunk');
12100 stream.emit('error', er);
12101 processNextTick(cb, er);
12107 Writable.prototype.write = function (chunk, encoding, cb) {
12108 var state = this._writableState;
12110 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12112 if (isBuf && !Buffer.isBuffer(chunk)) {
12113 chunk = _uint8ArrayToBuffer(chunk);
12116 if (typeof encoding === 'function') {
12121 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12123 if (typeof cb !== 'function') cb = nop;
12125 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12127 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12133 Writable.prototype.cork = function () {
12134 var state = this._writableState;
12139 Writable.prototype.uncork = function () {
12140 var state = this._writableState;
12142 if (state.corked) {
12145 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12149 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12150 // node::ParseEncoding() requires lower case.
12151 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12152 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
12153 this._writableState.defaultEncoding = encoding;
12157 function decodeChunk(state, chunk, encoding) {
12158 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12159 chunk = Buffer.from(chunk, encoding);
12164 // if we're already writing something, then just put this
12165 // in the queue, and wait our turn. Otherwise, call _write
12166 // If we return false, then we need a drain event, so set that flag.
12167 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12169 var newChunk = decodeChunk(state, chunk, encoding);
12170 if (chunk !== newChunk) {
12172 encoding = 'buffer';
12176 var len = state.objectMode ?
1 : chunk.length;
12178 state.length += len;
12180 var ret = state.length < state.highWaterMark;
12181 // we must ensure that previous needDrain will not be reset to false.
12182 if (!ret) state.needDrain = true;
12184 if (state.writing || state.corked) {
12185 var last = state.lastBufferedRequest;
12186 state.lastBufferedRequest = {
12188 encoding: encoding,
12194 last.next = state.lastBufferedRequest;
12196 state.bufferedRequest = state.lastBufferedRequest;
12198 state.bufferedRequestCount +=
1;
12200 doWrite(stream, state, false, len, chunk, encoding, cb);
12206 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12207 state.writelen = len;
12208 state.writecb = cb;
12209 state.writing = true;
12211 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12212 state.sync = false;
12215 function onwriteError(stream, state, sync, er, cb) {
12219 // defer the callback if we are being called synchronously
12220 // to avoid piling up things on the stack
12221 processNextTick(cb, er);
12222 // this can emit finish, and it will always happen
12224 processNextTick(finishMaybe, stream, state);
12225 stream._writableState.errorEmitted = true;
12226 stream.emit('error', er);
12228 // the caller expect this to happen before if
12231 stream._writableState.errorEmitted = true;
12232 stream.emit('error', er);
12233 // this can emit finish, but finish must
12234 // always follow error
12235 finishMaybe(stream, state);
12239 function onwriteStateUpdate(state) {
12240 state.writing = false;
12241 state.writecb = null;
12242 state.length -= state.writelen;
12243 state.writelen =
0;
12246 function onwrite(stream, er) {
12247 var state = stream._writableState;
12248 var sync = state.sync;
12249 var cb = state.writecb;
12251 onwriteStateUpdate(state);
12253 if (er) onwriteError(stream, state, sync, er, cb);else {
12254 // Check if we're actually ready to finish, but don't emit yet
12255 var finished = needFinish(state);
12257 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12258 clearBuffer(stream, state);
12263 asyncWrite(afterWrite, stream, state, finished, cb);
12266 afterWrite(stream, state, finished, cb);
12271 function afterWrite(stream, state, finished, cb) {
12272 if (!finished) onwriteDrain(stream, state);
12275 finishMaybe(stream, state);
12278 // Must force callback to be called on nextTick, so that we don't
12279 // emit 'drain' before the write() consumer gets the 'false' return
12280 // value, and has a chance to attach a 'drain' listener.
12281 function onwriteDrain(stream, state) {
12282 if (state.length ===
0 && state.needDrain) {
12283 state.needDrain = false;
12284 stream.emit('drain');
12288 // if there's something in the buffer waiting, then process it
12289 function clearBuffer(stream, state) {
12290 state.bufferProcessing = true;
12291 var entry = state.bufferedRequest;
12293 if (stream._writev && entry && entry.next) {
12294 // Fast case, write everything using _writev()
12295 var l = state.bufferedRequestCount;
12296 var buffer = new Array(l);
12297 var holder = state.corkedRequestsFree;
12298 holder.entry = entry;
12301 var allBuffers = true;
12303 buffer[count] = entry;
12304 if (!entry.isBuf) allBuffers = false;
12305 entry = entry.next;
12308 buffer.allBuffers = allBuffers;
12310 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12312 // doWrite is almost always async, defer these to save a bit of time
12313 // as the hot path ends with doWrite
12315 state.lastBufferedRequest = null;
12317 state.corkedRequestsFree = holder.next;
12318 holder.next = null;
12320 state.corkedRequestsFree = new CorkedRequest(state);
12323 // Slow case, write chunks one-by-one
12325 var chunk = entry.chunk;
12326 var encoding = entry.encoding;
12327 var cb = entry.callback;
12328 var len = state.objectMode ?
1 : chunk.length;
12330 doWrite(stream, state, false, len, chunk, encoding, cb);
12331 entry = entry.next;
12332 // if we didn't call the onwrite immediately, then
12333 // it means that we need to wait until it does.
12334 // also, that means that the chunk and cb are currently
12335 // being processed, so move the buffer counter past them.
12336 if (state.writing) {
12341 if (entry === null) state.lastBufferedRequest = null;
12344 state.bufferedRequestCount =
0;
12345 state.bufferedRequest = entry;
12346 state.bufferProcessing = false;
12349 Writable.prototype._write = function (chunk, encoding, cb) {
12350 cb(new Error('_write() is not implemented'));
12353 Writable.prototype._writev = null;
12355 Writable.prototype.end = function (chunk, encoding, cb) {
12356 var state = this._writableState;
12358 if (typeof chunk === 'function') {
12362 } else if (typeof encoding === 'function') {
12367 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12369 // .end() fully uncorks
12370 if (state.corked) {
12375 // ignore unnecessary end() calls.
12376 if (!state.ending && !state.finished) endWritable(this, state, cb);
12379 function needFinish(state) {
12380 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12382 function callFinal(stream, state) {
12383 stream._final(function (err) {
12386 stream.emit('error', err);
12388 state.prefinished = true;
12389 stream.emit('prefinish');
12390 finishMaybe(stream, state);
12393 function prefinish(stream, state) {
12394 if (!state.prefinished && !state.finalCalled) {
12395 if (typeof stream._final === 'function') {
12397 state.finalCalled = true;
12398 processNextTick(callFinal, stream, state);
12400 state.prefinished = true;
12401 stream.emit('prefinish');
12406 function finishMaybe(stream, state) {
12407 var need = needFinish(state);
12409 prefinish(stream, state);
12410 if (state.pendingcb ===
0) {
12411 state.finished = true;
12412 stream.emit('finish');
12418 function endWritable(stream, state, cb) {
12419 state.ending = true;
12420 finishMaybe(stream, state);
12422 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12424 state.ended = true;
12425 stream.writable = false;
12428 function onCorkedFinish(corkReq, state, err) {
12429 var entry = corkReq.entry;
12430 corkReq.entry = null;
12432 var cb = entry.callback;
12435 entry = entry.next;
12437 if (state.corkedRequestsFree) {
12438 state.corkedRequestsFree.next = corkReq;
12440 state.corkedRequestsFree = corkReq;
12444 Object.defineProperty(Writable.prototype, 'destroyed', {
12446 if (this._writableState === undefined) {
12449 return this._writableState.destroyed;
12451 set: function (value) {
12452 // we ignore the value if the stream
12453 // has not been initialized yet
12454 if (!this._writableState) {
12458 // backward compatibility, the user is explicitly
12459 // managing destroyed
12460 this._writableState.destroyed = value;
12464 Writable.prototype.destroy = destroyImpl.destroy;
12465 Writable.prototype._undestroy = destroyImpl.undestroy;
12466 Writable.prototype._destroy = function (err, cb) {
12470 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12471 },{"./_stream_duplex":
14,"./internal/streams/destroy":
20,"./internal/streams/stream":
21,"_process":
12,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11,"safe-buffer":
26,"util-deprecate":
29}],
19:[function(require,module,exports){
12476 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12478 var Buffer = require('safe-buffer').Buffer;
12481 function copyBuffer(src, target, offset) {
12482 src.copy(target, offset);
12485 module.exports = function () {
12486 function BufferList() {
12487 _classCallCheck(this, BufferList);
12494 BufferList.prototype.push = function push(v) {
12495 var entry = { data: v, next: null };
12496 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12501 BufferList.prototype.unshift = function unshift(v) {
12502 var entry = { data: v, next: this.head };
12503 if (this.length ===
0) this.tail = entry;
12508 BufferList.prototype.shift = function shift() {
12509 if (this.length ===
0) return;
12510 var ret = this.head.data;
12511 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12516 BufferList.prototype.clear = function clear() {
12517 this.head = this.tail = null;
12521 BufferList.prototype.join = function join(s) {
12522 if (this.length ===
0) return '';
12524 var ret = '' + p.data;
12525 while (p = p.next) {
12530 BufferList.prototype.concat = function concat(n) {
12531 if (this.length ===
0) return Buffer.alloc(
0);
12532 if (this.length ===
1) return this.head.data;
12533 var ret = Buffer.allocUnsafe(n
>>> 0);
12537 copyBuffer(p.data, ret, i);
12538 i += p.data.length;
12546 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12551 var processNextTick = require('process-nextick-args');
12554 // undocumented cb() API, needed for core, not for public API
12555 function destroy(err, cb) {
12558 var readableDestroyed = this._readableState && this._readableState.destroyed;
12559 var writableDestroyed = this._writableState && this._writableState.destroyed;
12561 if (readableDestroyed || writableDestroyed) {
12564 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12565 processNextTick(emitErrorNT, this, err);
12570 // we set destroyed to true before firing error callbacks in order
12571 // to make it re-entrance safe in case destroy() is called within callbacks
12573 if (this._readableState) {
12574 this._readableState.destroyed = true;
12577 // if this is a duplex stream mark the writable part as destroyed as well
12578 if (this._writableState) {
12579 this._writableState.destroyed = true;
12582 this._destroy(err || null, function (err) {
12584 processNextTick(emitErrorNT, _this, err);
12585 if (_this._writableState) {
12586 _this._writableState.errorEmitted = true;
12594 function undestroy() {
12595 if (this._readableState) {
12596 this._readableState.destroyed = false;
12597 this._readableState.reading = false;
12598 this._readableState.ended = false;
12599 this._readableState.endEmitted = false;
12602 if (this._writableState) {
12603 this._writableState.destroyed = false;
12604 this._writableState.ended = false;
12605 this._writableState.ending = false;
12606 this._writableState.finished = false;
12607 this._writableState.errorEmitted = false;
12611 function emitErrorNT(self, err) {
12612 self.emit('error', err);
12617 undestroy: undestroy
12619 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12620 module.exports = require('events').EventEmitter;
12622 },{"events":
6}],
22:[function(require,module,exports){
12623 module.exports = require('./readable').PassThrough
12625 },{"./readable":
23}],
23:[function(require,module,exports){
12626 exports = module.exports = require('./lib/_stream_readable.js');
12627 exports.Stream = exports;
12628 exports.Readable = exports;
12629 exports.Writable = require('./lib/_stream_writable.js');
12630 exports.Duplex = require('./lib/_stream_duplex.js');
12631 exports.Transform = require('./lib/_stream_transform.js');
12632 exports.PassThrough = require('./lib/_stream_passthrough.js');
12634 },{"./lib/_stream_duplex.js":
14,"./lib/_stream_passthrough.js":
15,"./lib/_stream_readable.js":
16,"./lib/_stream_transform.js":
17,"./lib/_stream_writable.js":
18}],
24:[function(require,module,exports){
12635 module.exports = require('./readable').Transform
12637 },{"./readable":
23}],
25:[function(require,module,exports){
12638 module.exports = require('./lib/_stream_writable.js');
12640 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12641 /* eslint-disable node/no-deprecated-api */
12642 var buffer = require('buffer')
12643 var Buffer = buffer.Buffer
12645 // alternative to using Object.keys for old browsers
12646 function copyProps (src, dst) {
12647 for (var key in src) {
12648 dst[key] = src[key]
12651 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12652 module.exports = buffer
12654 // Copy properties from require('buffer')
12655 copyProps(buffer, exports)
12656 exports.Buffer = SafeBuffer
12659 function SafeBuffer (arg, encodingOrOffset, length) {
12660 return Buffer(arg, encodingOrOffset, length)
12663 // Copy static methods from Buffer
12664 copyProps(Buffer, SafeBuffer)
12666 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12667 if (typeof arg === 'number') {
12668 throw new TypeError('Argument must not be a number')
12670 return Buffer(arg, encodingOrOffset, length)
12673 SafeBuffer.alloc = function (size, fill, encoding) {
12674 if (typeof size !== 'number') {
12675 throw new TypeError('Argument must be a number')
12677 var buf = Buffer(size)
12678 if (fill !== undefined) {
12679 if (typeof encoding === 'string') {
12680 buf.fill(fill, encoding)
12690 SafeBuffer.allocUnsafe = function (size) {
12691 if (typeof size !== 'number') {
12692 throw new TypeError('Argument must be a number')
12694 return Buffer(size)
12697 SafeBuffer.allocUnsafeSlow = function (size) {
12698 if (typeof size !== 'number') {
12699 throw new TypeError('Argument must be a number')
12701 return buffer.SlowBuffer(size)
12704 },{"buffer":
4}],
27:[function(require,module,exports){
12705 // Copyright Joyent, Inc. and other Node contributors.
12707 // Permission is hereby granted, free of charge, to any person obtaining a
12708 // copy of this software and associated documentation files (the
12709 // "Software"), to deal in the Software without restriction, including
12710 // without limitation the rights to use, copy, modify, merge, publish,
12711 // distribute, sublicense, and/or sell copies of the Software, and to permit
12712 // persons to whom the Software is furnished to do so, subject to the
12713 // following conditions:
12715 // The above copyright notice and this permission notice shall be included
12716 // in all copies or substantial portions of the Software.
12718 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12719 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12720 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12721 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12722 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12723 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12724 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12726 module.exports = Stream;
12728 var EE = require('events').EventEmitter;
12729 var inherits = require('inherits');
12731 inherits(Stream, EE);
12732 Stream.Readable = require('readable-stream/readable.js');
12733 Stream.Writable = require('readable-stream/writable.js');
12734 Stream.Duplex = require('readable-stream/duplex.js');
12735 Stream.Transform = require('readable-stream/transform.js');
12736 Stream.PassThrough = require('readable-stream/passthrough.js');
12738 // Backwards-compat with node
0.4.x
12739 Stream.Stream = Stream;
12743 // old-style streams. Note that the pipe method (the only relevant
12744 // part of this class) is overridden in the Readable class.
12746 function Stream() {
12750 Stream.prototype.pipe = function(dest, options) {
12753 function ondata(chunk) {
12754 if (dest.writable) {
12755 if (false === dest.write(chunk) && source.pause) {
12761 source.on('data', ondata);
12763 function ondrain() {
12764 if (source.readable && source.resume) {
12769 dest.on('drain', ondrain);
12771 // If the 'end' option is not supplied, dest.end() will be called when
12772 // source gets the 'end' or 'close' events. Only dest.end() once.
12773 if (!dest._isStdio && (!options || options.end !== false)) {
12774 source.on('end', onend);
12775 source.on('close', onclose);
12778 var didOnEnd = false;
12780 if (didOnEnd) return;
12787 function onclose() {
12788 if (didOnEnd) return;
12791 if (typeof dest.destroy === 'function') dest.destroy();
12794 // don't leave dangling pipes when there are errors.
12795 function onerror(er) {
12797 if (EE.listenerCount(this, 'error') ===
0) {
12798 throw er; // Unhandled stream error in pipe.
12802 source.on('error', onerror);
12803 dest.on('error', onerror);
12805 // remove all the event listeners that were added.
12806 function cleanup() {
12807 source.removeListener('data', ondata);
12808 dest.removeListener('drain', ondrain);
12810 source.removeListener('end', onend);
12811 source.removeListener('close', onclose);
12813 source.removeListener('error', onerror);
12814 dest.removeListener('error', onerror);
12816 source.removeListener('end', cleanup);
12817 source.removeListener('close', cleanup);
12819 dest.removeListener('close', cleanup);
12822 source.on('end', cleanup);
12823 source.on('close', cleanup);
12825 dest.on('close', cleanup);
12827 dest.emit('pipe', source);
12829 // Allow for unix-like usage: A.pipe(B).pipe(C)
12833 },{"events":
6,"inherits":
8,"readable-stream/duplex.js":
13,"readable-stream/passthrough.js":
22,"readable-stream/readable.js":
23,"readable-stream/transform.js":
24,"readable-stream/writable.js":
25}],
28:[function(require,module,exports){
12836 var Buffer = require('safe-buffer').Buffer;
12838 var isEncoding = Buffer.isEncoding || function (encoding) {
12839 encoding = '' + encoding;
12840 switch (encoding && encoding.toLowerCase()) {
12841 case 'hex':case 'utf8':case 'utf-
8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-
2':case 'utf16le':case 'utf-
16le':case 'raw':
12848 function _normalizeEncoding(enc) {
12849 if (!enc) return 'utf8';
12869 if (retried) return; // undefined
12870 enc = ('' + enc).toLowerCase();
12876 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12877 // modules monkey-patch it to support additional encodings
12878 function normalizeEncoding(enc) {
12879 var nenc = _normalizeEncoding(enc);
12880 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12881 return nenc || enc;
12884 // StringDecoder provides an interface for efficiently splitting a series of
12885 // buffers into a series of JS strings without breaking apart multi-byte
12887 exports.StringDecoder = StringDecoder;
12888 function StringDecoder(encoding) {
12889 this.encoding = normalizeEncoding(encoding);
12891 switch (this.encoding) {
12893 this.text = utf16Text;
12894 this.end = utf16End;
12898 this.fillLast = utf8FillLast;
12902 this.text = base64Text;
12903 this.end = base64End;
12907 this.write = simpleWrite;
12908 this.end = simpleEnd;
12912 this.lastTotal =
0;
12913 this.lastChar = Buffer.allocUnsafe(nb);
12916 StringDecoder.prototype.write = function (buf) {
12917 if (buf.length ===
0) return '';
12920 if (this.lastNeed) {
12921 r = this.fillLast(buf);
12922 if (r === undefined) return '';
12928 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12932 StringDecoder.prototype.end = utf8End;
12934 // Returns only complete characters in a Buffer
12935 StringDecoder.prototype.text = utf8Text;
12937 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12938 StringDecoder.prototype.fillLast = function (buf) {
12939 if (this.lastNeed <= buf.length) {
12940 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12941 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12943 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12944 this.lastNeed -= buf.length;
12947 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12948 // continuation byte.
12949 function utf8CheckByte(byte) {
12950 if (byte <=
0x7F) return
0;else if (byte
>> 5 ===
0x06) return
2;else if (byte
>> 4 ===
0x0E) return
3;else if (byte
>> 3 ===
0x1E) return
4;
12954 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12955 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12956 // needed to complete the UTF-
8 character (if applicable) are returned.
12957 function utf8CheckIncomplete(self, buf, i) {
12958 var j = buf.length -
1;
12959 if (j < i) return
0;
12960 var nb = utf8CheckByte(buf[j]);
12962 if (nb
> 0) self.lastNeed = nb -
1;
12965 if (--j < i) return
0;
12966 nb = utf8CheckByte(buf[j]);
12968 if (nb
> 0) self.lastNeed = nb -
2;
12971 if (--j < i) return
0;
12972 nb = utf8CheckByte(buf[j]);
12975 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
12982 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
12983 // needed or are available. If we see a non-continuation byte where we expect
12984 // one, we
"replace" the validated continuation bytes we've seen so far with
12985 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
12986 // behavior. The continuation byte check is included three times in the case
12987 // where all of the continuation bytes for a character exist in the same buffer.
12988 // It is also done this way as a slight performance increase instead of using a
12990 function utf8CheckExtraBytes(self, buf, p) {
12991 if ((buf[
0] &
0xC0) !==
0x80) {
12993 return '\ufffd'.repeat(p);
12995 if (self.lastNeed
> 1 && buf.length
> 1) {
12996 if ((buf[
1] &
0xC0) !==
0x80) {
12998 return '\ufffd'.repeat(p +
1);
13000 if (self.lastNeed
> 2 && buf.length
> 2) {
13001 if ((buf[
2] &
0xC0) !==
0x80) {
13003 return '\ufffd'.repeat(p +
2);
13009 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13010 function utf8FillLast(buf) {
13011 var p = this.lastTotal - this.lastNeed;
13012 var r = utf8CheckExtraBytes(this, buf, p);
13013 if (r !== undefined) return r;
13014 if (this.lastNeed <= buf.length) {
13015 buf.copy(this.lastChar, p,
0, this.lastNeed);
13016 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13018 buf.copy(this.lastChar, p,
0, buf.length);
13019 this.lastNeed -= buf.length;
13022 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13023 // partial character, the character's bytes are buffered until the required
13024 // number of bytes are available.
13025 function utf8Text(buf, i) {
13026 var total = utf8CheckIncomplete(this, buf, i);
13027 if (!this.lastNeed) return buf.toString('utf8', i);
13028 this.lastTotal = total;
13029 var end = buf.length - (total - this.lastNeed);
13030 buf.copy(this.lastChar,
0, end);
13031 return buf.toString('utf8', i, end);
13034 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13035 // character needs to be added to the output.
13036 function utf8End(buf) {
13037 var r = buf && buf.length ? this.write(buf) : '';
13038 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13042 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13043 // number of bytes available, we need to check if we end on a leading/high
13044 // surrogate. In that case, we need to wait for the next two bytes in order to
13045 // decode the last character properly.
13046 function utf16Text(buf, i) {
13047 if ((buf.length - i) %
2 ===
0) {
13048 var r = buf.toString('utf16le', i);
13050 var c = r.charCodeAt(r.length -
1);
13051 if (c
>=
0xD800 && c <=
0xDBFF) {
13053 this.lastTotal =
4;
13054 this.lastChar[
0] = buf[buf.length -
2];
13055 this.lastChar[
1] = buf[buf.length -
1];
13056 return r.slice(
0, -
1);
13062 this.lastTotal =
2;
13063 this.lastChar[
0] = buf[buf.length -
1];
13064 return buf.toString('utf16le', i, buf.length -
1);
13067 // For UTF-
16LE we do not explicitly append special replacement characters if we
13068 // end on a partial character, we simply let v8 handle that.
13069 function utf16End(buf) {
13070 var r = buf && buf.length ? this.write(buf) : '';
13071 if (this.lastNeed) {
13072 var end = this.lastTotal - this.lastNeed;
13073 return r + this.lastChar.toString('utf16le',
0, end);
13078 function base64Text(buf, i) {
13079 var n = (buf.length - i) %
3;
13080 if (n ===
0) return buf.toString('base64', i);
13081 this.lastNeed =
3 - n;
13082 this.lastTotal =
3;
13084 this.lastChar[
0] = buf[buf.length -
1];
13086 this.lastChar[
0] = buf[buf.length -
2];
13087 this.lastChar[
1] = buf[buf.length -
1];
13089 return buf.toString('base64', i, buf.length - n);
13092 function base64End(buf) {
13093 var r = buf && buf.length ? this.write(buf) : '';
13094 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13098 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13099 function simpleWrite(buf) {
13100 return buf.toString(this.encoding);
13103 function simpleEnd(buf) {
13104 return buf && buf.length ? this.write(buf) : '';
13106 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13107 (function (global){
13113 module.exports = deprecate;
13116 * Mark that a method should not be used.
13117 * Returns a modified function which warns once by default.
13119 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13121 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13122 * will throw an Error when invoked.
13124 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13125 * will invoke `console.trace()` instead of `console.error()`.
13127 * @param {Function} fn - the function to deprecate
13128 * @param {String} msg - the string to print to the console when `fn` is invoked
13129 * @returns {Function} a new "deprecated" version of `fn`
13133 function deprecate (fn, msg) {
13134 if (config('noDeprecation')) {
13138 var warned = false;
13139 function deprecated() {
13141 if (config('throwDeprecation')) {
13142 throw new Error(msg);
13143 } else if (config('traceDeprecation')) {
13144 console.trace(msg);
13150 return fn.apply(this, arguments);
13157 * Checks `localStorage` for boolean values for the given `name`.
13159 * @param {String} name
13160 * @returns {Boolean}
13164 function config (name) {
13165 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13167 if (!global.localStorage) return false;
13171 var val = global.localStorage[name];
13172 if (null == val) return false;
13173 return String(val).toLowerCase() === 'true';
13176 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13177 },{}],
30:[function(require,module,exports){
13178 arguments[
4][
8][
0].apply(exports,arguments)
13179 },{"dup":
8}],
31:[function(require,module,exports){
13180 module.exports = function isBuffer(arg) {
13181 return arg && typeof arg === 'object'
13182 && typeof arg.copy === 'function'
13183 && typeof arg.fill === 'function'
13184 && typeof arg.readUInt8 === 'function';
13186 },{}],
32:[function(require,module,exports){
13187 (function (process,global){
13188 // Copyright Joyent, Inc. and other Node contributors.
13190 // Permission is hereby granted, free of charge, to any person obtaining a
13191 // copy of this software and associated documentation files (the
13192 // "Software"), to deal in the Software without restriction, including
13193 // without limitation the rights to use, copy, modify, merge, publish,
13194 // distribute, sublicense, and/or sell copies of the Software, and to permit
13195 // persons to whom the Software is furnished to do so, subject to the
13196 // following conditions:
13198 // The above copyright notice and this permission notice shall be included
13199 // in all copies or substantial portions of the Software.
13201 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13202 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13203 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13204 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13205 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13206 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13207 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13209 var formatRegExp = /%[sdj%]/g;
13210 exports.format = function(f) {
13211 if (!isString(f)) {
13213 for (var i =
0; i < arguments.length; i++) {
13214 objects.push(inspect(arguments[i]));
13216 return objects.join(' ');
13220 var args = arguments;
13221 var len = args.length;
13222 var str = String(f).replace(formatRegExp, function(x) {
13223 if (x === '%%') return '%';
13224 if (i
>= len) return x;
13226 case '%s': return String(args[i++]);
13227 case '%d': return Number(args[i++]);
13230 return JSON.stringify(args[i++]);
13232 return '[Circular]';
13238 for (var x = args[i]; i < len; x = args[++i]) {
13239 if (isNull(x) || !isObject(x)) {
13242 str += ' ' + inspect(x);
13249 // Mark that a method should not be used.
13250 // Returns a modified function which warns once by default.
13251 // If --no-deprecation is set, then it is a no-op.
13252 exports.deprecate = function(fn, msg) {
13253 // Allow for deprecating things in the process of starting up.
13254 if (isUndefined(global.process)) {
13255 return function() {
13256 return exports.deprecate(fn, msg).apply(this, arguments);
13260 if (process.noDeprecation === true) {
13264 var warned = false;
13265 function deprecated() {
13267 if (process.throwDeprecation) {
13268 throw new Error(msg);
13269 } else if (process.traceDeprecation) {
13270 console.trace(msg);
13272 console.error(msg);
13276 return fn.apply(this, arguments);
13285 exports.debuglog = function(set) {
13286 if (isUndefined(debugEnviron))
13287 debugEnviron = process.env.NODE_DEBUG || '';
13288 set = set.toUpperCase();
13289 if (!debugs[set]) {
13290 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13291 var pid = process.pid;
13292 debugs[set] = function() {
13293 var msg = exports.format.apply(exports, arguments);
13294 console.error('%s %d: %s', set, pid, msg);
13297 debugs[set] = function() {};
13300 return debugs[set];
13305 * Echos the value of a value. Trys to print the value out
13306 * in the best way possible given the different types.
13308 * @param {Object} obj The object to print out.
13309 * @param {Object} opts Optional options object that alters the output.
13311 /* legacy: obj, showHidden, depth, colors*/
13312 function inspect(obj, opts) {
13316 stylize: stylizeNoColor
13319 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13320 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13321 if (isBoolean(opts)) {
13323 ctx.showHidden = opts;
13325 // got an "options" object
13326 exports._extend(ctx, opts);
13328 // set default options
13329 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13330 if (isUndefined(ctx.depth)) ctx.depth =
2;
13331 if (isUndefined(ctx.colors)) ctx.colors = false;
13332 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13333 if (ctx.colors) ctx.stylize = stylizeWithColor;
13334 return formatValue(ctx, obj, ctx.depth);
13336 exports.inspect = inspect;
13339 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13342 'italic' : [
3,
23],
13343 'underline' : [
4,
24],
13344 'inverse' : [
7,
27],
13345 'white' : [
37,
39],
13347 'black' : [
30,
39],
13350 'green' : [
32,
39],
13351 'magenta' : [
35,
39],
13353 'yellow' : [
33,
39]
13356 // Don't use 'blue' not visible on cmd.exe
13359 'number': 'yellow',
13360 'boolean': 'yellow',
13361 'undefined': 'grey',
13365 // "name": intentionally not styling
13370 function stylizeWithColor(str, styleType) {
13371 var style = inspect.styles[styleType];
13374 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13375 '\u001b[' + inspect.colors[style][
1] + 'm';
13382 function stylizeNoColor(str, styleType) {
13387 function arrayToHash(array) {
13390 array.forEach(function(val, idx) {
13398 function formatValue(ctx, value, recurseTimes) {
13399 // Provide a hook for user-specified inspect functions.
13400 // Check that value is an object with an inspect function on it
13401 if (ctx.customInspect &&
13403 isFunction(value.inspect) &&
13404 // Filter out the util module, it's inspect function is special
13405 value.inspect !== exports.inspect &&
13406 // Also filter out any prototype objects using the circular check.
13407 !(value.constructor && value.constructor.prototype === value)) {
13408 var ret = value.inspect(recurseTimes, ctx);
13409 if (!isString(ret)) {
13410 ret = formatValue(ctx, ret, recurseTimes);
13415 // Primitive types cannot have properties
13416 var primitive = formatPrimitive(ctx, value);
13421 // Look up the keys of the object.
13422 var keys = Object.keys(value);
13423 var visibleKeys = arrayToHash(keys);
13425 if (ctx.showHidden) {
13426 keys = Object.getOwnPropertyNames(value);
13429 // IE doesn't make error fields non-enumerable
13430 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13432 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13433 return formatError(value);
13436 // Some type of object without properties can be shortcutted.
13437 if (keys.length ===
0) {
13438 if (isFunction(value)) {
13439 var name = value.name ? ': ' + value.name : '';
13440 return ctx.stylize('[Function' + name + ']', 'special');
13442 if (isRegExp(value)) {
13443 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13445 if (isDate(value)) {
13446 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13448 if (isError(value)) {
13449 return formatError(value);
13453 var base = '', array = false, braces = ['{', '}'];
13455 // Make Array say that they are Array
13456 if (isArray(value)) {
13458 braces = ['[', ']'];
13461 // Make functions say that they are functions
13462 if (isFunction(value)) {
13463 var n = value.name ? ': ' + value.name : '';
13464 base = ' [Function' + n + ']';
13467 // Make RegExps say that they are RegExps
13468 if (isRegExp(value)) {
13469 base = ' ' + RegExp.prototype.toString.call(value);
13472 // Make dates with properties first say the date
13473 if (isDate(value)) {
13474 base = ' ' + Date.prototype.toUTCString.call(value);
13477 // Make error with message first say the error
13478 if (isError(value)) {
13479 base = ' ' + formatError(value);
13482 if (keys.length ===
0 && (!array || value.length ==
0)) {
13483 return braces[
0] + base + braces[
1];
13486 if (recurseTimes <
0) {
13487 if (isRegExp(value)) {
13488 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13490 return ctx.stylize('[Object]', 'special');
13494 ctx.seen.push(value);
13498 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13500 output = keys.map(function(key) {
13501 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13507 return reduceToSingleString(output, base, braces);
13511 function formatPrimitive(ctx, value) {
13512 if (isUndefined(value))
13513 return ctx.stylize('undefined', 'undefined');
13514 if (isString(value)) {
13515 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13516 .replace(/'/g, "\\'")
13517 .replace(/\\"/g, '"') + '\'';
13518 return ctx.stylize(simple, 'string');
13520 if (isNumber(value))
13521 return ctx.stylize('' + value, 'number');
13522 if (isBoolean(value))
13523 return ctx.stylize('' + value, 'boolean');
13524 // For some reason typeof null is "object", so special case here.
13526 return ctx.stylize('null', 'null');
13530 function formatError(value) {
13531 return '[' + Error.prototype.toString.call(value) + ']';
13535 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13537 for (var i =
0, l = value.length; i < l; ++i) {
13538 if (hasOwnProperty(value, String(i))) {
13539 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13545 keys.forEach(function(key) {
13546 if (!key.match(/^\d+$/)) {
13547 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13555 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13556 var name, str, desc;
13557 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13560 str = ctx.stylize('[Getter/Setter]', 'special');
13562 str = ctx.stylize('[Getter]', 'special');
13566 str = ctx.stylize('[Setter]', 'special');
13569 if (!hasOwnProperty(visibleKeys, key)) {
13570 name = '[' + key + ']';
13573 if (ctx.seen.indexOf(desc.value) <
0) {
13574 if (isNull(recurseTimes)) {
13575 str = formatValue(ctx, desc.value, null);
13577 str = formatValue(ctx, desc.value, recurseTimes -
1);
13579 if (str.indexOf('\n')
> -
1) {
13581 str = str.split('\n').map(function(line) {
13583 }).join('\n').substr(
2);
13585 str = '\n' + str.split('\n').map(function(line) {
13591 str = ctx.stylize('[Circular]', 'special');
13594 if (isUndefined(name)) {
13595 if (array && key.match(/^\d+$/)) {
13598 name = JSON.stringify('' + key);
13599 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13600 name = name.substr(
1, name.length -
2);
13601 name = ctx.stylize(name, 'name');
13603 name = name.replace(/'/g, "\\'")
13604 .replace(/\\"/g, '"')
13605 .replace(/(^"|"$)/g, "'");
13606 name = ctx.stylize(name, 'string');
13610 return name + ': ' + str;
13614 function reduceToSingleString(output, base, braces) {
13615 var numLinesEst =
0;
13616 var length = output.reduce(function(prev, cur) {
13618 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13619 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13624 (base === '' ? '' : base + '\n ') +
13626 output.join(',\n ') +
13631 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13635 // NOTE: These type checking functions intentionally don't use `instanceof`
13636 // because it is fragile and can be easily faked with `Object.create()`.
13637 function isArray(ar) {
13638 return Array.isArray(ar);
13640 exports.isArray = isArray;
13642 function isBoolean(arg) {
13643 return typeof arg === 'boolean';
13645 exports.isBoolean = isBoolean;
13647 function isNull(arg) {
13648 return arg === null;
13650 exports.isNull = isNull;
13652 function isNullOrUndefined(arg) {
13653 return arg == null;
13655 exports.isNullOrUndefined = isNullOrUndefined;
13657 function isNumber(arg) {
13658 return typeof arg === 'number';
13660 exports.isNumber = isNumber;
13662 function isString(arg) {
13663 return typeof arg === 'string';
13665 exports.isString = isString;
13667 function isSymbol(arg) {
13668 return typeof arg === 'symbol';
13670 exports.isSymbol = isSymbol;
13672 function isUndefined(arg) {
13673 return arg === void
0;
13675 exports.isUndefined = isUndefined;
13677 function isRegExp(re) {
13678 return isObject(re) && objectToString(re) === '[object RegExp]';
13680 exports.isRegExp = isRegExp;
13682 function isObject(arg) {
13683 return typeof arg === 'object' && arg !== null;
13685 exports.isObject = isObject;
13687 function isDate(d) {
13688 return isObject(d) && objectToString(d) === '[object Date]';
13690 exports.isDate = isDate;
13692 function isError(e) {
13693 return isObject(e) &&
13694 (objectToString(e) === '[object Error]' || e instanceof Error);
13696 exports.isError = isError;
13698 function isFunction(arg) {
13699 return typeof arg === 'function';
13701 exports.isFunction = isFunction;
13703 function isPrimitive(arg) {
13704 return arg === null ||
13705 typeof arg === 'boolean' ||
13706 typeof arg === 'number' ||
13707 typeof arg === 'string' ||
13708 typeof arg === 'symbol' || // ES6 symbol
13709 typeof arg === 'undefined';
13711 exports.isPrimitive = isPrimitive;
13713 exports.isBuffer = require('./support/isBuffer');
13715 function objectToString(o) {
13716 return Object.prototype.toString.call(o);
13721 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13725 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13726 'Oct', 'Nov', 'Dec'];
13729 function timestamp() {
13730 var d = new Date();
13731 var time = [pad(d.getHours()),
13732 pad(d.getMinutes()),
13733 pad(d.getSeconds())].join(':');
13734 return [d.getDate(), months[d.getMonth()], time].join(' ');
13738 // log is just a thin wrapper to console.log that prepends a timestamp
13739 exports.log = function() {
13740 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13745 * Inherit the prototype methods from one constructor into another.
13747 * The Function.prototype.inherits from lang.js rewritten as a standalone
13748 * function (not on Function.prototype). NOTE: If this file is to be loaded
13749 * during bootstrapping this function needs to be rewritten using some native
13750 * functions as prototype setup using normal JavaScript does not work as
13751 * expected during bootstrapping (see mirror.js in r114903).
13753 * @param {function} ctor Constructor function which needs to inherit the
13755 * @param {function} superCtor Constructor function to inherit prototype from.
13757 exports.inherits = require('inherits');
13759 exports._extend = function(origin, add) {
13760 // Don't do anything if add isn't an object
13761 if (!add || !isObject(add)) return origin;
13763 var keys = Object.keys(add);
13764 var i = keys.length;
13766 origin[keys[i]] = add[keys[i]];
13771 function hasOwnProperty(obj, prop) {
13772 return Object.prototype.hasOwnProperty.call(obj, prop);
13775 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13776 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13778 base58: require('bs58'),
13779 bitcoin: require('bitcoinjs-lib'),
13780 ecurve: require('ecurve'),
13781 BigInteger: require('bigi')
13784 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13786 // Forked from https://github.com/cryptocoinjs/bs58
13787 // Originally written by Mike Hearn for BitcoinJ
13788 // Copyright (c)
2011 Google Inc
13789 // Ported to JavaScript by Stefan Thomas
13790 // Merged Buffer refactorings from base58-native by Stephen Pair
13791 // Copyright (c)
2013 BitPay Inc
13793 var Buffer = require('safe-buffer').Buffer
13795 module.exports = function base (ALPHABET) {
13796 var ALPHABET_MAP = {}
13797 var BASE = ALPHABET.length
13798 var LEADER = ALPHABET.charAt(
0)
13800 // pre-compute lookup table
13801 for (var z =
0; z < ALPHABET.length; z++) {
13802 var x = ALPHABET.charAt(z)
13804 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13805 ALPHABET_MAP[x] = z
13808 function encode (source) {
13809 if (source.length ===
0) return ''
13812 for (var i =
0; i < source.length; ++i) {
13813 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13814 carry += digits[j] <<
8
13815 digits[j] = carry % BASE
13816 carry = (carry / BASE) |
0
13819 while (carry
> 0) {
13820 digits.push(carry % BASE)
13821 carry = (carry / BASE) |
0
13827 // deal with leading zeros
13828 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13829 // convert digits to a string
13830 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13835 function decodeUnsafe (string) {
13836 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13839 for (var i =
0; i < string.length; i++) {
13840 var value = ALPHABET_MAP[string[i]]
13841 if (value === undefined) return
13843 for (var j =
0, carry = value; j < bytes.length; ++j) {
13844 carry += bytes[j] * BASE
13845 bytes[j] = carry &
0xff
13849 while (carry
> 0) {
13850 bytes.push(carry &
0xff)
13855 // deal with leading zeros
13856 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13860 return Buffer.from(bytes.reverse())
13863 function decode (string) {
13864 var buffer = decodeUnsafe(string)
13865 if (buffer) return buffer
13867 throw new Error('Non-base' + BASE + ' character')
13872 decodeUnsafe: decodeUnsafe,
13877 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13878 // (public) Constructor
13879 function BigInteger(a, b, c) {
13880 if (!(this instanceof BigInteger))
13881 return new BigInteger(a, b, c)
13884 if ("number" == typeof a) this.fromNumber(a, b, c)
13885 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13886 else this.fromString(a, b)
13890 var proto = BigInteger.prototype
13892 // duck-typed isBigInteger
13893 proto.__bigi = require('../package.json').version
13894 BigInteger.isBigInteger = function (obj, check_ver) {
13895 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13901 // am: Compute w_j += (x*this_i), propagate carries,
13902 // c is initial carry, returns final carry.
13903 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13904 // We need to select the fastest one that works in this environment.
13906 // am1: use a single mult and divide to get the high bits,
13907 // max digit bits should be
26 because
13908 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13909 function am1(i, x, w, j, c, n) {
13911 var v = x * this[i++] + w[j] + c
13912 c = Math.floor(v /
0x4000000)
13913 w[j++] = v &
0x3ffffff
13917 // am2 avoids a big mult-and-extract completely.
13918 // Max digit bits should be <=
30 because we do bitwise ops
13919 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13920 function am2(i, x, w, j, c, n) {
13921 var xl = x &
0x7fff,
13924 var l = this[i] &
0x7fff
13925 var h = this[i++]
>> 15
13926 var m = xh * l + h * xl
13927 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13928 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13929 w[j++] = l &
0x3fffffff
13933 // Alternately, set max digit bits to
28 since some
13934 // browsers slow down when dealing with
32-bit numbers.
13935 function am3(i, x, w, j, c, n) {
13936 var xl = x &
0x3fff,
13939 var l = this[i] &
0x3fff
13940 var h = this[i++]
>> 14
13941 var m = xh * l + h * xl
13942 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13943 c = (l
>> 28) + (m
>> 14) + xh * h
13944 w[j++] = l &
0xfffffff
13950 BigInteger.prototype.am = am1
13953 BigInteger.prototype.DB = dbits
13954 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13955 var DV = BigInteger.prototype.DV = (
1 << dbits)
13958 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13959 BigInteger.prototype.F1 = BI_FP - dbits
13960 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13962 // Digit conversions
13963 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13964 var BI_RC = new Array()
13966 rr =
"0".charCodeAt(
0)
13967 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13968 rr =
"a".charCodeAt(
0)
13969 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13970 rr =
"A".charCodeAt(
0)
13971 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13973 function int2char(n) {
13974 return BI_RM.charAt(n)
13977 function intAt(s, i) {
13978 var c = BI_RC[s.charCodeAt(i)]
13979 return (c == null) ? -
1 : c
13982 // (protected) copy this to r
13983 function bnpCopyTo(r) {
13984 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
13989 // (protected) set from integer value x, -DV <= x < DV
13990 function bnpFromInt(x) {
13992 this.s = (x <
0) ? -
1 :
0
13993 if (x
> 0) this[
0] = x
13994 else if (x < -
1) this[
0] = x + DV
13998 // return bigint initialized to value
14000 var r = new BigInteger()
14005 // (protected) set from string and radix
14006 function bnpFromString(s, b) {
14011 else if (b ==
8) k =
3
14012 else if (b ==
256) k =
8; // byte array
14013 else if (b ==
2) k =
1
14014 else if (b ==
32) k =
5
14015 else if (b ==
4) k =
2
14017 self.fromRadix(s, b)
14026 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14028 if (s.charAt(i) == "-") mi = true
14034 else if (sh + k
> self.DB) {
14035 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14036 self[self.t++] = (x
>> (self.DB - sh))
14038 self[self.t -
1] |= x << sh
14040 if (sh
>= self.DB) sh -= self.DB
14042 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14044 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14047 if (mi) BigInteger.ZERO.subTo(self, self)
14050 // (protected) clamp off excess high words
14051 function bnpClamp() {
14052 var c = this.s & this.DM
14053 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14056 // (public) return string representation in given radix
14057 function bnToString(b) {
14059 if (self.s <
0) return
"-" + self.negate()
14063 else if (b ==
8) k =
3
14064 else if (b ==
2) k =
1
14065 else if (b ==
32) k =
5
14066 else if (b ==
4) k =
2
14067 else return self.toRadix(b)
14068 var km = (
1 << k) -
1,
14072 var p = self.DB - (i * self.DB) % k
14074 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14080 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14081 d |= self[--i]
>> (p += self.DB - k)
14083 d = (self[i]
>> (p -= k)) & km
14089 if (d
> 0) m = true
14090 if (m) r += int2char(d)
14097 function bnNegate() {
14098 var r = new BigInteger()
14099 BigInteger.ZERO.subTo(this, r)
14105 return (this.s <
0) ? this.negate() : this
14108 // (public) return + if this
> a, - if this < a,
0 if equal
14109 function bnCompareTo(a) {
14110 var r = this.s - a.s
14111 if (r !=
0) return r
14114 if (r !=
0) return (this.s <
0) ? -r : r
14116 if ((r = this[i] - a[i]) !=
0) return r
14120 // returns bit length of the integer x
14121 function nbits(x) {
14124 if ((t = x
>>> 16) !=
0) {
14128 if ((t = x
>> 8) !=
0) {
14132 if ((t = x
>> 4) !=
0) {
14136 if ((t = x
>> 2) !=
0) {
14140 if ((t = x
>> 1) !=
0) {
14147 // (public) return the number of bits in
"this"
14148 function bnBitLength() {
14149 if (this.t <=
0) return
0
14150 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14153 // (public) return the number of bytes in
"this"
14154 function bnByteLength() {
14155 return this.bitLength()
>> 3
14158 // (protected) r = this << n*DB
14159 function bnpDLShiftTo(n, r) {
14161 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14162 for (i = n -
1; i
>=
0; --i) r[i] =
0
14167 // (protected) r = this
>> n*DB
14168 function bnpDRShiftTo(n, r) {
14169 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14170 r.t = Math.max(this.t - n,
0)
14174 // (protected) r = this << n
14175 function bnpLShiftTo(n, r) {
14177 var bs = n % self.DB
14178 var cbs = self.DB - bs
14179 var bm = (
1 << cbs) -
1
14180 var ds = Math.floor(n / self.DB),
14181 c = (self.s << bs) & self.DM,
14183 for (i = self.t -
1; i
>=
0; --i) {
14184 r[i + ds +
1] = (self[i]
>> cbs) | c
14185 c = (self[i] & bm) << bs
14187 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14189 r.t = self.t + ds +
1
14194 // (protected) r = this
>> n
14195 function bnpRShiftTo(n, r) {
14198 var ds = Math.floor(n / self.DB)
14199 if (ds
>= self.t) {
14203 var bs = n % self.DB
14204 var cbs = self.DB - bs
14205 var bm = (
1 << bs) -
1
14206 r[
0] = self[ds]
>> bs
14207 for (var i = ds +
1; i < self.t; ++i) {
14208 r[i - ds -
1] |= (self[i] & bm) << cbs
14209 r[i - ds] = self[i]
>> bs
14211 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14216 // (protected) r = this - a
14217 function bnpSubTo(a, r) {
14221 m = Math.min(a.t, self.t)
14223 c += self[i] - a[i]
14224 r[i++] = c & self.DM
14227 if (a.t < self.t) {
14229 while (i < self.t) {
14231 r[i++] = c & self.DM
14239 r[i++] = c & self.DM
14244 r.s = (c <
0) ? -
1 :
0
14245 if (c < -
1) r[i++] = self.DV + c
14246 else if (c
> 0) r[i++] = c
14251 // (protected) r = this * a, r != this,a (HAC
14.12)
14252 //
"this" should be the larger one if appropriate.
14253 function bnpMultiplyTo(a, r) {
14254 var x = this.abs(),
14258 while (--i
>=
0) r[i] =
0
14259 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14262 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14265 // (protected) r = this^
2, r != this (HAC
14.16)
14266 function bnpSquareTo(r) {
14268 var i = r.t =
2 * x.t
14269 while (--i
>=
0) r[i] =
0
14270 for (i =
0; i < x.t -
1; ++i) {
14271 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14272 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14277 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14282 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14283 // r != q, this != m. q or r may be null.
14284 function bnpDivRemTo(m, q, r) {
14287 if (pm.t <=
0) return
14288 var pt = self.abs()
14290 if (q != null) q.fromInt(
0)
14291 if (r != null) self.copyTo(r)
14294 if (r == null) r = new BigInteger()
14295 var y = new BigInteger(),
14298 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14300 pm.lShiftTo(nsh, y)
14301 pt.lShiftTo(nsh, r)
14308 if (y0 ==
0) return
14309 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14310 var d1 = self.FV / yt,
14311 d2 = (
1 << self.F1) / yt,
14315 t = (q == null) ? new BigInteger() : q
14317 if (r.compareTo(t)
>=
0) {
14321 BigInteger.ONE.dlShiftTo(ys, t)
14322 t.subTo(y, y); // "negative" y so we can replace sub with am later
14323 while (y.t < ys) y[y.t++] =
0
14325 // Estimate quotient digit
14326 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14327 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14330 while (r[i] < --qd) r.subTo(t, r)
14335 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14339 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14340 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14343 // (public) this mod a
14344 function bnMod(a) {
14345 var r = new BigInteger()
14347 .divRemTo(a, null, r)
14348 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14352 // Modular reduction using
"classic" algorithm
14353 function Classic(m) {
14357 function cConvert(x) {
14358 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14362 function cRevert(x) {
14366 function cReduce(x) {
14367 x.divRemTo(this.m, null, x)
14370 function cMulTo(x, y, r) {
14375 function cSqrTo(x, r) {
14380 Classic.prototype.convert = cConvert
14381 Classic.prototype.revert = cRevert
14382 Classic.prototype.reduce = cReduce
14383 Classic.prototype.mulTo = cMulTo
14384 Classic.prototype.sqrTo = cSqrTo
14386 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14390 // xy(
2-xy) = (
1+km)(
1-km)
14391 // x[y(
2-xy)] =
1-k^
2m^
2
14392 // x[y(
2-xy)] ==
1 (mod m^
2)
14393 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14394 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14395 // JS multiply "overflows" differently from C/C++, so care is needed here.
14396 function bnpInvDigit() {
14397 if (this.t <
1) return
0
14399 if ((x &
1) ==
0) return
0
14400 var y = x &
3; // y ==
1/x mod
2^
2
14401 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14402 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14403 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14404 // last step - calculate inverse mod DV directly
14405 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14406 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14407 // we really want the negative inverse, and -DV < y < DV
14408 return (y
> 0) ? this.DV - y : -y
14411 // Montgomery reduction
14412 function Montgomery(m) {
14414 this.mp = m.invDigit()
14415 this.mpl = this.mp &
0x7fff
14416 this.mph = this.mp
>> 15
14417 this.um = (
1 << (m.DB -
15)) -
1
14422 function montConvert(x) {
14423 var r = new BigInteger()
14425 .dlShiftTo(this.m.t, r)
14426 r.divRemTo(this.m, null, r)
14427 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14432 function montRevert(x) {
14433 var r = new BigInteger()
14439 // x = x/R mod m (HAC
14.32)
14440 function montReduce(x) {
14441 while (x.t <= this.mt2) // pad x so am has enough room later
14443 for (var i =
0; i < this.m.t; ++i) {
14444 // faster way of calculating u0 = x[i]*mp mod DV
14445 var j = x[i] &
0x7fff
14446 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14447 // use am to combine the multiply-shift-add into one call
14449 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14451 while (x[j]
>= x.DV) {
14457 x.drShiftTo(this.m.t, x)
14458 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14461 // r = "x^
2/R mod m"; x != r
14462 function montSqrTo(x, r) {
14467 // r = "xy/R mod m"; x,y != r
14468 function montMulTo(x, y, r) {
14473 Montgomery.prototype.convert = montConvert
14474 Montgomery.prototype.revert = montRevert
14475 Montgomery.prototype.reduce = montReduce
14476 Montgomery.prototype.mulTo = montMulTo
14477 Montgomery.prototype.sqrTo = montSqrTo
14479 // (protected) true iff this is even
14480 function bnpIsEven() {
14481 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14484 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14485 function bnpExp(e, z) {
14486 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14487 var r = new BigInteger(),
14488 r2 = new BigInteger(),
14489 g = z.convert(this),
14494 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14504 // (public) this^e % m,
0 <= e <
2^
32
14505 function bnModPowInt(e, m) {
14507 if (e <
256 || m.isEven()) z = new Classic(m)
14508 else z = new Montgomery(m)
14509 return this.exp(e, z)
14513 proto.copyTo = bnpCopyTo
14514 proto.fromInt = bnpFromInt
14515 proto.fromString = bnpFromString
14516 proto.clamp = bnpClamp
14517 proto.dlShiftTo = bnpDLShiftTo
14518 proto.drShiftTo = bnpDRShiftTo
14519 proto.lShiftTo = bnpLShiftTo
14520 proto.rShiftTo = bnpRShiftTo
14521 proto.subTo = bnpSubTo
14522 proto.multiplyTo = bnpMultiplyTo
14523 proto.squareTo = bnpSquareTo
14524 proto.divRemTo = bnpDivRemTo
14525 proto.invDigit = bnpInvDigit
14526 proto.isEven = bnpIsEven
14530 proto.toString = bnToString
14531 proto.negate = bnNegate
14533 proto.compareTo = bnCompareTo
14534 proto.bitLength = bnBitLength
14535 proto.byteLength = bnByteLength
14537 proto.modPowInt = bnModPowInt
14540 function bnClone() {
14541 var r = new BigInteger()
14546 // (public) return value as integer
14547 function bnIntValue() {
14549 if (this.t ==
1) return this[
0] - this.DV
14550 else if (this.t ==
0) return -
1
14551 } else if (this.t ==
1) return this[
0]
14552 else if (this.t ==
0) return
0
14553 // assumes
16 < DB <
32
14554 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14557 // (public) return value as byte
14558 function bnByteValue() {
14559 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14562 // (public) return value as short (assumes DB
>=
16)
14563 function bnShortValue() {
14564 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14567 // (protected) return x s.t. r^x < DV
14568 function bnpChunkSize(r) {
14569 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14572 // (public)
0 if this ==
0,
1 if this
> 0
14573 function bnSigNum() {
14574 if (this.s <
0) return -
1
14575 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14579 // (protected) convert to radix string
14580 function bnpToRadix(b) {
14581 if (b == null) b =
10
14582 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14583 var cs = this.chunkSize(b)
14584 var a = Math.pow(b, cs)
14586 y = new BigInteger(),
14587 z = new BigInteger(),
14589 this.divRemTo(d, y, z)
14590 while (y.signum()
> 0) {
14591 r = (a + z.intValue())
14594 y.divRemTo(d, y, z)
14596 return z.intValue()
14600 // (protected) convert from radix string
14601 function bnpFromRadix(s, b) {
14604 if (b == null) b =
10
14605 var cs = self.chunkSize(b)
14606 var d = Math.pow(b, cs),
14610 for (var i =
0; i < s.length; ++i) {
14611 var x = intAt(s, i)
14613 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14619 self.dAddOffset(w,
0)
14625 self.dMultiply(Math.pow(b, j))
14626 self.dAddOffset(w,
0)
14628 if (mi) BigInteger.ZERO.subTo(self, self)
14631 // (protected) alternate constructor
14632 function bnpFromNumber(a, b, c) {
14634 if (
"number" == typeof b) {
14635 // new BigInteger(int,int,RNG)
14636 if (a <
2) self.fromInt(
1)
14638 self.fromNumber(a, c)
14639 if (!self.testBit(a -
1)) // force MSB set
14640 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14641 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14642 while (!self.isProbablePrime(b)) {
14643 self.dAddOffset(
2,
0)
14644 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14648 // new BigInteger(int,RNG)
14649 var x = new Array(),
14651 x.length = (a
>> 3) +
1
14653 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14655 self.fromString(x,
256)
14659 // (public) convert to bigendian byte array
14660 function bnToByteArray() {
14665 var p = self.DB - (i * self.DB) %
8,
14668 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14669 r[k++] = d | (self.s << (self.DB - p))
14672 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14673 d |= self[--i]
>> (p += self.DB -
8)
14675 d = (self[i]
>> (p -=
8)) &
0xff
14681 if ((d &
0x80) !=
0) d |= -
256
14682 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14683 if (k
> 0 || d != self.s) r[k++] = d
14689 function bnEquals(a) {
14690 return (this.compareTo(a) ==
0)
14693 function bnMin(a) {
14694 return (this.compareTo(a) <
0) ? this : a
14697 function bnMax(a) {
14698 return (this.compareTo(a)
> 0) ? this : a
14701 // (protected) r = this op a (bitwise)
14702 function bnpBitwiseTo(a, op, r) {
14704 var i, f, m = Math.min(a.t, self.t)
14705 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14706 if (a.t < self.t) {
14708 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14711 f = self.s & self.DM
14712 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14715 r.s = op(self.s, a.s)
14719 // (public) this & a
14720 function op_and(x, y) {
14724 function bnAnd(a) {
14725 var r = new BigInteger()
14726 this.bitwiseTo(a, op_and, r)
14730 // (public) this | a
14731 function op_or(x, y) {
14736 var r = new BigInteger()
14737 this.bitwiseTo(a, op_or, r)
14741 // (public) this ^ a
14742 function op_xor(x, y) {
14746 function bnXor(a) {
14747 var r = new BigInteger()
14748 this.bitwiseTo(a, op_xor, r)
14752 // (public) this & ~a
14753 function op_andnot(x, y) {
14757 function bnAndNot(a) {
14758 var r = new BigInteger()
14759 this.bitwiseTo(a, op_andnot, r)
14765 var r = new BigInteger()
14766 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14772 // (public) this << n
14773 function bnShiftLeft(n) {
14774 var r = new BigInteger()
14775 if (n <
0) this.rShiftTo(-n, r)
14776 else this.lShiftTo(n, r)
14780 // (public) this
>> n
14781 function bnShiftRight(n) {
14782 var r = new BigInteger()
14783 if (n <
0) this.lShiftTo(-n, r)
14784 else this.rShiftTo(n, r)
14788 // return index of lowest
1-bit in x, x <
2^
31
14790 if (x ==
0) return -
1
14792 if ((x &
0xffff) ==
0) {
14796 if ((x &
0xff) ==
0) {
14800 if ((x &
0xf) ==
0) {
14804 if ((x &
3) ==
0) {
14808 if ((x &
1) ==
0)++r
14812 // (public) returns index of lowest
1-bit (or -
1 if none)
14813 function bnGetLowestSetBit() {
14814 for (var i =
0; i < this.t; ++i)
14815 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14816 if (this.s <
0) return this.t * this.DB
14820 // return number of
1 bits in x
14830 // (public) return number of set bits
14831 function bnBitCount() {
14833 x = this.s & this.DM
14834 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14838 // (public) true iff nth bit is set
14839 function bnTestBit(n) {
14840 var j = Math.floor(n / this.DB)
14841 if (j
>= this.t) return (this.s !=
0)
14842 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14845 // (protected) this op (
1<
<n)
14846 function bnpChangeBit(n, op) {
14847 var r = BigInteger.ONE.shiftLeft(n)
14848 this.bitwiseTo(r, op, r)
14852 // (public) this | (
1<
<n)
14853 function bnSetBit(n) {
14854 return this.changeBit(n, op_or)
14857 // (public) this & ~(
1<
<n)
14858 function bnClearBit(n) {
14859 return this.changeBit(n, op_andnot)
14862 // (public) this ^ (
1<
<n)
14863 function bnFlipBit(n) {
14864 return this.changeBit(n, op_xor)
14867 // (protected) r = this + a
14868 function bnpAddTo(a, r) {
14873 m = Math.min(a.t, self.t)
14875 c += self[i] + a[i]
14876 r[i++] = c & self.DM
14879 if (a.t < self.t) {
14881 while (i < self.t) {
14883 r[i++] = c & self.DM
14891 r[i++] = c & self.DM
14896 r.s = (c <
0) ? -
1 :
0
14897 if (c
> 0) r[i++] = c
14898 else if (c < -
1) r[i++] = self.DV + c
14903 // (public) this + a
14904 function bnAdd(a) {
14905 var r = new BigInteger()
14910 // (public) this - a
14911 function bnSubtract(a) {
14912 var r = new BigInteger()
14917 // (public) this * a
14918 function bnMultiply(a) {
14919 var r = new BigInteger()
14920 this.multiplyTo(a, r)
14925 function bnSquare() {
14926 var r = new BigInteger()
14931 // (public) this / a
14932 function bnDivide(a) {
14933 var r = new BigInteger()
14934 this.divRemTo(a, r, null)
14938 // (public) this % a
14939 function bnRemainder(a) {
14940 var r = new BigInteger()
14941 this.divRemTo(a, null, r)
14945 // (public) [this/a,this%a]
14946 function bnDivideAndRemainder(a) {
14947 var q = new BigInteger(),
14948 r = new BigInteger()
14949 this.divRemTo(a, q, r)
14950 return new Array(q, r)
14953 // (protected) this *= n, this
>=
0,
1 < n < DV
14954 function bnpDMultiply(n) {
14955 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14960 // (protected) this += n << w words, this
>=
0
14961 function bnpDAddOffset(n, w) {
14963 while (this.t <= w) this[this.t++] =
0
14965 while (this[w]
>= this.DV) {
14967 if (++w
>= this.t) this[this.t++] =
0
14972 // A "null" reducer
14973 function NullExp() {}
14979 function nMulTo(x, y, r) {
14983 function nSqrTo(x, r) {
14987 NullExp.prototype.convert = nNop
14988 NullExp.prototype.revert = nNop
14989 NullExp.prototype.mulTo = nMulTo
14990 NullExp.prototype.sqrTo = nSqrTo
14993 function bnPow(e) {
14994 return this.exp(e, new NullExp())
14997 // (protected) r = lower n words of "this * a", a.t <= n
14998 // "this" should be the larger one if appropriate.
14999 function bnpMultiplyLowerTo(a, n, r) {
15000 var i = Math.min(this.t + a.t, n)
15001 r.s =
0; // assumes a,this
>=
0
15003 while (i
> 0) r[--i] =
0
15005 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15006 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15010 // (protected) r =
"this * a" without lower n words, n
> 0
15011 //
"this" should be the larger one if appropriate.
15012 function bnpMultiplyUpperTo(a, n, r) {
15014 var i = r.t = this.t + a.t - n
15015 r.s =
0; // assumes a,this
>=
0
15016 while (--i
>=
0) r[i] =
0
15017 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15018 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15023 // Barrett modular reduction
15024 function Barrett(m) {
15026 this.r2 = new BigInteger()
15027 this.q3 = new BigInteger()
15028 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15029 this.mu = this.r2.divide(m)
15033 function barrettConvert(x) {
15034 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15035 else if (x.compareTo(this.m) <
0) return x
15037 var r = new BigInteger()
15044 function barrettRevert(x) {
15048 // x = x mod m (HAC
14.42)
15049 function barrettReduce(x) {
15051 x.drShiftTo(self.m.t -
1, self.r2)
15052 if (x.t
> self.m.t +
1) {
15056 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15057 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15058 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15059 x.subTo(self.r2, x)
15060 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15063 // r = x^
2 mod m; x != r
15064 function barrettSqrTo(x, r) {
15069 // r = x*y mod m; x,y != r
15070 function barrettMulTo(x, y, r) {
15075 Barrett.prototype.convert = barrettConvert
15076 Barrett.prototype.revert = barrettRevert
15077 Barrett.prototype.reduce = barrettReduce
15078 Barrett.prototype.mulTo = barrettMulTo
15079 Barrett.prototype.sqrTo = barrettSqrTo
15081 // (public) this^e % m (HAC
14.85)
15082 function bnModPow(e, m) {
15083 var i = e.bitLength(),
15086 if (i <=
0) return r
15087 else if (i <
18) k =
1
15088 else if (i <
48) k =
3
15089 else if (i <
144) k =
4
15090 else if (i <
768) k =
5
15094 else if (m.isEven())
15097 z = new Montgomery(m)
15100 var g = new Array(),
15104 g[
1] = z.convert(this)
15106 var g2 = new BigInteger()
15109 g[n] = new BigInteger()
15110 z.mulTo(g2, g[n -
2], g[n])
15117 r2 = new BigInteger(),
15119 i = nbits(e[j]) -
1
15121 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15123 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15124 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15128 while ((w &
1) ==
0) {
15132 if ((i -= n) <
0) {
15136 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15145 if (n
> 0) z.sqrTo(r, r2)
15151 z.mulTo(r2, g[w], r)
15154 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15168 // (public) gcd(this,a) (HAC
14.54)
15169 function bnGCD(a) {
15170 var x = (this.s <
0) ? this.negate() : this.clone()
15171 var y = (a.s <
0) ? a.negate() : a.clone()
15172 if (x.compareTo(y) <
0) {
15177 var i = x.getLowestSetBit(),
15178 g = y.getLowestSetBit()
15179 if (g <
0) return x
15185 while (x.signum()
> 0) {
15186 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15187 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15188 if (x.compareTo(y)
>=
0) {
15196 if (g
> 0) y.lShiftTo(g, y)
15200 // (protected) this % n, n <
2^
26
15201 function bnpModInt(n) {
15202 if (n <=
0) return
0
15203 var d = this.DV % n,
15204 r = (this.s <
0) ? n -
1 :
0
15206 if (d ==
0) r = this[
0] % n
15208 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15212 // (public)
1/this % m (HAC
14.61)
15213 function bnModInverse(m) {
15214 var ac = m.isEven()
15215 if (this.signum() ===
0) throw new Error('division by zero')
15216 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15223 while (u.signum() !=
0) {
15224 while (u.isEven()) {
15227 if (!a.isEven() || !b.isEven()) {
15232 } else if (!b.isEven()) b.subTo(m, b)
15235 while (v.isEven()) {
15238 if (!c.isEven() || !d.isEven()) {
15243 } else if (!d.isEven()) d.subTo(m, d)
15246 if (u.compareTo(v)
>=
0) {
15248 if (ac) a.subTo(c, a)
15252 if (ac) c.subTo(a, c)
15256 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15257 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15258 while (d.signum() <
0) d.addTo(m, d)
15263 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15264 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15265 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15266 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15267 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15268 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15269 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15270 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15271 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15272 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15273 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15276 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15278 // (public) test primality with certainty
>=
1-
.5^t
15279 function bnIsProbablePrime(t) {
15280 var i, x = this.abs()
15281 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15282 for (i =
0; i < lowprimes.length; ++i)
15283 if (x[
0] == lowprimes[i]) return true
15286 if (x.isEven()) return false
15288 while (i < lowprimes.length) {
15289 var m = lowprimes[i],
15291 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15293 while (i < j) if (m % lowprimes[i++] ==
0) return false
15295 return x.millerRabin(t)
15298 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15299 function bnpMillerRabin(t) {
15300 var n1 = this.subtract(BigInteger.ONE)
15301 var k = n1.getLowestSetBit()
15302 if (k <=
0) return false
15303 var r = n1.shiftRight(k)
15305 if (t
> lowprimes.length) t = lowprimes.length
15306 var a = new BigInteger(null)
15308 for (var i =
0; i < t; ++i) {
15310 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15311 if (bases.indexOf(j) == -
1) break
15315 var y = a.modPow(r, this)
15316 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15318 while (j++ < k && y.compareTo(n1) !=
0) {
15319 y = y.modPowInt(
2, this)
15320 if (y.compareTo(BigInteger.ONE) ==
0) return false
15322 if (y.compareTo(n1) !=
0) return false
15329 proto.chunkSize = bnpChunkSize
15330 proto.toRadix = bnpToRadix
15331 proto.fromRadix = bnpFromRadix
15332 proto.fromNumber = bnpFromNumber
15333 proto.bitwiseTo = bnpBitwiseTo
15334 proto.changeBit = bnpChangeBit
15335 proto.addTo = bnpAddTo
15336 proto.dMultiply = bnpDMultiply
15337 proto.dAddOffset = bnpDAddOffset
15338 proto.multiplyLowerTo = bnpMultiplyLowerTo
15339 proto.multiplyUpperTo = bnpMultiplyUpperTo
15340 proto.modInt = bnpModInt
15341 proto.millerRabin = bnpMillerRabin
15344 proto.clone = bnClone
15345 proto.intValue = bnIntValue
15346 proto.byteValue = bnByteValue
15347 proto.shortValue = bnShortValue
15348 proto.signum = bnSigNum
15349 proto.toByteArray = bnToByteArray
15350 proto.equals = bnEquals
15356 proto.andNot = bnAndNot
15358 proto.shiftLeft = bnShiftLeft
15359 proto.shiftRight = bnShiftRight
15360 proto.getLowestSetBit = bnGetLowestSetBit
15361 proto.bitCount = bnBitCount
15362 proto.testBit = bnTestBit
15363 proto.setBit = bnSetBit
15364 proto.clearBit = bnClearBit
15365 proto.flipBit = bnFlipBit
15367 proto.subtract = bnSubtract
15368 proto.multiply = bnMultiply
15369 proto.divide = bnDivide
15370 proto.remainder = bnRemainder
15371 proto.divideAndRemainder = bnDivideAndRemainder
15372 proto.modPow = bnModPow
15373 proto.modInverse = bnModInverse
15376 proto.isProbablePrime = bnIsProbablePrime
15378 // JSBN-specific extension
15379 proto.square = bnSquare
15382 BigInteger.ZERO = nbv(
0)
15383 BigInteger.ONE = nbv(
1)
15384 BigInteger.valueOf = nbv
15386 module.exports = BigInteger
15388 },{"../package.json":
38}],
36:[function(require,module,exports){
15389 (function (Buffer){
15390 // FIXME: Kind of a weird way to throw exceptions, consider removing
15391 var assert = require('assert')
15392 var BigInteger = require('./bigi')
15395 * Turns a byte array into a big integer.
15397 * This function will interpret a byte array as a big integer in big
15400 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15401 // BigInteger expects a DER integer conformant byte array
15402 if (byteArray[
0] &
0x80) {
15403 return new BigInteger([
0].concat(byteArray))
15406 return new BigInteger(byteArray)
15410 * Returns a byte array representation of the big integer.
15412 * This returns the absolute of the contained value in big endian
15413 * form. A value of zero results in an empty array.
15415 BigInteger.prototype.toByteArrayUnsigned = function() {
15416 var byteArray = this.toByteArray()
15417 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15420 BigInteger.fromDERInteger = function(byteArray) {
15421 return new BigInteger(byteArray)
15425 * Converts BigInteger to a DER integer representation.
15427 * The format for this value uses the most significant bit as a sign
15428 * bit. If the most significant bit is already set and the integer is
15429 * positive, a
0x00 is prepended.
15444 *
62300 =
> 0x00f35c
15445 * -
62300 =
> 0xff0ca4
15447 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15449 BigInteger.fromBuffer = function(buffer) {
15450 // BigInteger expects a DER integer conformant byte array
15451 if (buffer[
0] &
0x80) {
15452 var byteArray = Array.prototype.slice.call(buffer)
15454 return new BigInteger([
0].concat(byteArray))
15457 return new BigInteger(buffer)
15460 BigInteger.fromHex = function(hex) {
15461 if (hex === '') return BigInteger.ZERO
15463 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15464 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15465 return new BigInteger(hex,
16)
15468 BigInteger.prototype.toBuffer = function(size) {
15469 var byteArray = this.toByteArrayUnsigned()
15472 var padding = size - byteArray.length
15473 while (zeros.length < padding) zeros.push(
0)
15475 return new Buffer(zeros.concat(byteArray))
15478 BigInteger.prototype.toHex = function(size) {
15479 return this.toBuffer(size).toString('hex')
15482 }).call(this,require(
"buffer").Buffer)
15483 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15484 var BigInteger = require('./bigi')
15487 require('./convert')
15489 module.exports = BigInteger
15490 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15495 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15498 "_from":
"bigi@latest",
15499 "_id":
"bigi@1.4.2",
15501 "_installable": true,
15502 "_location":
"/bigi",
15503 "_nodeVersion":
"6.1.0",
15504 "_npmOperationalInternal": {
15505 "host":
"packages-12-west.internal.npmjs.com",
15506 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15509 "email":
"jprichardson@gmail.com",
15510 "name":
"jprichardson"
15512 "_npmVersion":
"3.8.6",
15513 "_phantomChildren": {},
15527 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15528 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15529 "_shrinkwrap": null,
15531 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15533 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15535 "dependencies": {},
15536 "description":
"Big integers.",
15537 "devDependencies": {
15538 "coveralls":
"^2.11.2",
15539 "istanbul":
"^0.3.5",
15540 "jshint":
"^2.5.1",
15542 "mochify":
"^2.1.0"
15546 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15547 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15549 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15550 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15568 "main":
"./lib/index.js",
15571 "email":
"boydb@midnightdesign.ws",
15572 "name":
"midnightlightning"
15575 "email":
"sidazhang89@gmail.com",
15576 "name":
"sidazhang"
15579 "email":
"npm@shesek.info",
15583 "email":
"jprichardson@gmail.com",
15584 "name":
"jprichardson"
15588 "optionalDependencies": {},
15589 "readme":
"ERROR: No README data found!",
15592 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15595 "browser-test":
"mochify --wd -R spec",
15596 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15597 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15598 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15599 "test":
"_mocha -- test/*.js",
15607 "safari/6.0..latest",
15608 "iphone/6.0..latest",
15609 "android-browser/4.2..latest"
15611 "files":
"test/*.js",
15617 },{}],
39:[function(require,module,exports){
15618 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15619 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15620 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15622 var Buffer = require('safe-buffer').Buffer
15624 function check (buffer) {
15625 if (buffer.length <
8) return false
15626 if (buffer.length
> 72) return false
15627 if (buffer[
0] !==
0x30) return false
15628 if (buffer[
1] !== buffer.length -
2) return false
15629 if (buffer[
2] !==
0x02) return false
15631 var lenR = buffer[
3]
15632 if (lenR ===
0) return false
15633 if (
5 + lenR
>= buffer.length) return false
15634 if (buffer[
4 + lenR] !==
0x02) return false
15636 var lenS = buffer[
5 + lenR]
15637 if (lenS ===
0) return false
15638 if ((
6 + lenR + lenS) !== buffer.length) return false
15640 if (buffer[
4] &
0x80) return false
15641 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15643 if (buffer[lenR +
6] &
0x80) return false
15644 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15648 function decode (buffer) {
15649 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15650 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15651 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15652 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15653 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15655 var lenR = buffer[
3]
15656 if (lenR ===
0) throw new Error('R length is zero')
15657 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15658 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15660 var lenS = buffer[
5 + lenR]
15661 if (lenS ===
0) throw new Error('S length is zero')
15662 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15664 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15665 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15667 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15668 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15670 // non-BIP66 - extract R, S values
15672 r: buffer.slice(
4,
4 + lenR),
15673 s: buffer.slice(
6 + lenR)
15678 * Expects r and s to be positive DER integers.
15680 * The DER format uses the most significant bit as a sign bit (&
0x80).
15681 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15696 *
62300 =
> 0x00f35c
15697 * -
62300 =
> 0xff0ca4
15699 function encode (r, s) {
15700 var lenR = r.length
15701 var lenS = s.length
15702 if (lenR ===
0) throw new Error('R length is zero')
15703 if (lenS ===
0) throw new Error('S length is zero')
15704 if (lenR
> 33) throw new Error('R length is too long')
15705 if (lenS
> 33) throw new Error('S length is too long')
15706 if (r[
0] &
0x80) throw new Error('R value is negative')
15707 if (s[
0] &
0x80) throw new Error('S value is negative')
15708 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15709 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15711 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15713 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15714 signature[
0] =
0x30
15715 signature[
1] = signature.length -
2
15716 signature[
2] =
0x02
15717 signature[
3] = r.length
15718 r.copy(signature,
4)
15719 signature[
4 + lenR] =
0x02
15720 signature[
5 + lenR] = s.length
15721 s.copy(signature,
6 + lenR)
15732 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15736 "OP_PUSHDATA1":
76,
15737 "OP_PUSHDATA2":
77,
15738 "OP_PUSHDATA4":
78,
15764 "OP_VERNOTIF":
102,
15770 "OP_TOALTSTACK":
107,
15771 "OP_FROMALTSTACK":
108,
15801 "OP_EQUALVERIFY":
136,
15802 "OP_RESERVED1":
137,
15803 "OP_RESERVED2":
138,
15812 "OP_0NOTEQUAL":
146,
15823 "OP_NUMEQUAL":
156,
15824 "OP_NUMEQUALVERIFY":
157,
15825 "OP_NUMNOTEQUAL":
158,
15826 "OP_LESSTHAN":
159,
15827 "OP_GREATERTHAN":
160,
15828 "OP_LESSTHANOREQUAL":
161,
15829 "OP_GREATERTHANOREQUAL":
162,
15835 "OP_RIPEMD160":
166,
15840 "OP_CODESEPARATOR":
171,
15841 "OP_CHECKSIG":
172,
15842 "OP_CHECKSIGVERIFY":
173,
15843 "OP_CHECKMULTISIG":
174,
15844 "OP_CHECKMULTISIGVERIFY":
175,
15848 "OP_CHECKLOCKTIMEVERIFY":
177,
15859 "OP_PUBKEYHASH":
253,
15861 "OP_INVALIDOPCODE":
255
15864 },{}],
41:[function(require,module,exports){
15865 var OPS = require('./index.json')
15868 for (var op in OPS) {
15873 module.exports = map
15875 },{
"./index.json":
40}],
42:[function(require,module,exports){
15876 var Buffer = require('safe-buffer').Buffer
15877 var bs58check = require('bs58check')
15878 var bscript = require('./script')
15879 var networks = require('./networks')
15880 var typeforce = require('typeforce')
15881 var types = require('./types')
15883 function fromBase58Check (address) {
15884 var payload = bs58check.decode(address)
15885 if (payload.length <
21) throw new TypeError(address + ' is too short')
15886 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15888 var version = payload.readUInt8(
0)
15889 var hash = payload.slice(
1)
15891 return { hash: hash, version: version }
15894 function toBase58Check (hash, version) {
15895 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15897 var payload = Buffer.allocUnsafe(
21)
15898 payload.writeUInt8(version,
0)
15899 hash.copy(payload,
1)
15901 return bs58check.encode(payload)
15904 function fromOutputScript (outputScript, network) {
15905 network = network || networks.bitcoin
15907 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15908 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15910 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15913 function toOutputScript (address, network) {
15914 network = network || networks.bitcoin
15916 var decode = fromBase58Check(address)
15917 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15918 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15920 throw new Error(address + ' has no matching Script')
15924 fromBase58Check: fromBase58Check,
15925 fromOutputScript: fromOutputScript,
15926 toBase58Check: toBase58Check,
15927 toOutputScript: toOutputScript
15930 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15931 var Buffer = require('safe-buffer').Buffer
15932 var bcrypto = require('./crypto')
15933 var fastMerkleRoot = require('merkle-lib/fastRoot')
15934 var typeforce = require('typeforce')
15935 var types = require('./types')
15936 var varuint = require('varuint-bitcoin')
15938 var Transaction = require('./transaction')
15940 function Block () {
15942 this.prevHash = null
15943 this.merkleRoot = null
15949 Block.fromBuffer = function (buffer) {
15950 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15953 function readSlice (n) {
15955 return buffer.slice(offset - n, offset)
15958 function readUInt32 () {
15959 var i = buffer.readUInt32LE(offset)
15964 function readInt32 () {
15965 var i = buffer.readInt32LE(offset)
15970 var block = new Block()
15971 block.version = readInt32()
15972 block.prevHash = readSlice(
32)
15973 block.merkleRoot = readSlice(
32)
15974 block.timestamp = readUInt32()
15975 block.bits = readUInt32()
15976 block.nonce = readUInt32()
15978 if (buffer.length ===
80) return block
15980 function readVarInt () {
15981 var vi = varuint.decode(buffer, offset)
15982 offset += varuint.decode.bytes
15986 function readTransaction () {
15987 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
15988 offset += tx.byteLength()
15992 var nTransactions = readVarInt()
15993 block.transactions = []
15995 for (var i =
0; i < nTransactions; ++i) {
15996 var tx = readTransaction()
15997 block.transactions.push(tx)
16003 Block.prototype.byteLength = function (headersOnly) {
16004 if (headersOnly || !this.transactions) return
80
16006 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16007 return a + x.byteLength()
16011 Block.fromHex = function (hex) {
16012 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16015 Block.prototype.getHash = function () {
16016 return bcrypto.hash256(this.toBuffer(true))
16019 Block.prototype.getId = function () {
16020 return this.getHash().reverse().toString('hex')
16023 Block.prototype.getUTCDate = function () {
16024 var date = new Date(
0) // epoch
16025 date.setUTCSeconds(this.timestamp)
16030 // TODO: buffer, offset compatibility
16031 Block.prototype.toBuffer = function (headersOnly) {
16032 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16035 function writeSlice (slice) {
16036 slice.copy(buffer, offset)
16037 offset += slice.length
16040 function writeInt32 (i) {
16041 buffer.writeInt32LE(i, offset)
16044 function writeUInt32 (i) {
16045 buffer.writeUInt32LE(i, offset)
16049 writeInt32(this.version)
16050 writeSlice(this.prevHash)
16051 writeSlice(this.merkleRoot)
16052 writeUInt32(this.timestamp)
16053 writeUInt32(this.bits)
16054 writeUInt32(this.nonce)
16056 if (headersOnly || !this.transactions) return buffer
16058 varuint.encode(this.transactions.length, buffer, offset)
16059 offset += varuint.encode.bytes
16061 this.transactions.forEach(function (tx) {
16062 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16063 tx.toBuffer(buffer, offset)
16070 Block.prototype.toHex = function (headersOnly) {
16071 return this.toBuffer(headersOnly).toString('hex')
16074 Block.calculateTarget = function (bits) {
16075 var exponent = ((bits &
0xff000000)
>> 24) -
3
16076 var mantissa = bits &
0x007fffff
16077 var target = Buffer.alloc(
32,
0)
16078 target.writeUInt32BE(mantissa,
28 - exponent)
16082 Block.calculateMerkleRoot = function (transactions) {
16083 typeforce([{ getHash: types.Function }], transactions)
16084 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16086 var hashes = transactions.map(function (transaction) {
16087 return transaction.getHash()
16090 return fastMerkleRoot(hashes, bcrypto.hash256)
16093 Block.prototype.checkMerkleRoot = function () {
16094 if (!this.transactions) return false
16096 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16097 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16100 Block.prototype.checkProofOfWork = function () {
16101 var hash = this.getHash().reverse()
16102 var target = Block.calculateTarget(this.bits)
16104 return hash.compare(target) <=
0
16107 module.exports = Block
16109 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16110 var pushdata = require('pushdata-bitcoin')
16111 var varuint = require('varuint-bitcoin')
16113 // https://github.com/feross/buffer/blob/master/index.js#L1127
16114 function verifuint (value, max) {
16115 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16116 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16117 if (value
> max) throw new Error('RangeError: value out of range')
16118 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16121 function readUInt64LE (buffer, offset) {
16122 var a = buffer.readUInt32LE(offset)
16123 var b = buffer.readUInt32LE(offset +
4)
16126 verifuint(b + a,
0x001fffffffffffff)
16131 function writeUInt64LE (buffer, value, offset) {
16132 verifuint(value,
0x001fffffffffffff)
16134 buffer.writeInt32LE(value & -
1, offset)
16135 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16139 // TODO: remove in
4.0.0?
16140 function readVarInt (buffer, offset) {
16141 var result = varuint.decode(buffer, offset)
16145 size: varuint.decode.bytes
16149 // TODO: remove in
4.0.0?
16150 function writeVarInt (buffer, number, offset) {
16151 varuint.encode(number, buffer, offset)
16152 return varuint.encode.bytes
16156 pushDataSize: pushdata.encodingLength,
16157 readPushDataInt: pushdata.decode,
16158 readUInt64LE: readUInt64LE,
16159 readVarInt: readVarInt,
16160 varIntBuffer: varuint.encode,
16161 varIntSize: varuint.encodingLength,
16162 writePushDataInt: pushdata.encode,
16163 writeUInt64LE: writeUInt64LE,
16164 writeVarInt: writeVarInt
16167 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16168 var createHash = require('create-hash')
16170 function ripemd160 (buffer) {
16171 return createHash('rmd160').update(buffer).digest()
16174 function sha1 (buffer) {
16175 return createHash('sha1').update(buffer).digest()
16178 function sha256 (buffer) {
16179 return createHash('sha256').update(buffer).digest()
16182 function hash160 (buffer) {
16183 return ripemd160(sha256(buffer))
16186 function hash256 (buffer) {
16187 return sha256(sha256(buffer))
16193 ripemd160: ripemd160,
16198 },{"create-hash":
82}],
46:[function(require,module,exports){
16199 var Buffer = require('safe-buffer').Buffer
16200 var createHmac = require('create-hmac')
16201 var typeforce = require('typeforce')
16202 var types = require('./types')
16204 var BigInteger = require('bigi')
16205 var ECSignature = require('./ecsignature')
16207 var ZERO = Buffer.alloc(
1,
0)
16208 var ONE = Buffer.alloc(
1,
1)
16210 var ecurve = require('ecurve')
16211 var secp256k1 = ecurve.getCurveByName('secp256k1')
16213 // https://tools.ietf.org/html/rfc6979#section-
3.2
16214 function deterministicGenerateK (hash, x, checkSig) {
16215 typeforce(types.tuple(
16217 types.Buffer256bit,
16221 // Step A, ignored as hash already provided
16224 var k = Buffer.alloc(
32,
0)
16225 var v = Buffer.alloc(
32,
1)
16228 k = createHmac('sha256', k)
16236 v = createHmac('sha256', k).update(v).digest()
16239 k = createHmac('sha256', k)
16247 v = createHmac('sha256', k).update(v).digest()
16249 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16251 v = createHmac('sha256', k).update(v).digest()
16253 var T = BigInteger.fromBuffer(v)
16255 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16256 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16257 k = createHmac('sha256', k)
16262 v = createHmac('sha256', k).update(v).digest()
16264 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16266 v = createHmac('sha256', k).update(v).digest()
16267 T = BigInteger.fromBuffer(v)
16273 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16275 function sign (hash, d) {
16276 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16278 var x = d.toBuffer(
32)
16279 var e = BigInteger.fromBuffer(hash)
16280 var n = secp256k1.n
16281 var G = secp256k1.G
16284 deterministicGenerateK(hash, x, function (k) {
16285 var Q = G.multiply(k)
16287 if (secp256k1.isInfinity(Q)) return false
16289 r = Q.affineX.mod(n)
16290 if (r.signum() ===
0) return false
16292 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16293 if (s.signum() ===
0) return false
16298 // enforce low S values, see bip62: 'low s values in signatures'
16299 if (s.compareTo(N_OVER_TWO)
> 0) {
16303 return new ECSignature(r, s)
16306 function verify (hash, signature, Q) {
16307 typeforce(types.tuple(
16313 var n = secp256k1.n
16314 var G = secp256k1.G
16316 var r = signature.r
16317 var s = signature.s
16319 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16320 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16321 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16323 //
1.4.2 H = Hash(M), already done by the user
16325 var e = BigInteger.fromBuffer(hash)
16328 var sInv = s.modInverse(n)
16330 //
1.4.4 Compute u1 = es^−
1 mod n
16331 // u2 = rs^−
1 mod n
16332 var u1 = e.multiply(sInv).mod(n)
16333 var u2 = r.multiply(sInv).mod(n)
16335 //
1.4.5 Compute R = (xR, yR)
16337 var R = G.multiplyTwo(u1, Q, u2)
16339 //
1.4.5 (cont.) Enforce R is not at infinity
16340 if (secp256k1.isInfinity(R)) return false
16342 //
1.4.6 Convert the field element R.x to an integer
16345 //
1.4.7 Set v = xR mod n
16348 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16353 deterministicGenerateK: deterministicGenerateK,
16361 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16362 var baddress = require('./address')
16363 var bcrypto = require('./crypto')
16364 var ecdsa = require('./ecdsa')
16365 var randomBytes = require('randombytes')
16366 var typeforce = require('typeforce')
16367 var types = require('./types')
16368 var wif = require('wif')
16370 var NETWORKS = require('./networks')
16371 var BigInteger = require('bigi')
16373 var ecurve = require('ecurve')
16374 var secp256k1 = ecdsa.__curve
16376 function ECPair (d, Q, options) {
16379 compressed: types.maybe(types.Boolean),
16380 network: types.maybe(types.Network)
16384 options = options || {}
16387 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16388 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16389 if (Q) throw new TypeError('Unexpected publicKey parameter')
16393 typeforce(types.ECPoint, Q)
16398 this.compressed = options.compressed === undefined ? true : options.compressed
16399 this.network = options.network || NETWORKS.bitcoin
16402 Object.defineProperty(ECPair.prototype, 'Q', {
16404 if (!this.__Q && this.d) {
16405 this.__Q = secp256k1.G.multiply(this.d)
16412 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16413 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16415 return new ECPair(null, Q, {
16416 compressed: Q.compressed,
16421 ECPair.fromWIF = function (string, network) {
16422 var decoded = wif.decode(string)
16423 var version = decoded.version
16425 // list of networks?
16426 if (types.Array(network)) {
16427 network = network.filter(function (x) {
16428 return version === x.wif
16431 if (!network) throw new Error('Unknown network version')
16433 // otherwise, assume a network object (or default to bitcoin)
16435 network = network || NETWORKS.bitcoin
16437 if (version !== network.wif) throw new Error('Invalid network version')
16440 var d = BigInteger.fromBuffer(decoded.privateKey)
16442 return new ECPair(d, null, {
16443 compressed: decoded.compressed,
16448 ECPair.makeRandom = function (options) {
16449 options = options || {}
16451 var rng = options.rng || randomBytes
16455 var buffer = rng(
32)
16456 typeforce(types.Buffer256bit, buffer)
16458 d = BigInteger.fromBuffer(buffer)
16459 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16461 return new ECPair(d, null, options)
16464 ECPair.prototype.getAddress = function () {
16465 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16468 ECPair.prototype.getNetwork = function () {
16469 return this.network
16472 ECPair.prototype.getPublicKeyBuffer = function () {
16473 return this.Q.getEncoded(this.compressed)
16476 ECPair.prototype.sign = function (hash) {
16477 if (!this.d) throw new Error('Missing private key')
16479 return ecdsa.sign(hash, this.d)
16482 ECPair.prototype.toWIF = function () {
16483 if (!this.d) throw new Error('Missing private key')
16485 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16488 ECPair.prototype.verify = function (hash, signature) {
16489 return ecdsa.verify(hash, signature, this.Q)
16492 module.exports = ECPair
16494 },{"./address":
42,"./crypto":
45,"./ecdsa":
46,"./networks":
51,"./types":
78,"bigi":
37,"ecurve":
89,"randombytes":
96,"typeforce":
109,"wif":
112}],
48:[function(require,module,exports){
16495 (function (Buffer){
16496 var bip66 = require('bip66')
16497 var typeforce = require('typeforce')
16498 var types = require('./types')
16500 var BigInteger = require('bigi')
16502 function ECSignature (r, s) {
16503 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16509 ECSignature.parseCompact = function (buffer) {
16510 if (buffer.length !==
65) throw new Error('Invalid signature length')
16512 var flagByte = buffer.readUInt8(
0) -
27
16513 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16515 var compressed = !!(flagByte &
4)
16516 var recoveryParam = flagByte &
3
16518 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16519 var s = BigInteger.fromBuffer(buffer.slice(
33))
16522 compressed: compressed,
16524 signature: new ECSignature(r, s)
16528 ECSignature.fromDER = function (buffer) {
16529 var decode = bip66.decode(buffer)
16530 var r = BigInteger.fromDERInteger(decode.r)
16531 var s = BigInteger.fromDERInteger(decode.s)
16533 return new ECSignature(r, s)
16536 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16537 ECSignature.parseScriptSignature = function (buffer) {
16538 var hashType = buffer.readUInt8(buffer.length -
1)
16539 var hashTypeMod = hashType & ~
0x80
16541 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16544 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16549 ECSignature.prototype.toCompact = function (i, compressed) {
16556 var buffer = Buffer.alloc(
65)
16557 buffer.writeUInt8(i,
0)
16558 this.r.toBuffer(
32).copy(buffer,
1)
16559 this.s.toBuffer(
32).copy(buffer,
33)
16564 ECSignature.prototype.toDER = function () {
16565 var r = Buffer.from(this.r.toDERInteger())
16566 var s = Buffer.from(this.s.toDERInteger())
16568 return bip66.encode(r, s)
16571 ECSignature.prototype.toScriptSignature = function (hashType) {
16572 var hashTypeMod = hashType & ~
0x80
16573 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16575 var hashTypeBuffer = Buffer.alloc(
1)
16576 hashTypeBuffer.writeUInt8(hashType,
0)
16578 return Buffer.concat([this.toDER(), hashTypeBuffer])
16581 module.exports = ECSignature
16583 }).call(this,require("buffer").Buffer)
16584 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16585 var Buffer = require('safe-buffer').Buffer
16586 var base58check = require('bs58check')
16587 var bcrypto = require('./crypto')
16588 var createHmac = require('create-hmac')
16589 var typeforce = require('typeforce')
16590 var types = require('./types')
16591 var NETWORKS = require('./networks')
16593 var BigInteger = require('bigi')
16594 var ECPair = require('./ecpair')
16596 var ecurve = require('ecurve')
16597 var curve = ecurve.getCurveByName('secp256k1')
16599 function HDNode (keyPair, chainCode) {
16600 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16602 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16604 this.keyPair = keyPair
16605 this.chainCode = chainCode
16608 this.parentFingerprint =
0x00000000
16611 HDNode.HIGHEST_BIT =
0x80000000
16613 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16615 HDNode.fromSeedBuffer = function (seed, network) {
16616 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16618 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16619 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16621 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16622 var IL = I.slice(
0,
32)
16623 var IR = I.slice(
32)
16625 // In case IL is
0 or
>= n, the master key is invalid
16626 // This is handled by the ECPair constructor
16627 var pIL = BigInteger.fromBuffer(IL)
16628 var keyPair = new ECPair(pIL, null, {
16632 return new HDNode(keyPair, IR)
16635 HDNode.fromSeedHex = function (hex, network) {
16636 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16639 HDNode.fromBase58 = function (string, networks) {
16640 var buffer = base58check.decode(string)
16641 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16643 //
4 bytes: version bytes
16644 var version = buffer.readUInt32BE(
0)
16647 // list of networks?
16648 if (Array.isArray(networks)) {
16649 network = networks.filter(function (x) {
16650 return version === x.bip32.private ||
16651 version === x.bip32.public
16654 if (!network) throw new Error('Unknown network version')
16656 // otherwise, assume a network object (or default to bitcoin)
16658 network = networks || NETWORKS.bitcoin
16661 if (version !== network.bip32.private &&
16662 version !== network.bip32.public) throw new Error('Invalid network version')
16664 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16665 var depth = buffer[
4]
16667 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16668 var parentFingerprint = buffer.readUInt32BE(
5)
16670 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16673 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16674 // This is encoded in MSB order. (
0x00000000 if master key)
16675 var index = buffer.readUInt32BE(
9)
16676 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16678 //
32 bytes: the chain code
16679 var chainCode = buffer.slice(
13,
45)
16682 //
33 bytes: private key data (
0x00 + k)
16683 if (version === network.bip32.private) {
16684 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16686 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16687 keyPair = new ECPair(d, null, { network: network })
16689 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16691 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16692 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16694 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16695 // If not, the extended public key is invalid.
16698 keyPair = new ECPair(null, Q, { network: network })
16701 var hd = new HDNode(keyPair, chainCode)
16704 hd.parentFingerprint = parentFingerprint
16709 HDNode.prototype.getAddress = function () {
16710 return this.keyPair.getAddress()
16713 HDNode.prototype.getIdentifier = function () {
16714 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16717 HDNode.prototype.getFingerprint = function () {
16718 return this.getIdentifier().slice(
0,
4)
16721 HDNode.prototype.getNetwork = function () {
16722 return this.keyPair.getNetwork()
16725 HDNode.prototype.getPublicKeyBuffer = function () {
16726 return this.keyPair.getPublicKeyBuffer()
16729 HDNode.prototype.neutered = function () {
16730 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16731 network: this.keyPair.network
16734 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16735 neutered.depth = this.depth
16736 neutered.index = this.index
16737 neutered.parentFingerprint = this.parentFingerprint
16742 HDNode.prototype.sign = function (hash) {
16743 return this.keyPair.sign(hash)
16746 HDNode.prototype.verify = function (hash, signature) {
16747 return this.keyPair.verify(hash, signature)
16750 HDNode.prototype.toBase58 = function (__isPrivate) {
16751 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16754 var network = this.keyPair.network
16755 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16756 var buffer = Buffer.allocUnsafe(
78)
16758 //
4 bytes: version bytes
16759 buffer.writeUInt32BE(version,
0)
16761 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16762 buffer.writeUInt8(this.depth,
4)
16764 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16765 buffer.writeUInt32BE(this.parentFingerprint,
5)
16767 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16768 // This is encoded in big endian. (
0x00000000 if master key)
16769 buffer.writeUInt32BE(this.index,
9)
16771 //
32 bytes: the chain code
16772 this.chainCode.copy(buffer,
13)
16774 //
33 bytes: the public key or private key data
16775 if (!this.isNeutered()) {
16776 //
0x00 + k for private keys
16777 buffer.writeUInt8(
0,
45)
16778 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16780 //
33 bytes: the public key
16782 // X9.62 encoding for public keys
16783 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16786 return base58check.encode(buffer)
16789 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16790 HDNode.prototype.derive = function (index) {
16791 typeforce(types.UInt32, index)
16793 var isHardened = index
>= HDNode.HIGHEST_BIT
16794 var data = Buffer.allocUnsafe(
37)
16798 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16800 // data =
0x00 || ser256(kpar) || ser32(index)
16802 this.keyPair.d.toBuffer(
32).copy(data,
1)
16803 data.writeUInt32BE(index,
33)
16807 // data = serP(point(kpar)) || ser32(index)
16808 // = serP(Kpar) || ser32(index)
16809 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16810 data.writeUInt32BE(index,
33)
16813 var I = createHmac('sha512', this.chainCode).update(data).digest()
16814 var IL = I.slice(
0,
32)
16815 var IR = I.slice(
32)
16817 var pIL = BigInteger.fromBuffer(IL)
16819 // In case parse256(IL)
>= n, proceed with the next value for i
16820 if (pIL.compareTo(curve.n)
>=
0) {
16821 return this.derive(index +
1)
16824 // Private parent key -
> private child key
16826 if (!this.isNeutered()) {
16827 // ki = parse256(IL) + kpar (mod n)
16828 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16830 // In case ki ==
0, proceed with the next value for i
16831 if (ki.signum() ===
0) {
16832 return this.derive(index +
1)
16835 derivedKeyPair = new ECPair(ki, null, {
16836 network: this.keyPair.network
16839 // Public parent key -
> public child key
16841 // Ki = point(parse256(IL)) + Kpar
16843 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16845 // In case Ki is the point at infinity, proceed with the next value for i
16846 if (curve.isInfinity(Ki)) {
16847 return this.derive(index +
1)
16850 derivedKeyPair = new ECPair(null, Ki, {
16851 network: this.keyPair.network
16855 var hd = new HDNode(derivedKeyPair, IR)
16856 hd.depth = this.depth +
1
16858 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16863 HDNode.prototype.deriveHardened = function (index) {
16864 typeforce(types.UInt31, index)
16866 // Only derives hardened private keys by default
16867 return this.derive(index + HDNode.HIGHEST_BIT)
16870 // Private === not neutered
16871 // Public === neutered
16872 HDNode.prototype.isNeutered = function () {
16873 return !(this.keyPair.d)
16876 HDNode.prototype.derivePath = function (path) {
16877 typeforce(types.BIP32Path, path)
16879 var splitPath = path.split('/')
16880 if (splitPath[
0] === 'm') {
16881 if (this.parentFingerprint) {
16882 throw new Error('Not a master node')
16885 splitPath = splitPath.slice(
1)
16888 return splitPath.reduce(function (prevHd, indexStr) {
16890 if (indexStr.slice(-
1) === "'") {
16891 index = parseInt(indexStr.slice(
0, -
1),
10)
16892 return prevHd.deriveHardened(index)
16894 index = parseInt(indexStr,
10)
16895 return prevHd.derive(index)
16900 module.exports = HDNode
16902 },{"./crypto":
45,"./ecpair":
47,"./networks":
51,"./types":
78,"bigi":
37,"bs58check":
80,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
50:[function(require,module,exports){
16904 Block: require('./block'),
16905 ECPair: require('./ecpair'),
16906 ECSignature: require('./ecsignature'),
16907 HDNode: require('./hdnode'),
16908 Transaction: require('./transaction'),
16909 TransactionBuilder: require('./transaction_builder'),
16911 address: require('./address'),
16912 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16913 crypto: require('./crypto'),
16914 networks: require('./networks'),
16915 opcodes: require('bitcoin-ops'),
16916 script: require('./script')
16919 },{"./address":
42,"./block":
43,"./bufferutils":
44,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./hdnode":
49,"./networks":
51,"./script":
52,"./transaction":
76,"./transaction_builder":
77,"bitcoin-ops":
40}],
51:[function(require,module,exports){
16920 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16921 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16925 messagePrefix: '\x18Bitcoin Signed Message:\n',
16927 public:
0x0488b21e,
16928 private:
0x0488ade4
16935 messagePrefix: '\x18Bitcoin Signed Message:\n',
16937 public:
0x043587cf,
16938 private:
0x04358394
16945 messagePrefix: '\x19Litecoin Signed Message:\n',
16947 public:
0x0488b21e,
16948 private:
0x0488ade4,
16955 messagePrefix: '\x19Litecoin Signed Message:\n',
16957 public:
0x019da462,
16958 private:
0x019d9cfe
16966 },{}],
52:[function(require,module,exports){
16967 var Buffer = require('safe-buffer').Buffer
16968 var bip66 = require('bip66')
16969 var pushdata = require('pushdata-bitcoin')
16970 var typeforce = require('typeforce')
16971 var types = require('./types')
16972 var scriptNumber = require('./script_number')
16974 var OPS = require('bitcoin-ops')
16975 var REVERSE_OPS = require('bitcoin-ops/map')
16976 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
16978 function isOPInt (value) {
16979 return types.Number(value) &&
16980 ((value === OPS.OP_0) ||
16981 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
16982 (value === OPS.OP_1NEGATE))
16985 function isPushOnlyChunk (value) {
16986 return types.Buffer(value) || isOPInt(value)
16989 function isPushOnly (value) {
16990 return types.Array(value) && value.every(isPushOnlyChunk)
16993 function compile (chunks) {
16995 if (Buffer.isBuffer(chunks)) return chunks
16997 typeforce(types.Array, chunks)
16999 var bufferSize = chunks.reduce(function (accum, chunk) {
17001 if (Buffer.isBuffer(chunk)) {
17002 // adhere to BIP62.3, minimal push policy
17003 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17007 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17014 var buffer = Buffer.allocUnsafe(bufferSize)
17017 chunks.forEach(function (chunk) {
17019 if (Buffer.isBuffer(chunk)) {
17020 // adhere to BIP62.3, minimal push policy
17021 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17022 var opcode = OP_INT_BASE + chunk[
0]
17023 buffer.writeUInt8(opcode, offset)
17028 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17029 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17034 offset += pushdata.encode(buffer, chunk.length, offset)
17036 chunk.copy(buffer, offset)
17037 offset += chunk.length
17041 buffer.writeUInt8(chunk, offset)
17046 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17050 function decompile (buffer) {
17052 if (types.Array(buffer)) return buffer
17054 typeforce(types.Buffer, buffer)
17059 while (i < buffer.length) {
17060 var opcode = buffer[i]
17063 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17064 var d = pushdata.decode(buffer, i)
17066 // did reading a pushDataInt fail? empty script
17067 if (d === null) return []
17070 // attempt to read too much data? empty script
17071 if (i + d.number
> buffer.length) return []
17073 var data = buffer.slice(i, i + d.number)
17080 chunks.push(opcode)
17089 function toASM (chunks) {
17090 if (Buffer.isBuffer(chunks)) {
17091 chunks = decompile(chunks)
17094 return chunks.map(function (chunk) {
17096 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17099 return REVERSE_OPS[chunk]
17103 function fromASM (asm) {
17104 typeforce(types.String, asm)
17106 return compile(asm.split(' ').map(function (chunkStr) {
17108 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17109 typeforce(types.Hex, chunkStr)
17112 return Buffer.from(chunkStr, 'hex')
17116 function toStack (chunks) {
17117 chunks = decompile(chunks)
17118 typeforce(isPushOnly, chunks)
17120 return chunks.map(function (op) {
17121 if (Buffer.isBuffer(op)) return op
17122 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17124 return scriptNumber.encode(op - OP_INT_BASE)
17128 function isCanonicalPubKey (buffer) {
17129 if (!Buffer.isBuffer(buffer)) return false
17130 if (buffer.length <
33) return false
17132 switch (buffer[
0]) {
17135 return buffer.length ===
33
17137 return buffer.length ===
65
17143 function isDefinedHashType (hashType) {
17144 var hashTypeMod = hashType & ~
0x80
17146 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17147 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17150 function isCanonicalSignature (buffer) {
17151 if (!Buffer.isBuffer(buffer)) return false
17152 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17154 return bip66.check(buffer.slice(
0, -
1))
17159 decompile: decompile,
17164 number: require('./script_number'),
17166 isCanonicalPubKey: isCanonicalPubKey,
17167 isCanonicalSignature: isCanonicalSignature,
17168 isPushOnly: isPushOnly,
17169 isDefinedHashType: isDefinedHashType
17172 var templates = require('./templates')
17173 for (var key in templates) {
17174 module.exports[key] = templates[key]
17177 },{
"./script_number":
53,
"./templates":
54,
"./types":
78,
"bip66":
39,
"bitcoin-ops":
40,
"bitcoin-ops/map":
41,
"pushdata-bitcoin":
95,
"safe-buffer":
98,
"typeforce":
109}],
53:[function(require,module,exports){
17178 var Buffer = require('safe-buffer').Buffer
17180 function decode (buffer, maxLength, minimal) {
17181 maxLength = maxLength ||
4
17182 minimal = minimal === undefined ? true : minimal
17184 var length = buffer.length
17185 if (length ===
0) return
0
17186 if (length
> maxLength) throw new TypeError('Script number overflow')
17188 if ((buffer[length -
1] &
0x7f) ===
0) {
17189 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17194 if (length ===
5) {
17195 var a = buffer.readUInt32LE(
0)
17196 var b = buffer.readUInt8(
4)
17198 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17199 return (b *
0x100000000) + a
17204 //
32-bit /
24-bit /
16-bit /
8-bit
17205 for (var i =
0; i < length; ++i) {
17206 result |= buffer[i] << (
8 * i)
17209 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17213 function scriptNumSize (i) {
17214 return i
> 0x7fffffff ?
5
17222 function encode (number) {
17223 var value = Math.abs(number)
17224 var size = scriptNumSize(value)
17225 var buffer = Buffer.allocUnsafe(size)
17226 var negative = number <
0
17228 for (var i =
0; i < size; ++i) {
17229 buffer.writeUInt8(value &
0xff, i)
17233 if (buffer[size -
1] &
0x80) {
17234 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17235 } else if (negative) {
17236 buffer[size -
1] |=
0x80
17247 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17248 var decompile = require('../script').decompile
17249 var multisig = require('./multisig')
17250 var nullData = require('./nulldata')
17251 var pubKey = require('./pubkey')
17252 var pubKeyHash = require('./pubkeyhash')
17253 var scriptHash = require('./scripthash')
17254 var witnessPubKeyHash = require('./witnesspubkeyhash')
17255 var witnessScriptHash = require('./witnessscripthash')
17256 var witnessCommitment = require('./witnesscommitment')
17259 MULTISIG: 'multisig',
17260 NONSTANDARD: 'nonstandard',
17261 NULLDATA: 'nulldata',
17263 P2PKH: 'pubkeyhash',
17264 P2SH: 'scripthash',
17265 P2WPKH: 'witnesspubkeyhash',
17266 P2WSH: 'witnessscripthash',
17267 WITNESS_COMMITMENT: 'witnesscommitment'
17270 function classifyOutput (script) {
17271 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17272 if (witnessScriptHash.output.check(script)) return types.P2WSH
17273 if (pubKeyHash.output.check(script)) return types.P2PKH
17274 if (scriptHash.output.check(script)) return types.P2SH
17276 // XXX: optimization, below functions .decompile before use
17277 var chunks = decompile(script)
17278 if (multisig.output.check(chunks)) return types.MULTISIG
17279 if (pubKey.output.check(chunks)) return types.P2PK
17280 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17281 if (nullData.output.check(chunks)) return types.NULLDATA
17283 return types.NONSTANDARD
17286 function classifyInput (script, allowIncomplete) {
17287 // XXX: optimization, below functions .decompile before use
17288 var chunks = decompile(script)
17290 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17291 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17292 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17293 if (pubKey.input.check(chunks)) return types.P2PK
17295 return types.NONSTANDARD
17298 function classifyWitness (script, allowIncomplete) {
17299 // XXX: optimization, below functions .decompile before use
17300 var chunks = decompile(script)
17302 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17303 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17305 return types.NONSTANDARD
17309 classifyInput: classifyInput,
17310 classifyOutput: classifyOutput,
17311 classifyWitness: classifyWitness,
17312 multisig: multisig,
17313 nullData: nullData,
17315 pubKeyHash: pubKeyHash,
17316 scriptHash: scriptHash,
17317 witnessPubKeyHash: witnessPubKeyHash,
17318 witnessScriptHash: witnessScriptHash,
17319 witnessCommitment: witnessCommitment,
17323 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17325 input: require('./input'),
17326 output: require('./output')
17329 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17330 // OP_0 [signatures ...]
17332 var Buffer = require('safe-buffer').Buffer
17333 var bscript = require('../../script')
17334 var typeforce = require('typeforce')
17335 var OPS = require('bitcoin-ops')
17337 function partialSignature (value) {
17338 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17341 function check (script, allowIncomplete) {
17342 var chunks = bscript.decompile(script)
17343 if (chunks.length <
2) return false
17344 if (chunks[
0] !== OPS.OP_0) return false
17346 if (allowIncomplete) {
17347 return chunks.slice(
1).every(partialSignature)
17350 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17352 check.toJSON = function () { return 'multisig input' }
17354 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17356 function encodeStack (signatures, scriptPubKey) {
17357 typeforce([partialSignature], signatures)
17359 if (scriptPubKey) {
17360 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17362 if (signatures.length < scriptData.m) {
17363 throw new TypeError('Not enough signatures provided')
17366 if (signatures.length
> scriptData.pubKeys.length) {
17367 throw new TypeError('Too many signatures provided')
17371 return [].concat(EMPTY_BUFFER, signatures)
17374 function encode (signatures, scriptPubKey) {
17375 return bscript.compile(encodeStack(signatures, scriptPubKey))
17378 function decodeStack (stack, allowIncomplete) {
17379 typeforce(check, stack, allowIncomplete)
17380 return stack.slice(
1)
17383 function decode (buffer, allowIncomplete) {
17384 var stack = bscript.decompile(buffer)
17385 return decodeStack(stack, allowIncomplete)
17391 decodeStack: decodeStack,
17393 encodeStack: encodeStack
17396 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17397 // m [pubKeys ...] n OP_CHECKMULTISIG
17399 var bscript = require('../../script')
17400 var types = require('../../types')
17401 var typeforce = require('typeforce')
17402 var OPS = require('bitcoin-ops')
17403 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17405 function check (script, allowIncomplete) {
17406 var chunks = bscript.decompile(script)
17408 if (chunks.length <
4) return false
17409 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17410 if (!types.Number(chunks[
0])) return false
17411 if (!types.Number(chunks[chunks.length -
2])) return false
17412 var m = chunks[
0] - OP_INT_BASE
17413 var n = chunks[chunks.length -
2] - OP_INT_BASE
17415 if (m <=
0) return false
17416 if (n
> 16) return false
17417 if (m
> n) return false
17418 if (n !== chunks.length -
3) return false
17419 if (allowIncomplete) return true
17421 var keys = chunks.slice(
1, -
2)
17422 return keys.every(bscript.isCanonicalPubKey)
17424 check.toJSON = function () { return 'multi-sig output' }
17426 function encode (m, pubKeys) {
17429 pubKeys: [bscript.isCanonicalPubKey]
17435 var n = pubKeys.length
17436 if (n < m) throw new TypeError('Not enough pubKeys provided')
17438 return bscript.compile([].concat(
17442 OPS.OP_CHECKMULTISIG
17446 function decode (buffer, allowIncomplete) {
17447 var chunks = bscript.decompile(buffer)
17448 typeforce(check, chunks, allowIncomplete)
17451 m: chunks[
0] - OP_INT_BASE,
17452 pubKeys: chunks.slice(
1, -
2)
17462 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17463 // OP_RETURN {data}
17465 var bscript = require('../script')
17466 var types = require('../types')
17467 var typeforce = require('typeforce')
17468 var OPS = require('bitcoin-ops')
17470 function check (script) {
17471 var buffer = bscript.compile(script)
17473 return buffer.length
> 1 &&
17474 buffer[
0] === OPS.OP_RETURN
17476 check.toJSON = function () { return 'null data output' }
17478 function encode (data) {
17479 typeforce(types.Buffer, data)
17481 return bscript.compile([OPS.OP_RETURN, data])
17484 function decode (buffer) {
17485 typeforce(check, buffer)
17487 return buffer.slice(
2)
17498 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17499 arguments[
4][
55][
0].apply(exports,arguments)
17500 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17503 var bscript = require('../../script')
17504 var types = require('../../types')
17505 var typeforce = require('typeforce')
17507 function check (script) {
17508 var chunks = bscript.decompile(script)
17510 return chunks.length ===
1 &&
17511 bscript.isCanonicalSignature(chunks[
0])
17513 check.toJSON = function () { return 'pubKey input' }
17515 function encodeStack (signature) {
17516 typeforce(types.Buffer, signature)
17520 function encode (signature) {
17521 return bscript.compile(encodeStack(signature))
17524 function decodeStack (stack) {
17525 typeforce(check, stack)
17529 function decode (buffer) {
17530 var stack = bscript.decompile(buffer)
17531 return decodeStack(stack)
17537 decodeStack: decodeStack,
17539 encodeStack: encodeStack
17542 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17543 // {pubKey} OP_CHECKSIG
17545 var bscript = require('../../script')
17546 var typeforce = require('typeforce')
17547 var OPS = require('bitcoin-ops')
17549 function check (script) {
17550 var chunks = bscript.decompile(script)
17552 return chunks.length ===
2 &&
17553 bscript.isCanonicalPubKey(chunks[
0]) &&
17554 chunks[
1] === OPS.OP_CHECKSIG
17556 check.toJSON = function () { return 'pubKey output' }
17558 function encode (pubKey) {
17559 typeforce(bscript.isCanonicalPubKey, pubKey)
17561 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17564 function decode (buffer) {
17565 var chunks = bscript.decompile(buffer)
17566 typeforce(check, chunks)
17577 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17578 arguments[
4][
55][
0].apply(exports,arguments)
17579 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17580 // {signature} {pubKey}
17582 var bscript = require('../../script')
17583 var types = require('../../types')
17584 var typeforce = require('typeforce')
17586 function check (script) {
17587 var chunks = bscript.decompile(script)
17589 return chunks.length ===
2 &&
17590 bscript.isCanonicalSignature(chunks[
0]) &&
17591 bscript.isCanonicalPubKey(chunks[
1])
17593 check.toJSON = function () { return 'pubKeyHash input' }
17595 function encodeStack (signature, pubKey) {
17597 signature: types.Buffer, pubKey: types.Buffer
17599 signature: signature, pubKey: pubKey
17602 return [signature, pubKey]
17605 function encode (signature, pubKey) {
17606 return bscript.compile(encodeStack(signature, pubKey))
17609 function decodeStack (stack) {
17610 typeforce(check, stack)
17613 signature: stack[
0],
17618 function decode (buffer) {
17619 var stack = bscript.decompile(buffer)
17620 return decodeStack(stack)
17626 decodeStack: decodeStack,
17628 encodeStack: encodeStack
17631 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17632 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17634 var bscript = require('../../script')
17635 var types = require('../../types')
17636 var typeforce = require('typeforce')
17637 var OPS = require('bitcoin-ops')
17639 function check (script) {
17640 var buffer = bscript.compile(script)
17642 return buffer.length ===
25 &&
17643 buffer[
0] === OPS.OP_DUP &&
17644 buffer[
1] === OPS.OP_HASH160 &&
17645 buffer[
2] ===
0x14 &&
17646 buffer[
23] === OPS.OP_EQUALVERIFY &&
17647 buffer[
24] === OPS.OP_CHECKSIG
17649 check.toJSON = function () { return 'pubKeyHash output' }
17651 function encode (pubKeyHash) {
17652 typeforce(types.Hash160bit, pubKeyHash)
17654 return bscript.compile([
17658 OPS.OP_EQUALVERIFY,
17663 function decode (buffer) {
17664 typeforce(check, buffer)
17666 return buffer.slice(
3,
23)
17675 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17676 arguments[
4][
55][
0].apply(exports,arguments)
17677 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17678 //
<scriptSig> {serialized scriptPubKey script}
17680 var Buffer = require('safe-buffer').Buffer
17681 var bscript = require('../../script')
17682 var typeforce = require('typeforce')
17684 function check (script, allowIncomplete) {
17685 var chunks = bscript.decompile(script)
17686 if (chunks.length <
1) return false
17688 var lastChunk = chunks[chunks.length -
1]
17689 if (!Buffer.isBuffer(lastChunk)) return false
17691 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17692 var redeemScriptChunks = bscript.decompile(lastChunk)
17694 // is redeemScript a valid script?
17695 if (redeemScriptChunks.length ===
0) return false
17697 // is redeemScriptSig push only?
17698 if (!bscript.isPushOnly(scriptSigChunks)) return false
17700 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17701 var outputType = bscript.classifyOutput(redeemScriptChunks)
17702 if (chunks.length ===
1) {
17703 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17705 return inputType === outputType
17707 check.toJSON = function () { return 'scriptHash input' }
17709 function encodeStack (redeemScriptStack, redeemScript) {
17710 var serializedScriptPubKey = bscript.compile(redeemScript)
17712 return [].concat(redeemScriptStack, serializedScriptPubKey)
17715 function encode (redeemScriptSig, redeemScript) {
17716 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17718 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17721 function decodeStack (stack) {
17722 typeforce(check, stack)
17725 redeemScriptStack: stack.slice(
0, -
1),
17726 redeemScript: stack[stack.length -
1]
17730 function decode (buffer) {
17731 var stack = bscript.decompile(buffer)
17732 var result = decodeStack(stack)
17733 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17734 delete result.redeemScriptStack
17741 decodeStack: decodeStack,
17743 encodeStack: encodeStack
17746 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17747 // OP_HASH160 {scriptHash} OP_EQUAL
17749 var bscript = require('../../script')
17750 var types = require('../../types')
17751 var typeforce = require('typeforce')
17752 var OPS = require('bitcoin-ops')
17754 function check (script) {
17755 var buffer = bscript.compile(script)
17757 return buffer.length ===
23 &&
17758 buffer[
0] === OPS.OP_HASH160 &&
17759 buffer[
1] ===
0x14 &&
17760 buffer[
22] === OPS.OP_EQUAL
17762 check.toJSON = function () { return 'scriptHash output' }
17764 function encode (scriptHash) {
17765 typeforce(types.Hash160bit, scriptHash)
17767 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17770 function decode (buffer) {
17771 typeforce(check, buffer)
17773 return buffer.slice(
2,
22)
17782 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17784 output: require('./output')
17787 },{"./output":
69}],
69:[function(require,module,exports){
17788 // OP_RETURN {aa21a9ed} {commitment}
17790 var Buffer = require('safe-buffer').Buffer
17791 var bscript = require('../../script')
17792 var types = require('../../types')
17793 var typeforce = require('typeforce')
17794 var OPS = require('bitcoin-ops')
17796 var HEADER = Buffer.from('aa21a9ed', 'hex')
17798 function check (script) {
17799 var buffer = bscript.compile(script)
17801 return buffer.length
> 37 &&
17802 buffer[
0] === OPS.OP_RETURN &&
17803 buffer[
1] ===
0x24 &&
17804 buffer.slice(
2,
6).equals(HEADER)
17807 check.toJSON = function () { return 'Witness commitment output' }
17809 function encode (commitment) {
17810 typeforce(types.Hash256bit, commitment)
17812 var buffer = Buffer.allocUnsafe(
36)
17813 HEADER.copy(buffer,
0)
17814 commitment.copy(buffer,
4)
17816 return bscript.compile([OPS.OP_RETURN, buffer])
17819 function decode (buffer) {
17820 typeforce(check, buffer)
17822 return bscript.decompile(buffer)[
1].slice(
4,
36)
17831 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17832 arguments[
4][
55][
0].apply(exports,arguments)
17833 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17834 // {signature} {pubKey}
17836 var pkh = require('../pubkeyhash/input')
17840 decodeStack: pkh.decodeStack,
17841 encodeStack: pkh.encodeStack
17844 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17845 // OP_0 {pubKeyHash}
17847 var bscript = require('../../script')
17848 var types = require('../../types')
17849 var typeforce = require('typeforce')
17850 var OPS = require('bitcoin-ops')
17852 function check (script) {
17853 var buffer = bscript.compile(script)
17855 return buffer.length ===
22 &&
17856 buffer[
0] === OPS.OP_0 &&
17859 check.toJSON = function () { return 'Witness pubKeyHash output' }
17861 function encode (pubKeyHash) {
17862 typeforce(types.Hash160bit, pubKeyHash)
17864 return bscript.compile([OPS.OP_0, pubKeyHash])
17867 function decode (buffer) {
17868 typeforce(check, buffer)
17870 return buffer.slice(
2)
17879 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17880 arguments[
4][
55][
0].apply(exports,arguments)
17881 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17882 // {signature} {pubKey}
17884 var p2sh = require('../scripthash/input')
17888 decodeStack: p2sh.decodeStack,
17889 encodeStack: p2sh.encodeStack
17892 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17893 // OP_0 {scriptHash}
17895 var bscript = require('../../script')
17896 var types = require('../../types')
17897 var typeforce = require('typeforce')
17898 var OPS = require('bitcoin-ops')
17900 function check (script) {
17901 var buffer = bscript.compile(script)
17903 return buffer.length ===
34 &&
17904 buffer[
0] === OPS.OP_0 &&
17907 check.toJSON = function () { return 'Witness scriptHash output' }
17909 function encode (scriptHash) {
17910 typeforce(types.Hash256bit, scriptHash)
17912 return bscript.compile([OPS.OP_0, scriptHash])
17915 function decode (buffer) {
17916 typeforce(check, buffer)
17918 return buffer.slice(
2)
17927 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17928 var Buffer = require('safe-buffer').Buffer
17929 var bcrypto = require('./crypto')
17930 var bscript = require('./script')
17931 var bufferutils = require('./bufferutils')
17932 var opcodes = require('bitcoin-ops')
17933 var typeforce = require('typeforce')
17934 var types = require('./types')
17935 var varuint = require('varuint-bitcoin')
17937 function varSliceSize (someScript) {
17938 var length = someScript.length
17940 return varuint.encodingLength(length) + length
17943 function vectorSize (someVector) {
17944 var length = someVector.length
17946 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17947 return sum + varSliceSize(witness)
17951 function Transaction () {
17958 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17959 Transaction.SIGHASH_ALL =
0x01
17960 Transaction.SIGHASH_NONE =
0x02
17961 Transaction.SIGHASH_SINGLE =
0x03
17962 Transaction.SIGHASH_ANYONECANPAY =
0x80
17963 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17964 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17966 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17967 var EMPTY_WITNESS = []
17968 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17969 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17970 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17971 var BLANK_OUTPUT = {
17972 script: EMPTY_SCRIPT,
17973 valueBuffer: VALUE_UINT64_MAX
17976 Transaction.fromBuffer = function (buffer, __noStrict) {
17978 function readSlice (n) {
17980 return buffer.slice(offset - n, offset)
17983 function readUInt32 () {
17984 var i = buffer.readUInt32LE(offset)
17989 function readInt32 () {
17990 var i = buffer.readInt32LE(offset)
17995 function readUInt64 () {
17996 var i = bufferutils.readUInt64LE(buffer, offset)
18001 function readVarInt () {
18002 var vi = varuint.decode(buffer, offset)
18003 offset += varuint.decode.bytes
18007 function readVarSlice () {
18008 return readSlice(readVarInt())
18011 function readVector () {
18012 var count = readVarInt()
18014 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18018 var tx = new Transaction()
18019 tx.version = readInt32()
18021 var marker = buffer.readUInt8(offset)
18022 var flag = buffer.readUInt8(offset +
1)
18024 var hasWitnesses = false
18025 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18026 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18028 hasWitnesses = true
18031 var vinLen = readVarInt()
18032 for (var i =
0; i < vinLen; ++i) {
18034 hash: readSlice(
32),
18035 index: readUInt32(),
18036 script: readVarSlice(),
18037 sequence: readUInt32(),
18038 witness: EMPTY_WITNESS
18042 var voutLen = readVarInt()
18043 for (i =
0; i < voutLen; ++i) {
18045 value: readUInt64(),
18046 script: readVarSlice()
18050 if (hasWitnesses) {
18051 for (i =
0; i < vinLen; ++i) {
18052 tx.ins[i].witness = readVector()
18055 // was this pointless?
18056 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18059 tx.locktime = readUInt32()
18061 if (__noStrict) return tx
18062 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18067 Transaction.fromHex = function (hex) {
18068 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18071 Transaction.isCoinbaseHash = function (buffer) {
18072 typeforce(types.Hash256bit, buffer)
18073 for (var i =
0; i <
32; ++i) {
18074 if (buffer[i] !==
0) return false
18079 Transaction.prototype.isCoinbase = function () {
18080 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18083 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18084 typeforce(types.tuple(
18087 types.maybe(types.UInt32),
18088 types.maybe(types.Buffer)
18091 if (types.Null(sequence)) {
18092 sequence = Transaction.DEFAULT_SEQUENCE
18095 // Add the input and return the input's index
18096 return (this.ins.push({
18099 script: scriptSig || EMPTY_SCRIPT,
18100 sequence: sequence,
18101 witness: EMPTY_WITNESS
18105 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18106 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18108 // Add the output and return the output's index
18109 return (this.outs.push({
18110 script: scriptPubKey,
18115 Transaction.prototype.hasWitnesses = function () {
18116 return this.ins.some(function (x) {
18117 return x.witness.length !==
0
18121 Transaction.prototype.weight = function () {
18122 var base = this.__byteLength(false)
18123 var total = this.__byteLength(true)
18124 return base *
3 + total
18127 Transaction.prototype.virtualSize = function () {
18128 return Math.ceil(this.weight() /
4)
18131 Transaction.prototype.byteLength = function () {
18132 return this.__byteLength(true)
18135 Transaction.prototype.__byteLength = function (__allowWitness) {
18136 var hasWitnesses = __allowWitness && this.hasWitnesses()
18139 (hasWitnesses ?
10 :
8) +
18140 varuint.encodingLength(this.ins.length) +
18141 varuint.encodingLength(this.outs.length) +
18142 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18143 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18144 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18148 Transaction.prototype.clone = function () {
18149 var newTx = new Transaction()
18150 newTx.version = this.version
18151 newTx.locktime = this.locktime
18153 newTx.ins = this.ins.map(function (txIn) {
18157 script: txIn.script,
18158 sequence: txIn.sequence,
18159 witness: txIn.witness
18163 newTx.outs = this.outs.map(function (txOut) {
18165 script: txOut.script,
18174 * Hash transaction for signing a specific input.
18176 * Bitcoin uses a different hash for each signed transaction input.
18177 * This method copies the transaction, makes the necessary changes based on the
18178 * hashType, and then hashes the result.
18179 * This hash can then be used to sign the provided transaction input.
18181 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18182 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18184 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18185 if (inIndex
>= this.ins.length) return ONE
18187 // ignore OP_CODESEPARATOR
18188 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18189 return x !== opcodes.OP_CODESEPARATOR
18192 var txTmp = this.clone()
18194 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18195 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18198 // ignore sequence numbers (except at inIndex)
18199 txTmp.ins.forEach(function (input, i) {
18200 if (i === inIndex) return
18205 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18206 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18207 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18208 if (inIndex
>= this.outs.length) return ONE
18210 // truncate outputs after
18211 txTmp.outs.length = inIndex +
1
18213 // "blank" outputs before
18214 for (var i =
0; i < inIndex; i++) {
18215 txTmp.outs[i] = BLANK_OUTPUT
18218 // ignore sequence numbers (except at inIndex)
18219 txTmp.ins.forEach(function (input, y) {
18220 if (y === inIndex) return
18226 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18227 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18228 txTmp.ins = [txTmp.ins[inIndex]]
18229 txTmp.ins[
0].script = ourScript
18231 // SIGHASH_ALL: only ignore input scripts
18233 // "blank" others input scripts
18234 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18235 txTmp.ins[inIndex].script = ourScript
18238 // serialize and hash
18239 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18240 buffer.writeInt32LE(hashType, buffer.length -
4)
18241 txTmp.__toBuffer(buffer,
0, false)
18243 return bcrypto.hash256(buffer)
18246 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18247 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18249 var tbuffer, toffset
18250 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18251 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18252 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18253 function writeVarInt (i) {
18254 varuint.encode(i, tbuffer, toffset)
18255 toffset += varuint.encode.bytes
18257 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18259 var hashOutputs = ZERO
18260 var hashPrevouts = ZERO
18261 var hashSequence = ZERO
18263 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18264 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18267 this.ins.forEach(function (txIn) {
18268 writeSlice(txIn.hash)
18269 writeUInt32(txIn.index)
18272 hashPrevouts = bcrypto.hash256(tbuffer)
18275 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18276 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18277 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18278 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18281 this.ins.forEach(function (txIn) {
18282 writeUInt32(txIn.sequence)
18285 hashSequence = bcrypto.hash256(tbuffer)
18288 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18289 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18290 var txOutsSize = this.outs.reduce(function (sum, output) {
18291 return sum +
8 + varSliceSize(output.script)
18294 tbuffer = Buffer.allocUnsafe(txOutsSize)
18297 this.outs.forEach(function (out) {
18298 writeUInt64(out.value)
18299 writeVarSlice(out.script)
18302 hashOutputs = bcrypto.hash256(tbuffer)
18303 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18304 var output = this.outs[inIndex]
18306 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18308 writeUInt64(output.value)
18309 writeVarSlice(output.script)
18311 hashOutputs = bcrypto.hash256(tbuffer)
18314 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18317 var input = this.ins[inIndex]
18318 writeUInt32(this.version)
18319 writeSlice(hashPrevouts)
18320 writeSlice(hashSequence)
18321 writeSlice(input.hash)
18322 writeUInt32(input.index)
18323 writeVarSlice(prevOutScript)
18325 writeUInt32(input.sequence)
18326 writeSlice(hashOutputs)
18327 writeUInt32(this.locktime)
18328 writeUInt32(hashType)
18329 return bcrypto.hash256(tbuffer)
18332 Transaction.prototype.getHash = function () {
18333 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18336 Transaction.prototype.getId = function () {
18337 // transaction hash's are displayed in reverse order
18338 return this.getHash().reverse().toString('hex')
18341 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18342 return this.__toBuffer(buffer, initialOffset, true)
18345 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18346 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18348 var offset = initialOffset ||
0
18349 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18350 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18351 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18352 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18353 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18354 function writeVarInt (i) {
18355 varuint.encode(i, buffer, offset)
18356 offset += varuint.encode.bytes
18358 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18359 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18361 writeInt32(this.version)
18363 var hasWitnesses = __allowWitness && this.hasWitnesses()
18365 if (hasWitnesses) {
18366 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18367 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18370 writeVarInt(this.ins.length)
18372 this.ins.forEach(function (txIn) {
18373 writeSlice(txIn.hash)
18374 writeUInt32(txIn.index)
18375 writeVarSlice(txIn.script)
18376 writeUInt32(txIn.sequence)
18379 writeVarInt(this.outs.length)
18380 this.outs.forEach(function (txOut) {
18381 if (!txOut.valueBuffer) {
18382 writeUInt64(txOut.value)
18384 writeSlice(txOut.valueBuffer)
18387 writeVarSlice(txOut.script)
18390 if (hasWitnesses) {
18391 this.ins.forEach(function (input) {
18392 writeVector(input.witness)
18396 writeUInt32(this.locktime)
18398 // avoid slicing unless necessary
18399 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18403 Transaction.prototype.toHex = function () {
18404 return this.toBuffer().toString('hex')
18407 Transaction.prototype.setInputScript = function (index, scriptSig) {
18408 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18410 this.ins[index].script = scriptSig
18413 Transaction.prototype.setWitness = function (index, witness) {
18414 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18416 this.ins[index].witness = witness
18419 module.exports = Transaction
18421 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18422 var Buffer = require('safe-buffer').Buffer
18423 var baddress = require('./address')
18424 var bcrypto = require('./crypto')
18425 var bscript = require('./script')
18426 var networks = require('./networks')
18427 var ops = require('bitcoin-ops')
18428 var typeforce = require('typeforce')
18429 var types = require('./types')
18430 var scriptTypes = bscript.types
18431 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18432 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18434 var ECPair = require('./ecpair')
18435 var ECSignature = require('./ecsignature')
18436 var Transaction = require('./transaction')
18438 function extractChunks (type, chunks, script) {
18440 var signatures = []
18442 case scriptTypes.P2PKH:
18443 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18444 pubKeys = chunks.slice(
1)
18445 signatures = chunks.slice(
0,
1)
18448 case scriptTypes.P2PK:
18449 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18450 signatures = chunks.slice(
0,
1)
18453 case scriptTypes.MULTISIG:
18455 var multisig = bscript.multisig.output.decode(script)
18456 pubKeys = multisig.pubKeys
18459 signatures = chunks.slice(
1).map(function (chunk) {
18460 return chunk.length ===
0 ? undefined : chunk
18467 signatures: signatures
18470 function expandInput (scriptSig, witnessStack) {
18471 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18479 var witnessScriptType
18480 var redeemScriptType
18481 var witness = false
18487 var scriptSigChunks = bscript.decompile(scriptSig)
18488 var sigType = bscript.classifyInput(scriptSigChunks, true)
18489 if (sigType === scriptTypes.P2SH) {
18491 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18492 redeemScriptType = bscript.classifyOutput(redeemScript)
18493 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18494 prevOutType = scriptTypes.P2SH
18495 script = redeemScript
18498 var classifyWitness = bscript.classifyWitness(witnessStack)
18499 if (classifyWitness === scriptTypes.P2WSH) {
18500 witnessScript = witnessStack[witnessStack.length -
1]
18501 witnessScriptType = bscript.classifyOutput(witnessScript)
18503 if (scriptSig.length ===
0) {
18504 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18505 prevOutType = scriptTypes.P2WSH
18506 if (typeof redeemScript !== 'undefined') {
18507 throw new Error('Redeem script given when unnecessary')
18511 if (!redeemScript) {
18512 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18514 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18515 if (!redeemScript.equals(witnessProgram)) {
18516 throw new Error('Redeem script didn\'t match witnessScript')
18520 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18521 throw new Error('unsupported witness script')
18523 script = witnessScript
18524 scriptType = witnessScriptType
18525 chunks = witnessStack.slice(
0, -
1)
18526 } else if (classifyWitness === scriptTypes.P2WPKH) {
18527 var key = witnessStack[witnessStack.length -
1]
18528 var keyHash = bcrypto.hash160(key)
18529 if (scriptSig.length ===
0) {
18530 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18531 prevOutType = scriptTypes.P2WPKH
18532 if (typeof redeemScript !== 'undefined') {
18533 throw new Error('Redeem script given when unnecessary')
18536 if (!redeemScript) {
18537 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18539 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18540 if (!redeemScript.equals(witnessProgram)) {
18541 throw new Error('Redeem script did not have the right witness program')
18545 scriptType = scriptTypes.P2PKH
18546 chunks = witnessStack
18547 } else if (redeemScript) {
18548 if (P2SH.indexOf(redeemScriptType) === -
1) {
18549 throw new Error('Bad redeemscript!')
18552 script = redeemScript
18553 scriptType = redeemScriptType
18554 chunks = scriptSigChunks.slice(
0, -
1)
18556 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18557 chunks = scriptSigChunks
18560 var expanded = extractChunks(scriptType, chunks, script)
18563 pubKeys: expanded.pubKeys,
18564 signatures: expanded.signatures,
18565 prevOutScript: prevOutScript,
18566 prevOutType: prevOutType,
18567 signType: scriptType,
18568 signScript: script,
18569 witness: Boolean(witness)
18573 result.redeemScript = redeemScript
18574 result.redeemScriptType = redeemScriptType
18578 result.witnessScript = witnessScript
18579 result.witnessScriptType = witnessScriptType
18585 // could be done in expandInput, but requires the original Transaction for hashForSignature
18586 function fixMultisigOrder (input, transaction, vin) {
18587 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18588 if (input.pubKeys.length === input.signatures.length) return
18590 var unmatched = input.signatures.concat()
18592 input.signatures = input.pubKeys.map(function (pubKey) {
18593 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18596 // check for a signature
18597 unmatched.some(function (signature, i) {
18598 // skip if undefined || OP_0
18599 if (!signature) return false
18601 // TODO: avoid O(n) hashForSignature
18602 var parsed = ECSignature.parseScriptSignature(signature)
18603 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18605 // skip if signature does not match pubKey
18606 if (!keyPair.verify(hash, parsed.signature)) return false
18608 // remove matched signature from unmatched
18609 unmatched[i] = undefined
18619 function expandOutput (script, scriptType, ourPubKey) {
18620 typeforce(types.Buffer, script)
18622 var scriptChunks = bscript.decompile(script)
18624 scriptType = bscript.classifyOutput(script)
18629 switch (scriptType) {
18630 // does our hash160(pubKey) match the output scripts?
18631 case scriptTypes.P2PKH:
18632 if (!ourPubKey) break
18634 var pkh1 = scriptChunks[
2]
18635 var pkh2 = bcrypto.hash160(ourPubKey)
18636 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18639 // does our hash160(pubKey) match the output scripts?
18640 case scriptTypes.P2WPKH:
18641 if (!ourPubKey) break
18643 var wpkh1 = scriptChunks[
1]
18644 var wpkh2 = bcrypto.hash160(ourPubKey)
18645 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18648 case scriptTypes.P2PK:
18649 pubKeys = scriptChunks.slice(
0,
1)
18652 case scriptTypes.MULTISIG:
18653 pubKeys = scriptChunks.slice(
1, -
2)
18656 default: return { scriptType: scriptType }
18661 scriptType: scriptType,
18662 signatures: pubKeys.map(function () { return undefined })
18666 function checkP2shInput (input, redeemScriptHash) {
18667 if (input.prevOutType) {
18668 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18670 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18671 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18675 function checkP2WSHInput (input, witnessScriptHash) {
18676 if (input.prevOutType) {
18677 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18679 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18680 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18684 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18691 var redeemScriptHash
18693 var witness = false
18696 var witnessScriptHash
18701 if (redeemScript && witnessScript) {
18702 redeemScriptHash = bcrypto.hash160(redeemScript)
18703 witnessScriptHash = bcrypto.sha256(witnessScript)
18704 checkP2shInput(input, redeemScriptHash)
18706 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18708 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18709 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18710 prevOutType = bscript.types.P2SH
18711 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18712 p2sh = witness = p2wsh = true
18713 p2shType = bscript.types.P2WSH
18714 signType = witnessType = expanded.scriptType
18715 signScript = witnessScript
18716 } else if (redeemScript) {
18717 redeemScriptHash = bcrypto.hash160(redeemScript)
18718 checkP2shInput(input, redeemScriptHash)
18720 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18721 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18723 prevOutType = bscript.types.P2SH
18724 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18726 signType = p2shType = expanded.scriptType
18727 signScript = redeemScript
18728 witness = signType === bscript.types.P2WPKH
18729 } else if (witnessScript) {
18730 witnessScriptHash = bcrypto.sha256(witnessScript)
18731 checkP2WSHInput(input, witnessScriptHash)
18733 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18734 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18736 prevOutType = bscript.types.P2WSH
18737 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18738 witness = p2wsh = true
18739 signType = witnessType = expanded.scriptType
18740 signScript = witnessScript
18741 } else if (input.prevOutType) {
18742 // embedded scripts are not possible without a redeemScript
18743 if (input.prevOutType === scriptTypes.P2SH ||
18744 input.prevOutType === scriptTypes.P2WSH) {
18745 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18748 prevOutType = input.prevOutType
18749 prevOutScript = input.prevOutScript
18750 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18751 if (!expanded.pubKeys) return
18753 witness = (input.prevOutType === scriptTypes.P2WPKH)
18754 signType = prevOutType
18755 signScript = prevOutScript
18757 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18758 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18759 prevOutType = scriptTypes.P2PKH
18761 signType = prevOutType
18762 signScript = prevOutScript
18765 if (witness && !types.Satoshi(witnessValue)) {
18766 throw new Error('Input was witness but not given witness value')
18769 if (signType === scriptTypes.P2WPKH) {
18770 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18774 input.redeemScript = redeemScript
18775 input.redeemScriptType = p2shType
18779 input.witnessScript = witnessScript
18780 input.witnessScriptType = witnessType
18783 input.pubKeys = expanded.pubKeys
18784 input.signatures = expanded.signatures
18785 input.signScript = signScript
18786 input.signType = signType
18787 input.prevOutScript = prevOutScript
18788 input.prevOutType = prevOutType
18789 input.witness = witness
18792 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18793 if (type === scriptTypes.P2PKH) {
18794 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18795 } else if (type === scriptTypes.P2PK) {
18796 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18797 } else if (type === scriptTypes.MULTISIG) {
18798 if (signatures.length
> 0) {
18799 signatures = signatures.map(function (signature) {
18800 return signature || ops.OP_0
18802 if (!allowIncomplete) {
18803 // remove blank signatures
18804 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18807 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18810 throw new Error('Not yet supported')
18813 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18818 function buildInput (input, allowIncomplete) {
18819 var scriptType = input.prevOutType
18822 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18823 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18827 if (scriptType === bscript.types.P2SH) {
18828 // We can remove this error later when we have a guarantee prepareInput
18829 // rejects unsignable scripts - it MUST be signable at this point.
18830 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18831 throw new Error('Impossible to sign this type')
18834 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18835 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18837 // If it wasn't SIGNABLE, it's witness, defer to that
18838 scriptType = input.redeemScriptType
18841 if (scriptType === bscript.types.P2WPKH) {
18842 // P2WPKH is a special case of P2PKH
18843 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18844 } else if (scriptType === bscript.types.P2WSH) {
18845 // We can remove this check later
18846 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18847 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18848 witness.push(input.witnessScript)
18850 // We can remove this error later when we have a guarantee prepareInput
18851 // rejects unsignble scripts - it MUST be signable at this point.
18855 scriptType = input.witnessScriptType
18858 // append redeemScript if necessary
18860 sig.push(input.redeemScript)
18865 script: bscript.compile(sig),
18870 function TransactionBuilder (network, maximumFeeRate) {
18871 this.prevTxMap = {}
18872 this.network = network || networks.bitcoin
18874 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18875 this.maximumFeeRate = maximumFeeRate ||
1000
18878 this.tx = new Transaction()
18881 TransactionBuilder.prototype.setLockTime = function (locktime) {
18882 typeforce(types.UInt32, locktime)
18884 // if any signatures exist, throw
18885 if (this.inputs.some(function (input) {
18886 if (!input.signatures) return false
18888 return input.signatures.some(function (s) { return s })
18890 throw new Error('No, this would invalidate signatures')
18893 this.tx.locktime = locktime
18896 TransactionBuilder.prototype.setVersion = function (version) {
18897 typeforce(types.UInt32, version)
18899 // XXX: this might eventually become more complex depending on what the versions represent
18900 this.tx.version = version
18903 TransactionBuilder.fromTransaction = function (transaction, network) {
18904 var txb = new TransactionBuilder(network)
18906 // Copy transaction fields
18907 txb.setVersion(transaction.version)
18908 txb.setLockTime(transaction.locktime)
18910 // Copy outputs (done first to avoid signature invalidation)
18911 transaction.outs.forEach(function (txOut) {
18912 txb.addOutput(txOut.script, txOut.value)
18916 transaction.ins.forEach(function (txIn) {
18917 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18918 sequence: txIn.sequence,
18919 script: txIn.script,
18920 witness: txIn.witness
18924 // fix some things not possible through the public API
18925 txb.inputs.forEach(function (input, i) {
18926 fixMultisigOrder(input, transaction, i)
18932 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18933 if (!this.__canModifyInputs()) {
18934 throw new Error('No, this would invalidate signatures')
18939 // is it a hex string?
18940 if (typeof txHash === 'string') {
18941 // transaction hashs's are displayed in reverse order, un-reverse it
18942 txHash = Buffer.from(txHash, 'hex').reverse()
18944 // is it a Transaction object?
18945 } else if (txHash instanceof Transaction) {
18946 var txOut = txHash.outs[vout]
18947 prevOutScript = txOut.script
18948 value = txOut.value
18950 txHash = txHash.getHash()
18953 return this.__addInputUnsafe(txHash, vout, {
18954 sequence: sequence,
18955 prevOutScript: prevOutScript,
18960 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18961 if (Transaction.isCoinbaseHash(txHash)) {
18962 throw new Error('coinbase inputs not supported')
18965 var prevTxOut = txHash.toString('hex') + ':' + vout
18966 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18970 // derive what we can from the scriptSig
18971 if (options.script !== undefined) {
18972 input = expandInput(options.script, options.witness || [])
18975 // if an input value was given, retain it
18976 if (options.value !== undefined) {
18977 input.value = options.value
18980 // derive what we can from the previous transactions output script
18981 if (!input.prevOutScript && options.prevOutScript) {
18984 if (!input.pubKeys && !input.signatures) {
18985 var expanded = expandOutput(options.prevOutScript)
18987 if (expanded.pubKeys) {
18988 input.pubKeys = expanded.pubKeys
18989 input.signatures = expanded.signatures
18992 prevOutType = expanded.scriptType
18995 input.prevOutScript = options.prevOutScript
18996 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
18999 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19000 this.inputs[vin] = input
19001 this.prevTxMap[prevTxOut] = vin
19006 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19007 if (!this.__canModifyOutputs()) {
19008 throw new Error('No, this would invalidate signatures')
19011 // Attempt to get a script if it's a base58 address string
19012 if (typeof scriptPubKey === 'string') {
19013 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19016 return this.tx.addOutput(scriptPubKey, value)
19019 TransactionBuilder.prototype.build = function () {
19020 return this.__build(false)
19022 TransactionBuilder.prototype.buildIncomplete = function () {
19023 return this.__build(true)
19026 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19027 if (!allowIncomplete) {
19028 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19029 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19032 var tx = this.tx.clone()
19033 // Create script signatures from inputs
19034 this.inputs.forEach(function (input, i) {
19035 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19036 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19037 var result = buildInput(input, allowIncomplete)
19039 // skip if no result
19040 if (!allowIncomplete) {
19041 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19042 throw new Error(result.type + ' not supported')
19046 tx.setInputScript(i, result.script)
19047 tx.setWitness(i, result.witness)
19050 if (!allowIncomplete) {
19051 // do not rely on this, its merely a last resort
19052 if (this.__overMaximumFees(tx.byteLength())) {
19053 throw new Error('Transaction has absurd fees')
19060 function canSign (input) {
19061 return input.prevOutScript !== undefined &&
19062 input.signScript !== undefined &&
19063 input.pubKeys !== undefined &&
19064 input.signatures !== undefined &&
19065 input.signatures.length === input.pubKeys.length &&
19066 input.pubKeys.length
> 0 &&
19067 input.witness !== undefined
19070 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19071 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19072 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19073 hashType = hashType || Transaction.SIGHASH_ALL
19075 var input = this.inputs[vin]
19077 // if redeemScript was previously provided, enforce consistency
19078 if (input.redeemScript !== undefined &&
19080 !input.redeemScript.equals(redeemScript)) {
19081 throw new Error('Inconsistent redeemScript')
19084 var kpPubKey = keyPair.getPublicKeyBuffer()
19085 if (!canSign(input)) {
19086 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19087 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19092 if (input.witness) {
19093 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19095 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19097 // enforce in order signing of public keys
19098 var signed = input.pubKeys.some(function (pubKey, i) {
19099 if (!kpPubKey.equals(pubKey)) return false
19100 if (input.signatures[i]) throw new Error('Signature already exists')
19102 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19106 if (!signed) throw new Error('Key pair cannot sign for this input')
19109 function signatureHashType (buffer) {
19110 return buffer.readUInt8(buffer.length -
1)
19113 TransactionBuilder.prototype.__canModifyInputs = function () {
19114 return this.inputs.every(function (input) {
19116 if (input.signatures === undefined) return true
19118 return input.signatures.every(function (signature) {
19119 if (!signature) return true
19120 var hashType = signatureHashType(signature)
19122 // if SIGHASH_ANYONECANPAY is set, signatures would not
19123 // be invalidated by more inputs
19124 return hashType & Transaction.SIGHASH_ANYONECANPAY
19129 TransactionBuilder.prototype.__canModifyOutputs = function () {
19130 var nInputs = this.tx.ins.length
19131 var nOutputs = this.tx.outs.length
19133 return this.inputs.every(function (input) {
19134 if (input.signatures === undefined) return true
19136 return input.signatures.every(function (signature) {
19137 if (!signature) return true
19138 var hashType = signatureHashType(signature)
19140 var hashTypeMod = hashType &
0x1f
19141 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19142 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19143 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19144 // some signatures would be invalidated by the addition
19146 return nInputs <= nOutputs
19152 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19153 // not all inputs will have .value defined
19154 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19156 // but all outputs do, and if we have any input value
19157 // we can immediately determine if the outputs are too small
19158 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19159 var fee = incoming - outgoing
19160 var feeRate = fee / bytes
19162 return feeRate
> this.maximumFeeRate
19165 module.exports = TransactionBuilder
19167 },{"./address":
42,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./networks":
51,"./script":
52,"./transaction":
76,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
78:[function(require,module,exports){
19168 var typeforce = require('typeforce')
19170 var UINT31_MAX = Math.pow(
2,
31) -
1
19171 function UInt31 (value) {
19172 return typeforce.UInt32(value) && value <= UINT31_MAX
19175 function BIP32Path (value) {
19176 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19178 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19180 var SATOSHI_MAX =
21 *
1e14
19181 function Satoshi (value) {
19182 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19185 // external dependent types
19186 var BigInt = typeforce.quacksLike('BigInteger')
19187 var ECPoint = typeforce.quacksLike('Point')
19189 // exposed, external API
19190 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19191 var Network = typeforce.compile({
19192 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19194 public: typeforce.UInt32,
19195 private: typeforce.UInt32
19197 pubKeyHash: typeforce.UInt8,
19198 scriptHash: typeforce.UInt8,
19199 wif: typeforce.UInt8
19202 // extend typeforce types with ours
19205 BIP32Path: BIP32Path,
19206 Buffer256bit: typeforce.BufferN(
32),
19208 ECSignature: ECSignature,
19209 Hash160bit: typeforce.BufferN(
20),
19210 Hash256bit: typeforce.BufferN(
32),
19216 for (var typeName in typeforce) {
19217 types[typeName] = typeforce[typeName]
19220 module.exports = types
19222 },{"typeforce":
109}],
79:[function(require,module,exports){
19223 var basex = require('base-x')
19224 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19226 module.exports = basex(ALPHABET)
19228 },{"base-x":
34}],
80:[function(require,module,exports){
19229 (function (Buffer){
19232 var base58 = require('bs58')
19233 var createHash = require('create-hash')
19235 // SHA256(SHA256(buffer))
19236 function sha256x2 (buffer) {
19237 var tmp = createHash('sha256').update(buffer).digest()
19238 return createHash('sha256').update(tmp).digest()
19241 // Encode a buffer as a base58-check encoded string
19242 function encode (payload) {
19243 var checksum = sha256x2(payload)
19245 return base58.encode(Buffer.concat([
19248 ], payload.length +
4))
19251 function decodeRaw (buffer) {
19252 var payload = buffer.slice(
0, -
4)
19253 var checksum = buffer.slice(-
4)
19254 var newChecksum = sha256x2(payload)
19256 if (checksum[
0] ^ newChecksum[
0] |
19257 checksum[
1] ^ newChecksum[
1] |
19258 checksum[
2] ^ newChecksum[
2] |
19259 checksum[
3] ^ newChecksum[
3]) return
19264 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19265 function decodeUnsafe (string) {
19266 var buffer = base58.decodeUnsafe(string)
19267 if (!buffer) return
19269 return decodeRaw(buffer)
19272 function decode (string) {
19273 var buffer = base58.decode(string)
19274 var payload = decodeRaw(buffer)
19275 if (!payload) throw new Error('Invalid checksum')
19282 decodeUnsafe: decodeUnsafe
19285 }).call(this,require("buffer").Buffer)
19286 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19287 var Buffer = require('safe-buffer').Buffer
19288 var Transform = require('stream').Transform
19289 var StringDecoder = require('string_decoder').StringDecoder
19290 var inherits = require('inherits')
19292 function CipherBase (hashMode) {
19293 Transform.call(this)
19294 this.hashMode = typeof hashMode === 'string'
19295 if (this.hashMode) {
19296 this[hashMode] = this._finalOrDigest
19298 this.final = this._finalOrDigest
19301 this.__final = this._final
19304 this._decoder = null
19305 this._encoding = null
19307 inherits(CipherBase, Transform)
19309 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19310 if (typeof data === 'string') {
19311 data = Buffer.from(data, inputEnc)
19314 var outData = this._update(data)
19315 if (this.hashMode) return this
19318 outData = this._toString(outData, outputEnc)
19324 CipherBase.prototype.setAutoPadding = function () {}
19325 CipherBase.prototype.getAuthTag = function () {
19326 throw new Error('trying to get auth tag in unsupported state')
19329 CipherBase.prototype.setAuthTag = function () {
19330 throw new Error('trying to set auth tag in unsupported state')
19333 CipherBase.prototype.setAAD = function () {
19334 throw new Error('trying to set aad in unsupported state')
19337 CipherBase.prototype._transform = function (data, _, next) {
19340 if (this.hashMode) {
19343 this.push(this._update(data))
19351 CipherBase.prototype._flush = function (done) {
19354 this.push(this.__final())
19361 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19362 var outData = this.__final() || Buffer.alloc(
0)
19364 outData = this._toString(outData, outputEnc, true)
19369 CipherBase.prototype._toString = function (value, enc, fin) {
19370 if (!this._decoder) {
19371 this._decoder = new StringDecoder(enc)
19372 this._encoding = enc
19375 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19377 var out = this._decoder.write(value)
19379 out += this._decoder.end()
19385 module.exports = CipherBase
19387 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19388 (function (Buffer){
19390 var inherits = require('inherits')
19391 var md5 = require('./md5')
19392 var RIPEMD160 = require('ripemd160')
19393 var sha = require('sha.js')
19395 var Base = require('cipher-base')
19397 function HashNoConstructor (hash) {
19398 Base.call(this, 'digest')
19404 inherits(HashNoConstructor, Base)
19406 HashNoConstructor.prototype._update = function (data) {
19407 this.buffers.push(data)
19410 HashNoConstructor.prototype._final = function () {
19411 var buf = Buffer.concat(this.buffers)
19412 var r = this._hash(buf)
19413 this.buffers = null
19418 function Hash (hash) {
19419 Base.call(this, 'digest')
19424 inherits(Hash, Base)
19426 Hash.prototype._update = function (data) {
19427 this._hash.update(data)
19430 Hash.prototype._final = function () {
19431 return this._hash.digest()
19434 module.exports = function createHash (alg) {
19435 alg = alg.toLowerCase()
19436 if (alg === 'md5') return new HashNoConstructor(md5)
19437 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19439 return new Hash(sha(alg))
19442 }).call(this,require("buffer").Buffer)
19443 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19444 (function (Buffer){
19447 var zeroBuffer = new Buffer(intSize)
19453 function toArray (buf) {
19454 if ((buf.length % intSize) !==
0) {
19455 var len = buf.length + (intSize - (buf.length % intSize))
19456 buf = Buffer.concat([buf, zeroBuffer], len)
19459 var arr = new Array(buf.length
>>> 2)
19460 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19461 arr[j] = buf.readInt32LE(i)
19467 module.exports = function hash (buf, fn) {
19468 var arr = fn(toArray(buf), buf.length * charSize)
19469 buf = new Buffer(hashSize)
19470 for (var i =
0; i < arr.length; i++) {
19471 buf.writeInt32LE(arr[i], i <<
2, true)
19476 }).call(this,require(
"buffer").Buffer)
19477 },{
"buffer":
4}],
84:[function(require,module,exports){
19480 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19481 * Digest Algorithm, as defined in RFC
1321.
19482 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19483 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19484 * Distributed under the BSD License
19485 * See http://pajhome.org.uk/crypt/md5 for more info.
19488 var makeHash = require('./make-hash')
19491 * Calculate the MD5 of an array of little-endian words, and a bit length
19493 function core_md5 (x, len) {
19494 /* append padding */
19495 x[len
>> 5] |=
0x80 << ((len) %
32)
19496 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19500 var c = -
1732584194
19503 for (var i =
0; i < x.length; i +=
16) {
19509 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19510 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19511 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19512 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19513 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19514 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19515 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19516 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19517 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19518 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19519 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19520 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19521 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19522 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19523 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19524 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19526 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19527 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19528 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19529 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19530 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19531 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19532 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19533 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19534 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19535 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19536 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19537 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19538 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19539 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19540 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19541 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19543 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19544 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19545 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19546 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19547 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19548 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19549 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19550 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19551 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19552 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19553 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19554 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19555 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19556 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19557 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19558 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19560 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19561 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19562 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19563 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19564 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19565 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19566 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19567 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19568 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19569 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19570 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19571 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19572 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19573 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19574 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19575 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19577 a = safe_add(a, olda)
19578 b = safe_add(b, oldb)
19579 c = safe_add(c, oldc)
19580 d = safe_add(d, oldd)
19583 return [a, b, c, d]
19587 * These functions implement the four basic operations the algorithm uses.
19589 function md5_cmn (q, a, b, x, s, t) {
19590 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19593 function md5_ff (a, b, c, d, x, s, t) {
19594 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19597 function md5_gg (a, b, c, d, x, s, t) {
19598 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19601 function md5_hh (a, b, c, d, x, s, t) {
19602 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19605 function md5_ii (a, b, c, d, x, s, t) {
19606 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19610 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19611 * to work around bugs in some JS interpreters.
19613 function safe_add (x, y) {
19614 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19615 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19616 return (msw <<
16) | (lsw &
0xFFFF)
19620 * Bitwise rotate a
32-bit number to the left.
19622 function bit_rol (num, cnt) {
19623 return (num << cnt) | (num
>>> (
32 - cnt))
19626 module.exports = function md5 (buf) {
19627 return makeHash(buf, core_md5)
19630 },{"./make-hash":
83}],
85:[function(require,module,exports){
19632 var inherits = require('inherits')
19633 var Legacy = require('./legacy')
19634 var Base = require('cipher-base')
19635 var Buffer = require('safe-buffer').Buffer
19636 var md5 = require('create-hash/md5')
19637 var RIPEMD160 = require('ripemd160')
19639 var sha = require('sha.js')
19641 var ZEROS = Buffer.alloc(
128)
19643 function Hmac (alg, key) {
19644 Base.call(this, 'digest')
19645 if (typeof key === 'string') {
19646 key = Buffer.from(key)
19649 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19653 if (key.length
> blocksize) {
19654 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19655 key = hash.update(key).digest()
19656 } else if (key.length < blocksize) {
19657 key = Buffer.concat([key, ZEROS], blocksize)
19660 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19661 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19663 for (var i =
0; i < blocksize; i++) {
19664 ipad[i] = key[i] ^
0x36
19665 opad[i] = key[i] ^
0x5C
19667 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19668 this._hash.update(ipad)
19671 inherits(Hmac, Base)
19673 Hmac.prototype._update = function (data) {
19674 this._hash.update(data)
19677 Hmac.prototype._final = function () {
19678 var h = this._hash.digest()
19679 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19680 return hash.update(this._opad).update(h).digest()
19683 module.exports = function createHmac (alg, key) {
19684 alg = alg.toLowerCase()
19685 if (alg === 'rmd160' || alg === 'ripemd160') {
19686 return new Hmac('rmd160', key)
19688 if (alg === 'md5') {
19689 return new Legacy(md5, key)
19691 return new Hmac(alg, key)
19694 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19696 var inherits = require('inherits')
19697 var Buffer = require('safe-buffer').Buffer
19699 var Base = require('cipher-base')
19701 var ZEROS = Buffer.alloc(
128)
19704 function Hmac (alg, key) {
19705 Base.call(this, 'digest')
19706 if (typeof key === 'string') {
19707 key = Buffer.from(key)
19713 if (key.length
> blocksize) {
19715 } else if (key.length < blocksize) {
19716 key = Buffer.concat([key, ZEROS], blocksize)
19719 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19720 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19722 for (var i =
0; i < blocksize; i++) {
19723 ipad[i] = key[i] ^
0x36
19724 opad[i] = key[i] ^
0x5C
19727 this._hash = [ipad]
19730 inherits(Hmac, Base)
19732 Hmac.prototype._update = function (data) {
19733 this._hash.push(data)
19736 Hmac.prototype._final = function () {
19737 var h = this._alg(Buffer.concat(this._hash))
19738 return this._alg(Buffer.concat([this._opad, h]))
19740 module.exports = Hmac
19742 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19743 var assert = require('assert')
19744 var BigInteger = require('bigi')
19746 var Point = require('./point')
19748 function Curve (p, a, b, Gx, Gy, n, h) {
19752 this.G = Point.fromAffine(this, Gx, Gy)
19756 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19759 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19761 // determine size of p in bytes
19762 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19765 Curve.prototype.pointFromX = function (isOdd, x) {
19766 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19767 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19770 if (beta.isEven() ^ !isOdd) {
19771 y = this.p.subtract(y) // -y % p
19774 return Point.fromAffine(this, x, y)
19777 Curve.prototype.isInfinity = function (Q) {
19778 if (Q === this.infinity) return true
19780 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19783 Curve.prototype.isOnCurve = function (Q) {
19784 if (this.isInfinity(Q)) return true
19792 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19793 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19794 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19796 // and check that y^
2 = x^
3 + ax + b (mod p)
19797 var lhs = y.square().mod(p)
19798 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19799 return lhs.equals(rhs)
19803 * Validate an elliptic curve point.
19805 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19807 Curve.prototype.validate = function (Q) {
19809 assert(!this.isInfinity(Q), 'Point is at infinity')
19810 assert(this.isOnCurve(Q), 'Point is not on the curve')
19812 // Check nQ = O (where Q is a scalar multiple of G)
19813 var nQ = Q.multiply(this.n)
19814 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19819 module.exports = Curve
19821 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19824 "p": "fffffffdffffffffffffffffffffffff",
19825 "a": "fffffffdfffffffffffffffffffffffc",
19826 "b": "e87579c11079f43dd824993c2cee5ed3",
19827 "n": "fffffffe0000000075a30d1b9038a115",
19829 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19830 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19833 "p": "fffffffffffffffffffffffffffffffeffffac73",
19836 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19838 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19839 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19842 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19843 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19844 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19845 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19847 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19848 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19851 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19854 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19856 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19857 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19860 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19861 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19862 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19863 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19865 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19866 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19869 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19872 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19874 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19875 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19878 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19879 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19880 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19881 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19883 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19884 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19888 },{}],
89:[function(require,module,exports){
19889 var Point = require('./point')
19890 var Curve = require('./curve')
19892 var getCurveByName = require('./names')
19897 getCurveByName: getCurveByName
19900 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19901 var BigInteger = require('bigi')
19903 var curves = require('./curves.json')
19904 var Curve = require('./curve')
19906 function getCurveByName (name) {
19907 var curve = curves[name]
19908 if (!curve) return null
19910 var p = new BigInteger(curve.p,
16)
19911 var a = new BigInteger(curve.a,
16)
19912 var b = new BigInteger(curve.b,
16)
19913 var n = new BigInteger(curve.n,
16)
19914 var h = new BigInteger(curve.h,
16)
19915 var Gx = new BigInteger(curve.Gx,
16)
19916 var Gy = new BigInteger(curve.Gy,
16)
19918 return new Curve(p, a, b, Gx, Gy, n, h)
19921 module.exports = getCurveByName
19923 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19924 (function (Buffer){
19925 var assert = require('assert')
19926 var BigInteger = require('bigi')
19928 var THREE = BigInteger.valueOf(
3)
19930 function Point (curve, x, y, z) {
19931 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19939 this.compressed = true
19942 Object.defineProperty(Point.prototype, 'zInv', {
19944 if (this._zInv === null) {
19945 this._zInv = this.z.modInverse(this.curve.p)
19952 Object.defineProperty(Point.prototype, 'affineX', {
19954 return this.x.multiply(this.zInv).mod(this.curve.p)
19958 Object.defineProperty(Point.prototype, 'affineY', {
19960 return this.y.multiply(this.zInv).mod(this.curve.p)
19964 Point.fromAffine = function (curve, x, y) {
19965 return new Point(curve, x, y, BigInteger.ONE)
19968 Point.prototype.equals = function (other) {
19969 if (other === this) return true
19970 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19971 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
19973 // u = Y2 * Z1 - Y1 * Z2
19974 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
19976 if (u.signum() !==
0) return false
19978 // v = X2 * Z1 - X1 * Z2
19979 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
19981 return v.signum() ===
0
19984 Point.prototype.negate = function () {
19985 var y = this.curve.p.subtract(this.y)
19987 return new Point(this.curve, this.x, y, this.z)
19990 Point.prototype.add = function (b) {
19991 if (this.curve.isInfinity(this)) return b
19992 if (this.curve.isInfinity(b)) return this
19999 // u = Y2 * Z1 - Y1 * Z2
20000 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20001 // v = X2 * Z1 - X1 * Z2
20002 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20004 if (v.signum() ===
0) {
20005 if (u.signum() ===
0) {
20006 return this.twice() // this == b, so double
20009 return this.curve.infinity // this = -b, so infinity
20012 var v2 = v.square()
20013 var v3 = v2.multiply(v)
20014 var x1v2 = x1.multiply(v2)
20015 var zu2 = u.square().multiply(this.z)
20017 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20018 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20019 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20020 var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)
20021 // z3 = v^
3 * z1 * z2
20022 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20024 return new Point(this.curve, x3, y3, z3)
20027 Point.prototype.twice = function () {
20028 if (this.curve.isInfinity(this)) return this
20029 if (this.y.signum() ===
0) return this.curve.infinity
20034 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20035 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20036 var a = this.curve.a
20038 // w =
3 * x1^
2 + a * z1^
2
20039 var w = x1.square().multiply(THREE)
20041 if (a.signum() !==
0) {
20042 w = w.add(this.z.square().multiply(a))
20045 w = w.mod(this.curve.p)
20046 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20047 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20048 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20049 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20050 // z3 =
8 * (y1 * z1)^
3
20051 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20053 return new Point(this.curve, x3, y3, z3)
20056 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20057 // TODO: modularize the multiplication algorithm
20058 Point.prototype.multiply = function (k) {
20059 if (this.curve.isInfinity(this)) return this
20060 if (k.signum() ===
0) return this.curve.infinity
20063 var h = e.multiply(THREE)
20065 var neg = this.negate()
20068 for (var i = h.bitLength() -
2; i
> 0; --i) {
20069 var hBit = h.testBit(i)
20070 var eBit = e.testBit(i)
20074 if (hBit !== eBit) {
20075 R = R.add(hBit ? this : neg)
20082 // Compute this*j + x*k (simultaneous multiplication)
20083 Point.prototype.multiplyTwo = function (j, x, k) {
20084 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20085 var R = this.curve.infinity
20086 var both = this.add(x)
20089 var jBit = j.testBit(i)
20090 var kBit = k.testBit(i)
20109 Point.prototype.getEncoded = function (compressed) {
20110 if (compressed == null) compressed = this.compressed
20111 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20113 var x = this.affineX
20114 var y = this.affineY
20115 var byteLength = this.curve.pLength
20120 buffer = new Buffer(
1 + byteLength)
20121 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20125 buffer = new Buffer(
1 + byteLength + byteLength)
20126 buffer.writeUInt8(
0x04,
0)
20128 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20131 x.toBuffer(byteLength).copy(buffer,
1)
20136 Point.decodeFrom = function (curve, buffer) {
20137 var type = buffer.readUInt8(
0)
20138 var compressed = (type !==
4)
20140 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20141 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20145 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20146 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20148 var isOdd = (type ===
0x03)
20149 Q = curve.pointFromX(isOdd, x)
20151 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20153 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20154 Q = Point.fromAffine(curve, x, y)
20157 Q.compressed = compressed
20161 Point.prototype.toString = function () {
20162 if (this.curve.isInfinity(this)) return '(INFINITY)'
20164 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20167 module.exports = Point
20169 }).call(this,require("buffer").Buffer)
20170 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20171 (function (Buffer){
20173 var Transform = require('stream').Transform
20174 var inherits = require('inherits')
20176 function HashBase (blockSize) {
20177 Transform.call(this)
20179 this._block = new Buffer(blockSize)
20180 this._blockSize = blockSize
20181 this._blockOffset =
0
20182 this._length = [
0,
0,
0,
0]
20184 this._finalized = false
20187 inherits(HashBase, Transform)
20189 HashBase.prototype._transform = function (chunk, encoding, callback) {
20192 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20201 HashBase.prototype._flush = function (callback) {
20204 this.push(this._digest())
20212 HashBase.prototype.update = function (data, encoding) {
20213 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20214 if (this._finalized) throw new Error('Digest already called')
20215 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20218 var block = this._block
20220 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20221 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20223 this._blockOffset =
0
20225 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20228 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20229 this._length[j] += carry
20230 carry = (this._length[j] /
0x0100000000) |
0
20231 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20237 HashBase.prototype._update = function (data) {
20238 throw new Error('_update is not implemented')
20241 HashBase.prototype.digest = function (encoding) {
20242 if (this._finalized) throw new Error('Digest already called')
20243 this._finalized = true
20245 var digest = this._digest()
20246 if (encoding !== undefined) digest = digest.toString(encoding)
20250 HashBase.prototype._digest = function () {
20251 throw new Error('_digest is not implemented')
20254 module.exports = HashBase
20256 }).call(this,require(
"buffer").Buffer)
20257 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20258 arguments[
4][
8][
0].apply(exports,arguments)
20259 },{
"dup":
8}],
94:[function(require,module,exports){
20260 (function (Buffer){
20261 // constant-space merkle root calculation algorithm
20262 module.exports = function fastRoot (values, digestFn) {
20263 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20264 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20266 var length = values.length
20267 var results = values.concat()
20269 while (length
> 1) {
20272 for (var i =
0; i < length; i +=
2, ++j) {
20273 var left = results[i]
20274 var right = i +
1 === length ? left : results[i +
1]
20275 var data = Buffer.concat([left, right])
20277 results[j] = digestFn(data)
20286 }).call(this,require(
"buffer").Buffer)
20287 },{
"buffer":
4}],
95:[function(require,module,exports){
20288 var OPS = require('bitcoin-ops')
20290 function encodingLength (i) {
20291 return i < OPS.OP_PUSHDATA1 ?
1
20297 function encode (buffer, number, offset) {
20298 var size = encodingLength(number)
20302 buffer.writeUInt8(number, offset)
20305 } else if (size ===
2) {
20306 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20307 buffer.writeUInt8(number, offset +
1)
20310 } else if (size ===
3) {
20311 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20312 buffer.writeUInt16LE(number, offset +
1)
20316 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20317 buffer.writeUInt32LE(number, offset +
1)
20323 function decode (buffer, offset) {
20324 var opcode = buffer.readUInt8(offset)
20328 if (opcode < OPS.OP_PUSHDATA1) {
20333 } else if (opcode === OPS.OP_PUSHDATA1) {
20334 if (offset +
2 > buffer.length) return null
20335 number = buffer.readUInt8(offset +
1)
20339 } else if (opcode === OPS.OP_PUSHDATA2) {
20340 if (offset +
3 > buffer.length) return null
20341 number = buffer.readUInt16LE(offset +
1)
20346 if (offset +
5 > buffer.length) return null
20347 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20349 number = buffer.readUInt32LE(offset +
1)
20361 encodingLength: encodingLength,
20366 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20367 (function (process,global){
20370 function oldBrowser () {
20371 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20374 var Buffer = require('safe-buffer').Buffer
20375 var crypto = global.crypto || global.msCrypto
20377 if (crypto && crypto.getRandomValues) {
20378 module.exports = randomBytes
20380 module.exports = oldBrowser
20383 function randomBytes (size, cb) {
20384 // phantomjs needs to throw
20385 if (size
> 65536) throw new Error('requested too many random bytes')
20386 // in case browserify isn't using the Uint8Array version
20387 var rawBytes = new global.Uint8Array(size)
20389 // This will not work in older browsers.
20390 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20391 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20392 crypto.getRandomValues(rawBytes)
20395 // XXX: phantomjs doesn't like a buffer being passed here
20396 var bytes = Buffer.from(rawBytes.buffer)
20398 if (typeof cb === 'function') {
20399 return process.nextTick(function () {
20407 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20408 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20409 (function (Buffer){
20411 var inherits = require('inherits')
20412 var HashBase = require('hash-base')
20414 function RIPEMD160 () {
20415 HashBase.call(this,
64)
20418 this._a =
0x67452301
20419 this._b =
0xefcdab89
20420 this._c =
0x98badcfe
20421 this._d =
0x10325476
20422 this._e =
0xc3d2e1f0
20425 inherits(RIPEMD160, HashBase)
20427 RIPEMD160.prototype._update = function () {
20428 var m = new Array(
16)
20429 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20437 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20439 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20440 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20441 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20442 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20443 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20444 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20445 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20446 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20447 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20448 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20449 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20450 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20451 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20452 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20453 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20454 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20455 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20457 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20459 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20460 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20461 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20462 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20463 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20464 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20465 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20466 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20467 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20468 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20469 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20470 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20471 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20472 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20473 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20474 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20475 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20477 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20479 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20480 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20481 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20482 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20483 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20484 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20485 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20486 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20487 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20488 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20489 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20490 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20491 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20492 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20493 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20494 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20495 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20497 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20499 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20500 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20501 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20502 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20503 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20504 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20505 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20506 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20507 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20508 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20509 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20510 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20511 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20512 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20513 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20514 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20515 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20517 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20519 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20520 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20521 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20522 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20523 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20524 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20525 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20526 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20527 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20528 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20529 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20530 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20531 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20532 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20533 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20534 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20535 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20543 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20545 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20546 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20547 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20548 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20549 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20550 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20551 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20552 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20553 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20554 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20555 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20556 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20557 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20558 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20559 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20560 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20561 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20563 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20565 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20566 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20567 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20568 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20569 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20570 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20571 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20572 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20573 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20574 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20575 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20576 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20577 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20578 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20579 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20580 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20581 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20583 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20585 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20586 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20587 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20588 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20589 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20590 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20591 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20592 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20593 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20594 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20595 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20596 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20597 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20598 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20599 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20600 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20601 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20603 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20605 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20606 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20607 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20608 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20609 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20610 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20611 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20612 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20613 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20614 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20615 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20616 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20617 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20618 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20619 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20620 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20621 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20623 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20625 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20626 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20627 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20628 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20629 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20630 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20631 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20632 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20633 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20634 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20635 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20636 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20637 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20638 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20639 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20640 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20641 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20644 var t = (this._b + cl + dr) |
0
20645 this._b = (this._c + dl + er) |
0
20646 this._c = (this._d + el + ar) |
0
20647 this._d = (this._e + al + br) |
0
20648 this._e = (this._a + bl + cr) |
0
20652 RIPEMD160.prototype._digest = function () {
20653 // create padding and handle blocks
20654 this._block[this._blockOffset++] =
0x80
20655 if (this._blockOffset
> 56) {
20656 this._block.fill(
0, this._blockOffset,
64)
20658 this._blockOffset =
0
20661 this._block.fill(
0, this._blockOffset,
56)
20662 this._block.writeUInt32LE(this._length[
0],
56)
20663 this._block.writeUInt32LE(this._length[
1],
60)
20667 var buffer = new Buffer(
20)
20668 buffer.writeInt32LE(this._a,
0)
20669 buffer.writeInt32LE(this._b,
4)
20670 buffer.writeInt32LE(this._c,
8)
20671 buffer.writeInt32LE(this._d,
12)
20672 buffer.writeInt32LE(this._e,
16)
20676 function rotl (x, n) {
20677 return (x << n) | (x
>>> (
32 - n))
20680 function fn1 (a, b, c, d, e, m, k, s) {
20681 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20684 function fn2 (a, b, c, d, e, m, k, s) {
20685 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20688 function fn3 (a, b, c, d, e, m, k, s) {
20689 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20692 function fn4 (a, b, c, d, e, m, k, s) {
20693 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20696 function fn5 (a, b, c, d, e, m, k, s) {
20697 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20700 module.exports = RIPEMD160
20702 }).call(this,require("buffer").Buffer)
20703 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20704 arguments[
4][
26][
0].apply(exports,arguments)
20705 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20706 (function (Buffer){
20707 // prototype class for hash functions
20708 function Hash (blockSize, finalSize) {
20709 this._block = new Buffer(blockSize)
20710 this._finalSize = finalSize
20711 this._blockSize = blockSize
20716 Hash.prototype.update = function (data, enc) {
20717 if (typeof data === 'string') {
20718 enc = enc || 'utf8'
20719 data = new Buffer(data, enc)
20722 var l = this._len += data.length
20723 var s = this._s ||
0
20725 var buffer = this._block
20728 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20731 for (var i =
0; i < ch; i++) {
20732 buffer[(s % this._blockSize) + i] = data[i + f]
20738 if ((s % this._blockSize) ===
0) {
20739 this._update(buffer)
20747 Hash.prototype.digest = function (enc) {
20748 // Suppose the length of the message M, in bits, is l
20749 var l = this._len *
8
20751 // Append the bit
1 to the end of the message
20752 this._block[this._len % this._blockSize] =
0x80
20754 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20755 this._block.fill(
0, this._len % this._blockSize +
1)
20757 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20758 this._update(this._block)
20759 this._block.fill(
0)
20762 // to this append the block which is equal to the number l written in binary
20763 // TODO: handle case where l is
> Math.pow(
2,
29)
20764 this._block.writeInt32BE(l, this._blockSize -
4)
20766 var hash = this._update(this._block) || this._hash()
20768 return enc ? hash.toString(enc) : hash
20771 Hash.prototype._update = function () {
20772 throw new Error('_update must be implemented by subclass')
20775 module.exports = Hash
20777 }).call(this,require("buffer").Buffer)
20778 },{"buffer":
4}],
100:[function(require,module,exports){
20779 var exports = module.exports = function SHA (algorithm) {
20780 algorithm = algorithm.toLowerCase()
20782 var Algorithm = exports[algorithm]
20783 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20785 return new Algorithm()
20788 exports.sha = require('./sha')
20789 exports.sha1 = require('./sha1')
20790 exports.sha224 = require('./sha224')
20791 exports.sha256 = require('./sha256')
20792 exports.sha384 = require('./sha384')
20793 exports.sha512 = require('./sha512')
20795 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20796 (function (Buffer){
20798 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20799 * in FIPS PUB
180-
1
20800 * This source code is derived from sha1.js of the same repository.
20801 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20802 * operation was added.
20805 var inherits = require('inherits')
20806 var Hash = require('./hash')
20809 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20812 var W = new Array(
80)
20818 Hash.call(this,
64,
56)
20821 inherits(Sha, Hash)
20823 Sha.prototype.init = function () {
20824 this._a =
0x67452301
20825 this._b =
0xefcdab89
20826 this._c =
0x98badcfe
20827 this._d =
0x10325476
20828 this._e =
0xc3d2e1f0
20833 function rotl5 (num) {
20834 return (num <<
5) | (num
>>> 27)
20837 function rotl30 (num) {
20838 return (num <<
30) | (num
>>> 2)
20841 function ft (s, b, c, d) {
20842 if (s ===
0) return (b & c) | ((~b) & d)
20843 if (s ===
2) return (b & c) | (b & d) | (c & d)
20847 Sha.prototype._update = function (M) {
20850 var a = this._a |
0
20851 var b = this._b |
0
20852 var c = this._c |
0
20853 var d = this._d |
0
20854 var e = this._e |
0
20856 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20857 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20859 for (var j =
0; j <
80; ++j) {
20861 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20870 this._a = (a + this._a) |
0
20871 this._b = (b + this._b) |
0
20872 this._c = (c + this._c) |
0
20873 this._d = (d + this._d) |
0
20874 this._e = (e + this._e) |
0
20877 Sha.prototype._hash = function () {
20878 var H = new Buffer(
20)
20880 H.writeInt32BE(this._a |
0,
0)
20881 H.writeInt32BE(this._b |
0,
4)
20882 H.writeInt32BE(this._c |
0,
8)
20883 H.writeInt32BE(this._d |
0,
12)
20884 H.writeInt32BE(this._e |
0,
16)
20889 module.exports = Sha
20891 }).call(this,require(
"buffer").Buffer)
20892 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20893 (function (Buffer){
20895 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20896 * in FIPS PUB
180-
1
20897 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20898 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20899 * Distributed under the BSD License
20900 * See http://pajhome.org.uk/crypt/md5 for details.
20903 var inherits = require('inherits')
20904 var Hash = require('./hash')
20907 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20910 var W = new Array(
80)
20916 Hash.call(this,
64,
56)
20919 inherits(Sha1, Hash)
20921 Sha1.prototype.init = function () {
20922 this._a =
0x67452301
20923 this._b =
0xefcdab89
20924 this._c =
0x98badcfe
20925 this._d =
0x10325476
20926 this._e =
0xc3d2e1f0
20931 function rotl1 (num) {
20932 return (num <<
1) | (num
>>> 31)
20935 function rotl5 (num) {
20936 return (num <<
5) | (num
>>> 27)
20939 function rotl30 (num) {
20940 return (num <<
30) | (num
>>> 2)
20943 function ft (s, b, c, d) {
20944 if (s ===
0) return (b & c) | ((~b) & d)
20945 if (s ===
2) return (b & c) | (b & d) | (c & d)
20949 Sha1.prototype._update = function (M) {
20952 var a = this._a |
0
20953 var b = this._b |
0
20954 var c = this._c |
0
20955 var d = this._d |
0
20956 var e = this._e |
0
20958 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20959 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20961 for (var j =
0; j <
80; ++j) {
20963 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20972 this._a = (a + this._a) |
0
20973 this._b = (b + this._b) |
0
20974 this._c = (c + this._c) |
0
20975 this._d = (d + this._d) |
0
20976 this._e = (e + this._e) |
0
20979 Sha1.prototype._hash = function () {
20980 var H = new Buffer(
20)
20982 H.writeInt32BE(this._a |
0,
0)
20983 H.writeInt32BE(this._b |
0,
4)
20984 H.writeInt32BE(this._c |
0,
8)
20985 H.writeInt32BE(this._d |
0,
12)
20986 H.writeInt32BE(this._e |
0,
16)
20991 module.exports = Sha1
20993 }).call(this,require(
"buffer").Buffer)
20994 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
20995 (function (Buffer){
20997 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
20999 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21000 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21004 var inherits = require('inherits')
21005 var Sha256 = require('./sha256')
21006 var Hash = require('./hash')
21008 var W = new Array(
64)
21010 function Sha224 () {
21013 this._w = W // new Array(
64)
21015 Hash.call(this,
64,
56)
21018 inherits(Sha224, Sha256)
21020 Sha224.prototype.init = function () {
21021 this._a =
0xc1059ed8
21022 this._b =
0x367cd507
21023 this._c =
0x3070dd17
21024 this._d =
0xf70e5939
21025 this._e =
0xffc00b31
21026 this._f =
0x68581511
21027 this._g =
0x64f98fa7
21028 this._h =
0xbefa4fa4
21033 Sha224.prototype._hash = function () {
21034 var H = new Buffer(
28)
21036 H.writeInt32BE(this._a,
0)
21037 H.writeInt32BE(this._b,
4)
21038 H.writeInt32BE(this._c,
8)
21039 H.writeInt32BE(this._d,
12)
21040 H.writeInt32BE(this._e,
16)
21041 H.writeInt32BE(this._f,
20)
21042 H.writeInt32BE(this._g,
24)
21047 module.exports = Sha224
21049 }).call(this,require(
"buffer").Buffer)
21050 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21051 (function (Buffer){
21053 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21055 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21056 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21060 var inherits = require('inherits')
21061 var Hash = require('./hash')
21064 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21065 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21066 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21067 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21068 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21069 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21070 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21071 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21072 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21073 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21074 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21075 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21076 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21077 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21078 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21079 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21082 var W = new Array(
64)
21084 function Sha256 () {
21087 this._w = W // new Array(
64)
21089 Hash.call(this,
64,
56)
21092 inherits(Sha256, Hash)
21094 Sha256.prototype.init = function () {
21095 this._a =
0x6a09e667
21096 this._b =
0xbb67ae85
21097 this._c =
0x3c6ef372
21098 this._d =
0xa54ff53a
21099 this._e =
0x510e527f
21100 this._f =
0x9b05688c
21101 this._g =
0x1f83d9ab
21102 this._h =
0x5be0cd19
21107 function ch (x, y, z) {
21108 return z ^ (x & (y ^ z))
21111 function maj (x, y, z) {
21112 return (x & y) | (z & (x | y))
21115 function sigma0 (x) {
21116 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21119 function sigma1 (x) {
21120 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21123 function gamma0 (x) {
21124 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21127 function gamma1 (x) {
21128 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21131 Sha256.prototype._update = function (M) {
21134 var a = this._a |
0
21135 var b = this._b |
0
21136 var c = this._c |
0
21137 var d = this._d |
0
21138 var e = this._e |
0
21139 var f = this._f |
0
21140 var g = this._g |
0
21141 var h = this._h |
0
21143 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21144 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21146 for (var j =
0; j <
64; ++j) {
21147 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21148 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21160 this._a = (a + this._a) |
0
21161 this._b = (b + this._b) |
0
21162 this._c = (c + this._c) |
0
21163 this._d = (d + this._d) |
0
21164 this._e = (e + this._e) |
0
21165 this._f = (f + this._f) |
0
21166 this._g = (g + this._g) |
0
21167 this._h = (h + this._h) |
0
21170 Sha256.prototype._hash = function () {
21171 var H = new Buffer(
32)
21173 H.writeInt32BE(this._a,
0)
21174 H.writeInt32BE(this._b,
4)
21175 H.writeInt32BE(this._c,
8)
21176 H.writeInt32BE(this._d,
12)
21177 H.writeInt32BE(this._e,
16)
21178 H.writeInt32BE(this._f,
20)
21179 H.writeInt32BE(this._g,
24)
21180 H.writeInt32BE(this._h,
28)
21185 module.exports = Sha256
21187 }).call(this,require(
"buffer").Buffer)
21188 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21189 (function (Buffer){
21190 var inherits = require('inherits')
21191 var SHA512 = require('./sha512')
21192 var Hash = require('./hash')
21194 var W = new Array(
160)
21196 function Sha384 () {
21200 Hash.call(this,
128,
112)
21203 inherits(Sha384, SHA512)
21205 Sha384.prototype.init = function () {
21206 this._ah =
0xcbbb9d5d
21207 this._bh =
0x629a292a
21208 this._ch =
0x9159015a
21209 this._dh =
0x152fecd8
21210 this._eh =
0x67332667
21211 this._fh =
0x8eb44a87
21212 this._gh =
0xdb0c2e0d
21213 this._hh =
0x47b5481d
21215 this._al =
0xc1059ed8
21216 this._bl =
0x367cd507
21217 this._cl =
0x3070dd17
21218 this._dl =
0xf70e5939
21219 this._el =
0xffc00b31
21220 this._fl =
0x68581511
21221 this._gl =
0x64f98fa7
21222 this._hl =
0xbefa4fa4
21227 Sha384.prototype._hash = function () {
21228 var H = new Buffer(
48)
21230 function writeInt64BE (h, l, offset) {
21231 H.writeInt32BE(h, offset)
21232 H.writeInt32BE(l, offset +
4)
21235 writeInt64BE(this._ah, this._al,
0)
21236 writeInt64BE(this._bh, this._bl,
8)
21237 writeInt64BE(this._ch, this._cl,
16)
21238 writeInt64BE(this._dh, this._dl,
24)
21239 writeInt64BE(this._eh, this._el,
32)
21240 writeInt64BE(this._fh, this._fl,
40)
21245 module.exports = Sha384
21247 }).call(this,require(
"buffer").Buffer)
21248 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21249 (function (Buffer){
21250 var inherits = require('inherits')
21251 var Hash = require('./hash')
21254 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21255 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21256 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21257 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21258 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21259 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21260 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21261 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21262 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21263 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21264 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21265 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21266 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21267 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21268 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21269 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21270 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21271 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21272 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21273 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21274 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21275 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21276 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21277 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21278 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21279 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21280 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21281 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21282 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21283 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21284 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21285 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21286 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21287 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21288 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21289 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21290 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21291 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21292 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21293 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21296 var W = new Array(
160)
21298 function Sha512 () {
21302 Hash.call(this,
128,
112)
21305 inherits(Sha512, Hash)
21307 Sha512.prototype.init = function () {
21308 this._ah =
0x6a09e667
21309 this._bh =
0xbb67ae85
21310 this._ch =
0x3c6ef372
21311 this._dh =
0xa54ff53a
21312 this._eh =
0x510e527f
21313 this._fh =
0x9b05688c
21314 this._gh =
0x1f83d9ab
21315 this._hh =
0x5be0cd19
21317 this._al =
0xf3bcc908
21318 this._bl =
0x84caa73b
21319 this._cl =
0xfe94f82b
21320 this._dl =
0x5f1d36f1
21321 this._el =
0xade682d1
21322 this._fl =
0x2b3e6c1f
21323 this._gl =
0xfb41bd6b
21324 this._hl =
0x137e2179
21329 function Ch (x, y, z) {
21330 return z ^ (x & (y ^ z))
21333 function maj (x, y, z) {
21334 return (x & y) | (z & (x | y))
21337 function sigma0 (x, xl) {
21338 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21341 function sigma1 (x, xl) {
21342 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21345 function Gamma0 (x, xl) {
21346 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21349 function Gamma0l (x, xl) {
21350 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21353 function Gamma1 (x, xl) {
21354 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21357 function Gamma1l (x, xl) {
21358 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21361 function getCarry (a, b) {
21362 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21365 Sha512.prototype._update = function (M) {
21368 var ah = this._ah |
0
21369 var bh = this._bh |
0
21370 var ch = this._ch |
0
21371 var dh = this._dh |
0
21372 var eh = this._eh |
0
21373 var fh = this._fh |
0
21374 var gh = this._gh |
0
21375 var hh = this._hh |
0
21377 var al = this._al |
0
21378 var bl = this._bl |
0
21379 var cl = this._cl |
0
21380 var dl = this._dl |
0
21381 var el = this._el |
0
21382 var fl = this._fl |
0
21383 var gl = this._gl |
0
21384 var hl = this._hl |
0
21386 for (var i =
0; i <
32; i +=
2) {
21387 W[i] = M.readInt32BE(i *
4)
21388 W[i +
1] = M.readInt32BE(i *
4 +
4)
21390 for (; i <
160; i +=
2) {
21391 var xh = W[i -
15 *
2]
21392 var xl = W[i -
15 *
2 +
1]
21393 var gamma0 = Gamma0(xh, xl)
21394 var gamma0l = Gamma0l(xl, xh)
21397 xl = W[i -
2 *
2 +
1]
21398 var gamma1 = Gamma1(xh, xl)
21399 var gamma1l = Gamma1l(xl, xh)
21401 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21402 var Wi7h = W[i -
7 *
2]
21403 var Wi7l = W[i -
7 *
2 +
1]
21405 var Wi16h = W[i -
16 *
2]
21406 var Wi16l = W[i -
16 *
2 +
1]
21408 var Wil = (gamma0l + Wi7l) |
0
21409 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21410 Wil = (Wil + gamma1l) |
0
21411 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21412 Wil = (Wil + Wi16l) |
0
21413 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21419 for (var j =
0; j <
160; j +=
2) {
21423 var majh = maj(ah, bh, ch)
21424 var majl = maj(al, bl, cl)
21426 var sigma0h = sigma0(ah, al)
21427 var sigma0l = sigma0(al, ah)
21428 var sigma1h = sigma1(eh, el)
21429 var sigma1l = sigma1(el, eh)
21431 // t1 = h + sigma1 + ch + K[j] + W[j]
21435 var chh = Ch(eh, fh, gh)
21436 var chl = Ch(el, fl, gl)
21438 var t1l = (hl + sigma1l) |
0
21439 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21440 t1l = (t1l + chl) |
0
21441 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21442 t1l = (t1l + Kil) |
0
21443 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21444 t1l = (t1l + Wil) |
0
21445 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21447 // t2 = sigma0 + maj
21448 var t2l = (sigma0l + majl) |
0
21449 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21457 el = (dl + t1l) |
0
21458 eh = (dh + t1h + getCarry(el, dl)) |
0
21465 al = (t1l + t2l) |
0
21466 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21469 this._al = (this._al + al) |
0
21470 this._bl = (this._bl + bl) |
0
21471 this._cl = (this._cl + cl) |
0
21472 this._dl = (this._dl + dl) |
0
21473 this._el = (this._el + el) |
0
21474 this._fl = (this._fl + fl) |
0
21475 this._gl = (this._gl + gl) |
0
21476 this._hl = (this._hl + hl) |
0
21478 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21479 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21480 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21481 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21482 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21483 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21484 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21485 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21488 Sha512.prototype._hash = function () {
21489 var H = new Buffer(
64)
21491 function writeInt64BE (h, l, offset) {
21492 H.writeInt32BE(h, offset)
21493 H.writeInt32BE(l, offset +
4)
21496 writeInt64BE(this._ah, this._al,
0)
21497 writeInt64BE(this._bh, this._bl,
8)
21498 writeInt64BE(this._ch, this._cl,
16)
21499 writeInt64BE(this._dh, this._dl,
24)
21500 writeInt64BE(this._eh, this._el,
32)
21501 writeInt64BE(this._fh, this._fl,
40)
21502 writeInt64BE(this._gh, this._gl,
48)
21503 writeInt64BE(this._hh, this._hl,
56)
21508 module.exports = Sha512
21510 }).call(this,require(
"buffer").Buffer)
21511 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21512 var inherits = require('inherits')
21513 var native = require('./native')
21515 function TfTypeError (type, value, valueTypeName) {
21516 this.__error = Error.call(this)
21518 this.__value = value
21519 this.__valueTypeName = valueTypeName
21522 Object.defineProperty(this, 'message', {
21525 if (message) return message
21527 valueTypeName = valueTypeName || getValueTypeName(value)
21528 message = tfErrorString(type, value, valueTypeName)
21535 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21536 this.__error = error || Error.call(this)
21537 this.__label = label
21538 this.__property = property
21540 this.__value = value
21541 this.__valueTypeName = valueTypeName
21544 Object.defineProperty(this, 'message', {
21547 if (message) return message
21549 valueTypeName = valueTypeName || getValueTypeName(value)
21550 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21552 message = 'Unexpected property
"' + property + '"'
21560 // inherit from Error, assign stack
21561 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21562 inherits(tfErrorType, Error)
21563 Object.defineProperty(tfErrorType, 'stack', {
21564 get: function () { return this.__error.stack }
21568 function tfCustomError (expected, actual) {
21569 return new TfTypeError(expected, {}, actual)
21572 function tfSubError (e, property, label) {
21574 if (e instanceof TfPropertyTypeError) {
21575 property = property + '.' + e.__property
21578 return new TfPropertyTypeError(
21579 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21584 if (e instanceof TfTypeError) {
21585 return new TfPropertyTypeError(
21586 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21593 function getTypeName (fn) {
21594 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21597 function getValueTypeName (value) {
21598 return native.Nil(value) ? '' : getTypeName(value.constructor)
21601 function getValue (value) {
21602 if (native.Function(value)) return ''
21603 if (native.String(value)) return JSON.stringify(value)
21604 if (value && native.Object(value)) return ''
21608 function tfJSON (type) {
21609 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21610 if (native.Array(type)) return 'Array'
21611 if (type && native.Object(type)) return 'Object'
21613 return type !== undefined ? type : ''
21616 function tfErrorString (type, value, valueTypeName) {
21617 var valueJson = getValue(value)
21619 return 'Expected ' + tfJSON(type) + ', got' +
21620 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21621 (valueJson !== '' ? ' ' + valueJson : '')
21624 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21625 var description = '
" of type '
21626 if (label === 'key') description = '" with key type '
21628 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21632 TfTypeError: TfTypeError,
21633 TfPropertyTypeError: TfPropertyTypeError,
21634 tfCustomError: tfCustomError,
21635 tfSubError: tfSubError,
21637 getValueTypeName: getValueTypeName
21640 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21641 (function (Buffer){
21642 var NATIVE = require('./native')
21643 var ERRORS = require('./errors')
21645 function _Buffer (value) {
21646 return Buffer.isBuffer(value)
21649 function Hex (value) {
21650 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21653 function _LengthN (type, length) {
21654 var name = type.toJSON()
21656 function Length (value) {
21657 if (!type(value)) return false
21658 if (value.length === length) return true
21660 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21662 Length.toJSON = function () { return name }
21667 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21668 var _BufferN = _LengthN.bind(null, _Buffer)
21669 var _HexN = _LengthN.bind(null, Hex)
21671 var UINT53_MAX = Math.pow(2, 53) - 1
21673 function Finite (value) {
21674 return typeof value === 'number' && isFinite(value)
21676 function Int8 (value) { return ((value << 24) >> 24) === value }
21677 function Int16 (value) { return ((value << 16) >> 16) === value }
21678 function Int32 (value) { return (value | 0) === value }
21679 function UInt8 (value) { return (value & 0xff) === value }
21680 function UInt16 (value) { return (value & 0xffff) === value }
21681 function UInt32 (value) { return (value >>> 0) === value }
21682 function UInt53 (value) {
21683 return typeof value === 'number' &&
21685 value <= UINT53_MAX &&
21686 Math.floor(value) === value
21705 for (var typeName in types) {
21706 types[typeName].toJSON = function (t) {
21708 }.bind(null, typeName)
21711 module.exports = types
21713 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21714 },{"../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
":9,"./errors
":107,"./native
":110}],109:[function(require,module,exports){
21715 var ERRORS = require('./errors')
21716 var NATIVE = require('./native')
21719 var tfJSON = ERRORS.tfJSON
21720 var TfTypeError = ERRORS.TfTypeError
21721 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21722 var tfSubError = ERRORS.tfSubError
21723 var getValueTypeName = ERRORS.getValueTypeName
21726 arrayOf: function arrayOf (type) {
21727 type = compile(type)
21729 function _arrayOf (array, strict) {
21730 if (!NATIVE.Array(array)) return false
21732 return array.every(function (value, i) {
21734 return typeforce(type, value, strict)
21736 throw tfSubError(e, i)
21740 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21745 maybe: function maybe (type) {
21746 type = compile(type)
21748 function _maybe (value, strict) {
21749 return NATIVE.Nil(value) || type(value, strict, maybe)
21751 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21756 map: function map (propertyType, propertyKeyType) {
21757 propertyType = compile(propertyType)
21758 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21760 function _map (value, strict) {
21761 if (!NATIVE.Object(value, strict)) return false
21762 if (NATIVE.Nil(value, strict)) return false
21764 for (var propertyName in value) {
21766 if (propertyKeyType) {
21767 typeforce(propertyKeyType, propertyName, strict)
21770 throw tfSubError(e, propertyName, 'key')
21774 var propertyValue = value[propertyName]
21775 typeforce(propertyType, propertyValue, strict)
21777 throw tfSubError(e, propertyName)
21784 if (propertyKeyType) {
21785 _map.toJSON = function () {
21786 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21789 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21795 object: function object (uncompiled) {
21798 for (var typePropertyName in uncompiled) {
21799 type[typePropertyName] = compile(uncompiled[typePropertyName])
21802 function _object (value, strict) {
21803 if (!NATIVE.Object(value)) return false
21804 if (NATIVE.Nil(value)) return false
21809 for (propertyName in type) {
21810 var propertyType = type[propertyName]
21811 var propertyValue = value[propertyName]
21813 typeforce(propertyType, propertyValue, strict)
21816 throw tfSubError(e, propertyName)
21820 for (propertyName in value) {
21821 if (type[propertyName]) continue
21823 throw new TfPropertyTypeError(undefined, propertyName)
21829 _object.toJSON = function () { return tfJSON(type) }
21834 oneOf: function oneOf () {
21835 var types = [].slice.call(arguments).map(compile)
21837 function _oneOf (value, strict) {
21838 return types.some(function (type) {
21840 return typeforce(type, value, strict)
21846 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21851 quacksLike: function quacksLike (type) {
21852 function _quacksLike (value) {
21853 return type === getValueTypeName(value)
21855 _quacksLike.toJSON = function () { return type }
21860 tuple: function tuple () {
21861 var types = [].slice.call(arguments).map(compile)
21863 function _tuple (values, strict) {
21864 return types.every(function (type, i) {
21866 return typeforce(type, values[i], strict)
21868 throw tfSubError(e, i)
21870 }) && (!strict || values.length === arguments.length)
21872 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21877 value: function value (expected) {
21878 function _value (actual) {
21879 return actual === expected
21881 _value.toJSON = function () { return expected }
21887 function compile (type) {
21888 if (NATIVE.String(type)) {
21889 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21891 return NATIVE[type] || TYPES.quacksLike(type)
21892 } else if (type && NATIVE.Object(type)) {
21893 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21895 return TYPES.object(type)
21896 } else if (NATIVE.Function(type)) {
21900 return TYPES.value(type)
21903 function typeforce (type, value, strict, surrogate) {
21904 if (NATIVE.Function(type)) {
21905 if (type(value, strict)) return true
21907 throw new TfTypeError(surrogate || type, value)
21911 return typeforce(compile(type), value, strict)
21914 // assign types to typeforce function
21915 for (var typeName in NATIVE) {
21916 typeforce[typeName] = NATIVE[typeName]
21919 for (typeName in TYPES) {
21920 typeforce[typeName] = TYPES[typeName]
21923 var EXTRA = require('./extra')
21924 for (typeName in EXTRA) {
21925 typeforce[typeName] = EXTRA[typeName]
21929 function __async (type, value, strict, callback) {
21930 // default to falsy strict if using shorthand overload
21931 if (typeof strict === 'function') return __async(type, value, false, strict)
21934 typeforce(type, value, strict)
21942 typeforce.async = __async
21943 typeforce.compile = compile
21944 typeforce.TfTypeError = TfTypeError
21945 typeforce.TfPropertyTypeError = TfPropertyTypeError
21947 module.exports = typeforce
21949 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21951 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21952 Boolean: function (value) { return typeof value === 'boolean' },
21953 Function: function (value) { return typeof value === 'function' },
21954 Nil: function (value) { return value === undefined || value === null },
21955 Number: function (value) { return typeof value === 'number' },
21956 Object: function (value) { return typeof value === 'object' },
21957 String: function (value) { return typeof value === 'string' },
21958 '': function () { return true }
21962 types.Null = types.Nil
21964 for (var typeName in types) {
21965 types[typeName].toJSON = function (t) {
21967 }.bind(null, typeName)
21970 module.exports = types
21972 },{}],111:[function(require,module,exports){
21973 (function (Buffer){
21976 // Number.MAX_SAFE_INTEGER
21977 var MAX_SAFE_INTEGER = 9007199254740991
21979 function checkUInt53 (n) {
21980 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
21983 function encode (number, buffer, offset) {
21984 checkUInt53(number)
21986 if (!buffer) buffer = new Buffer(encodingLength(number))
21987 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
21988 if (!offset) offset = 0
21991 if (number < 0xfd) {
21992 buffer.writeUInt8(number, offset)
21996 } else if (number <= 0xffff) {
21997 buffer.writeUInt8(0xfd, offset)
21998 buffer.writeUInt16LE(number, offset + 1)
22002 } else if (number <= 0xffffffff) {
22003 buffer.writeUInt8(0xfe, offset)
22004 buffer.writeUInt32LE(number, offset + 1)
22009 buffer.writeUInt8(0xff, offset)
22010 buffer.writeUInt32LE(number >>> 0, offset + 1)
22011 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22018 function decode (buffer, offset) {
22019 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22020 if (!offset) offset = 0
22022 var first = buffer.readUInt8(offset)
22025 if (first < 0xfd) {
22030 } else if (first === 0xfd) {
22032 return buffer.readUInt16LE(offset + 1)
22035 } else if (first === 0xfe) {
22037 return buffer.readUInt32LE(offset + 1)
22042 var lo = buffer.readUInt32LE(offset + 1)
22043 var hi = buffer.readUInt32LE(offset + 5)
22044 var number = hi * 0x0100000000 + lo
22045 checkUInt53(number)
22051 function encodingLength (number) {
22052 checkUInt53(number)
22056 : number <= 0xffff ? 3
22057 : number <= 0xffffffff ? 5
22062 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22064 }).call(this,require("buffer
").Buffer)
22065 },{"buffer
":4}],112:[function(require,module,exports){
22066 (function (Buffer){
22067 var bs58check = require('bs58check')
22069 function decodeRaw (buffer, version) {
22070 // check version only if defined
22071 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22074 if (buffer.length === 33) {
22076 version: buffer[0],
22077 privateKey: buffer.slice(1, 33),
22083 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22085 // invalid compression flag
22086 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22089 version: buffer[0],
22090 privateKey: buffer.slice(1, 33),
22095 function encodeRaw (version, privateKey, compressed) {
22096 var result = new Buffer(compressed ? 34 : 33)
22098 result.writeUInt8(version, 0)
22099 privateKey.copy(result, 1)
22108 function decode (string, version) {
22109 return decodeRaw(bs58check.decode(string), version)
22112 function encode (version, privateKey, compressed) {
22113 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22115 return bs58check.encode(
22118 version.privateKey,
22126 decodeRaw: decodeRaw,
22128 encodeRaw: encodeRaw
22131 }).call(this,require("buffer
").Buffer)
22132 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22135 <script>bitcoinjs.bitcoin.networks.shadow = {
22136 messagePrefix: "unused",
22138 public:
0xEE80286A,
22139 private:
0xEE8031E8
22146 bitcoinjs.bitcoin.networks.shadowtn = {
22147 messagePrefix: "unused",
22149 public:
0x76C0FDFB,
22150 private:
0x76C1077A
22157 bitcoinjs.bitcoin.networks.clam = {
22158 messagePrefix: "unused",
22160 public:
0xa8c26d64,
22161 private:
0xa8c17826
22164 scriptHash:
0x00, // TODO set this correctly
22168 bitcoinjs.bitcoin.networks.crown = {
22169 messagePrefix: "unused",
22171 public:
0x0488b21e,
22172 private:
0x0488ade4
22179 bitcoinjs.bitcoin.networks.dash = {
22180 messagePrefix: "unused",
22182 public:
0x0488b21e,
22183 private:
0x0488ade4
22190 bitcoinjs.bitcoin.networks.maza = {
22191 messagePrefix: "unused",
22193 public:
0x0488b21e,
22194 private:
0x0488ade4
22201 bitcoinjs.bitcoin.networks.dashtn = {
22202 messagePrefix: "unused",
22204 public:
0x043587cf,
22205 private:
0x04358394
22212 bitcoinjs.bitcoin.networks.game = {
22213 messagePrefix: "unused",
22215 public:
0x0488b21e,
22216 private:
0x0488ade4
22223 bitcoinjs.bitcoin.networks.namecoin = {
22224 messagePrefix: "unused",
22226 public:
0x0488b21e,
22227 private:
0x0488ade4
22230 scriptHash:
0x00, // TODO set this correctly
22234 bitcoinjs.bitcoin.networks.peercoin = {
22235 messagePrefix: "unused",
22237 public:
0x0488b21e,
22238 private:
0x0488ade4
22241 scriptHash:
0x00, // TODO set this correctly
22245 bitcoinjs.bitcoin.networks.slimcoin = {
22246 messagePrefix: "unused",
22248 public:
0xef6adf10,
22249 private:
0xef69ea80
22256 bitcoinjs.bitcoin.networks.slimcointn = {
22257 messagePrefix: "unused",
22259 public:
0x043587CF,
22260 private:
0x04358394
22267 bitcoinjs.bitcoin.networks.dogecoin = {
22268 messagePrefix: '\x19Dogecoin Signed Message:\n',
22270 public:
0x02facafd,
22271 private:
0x02fac398
22278 bitcoinjs.bitcoin.networks.viacoin = {
22279 messagePrefix: '\x18Viacoin Signed Message:\n',
22281 public:
0x0488b21e,
22282 private:
0x0488ade4
22289 bitcoinjs.bitcoin.networks.viacointestnet = {
22290 messagePrefix: '\x18Viacoin Signed Message:\n',
22292 public:
0x043587cf,
22293 private:
0x04358394
22300 bitcoinjs.bitcoin.networks.gamerscoin = {
22301 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22303 public:
0x019da462,
22304 private:
0x019d9cfe
22311 bitcoinjs.bitcoin.networks.jumbucks = {
22312 messagePrefix: '\x19Jumbucks Signed Message:\n',
22314 public:
0x037a689a,
22315 private:
0x037a6460
22322 bitcoinjs.bitcoin.networks.zetacoin = {
22323 messagePrefix: '\x18Zetacoin Signed Message:\n',
22325 public:
0x0488b21e,
22326 private:
0x0488ade4
22333 bitcoinjs.bitcoin.networks.myriadcoin = {
22334 messagePrefix: "unused",
22336 public:
0x0488b21e,
22337 private:
0x0488ade4
22340 scriptHash:
0x00, // TODO set this correctly
22344 bitcoinjs.bitcoin.networks.pivx = {
22345 messagePrefix: "unused",
22347 public:
0x022d2533,
22348 private:
0x0221312b
22355 bitcoinjs.bitcoin.networks.pivxtestnet = {
22356 messagePrefix: "unused",
22358 public:
0x3a8061a0,
22359 private:
0x3a805837
22366 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ethUtil = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
22367 (function (global){
22370 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22371 // original notice:
22374 * The buffer module from node.js, for the browser.
22376 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22379 function compare(a, b) {
22387 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22388 if (a[i] !== b[i]) {
22403 function isBuffer(b) {
22404 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22405 return global.Buffer.isBuffer(b);
22407 return !!(b != null && b._isBuffer);
22410 // based on node assert, original notice:
22412 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22414 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22416 // Originally from narwhal.js (http://narwhaljs.org)
22417 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22419 // Permission is hereby granted, free of charge, to any person obtaining a copy
22420 // of this software and associated documentation files (the 'Software'), to
22421 // deal in the Software without restriction, including without limitation the
22422 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22423 // sell copies of the Software, and to permit persons to whom the Software is
22424 // furnished to do so, subject to the following conditions:
22426 // The above copyright notice and this permission notice shall be included in
22427 // all copies or substantial portions of the Software.
22429 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22430 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22431 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22432 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22433 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22434 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22436 var util = require('util/');
22437 var hasOwn = Object.prototype.hasOwnProperty;
22438 var pSlice = Array.prototype.slice;
22439 var functionsHaveNames = (function () {
22440 return function foo() {}.name === 'foo';
22442 function pToString (obj) {
22443 return Object.prototype.toString.call(obj);
22445 function isView(arrbuf) {
22446 if (isBuffer(arrbuf)) {
22449 if (typeof global.ArrayBuffer !== 'function') {
22452 if (typeof ArrayBuffer.isView === 'function') {
22453 return ArrayBuffer.isView(arrbuf);
22458 if (arrbuf instanceof DataView) {
22461 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22466 //
1. The assert module provides functions that throw
22467 // AssertionError's when particular conditions are not met. The
22468 // assert module must conform to the following interface.
22470 var assert = module.exports = ok;
22472 //
2. The AssertionError is defined in assert.
22473 // new assert.AssertionError({ message: message,
22475 // expected: expected })
22477 var regex = /\s*function\s+([^\(\s]*)\s*/;
22478 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22479 function getName(func) {
22480 if (!util.isFunction(func)) {
22483 if (functionsHaveNames) {
22486 var str = func.toString();
22487 var match = str.match(regex);
22488 return match && match[
1];
22490 assert.AssertionError = function AssertionError(options) {
22491 this.name = 'AssertionError';
22492 this.actual = options.actual;
22493 this.expected = options.expected;
22494 this.operator = options.operator;
22495 if (options.message) {
22496 this.message = options.message;
22497 this.generatedMessage = false;
22499 this.message = getMessage(this);
22500 this.generatedMessage = true;
22502 var stackStartFunction = options.stackStartFunction || fail;
22503 if (Error.captureStackTrace) {
22504 Error.captureStackTrace(this, stackStartFunction);
22506 // non v8 browsers so we can have a stacktrace
22507 var err = new Error();
22509 var out = err.stack;
22511 // try to strip useless frames
22512 var fn_name = getName(stackStartFunction);
22513 var idx = out.indexOf('\n' + fn_name);
22515 // once we have located the function frame
22516 // we need to strip out everything before it (and its line)
22517 var next_line = out.indexOf('\n', idx +
1);
22518 out = out.substring(next_line +
1);
22526 // assert.AssertionError instanceof Error
22527 util.inherits(assert.AssertionError, Error);
22529 function truncate(s, n) {
22530 if (typeof s === 'string') {
22531 return s.length < n ? s : s.slice(
0, n);
22536 function inspect(something) {
22537 if (functionsHaveNames || !util.isFunction(something)) {
22538 return util.inspect(something);
22540 var rawname = getName(something);
22541 var name = rawname ? ': ' + rawname : '';
22542 return '[Function' + name + ']';
22544 function getMessage(self) {
22545 return truncate(inspect(self.actual),
128) + ' ' +
22546 self.operator + ' ' +
22547 truncate(inspect(self.expected),
128);
22550 // At present only the three keys mentioned above are used and
22551 // understood by the spec. Implementations or sub modules can pass
22552 // other keys to the AssertionError's constructor - they will be
22555 //
3. All of the following functions must throw an AssertionError
22556 // when a corresponding condition is not met, with a message that
22557 // may be undefined if not provided. All assertion methods provide
22558 // both the actual and expected values to the assertion error for
22559 // display purposes.
22561 function fail(actual, expected, message, operator, stackStartFunction) {
22562 throw new assert.AssertionError({
22565 expected: expected,
22566 operator: operator,
22567 stackStartFunction: stackStartFunction
22571 // EXTENSION! allows for well behaved errors defined elsewhere.
22572 assert.fail = fail;
22574 //
4. Pure assertion tests whether a value is truthy, as determined
22576 // assert.ok(guard, message_opt);
22577 // This statement is equivalent to assert.equal(true, !!guard,
22578 // message_opt);. To test strictly for the value true, use
22579 // assert.strictEqual(true, guard, message_opt);.
22581 function ok(value, message) {
22582 if (!value) fail(value, true, message, '==', assert.ok);
22586 //
5. The equality assertion tests shallow, coercive equality with
22588 // assert.equal(actual, expected, message_opt);
22590 assert.equal = function equal(actual, expected, message) {
22591 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22594 //
6. The non-equality assertion tests for whether two objects are not equal
22595 // with != assert.notEqual(actual, expected, message_opt);
22597 assert.notEqual = function notEqual(actual, expected, message) {
22598 if (actual == expected) {
22599 fail(actual, expected, message, '!=', assert.notEqual);
22603 //
7. The equivalence assertion tests a deep equality relation.
22604 // assert.deepEqual(actual, expected, message_opt);
22606 assert.deepEqual = function deepEqual(actual, expected, message) {
22607 if (!_deepEqual(actual, expected, false)) {
22608 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22612 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22613 if (!_deepEqual(actual, expected, true)) {
22614 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22618 function _deepEqual(actual, expected, strict, memos) {
22619 //
7.1. All identical values are equivalent, as determined by ===.
22620 if (actual === expected) {
22622 } else if (isBuffer(actual) && isBuffer(expected)) {
22623 return compare(actual, expected) ===
0;
22625 //
7.2. If the expected value is a Date object, the actual value is
22626 // equivalent if it is also a Date object that refers to the same time.
22627 } else if (util.isDate(actual) && util.isDate(expected)) {
22628 return actual.getTime() === expected.getTime();
22630 //
7.3 If the expected value is a RegExp object, the actual value is
22631 // equivalent if it is also a RegExp object with the same source and
22632 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22633 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22634 return actual.source === expected.source &&
22635 actual.global === expected.global &&
22636 actual.multiline === expected.multiline &&
22637 actual.lastIndex === expected.lastIndex &&
22638 actual.ignoreCase === expected.ignoreCase;
22640 //
7.4. Other pairs that do not both pass typeof value == 'object',
22641 // equivalence is determined by ==.
22642 } else if ((actual === null || typeof actual !== 'object') &&
22643 (expected === null || typeof expected !== 'object')) {
22644 return strict ? actual === expected : actual == expected;
22646 // If both values are instances of typed arrays, wrap their underlying
22647 // ArrayBuffers in a Buffer each to increase performance
22648 // This optimization requires the arrays to have the same type as checked by
22649 // Object.prototype.toString (aka pToString). Never perform binary
22650 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22651 // bit patterns are not identical.
22652 } else if (isView(actual) && isView(expected) &&
22653 pToString(actual) === pToString(expected) &&
22654 !(actual instanceof Float32Array ||
22655 actual instanceof Float64Array)) {
22656 return compare(new Uint8Array(actual.buffer),
22657 new Uint8Array(expected.buffer)) ===
0;
22659 //
7.5 For all other Object pairs, including Array objects, equivalence is
22660 // determined by having the same number of owned properties (as verified
22661 // with Object.prototype.hasOwnProperty.call), the same set of keys
22662 // (although not necessarily the same order), equivalent values for every
22663 // corresponding key, and an identical 'prototype' property. Note: this
22664 // accounts for both named and indexed properties on Arrays.
22665 } else if (isBuffer(actual) !== isBuffer(expected)) {
22668 memos = memos || {actual: [], expected: []};
22670 var actualIndex = memos.actual.indexOf(actual);
22671 if (actualIndex !== -
1) {
22672 if (actualIndex === memos.expected.indexOf(expected)) {
22677 memos.actual.push(actual);
22678 memos.expected.push(expected);
22680 return objEquiv(actual, expected, strict, memos);
22684 function isArguments(object) {
22685 return Object.prototype.toString.call(object) == '[object Arguments]';
22688 function objEquiv(a, b, strict, actualVisitedObjects) {
22689 if (a === null || a === undefined || b === null || b === undefined)
22691 // if one is a primitive, the other must be same
22692 if (util.isPrimitive(a) || util.isPrimitive(b))
22694 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22696 var aIsArgs = isArguments(a);
22697 var bIsArgs = isArguments(b);
22698 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22701 a = pSlice.call(a);
22702 b = pSlice.call(b);
22703 return _deepEqual(a, b, strict);
22705 var ka = objectKeys(a);
22706 var kb = objectKeys(b);
22708 // having the same number of owned properties (keys incorporates
22710 if (ka.length !== kb.length)
22712 //the same set of keys (although not necessarily the same order),
22715 //~~~cheap key test
22716 for (i = ka.length -
1; i
>=
0; i--) {
22717 if (ka[i] !== kb[i])
22720 //equivalent values for every corresponding key, and
22721 //~~~possibly expensive deep test
22722 for (i = ka.length -
1; i
>=
0; i--) {
22724 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22730 //
8. The non-equivalence assertion tests for any deep inequality.
22731 // assert.notDeepEqual(actual, expected, message_opt);
22733 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22734 if (_deepEqual(actual, expected, false)) {
22735 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22739 assert.notDeepStrictEqual = notDeepStrictEqual;
22740 function notDeepStrictEqual(actual, expected, message) {
22741 if (_deepEqual(actual, expected, true)) {
22742 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22747 //
9. The strict equality assertion tests strict equality, as determined by ===.
22748 // assert.strictEqual(actual, expected, message_opt);
22750 assert.strictEqual = function strictEqual(actual, expected, message) {
22751 if (actual !== expected) {
22752 fail(actual, expected, message, '===', assert.strictEqual);
22756 //
10. The strict non-equality assertion tests for strict inequality, as
22757 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22759 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22760 if (actual === expected) {
22761 fail(actual, expected, message, '!==', assert.notStrictEqual);
22765 function expectedException(actual, expected) {
22766 if (!actual || !expected) {
22770 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22771 return expected.test(actual);
22775 if (actual instanceof expected) {
22779 // Ignore. The instanceof check doesn't work for arrow functions.
22782 if (Error.isPrototypeOf(expected)) {
22786 return expected.call({}, actual) === true;
22789 function _tryBlock(block) {
22799 function _throws(shouldThrow, block, expected, message) {
22802 if (typeof block !== 'function') {
22803 throw new TypeError('"block" argument must be a function');
22806 if (typeof expected === 'string') {
22807 message = expected;
22811 actual = _tryBlock(block);
22813 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22814 (message ? ' ' + message : '.');
22816 if (shouldThrow && !actual) {
22817 fail(actual, expected, 'Missing expected exception' + message);
22820 var userProvidedMessage = typeof message === 'string';
22821 var isUnwantedException = !shouldThrow && util.isError(actual);
22822 var isUnexpectedException = !shouldThrow && actual && !expected;
22824 if ((isUnwantedException &&
22825 userProvidedMessage &&
22826 expectedException(actual, expected)) ||
22827 isUnexpectedException) {
22828 fail(actual, expected, 'Got unwanted exception' + message);
22831 if ((shouldThrow && actual && expected &&
22832 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22837 //
11. Expected to throw an error:
22838 // assert.throws(block, Error_opt, message_opt);
22840 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22841 _throws(true, block, error, message);
22844 // EXTENSION! This is annoying to write outside this module.
22845 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22846 _throws(false, block, error, message);
22849 assert.ifError = function(err) { if (err) throw err; };
22851 var objectKeys = Object.keys || function (obj) {
22853 for (var key in obj) {
22854 if (hasOwn.call(obj, key)) keys.push(key);
22859 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22860 },{"util/":
30}],
2:[function(require,module,exports){
22863 exports.byteLength = byteLength
22864 exports.toByteArray = toByteArray
22865 exports.fromByteArray = fromByteArray
22869 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22871 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22872 for (var i =
0, len = code.length; i < len; ++i) {
22873 lookup[i] = code[i]
22874 revLookup[code.charCodeAt(i)] = i
22877 revLookup['-'.charCodeAt(
0)] =
62
22878 revLookup['_'.charCodeAt(
0)] =
63
22880 function placeHoldersCount (b64) {
22881 var len = b64.length
22883 throw new Error('Invalid string. Length must be a multiple of
4')
22886 // the number of equal signs (place holders)
22887 // if there are two placeholders, than the two characters before it
22888 // represent one byte
22889 // if there is only one, then the three characters before it represent
2 bytes
22890 // this is just a cheap hack to not do indexOf twice
22891 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22894 function byteLength (b64) {
22895 // base64 is
4/
3 + up to two characters of the original data
22896 return b64.length *
3 /
4 - placeHoldersCount(b64)
22899 function toByteArray (b64) {
22900 var i, j, l, tmp, placeHolders, arr
22901 var len = b64.length
22902 placeHolders = placeHoldersCount(b64)
22904 arr = new Arr(len *
3 /
4 - placeHolders)
22906 // if there are placeholders, only get up to the last complete
4 chars
22907 l = placeHolders
> 0 ? len -
4 : len
22911 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22912 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22913 arr[L++] = (tmp
>> 16) &
0xFF
22914 arr[L++] = (tmp
>> 8) &
0xFF
22915 arr[L++] = tmp &
0xFF
22918 if (placeHolders ===
2) {
22919 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22920 arr[L++] = tmp &
0xFF
22921 } else if (placeHolders ===
1) {
22922 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22923 arr[L++] = (tmp
>> 8) &
0xFF
22924 arr[L++] = tmp &
0xFF
22930 function tripletToBase64 (num) {
22931 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22934 function encodeChunk (uint8, start, end) {
22937 for (var i = start; i < end; i +=
3) {
22938 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22939 output.push(tripletToBase64(tmp))
22941 return output.join('')
22944 function fromByteArray (uint8) {
22946 var len = uint8.length
22947 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22950 var maxChunkLength =
16383 // must be multiple of
3
22952 // go through the array every three bytes, we'll deal with trailing stuff later
22953 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22954 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22957 // pad the end with zeros, but make sure to not forget the extra bytes
22958 if (extraBytes ===
1) {
22959 tmp = uint8[len -
1]
22960 output += lookup[tmp
>> 2]
22961 output += lookup[(tmp <<
4) &
0x3F]
22963 } else if (extraBytes ===
2) {
22964 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
22965 output += lookup[tmp
>> 10]
22966 output += lookup[(tmp
>> 4) &
0x3F]
22967 output += lookup[(tmp <<
2) &
0x3F]
22973 return parts.join('')
22976 },{}],
3:[function(require,module,exports){
22978 },{}],
4:[function(require,module,exports){
22979 (function (global){
22982 var buffer = require('buffer');
22983 var Buffer = buffer.Buffer;
22984 var SlowBuffer = buffer.SlowBuffer;
22985 var MAX_LEN = buffer.kMaxLength ||
2147483647;
22986 exports.alloc = function alloc(size, fill, encoding) {
22987 if (typeof Buffer.alloc === 'function') {
22988 return Buffer.alloc(size, fill, encoding);
22990 if (typeof encoding === 'number') {
22991 throw new TypeError('encoding must not be number');
22993 if (typeof size !== 'number') {
22994 throw new TypeError('size must be a number');
22996 if (size
> MAX_LEN) {
22997 throw new RangeError('size is too large');
22999 var enc = encoding;
23001 if (_fill === undefined) {
23005 var buf = new Buffer(size);
23006 if (typeof _fill === 'string') {
23007 var fillBuf = new Buffer(_fill, enc);
23008 var flen = fillBuf.length;
23010 while (++i < size) {
23011 buf[i] = fillBuf[i % flen];
23018 exports.allocUnsafe = function allocUnsafe(size) {
23019 if (typeof Buffer.allocUnsafe === 'function') {
23020 return Buffer.allocUnsafe(size);
23022 if (typeof size !== 'number') {
23023 throw new TypeError('size must be a number');
23025 if (size
> MAX_LEN) {
23026 throw new RangeError('size is too large');
23028 return new Buffer(size);
23030 exports.from = function from(value, encodingOrOffset, length) {
23031 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23032 return Buffer.from(value, encodingOrOffset, length);
23034 if (typeof value === 'number') {
23035 throw new TypeError('"value" argument must not be a number');
23037 if (typeof value === 'string') {
23038 return new Buffer(value, encodingOrOffset);
23040 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23041 var offset = encodingOrOffset;
23042 if (arguments.length ===
1) {
23043 return new Buffer(value);
23045 if (typeof offset === 'undefined') {
23049 if (typeof len === 'undefined') {
23050 len = value.byteLength - offset;
23052 if (offset
>= value.byteLength) {
23053 throw new RangeError('\'offset\' is out of bounds');
23055 if (len
> value.byteLength - offset) {
23056 throw new RangeError('\'length\' is out of bounds');
23058 return new Buffer(value.slice(offset, offset + len));
23060 if (Buffer.isBuffer(value)) {
23061 var out = new Buffer(value.length);
23062 value.copy(out,
0,
0, value.length);
23066 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23067 return new Buffer(value);
23069 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23070 return new Buffer(value.data);
23074 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23076 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23077 if (typeof Buffer.allocUnsafeSlow === 'function') {
23078 return Buffer.allocUnsafeSlow(size);
23080 if (typeof size !== 'number') {
23081 throw new TypeError('size must be a number');
23083 if (size
>= MAX_LEN) {
23084 throw new RangeError('size is too large');
23086 return new SlowBuffer(size);
23089 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23090 },{"buffer":
5}],
5:[function(require,module,exports){
23092 * The buffer module from node.js, for the browser.
23094 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23097 /* eslint-disable no-proto */
23101 var base64 = require('base64-js')
23102 var ieee754 = require('ieee754')
23104 exports.Buffer = Buffer
23105 exports.SlowBuffer = SlowBuffer
23106 exports.INSPECT_MAX_BYTES =
50
23108 var K_MAX_LENGTH =
0x7fffffff
23109 exports.kMaxLength = K_MAX_LENGTH
23112 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23113 * === true Use Uint8Array implementation (fastest)
23114 * === false Print warning and recommend using `buffer` v4.x which has an Object
23115 * implementation (most compatible, even IE6)
23117 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23118 * Opera
11.6+, iOS
4.2+.
23120 * We report that the browser does not support typed arrays if the are not subclassable
23121 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23122 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23123 * for __proto__ and has a buggy typed array implementation.
23125 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23127 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23128 typeof console.error === 'function') {
23130 'This browser lacks typed array (Uint8Array) support which is required by ' +
23131 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23135 function typedArraySupport () {
23136 // Can typed array instances can be augmented?
23138 var arr = new Uint8Array(
1)
23139 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23140 return arr.foo() ===
42
23146 function createBuffer (length) {
23147 if (length
> K_MAX_LENGTH) {
23148 throw new RangeError('Invalid typed array length')
23150 // Return an augmented `Uint8Array` instance
23151 var buf = new Uint8Array(length)
23152 buf.__proto__ = Buffer.prototype
23157 * The Buffer constructor returns instances of `Uint8Array` that have their
23158 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23159 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23160 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23161 * returns a single octet.
23163 * The `Uint8Array` prototype remains unmodified.
23166 function Buffer (arg, encodingOrOffset, length) {
23168 if (typeof arg === 'number') {
23169 if (typeof encodingOrOffset === 'string') {
23171 'If encoding is specified then the first argument must be a string'
23174 return allocUnsafe(arg)
23176 return from(arg, encodingOrOffset, length)
23179 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23180 if (typeof Symbol !== 'undefined' && Symbol.species &&
23181 Buffer[Symbol.species] === Buffer) {
23182 Object.defineProperty(Buffer, Symbol.species, {
23184 configurable: true,
23190 Buffer.poolSize =
8192 // not used by this implementation
23192 function from (value, encodingOrOffset, length) {
23193 if (typeof value === 'number') {
23194 throw new TypeError('"value" argument must not be a number')
23197 if (value instanceof ArrayBuffer) {
23198 return fromArrayBuffer(value, encodingOrOffset, length)
23201 if (typeof value === 'string') {
23202 return fromString(value, encodingOrOffset)
23205 return fromObject(value)
23209 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23210 * if value is a number.
23211 * Buffer.from(str[, encoding])
23212 * Buffer.from(array)
23213 * Buffer.from(buffer)
23214 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23216 Buffer.from = function (value, encodingOrOffset, length) {
23217 return from(value, encodingOrOffset, length)
23220 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23221 // https://github.com/feross/buffer/pull/
148
23222 Buffer.prototype.__proto__ = Uint8Array.prototype
23223 Buffer.__proto__ = Uint8Array
23225 function assertSize (size) {
23226 if (typeof size !== 'number') {
23227 throw new TypeError('"size" argument must be a number')
23228 } else if (size <
0) {
23229 throw new RangeError('"size" argument must not be negative')
23233 function alloc (size, fill, encoding) {
23236 return createBuffer(size)
23238 if (fill !== undefined) {
23239 // Only pay attention to encoding if it's a string. This
23240 // prevents accidentally sending in a number that would
23241 // be interpretted as a start offset.
23242 return typeof encoding === 'string'
23243 ? createBuffer(size).fill(fill, encoding)
23244 : createBuffer(size).fill(fill)
23246 return createBuffer(size)
23250 * Creates a new filled Buffer instance.
23251 * alloc(size[, fill[, encoding]])
23253 Buffer.alloc = function (size, fill, encoding) {
23254 return alloc(size, fill, encoding)
23257 function allocUnsafe (size) {
23259 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23263 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23265 Buffer.allocUnsafe = function (size) {
23266 return allocUnsafe(size)
23269 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23271 Buffer.allocUnsafeSlow = function (size) {
23272 return allocUnsafe(size)
23275 function fromString (string, encoding) {
23276 if (typeof encoding !== 'string' || encoding === '') {
23280 if (!Buffer.isEncoding(encoding)) {
23281 throw new TypeError('"encoding" must be a valid string encoding')
23284 var length = byteLength(string, encoding) |
0
23285 var buf = createBuffer(length)
23287 var actual = buf.write(string, encoding)
23289 if (actual !== length) {
23290 // Writing a hex string, for example, that contains invalid characters will
23291 // cause everything after the first invalid character to be ignored. (e.g.
23292 // 'abxxcd' will be treated as 'ab')
23293 buf = buf.slice(
0, actual)
23299 function fromArrayLike (array) {
23300 var length = array.length <
0 ?
0 : checked(array.length) |
0
23301 var buf = createBuffer(length)
23302 for (var i =
0; i < length; i +=
1) {
23303 buf[i] = array[i] &
255
23308 function fromArrayBuffer (array, byteOffset, length) {
23309 if (byteOffset <
0 || array.byteLength < byteOffset) {
23310 throw new RangeError('\'offset\' is out of bounds')
23313 if (array.byteLength < byteOffset + (length ||
0)) {
23314 throw new RangeError('\'length\' is out of bounds')
23318 if (byteOffset === undefined && length === undefined) {
23319 buf = new Uint8Array(array)
23320 } else if (length === undefined) {
23321 buf = new Uint8Array(array, byteOffset)
23323 buf = new Uint8Array(array, byteOffset, length)
23326 // Return an augmented `Uint8Array` instance
23327 buf.__proto__ = Buffer.prototype
23331 function fromObject (obj) {
23332 if (Buffer.isBuffer(obj)) {
23333 var len = checked(obj.length) |
0
23334 var buf = createBuffer(len)
23336 if (buf.length ===
0) {
23340 obj.copy(buf,
0,
0, len)
23345 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23346 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23347 return createBuffer(
0)
23349 return fromArrayLike(obj)
23352 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23353 return fromArrayLike(obj.data)
23357 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23360 function checked (length) {
23361 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23362 // length is NaN (which is otherwise coerced to zero.)
23363 if (length
>= K_MAX_LENGTH) {
23364 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23365 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23370 function SlowBuffer (length) {
23371 if (+length != length) { // eslint-disable-line eqeqeq
23374 return Buffer.alloc(+length)
23377 Buffer.isBuffer = function isBuffer (b) {
23378 return b != null && b._isBuffer === true
23381 Buffer.compare = function compare (a, b) {
23382 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23383 throw new TypeError('Arguments must be Buffers')
23386 if (a === b) return
0
23391 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23392 if (a[i] !== b[i]) {
23399 if (x < y) return -
1
23400 if (y < x) return
1
23404 Buffer.isEncoding = function isEncoding (encoding) {
23405 switch (String(encoding).toLowerCase()) {
23423 Buffer.concat = function concat (list, length) {
23424 if (!Array.isArray(list)) {
23425 throw new TypeError('"list" argument must be an Array of Buffers')
23428 if (list.length ===
0) {
23429 return Buffer.alloc(
0)
23433 if (length === undefined) {
23435 for (i =
0; i < list.length; ++i) {
23436 length += list[i].length
23440 var buffer = Buffer.allocUnsafe(length)
23442 for (i =
0; i < list.length; ++i) {
23444 if (!Buffer.isBuffer(buf)) {
23445 throw new TypeError('"list" argument must be an Array of Buffers')
23447 buf.copy(buffer, pos)
23453 function byteLength (string, encoding) {
23454 if (Buffer.isBuffer(string)) {
23455 return string.length
23457 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23458 return string.byteLength
23460 if (typeof string !== 'string') {
23461 string = '' + string
23464 var len = string.length
23465 if (len ===
0) return
0
23467 // Use a for loop to avoid recursion
23468 var loweredCase = false
23470 switch (encoding) {
23478 return utf8ToBytes(string).length
23487 return base64ToBytes(string).length
23489 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23490 encoding = ('' + encoding).toLowerCase()
23495 Buffer.byteLength = byteLength
23497 function slowToString (encoding, start, end) {
23498 var loweredCase = false
23500 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23501 // property of a typed array.
23503 // This behaves neither like String nor Uint8Array in that we set start/end
23504 // to their upper/lower bounds if the value passed is out of range.
23505 // undefined is handled specially as per ECMA-
262 6th Edition,
23506 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23507 if (start === undefined || start <
0) {
23510 // Return early if start
> this.length. Done here to prevent potential uint32
23511 // coercion fail below.
23512 if (start
> this.length) {
23516 if (end === undefined || end
> this.length) {
23524 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23528 if (end <= start) {
23532 if (!encoding) encoding = 'utf8'
23535 switch (encoding) {
23537 return hexSlice(this, start, end)
23541 return utf8Slice(this, start, end)
23544 return asciiSlice(this, start, end)
23548 return latin1Slice(this, start, end)
23551 return base64Slice(this, start, end)
23557 return utf16leSlice(this, start, end)
23560 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23561 encoding = (encoding + '').toLowerCase()
23567 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23568 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23569 // reliably in a browserify context because there could be multiple different
23570 // copies of the 'buffer' package in use. This method works even for Buffer
23571 // instances that were created from another copy of the `buffer` package.
23572 // See: https://github.com/feross/buffer/issues/
154
23573 Buffer.prototype._isBuffer = true
23575 function swap (b, n, m) {
23581 Buffer.prototype.swap16 = function swap16 () {
23582 var len = this.length
23583 if (len %
2 !==
0) {
23584 throw new RangeError('Buffer size must be a multiple of
16-bits')
23586 for (var i =
0; i < len; i +=
2) {
23587 swap(this, i, i +
1)
23592 Buffer.prototype.swap32 = function swap32 () {
23593 var len = this.length
23594 if (len %
4 !==
0) {
23595 throw new RangeError('Buffer size must be a multiple of
32-bits')
23597 for (var i =
0; i < len; i +=
4) {
23598 swap(this, i, i +
3)
23599 swap(this, i +
1, i +
2)
23604 Buffer.prototype.swap64 = function swap64 () {
23605 var len = this.length
23606 if (len %
8 !==
0) {
23607 throw new RangeError('Buffer size must be a multiple of
64-bits')
23609 for (var i =
0; i < len; i +=
8) {
23610 swap(this, i, i +
7)
23611 swap(this, i +
1, i +
6)
23612 swap(this, i +
2, i +
5)
23613 swap(this, i +
3, i +
4)
23618 Buffer.prototype.toString = function toString () {
23619 var length = this.length
23620 if (length ===
0) return ''
23621 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23622 return slowToString.apply(this, arguments)
23625 Buffer.prototype.equals = function equals (b) {
23626 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23627 if (this === b) return true
23628 return Buffer.compare(this, b) ===
0
23631 Buffer.prototype.inspect = function inspect () {
23633 var max = exports.INSPECT_MAX_BYTES
23634 if (this.length
> 0) {
23635 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23636 if (this.length
> max) str += ' ... '
23638 return '
<Buffer ' + str + '
>'
23641 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23642 if (!Buffer.isBuffer(target)) {
23643 throw new TypeError('Argument must be a Buffer')
23646 if (start === undefined) {
23649 if (end === undefined) {
23650 end = target ? target.length :
0
23652 if (thisStart === undefined) {
23655 if (thisEnd === undefined) {
23656 thisEnd = this.length
23659 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23660 throw new RangeError('out of range index')
23663 if (thisStart
>= thisEnd && start
>= end) {
23666 if (thisStart
>= thisEnd) {
23669 if (start
>= end) {
23678 if (this === target) return
0
23680 var x = thisEnd - thisStart
23681 var y = end - start
23682 var len = Math.min(x, y)
23684 var thisCopy = this.slice(thisStart, thisEnd)
23685 var targetCopy = target.slice(start, end)
23687 for (var i =
0; i < len; ++i) {
23688 if (thisCopy[i] !== targetCopy[i]) {
23695 if (x < y) return -
1
23696 if (y < x) return
1
23700 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23701 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23704 // - buffer - a Buffer to search
23705 // - val - a string, Buffer, or number
23706 // - byteOffset - an index into `buffer`; will be clamped to an int32
23707 // - encoding - an optional encoding, relevant is val is a string
23708 // - dir - true for indexOf, false for lastIndexOf
23709 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23710 // Empty buffer means no match
23711 if (buffer.length ===
0) return -
1
23713 // Normalize byteOffset
23714 if (typeof byteOffset === 'string') {
23715 encoding = byteOffset
23717 } else if (byteOffset
> 0x7fffffff) {
23718 byteOffset =
0x7fffffff
23719 } else if (byteOffset < -
0x80000000) {
23720 byteOffset = -
0x80000000
23722 byteOffset = +byteOffset // Coerce to Number.
23723 if (isNaN(byteOffset)) {
23724 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23725 byteOffset = dir ?
0 : (buffer.length -
1)
23728 // Normalize byteOffset: negative offsets start from the end of the buffer
23729 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23730 if (byteOffset
>= buffer.length) {
23732 else byteOffset = buffer.length -
1
23733 } else if (byteOffset <
0) {
23734 if (dir) byteOffset =
0
23739 if (typeof val === 'string') {
23740 val = Buffer.from(val, encoding)
23743 // Finally, search either indexOf (if dir is true) or lastIndexOf
23744 if (Buffer.isBuffer(val)) {
23745 // Special case: looking for empty string/buffer always fails
23746 if (val.length ===
0) {
23749 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23750 } else if (typeof val === 'number') {
23751 val = val &
0xFF // Search for a byte value [
0-
255]
23752 if (typeof Uint8Array.prototype.indexOf === 'function') {
23754 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23756 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23759 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23762 throw new TypeError('val must be string, number or Buffer')
23765 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23767 var arrLength = arr.length
23768 var valLength = val.length
23770 if (encoding !== undefined) {
23771 encoding = String(encoding).toLowerCase()
23772 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23773 encoding === 'utf16le' || encoding === 'utf-
16le') {
23774 if (arr.length <
2 || val.length <
2) {
23784 function read (buf, i) {
23785 if (indexSize ===
1) {
23788 return buf.readUInt16BE(i * indexSize)
23794 var foundIndex = -
1
23795 for (i = byteOffset; i < arrLength; i++) {
23796 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23797 if (foundIndex === -
1) foundIndex = i
23798 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23800 if (foundIndex !== -
1) i -= i - foundIndex
23805 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23806 for (i = byteOffset; i
>=
0; i--) {
23808 for (var j =
0; j < valLength; j++) {
23809 if (read(arr, i + j) !== read(val, j)) {
23814 if (found) return i
23821 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23822 return this.indexOf(val, byteOffset, encoding) !== -
1
23825 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23826 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23829 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23830 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23833 function hexWrite (buf, string, offset, length) {
23834 offset = Number(offset) ||
0
23835 var remaining = buf.length - offset
23839 length = Number(length)
23840 if (length
> remaining) {
23845 // must be an even number of digits
23846 var strLen = string.length
23847 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23849 if (length
> strLen /
2) {
23850 length = strLen /
2
23852 for (var i =
0; i < length; ++i) {
23853 var parsed = parseInt(string.substr(i *
2,
2),
16)
23854 if (isNaN(parsed)) return i
23855 buf[offset + i] = parsed
23860 function utf8Write (buf, string, offset, length) {
23861 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23864 function asciiWrite (buf, string, offset, length) {
23865 return blitBuffer(asciiToBytes(string), buf, offset, length)
23868 function latin1Write (buf, string, offset, length) {
23869 return asciiWrite(buf, string, offset, length)
23872 function base64Write (buf, string, offset, length) {
23873 return blitBuffer(base64ToBytes(string), buf, offset, length)
23876 function ucs2Write (buf, string, offset, length) {
23877 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23880 Buffer.prototype.write = function write (string, offset, length, encoding) {
23881 // Buffer#write(string)
23882 if (offset === undefined) {
23884 length = this.length
23886 // Buffer#write(string, encoding)
23887 } else if (length === undefined && typeof offset === 'string') {
23889 length = this.length
23891 // Buffer#write(string, offset[, length][, encoding])
23892 } else if (isFinite(offset)) {
23893 offset = offset
>>> 0
23894 if (isFinite(length)) {
23895 length = length
>>> 0
23896 if (encoding === undefined) encoding = 'utf8'
23903 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23907 var remaining = this.length - offset
23908 if (length === undefined || length
> remaining) length = remaining
23910 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23911 throw new RangeError('Attempt to write outside buffer bounds')
23914 if (!encoding) encoding = 'utf8'
23916 var loweredCase = false
23918 switch (encoding) {
23920 return hexWrite(this, string, offset, length)
23924 return utf8Write(this, string, offset, length)
23927 return asciiWrite(this, string, offset, length)
23931 return latin1Write(this, string, offset, length)
23934 // Warning: maxLength not taken into account in base64Write
23935 return base64Write(this, string, offset, length)
23941 return ucs2Write(this, string, offset, length)
23944 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23945 encoding = ('' + encoding).toLowerCase()
23951 Buffer.prototype.toJSON = function toJSON () {
23954 data: Array.prototype.slice.call(this._arr || this,
0)
23958 function base64Slice (buf, start, end) {
23959 if (start ===
0 && end === buf.length) {
23960 return base64.fromByteArray(buf)
23962 return base64.fromByteArray(buf.slice(start, end))
23966 function utf8Slice (buf, start, end) {
23967 end = Math.min(buf.length, end)
23972 var firstByte = buf[i]
23973 var codePoint = null
23974 var bytesPerSequence = (firstByte
> 0xEF) ?
4
23975 : (firstByte
> 0xDF) ?
3
23976 : (firstByte
> 0xBF) ?
2
23979 if (i + bytesPerSequence <= end) {
23980 var secondByte, thirdByte, fourthByte, tempCodePoint
23982 switch (bytesPerSequence) {
23984 if (firstByte <
0x80) {
23985 codePoint = firstByte
23989 secondByte = buf[i +
1]
23990 if ((secondByte &
0xC0) ===
0x80) {
23991 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
23992 if (tempCodePoint
> 0x7F) {
23993 codePoint = tempCodePoint
23998 secondByte = buf[i +
1]
23999 thirdByte = buf[i +
2]
24000 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24001 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24002 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24003 codePoint = tempCodePoint
24008 secondByte = buf[i +
1]
24009 thirdByte = buf[i +
2]
24010 fourthByte = buf[i +
3]
24011 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24012 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24013 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24014 codePoint = tempCodePoint
24020 if (codePoint === null) {
24021 // we did not generate a valid codePoint so insert a
24022 // replacement char (U+FFFD) and advance only
1 byte
24024 bytesPerSequence =
1
24025 } else if (codePoint
> 0xFFFF) {
24026 // encode to utf16 (surrogate pair dance)
24027 codePoint -=
0x10000
24028 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24029 codePoint =
0xDC00 | codePoint &
0x3FF
24032 res.push(codePoint)
24033 i += bytesPerSequence
24036 return decodeCodePointsArray(res)
24039 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24040 // the lowest limit is Chrome, with
0x10000 args.
24041 // We go
1 magnitude less, for safety
24042 var MAX_ARGUMENTS_LENGTH =
0x1000
24044 function decodeCodePointsArray (codePoints) {
24045 var len = codePoints.length
24046 if (len <= MAX_ARGUMENTS_LENGTH) {
24047 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24050 // Decode in chunks to avoid
"call stack size exceeded".
24054 res += String.fromCharCode.apply(
24056 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24062 function asciiSlice (buf, start, end) {
24064 end = Math.min(buf.length, end)
24066 for (var i = start; i < end; ++i) {
24067 ret += String.fromCharCode(buf[i] &
0x7F)
24072 function latin1Slice (buf, start, end) {
24074 end = Math.min(buf.length, end)
24076 for (var i = start; i < end; ++i) {
24077 ret += String.fromCharCode(buf[i])
24082 function hexSlice (buf, start, end) {
24083 var len = buf.length
24085 if (!start || start <
0) start =
0
24086 if (!end || end <
0 || end
> len) end = len
24089 for (var i = start; i < end; ++i) {
24090 out += toHex(buf[i])
24095 function utf16leSlice (buf, start, end) {
24096 var bytes = buf.slice(start, end)
24098 for (var i =
0; i < bytes.length; i +=
2) {
24099 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24104 Buffer.prototype.slice = function slice (start, end) {
24105 var len = this.length
24107 end = end === undefined ? len : ~~end
24111 if (start <
0) start =
0
24112 } else if (start
> len) {
24118 if (end <
0) end =
0
24119 } else if (end
> len) {
24123 if (end < start) end = start
24125 var newBuf = this.subarray(start, end)
24126 // Return an augmented `Uint8Array` instance
24127 newBuf.__proto__ = Buffer.prototype
24132 * Need to make sure that buffer isn't trying to write out of bounds.
24134 function checkOffset (offset, ext, length) {
24135 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24136 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24139 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24140 offset = offset
>>> 0
24141 byteLength = byteLength
>>> 0
24142 if (!noAssert) checkOffset(offset, byteLength, this.length)
24144 var val = this[offset]
24147 while (++i < byteLength && (mul *=
0x100)) {
24148 val += this[offset + i] * mul
24154 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24155 offset = offset
>>> 0
24156 byteLength = byteLength
>>> 0
24158 checkOffset(offset, byteLength, this.length)
24161 var val = this[offset + --byteLength]
24163 while (byteLength
> 0 && (mul *=
0x100)) {
24164 val += this[offset + --byteLength] * mul
24170 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24171 offset = offset
>>> 0
24172 if (!noAssert) checkOffset(offset,
1, this.length)
24173 return this[offset]
24176 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24177 offset = offset
>>> 0
24178 if (!noAssert) checkOffset(offset,
2, this.length)
24179 return this[offset] | (this[offset +
1] <<
8)
24182 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24183 offset = offset
>>> 0
24184 if (!noAssert) checkOffset(offset,
2, this.length)
24185 return (this[offset] <<
8) | this[offset +
1]
24188 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24189 offset = offset
>>> 0
24190 if (!noAssert) checkOffset(offset,
4, this.length)
24192 return ((this[offset]) |
24193 (this[offset +
1] <<
8) |
24194 (this[offset +
2] <<
16)) +
24195 (this[offset +
3] *
0x1000000)
24198 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24199 offset = offset
>>> 0
24200 if (!noAssert) checkOffset(offset,
4, this.length)
24202 return (this[offset] *
0x1000000) +
24203 ((this[offset +
1] <<
16) |
24204 (this[offset +
2] <<
8) |
24208 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24209 offset = offset
>>> 0
24210 byteLength = byteLength
>>> 0
24211 if (!noAssert) checkOffset(offset, byteLength, this.length)
24213 var val = this[offset]
24216 while (++i < byteLength && (mul *=
0x100)) {
24217 val += this[offset + i] * mul
24221 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24226 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24227 offset = offset
>>> 0
24228 byteLength = byteLength
>>> 0
24229 if (!noAssert) checkOffset(offset, byteLength, this.length)
24233 var val = this[offset + --i]
24234 while (i
> 0 && (mul *=
0x100)) {
24235 val += this[offset + --i] * mul
24239 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24244 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24245 offset = offset
>>> 0
24246 if (!noAssert) checkOffset(offset,
1, this.length)
24247 if (!(this[offset] &
0x80)) return (this[offset])
24248 return ((
0xff - this[offset] +
1) * -
1)
24251 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24252 offset = offset
>>> 0
24253 if (!noAssert) checkOffset(offset,
2, this.length)
24254 var val = this[offset] | (this[offset +
1] <<
8)
24255 return (val &
0x8000) ? val |
0xFFFF0000 : val
24258 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24259 offset = offset
>>> 0
24260 if (!noAssert) checkOffset(offset,
2, this.length)
24261 var val = this[offset +
1] | (this[offset] <<
8)
24262 return (val &
0x8000) ? val |
0xFFFF0000 : val
24265 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24266 offset = offset
>>> 0
24267 if (!noAssert) checkOffset(offset,
4, this.length)
24269 return (this[offset]) |
24270 (this[offset +
1] <<
8) |
24271 (this[offset +
2] <<
16) |
24272 (this[offset +
3] <<
24)
24275 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24276 offset = offset
>>> 0
24277 if (!noAssert) checkOffset(offset,
4, this.length)
24279 return (this[offset] <<
24) |
24280 (this[offset +
1] <<
16) |
24281 (this[offset +
2] <<
8) |
24285 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24286 offset = offset
>>> 0
24287 if (!noAssert) checkOffset(offset,
4, this.length)
24288 return ieee754.read(this, offset, true,
23,
4)
24291 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24292 offset = offset
>>> 0
24293 if (!noAssert) checkOffset(offset,
4, this.length)
24294 return ieee754.read(this, offset, false,
23,
4)
24297 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24298 offset = offset
>>> 0
24299 if (!noAssert) checkOffset(offset,
8, this.length)
24300 return ieee754.read(this, offset, true,
52,
8)
24303 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24304 offset = offset
>>> 0
24305 if (!noAssert) checkOffset(offset,
8, this.length)
24306 return ieee754.read(this, offset, false,
52,
8)
24309 function checkInt (buf, value, offset, ext, max, min) {
24310 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24311 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24312 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24315 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24317 offset = offset
>>> 0
24318 byteLength = byteLength
>>> 0
24320 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24321 checkInt(this, value, offset, byteLength, maxBytes,
0)
24326 this[offset] = value &
0xFF
24327 while (++i < byteLength && (mul *=
0x100)) {
24328 this[offset + i] = (value / mul) &
0xFF
24331 return offset + byteLength
24334 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24336 offset = offset
>>> 0
24337 byteLength = byteLength
>>> 0
24339 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24340 checkInt(this, value, offset, byteLength, maxBytes,
0)
24343 var i = byteLength -
1
24345 this[offset + i] = value &
0xFF
24346 while (--i
>=
0 && (mul *=
0x100)) {
24347 this[offset + i] = (value / mul) &
0xFF
24350 return offset + byteLength
24353 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24355 offset = offset
>>> 0
24356 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24357 this[offset] = (value &
0xff)
24361 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24363 offset = offset
>>> 0
24364 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24365 this[offset] = (value &
0xff)
24366 this[offset +
1] = (value
>>> 8)
24370 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24372 offset = offset
>>> 0
24373 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24374 this[offset] = (value
>>> 8)
24375 this[offset +
1] = (value &
0xff)
24379 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24381 offset = offset
>>> 0
24382 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24383 this[offset +
3] = (value
>>> 24)
24384 this[offset +
2] = (value
>>> 16)
24385 this[offset +
1] = (value
>>> 8)
24386 this[offset] = (value &
0xff)
24390 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24392 offset = offset
>>> 0
24393 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24394 this[offset] = (value
>>> 24)
24395 this[offset +
1] = (value
>>> 16)
24396 this[offset +
2] = (value
>>> 8)
24397 this[offset +
3] = (value &
0xff)
24401 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24403 offset = offset
>>> 0
24405 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24407 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24413 this[offset] = value &
0xFF
24414 while (++i < byteLength && (mul *=
0x100)) {
24415 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24418 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24421 return offset + byteLength
24424 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24426 offset = offset
>>> 0
24428 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24430 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24433 var i = byteLength -
1
24436 this[offset + i] = value &
0xFF
24437 while (--i
>=
0 && (mul *=
0x100)) {
24438 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24441 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24444 return offset + byteLength
24447 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24449 offset = offset
>>> 0
24450 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24451 if (value <
0) value =
0xff + value +
1
24452 this[offset] = (value &
0xff)
24456 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24458 offset = offset
>>> 0
24459 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24460 this[offset] = (value &
0xff)
24461 this[offset +
1] = (value
>>> 8)
24465 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24467 offset = offset
>>> 0
24468 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24469 this[offset] = (value
>>> 8)
24470 this[offset +
1] = (value &
0xff)
24474 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24476 offset = offset
>>> 0
24477 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24478 this[offset] = (value &
0xff)
24479 this[offset +
1] = (value
>>> 8)
24480 this[offset +
2] = (value
>>> 16)
24481 this[offset +
3] = (value
>>> 24)
24485 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24487 offset = offset
>>> 0
24488 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24489 if (value <
0) value =
0xffffffff + value +
1
24490 this[offset] = (value
>>> 24)
24491 this[offset +
1] = (value
>>> 16)
24492 this[offset +
2] = (value
>>> 8)
24493 this[offset +
3] = (value &
0xff)
24497 function checkIEEE754 (buf, value, offset, ext, max, min) {
24498 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24499 if (offset <
0) throw new RangeError('Index out of range')
24502 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24504 offset = offset
>>> 0
24506 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24508 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24512 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24513 return writeFloat(this, value, offset, true, noAssert)
24516 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24517 return writeFloat(this, value, offset, false, noAssert)
24520 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24522 offset = offset
>>> 0
24524 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24526 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24530 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24531 return writeDouble(this, value, offset, true, noAssert)
24534 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24535 return writeDouble(this, value, offset, false, noAssert)
24538 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24539 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24540 if (!start) start =
0
24541 if (!end && end !==
0) end = this.length
24542 if (targetStart
>= target.length) targetStart = target.length
24543 if (!targetStart) targetStart =
0
24544 if (end
> 0 && end < start) end = start
24546 // Copy
0 bytes; we're done
24547 if (end === start) return
0
24548 if (target.length ===
0 || this.length ===
0) return
0
24550 // Fatal error conditions
24551 if (targetStart <
0) {
24552 throw new RangeError('targetStart out of bounds')
24554 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24555 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24558 if (end
> this.length) end = this.length
24559 if (target.length - targetStart < end - start) {
24560 end = target.length - targetStart + start
24563 var len = end - start
24566 if (this === target && start < targetStart && targetStart < end) {
24567 // descending copy from end
24568 for (i = len -
1; i
>=
0; --i) {
24569 target[i + targetStart] = this[i + start]
24571 } else if (len <
1000) {
24572 // ascending copy from start
24573 for (i =
0; i < len; ++i) {
24574 target[i + targetStart] = this[i + start]
24577 Uint8Array.prototype.set.call(
24579 this.subarray(start, start + len),
24588 // buffer.fill(number[, offset[, end]])
24589 // buffer.fill(buffer[, offset[, end]])
24590 // buffer.fill(string[, offset[, end]][, encoding])
24591 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24592 // Handle string cases:
24593 if (typeof val === 'string') {
24594 if (typeof start === 'string') {
24598 } else if (typeof end === 'string') {
24602 if (val.length ===
1) {
24603 var code = val.charCodeAt(
0)
24608 if (encoding !== undefined && typeof encoding !== 'string') {
24609 throw new TypeError('encoding must be a string')
24611 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24612 throw new TypeError('Unknown encoding: ' + encoding)
24614 } else if (typeof val === 'number') {
24618 // Invalid ranges are not set to a default, so can range check early.
24619 if (start <
0 || this.length < start || this.length < end) {
24620 throw new RangeError('Out of range index')
24623 if (end <= start) {
24627 start = start
>>> 0
24628 end = end === undefined ? this.length : end
>>> 0
24633 if (typeof val === 'number') {
24634 for (i = start; i < end; ++i) {
24638 var bytes = Buffer.isBuffer(val)
24640 : new Buffer(val, encoding)
24641 var len = bytes.length
24642 for (i =
0; i < end - start; ++i) {
24643 this[i + start] = bytes[i % len]
24650 // HELPER FUNCTIONS
24651 // ================
24653 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24655 function base64clean (str) {
24656 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24657 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24658 // Node converts strings with length <
2 to ''
24659 if (str.length <
2) return ''
24660 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24661 while (str.length %
4 !==
0) {
24667 function stringtrim (str) {
24668 if (str.trim) return str.trim()
24669 return str.replace(/^\s+|\s+$/g, '')
24672 function toHex (n) {
24673 if (n <
16) return '
0' + n.toString(
16)
24674 return n.toString(
16)
24677 function utf8ToBytes (string, units) {
24678 units = units || Infinity
24680 var length = string.length
24681 var leadSurrogate = null
24684 for (var i =
0; i < length; ++i) {
24685 codePoint = string.charCodeAt(i)
24687 // is surrogate component
24688 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24689 // last char was a lead
24690 if (!leadSurrogate) {
24692 if (codePoint
> 0xDBFF) {
24693 // unexpected trail
24694 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24696 } else if (i +
1 === length) {
24698 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24703 leadSurrogate = codePoint
24708 //
2 leads in a row
24709 if (codePoint <
0xDC00) {
24710 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24711 leadSurrogate = codePoint
24715 // valid surrogate pair
24716 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24717 } else if (leadSurrogate) {
24718 // valid bmp char, but last char was a lead
24719 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24722 leadSurrogate = null
24725 if (codePoint <
0x80) {
24726 if ((units -=
1) <
0) break
24727 bytes.push(codePoint)
24728 } else if (codePoint <
0x800) {
24729 if ((units -=
2) <
0) break
24731 codePoint
>> 0x6 |
0xC0,
24732 codePoint &
0x3F |
0x80
24734 } else if (codePoint <
0x10000) {
24735 if ((units -=
3) <
0) break
24737 codePoint
>> 0xC |
0xE0,
24738 codePoint
>> 0x6 &
0x3F |
0x80,
24739 codePoint &
0x3F |
0x80
24741 } else if (codePoint <
0x110000) {
24742 if ((units -=
4) <
0) break
24744 codePoint
>> 0x12 |
0xF0,
24745 codePoint
>> 0xC &
0x3F |
0x80,
24746 codePoint
>> 0x6 &
0x3F |
0x80,
24747 codePoint &
0x3F |
0x80
24750 throw new Error('Invalid code point')
24757 function asciiToBytes (str) {
24759 for (var i =
0; i < str.length; ++i) {
24760 // Node's code seems to be doing this and not &
0x7F..
24761 byteArray.push(str.charCodeAt(i) &
0xFF)
24766 function utf16leToBytes (str, units) {
24769 for (var i =
0; i < str.length; ++i) {
24770 if ((units -=
2) <
0) break
24772 c = str.charCodeAt(i)
24782 function base64ToBytes (str) {
24783 return base64.toByteArray(base64clean(str))
24786 function blitBuffer (src, dst, offset, length) {
24787 for (var i =
0; i < length; ++i) {
24788 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24789 dst[i + offset] = src[i]
24794 function isnan (val) {
24795 return val !== val // eslint-disable-line no-self-compare
24798 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24799 (function (Buffer){
24800 // Copyright Joyent, Inc. and other Node contributors.
24802 // Permission is hereby granted, free of charge, to any person obtaining a
24803 // copy of this software and associated documentation files (the
24804 // "Software"), to deal in the Software without restriction, including
24805 // without limitation the rights to use, copy, modify, merge, publish,
24806 // distribute, sublicense, and/or sell copies of the Software, and to permit
24807 // persons to whom the Software is furnished to do so, subject to the
24808 // following conditions:
24810 // The above copyright notice and this permission notice shall be included
24811 // in all copies or substantial portions of the Software.
24813 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24814 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24815 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24816 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24817 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24818 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24819 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24821 // NOTE: These type checking functions intentionally don't use `instanceof`
24822 // because it is fragile and can be easily faked with `Object.create()`.
24824 function isArray(arg) {
24825 if (Array.isArray) {
24826 return Array.isArray(arg);
24828 return objectToString(arg) === '[object Array]';
24830 exports.isArray = isArray;
24832 function isBoolean(arg) {
24833 return typeof arg === 'boolean';
24835 exports.isBoolean = isBoolean;
24837 function isNull(arg) {
24838 return arg === null;
24840 exports.isNull = isNull;
24842 function isNullOrUndefined(arg) {
24843 return arg == null;
24845 exports.isNullOrUndefined = isNullOrUndefined;
24847 function isNumber(arg) {
24848 return typeof arg === 'number';
24850 exports.isNumber = isNumber;
24852 function isString(arg) {
24853 return typeof arg === 'string';
24855 exports.isString = isString;
24857 function isSymbol(arg) {
24858 return typeof arg === 'symbol';
24860 exports.isSymbol = isSymbol;
24862 function isUndefined(arg) {
24863 return arg === void
0;
24865 exports.isUndefined = isUndefined;
24867 function isRegExp(re) {
24868 return objectToString(re) === '[object RegExp]';
24870 exports.isRegExp = isRegExp;
24872 function isObject(arg) {
24873 return typeof arg === 'object' && arg !== null;
24875 exports.isObject = isObject;
24877 function isDate(d) {
24878 return objectToString(d) === '[object Date]';
24880 exports.isDate = isDate;
24882 function isError(e) {
24883 return (objectToString(e) === '[object Error]' || e instanceof Error);
24885 exports.isError = isError;
24887 function isFunction(arg) {
24888 return typeof arg === 'function';
24890 exports.isFunction = isFunction;
24892 function isPrimitive(arg) {
24893 return arg === null ||
24894 typeof arg === 'boolean' ||
24895 typeof arg === 'number' ||
24896 typeof arg === 'string' ||
24897 typeof arg === 'symbol' || // ES6 symbol
24898 typeof arg === 'undefined';
24900 exports.isPrimitive = isPrimitive;
24902 exports.isBuffer = Buffer.isBuffer;
24904 function objectToString(o) {
24905 return Object.prototype.toString.call(o);
24908 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24909 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24910 // Copyright Joyent, Inc. and other Node contributors.
24912 // Permission is hereby granted, free of charge, to any person obtaining a
24913 // copy of this software and associated documentation files (the
24914 // "Software"), to deal in the Software without restriction, including
24915 // without limitation the rights to use, copy, modify, merge, publish,
24916 // distribute, sublicense, and/or sell copies of the Software, and to permit
24917 // persons to whom the Software is furnished to do so, subject to the
24918 // following conditions:
24920 // The above copyright notice and this permission notice shall be included
24921 // in all copies or substantial portions of the Software.
24923 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24924 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24925 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24926 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24927 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24928 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24929 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24931 function EventEmitter() {
24932 this._events = this._events || {};
24933 this._maxListeners = this._maxListeners || undefined;
24935 module.exports = EventEmitter;
24937 // Backwards-compat with node
0.10.x
24938 EventEmitter.EventEmitter = EventEmitter;
24940 EventEmitter.prototype._events = undefined;
24941 EventEmitter.prototype._maxListeners = undefined;
24943 // By default EventEmitters will print a warning if more than
10 listeners are
24944 // added to it. This is a useful default which helps finding memory leaks.
24945 EventEmitter.defaultMaxListeners =
10;
24947 // Obviously not all Emitters should be limited to
10. This function allows
24948 // that to be increased. Set to zero for unlimited.
24949 EventEmitter.prototype.setMaxListeners = function(n) {
24950 if (!isNumber(n) || n <
0 || isNaN(n))
24951 throw TypeError('n must be a positive number');
24952 this._maxListeners = n;
24956 EventEmitter.prototype.emit = function(type) {
24957 var er, handler, len, args, i, listeners;
24962 // If there is no 'error' event listener then throw.
24963 if (type === 'error') {
24964 if (!this._events.error ||
24965 (isObject(this._events.error) && !this._events.error.length)) {
24967 if (er instanceof Error) {
24968 throw er; // Unhandled 'error' event
24970 // At least give some kind of context to the user
24971 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
24978 handler = this._events[type];
24980 if (isUndefined(handler))
24983 if (isFunction(handler)) {
24984 switch (arguments.length) {
24987 handler.call(this);
24990 handler.call(this, arguments[
1]);
24993 handler.call(this, arguments[
1], arguments[
2]);
24997 args = Array.prototype.slice.call(arguments,
1);
24998 handler.apply(this, args);
25000 } else if (isObject(handler)) {
25001 args = Array.prototype.slice.call(arguments,
1);
25002 listeners = handler.slice();
25003 len = listeners.length;
25004 for (i =
0; i < len; i++)
25005 listeners[i].apply(this, args);
25011 EventEmitter.prototype.addListener = function(type, listener) {
25014 if (!isFunction(listener))
25015 throw TypeError('listener must be a function');
25020 // To avoid recursion in the case that type === "newListener"! Before
25021 // adding it to the listeners, first emit "newListener".
25022 if (this._events.newListener)
25023 this.emit('newListener', type,
25024 isFunction(listener.listener) ?
25025 listener.listener : listener);
25027 if (!this._events[type])
25028 // Optimize the case of one listener. Don't need the extra array object.
25029 this._events[type] = listener;
25030 else if (isObject(this._events[type]))
25031 // If we've already got an array, just append.
25032 this._events[type].push(listener);
25034 // Adding the second element, need to change to array.
25035 this._events[type] = [this._events[type], listener];
25037 // Check for listener leak
25038 if (isObject(this._events[type]) && !this._events[type].warned) {
25039 if (!isUndefined(this._maxListeners)) {
25040 m = this._maxListeners;
25042 m = EventEmitter.defaultMaxListeners;
25045 if (m && m
> 0 && this._events[type].length
> m) {
25046 this._events[type].warned = true;
25047 console.error('(node) warning: possible EventEmitter memory ' +
25048 'leak detected. %d listeners added. ' +
25049 'Use emitter.setMaxListeners() to increase limit.',
25050 this._events[type].length);
25051 if (typeof console.trace === 'function') {
25052 // not supported in IE
10
25061 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25063 EventEmitter.prototype.once = function(type, listener) {
25064 if (!isFunction(listener))
25065 throw TypeError('listener must be a function');
25070 this.removeListener(type, g);
25074 listener.apply(this, arguments);
25078 g.listener = listener;
25084 // emits a 'removeListener' event iff the listener was removed
25085 EventEmitter.prototype.removeListener = function(type, listener) {
25086 var list, position, length, i;
25088 if (!isFunction(listener))
25089 throw TypeError('listener must be a function');
25091 if (!this._events || !this._events[type])
25094 list = this._events[type];
25095 length = list.length;
25098 if (list === listener ||
25099 (isFunction(list.listener) && list.listener === listener)) {
25100 delete this._events[type];
25101 if (this._events.removeListener)
25102 this.emit('removeListener', type, listener);
25104 } else if (isObject(list)) {
25105 for (i = length; i--
> 0;) {
25106 if (list[i] === listener ||
25107 (list[i].listener && list[i].listener === listener)) {
25116 if (list.length ===
1) {
25118 delete this._events[type];
25120 list.splice(position,
1);
25123 if (this._events.removeListener)
25124 this.emit('removeListener', type, listener);
25130 EventEmitter.prototype.removeAllListeners = function(type) {
25131 var key, listeners;
25136 // not listening for removeListener, no need to emit
25137 if (!this._events.removeListener) {
25138 if (arguments.length ===
0)
25140 else if (this._events[type])
25141 delete this._events[type];
25145 // emit removeListener for all listeners on all events
25146 if (arguments.length ===
0) {
25147 for (key in this._events) {
25148 if (key === 'removeListener') continue;
25149 this.removeAllListeners(key);
25151 this.removeAllListeners('removeListener');
25156 listeners = this._events[type];
25158 if (isFunction(listeners)) {
25159 this.removeListener(type, listeners);
25160 } else if (listeners) {
25162 while (listeners.length)
25163 this.removeListener(type, listeners[listeners.length -
1]);
25165 delete this._events[type];
25170 EventEmitter.prototype.listeners = function(type) {
25172 if (!this._events || !this._events[type])
25174 else if (isFunction(this._events[type]))
25175 ret = [this._events[type]];
25177 ret = this._events[type].slice();
25181 EventEmitter.prototype.listenerCount = function(type) {
25182 if (this._events) {
25183 var evlistener = this._events[type];
25185 if (isFunction(evlistener))
25187 else if (evlistener)
25188 return evlistener.length;
25193 EventEmitter.listenerCount = function(emitter, type) {
25194 return emitter.listenerCount(type);
25197 function isFunction(arg) {
25198 return typeof arg === 'function';
25201 function isNumber(arg) {
25202 return typeof arg === 'number';
25205 function isObject(arg) {
25206 return typeof arg === 'object' && arg !== null;
25209 function isUndefined(arg) {
25210 return arg === void
0;
25213 },{}],
8:[function(require,module,exports){
25214 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25216 var eLen = nBytes *
8 - mLen -
1
25217 var eMax = (
1 << eLen) -
1
25218 var eBias = eMax
>> 1
25220 var i = isLE ? (nBytes -
1) :
0
25221 var d = isLE ? -
1 :
1
25222 var s = buffer[offset + i]
25226 e = s & ((
1 << (-nBits)) -
1)
25229 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25231 m = e & ((
1 << (-nBits)) -
1)
25234 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25238 } else if (e === eMax) {
25239 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25241 m = m + Math.pow(
2, mLen)
25244 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25247 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25249 var eLen = nBytes *
8 - mLen -
1
25250 var eMax = (
1 << eLen) -
1
25251 var eBias = eMax
>> 1
25252 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25253 var i = isLE ?
0 : (nBytes -
1)
25254 var d = isLE ?
1 : -
1
25255 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25257 value = Math.abs(value)
25259 if (isNaN(value) || value === Infinity) {
25260 m = isNaN(value) ?
1 :
0
25263 e = Math.floor(Math.log(value) / Math.LN2)
25264 if (value * (c = Math.pow(
2, -e)) <
1) {
25268 if (e + eBias
>=
1) {
25271 value += rt * Math.pow(
2,
1 - eBias)
25273 if (value * c
>=
2) {
25278 if (e + eBias
>= eMax) {
25281 } else if (e + eBias
>=
1) {
25282 m = (value * c -
1) * Math.pow(
2, mLen)
25285 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25290 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25292 e = (e << mLen) | m
25294 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25296 buffer[offset + i - d] |= s *
128
25299 },{}],
9:[function(require,module,exports){
25300 if (typeof Object.create === 'function') {
25301 // implementation from standard node.js 'util' module
25302 module.exports = function inherits(ctor, superCtor) {
25303 ctor.super_ = superCtor
25304 ctor.prototype = Object.create(superCtor.prototype, {
25314 // old school shim for old browsers
25315 module.exports = function inherits(ctor, superCtor) {
25316 ctor.super_ = superCtor
25317 var TempCtor = function () {}
25318 TempCtor.prototype = superCtor.prototype
25319 ctor.prototype = new TempCtor()
25320 ctor.prototype.constructor = ctor
25324 },{}],
10:[function(require,module,exports){
25326 * Determine if an object is a Buffer
25328 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25332 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25333 // Object.prototype.constructor. Remove this eventually
25334 module.exports = function (obj) {
25335 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25338 function isBuffer (obj) {
25339 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25342 // For Node v0.10 support. Remove this eventually.
25343 function isSlowBuffer (obj) {
25344 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25347 },{}],
11:[function(require,module,exports){
25348 var toString = {}.toString;
25350 module.exports = Array.isArray || function (arr) {
25351 return toString.call(arr) == '[object Array]';
25354 },{}],
12:[function(require,module,exports){
25355 (function (process){
25358 if (!process.version ||
25359 process.version.indexOf('v0.') ===
0 ||
25360 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25361 module.exports = nextTick;
25363 module.exports = process.nextTick;
25366 function nextTick(fn, arg1, arg2, arg3) {
25367 if (typeof fn !== 'function') {
25368 throw new TypeError('"callback" argument must be a function');
25370 var len = arguments.length;
25375 return process.nextTick(fn);
25377 return process.nextTick(function afterTickOne() {
25378 fn.call(null, arg1);
25381 return process.nextTick(function afterTickTwo() {
25382 fn.call(null, arg1, arg2);
25385 return process.nextTick(function afterTickThree() {
25386 fn.call(null, arg1, arg2, arg3);
25389 args = new Array(len -
1);
25391 while (i < args.length) {
25392 args[i++] = arguments[i];
25394 return process.nextTick(function afterTick() {
25395 fn.apply(null, args);
25400 }).call(this,require('_process'))
25401 },{"_process":
13}],
13:[function(require,module,exports){
25402 // shim for using process in browser
25403 var process = module.exports = {};
25405 // cached from whatever global is present so that test runners that stub it
25406 // don't break things. But we need to wrap it in a try catch in case it is
25407 // wrapped in strict mode code which doesn't define any globals. It's inside a
25408 // function because try/catches deoptimize in certain engines.
25410 var cachedSetTimeout;
25411 var cachedClearTimeout;
25413 function defaultSetTimout() {
25414 throw new Error('setTimeout has not been defined');
25416 function defaultClearTimeout () {
25417 throw new Error('clearTimeout has not been defined');
25421 if (typeof setTimeout === 'function') {
25422 cachedSetTimeout = setTimeout;
25424 cachedSetTimeout = defaultSetTimout;
25427 cachedSetTimeout = defaultSetTimout;
25430 if (typeof clearTimeout === 'function') {
25431 cachedClearTimeout = clearTimeout;
25433 cachedClearTimeout = defaultClearTimeout;
25436 cachedClearTimeout = defaultClearTimeout;
25439 function runTimeout(fun) {
25440 if (cachedSetTimeout === setTimeout) {
25441 //normal enviroments in sane situations
25442 return setTimeout(fun,
0);
25444 // if setTimeout wasn't available but was latter defined
25445 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25446 cachedSetTimeout = setTimeout;
25447 return setTimeout(fun,
0);
25450 // when when somebody has screwed with setTimeout but no I.E. maddness
25451 return cachedSetTimeout(fun,
0);
25454 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25455 return cachedSetTimeout.call(null, fun,
0);
25457 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
25458 return cachedSetTimeout.call(this, fun,
0);
25464 function runClearTimeout(marker) {
25465 if (cachedClearTimeout === clearTimeout) {
25466 //normal enviroments in sane situations
25467 return clearTimeout(marker);
25469 // if clearTimeout wasn't available but was latter defined
25470 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25471 cachedClearTimeout = clearTimeout;
25472 return clearTimeout(marker);
25475 // when when somebody has screwed with setTimeout but no I.E. maddness
25476 return cachedClearTimeout(marker);
25479 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25480 return cachedClearTimeout.call(null, marker);
25482 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
25483 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25484 return cachedClearTimeout.call(this, marker);
25492 var draining = false;
25494 var queueIndex = -
1;
25496 function cleanUpNextTick() {
25497 if (!draining || !currentQueue) {
25501 if (currentQueue.length) {
25502 queue = currentQueue.concat(queue);
25506 if (queue.length) {
25511 function drainQueue() {
25515 var timeout = runTimeout(cleanUpNextTick);
25518 var len = queue.length;
25520 currentQueue = queue;
25522 while (++queueIndex < len) {
25523 if (currentQueue) {
25524 currentQueue[queueIndex].run();
25528 len = queue.length;
25530 currentQueue = null;
25532 runClearTimeout(timeout);
25535 process.nextTick = function (fun) {
25536 var args = new Array(arguments.length -
1);
25537 if (arguments.length
> 1) {
25538 for (var i =
1; i < arguments.length; i++) {
25539 args[i -
1] = arguments[i];
25542 queue.push(new Item(fun, args));
25543 if (queue.length ===
1 && !draining) {
25544 runTimeout(drainQueue);
25548 // v8 likes predictible objects
25549 function Item(fun, array) {
25551 this.array = array;
25553 Item.prototype.run = function () {
25554 this.fun.apply(null, this.array);
25556 process.title = 'browser';
25557 process.browser = true;
25560 process.version = ''; // empty string to avoid regexp issues
25561 process.versions = {};
25566 process.addListener = noop;
25567 process.once = noop;
25568 process.off = noop;
25569 process.removeListener = noop;
25570 process.removeAllListeners = noop;
25571 process.emit = noop;
25573 process.binding = function (name) {
25574 throw new Error('process.binding is not supported');
25577 process.cwd = function () { return '/' };
25578 process.chdir = function (dir) {
25579 throw new Error('process.chdir is not supported');
25581 process.umask = function() { return
0; };
25583 },{}],
14:[function(require,module,exports){
25584 module.exports = require(
"./lib/_stream_duplex.js")
25586 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25587 // a duplex stream is just a stream that is both readable and writable.
25588 // Since JS doesn't have multiple prototypal inheritance, this class
25589 // prototypally inherits from Readable, and then parasitically from
25596 var objectKeys = Object.keys || function (obj) {
25598 for (var key in obj) {
25604 module.exports = Duplex;
25607 var processNextTick = require('process-nextick-args');
25611 var util = require('core-util-is');
25612 util.inherits = require('inherits');
25615 var Readable = require('./_stream_readable');
25616 var Writable = require('./_stream_writable');
25618 util.inherits(Duplex, Readable);
25620 var keys = objectKeys(Writable.prototype);
25621 for (var v =
0; v < keys.length; v++) {
25622 var method = keys[v];
25623 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25626 function Duplex(options) {
25627 if (!(this instanceof Duplex)) return new Duplex(options);
25629 Readable.call(this, options);
25630 Writable.call(this, options);
25632 if (options && options.readable === false) this.readable = false;
25634 if (options && options.writable === false) this.writable = false;
25636 this.allowHalfOpen = true;
25637 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25639 this.once('end', onend);
25642 // the no-half-open enforcer
25644 // if we allow half-open state, or if the writable side ended,
25646 if (this.allowHalfOpen || this._writableState.ended) return;
25648 // no more data can be written.
25649 // But allow more writes to happen in this tick.
25650 processNextTick(onEndNT, this);
25653 function onEndNT(self) {
25657 function forEach(xs, f) {
25658 for (var i =
0, l = xs.length; i < l; i++) {
25662 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25663 // a passthrough stream.
25664 // basically just the most minimal sort of Transform stream.
25665 // Every written chunk gets output as-is.
25669 module.exports = PassThrough;
25671 var Transform = require('./_stream_transform');
25674 var util = require('core-util-is');
25675 util.inherits = require('inherits');
25678 util.inherits(PassThrough, Transform);
25680 function PassThrough(options) {
25681 if (!(this instanceof PassThrough)) return new PassThrough(options);
25683 Transform.call(this, options);
25686 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25689 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25690 (function (process){
25693 module.exports = Readable;
25696 var processNextTick = require('process-nextick-args');
25700 var isArray = require('isarray');
25707 Readable.ReadableState = ReadableState;
25710 var EE = require('events').EventEmitter;
25712 var EElistenerCount = function (emitter, type) {
25713 return emitter.listeners(type).length;
25721 Stream = require('st' + 'ream');
25722 } catch (_) {} finally {
25723 if (!Stream) Stream = require('events').EventEmitter;
25728 var Buffer = require('buffer').Buffer;
25730 var bufferShim = require('buffer-shims');
25734 var util = require('core-util-is');
25735 util.inherits = require('inherits');
25739 var debugUtil = require('util');
25740 var debug = void
0;
25741 if (debugUtil && debugUtil.debuglog) {
25742 debug = debugUtil.debuglog('stream');
25744 debug = function () {};
25748 var BufferList = require('./internal/streams/BufferList');
25751 util.inherits(Readable, Stream);
25753 function prependListener(emitter, event, fn) {
25754 // Sadly this is not cacheable as some libraries bundle their own
25755 // event emitter implementation with them.
25756 if (typeof emitter.prependListener === 'function') {
25757 return emitter.prependListener(event, fn);
25759 // This is a hack to make sure that our error handler is attached before any
25760 // userland ones. NEVER DO THIS. This is here only because this code needs
25761 // to continue to work with older versions of Node.js that do not include
25762 // the prependListener() method. The goal is to eventually remove this hack.
25763 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
25767 function ReadableState(options, stream) {
25768 Duplex = Duplex || require('./_stream_duplex');
25770 options = options || {};
25772 // object stream flag. Used to make read(n) ignore n and to
25773 // make all the buffer merging and length checks go away
25774 this.objectMode = !!options.objectMode;
25776 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25778 // the point at which it stops calling _read() to fill the buffer
25779 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25780 var hwm = options.highWaterMark;
25781 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25782 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25785 this.highWaterMark = ~ ~this.highWaterMark;
25787 // A linked list is used to store data chunks instead of an array because the
25788 // linked list can remove elements from the beginning faster than
25790 this.buffer = new BufferList();
25793 this.pipesCount =
0;
25794 this.flowing = null;
25795 this.ended = false;
25796 this.endEmitted = false;
25797 this.reading = false;
25799 // a flag to be able to tell if the onwrite cb is called immediately,
25800 // or on a later tick. We set this to true at first, because any
25801 // actions that shouldn't happen until "later" should generally also
25802 // not happen before the first write call.
25805 // whenever we return null, then we set a flag to say
25806 // that we're awaiting a 'readable' event emission.
25807 this.needReadable = false;
25808 this.emittedReadable = false;
25809 this.readableListening = false;
25810 this.resumeScheduled = false;
25812 // Crypto is kind of old and crusty. Historically, its default string
25813 // encoding is 'binary' so we have to make this configurable.
25814 // Everything else in the universe uses 'utf8', though.
25815 this.defaultEncoding = options.defaultEncoding || 'utf8';
25817 // when piping, we only care about 'readable' events that happen
25818 // after read()ing all the bytes and not getting any pushback.
25819 this.ranOut = false;
25821 // the number of writers that are awaiting a drain event in .pipe()s
25822 this.awaitDrain =
0;
25824 // if true, a maybeReadMore has been scheduled
25825 this.readingMore = false;
25827 this.decoder = null;
25828 this.encoding = null;
25829 if (options.encoding) {
25830 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25831 this.decoder = new StringDecoder(options.encoding);
25832 this.encoding = options.encoding;
25836 function Readable(options) {
25837 Duplex = Duplex || require('./_stream_duplex');
25839 if (!(this instanceof Readable)) return new Readable(options);
25841 this._readableState = new ReadableState(options, this);
25844 this.readable = true;
25846 if (options && typeof options.read === 'function') this._read = options.read;
25851 // Manually shove something into the read() buffer.
25852 // This returns true if the highWaterMark has not been hit yet,
25853 // similar to how Writable.write() returns true if you should
25854 // write() some more.
25855 Readable.prototype.push = function (chunk, encoding) {
25856 var state = this._readableState;
25858 if (!state.objectMode && typeof chunk === 'string') {
25859 encoding = encoding || state.defaultEncoding;
25860 if (encoding !== state.encoding) {
25861 chunk = bufferShim.from(chunk, encoding);
25866 return readableAddChunk(this, state, chunk, encoding, false);
25869 // Unshift should *always* be something directly out of read()
25870 Readable.prototype.unshift = function (chunk) {
25871 var state = this._readableState;
25872 return readableAddChunk(this, state, chunk, '', true);
25875 Readable.prototype.isPaused = function () {
25876 return this._readableState.flowing === false;
25879 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25880 var er = chunkInvalid(state, chunk);
25882 stream.emit('error', er);
25883 } else if (chunk === null) {
25884 state.reading = false;
25885 onEofChunk(stream, state);
25886 } else if (state.objectMode || chunk && chunk.length
> 0) {
25887 if (state.ended && !addToFront) {
25888 var e = new Error('stream.push() after EOF');
25889 stream.emit('error', e);
25890 } else if (state.endEmitted && addToFront) {
25891 var _e = new Error('stream.unshift() after end event');
25892 stream.emit('error', _e);
25895 if (state.decoder && !addToFront && !encoding) {
25896 chunk = state.decoder.write(chunk);
25897 skipAdd = !state.objectMode && chunk.length ===
0;
25900 if (!addToFront) state.reading = false;
25902 // Don't add to the buffer if we've decoded to an empty string chunk and
25903 // we're not in object mode
25905 // if we want the data now, just emit it.
25906 if (state.flowing && state.length ===
0 && !state.sync) {
25907 stream.emit('data', chunk);
25910 // update the buffer info.
25911 state.length += state.objectMode ?
1 : chunk.length;
25912 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25914 if (state.needReadable) emitReadable(stream);
25918 maybeReadMore(stream, state);
25920 } else if (!addToFront) {
25921 state.reading = false;
25924 return needMoreData(state);
25927 // if it's past the high water mark, we can push in some more.
25928 // Also, if we have no data yet, we can stand some
25929 // more bytes. This is to work around cases where hwm=
0,
25930 // such as the repl. Also, if the push() triggered a
25931 // readable event, and the user called read(largeNumber) such that
25932 // needReadable was set, then we ought to push more, so that another
25933 // 'readable' event will be triggered.
25934 function needMoreData(state) {
25935 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25938 // backwards compatibility.
25939 Readable.prototype.setEncoding = function (enc) {
25940 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25941 this._readableState.decoder = new StringDecoder(enc);
25942 this._readableState.encoding = enc;
25946 // Don't raise the hwm
> 8MB
25947 var MAX_HWM =
0x800000;
25948 function computeNewHighWaterMark(n) {
25949 if (n
>= MAX_HWM) {
25952 // Get the next highest power of
2 to prevent increasing hwm excessively in
25965 // This function is designed to be inlinable, so please take care when making
25966 // changes to the function body.
25967 function howMuchToRead(n, state) {
25968 if (n <=
0 || state.length ===
0 && state.ended) return
0;
25969 if (state.objectMode) return
1;
25971 // Only flow one buffer at a time
25972 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
25974 // If we're asking for more than the current hwm, then raise the hwm.
25975 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
25976 if (n <= state.length) return n;
25977 // Don't have enough
25978 if (!state.ended) {
25979 state.needReadable = true;
25982 return state.length;
25985 // you can override either this method, or the async _read(n) below.
25986 Readable.prototype.read = function (n) {
25988 n = parseInt(n,
10);
25989 var state = this._readableState;
25992 if (n !==
0) state.emittedReadable = false;
25994 // if we're doing read(
0) to trigger a readable event, but we
25995 // already have a bunch of data in the buffer, then just trigger
25996 // the 'readable' event and move on.
25997 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
25998 debug('read: emitReadable', state.length, state.ended);
25999 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26003 n = howMuchToRead(n, state);
26005 // if we've ended, and we're now clear, then finish it up.
26006 if (n ===
0 && state.ended) {
26007 if (state.length ===
0) endReadable(this);
26011 // All the actual chunk generation logic needs to be
26012 // *below* the call to _read. The reason is that in certain
26013 // synthetic stream cases, such as passthrough streams, _read
26014 // may be a completely synchronous operation which may change
26015 // the state of the read buffer, providing enough data when
26016 // before there was *not* enough.
26018 // So, the steps are:
26019 //
1. Figure out what the state of things will be after we do
26020 // a read from the buffer.
26022 //
2. If that resulting state will trigger a _read, then call _read.
26023 // Note that this may be asynchronous, or synchronous. Yes, it is
26024 // deeply ugly to write APIs this way, but that still doesn't mean
26025 // that the Readable class should behave improperly, as streams are
26026 // designed to be sync/async agnostic.
26027 // Take note if the _read call is sync or async (ie, if the read call
26028 // has returned yet), so that we know whether or not it's safe to emit
26031 //
3. Actually pull the requested chunks out of the buffer and return.
26033 // if we need a readable event, then we need to do some reading.
26034 var doRead = state.needReadable;
26035 debug('need readable', doRead);
26037 // if we currently have less than the highWaterMark, then also read some
26038 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26040 debug('length less than watermark', doRead);
26043 // however, if we've ended, then there's no point, and if we're already
26044 // reading, then it's unnecessary.
26045 if (state.ended || state.reading) {
26047 debug('reading or ended', doRead);
26048 } else if (doRead) {
26050 state.reading = true;
26052 // if the length is currently zero, then we *need* a readable event.
26053 if (state.length ===
0) state.needReadable = true;
26054 // call internal read method
26055 this._read(state.highWaterMark);
26056 state.sync = false;
26057 // If _read pushed data synchronously, then `reading` will be false,
26058 // and we need to re-evaluate how much data we can return to the user.
26059 if (!state.reading) n = howMuchToRead(nOrig, state);
26063 if (n
> 0) ret = fromList(n, state);else ret = null;
26065 if (ret === null) {
26066 state.needReadable = true;
26072 if (state.length ===
0) {
26073 // If we have nothing in the buffer, then we want to know
26074 // as soon as we *do* get something into the buffer.
26075 if (!state.ended) state.needReadable = true;
26077 // If we tried to read() past the EOF, then emit end on the next tick.
26078 if (nOrig !== n && state.ended) endReadable(this);
26081 if (ret !== null) this.emit('data', ret);
26086 function chunkInvalid(state, chunk) {
26088 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26089 er = new TypeError('Invalid non-string/buffer chunk');
26094 function onEofChunk(stream, state) {
26095 if (state.ended) return;
26096 if (state.decoder) {
26097 var chunk = state.decoder.end();
26098 if (chunk && chunk.length) {
26099 state.buffer.push(chunk);
26100 state.length += state.objectMode ?
1 : chunk.length;
26103 state.ended = true;
26105 // emit 'readable' now to make sure it gets picked up.
26106 emitReadable(stream);
26109 // Don't emit readable right away in sync mode, because this can trigger
26110 // another read() call =
> stack overflow. This way, it might trigger
26111 // a nextTick recursion warning, but that's not so bad.
26112 function emitReadable(stream) {
26113 var state = stream._readableState;
26114 state.needReadable = false;
26115 if (!state.emittedReadable) {
26116 debug('emitReadable', state.flowing);
26117 state.emittedReadable = true;
26118 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26122 function emitReadable_(stream) {
26123 debug('emit readable');
26124 stream.emit('readable');
26128 // at this point, the user has presumably seen the 'readable' event,
26129 // and called read() to consume some data. that may have triggered
26130 // in turn another _read(n) call, in which case reading = true if
26131 // it's in progress.
26132 // However, if we're not ended, or reading, and the length < hwm,
26133 // then go ahead and try to read some more preemptively.
26134 function maybeReadMore(stream, state) {
26135 if (!state.readingMore) {
26136 state.readingMore = true;
26137 processNextTick(maybeReadMore_, stream, state);
26141 function maybeReadMore_(stream, state) {
26142 var len = state.length;
26143 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26144 debug('maybeReadMore read
0');
26146 if (len === state.length)
26147 // didn't get any data, stop spinning.
26148 break;else len = state.length;
26150 state.readingMore = false;
26153 // abstract method. to be overridden in specific implementation classes.
26154 // call cb(er, data) where data is <= n in length.
26155 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26156 // arbitrary, and perhaps not very meaningful.
26157 Readable.prototype._read = function (n) {
26158 this.emit('error', new Error('_read() is not implemented'));
26161 Readable.prototype.pipe = function (dest, pipeOpts) {
26163 var state = this._readableState;
26165 switch (state.pipesCount) {
26167 state.pipes = dest;
26170 state.pipes = [state.pipes, dest];
26173 state.pipes.push(dest);
26176 state.pipesCount +=
1;
26177 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26179 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26181 var endFn = doEnd ? onend : cleanup;
26182 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26184 dest.on('unpipe', onunpipe);
26185 function onunpipe(readable) {
26187 if (readable === src) {
26197 // when the dest drains, it reduces the awaitDrain counter
26198 // on the source. This would be more elegant with a .once()
26199 // handler in flow(), but adding and removing repeatedly is
26201 var ondrain = pipeOnDrain(src);
26202 dest.on('drain', ondrain);
26204 var cleanedUp = false;
26205 function cleanup() {
26207 // cleanup event handlers once the pipe is broken
26208 dest.removeListener('close', onclose);
26209 dest.removeListener('finish', onfinish);
26210 dest.removeListener('drain', ondrain);
26211 dest.removeListener('error', onerror);
26212 dest.removeListener('unpipe', onunpipe);
26213 src.removeListener('end', onend);
26214 src.removeListener('end', cleanup);
26215 src.removeListener('data', ondata);
26219 // if the reader is waiting for a drain event from this
26220 // specific writer, then it would cause it to never start
26222 // So, if this is awaiting a drain, then we just call it now.
26223 // If we don't know, then assume that we are waiting for one.
26224 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26227 // If the user pushes more data while we're writing to dest then we'll end up
26228 // in ondata again. However, we only want to increase awaitDrain once because
26229 // dest will only emit one 'drain' event for the multiple writes.
26230 // =
> Introduce a guard on increasing awaitDrain.
26231 var increasedAwaitDrain = false;
26232 src.on('data', ondata);
26233 function ondata(chunk) {
26235 increasedAwaitDrain = false;
26236 var ret = dest.write(chunk);
26237 if (false === ret && !increasedAwaitDrain) {
26238 // If the user unpiped during `dest.write()`, it is possible
26239 // to get stuck in a permanently paused state if that write
26240 // also returned false.
26241 // =
> Check whether `dest` is still a piping destination.
26242 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26243 debug('false write response, pause', src._readableState.awaitDrain);
26244 src._readableState.awaitDrain++;
26245 increasedAwaitDrain = true;
26251 // if the dest has an error, then stop piping into it.
26252 // however, don't suppress the throwing behavior for this.
26253 function onerror(er) {
26254 debug('onerror', er);
26256 dest.removeListener('error', onerror);
26257 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26260 // Make sure our error handler is attached before userland ones.
26261 prependListener(dest, 'error', onerror);
26263 // Both close and finish should trigger unpipe, but only once.
26264 function onclose() {
26265 dest.removeListener('finish', onfinish);
26268 dest.once('close', onclose);
26269 function onfinish() {
26271 dest.removeListener('close', onclose);
26274 dest.once('finish', onfinish);
26276 function unpipe() {
26281 // tell the dest that it's being piped to
26282 dest.emit('pipe', src);
26284 // start the flow if it hasn't been started already.
26285 if (!state.flowing) {
26286 debug('pipe resume');
26293 function pipeOnDrain(src) {
26294 return function () {
26295 var state = src._readableState;
26296 debug('pipeOnDrain', state.awaitDrain);
26297 if (state.awaitDrain) state.awaitDrain--;
26298 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26299 state.flowing = true;
26305 Readable.prototype.unpipe = function (dest) {
26306 var state = this._readableState;
26308 // if we're not piping anywhere, then do nothing.
26309 if (state.pipesCount ===
0) return this;
26311 // just one destination. most common case.
26312 if (state.pipesCount ===
1) {
26313 // passed in one, but it's not the right one.
26314 if (dest && dest !== state.pipes) return this;
26316 if (!dest) dest = state.pipes;
26319 state.pipes = null;
26320 state.pipesCount =
0;
26321 state.flowing = false;
26322 if (dest) dest.emit('unpipe', this);
26326 // slow case. multiple pipe destinations.
26330 var dests = state.pipes;
26331 var len = state.pipesCount;
26332 state.pipes = null;
26333 state.pipesCount =
0;
26334 state.flowing = false;
26336 for (var i =
0; i < len; i++) {
26337 dests[i].emit('unpipe', this);
26341 // try to find the right one.
26342 var index = indexOf(state.pipes, dest);
26343 if (index === -
1) return this;
26345 state.pipes.splice(index,
1);
26346 state.pipesCount -=
1;
26347 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26349 dest.emit('unpipe', this);
26354 // set up data events if they are asked for
26355 // Ensure readable listeners eventually get something
26356 Readable.prototype.on = function (ev, fn) {
26357 var res = Stream.prototype.on.call(this, ev, fn);
26359 if (ev === 'data') {
26360 // Start flowing on next tick if stream isn't explicitly paused
26361 if (this._readableState.flowing !== false) this.resume();
26362 } else if (ev === 'readable') {
26363 var state = this._readableState;
26364 if (!state.endEmitted && !state.readableListening) {
26365 state.readableListening = state.needReadable = true;
26366 state.emittedReadable = false;
26367 if (!state.reading) {
26368 processNextTick(nReadingNextTick, this);
26369 } else if (state.length) {
26370 emitReadable(this, state);
26377 Readable.prototype.addListener = Readable.prototype.on;
26379 function nReadingNextTick(self) {
26380 debug('readable nexttick read
0');
26384 // pause() and resume() are remnants of the legacy readable stream API
26385 // If the user uses them, then switch into old mode.
26386 Readable.prototype.resume = function () {
26387 var state = this._readableState;
26388 if (!state.flowing) {
26390 state.flowing = true;
26391 resume(this, state);
26396 function resume(stream, state) {
26397 if (!state.resumeScheduled) {
26398 state.resumeScheduled = true;
26399 processNextTick(resume_, stream, state);
26403 function resume_(stream, state) {
26404 if (!state.reading) {
26405 debug('resume read
0');
26409 state.resumeScheduled = false;
26410 state.awaitDrain =
0;
26411 stream.emit('resume');
26413 if (state.flowing && !state.reading) stream.read(
0);
26416 Readable.prototype.pause = function () {
26417 debug('call pause flowing=%j', this._readableState.flowing);
26418 if (false !== this._readableState.flowing) {
26420 this._readableState.flowing = false;
26421 this.emit('pause');
26426 function flow(stream) {
26427 var state = stream._readableState;
26428 debug('flow', state.flowing);
26429 while (state.flowing && stream.read() !== null) {}
26432 // wrap an old-style stream as the async data source.
26433 // This is *not* part of the readable stream interface.
26434 // It is an ugly unfortunate mess of history.
26435 Readable.prototype.wrap = function (stream) {
26436 var state = this._readableState;
26437 var paused = false;
26440 stream.on('end', function () {
26441 debug('wrapped end');
26442 if (state.decoder && !state.ended) {
26443 var chunk = state.decoder.end();
26444 if (chunk && chunk.length) self.push(chunk);
26450 stream.on('data', function (chunk) {
26451 debug('wrapped data');
26452 if (state.decoder) chunk = state.decoder.write(chunk);
26454 // don't skip over falsy values in objectMode
26455 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26457 var ret = self.push(chunk);
26464 // proxy all the other methods.
26465 // important when wrapping filters and duplexes.
26466 for (var i in stream) {
26467 if (this[i] === undefined && typeof stream[i] === 'function') {
26468 this[i] = function (method) {
26469 return function () {
26470 return stream[method].apply(stream, arguments);
26476 // proxy certain important events.
26477 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26478 forEach(events, function (ev) {
26479 stream.on(ev, self.emit.bind(self, ev));
26482 // when we try to consume some more bytes, simply unpause the
26483 // underlying stream.
26484 self._read = function (n) {
26485 debug('wrapped _read', n);
26495 // exposed for testing purposes only.
26496 Readable._fromList = fromList;
26498 // Pluck off n bytes from an array of buffers.
26499 // Length is the combined lengths of all the buffers in the list.
26500 // This function is designed to be inlinable, so please take care when making
26501 // changes to the function body.
26502 function fromList(n, state) {
26503 // nothing buffered
26504 if (state.length ===
0) return null;
26507 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26508 // read it all, truncate the list
26509 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
26510 state.buffer.clear();
26512 // read part of list
26513 ret = fromListPartial(n, state.buffer, state.decoder);
26519 // Extracts only enough buffered data to satisfy the amount requested.
26520 // This function is designed to be inlinable, so please take care when making
26521 // changes to the function body.
26522 function fromListPartial(n, list, hasStrings) {
26524 if (n < list.head.data.length) {
26525 // slice is the same for buffers and strings
26526 ret = list.head.data.slice(
0, n);
26527 list.head.data = list.head.data.slice(n);
26528 } else if (n === list.head.data.length) {
26529 // first chunk is a perfect match
26530 ret = list.shift();
26532 // result spans more than one buffer
26533 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26538 // Copies a specified amount of characters from the list of buffered data
26540 // This function is designed to be inlinable, so please take care when making
26541 // changes to the function body.
26542 function copyFromBufferString(n, list) {
26547 while (p = p.next) {
26549 var nb = n
> str.length ? str.length : n;
26550 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26553 if (nb === str.length) {
26555 if (p.next) list.head = p.next;else list.head = list.tail = null;
26558 p.data = str.slice(nb);
26568 // Copies a specified amount of bytes from the list of buffered data chunks.
26569 // This function is designed to be inlinable, so please take care when making
26570 // changes to the function body.
26571 function copyFromBuffer(n, list) {
26572 var ret = bufferShim.allocUnsafe(n);
26576 n -= p.data.length;
26577 while (p = p.next) {
26579 var nb = n
> buf.length ? buf.length : n;
26580 buf.copy(ret, ret.length - n,
0, nb);
26583 if (nb === buf.length) {
26585 if (p.next) list.head = p.next;else list.head = list.tail = null;
26588 p.data = buf.slice(nb);
26598 function endReadable(stream) {
26599 var state = stream._readableState;
26601 // If we get here before consuming all the bytes, then that is a
26602 // bug in node. Should never happen.
26603 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26605 if (!state.endEmitted) {
26606 state.ended = true;
26607 processNextTick(endReadableNT, state, stream);
26611 function endReadableNT(state, stream) {
26612 // Check that we didn't get one last unshift.
26613 if (!state.endEmitted && state.length ===
0) {
26614 state.endEmitted = true;
26615 stream.readable = false;
26616 stream.emit('end');
26620 function forEach(xs, f) {
26621 for (var i =
0, l = xs.length; i < l; i++) {
26626 function indexOf(xs, x) {
26627 for (var i =
0, l = xs.length; i < l; i++) {
26628 if (xs[i] === x) return i;
26632 }).call(this,require('_process'))
26633 },{
"./_stream_duplex":
15,
"./internal/streams/BufferList":
20,
"_process":
13,
"buffer":
5,
"buffer-shims":
4,
"core-util-is":
6,
"events":
7,
"inherits":
9,
"isarray":
11,
"process-nextick-args":
12,
"string_decoder/":
26,
"util":
3}],
18:[function(require,module,exports){
26634 // a transform stream is a readable/writable stream where you do
26635 // something with the data. Sometimes it's called a
"filter",
26636 // but that's not a great name for it, since that implies a thing where
26637 // some bits pass through, and others are simply ignored. (That would
26638 // be a valid example of a transform, of course.)
26640 // While the output is causally related to the input, it's not a
26641 // necessarily symmetric or synchronous transformation. For example,
26642 // a zlib stream might take multiple plain-text writes(), and then
26643 // emit a single compressed chunk some time in the future.
26645 // Here's how this works:
26647 // The Transform stream has all the aspects of the readable and writable
26648 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26649 // internally, and returns false if there's a lot of pending writes
26650 // buffered up. When you call read(), that calls _read(n) until
26651 // there's enough pending readable data buffered up.
26653 // In a transform stream, the written data is placed in a buffer. When
26654 // _read(n) is called, it transforms the queued up data, calling the
26655 // buffered _write cb's as it consumes chunks. If consuming a single
26656 // written chunk would result in multiple output chunks, then the first
26657 // outputted bit calls the readcb, and subsequent chunks just go into
26658 // the read buffer, and will cause it to emit 'readable' if necessary.
26660 // This way, back-pressure is actually determined by the reading side,
26661 // since _read has to be called to start processing a new chunk. However,
26662 // a pathological inflate type of transform can cause excessive buffering
26663 // here. For example, imagine a stream where every byte of input is
26664 // interpreted as an integer from
0-
255, and then results in that many
26665 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26666 //
1kb of data being output. In this case, you could write a very small
26667 // amount of input, and end up with a very large amount of output. In
26668 // such a pathological inflating mechanism, there'd be no way to tell
26669 // the system to stop doing the transform. A single
4MB write could
26670 // cause the system to run out of memory.
26672 // However, even in such a pathological case, only a single written chunk
26673 // would be consumed, and then the rest would wait (un-transformed) until
26674 // the results of the previous transformed chunk were consumed.
26678 module.exports = Transform;
26680 var Duplex = require('./_stream_duplex');
26683 var util = require('core-util-is');
26684 util.inherits = require('inherits');
26687 util.inherits(Transform, Duplex);
26689 function TransformState(stream) {
26690 this.afterTransform = function (er, data) {
26691 return afterTransform(stream, er, data);
26694 this.needTransform = false;
26695 this.transforming = false;
26696 this.writecb = null;
26697 this.writechunk = null;
26698 this.writeencoding = null;
26701 function afterTransform(stream, er, data) {
26702 var ts = stream._transformState;
26703 ts.transforming = false;
26705 var cb = ts.writecb;
26707 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26709 ts.writechunk = null;
26712 if (data !== null && data !== undefined) stream.push(data);
26716 var rs = stream._readableState;
26717 rs.reading = false;
26718 if (rs.needReadable || rs.length < rs.highWaterMark) {
26719 stream._read(rs.highWaterMark);
26723 function Transform(options) {
26724 if (!(this instanceof Transform)) return new Transform(options);
26726 Duplex.call(this, options);
26728 this._transformState = new TransformState(this);
26732 // start out asking for a readable event once data is transformed.
26733 this._readableState.needReadable = true;
26735 // we have implemented the _read method, and done the other things
26736 // that Readable wants before the first _read call, so unset the
26737 // sync guard flag.
26738 this._readableState.sync = false;
26741 if (typeof options.transform === 'function') this._transform = options.transform;
26743 if (typeof options.flush === 'function') this._flush = options.flush;
26746 // When the writable side finishes, then flush out anything remaining.
26747 this.once('prefinish', function () {
26748 if (typeof this._flush === 'function') this._flush(function (er, data) {
26749 done(stream, er, data);
26750 });else done(stream);
26754 Transform.prototype.push = function (chunk, encoding) {
26755 this._transformState.needTransform = false;
26756 return Duplex.prototype.push.call(this, chunk, encoding);
26759 // This is the part where you do stuff!
26760 // override this function in implementation classes.
26761 // 'chunk' is an input chunk.
26763 // Call `push(newChunk)` to pass along transformed output
26764 // to the readable side. You may call 'push' zero or more times.
26766 // Call `cb(err)` when you are done with this chunk. If you pass
26767 // an error, then that'll put the hurt on the whole operation. If you
26768 // never call cb(), then you'll never get another chunk.
26769 Transform.prototype._transform = function (chunk, encoding, cb) {
26770 throw new Error('_transform() is not implemented');
26773 Transform.prototype._write = function (chunk, encoding, cb) {
26774 var ts = this._transformState;
26776 ts.writechunk = chunk;
26777 ts.writeencoding = encoding;
26778 if (!ts.transforming) {
26779 var rs = this._readableState;
26780 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26784 // Doesn't matter what the args are here.
26785 // _transform does all the work.
26786 // That we got here means that the readable side wants more data.
26787 Transform.prototype._read = function (n) {
26788 var ts = this._transformState;
26790 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26791 ts.transforming = true;
26792 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26794 // mark that we need a transform, so that any data that comes in
26795 // will get processed, now that we've asked for it.
26796 ts.needTransform = true;
26800 function done(stream, er, data) {
26801 if (er) return stream.emit('error', er);
26803 if (data !== null && data !== undefined) stream.push(data);
26805 // if there's nothing in the write buffer, then that means
26806 // that nothing more will ever be provided
26807 var ws = stream._writableState;
26808 var ts = stream._transformState;
26810 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26812 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26814 return stream.push(null);
26816 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26817 (function (process){
26818 // A bit simpler than readable streams.
26819 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26820 // the drain event emission and buffering.
26824 module.exports = Writable;
26827 var processNextTick = require('process-nextick-args');
26831 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26838 Writable.WritableState = WritableState;
26841 var util = require('core-util-is');
26842 util.inherits = require('inherits');
26846 var internalUtil = {
26847 deprecate: require('util-deprecate')
26855 Stream = require('st' + 'ream');
26856 } catch (_) {} finally {
26857 if (!Stream) Stream = require('events').EventEmitter;
26862 var Buffer = require('buffer').Buffer;
26864 var bufferShim = require('buffer-shims');
26867 util.inherits(Writable, Stream);
26871 function WriteReq(chunk, encoding, cb) {
26872 this.chunk = chunk;
26873 this.encoding = encoding;
26874 this.callback = cb;
26878 function WritableState(options, stream) {
26879 Duplex = Duplex || require('./_stream_duplex');
26881 options = options || {};
26883 // object stream flag to indicate whether or not this stream
26884 // contains buffers or objects.
26885 this.objectMode = !!options.objectMode;
26887 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26889 // the point at which write() starts returning false
26890 // Note:
0 is a valid value, means that we always return false if
26891 // the entire buffer is not flushed immediately on write()
26892 var hwm = options.highWaterMark;
26893 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26894 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26897 this.highWaterMark = ~ ~this.highWaterMark;
26899 // drain event flag.
26900 this.needDrain = false;
26901 // at the start of calling end()
26902 this.ending = false;
26903 // when end() has been called, and returned
26904 this.ended = false;
26905 // when 'finish' is emitted
26906 this.finished = false;
26908 // should we decode strings into buffers before passing to _write?
26909 // this is here so that some node-core streams can optimize string
26910 // handling at a lower level.
26911 var noDecode = options.decodeStrings === false;
26912 this.decodeStrings = !noDecode;
26914 // Crypto is kind of old and crusty. Historically, its default string
26915 // encoding is 'binary' so we have to make this configurable.
26916 // Everything else in the universe uses 'utf8', though.
26917 this.defaultEncoding = options.defaultEncoding || 'utf8';
26919 // not an actual buffer we keep track of, but a measurement
26920 // of how much we're waiting to get pushed to some underlying
26924 // a flag to see when we're in the middle of a write.
26925 this.writing = false;
26927 // when true all writes will be buffered until .uncork() call
26930 // a flag to be able to tell if the onwrite cb is called immediately,
26931 // or on a later tick. We set this to true at first, because any
26932 // actions that shouldn't happen until "later" should generally also
26933 // not happen before the first write call.
26936 // a flag to know if we're processing previously buffered items, which
26937 // may call the _write() callback in the same tick, so that we don't
26938 // end up in an overlapped onwrite situation.
26939 this.bufferProcessing = false;
26941 // the callback that's passed to _write(chunk,cb)
26942 this.onwrite = function (er) {
26943 onwrite(stream, er);
26946 // the callback that the user supplies to write(chunk,encoding,cb)
26947 this.writecb = null;
26949 // the amount that is being written when _write is called.
26952 this.bufferedRequest = null;
26953 this.lastBufferedRequest = null;
26955 // number of pending user-supplied write callbacks
26956 // this must be
0 before 'finish' can be emitted
26957 this.pendingcb =
0;
26959 // emit prefinish if the only thing we're waiting for is _write cbs
26960 // This is relevant for synchronous Transform streams
26961 this.prefinished = false;
26963 // True if the error was already emitted and should not be thrown again
26964 this.errorEmitted = false;
26966 // count buffered requests
26967 this.bufferedRequestCount =
0;
26969 // allocate the first CorkedRequest, there is always
26970 // one allocated and free to use, and we maintain at most two
26971 this.corkedRequestsFree = new CorkedRequest(this);
26974 WritableState.prototype.getBuffer = function getBuffer() {
26975 var current = this.bufferedRequest;
26979 current = current.next;
26986 Object.defineProperty(WritableState.prototype, 'buffer', {
26987 get: internalUtil.deprecate(function () {
26988 return this.getBuffer();
26989 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
26994 // Test _writableState for inheritance to account for Duplex streams,
26995 // whose prototype chain only points to Readable.
26996 var realHasInstance;
26997 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
26998 realHasInstance = Function.prototype[Symbol.hasInstance];
26999 Object.defineProperty(Writable, Symbol.hasInstance, {
27000 value: function (object) {
27001 if (realHasInstance.call(this, object)) return true;
27003 return object && object._writableState instanceof WritableState;
27007 realHasInstance = function (object) {
27008 return object instanceof this;
27012 function Writable(options) {
27013 Duplex = Duplex || require('./_stream_duplex');
27015 // Writable ctor is applied to Duplexes, too.
27016 // `realHasInstance` is necessary because using plain `instanceof`
27017 // would return false, as no `_writableState` property is attached.
27019 // Trying to use the custom `instanceof` for Writable here will also break the
27020 // Node.js LazyTransform implementation, which has a non-trivial getter for
27021 // `_writableState` that would lead to infinite recursion.
27022 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27023 return new Writable(options);
27026 this._writableState = new WritableState(options, this);
27029 this.writable = true;
27032 if (typeof options.write === 'function') this._write = options.write;
27034 if (typeof options.writev === 'function') this._writev = options.writev;
27040 // Otherwise people can pipe Writable streams, which is just wrong.
27041 Writable.prototype.pipe = function () {
27042 this.emit('error', new Error('Cannot pipe, not readable'));
27045 function writeAfterEnd(stream, cb) {
27046 var er = new Error('write after end');
27047 // TODO: defer error events consistently everywhere, not just the cb
27048 stream.emit('error', er);
27049 processNextTick(cb, er);
27052 // If we get something that is not a buffer, string, null, or undefined,
27053 // and we're not in objectMode, then that's an error.
27054 // Otherwise stream chunks are all considered to be of length=
1, and the
27055 // watermarks determine how many objects to keep in the buffer, rather than
27056 // how many bytes or characters.
27057 function validChunk(stream, state, chunk, cb) {
27060 // Always throw error if a null is written
27061 // if we are not in object mode then throw
27062 // if it is not a buffer, string, or undefined.
27063 if (chunk === null) {
27064 er = new TypeError('May not write null values to stream');
27065 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27066 er = new TypeError('Invalid non-string/buffer chunk');
27069 stream.emit('error', er);
27070 processNextTick(cb, er);
27076 Writable.prototype.write = function (chunk, encoding, cb) {
27077 var state = this._writableState;
27080 if (typeof encoding === 'function') {
27085 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27087 if (typeof cb !== 'function') cb = nop;
27089 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27091 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27097 Writable.prototype.cork = function () {
27098 var state = this._writableState;
27103 Writable.prototype.uncork = function () {
27104 var state = this._writableState;
27106 if (state.corked) {
27109 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27113 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27114 // node::ParseEncoding() requires lower case.
27115 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27116 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
27117 this._writableState.defaultEncoding = encoding;
27121 function decodeChunk(state, chunk, encoding) {
27122 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27123 chunk = bufferShim.from(chunk, encoding);
27128 // if we're already writing something, then just put this
27129 // in the queue, and wait our turn. Otherwise, call _write
27130 // If we return false, then we need a drain event, so set that flag.
27131 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27132 chunk = decodeChunk(state, chunk, encoding);
27134 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27135 var len = state.objectMode ?
1 : chunk.length;
27137 state.length += len;
27139 var ret = state.length < state.highWaterMark;
27140 // we must ensure that previous needDrain will not be reset to false.
27141 if (!ret) state.needDrain = true;
27143 if (state.writing || state.corked) {
27144 var last = state.lastBufferedRequest;
27145 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27147 last.next = state.lastBufferedRequest;
27149 state.bufferedRequest = state.lastBufferedRequest;
27151 state.bufferedRequestCount +=
1;
27153 doWrite(stream, state, false, len, chunk, encoding, cb);
27159 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27160 state.writelen = len;
27161 state.writecb = cb;
27162 state.writing = true;
27164 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27165 state.sync = false;
27168 function onwriteError(stream, state, sync, er, cb) {
27170 if (sync) processNextTick(cb, er);else cb(er);
27172 stream._writableState.errorEmitted = true;
27173 stream.emit('error', er);
27176 function onwriteStateUpdate(state) {
27177 state.writing = false;
27178 state.writecb = null;
27179 state.length -= state.writelen;
27180 state.writelen =
0;
27183 function onwrite(stream, er) {
27184 var state = stream._writableState;
27185 var sync = state.sync;
27186 var cb = state.writecb;
27188 onwriteStateUpdate(state);
27190 if (er) onwriteError(stream, state, sync, er, cb);else {
27191 // Check if we're actually ready to finish, but don't emit yet
27192 var finished = needFinish(state);
27194 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27195 clearBuffer(stream, state);
27200 asyncWrite(afterWrite, stream, state, finished, cb);
27203 afterWrite(stream, state, finished, cb);
27208 function afterWrite(stream, state, finished, cb) {
27209 if (!finished) onwriteDrain(stream, state);
27212 finishMaybe(stream, state);
27215 // Must force callback to be called on nextTick, so that we don't
27216 // emit 'drain' before the write() consumer gets the 'false' return
27217 // value, and has a chance to attach a 'drain' listener.
27218 function onwriteDrain(stream, state) {
27219 if (state.length ===
0 && state.needDrain) {
27220 state.needDrain = false;
27221 stream.emit('drain');
27225 // if there's something in the buffer waiting, then process it
27226 function clearBuffer(stream, state) {
27227 state.bufferProcessing = true;
27228 var entry = state.bufferedRequest;
27230 if (stream._writev && entry && entry.next) {
27231 // Fast case, write everything using _writev()
27232 var l = state.bufferedRequestCount;
27233 var buffer = new Array(l);
27234 var holder = state.corkedRequestsFree;
27235 holder.entry = entry;
27239 buffer[count] = entry;
27240 entry = entry.next;
27244 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27246 // doWrite is almost always async, defer these to save a bit of time
27247 // as the hot path ends with doWrite
27249 state.lastBufferedRequest = null;
27251 state.corkedRequestsFree = holder.next;
27252 holder.next = null;
27254 state.corkedRequestsFree = new CorkedRequest(state);
27257 // Slow case, write chunks one-by-one
27259 var chunk = entry.chunk;
27260 var encoding = entry.encoding;
27261 var cb = entry.callback;
27262 var len = state.objectMode ?
1 : chunk.length;
27264 doWrite(stream, state, false, len, chunk, encoding, cb);
27265 entry = entry.next;
27266 // if we didn't call the onwrite immediately, then
27267 // it means that we need to wait until it does.
27268 // also, that means that the chunk and cb are currently
27269 // being processed, so move the buffer counter past them.
27270 if (state.writing) {
27275 if (entry === null) state.lastBufferedRequest = null;
27278 state.bufferedRequestCount =
0;
27279 state.bufferedRequest = entry;
27280 state.bufferProcessing = false;
27283 Writable.prototype._write = function (chunk, encoding, cb) {
27284 cb(new Error('_write() is not implemented'));
27287 Writable.prototype._writev = null;
27289 Writable.prototype.end = function (chunk, encoding, cb) {
27290 var state = this._writableState;
27292 if (typeof chunk === 'function') {
27296 } else if (typeof encoding === 'function') {
27301 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27303 // .end() fully uncorks
27304 if (state.corked) {
27309 // ignore unnecessary end() calls.
27310 if (!state.ending && !state.finished) endWritable(this, state, cb);
27313 function needFinish(state) {
27314 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27317 function prefinish(stream, state) {
27318 if (!state.prefinished) {
27319 state.prefinished = true;
27320 stream.emit('prefinish');
27324 function finishMaybe(stream, state) {
27325 var need = needFinish(state);
27327 if (state.pendingcb ===
0) {
27328 prefinish(stream, state);
27329 state.finished = true;
27330 stream.emit('finish');
27332 prefinish(stream, state);
27338 function endWritable(stream, state, cb) {
27339 state.ending = true;
27340 finishMaybe(stream, state);
27342 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27344 state.ended = true;
27345 stream.writable = false;
27348 // It seems a linked list but it is not
27349 // there will be only
2 of these for each stream
27350 function CorkedRequest(state) {
27356 this.finish = function (err) {
27357 var entry = _this.entry;
27358 _this.entry = null;
27360 var cb = entry.callback;
27363 entry = entry.next;
27365 if (state.corkedRequestsFree) {
27366 state.corkedRequestsFree.next = _this;
27368 state.corkedRequestsFree = _this;
27372 }).call(this,require('_process'))
27373 },{"./_stream_duplex":
15,"_process":
13,"buffer":
5,"buffer-shims":
4,"core-util-is":
6,"events":
7,"inherits":
9,"process-nextick-args":
12,"util-deprecate":
27}],
20:[function(require,module,exports){
27376 var Buffer = require('buffer').Buffer;
27378 var bufferShim = require('buffer-shims');
27381 module.exports = BufferList;
27383 function BufferList() {
27389 BufferList.prototype.push = function (v) {
27390 var entry = { data: v, next: null };
27391 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27396 BufferList.prototype.unshift = function (v) {
27397 var entry = { data: v, next: this.head };
27398 if (this.length ===
0) this.tail = entry;
27403 BufferList.prototype.shift = function () {
27404 if (this.length ===
0) return;
27405 var ret = this.head.data;
27406 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27411 BufferList.prototype.clear = function () {
27412 this.head = this.tail = null;
27416 BufferList.prototype.join = function (s) {
27417 if (this.length ===
0) return '';
27419 var ret = '' + p.data;
27420 while (p = p.next) {
27425 BufferList.prototype.concat = function (n) {
27426 if (this.length ===
0) return bufferShim.alloc(
0);
27427 if (this.length ===
1) return this.head.data;
27428 var ret = bufferShim.allocUnsafe(n
>>> 0);
27432 p.data.copy(ret, i);
27433 i += p.data.length;
27438 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27439 module.exports = require(
"./lib/_stream_passthrough.js")
27441 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27442 (function (process){
27443 var Stream = (function (){
27445 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27448 exports = module.exports = require('./lib/_stream_readable.js');
27449 exports.Stream = Stream || exports;
27450 exports.Readable = exports;
27451 exports.Writable = require('./lib/_stream_writable.js');
27452 exports.Duplex = require('./lib/_stream_duplex.js');
27453 exports.Transform = require('./lib/_stream_transform.js');
27454 exports.PassThrough = require('./lib/_stream_passthrough.js');
27456 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27457 module.exports = Stream;
27460 }).call(this,require('_process'))
27461 },{
"./lib/_stream_duplex.js":
15,
"./lib/_stream_passthrough.js":
16,
"./lib/_stream_readable.js":
17,
"./lib/_stream_transform.js":
18,
"./lib/_stream_writable.js":
19,
"_process":
13}],
23:[function(require,module,exports){
27462 module.exports = require(
"./lib/_stream_transform.js")
27464 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27465 module.exports = require(
"./lib/_stream_writable.js")
27467 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27468 // Copyright Joyent, Inc. and other Node contributors.
27470 // Permission is hereby granted, free of charge, to any person obtaining a
27471 // copy of this software and associated documentation files (the
27472 //
"Software"), to deal in the Software without restriction, including
27473 // without limitation the rights to use, copy, modify, merge, publish,
27474 // distribute, sublicense, and/or sell copies of the Software, and to permit
27475 // persons to whom the Software is furnished to do so, subject to the
27476 // following conditions:
27478 // The above copyright notice and this permission notice shall be included
27479 // in all copies or substantial portions of the Software.
27481 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27482 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27483 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27484 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27485 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27486 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27487 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27489 module.exports = Stream;
27491 var EE = require('events').EventEmitter;
27492 var inherits = require('inherits');
27494 inherits(Stream, EE);
27495 Stream.Readable = require('readable-stream/readable.js');
27496 Stream.Writable = require('readable-stream/writable.js');
27497 Stream.Duplex = require('readable-stream/duplex.js');
27498 Stream.Transform = require('readable-stream/transform.js');
27499 Stream.PassThrough = require('readable-stream/passthrough.js');
27501 // Backwards-compat with node
0.4.x
27502 Stream.Stream = Stream;
27506 // old-style streams. Note that the pipe method (the only relevant
27507 // part of this class) is overridden in the Readable class.
27509 function Stream() {
27513 Stream.prototype.pipe = function(dest, options) {
27516 function ondata(chunk) {
27517 if (dest.writable) {
27518 if (false === dest.write(chunk) && source.pause) {
27524 source.on('data', ondata);
27526 function ondrain() {
27527 if (source.readable && source.resume) {
27532 dest.on('drain', ondrain);
27534 // If the 'end' option is not supplied, dest.end() will be called when
27535 // source gets the 'end' or 'close' events. Only dest.end() once.
27536 if (!dest._isStdio && (!options || options.end !== false)) {
27537 source.on('end', onend);
27538 source.on('close', onclose);
27541 var didOnEnd = false;
27543 if (didOnEnd) return;
27550 function onclose() {
27551 if (didOnEnd) return;
27554 if (typeof dest.destroy === 'function') dest.destroy();
27557 // don't leave dangling pipes when there are errors.
27558 function onerror(er) {
27560 if (EE.listenerCount(this, 'error') ===
0) {
27561 throw er; // Unhandled stream error in pipe.
27565 source.on('error', onerror);
27566 dest.on('error', onerror);
27568 // remove all the event listeners that were added.
27569 function cleanup() {
27570 source.removeListener('data', ondata);
27571 dest.removeListener('drain', ondrain);
27573 source.removeListener('end', onend);
27574 source.removeListener('close', onclose);
27576 source.removeListener('error', onerror);
27577 dest.removeListener('error', onerror);
27579 source.removeListener('end', cleanup);
27580 source.removeListener('close', cleanup);
27582 dest.removeListener('close', cleanup);
27585 source.on('end', cleanup);
27586 source.on('close', cleanup);
27588 dest.on('close', cleanup);
27590 dest.emit('pipe', source);
27592 // Allow for unix-like usage: A.pipe(B).pipe(C)
27596 },{
"events":
7,
"inherits":
9,
"readable-stream/duplex.js":
14,
"readable-stream/passthrough.js":
21,
"readable-stream/readable.js":
22,
"readable-stream/transform.js":
23,
"readable-stream/writable.js":
24}],
26:[function(require,module,exports){
27597 // Copyright Joyent, Inc. and other Node contributors.
27599 // Permission is hereby granted, free of charge, to any person obtaining a
27600 // copy of this software and associated documentation files (the
27601 //
"Software"), to deal in the Software without restriction, including
27602 // without limitation the rights to use, copy, modify, merge, publish,
27603 // distribute, sublicense, and/or sell copies of the Software, and to permit
27604 // persons to whom the Software is furnished to do so, subject to the
27605 // following conditions:
27607 // The above copyright notice and this permission notice shall be included
27608 // in all copies or substantial portions of the Software.
27610 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27611 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27612 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27613 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27614 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27615 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27616 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27618 var Buffer = require('buffer').Buffer;
27620 var isBufferEncoding = Buffer.isEncoding
27621 || function(encoding) {
27622 switch (encoding && encoding.toLowerCase()) {
27623 case 'hex': case 'utf8': case 'utf-
8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-
2': case 'utf16le': case 'utf-
16le': case 'raw': return true;
27624 default: return false;
27629 function assertEncoding(encoding) {
27630 if (encoding && !isBufferEncoding(encoding)) {
27631 throw new Error('Unknown encoding: ' + encoding);
27635 // StringDecoder provides an interface for efficiently splitting a series of
27636 // buffers into a series of JS strings without breaking apart multi-byte
27637 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27639 // @TODO Handling all encodings inside a single object makes it very difficult
27640 // to reason about this code, so it should be split up in the future.
27641 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27642 // points as used by CESU-
8.
27643 var StringDecoder = exports.StringDecoder = function(encoding) {
27644 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27645 assertEncoding(encoding);
27646 switch (this.encoding) {
27648 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27649 this.surrogateSize =
3;
27653 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27654 this.surrogateSize =
2;
27655 this.detectIncompleteChar = utf16DetectIncompleteChar;
27658 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27659 this.surrogateSize =
3;
27660 this.detectIncompleteChar = base64DetectIncompleteChar;
27663 this.write = passThroughWrite;
27667 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27668 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27669 this.charBuffer = new Buffer(
6);
27670 // Number of bytes received for the current incomplete multi-byte character.
27671 this.charReceived =
0;
27672 // Number of bytes expected for the current incomplete multi-byte character.
27673 this.charLength =
0;
27677 // write decodes the given buffer and returns it as JS string that is
27678 // guaranteed to not contain any partial multi-byte characters. Any partial
27679 // character found at the end of the buffer is buffered up, and will be
27680 // returned when calling write again with the remaining bytes.
27682 // Note: Converting a Buffer containing an orphan surrogate to a String
27683 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27684 // Buffer#write) will replace incomplete surrogates with the unicode
27685 // replacement character. See https://codereview.chromium.org/
121173009/ .
27686 StringDecoder.prototype.write = function(buffer) {
27688 // if our last write ended with an incomplete multibyte character
27689 while (this.charLength) {
27690 // determine how many remaining bytes this buffer has to offer for this char
27691 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27692 this.charLength - this.charReceived :
27695 // add the new bytes to the char buffer
27696 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27697 this.charReceived += available;
27699 if (this.charReceived < this.charLength) {
27700 // still not enough chars in this buffer? wait for more ...
27704 // remove bytes belonging to the current character from the buffer
27705 buffer = buffer.slice(available, buffer.length);
27707 // get the character that was split
27708 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27710 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27711 var charCode = charStr.charCodeAt(charStr.length -
1);
27712 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27713 this.charLength += this.surrogateSize;
27717 this.charReceived = this.charLength =
0;
27719 // if there are no more bytes in this buffer, just emit our char
27720 if (buffer.length ===
0) {
27726 // determine and set charLength / charReceived
27727 this.detectIncompleteChar(buffer);
27729 var end = buffer.length;
27730 if (this.charLength) {
27731 // buffer the incomplete character bytes we got
27732 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27733 end -= this.charReceived;
27736 charStr += buffer.toString(this.encoding,
0, end);
27738 var end = charStr.length -
1;
27739 var charCode = charStr.charCodeAt(end);
27740 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27741 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27742 var size = this.surrogateSize;
27743 this.charLength += size;
27744 this.charReceived += size;
27745 this.charBuffer.copy(this.charBuffer, size,
0, size);
27746 buffer.copy(this.charBuffer,
0,
0, size);
27747 return charStr.substring(
0, end);
27750 // or just emit the charStr
27754 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27755 // the end of the given buffer. If so, it sets this.charLength to the byte
27756 // length that character, and sets this.charReceived to the number of bytes
27757 // that are available for this character.
27758 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27759 // determine how many bytes we have to check at the end of this buffer
27760 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27762 // Figure out if one of the last i bytes of our buffer announces an
27763 // incomplete char.
27764 for (; i
> 0; i--) {
27765 var c = buffer[buffer.length - i];
27767 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27770 if (i ==
1 && c
>> 5 ==
0x06) {
27771 this.charLength =
2;
27776 if (i <=
2 && c
>> 4 ==
0x0E) {
27777 this.charLength =
3;
27782 if (i <=
3 && c
>> 3 ==
0x1E) {
27783 this.charLength =
4;
27787 this.charReceived = i;
27790 StringDecoder.prototype.end = function(buffer) {
27792 if (buffer && buffer.length)
27793 res = this.write(buffer);
27795 if (this.charReceived) {
27796 var cr = this.charReceived;
27797 var buf = this.charBuffer;
27798 var enc = this.encoding;
27799 res += buf.slice(
0, cr).toString(enc);
27805 function passThroughWrite(buffer) {
27806 return buffer.toString(this.encoding);
27809 function utf16DetectIncompleteChar(buffer) {
27810 this.charReceived = buffer.length %
2;
27811 this.charLength = this.charReceived ?
2 :
0;
27814 function base64DetectIncompleteChar(buffer) {
27815 this.charReceived = buffer.length %
3;
27816 this.charLength = this.charReceived ?
3 :
0;
27819 },{
"buffer":
5}],
27:[function(require,module,exports){
27820 (function (global){
27826 module.exports = deprecate;
27829 * Mark that a method should not be used.
27830 * Returns a modified function which warns once by default.
27832 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27834 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27835 * will throw an Error when invoked.
27837 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27838 * will invoke `console.trace()` instead of `console.error()`.
27840 * @param {Function} fn - the function to deprecate
27841 * @param {String} msg - the string to print to the console when `fn` is invoked
27842 * @returns {Function} a new
"deprecated" version of `fn`
27846 function deprecate (fn, msg) {
27847 if (config('noDeprecation')) {
27851 var warned = false;
27852 function deprecated() {
27854 if (config('throwDeprecation')) {
27855 throw new Error(msg);
27856 } else if (config('traceDeprecation')) {
27857 console.trace(msg);
27863 return fn.apply(this, arguments);
27870 * Checks `localStorage` for boolean values for the given `name`.
27872 * @param {String} name
27873 * @returns {Boolean}
27877 function config (name) {
27878 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27880 if (!global.localStorage) return false;
27884 var val = global.localStorage[name];
27885 if (null == val) return false;
27886 return String(val).toLowerCase() === 'true';
27889 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27890 },{}],
28:[function(require,module,exports){
27891 arguments[
4][
9][
0].apply(exports,arguments)
27892 },{
"dup":
9}],
29:[function(require,module,exports){
27893 module.exports = function isBuffer(arg) {
27894 return arg && typeof arg === 'object'
27895 && typeof arg.copy === 'function'
27896 && typeof arg.fill === 'function'
27897 && typeof arg.readUInt8 === 'function';
27899 },{}],
30:[function(require,module,exports){
27900 (function (process,global){
27901 // Copyright Joyent, Inc. and other Node contributors.
27903 // Permission is hereby granted, free of charge, to any person obtaining a
27904 // copy of this software and associated documentation files (the
27905 //
"Software"), to deal in the Software without restriction, including
27906 // without limitation the rights to use, copy, modify, merge, publish,
27907 // distribute, sublicense, and/or sell copies of the Software, and to permit
27908 // persons to whom the Software is furnished to do so, subject to the
27909 // following conditions:
27911 // The above copyright notice and this permission notice shall be included
27912 // in all copies or substantial portions of the Software.
27914 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27915 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27916 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27917 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27918 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27919 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27920 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27922 var formatRegExp = /%[sdj%]/g;
27923 exports.format = function(f) {
27924 if (!isString(f)) {
27926 for (var i =
0; i < arguments.length; i++) {
27927 objects.push(inspect(arguments[i]));
27929 return objects.join(' ');
27933 var args = arguments;
27934 var len = args.length;
27935 var str = String(f).replace(formatRegExp, function(x) {
27936 if (x === '%%') return '%';
27937 if (i
>= len) return x;
27939 case '%s': return String(args[i++]);
27940 case '%d': return Number(args[i++]);
27943 return JSON.stringify(args[i++]);
27945 return '[Circular]';
27951 for (var x = args[i]; i < len; x = args[++i]) {
27952 if (isNull(x) || !isObject(x)) {
27955 str += ' ' + inspect(x);
27962 // Mark that a method should not be used.
27963 // Returns a modified function which warns once by default.
27964 // If --no-deprecation is set, then it is a no-op.
27965 exports.deprecate = function(fn, msg) {
27966 // Allow for deprecating things in the process of starting up.
27967 if (isUndefined(global.process)) {
27968 return function() {
27969 return exports.deprecate(fn, msg).apply(this, arguments);
27973 if (process.noDeprecation === true) {
27977 var warned = false;
27978 function deprecated() {
27980 if (process.throwDeprecation) {
27981 throw new Error(msg);
27982 } else if (process.traceDeprecation) {
27983 console.trace(msg);
27985 console.error(msg);
27989 return fn.apply(this, arguments);
27998 exports.debuglog = function(set) {
27999 if (isUndefined(debugEnviron))
28000 debugEnviron = process.env.NODE_DEBUG || '';
28001 set = set.toUpperCase();
28002 if (!debugs[set]) {
28003 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28004 var pid = process.pid;
28005 debugs[set] = function() {
28006 var msg = exports.format.apply(exports, arguments);
28007 console.error('%s %d: %s', set, pid, msg);
28010 debugs[set] = function() {};
28013 return debugs[set];
28018 * Echos the value of a value. Trys to print the value out
28019 * in the best way possible given the different types.
28021 * @param {Object} obj The object to print out.
28022 * @param {Object} opts Optional options object that alters the output.
28024 /* legacy: obj, showHidden, depth, colors*/
28025 function inspect(obj, opts) {
28029 stylize: stylizeNoColor
28032 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28033 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28034 if (isBoolean(opts)) {
28036 ctx.showHidden = opts;
28038 // got an "options" object
28039 exports._extend(ctx, opts);
28041 // set default options
28042 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28043 if (isUndefined(ctx.depth)) ctx.depth =
2;
28044 if (isUndefined(ctx.colors)) ctx.colors = false;
28045 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28046 if (ctx.colors) ctx.stylize = stylizeWithColor;
28047 return formatValue(ctx, obj, ctx.depth);
28049 exports.inspect = inspect;
28052 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28055 'italic' : [
3,
23],
28056 'underline' : [
4,
24],
28057 'inverse' : [
7,
27],
28058 'white' : [
37,
39],
28060 'black' : [
30,
39],
28063 'green' : [
32,
39],
28064 'magenta' : [
35,
39],
28066 'yellow' : [
33,
39]
28069 // Don't use 'blue' not visible on cmd.exe
28072 'number': 'yellow',
28073 'boolean': 'yellow',
28074 'undefined': 'grey',
28078 // "name": intentionally not styling
28083 function stylizeWithColor(str, styleType) {
28084 var style = inspect.styles[styleType];
28087 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28088 '\u001b[' + inspect.colors[style][
1] + 'm';
28095 function stylizeNoColor(str, styleType) {
28100 function arrayToHash(array) {
28103 array.forEach(function(val, idx) {
28111 function formatValue(ctx, value, recurseTimes) {
28112 // Provide a hook for user-specified inspect functions.
28113 // Check that value is an object with an inspect function on it
28114 if (ctx.customInspect &&
28116 isFunction(value.inspect) &&
28117 // Filter out the util module, it's inspect function is special
28118 value.inspect !== exports.inspect &&
28119 // Also filter out any prototype objects using the circular check.
28120 !(value.constructor && value.constructor.prototype === value)) {
28121 var ret = value.inspect(recurseTimes, ctx);
28122 if (!isString(ret)) {
28123 ret = formatValue(ctx, ret, recurseTimes);
28128 // Primitive types cannot have properties
28129 var primitive = formatPrimitive(ctx, value);
28134 // Look up the keys of the object.
28135 var keys = Object.keys(value);
28136 var visibleKeys = arrayToHash(keys);
28138 if (ctx.showHidden) {
28139 keys = Object.getOwnPropertyNames(value);
28142 // IE doesn't make error fields non-enumerable
28143 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28145 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28146 return formatError(value);
28149 // Some type of object without properties can be shortcutted.
28150 if (keys.length ===
0) {
28151 if (isFunction(value)) {
28152 var name = value.name ? ': ' + value.name : '';
28153 return ctx.stylize('[Function' + name + ']', 'special');
28155 if (isRegExp(value)) {
28156 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28158 if (isDate(value)) {
28159 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28161 if (isError(value)) {
28162 return formatError(value);
28166 var base = '', array = false, braces = ['{', '}'];
28168 // Make Array say that they are Array
28169 if (isArray(value)) {
28171 braces = ['[', ']'];
28174 // Make functions say that they are functions
28175 if (isFunction(value)) {
28176 var n = value.name ? ': ' + value.name : '';
28177 base = ' [Function' + n + ']';
28180 // Make RegExps say that they are RegExps
28181 if (isRegExp(value)) {
28182 base = ' ' + RegExp.prototype.toString.call(value);
28185 // Make dates with properties first say the date
28186 if (isDate(value)) {
28187 base = ' ' + Date.prototype.toUTCString.call(value);
28190 // Make error with message first say the error
28191 if (isError(value)) {
28192 base = ' ' + formatError(value);
28195 if (keys.length ===
0 && (!array || value.length ==
0)) {
28196 return braces[
0] + base + braces[
1];
28199 if (recurseTimes <
0) {
28200 if (isRegExp(value)) {
28201 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28203 return ctx.stylize('[Object]', 'special');
28207 ctx.seen.push(value);
28211 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28213 output = keys.map(function(key) {
28214 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28220 return reduceToSingleString(output, base, braces);
28224 function formatPrimitive(ctx, value) {
28225 if (isUndefined(value))
28226 return ctx.stylize('undefined', 'undefined');
28227 if (isString(value)) {
28228 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28229 .replace(/'/g, "\\'")
28230 .replace(/\\"/g, '"') + '\'';
28231 return ctx.stylize(simple, 'string');
28233 if (isNumber(value))
28234 return ctx.stylize('' + value, 'number');
28235 if (isBoolean(value))
28236 return ctx.stylize('' + value, 'boolean');
28237 // For some reason typeof null is "object", so special case here.
28239 return ctx.stylize('null', 'null');
28243 function formatError(value) {
28244 return '[' + Error.prototype.toString.call(value) + ']';
28248 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28250 for (var i =
0, l = value.length; i < l; ++i) {
28251 if (hasOwnProperty(value, String(i))) {
28252 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28258 keys.forEach(function(key) {
28259 if (!key.match(/^\d+$/)) {
28260 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28268 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28269 var name, str, desc;
28270 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28273 str = ctx.stylize('[Getter/Setter]', 'special');
28275 str = ctx.stylize('[Getter]', 'special');
28279 str = ctx.stylize('[Setter]', 'special');
28282 if (!hasOwnProperty(visibleKeys, key)) {
28283 name = '[' + key + ']';
28286 if (ctx.seen.indexOf(desc.value) <
0) {
28287 if (isNull(recurseTimes)) {
28288 str = formatValue(ctx, desc.value, null);
28290 str = formatValue(ctx, desc.value, recurseTimes -
1);
28292 if (str.indexOf('\n')
> -
1) {
28294 str = str.split('\n').map(function(line) {
28296 }).join('\n').substr(
2);
28298 str = '\n' + str.split('\n').map(function(line) {
28304 str = ctx.stylize('[Circular]', 'special');
28307 if (isUndefined(name)) {
28308 if (array && key.match(/^\d+$/)) {
28311 name = JSON.stringify('' + key);
28312 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28313 name = name.substr(
1, name.length -
2);
28314 name = ctx.stylize(name, 'name');
28316 name = name.replace(/'/g, "\\'")
28317 .replace(/\\"/g, '"')
28318 .replace(/(^"|"$)/g, "'");
28319 name = ctx.stylize(name, 'string');
28323 return name + ': ' + str;
28327 function reduceToSingleString(output, base, braces) {
28328 var numLinesEst =
0;
28329 var length = output.reduce(function(prev, cur) {
28331 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28332 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28337 (base === '' ? '' : base + '\n ') +
28339 output.join(',\n ') +
28344 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28348 // NOTE: These type checking functions intentionally don't use `instanceof`
28349 // because it is fragile and can be easily faked with `Object.create()`.
28350 function isArray(ar) {
28351 return Array.isArray(ar);
28353 exports.isArray = isArray;
28355 function isBoolean(arg) {
28356 return typeof arg === 'boolean';
28358 exports.isBoolean = isBoolean;
28360 function isNull(arg) {
28361 return arg === null;
28363 exports.isNull = isNull;
28365 function isNullOrUndefined(arg) {
28366 return arg == null;
28368 exports.isNullOrUndefined = isNullOrUndefined;
28370 function isNumber(arg) {
28371 return typeof arg === 'number';
28373 exports.isNumber = isNumber;
28375 function isString(arg) {
28376 return typeof arg === 'string';
28378 exports.isString = isString;
28380 function isSymbol(arg) {
28381 return typeof arg === 'symbol';
28383 exports.isSymbol = isSymbol;
28385 function isUndefined(arg) {
28386 return arg === void
0;
28388 exports.isUndefined = isUndefined;
28390 function isRegExp(re) {
28391 return isObject(re) && objectToString(re) === '[object RegExp]';
28393 exports.isRegExp = isRegExp;
28395 function isObject(arg) {
28396 return typeof arg === 'object' && arg !== null;
28398 exports.isObject = isObject;
28400 function isDate(d) {
28401 return isObject(d) && objectToString(d) === '[object Date]';
28403 exports.isDate = isDate;
28405 function isError(e) {
28406 return isObject(e) &&
28407 (objectToString(e) === '[object Error]' || e instanceof Error);
28409 exports.isError = isError;
28411 function isFunction(arg) {
28412 return typeof arg === 'function';
28414 exports.isFunction = isFunction;
28416 function isPrimitive(arg) {
28417 return arg === null ||
28418 typeof arg === 'boolean' ||
28419 typeof arg === 'number' ||
28420 typeof arg === 'string' ||
28421 typeof arg === 'symbol' || // ES6 symbol
28422 typeof arg === 'undefined';
28424 exports.isPrimitive = isPrimitive;
28426 exports.isBuffer = require('./support/isBuffer');
28428 function objectToString(o) {
28429 return Object.prototype.toString.call(o);
28434 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28438 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28439 'Oct', 'Nov', 'Dec'];
28442 function timestamp() {
28443 var d = new Date();
28444 var time = [pad(d.getHours()),
28445 pad(d.getMinutes()),
28446 pad(d.getSeconds())].join(':');
28447 return [d.getDate(), months[d.getMonth()], time].join(' ');
28451 // log is just a thin wrapper to console.log that prepends a timestamp
28452 exports.log = function() {
28453 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28458 * Inherit the prototype methods from one constructor into another.
28460 * The Function.prototype.inherits from lang.js rewritten as a standalone
28461 * function (not on Function.prototype). NOTE: If this file is to be loaded
28462 * during bootstrapping this function needs to be rewritten using some native
28463 * functions as prototype setup using normal JavaScript does not work as
28464 * expected during bootstrapping (see mirror.js in r114903).
28466 * @param {function} ctor Constructor function which needs to inherit the
28468 * @param {function} superCtor Constructor function to inherit prototype from.
28470 exports.inherits = require('inherits');
28472 exports._extend = function(origin, add) {
28473 // Don't do anything if add isn't an object
28474 if (!add || !isObject(add)) return origin;
28476 var keys = Object.keys(add);
28477 var i = keys.length;
28479 origin[keys[i]] = add[keys[i]];
28484 function hasOwnProperty(obj, prop) {
28485 return Object.prototype.hasOwnProperty.call(obj, prop);
28488 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28489 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28490 (function (Buffer){
28491 const createKeccakHash = require('keccak')
28492 const secp256k1 = require('secp256k1')
28493 const assert = require('assert')
28494 const rlp = require('rlp')
28495 const BN = require('bn.js')
28496 const createHash = require('create-hash')
28497 Object.assign(exports, require('ethjs-util'))
28500 * the max integer that this VM can handle (a ```BN```)
28501 * @var {BN} MAX_INTEGER
28503 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28506 *
2^
256 (a ```BN```)
28507 * @var {BN} TWO_POW256
28509 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28512 * SHA3-
256 hash of null (a ```String```)
28513 * @var {String} SHA3_NULL_S
28515 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28518 * SHA3-
256 hash of null (a ```Buffer```)
28519 * @var {Buffer} SHA3_NULL
28521 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28524 * SHA3-
256 of an RLP of an empty array (a ```String```)
28525 * @var {String} SHA3_RLP_ARRAY_S
28527 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28530 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28531 * @var {Buffer} SHA3_RLP_ARRAY
28533 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28536 * SHA3-
256 hash of the RLP of null (a ```String```)
28537 * @var {String} SHA3_RLP_S
28539 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28542 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28543 * @var {Buffer} SHA3_RLP
28545 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28548 * [`BN`](https://github.com/indutny/bn.js)
28554 * [`rlp`](https://github.com/ethereumjs/rlp)
28560 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28563 exports.secp256k1 = secp256k1
28566 * Returns a buffer filled with
0s
28568 * @param {Number} bytes the number of bytes the buffer should be
28571 exports.zeros = function (bytes) {
28572 return Buffer.allocUnsafe(bytes).fill(
0)
28576 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28577 * Or it truncates the beginning if it exceeds.
28578 * @method lsetLength
28579 * @param {Buffer|Array} msg the value to pad
28580 * @param {Number} length the number of bytes the output should be
28581 * @param {Boolean} [right=false] whether to start padding form the left or right
28582 * @return {Buffer|Array}
28584 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28585 var buf = exports.zeros(length)
28586 msg = exports.toBuffer(msg)
28588 if (msg.length < length) {
28592 return msg.slice(
0, length)
28594 if (msg.length < length) {
28595 msg.copy(buf, length - msg.length)
28598 return msg.slice(-length)
28603 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28604 * Or it truncates the beginning if it exceeds.
28605 * @param {Buffer|Array} msg the value to pad
28606 * @param {Number} length the number of bytes the output should be
28607 * @return {Buffer|Array}
28609 exports.setLengthRight = function (msg, length) {
28610 return exports.setLength(msg, length, true)
28614 * Trims leading zeros from a `Buffer` or an `Array`
28615 * @param {Buffer|Array|String} a
28616 * @return {Buffer|Array|String}
28618 exports.unpad = exports.stripZeros = function (a) {
28619 a = exports.stripHexPrefix(a)
28621 while (a.length
> 0 && first.toString() === '
0') {
28628 * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.
28629 * @param {*} v the value
28631 exports.toBuffer = function (v) {
28632 if (!Buffer.isBuffer(v)) {
28633 if (Array.isArray(v)) {
28635 } else if (typeof v === 'string') {
28636 if (exports.isHexPrefixed(v)) {
28637 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28641 } else if (typeof v === 'number') {
28642 v = exports.intToBuffer(v)
28643 } else if (v === null || v === undefined) {
28644 v = Buffer.allocUnsafe(
0)
28645 } else if (v.toArray) {
28646 // converts a BN to a Buffer
28647 v = Buffer.from(v.toArray())
28649 throw new Error('invalid type')
28656 * Converts a `Buffer` to a `Number`
28657 * @param {Buffer} buf
28659 * @throws If the input number exceeds
53 bits.
28661 exports.bufferToInt = function (buf) {
28662 return new BN(exports.toBuffer(buf)).toNumber()
28666 * Converts a `Buffer` into a hex `String`
28667 * @param {Buffer} buf
28670 exports.bufferToHex = function (buf) {
28671 buf = exports.toBuffer(buf)
28672 return '
0x' + buf.toString('hex')
28676 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28677 * @param {Buffer} num
28680 exports.fromSigned = function (num) {
28681 return new BN(num).fromTwos(
256)
28685 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28689 exports.toUnsigned = function (num) {
28690 return Buffer.from(num.toTwos(
256).toArray())
28694 * Creates SHA-
3 hash of the input
28695 * @param {Buffer|Array|String|Number} a the input data
28696 * @param {Number} [bits=
256] the SHA width
28699 exports.sha3 = function (a, bits) {
28700 a = exports.toBuffer(a)
28701 if (!bits) bits =
256
28703 return createKeccakHash('keccak' + bits).update(a).digest()
28707 * Creates SHA256 hash of the input
28708 * @param {Buffer|Array|String|Number} a the input data
28711 exports.sha256 = function (a) {
28712 a = exports.toBuffer(a)
28713 return createHash('sha256').update(a).digest()
28717 * Creates RIPEMD160 hash of the input
28718 * @param {Buffer|Array|String|Number} a the input data
28719 * @param {Boolean} padded whether it should be padded to
256 bits or not
28722 exports.ripemd160 = function (a, padded) {
28723 a = exports.toBuffer(a)
28724 var hash = createHash('rmd160').update(a).digest()
28725 if (padded === true) {
28726 return exports.setLength(hash,
32)
28733 * Creates SHA-
3 hash of the RLP encoded version of the input
28734 * @param {Buffer|Array|String|Number} a the input data
28737 exports.rlphash = function (a) {
28738 return exports.sha3(rlp.encode(a))
28742 * Checks if the private key satisfies the rules of the curve secp256k1.
28743 * @param {Buffer} privateKey
28744 * @return {Boolean}
28746 exports.isValidPrivate = function (privateKey) {
28747 return secp256k1.privateKeyVerify(privateKey)
28751 * Checks if the public key satisfies the rules of the curve secp256k1
28752 * and the requirements of Ethereum.
28753 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28754 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28755 * @return {Boolean}
28757 exports.isValidPublic = function (publicKey, sanitize) {
28758 if (publicKey.length ===
64) {
28759 // Convert to SEC1 for secp256k1
28760 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28767 return secp256k1.publicKeyVerify(publicKey)
28771 * Returns the ethereum address of a given public key.
28772 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28773 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28774 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28777 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28778 pubKey = exports.toBuffer(pubKey)
28779 if (sanitize && (pubKey.length !==
64)) {
28780 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28782 assert(pubKey.length ===
64)
28783 // Only take the lower
160bits of the hash
28784 return exports.sha3(pubKey).slice(-
20)
28788 * Returns the ethereum public key of a given private key
28789 * @param {Buffer} privateKey A private key must be
256 bits wide
28792 var privateToPublic = exports.privateToPublic = function (privateKey) {
28793 privateKey = exports.toBuffer(privateKey)
28794 // skip the type flag and use the X, Y points
28795 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28799 * Converts a public key to the Ethereum format.
28800 * @param {Buffer} publicKey
28803 exports.importPublic = function (publicKey) {
28804 publicKey = exports.toBuffer(publicKey)
28805 if (publicKey.length !==
64) {
28806 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28813 * @param {Buffer} msgHash
28814 * @param {Buffer} privateKey
28817 exports.ecsign = function (msgHash, privateKey) {
28818 var sig = secp256k1.sign(msgHash, privateKey)
28821 ret.r = sig.signature.slice(
0,
32)
28822 ret.s = sig.signature.slice(
32,
64)
28823 ret.v = sig.recovery +
27
28828 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28829 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28830 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28831 * used to produce the signature.
28833 * @returns {Buffer} hash
28835 exports.hashPersonalMessage = function (message) {
28836 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28837 return exports.sha3(Buffer.concat([prefix, message]))
28841 * ECDSA public key recovery from signature
28842 * @param {Buffer} msgHash
28843 * @param {Number} v
28844 * @param {Buffer} r
28845 * @param {Buffer} s
28846 * @return {Buffer} publicKey
28848 exports.ecrecover = function (msgHash, v, r, s) {
28849 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28850 var recovery = v -
27
28851 if (recovery !==
0 && recovery !==
1) {
28852 throw new Error('Invalid signature v value')
28854 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28855 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28859 * Convert signature parameters into the format of `eth_sign` RPC method
28860 * @param {Number} v
28861 * @param {Buffer} r
28862 * @param {Buffer} s
28863 * @return {String} sig
28865 exports.toRpcSig = function (v, r, s) {
28866 // NOTE: with potential introduction of chainId this might need to be updated
28867 if (v !==
27 && v !==
28) {
28868 throw new Error('Invalid recovery id')
28871 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28872 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28873 return exports.bufferToHex(Buffer.concat([
28874 exports.setLengthLeft(r,
32),
28875 exports.setLengthLeft(s,
32),
28876 exports.toBuffer(v -
27)
28881 * Convert signature format of the `eth_sign` RPC method to signature parameters
28882 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28883 * @param {String} sig
28886 exports.fromRpcSig = function (sig) {
28887 sig = exports.toBuffer(sig)
28889 // NOTE: with potential introduction of chainId this might need to be updated
28890 if (sig.length !==
65) {
28891 throw new Error('Invalid signature length')
28895 // support both versions of `eth_sign` responses
28902 r: sig.slice(
0,
32),
28903 s: sig.slice(
32,
64)
28908 * Returns the ethereum address of a given private key
28909 * @param {Buffer} privateKey A private key must be
256 bits wide
28912 exports.privateToAddress = function (privateKey) {
28913 return exports.publicToAddress(privateToPublic(privateKey))
28917 * Checks if the address is a valid. Accepts checksummed addresses too
28918 * @param {String} address
28919 * @return {Boolean}
28921 exports.isValidAddress = function (address) {
28922 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28926 * Returns a checksummed address
28927 * @param {String} address
28930 exports.toChecksumAddress = function (address) {
28931 address = exports.stripHexPrefix(address).toLowerCase()
28932 var hash = exports.sha3(address).toString('hex')
28935 for (var i =
0; i < address.length; i++) {
28936 if (parseInt(hash[i],
16)
>=
8) {
28937 ret += address[i].toUpperCase()
28947 * Checks if the address is a valid checksummed address
28948 * @param {Buffer} address
28949 * @return {Boolean}
28951 exports.isValidChecksumAddress = function (address) {
28952 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28956 * Generates an address of a newly created contract
28957 * @param {Buffer} from the address which is creating this new address
28958 * @param {Buffer} nonce the nonce of the from account
28961 exports.generateAddress = function (from, nonce) {
28962 from = exports.toBuffer(from)
28963 nonce = new BN(nonce)
28965 if (nonce.isZero()) {
28966 // in RLP we want to encode null in the case of zero nonce
28967 // read the RLP documentation for an answer if you dare
28970 nonce = Buffer.from(nonce.toArray())
28973 // Only take the lower
160bits of the hash
28974 return exports.rlphash([from, nonce]).slice(-
20)
28978 * Returns true if the supplied address belongs to a precompiled account
28979 * @param {Buffer|String} address
28980 * @return {Boolean}
28982 exports.isPrecompiled = function (address) {
28983 var a = exports.unpad(address)
28984 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
28988 * Adds
"0x" to a given `String` if it does not already start with
"0x"
28989 * @param {String} str
28992 exports.addHexPrefix = function (str) {
28993 if (typeof str !== 'string') {
28997 return exports.isHexPrefixed(str) ? str : '
0x' + str
29001 * Validate ECDSA signature
29002 * @method isValidSignature
29003 * @param {Buffer} v
29004 * @param {Buffer} r
29005 * @param {Buffer} s
29006 * @param {Boolean} [homestead=true]
29007 * @return {Boolean}
29010 exports.isValidSignature = function (v, r, s, homestead) {
29011 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29012 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29014 if (r.length !==
32 || s.length !==
32) {
29018 if (v !==
27 && v !==
28) {
29025 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29029 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29037 * Converts a `Buffer` or `Array` to JSON
29038 * @param {Buffer|Array} ba
29039 * @return {Array|String|null}
29041 exports.baToJSON = function (ba) {
29042 if (Buffer.isBuffer(ba)) {
29043 return '
0x' + ba.toString('hex')
29044 } else if (ba instanceof Array) {
29046 for (var i =
0; i < ba.length; i++) {
29047 array.push(exports.baToJSON(ba[i]))
29054 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29055 * @param {Object} self the `Object` to define properties on
29056 * @param {Array} fields an array fields to define. Fields can contain:
29057 * * `name` - the name of the properties
29058 * * `length` - the number of bytes the field can have
29059 * * `allowLess` - if the field can be less than the length
29061 * @param {*} data data to be validated against the definitions
29063 exports.defineProperties = function (self, fields, data) {
29067 // attach the `toJSON`
29068 self.toJSON = function (label) {
29071 self._fields.forEach(function (field) {
29072 obj[field] = '
0x' + self[field].toString('hex')
29076 return exports.baToJSON(this.raw)
29079 self.serialize = function serialize () {
29080 return rlp.encode(self.raw)
29083 fields.forEach(function (field, i) {
29084 self._fields.push(field.name)
29085 function getter () {
29088 function setter (v) {
29089 v = exports.toBuffer(v)
29091 if (v.toString('hex') === '
00' && !field.allowZero) {
29092 v = Buffer.allocUnsafe(
0)
29095 if (field.allowLess && field.length) {
29096 v = exports.stripZeros(v)
29097 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29098 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29099 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29105 Object.defineProperty(self, field.name, {
29107 configurable: true,
29112 if (field.default) {
29113 self[field.name] = field.default
29118 Object.defineProperty(self, field.alias, {
29120 configurable: true,
29127 // if the constuctor is passed data
29129 if (typeof data === 'string') {
29130 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29133 if (Buffer.isBuffer(data)) {
29134 data = rlp.decode(data)
29137 if (Array.isArray(data)) {
29138 if (data.length
> self._fields.length) {
29139 throw (new Error('wrong number of fields in data'))
29142 // make sure all the items are buffers
29143 data.forEach(function (d, i) {
29144 self[self._fields[i]] = exports.toBuffer(d)
29146 } else if (typeof data === 'object') {
29147 const keys = Object.keys(data)
29148 fields.forEach(function (field) {
29149 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29150 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29153 throw new Error('invalid data')
29158 }).call(this,require("buffer").Buffer)
29159 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29160 (function (Buffer){
29161 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29162 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29163 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29165 function check (buffer) {
29166 if (buffer.length <
8) return false
29167 if (buffer.length
> 72) return false
29168 if (buffer[
0] !==
0x30) return false
29169 if (buffer[
1] !== buffer.length -
2) return false
29170 if (buffer[
2] !==
0x02) return false
29172 var lenR = buffer[
3]
29173 if (lenR ===
0) return false
29174 if (
5 + lenR
>= buffer.length) return false
29175 if (buffer[
4 + lenR] !==
0x02) return false
29177 var lenS = buffer[
5 + lenR]
29178 if (lenS ===
0) return false
29179 if ((
6 + lenR + lenS) !== buffer.length) return false
29181 if (buffer[
4] &
0x80) return false
29182 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29184 if (buffer[lenR +
6] &
0x80) return false
29185 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29189 function decode (buffer) {
29190 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29191 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29192 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29193 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29194 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29196 var lenR = buffer[
3]
29197 if (lenR ===
0) throw new Error('R length is zero')
29198 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29199 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29201 var lenS = buffer[
5 + lenR]
29202 if (lenS ===
0) throw new Error('S length is zero')
29203 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29205 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29206 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29208 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29209 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29211 // non-BIP66 - extract R, S values
29213 r: buffer.slice(
4,
4 + lenR),
29214 s: buffer.slice(
6 + lenR)
29219 * Expects r and s to be positive DER integers.
29221 * The DER format uses the most significant bit as a sign bit (&
0x80).
29222 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29237 *
62300 =
> 0x00f35c
29238 * -
62300 =
> 0xff0ca4
29240 function encode (r, s) {
29241 var lenR = r.length
29242 var lenS = s.length
29243 if (lenR ===
0) throw new Error('R length is zero')
29244 if (lenS ===
0) throw new Error('S length is zero')
29245 if (lenR
> 33) throw new Error('R length is too long')
29246 if (lenS
> 33) throw new Error('S length is too long')
29247 if (r[
0] &
0x80) throw new Error('R value is negative')
29248 if (s[
0] &
0x80) throw new Error('S value is negative')
29249 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29250 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29252 var signature = new Buffer(
6 + lenR + lenS)
29254 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29255 signature[
0] =
0x30
29256 signature[
1] = signature.length -
2
29257 signature[
2] =
0x02
29258 signature[
3] = r.length
29259 r.copy(signature,
4)
29260 signature[
4 + lenR] =
0x02
29261 signature[
5 + lenR] = s.length
29262 s.copy(signature,
6 + lenR)
29273 }).call(this,require(
"buffer").Buffer)
29274 },{
"buffer":
5}],
33:[function(require,module,exports){
29275 (function (module, exports) {
29279 function assert (val, msg) {
29280 if (!val) throw new Error(msg || 'Assertion failed');
29283 // Could use `inherits` module, but don't want to move from single file
29284 // architecture yet.
29285 function inherits (ctor, superCtor) {
29286 ctor.super_ = superCtor;
29287 var TempCtor = function () {};
29288 TempCtor.prototype = superCtor.prototype;
29289 ctor.prototype = new TempCtor();
29290 ctor.prototype.constructor = ctor;
29295 function BN (number, base, endian) {
29296 if (BN.isBN(number)) {
29304 // Reduction context
29307 if (number !== null) {
29308 if (base === 'le' || base === 'be') {
29313 this._init(number ||
0, base ||
10, endian || 'be');
29316 if (typeof module === 'object') {
29317 module.exports = BN;
29327 Buffer = require('buf' + 'fer').Buffer;
29331 BN.isBN = function isBN (num) {
29332 if (num instanceof BN) {
29336 return num !== null && typeof num === 'object' &&
29337 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29340 BN.max = function max (left, right) {
29341 if (left.cmp(right)
> 0) return left;
29345 BN.min = function min (left, right) {
29346 if (left.cmp(right) <
0) return left;
29350 BN.prototype._init = function init (number, base, endian) {
29351 if (typeof number === 'number') {
29352 return this._initNumber(number, base, endian);
29355 if (typeof number === 'object') {
29356 return this._initArray(number, base, endian);
29359 if (base === 'hex') {
29362 assert(base === (base |
0) && base
>=
2 && base <=
36);
29364 number = number.toString().replace(/\s+/g, '');
29366 if (number[
0] === '-') {
29371 this._parseHex(number, start);
29373 this._parseBase(number, base, start);
29376 if (number[
0] === '-') {
29382 if (endian !== 'le') return;
29384 this._initArray(this.toArray(), base, endian);
29387 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29392 if (number <
0x4000000) {
29393 this.words = [ number &
0x3ffffff ];
29395 } else if (number <
0x10000000000000) {
29397 number &
0x3ffffff,
29398 (number /
0x4000000) &
0x3ffffff
29402 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29404 number &
0x3ffffff,
29405 (number /
0x4000000) &
0x3ffffff,
29411 if (endian !== 'le') return;
29413 // Reverse the bytes
29414 this._initArray(this.toArray(), base, endian);
29417 BN.prototype._initArray = function _initArray (number, base, endian) {
29418 // Perhaps a Uint8Array
29419 assert(typeof number.length === 'number');
29420 if (number.length <=
0) {
29421 this.words = [
0 ];
29426 this.length = Math.ceil(number.length /
3);
29427 this.words = new Array(this.length);
29428 for (var i =
0; i < this.length; i++) {
29434 if (endian === 'be') {
29435 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29436 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29437 this.words[j] |= (w << off) &
0x3ffffff;
29438 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29445 } else if (endian === 'le') {
29446 for (i =
0, j =
0; i < number.length; i +=
3) {
29447 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29448 this.words[j] |= (w << off) &
0x3ffffff;
29449 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29457 return this.strip();
29460 function parseHex (str, start, end) {
29462 var len = Math.min(str.length, end);
29463 for (var i = start; i < len; i++) {
29464 var c = str.charCodeAt(i) -
48;
29469 if (c
>=
49 && c <=
54) {
29473 } else if (c
>=
17 && c <=
22) {
29484 BN.prototype._parseHex = function _parseHex (number, start) {
29485 // Create possibly bigger array to ensure that it fits the number
29486 this.length = Math.ceil((number.length - start) /
6);
29487 this.words = new Array(this.length);
29488 for (var i =
0; i < this.length; i++) {
29493 // Scan
24-bit chunks and add them to the number
29495 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29496 w = parseHex(number, i, i +
6);
29497 this.words[j] |= (w << off) &
0x3ffffff;
29498 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29499 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29506 if (i +
6 !== start) {
29507 w = parseHex(number, start, i +
6);
29508 this.words[j] |= (w << off) &
0x3ffffff;
29509 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29514 function parseBase (str, start, end, mul) {
29516 var len = Math.min(str.length, end);
29517 for (var i = start; i < len; i++) {
29518 var c = str.charCodeAt(i) -
48;
29527 } else if (c
>=
17) {
29538 BN.prototype._parseBase = function _parseBase (number, base, start) {
29539 // Initialize as zero
29540 this.words = [
0 ];
29543 // Find length of limb in base
29544 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29548 limbPow = (limbPow / base) |
0;
29550 var total = number.length - start;
29551 var mod = total % limbLen;
29552 var end = Math.min(total, total - mod) + start;
29555 for (var i = start; i < end; i += limbLen) {
29556 word = parseBase(number, i, i + limbLen, base);
29558 this.imuln(limbPow);
29559 if (this.words[
0] + word <
0x4000000) {
29560 this.words[
0] += word;
29568 word = parseBase(number, i, number.length, base);
29570 for (i =
0; i < mod; i++) {
29575 if (this.words[
0] + word <
0x4000000) {
29576 this.words[
0] += word;
29583 BN.prototype.copy = function copy (dest) {
29584 dest.words = new Array(this.length);
29585 for (var i =
0; i < this.length; i++) {
29586 dest.words[i] = this.words[i];
29588 dest.length = this.length;
29589 dest.negative = this.negative;
29590 dest.red = this.red;
29593 BN.prototype.clone = function clone () {
29594 var r = new BN(null);
29599 BN.prototype._expand = function _expand (size) {
29600 while (this.length < size) {
29601 this.words[this.length++] =
0;
29606 // Remove leading `
0` from `this`
29607 BN.prototype.strip = function strip () {
29608 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29611 return this._normSign();
29614 BN.prototype._normSign = function _normSign () {
29616 if (this.length ===
1 && this.words[
0] ===
0) {
29622 BN.prototype.inspect = function inspect () {
29623 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29629 var groupSizes = [];
29630 var groupBases = [];
29634 while (++i < BN.wordSize) {
29643 while (++base <
36 +
1) {
29646 while (groupBase < (
1 << BN.wordSize) / base) {
29650 groupSizes[base] = groupSize;
29651 groupBases[base] = groupBase;
29673 '
0000000000000000',
29674 '
00000000000000000',
29675 '
000000000000000000',
29676 '
0000000000000000000',
29677 '
00000000000000000000',
29678 '
000000000000000000000',
29679 '
0000000000000000000000',
29680 '
00000000000000000000000',
29681 '
000000000000000000000000',
29682 '
0000000000000000000000000'
29687 25,
16,
12,
11,
10,
9,
8,
29688 8,
7,
7,
7,
7,
6,
6,
29689 6,
6,
6,
6,
6,
5,
5,
29690 5,
5,
5,
5,
5,
5,
5,
29691 5,
5,
5,
5,
5,
5,
5
29696 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29697 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29698 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29699 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29700 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29703 BN.prototype.toString = function toString (base, padding) {
29705 padding = padding |
0 ||
1;
29708 if (base ===
16 || base === 'hex') {
29712 for (var i =
0; i < this.length; i++) {
29713 var w = this.words[i];
29714 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29715 carry = (w
>>> (
24 - off)) &
0xffffff;
29716 if (carry !==
0 || i !== this.length -
1) {
29717 out = zeros[
6 - word.length] + word + out;
29728 out = carry.toString(
16) + out;
29730 while (out.length % padding !==
0) {
29733 if (this.negative !==
0) {
29739 if (base === (base |
0) && base
>=
2 && base <=
36) {
29740 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29741 var groupSize = groupSizes[base];
29742 // var groupBase = Math.pow(base, groupSize);
29743 var groupBase = groupBases[base];
29745 var c = this.clone();
29747 while (!c.isZero()) {
29748 var r = c.modn(groupBase).toString(base);
29749 c = c.idivn(groupBase);
29752 out = zeros[groupSize - r.length] + r + out;
29757 if (this.isZero()) {
29760 while (out.length % padding !==
0) {
29763 if (this.negative !==
0) {
29769 assert(false, 'Base should be between
2 and
36');
29772 BN.prototype.toNumber = function toNumber () {
29773 var ret = this.words[
0];
29774 if (this.length ===
2) {
29775 ret += this.words[
1] *
0x4000000;
29776 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29777 // NOTE: at this stage it is known that the top bit is set
29778 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29779 } else if (this.length
> 2) {
29780 assert(false, 'Number can only safely store up to
53 bits');
29782 return (this.negative !==
0) ? -ret : ret;
29785 BN.prototype.toJSON = function toJSON () {
29786 return this.toString(
16);
29789 BN.prototype.toBuffer = function toBuffer (endian, length) {
29790 assert(typeof Buffer !== 'undefined');
29791 return this.toArrayLike(Buffer, endian, length);
29794 BN.prototype.toArray = function toArray (endian, length) {
29795 return this.toArrayLike(Array, endian, length);
29798 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29799 var byteLength = this.byteLength();
29800 var reqLength = length || Math.max(
1, byteLength);
29801 assert(byteLength <= reqLength, 'byte array longer than desired length');
29802 assert(reqLength
> 0, 'Requested array length <=
0');
29805 var littleEndian = endian === 'le';
29806 var res = new ArrayType(reqLength);
29809 var q = this.clone();
29810 if (!littleEndian) {
29811 // Assume big-endian
29812 for (i =
0; i < reqLength - byteLength; i++) {
29816 for (i =
0; !q.isZero(); i++) {
29820 res[reqLength - i -
1] = b;
29823 for (i =
0; !q.isZero(); i++) {
29830 for (; i < reqLength; i++) {
29839 BN.prototype._countBits = function _countBits (w) {
29840 return
32 - Math.clz32(w);
29843 BN.prototype._countBits = function _countBits (w) {
29866 BN.prototype._zeroBits = function _zeroBits (w) {
29868 if (w ===
0) return
26;
29872 if ((t &
0x1fff) ===
0) {
29876 if ((t &
0x7f) ===
0) {
29880 if ((t &
0xf) ===
0) {
29884 if ((t &
0x3) ===
0) {
29888 if ((t &
0x1) ===
0) {
29894 // Return number of used bits in a BN
29895 BN.prototype.bitLength = function bitLength () {
29896 var w = this.words[this.length -
1];
29897 var hi = this._countBits(w);
29898 return (this.length -
1) *
26 + hi;
29901 function toBitArray (num) {
29902 var w = new Array(num.bitLength());
29904 for (var bit =
0; bit < w.length; bit++) {
29905 var off = (bit /
26) |
0;
29906 var wbit = bit %
26;
29908 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29914 // Number of trailing zero bits
29915 BN.prototype.zeroBits = function zeroBits () {
29916 if (this.isZero()) return
0;
29919 for (var i =
0; i < this.length; i++) {
29920 var b = this._zeroBits(this.words[i]);
29922 if (b !==
26) break;
29927 BN.prototype.byteLength = function byteLength () {
29928 return Math.ceil(this.bitLength() /
8);
29931 BN.prototype.toTwos = function toTwos (width) {
29932 if (this.negative !==
0) {
29933 return this.abs().inotn(width).iaddn(
1);
29935 return this.clone();
29938 BN.prototype.fromTwos = function fromTwos (width) {
29939 if (this.testn(width -
1)) {
29940 return this.notn(width).iaddn(
1).ineg();
29942 return this.clone();
29945 BN.prototype.isNeg = function isNeg () {
29946 return this.negative !==
0;
29949 // Return negative clone of `this`
29950 BN.prototype.neg = function neg () {
29951 return this.clone().ineg();
29954 BN.prototype.ineg = function ineg () {
29955 if (!this.isZero()) {
29956 this.negative ^=
1;
29962 // Or `num` with `this` in-place
29963 BN.prototype.iuor = function iuor (num) {
29964 while (this.length < num.length) {
29965 this.words[this.length++] =
0;
29968 for (var i =
0; i < num.length; i++) {
29969 this.words[i] = this.words[i] | num.words[i];
29972 return this.strip();
29975 BN.prototype.ior = function ior (num) {
29976 assert((this.negative | num.negative) ===
0);
29977 return this.iuor(num);
29980 // Or `num` with `this`
29981 BN.prototype.or = function or (num) {
29982 if (this.length
> num.length) return this.clone().ior(num);
29983 return num.clone().ior(this);
29986 BN.prototype.uor = function uor (num) {
29987 if (this.length
> num.length) return this.clone().iuor(num);
29988 return num.clone().iuor(this);
29991 // And `num` with `this` in-place
29992 BN.prototype.iuand = function iuand (num) {
29993 // b = min-length(num, this)
29995 if (this.length
> num.length) {
30001 for (var i =
0; i < b.length; i++) {
30002 this.words[i] = this.words[i] & num.words[i];
30005 this.length = b.length;
30007 return this.strip();
30010 BN.prototype.iand = function iand (num) {
30011 assert((this.negative | num.negative) ===
0);
30012 return this.iuand(num);
30015 // And `num` with `this`
30016 BN.prototype.and = function and (num) {
30017 if (this.length
> num.length) return this.clone().iand(num);
30018 return num.clone().iand(this);
30021 BN.prototype.uand = function uand (num) {
30022 if (this.length
> num.length) return this.clone().iuand(num);
30023 return num.clone().iuand(this);
30026 // Xor `num` with `this` in-place
30027 BN.prototype.iuxor = function iuxor (num) {
30028 // a.length
> b.length
30031 if (this.length
> num.length) {
30039 for (var i =
0; i < b.length; i++) {
30040 this.words[i] = a.words[i] ^ b.words[i];
30044 for (; i < a.length; i++) {
30045 this.words[i] = a.words[i];
30049 this.length = a.length;
30051 return this.strip();
30054 BN.prototype.ixor = function ixor (num) {
30055 assert((this.negative | num.negative) ===
0);
30056 return this.iuxor(num);
30059 // Xor `num` with `this`
30060 BN.prototype.xor = function xor (num) {
30061 if (this.length
> num.length) return this.clone().ixor(num);
30062 return num.clone().ixor(this);
30065 BN.prototype.uxor = function uxor (num) {
30066 if (this.length
> num.length) return this.clone().iuxor(num);
30067 return num.clone().iuxor(this);
30070 // Not ``this`` with ``width`` bitwidth
30071 BN.prototype.inotn = function inotn (width) {
30072 assert(typeof width === 'number' && width
>=
0);
30074 var bytesNeeded = Math.ceil(width /
26) |
0;
30075 var bitsLeft = width %
26;
30077 // Extend the buffer with leading zeroes
30078 this._expand(bytesNeeded);
30080 if (bitsLeft
> 0) {
30084 // Handle complete words
30085 for (var i =
0; i < bytesNeeded; i++) {
30086 this.words[i] = ~this.words[i] &
0x3ffffff;
30089 // Handle the residue
30090 if (bitsLeft
> 0) {
30091 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30094 // And remove leading zeroes
30095 return this.strip();
30098 BN.prototype.notn = function notn (width) {
30099 return this.clone().inotn(width);
30102 // Set `bit` of `this`
30103 BN.prototype.setn = function setn (bit, val) {
30104 assert(typeof bit === 'number' && bit
>=
0);
30106 var off = (bit /
26) |
0;
30107 var wbit = bit %
26;
30109 this._expand(off +
1);
30112 this.words[off] = this.words[off] | (
1 << wbit);
30114 this.words[off] = this.words[off] & ~(
1 << wbit);
30117 return this.strip();
30120 // Add `num` to `this` in-place
30121 BN.prototype.iadd = function iadd (num) {
30124 // negative + positive
30125 if (this.negative !==
0 && num.negative ===
0) {
30127 r = this.isub(num);
30128 this.negative ^=
1;
30129 return this._normSign();
30131 // positive + negative
30132 } else if (this.negative ===
0 && num.negative !==
0) {
30134 r = this.isub(num);
30136 return r._normSign();
30139 // a.length
> b.length
30141 if (this.length
> num.length) {
30150 for (var i =
0; i < b.length; i++) {
30151 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30152 this.words[i] = r &
0x3ffffff;
30155 for (; carry !==
0 && i < a.length; i++) {
30156 r = (a.words[i] |
0) + carry;
30157 this.words[i] = r &
0x3ffffff;
30161 this.length = a.length;
30163 this.words[this.length] = carry;
30165 // Copy the rest of the words
30166 } else if (a !== this) {
30167 for (; i < a.length; i++) {
30168 this.words[i] = a.words[i];
30175 // Add `num` to `this`
30176 BN.prototype.add = function add (num) {
30178 if (num.negative !==
0 && this.negative ===
0) {
30180 res = this.sub(num);
30183 } else if (num.negative ===
0 && this.negative !==
0) {
30185 res = num.sub(this);
30190 if (this.length
> num.length) return this.clone().iadd(num);
30192 return num.clone().iadd(this);
30195 // Subtract `num` from `this` in-place
30196 BN.prototype.isub = function isub (num) {
30197 // this - (-num) = this + num
30198 if (num.negative !==
0) {
30200 var r = this.iadd(num);
30202 return r._normSign();
30204 // -this - num = -(this + num)
30205 } else if (this.negative !==
0) {
30209 return this._normSign();
30212 // At this point both numbers are positive
30213 var cmp = this.cmp(num);
30215 // Optimization - zeroify
30234 for (var i =
0; i < b.length; i++) {
30235 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30237 this.words[i] = r &
0x3ffffff;
30239 for (; carry !==
0 && i < a.length; i++) {
30240 r = (a.words[i] |
0) + carry;
30242 this.words[i] = r &
0x3ffffff;
30245 // Copy rest of the words
30246 if (carry ===
0 && i < a.length && a !== this) {
30247 for (; i < a.length; i++) {
30248 this.words[i] = a.words[i];
30252 this.length = Math.max(this.length, i);
30258 return this.strip();
30261 // Subtract `num` from `this`
30262 BN.prototype.sub = function sub (num) {
30263 return this.clone().isub(num);
30266 function smallMulTo (self, num, out) {
30267 out.negative = num.negative ^ self.negative;
30268 var len = (self.length + num.length) |
0;
30270 len = (len -
1) |
0;
30272 // Peel one iteration (compiler can't do it, because of code complexity)
30273 var a = self.words[
0] |
0;
30274 var b = num.words[
0] |
0;
30277 var lo = r &
0x3ffffff;
30278 var carry = (r /
0x4000000) |
0;
30281 for (var k =
1; k < len; k++) {
30282 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30283 // note that ncarry could be
>=
0x3ffffff
30284 var ncarry = carry
>>> 26;
30285 var rword = carry &
0x3ffffff;
30286 var maxJ = Math.min(k, num.length -
1);
30287 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30288 var i = (k - j) |
0;
30289 a = self.words[i] |
0;
30290 b = num.words[j] |
0;
30292 ncarry += (r /
0x4000000) |
0;
30293 rword = r &
0x3ffffff;
30295 out.words[k] = rword |
0;
30296 carry = ncarry |
0;
30299 out.words[k] = carry |
0;
30304 return out.strip();
30307 // TODO(indutny): it may be reasonable to omit it for users who don't need
30308 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30309 // multiplication (like elliptic secp256k1).
30310 var comb10MulTo = function comb10MulTo (self, num, out) {
30311 var a = self.words;
30319 var al0 = a0 &
0x1fff;
30320 var ah0 = a0
>>> 13;
30322 var al1 = a1 &
0x1fff;
30323 var ah1 = a1
>>> 13;
30325 var al2 = a2 &
0x1fff;
30326 var ah2 = a2
>>> 13;
30328 var al3 = a3 &
0x1fff;
30329 var ah3 = a3
>>> 13;
30331 var al4 = a4 &
0x1fff;
30332 var ah4 = a4
>>> 13;
30334 var al5 = a5 &
0x1fff;
30335 var ah5 = a5
>>> 13;
30337 var al6 = a6 &
0x1fff;
30338 var ah6 = a6
>>> 13;
30340 var al7 = a7 &
0x1fff;
30341 var ah7 = a7
>>> 13;
30343 var al8 = a8 &
0x1fff;
30344 var ah8 = a8
>>> 13;
30346 var al9 = a9 &
0x1fff;
30347 var ah9 = a9
>>> 13;
30349 var bl0 = b0 &
0x1fff;
30350 var bh0 = b0
>>> 13;
30352 var bl1 = b1 &
0x1fff;
30353 var bh1 = b1
>>> 13;
30355 var bl2 = b2 &
0x1fff;
30356 var bh2 = b2
>>> 13;
30358 var bl3 = b3 &
0x1fff;
30359 var bh3 = b3
>>> 13;
30361 var bl4 = b4 &
0x1fff;
30362 var bh4 = b4
>>> 13;
30364 var bl5 = b5 &
0x1fff;
30365 var bh5 = b5
>>> 13;
30367 var bl6 = b6 &
0x1fff;
30368 var bh6 = b6
>>> 13;
30370 var bl7 = b7 &
0x1fff;
30371 var bh7 = b7
>>> 13;
30373 var bl8 = b8 &
0x1fff;
30374 var bh8 = b8
>>> 13;
30376 var bl9 = b9 &
0x1fff;
30377 var bh9 = b9
>>> 13;
30379 out.negative = self.negative ^ num.negative;
30382 lo = Math.imul(al0, bl0);
30383 mid = Math.imul(al0, bh0);
30384 mid = (mid + Math.imul(ah0, bl0)) |
0;
30385 hi = Math.imul(ah0, bh0);
30386 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30387 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30390 lo = Math.imul(al1, bl0);
30391 mid = Math.imul(al1, bh0);
30392 mid = (mid + Math.imul(ah1, bl0)) |
0;
30393 hi = Math.imul(ah1, bh0);
30394 lo = (lo + Math.imul(al0, bl1)) |
0;
30395 mid = (mid + Math.imul(al0, bh1)) |
0;
30396 mid = (mid + Math.imul(ah0, bl1)) |
0;
30397 hi = (hi + Math.imul(ah0, bh1)) |
0;
30398 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30399 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30402 lo = Math.imul(al2, bl0);
30403 mid = Math.imul(al2, bh0);
30404 mid = (mid + Math.imul(ah2, bl0)) |
0;
30405 hi = Math.imul(ah2, bh0);
30406 lo = (lo + Math.imul(al1, bl1)) |
0;
30407 mid = (mid + Math.imul(al1, bh1)) |
0;
30408 mid = (mid + Math.imul(ah1, bl1)) |
0;
30409 hi = (hi + Math.imul(ah1, bh1)) |
0;
30410 lo = (lo + Math.imul(al0, bl2)) |
0;
30411 mid = (mid + Math.imul(al0, bh2)) |
0;
30412 mid = (mid + Math.imul(ah0, bl2)) |
0;
30413 hi = (hi + Math.imul(ah0, bh2)) |
0;
30414 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30415 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30418 lo = Math.imul(al3, bl0);
30419 mid = Math.imul(al3, bh0);
30420 mid = (mid + Math.imul(ah3, bl0)) |
0;
30421 hi = Math.imul(ah3, bh0);
30422 lo = (lo + Math.imul(al2, bl1)) |
0;
30423 mid = (mid + Math.imul(al2, bh1)) |
0;
30424 mid = (mid + Math.imul(ah2, bl1)) |
0;
30425 hi = (hi + Math.imul(ah2, bh1)) |
0;
30426 lo = (lo + Math.imul(al1, bl2)) |
0;
30427 mid = (mid + Math.imul(al1, bh2)) |
0;
30428 mid = (mid + Math.imul(ah1, bl2)) |
0;
30429 hi = (hi + Math.imul(ah1, bh2)) |
0;
30430 lo = (lo + Math.imul(al0, bl3)) |
0;
30431 mid = (mid + Math.imul(al0, bh3)) |
0;
30432 mid = (mid + Math.imul(ah0, bl3)) |
0;
30433 hi = (hi + Math.imul(ah0, bh3)) |
0;
30434 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30435 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30438 lo = Math.imul(al4, bl0);
30439 mid = Math.imul(al4, bh0);
30440 mid = (mid + Math.imul(ah4, bl0)) |
0;
30441 hi = Math.imul(ah4, bh0);
30442 lo = (lo + Math.imul(al3, bl1)) |
0;
30443 mid = (mid + Math.imul(al3, bh1)) |
0;
30444 mid = (mid + Math.imul(ah3, bl1)) |
0;
30445 hi = (hi + Math.imul(ah3, bh1)) |
0;
30446 lo = (lo + Math.imul(al2, bl2)) |
0;
30447 mid = (mid + Math.imul(al2, bh2)) |
0;
30448 mid = (mid + Math.imul(ah2, bl2)) |
0;
30449 hi = (hi + Math.imul(ah2, bh2)) |
0;
30450 lo = (lo + Math.imul(al1, bl3)) |
0;
30451 mid = (mid + Math.imul(al1, bh3)) |
0;
30452 mid = (mid + Math.imul(ah1, bl3)) |
0;
30453 hi = (hi + Math.imul(ah1, bh3)) |
0;
30454 lo = (lo + Math.imul(al0, bl4)) |
0;
30455 mid = (mid + Math.imul(al0, bh4)) |
0;
30456 mid = (mid + Math.imul(ah0, bl4)) |
0;
30457 hi = (hi + Math.imul(ah0, bh4)) |
0;
30458 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30459 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30462 lo = Math.imul(al5, bl0);
30463 mid = Math.imul(al5, bh0);
30464 mid = (mid + Math.imul(ah5, bl0)) |
0;
30465 hi = Math.imul(ah5, bh0);
30466 lo = (lo + Math.imul(al4, bl1)) |
0;
30467 mid = (mid + Math.imul(al4, bh1)) |
0;
30468 mid = (mid + Math.imul(ah4, bl1)) |
0;
30469 hi = (hi + Math.imul(ah4, bh1)) |
0;
30470 lo = (lo + Math.imul(al3, bl2)) |
0;
30471 mid = (mid + Math.imul(al3, bh2)) |
0;
30472 mid = (mid + Math.imul(ah3, bl2)) |
0;
30473 hi = (hi + Math.imul(ah3, bh2)) |
0;
30474 lo = (lo + Math.imul(al2, bl3)) |
0;
30475 mid = (mid + Math.imul(al2, bh3)) |
0;
30476 mid = (mid + Math.imul(ah2, bl3)) |
0;
30477 hi = (hi + Math.imul(ah2, bh3)) |
0;
30478 lo = (lo + Math.imul(al1, bl4)) |
0;
30479 mid = (mid + Math.imul(al1, bh4)) |
0;
30480 mid = (mid + Math.imul(ah1, bl4)) |
0;
30481 hi = (hi + Math.imul(ah1, bh4)) |
0;
30482 lo = (lo + Math.imul(al0, bl5)) |
0;
30483 mid = (mid + Math.imul(al0, bh5)) |
0;
30484 mid = (mid + Math.imul(ah0, bl5)) |
0;
30485 hi = (hi + Math.imul(ah0, bh5)) |
0;
30486 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30487 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30490 lo = Math.imul(al6, bl0);
30491 mid = Math.imul(al6, bh0);
30492 mid = (mid + Math.imul(ah6, bl0)) |
0;
30493 hi = Math.imul(ah6, bh0);
30494 lo = (lo + Math.imul(al5, bl1)) |
0;
30495 mid = (mid + Math.imul(al5, bh1)) |
0;
30496 mid = (mid + Math.imul(ah5, bl1)) |
0;
30497 hi = (hi + Math.imul(ah5, bh1)) |
0;
30498 lo = (lo + Math.imul(al4, bl2)) |
0;
30499 mid = (mid + Math.imul(al4, bh2)) |
0;
30500 mid = (mid + Math.imul(ah4, bl2)) |
0;
30501 hi = (hi + Math.imul(ah4, bh2)) |
0;
30502 lo = (lo + Math.imul(al3, bl3)) |
0;
30503 mid = (mid + Math.imul(al3, bh3)) |
0;
30504 mid = (mid + Math.imul(ah3, bl3)) |
0;
30505 hi = (hi + Math.imul(ah3, bh3)) |
0;
30506 lo = (lo + Math.imul(al2, bl4)) |
0;
30507 mid = (mid + Math.imul(al2, bh4)) |
0;
30508 mid = (mid + Math.imul(ah2, bl4)) |
0;
30509 hi = (hi + Math.imul(ah2, bh4)) |
0;
30510 lo = (lo + Math.imul(al1, bl5)) |
0;
30511 mid = (mid + Math.imul(al1, bh5)) |
0;
30512 mid = (mid + Math.imul(ah1, bl5)) |
0;
30513 hi = (hi + Math.imul(ah1, bh5)) |
0;
30514 lo = (lo + Math.imul(al0, bl6)) |
0;
30515 mid = (mid + Math.imul(al0, bh6)) |
0;
30516 mid = (mid + Math.imul(ah0, bl6)) |
0;
30517 hi = (hi + Math.imul(ah0, bh6)) |
0;
30518 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30519 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30522 lo = Math.imul(al7, bl0);
30523 mid = Math.imul(al7, bh0);
30524 mid = (mid + Math.imul(ah7, bl0)) |
0;
30525 hi = Math.imul(ah7, bh0);
30526 lo = (lo + Math.imul(al6, bl1)) |
0;
30527 mid = (mid + Math.imul(al6, bh1)) |
0;
30528 mid = (mid + Math.imul(ah6, bl1)) |
0;
30529 hi = (hi + Math.imul(ah6, bh1)) |
0;
30530 lo = (lo + Math.imul(al5, bl2)) |
0;
30531 mid = (mid + Math.imul(al5, bh2)) |
0;
30532 mid = (mid + Math.imul(ah5, bl2)) |
0;
30533 hi = (hi + Math.imul(ah5, bh2)) |
0;
30534 lo = (lo + Math.imul(al4, bl3)) |
0;
30535 mid = (mid + Math.imul(al4, bh3)) |
0;
30536 mid = (mid + Math.imul(ah4, bl3)) |
0;
30537 hi = (hi + Math.imul(ah4, bh3)) |
0;
30538 lo = (lo + Math.imul(al3, bl4)) |
0;
30539 mid = (mid + Math.imul(al3, bh4)) |
0;
30540 mid = (mid + Math.imul(ah3, bl4)) |
0;
30541 hi = (hi + Math.imul(ah3, bh4)) |
0;
30542 lo = (lo + Math.imul(al2, bl5)) |
0;
30543 mid = (mid + Math.imul(al2, bh5)) |
0;
30544 mid = (mid + Math.imul(ah2, bl5)) |
0;
30545 hi = (hi + Math.imul(ah2, bh5)) |
0;
30546 lo = (lo + Math.imul(al1, bl6)) |
0;
30547 mid = (mid + Math.imul(al1, bh6)) |
0;
30548 mid = (mid + Math.imul(ah1, bl6)) |
0;
30549 hi = (hi + Math.imul(ah1, bh6)) |
0;
30550 lo = (lo + Math.imul(al0, bl7)) |
0;
30551 mid = (mid + Math.imul(al0, bh7)) |
0;
30552 mid = (mid + Math.imul(ah0, bl7)) |
0;
30553 hi = (hi + Math.imul(ah0, bh7)) |
0;
30554 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30555 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30558 lo = Math.imul(al8, bl0);
30559 mid = Math.imul(al8, bh0);
30560 mid = (mid + Math.imul(ah8, bl0)) |
0;
30561 hi = Math.imul(ah8, bh0);
30562 lo = (lo + Math.imul(al7, bl1)) |
0;
30563 mid = (mid + Math.imul(al7, bh1)) |
0;
30564 mid = (mid + Math.imul(ah7, bl1)) |
0;
30565 hi = (hi + Math.imul(ah7, bh1)) |
0;
30566 lo = (lo + Math.imul(al6, bl2)) |
0;
30567 mid = (mid + Math.imul(al6, bh2)) |
0;
30568 mid = (mid + Math.imul(ah6, bl2)) |
0;
30569 hi = (hi + Math.imul(ah6, bh2)) |
0;
30570 lo = (lo + Math.imul(al5, bl3)) |
0;
30571 mid = (mid + Math.imul(al5, bh3)) |
0;
30572 mid = (mid + Math.imul(ah5, bl3)) |
0;
30573 hi = (hi + Math.imul(ah5, bh3)) |
0;
30574 lo = (lo + Math.imul(al4, bl4)) |
0;
30575 mid = (mid + Math.imul(al4, bh4)) |
0;
30576 mid = (mid + Math.imul(ah4, bl4)) |
0;
30577 hi = (hi + Math.imul(ah4, bh4)) |
0;
30578 lo = (lo + Math.imul(al3, bl5)) |
0;
30579 mid = (mid + Math.imul(al3, bh5)) |
0;
30580 mid = (mid + Math.imul(ah3, bl5)) |
0;
30581 hi = (hi + Math.imul(ah3, bh5)) |
0;
30582 lo = (lo + Math.imul(al2, bl6)) |
0;
30583 mid = (mid + Math.imul(al2, bh6)) |
0;
30584 mid = (mid + Math.imul(ah2, bl6)) |
0;
30585 hi = (hi + Math.imul(ah2, bh6)) |
0;
30586 lo = (lo + Math.imul(al1, bl7)) |
0;
30587 mid = (mid + Math.imul(al1, bh7)) |
0;
30588 mid = (mid + Math.imul(ah1, bl7)) |
0;
30589 hi = (hi + Math.imul(ah1, bh7)) |
0;
30590 lo = (lo + Math.imul(al0, bl8)) |
0;
30591 mid = (mid + Math.imul(al0, bh8)) |
0;
30592 mid = (mid + Math.imul(ah0, bl8)) |
0;
30593 hi = (hi + Math.imul(ah0, bh8)) |
0;
30594 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30595 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30598 lo = Math.imul(al9, bl0);
30599 mid = Math.imul(al9, bh0);
30600 mid = (mid + Math.imul(ah9, bl0)) |
0;
30601 hi = Math.imul(ah9, bh0);
30602 lo = (lo + Math.imul(al8, bl1)) |
0;
30603 mid = (mid + Math.imul(al8, bh1)) |
0;
30604 mid = (mid + Math.imul(ah8, bl1)) |
0;
30605 hi = (hi + Math.imul(ah8, bh1)) |
0;
30606 lo = (lo + Math.imul(al7, bl2)) |
0;
30607 mid = (mid + Math.imul(al7, bh2)) |
0;
30608 mid = (mid + Math.imul(ah7, bl2)) |
0;
30609 hi = (hi + Math.imul(ah7, bh2)) |
0;
30610 lo = (lo + Math.imul(al6, bl3)) |
0;
30611 mid = (mid + Math.imul(al6, bh3)) |
0;
30612 mid = (mid + Math.imul(ah6, bl3)) |
0;
30613 hi = (hi + Math.imul(ah6, bh3)) |
0;
30614 lo = (lo + Math.imul(al5, bl4)) |
0;
30615 mid = (mid + Math.imul(al5, bh4)) |
0;
30616 mid = (mid + Math.imul(ah5, bl4)) |
0;
30617 hi = (hi + Math.imul(ah5, bh4)) |
0;
30618 lo = (lo + Math.imul(al4, bl5)) |
0;
30619 mid = (mid + Math.imul(al4, bh5)) |
0;
30620 mid = (mid + Math.imul(ah4, bl5)) |
0;
30621 hi = (hi + Math.imul(ah4, bh5)) |
0;
30622 lo = (lo + Math.imul(al3, bl6)) |
0;
30623 mid = (mid + Math.imul(al3, bh6)) |
0;
30624 mid = (mid + Math.imul(ah3, bl6)) |
0;
30625 hi = (hi + Math.imul(ah3, bh6)) |
0;
30626 lo = (lo + Math.imul(al2, bl7)) |
0;
30627 mid = (mid + Math.imul(al2, bh7)) |
0;
30628 mid = (mid + Math.imul(ah2, bl7)) |
0;
30629 hi = (hi + Math.imul(ah2, bh7)) |
0;
30630 lo = (lo + Math.imul(al1, bl8)) |
0;
30631 mid = (mid + Math.imul(al1, bh8)) |
0;
30632 mid = (mid + Math.imul(ah1, bl8)) |
0;
30633 hi = (hi + Math.imul(ah1, bh8)) |
0;
30634 lo = (lo + Math.imul(al0, bl9)) |
0;
30635 mid = (mid + Math.imul(al0, bh9)) |
0;
30636 mid = (mid + Math.imul(ah0, bl9)) |
0;
30637 hi = (hi + Math.imul(ah0, bh9)) |
0;
30638 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30639 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30642 lo = Math.imul(al9, bl1);
30643 mid = Math.imul(al9, bh1);
30644 mid = (mid + Math.imul(ah9, bl1)) |
0;
30645 hi = Math.imul(ah9, bh1);
30646 lo = (lo + Math.imul(al8, bl2)) |
0;
30647 mid = (mid + Math.imul(al8, bh2)) |
0;
30648 mid = (mid + Math.imul(ah8, bl2)) |
0;
30649 hi = (hi + Math.imul(ah8, bh2)) |
0;
30650 lo = (lo + Math.imul(al7, bl3)) |
0;
30651 mid = (mid + Math.imul(al7, bh3)) |
0;
30652 mid = (mid + Math.imul(ah7, bl3)) |
0;
30653 hi = (hi + Math.imul(ah7, bh3)) |
0;
30654 lo = (lo + Math.imul(al6, bl4)) |
0;
30655 mid = (mid + Math.imul(al6, bh4)) |
0;
30656 mid = (mid + Math.imul(ah6, bl4)) |
0;
30657 hi = (hi + Math.imul(ah6, bh4)) |
0;
30658 lo = (lo + Math.imul(al5, bl5)) |
0;
30659 mid = (mid + Math.imul(al5, bh5)) |
0;
30660 mid = (mid + Math.imul(ah5, bl5)) |
0;
30661 hi = (hi + Math.imul(ah5, bh5)) |
0;
30662 lo = (lo + Math.imul(al4, bl6)) |
0;
30663 mid = (mid + Math.imul(al4, bh6)) |
0;
30664 mid = (mid + Math.imul(ah4, bl6)) |
0;
30665 hi = (hi + Math.imul(ah4, bh6)) |
0;
30666 lo = (lo + Math.imul(al3, bl7)) |
0;
30667 mid = (mid + Math.imul(al3, bh7)) |
0;
30668 mid = (mid + Math.imul(ah3, bl7)) |
0;
30669 hi = (hi + Math.imul(ah3, bh7)) |
0;
30670 lo = (lo + Math.imul(al2, bl8)) |
0;
30671 mid = (mid + Math.imul(al2, bh8)) |
0;
30672 mid = (mid + Math.imul(ah2, bl8)) |
0;
30673 hi = (hi + Math.imul(ah2, bh8)) |
0;
30674 lo = (lo + Math.imul(al1, bl9)) |
0;
30675 mid = (mid + Math.imul(al1, bh9)) |
0;
30676 mid = (mid + Math.imul(ah1, bl9)) |
0;
30677 hi = (hi + Math.imul(ah1, bh9)) |
0;
30678 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30679 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30682 lo = Math.imul(al9, bl2);
30683 mid = Math.imul(al9, bh2);
30684 mid = (mid + Math.imul(ah9, bl2)) |
0;
30685 hi = Math.imul(ah9, bh2);
30686 lo = (lo + Math.imul(al8, bl3)) |
0;
30687 mid = (mid + Math.imul(al8, bh3)) |
0;
30688 mid = (mid + Math.imul(ah8, bl3)) |
0;
30689 hi = (hi + Math.imul(ah8, bh3)) |
0;
30690 lo = (lo + Math.imul(al7, bl4)) |
0;
30691 mid = (mid + Math.imul(al7, bh4)) |
0;
30692 mid = (mid + Math.imul(ah7, bl4)) |
0;
30693 hi = (hi + Math.imul(ah7, bh4)) |
0;
30694 lo = (lo + Math.imul(al6, bl5)) |
0;
30695 mid = (mid + Math.imul(al6, bh5)) |
0;
30696 mid = (mid + Math.imul(ah6, bl5)) |
0;
30697 hi = (hi + Math.imul(ah6, bh5)) |
0;
30698 lo = (lo + Math.imul(al5, bl6)) |
0;
30699 mid = (mid + Math.imul(al5, bh6)) |
0;
30700 mid = (mid + Math.imul(ah5, bl6)) |
0;
30701 hi = (hi + Math.imul(ah5, bh6)) |
0;
30702 lo = (lo + Math.imul(al4, bl7)) |
0;
30703 mid = (mid + Math.imul(al4, bh7)) |
0;
30704 mid = (mid + Math.imul(ah4, bl7)) |
0;
30705 hi = (hi + Math.imul(ah4, bh7)) |
0;
30706 lo = (lo + Math.imul(al3, bl8)) |
0;
30707 mid = (mid + Math.imul(al3, bh8)) |
0;
30708 mid = (mid + Math.imul(ah3, bl8)) |
0;
30709 hi = (hi + Math.imul(ah3, bh8)) |
0;
30710 lo = (lo + Math.imul(al2, bl9)) |
0;
30711 mid = (mid + Math.imul(al2, bh9)) |
0;
30712 mid = (mid + Math.imul(ah2, bl9)) |
0;
30713 hi = (hi + Math.imul(ah2, bh9)) |
0;
30714 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30715 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30718 lo = Math.imul(al9, bl3);
30719 mid = Math.imul(al9, bh3);
30720 mid = (mid + Math.imul(ah9, bl3)) |
0;
30721 hi = Math.imul(ah9, bh3);
30722 lo = (lo + Math.imul(al8, bl4)) |
0;
30723 mid = (mid + Math.imul(al8, bh4)) |
0;
30724 mid = (mid + Math.imul(ah8, bl4)) |
0;
30725 hi = (hi + Math.imul(ah8, bh4)) |
0;
30726 lo = (lo + Math.imul(al7, bl5)) |
0;
30727 mid = (mid + Math.imul(al7, bh5)) |
0;
30728 mid = (mid + Math.imul(ah7, bl5)) |
0;
30729 hi = (hi + Math.imul(ah7, bh5)) |
0;
30730 lo = (lo + Math.imul(al6, bl6)) |
0;
30731 mid = (mid + Math.imul(al6, bh6)) |
0;
30732 mid = (mid + Math.imul(ah6, bl6)) |
0;
30733 hi = (hi + Math.imul(ah6, bh6)) |
0;
30734 lo = (lo + Math.imul(al5, bl7)) |
0;
30735 mid = (mid + Math.imul(al5, bh7)) |
0;
30736 mid = (mid + Math.imul(ah5, bl7)) |
0;
30737 hi = (hi + Math.imul(ah5, bh7)) |
0;
30738 lo = (lo + Math.imul(al4, bl8)) |
0;
30739 mid = (mid + Math.imul(al4, bh8)) |
0;
30740 mid = (mid + Math.imul(ah4, bl8)) |
0;
30741 hi = (hi + Math.imul(ah4, bh8)) |
0;
30742 lo = (lo + Math.imul(al3, bl9)) |
0;
30743 mid = (mid + Math.imul(al3, bh9)) |
0;
30744 mid = (mid + Math.imul(ah3, bl9)) |
0;
30745 hi = (hi + Math.imul(ah3, bh9)) |
0;
30746 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30747 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30750 lo = Math.imul(al9, bl4);
30751 mid = Math.imul(al9, bh4);
30752 mid = (mid + Math.imul(ah9, bl4)) |
0;
30753 hi = Math.imul(ah9, bh4);
30754 lo = (lo + Math.imul(al8, bl5)) |
0;
30755 mid = (mid + Math.imul(al8, bh5)) |
0;
30756 mid = (mid + Math.imul(ah8, bl5)) |
0;
30757 hi = (hi + Math.imul(ah8, bh5)) |
0;
30758 lo = (lo + Math.imul(al7, bl6)) |
0;
30759 mid = (mid + Math.imul(al7, bh6)) |
0;
30760 mid = (mid + Math.imul(ah7, bl6)) |
0;
30761 hi = (hi + Math.imul(ah7, bh6)) |
0;
30762 lo = (lo + Math.imul(al6, bl7)) |
0;
30763 mid = (mid + Math.imul(al6, bh7)) |
0;
30764 mid = (mid + Math.imul(ah6, bl7)) |
0;
30765 hi = (hi + Math.imul(ah6, bh7)) |
0;
30766 lo = (lo + Math.imul(al5, bl8)) |
0;
30767 mid = (mid + Math.imul(al5, bh8)) |
0;
30768 mid = (mid + Math.imul(ah5, bl8)) |
0;
30769 hi = (hi + Math.imul(ah5, bh8)) |
0;
30770 lo = (lo + Math.imul(al4, bl9)) |
0;
30771 mid = (mid + Math.imul(al4, bh9)) |
0;
30772 mid = (mid + Math.imul(ah4, bl9)) |
0;
30773 hi = (hi + Math.imul(ah4, bh9)) |
0;
30774 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30775 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30778 lo = Math.imul(al9, bl5);
30779 mid = Math.imul(al9, bh5);
30780 mid = (mid + Math.imul(ah9, bl5)) |
0;
30781 hi = Math.imul(ah9, bh5);
30782 lo = (lo + Math.imul(al8, bl6)) |
0;
30783 mid = (mid + Math.imul(al8, bh6)) |
0;
30784 mid = (mid + Math.imul(ah8, bl6)) |
0;
30785 hi = (hi + Math.imul(ah8, bh6)) |
0;
30786 lo = (lo + Math.imul(al7, bl7)) |
0;
30787 mid = (mid + Math.imul(al7, bh7)) |
0;
30788 mid = (mid + Math.imul(ah7, bl7)) |
0;
30789 hi = (hi + Math.imul(ah7, bh7)) |
0;
30790 lo = (lo + Math.imul(al6, bl8)) |
0;
30791 mid = (mid + Math.imul(al6, bh8)) |
0;
30792 mid = (mid + Math.imul(ah6, bl8)) |
0;
30793 hi = (hi + Math.imul(ah6, bh8)) |
0;
30794 lo = (lo + Math.imul(al5, bl9)) |
0;
30795 mid = (mid + Math.imul(al5, bh9)) |
0;
30796 mid = (mid + Math.imul(ah5, bl9)) |
0;
30797 hi = (hi + Math.imul(ah5, bh9)) |
0;
30798 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30799 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30802 lo = Math.imul(al9, bl6);
30803 mid = Math.imul(al9, bh6);
30804 mid = (mid + Math.imul(ah9, bl6)) |
0;
30805 hi = Math.imul(ah9, bh6);
30806 lo = (lo + Math.imul(al8, bl7)) |
0;
30807 mid = (mid + Math.imul(al8, bh7)) |
0;
30808 mid = (mid + Math.imul(ah8, bl7)) |
0;
30809 hi = (hi + Math.imul(ah8, bh7)) |
0;
30810 lo = (lo + Math.imul(al7, bl8)) |
0;
30811 mid = (mid + Math.imul(al7, bh8)) |
0;
30812 mid = (mid + Math.imul(ah7, bl8)) |
0;
30813 hi = (hi + Math.imul(ah7, bh8)) |
0;
30814 lo = (lo + Math.imul(al6, bl9)) |
0;
30815 mid = (mid + Math.imul(al6, bh9)) |
0;
30816 mid = (mid + Math.imul(ah6, bl9)) |
0;
30817 hi = (hi + Math.imul(ah6, bh9)) |
0;
30818 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30819 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30822 lo = Math.imul(al9, bl7);
30823 mid = Math.imul(al9, bh7);
30824 mid = (mid + Math.imul(ah9, bl7)) |
0;
30825 hi = Math.imul(ah9, bh7);
30826 lo = (lo + Math.imul(al8, bl8)) |
0;
30827 mid = (mid + Math.imul(al8, bh8)) |
0;
30828 mid = (mid + Math.imul(ah8, bl8)) |
0;
30829 hi = (hi + Math.imul(ah8, bh8)) |
0;
30830 lo = (lo + Math.imul(al7, bl9)) |
0;
30831 mid = (mid + Math.imul(al7, bh9)) |
0;
30832 mid = (mid + Math.imul(ah7, bl9)) |
0;
30833 hi = (hi + Math.imul(ah7, bh9)) |
0;
30834 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30835 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30838 lo = Math.imul(al9, bl8);
30839 mid = Math.imul(al9, bh8);
30840 mid = (mid + Math.imul(ah9, bl8)) |
0;
30841 hi = Math.imul(ah9, bh8);
30842 lo = (lo + Math.imul(al8, bl9)) |
0;
30843 mid = (mid + Math.imul(al8, bh9)) |
0;
30844 mid = (mid + Math.imul(ah8, bl9)) |
0;
30845 hi = (hi + Math.imul(ah8, bh9)) |
0;
30846 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30847 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30850 lo = Math.imul(al9, bl9);
30851 mid = Math.imul(al9, bh9);
30852 mid = (mid + Math.imul(ah9, bl9)) |
0;
30853 hi = Math.imul(ah9, bh9);
30854 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30855 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30885 comb10MulTo = smallMulTo;
30888 function bigMulTo (self, num, out) {
30889 out.negative = num.negative ^ self.negative;
30890 out.length = self.length + num.length;
30894 for (var k =
0; k < out.length -
1; k++) {
30895 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30896 // note that ncarry could be
>=
0x3ffffff
30897 var ncarry = hncarry;
30899 var rword = carry &
0x3ffffff;
30900 var maxJ = Math.min(k, num.length -
1);
30901 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30903 var a = self.words[i] |
0;
30904 var b = num.words[j] |
0;
30907 var lo = r &
0x3ffffff;
30908 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30909 lo = (lo + rword) |
0;
30910 rword = lo &
0x3ffffff;
30911 ncarry = (ncarry + (lo
>>> 26)) |
0;
30913 hncarry += ncarry
>>> 26;
30914 ncarry &=
0x3ffffff;
30916 out.words[k] = rword;
30921 out.words[k] = carry;
30926 return out.strip();
30929 function jumboMulTo (self, num, out) {
30930 var fftm = new FFTM();
30931 return fftm.mulp(self, num, out);
30934 BN.prototype.mulTo = function mulTo (num, out) {
30936 var len = this.length + num.length;
30937 if (this.length ===
10 && num.length ===
10) {
30938 res = comb10MulTo(this, num, out);
30939 } else if (len <
63) {
30940 res = smallMulTo(this, num, out);
30941 } else if (len <
1024) {
30942 res = bigMulTo(this, num, out);
30944 res = jumboMulTo(this, num, out);
30950 // Cooley-Tukey algorithm for FFT
30951 // slightly revisited to rely on looping instead of recursion
30953 function FFTM (x, y) {
30958 FFTM.prototype.makeRBT = function makeRBT (N) {
30959 var t = new Array(N);
30960 var l = BN.prototype._countBits(N) -
1;
30961 for (var i =
0; i < N; i++) {
30962 t[i] = this.revBin(i, l, N);
30968 // Returns binary-reversed representation of `x`
30969 FFTM.prototype.revBin = function revBin (x, l, N) {
30970 if (x ===
0 || x === N -
1) return x;
30973 for (var i =
0; i < l; i++) {
30974 rb |= (x &
1) << (l - i -
1);
30981 // Performs "tweedling" phase, therefore 'emulating'
30982 // behaviour of the recursive algorithm
30983 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
30984 for (var i =
0; i < N; i++) {
30985 rtws[i] = rws[rbt[i]];
30986 itws[i] = iws[rbt[i]];
30990 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
30991 this.permute(rbt, rws, iws, rtws, itws, N);
30993 for (var s =
1; s < N; s <<=
1) {
30996 var rtwdf = Math.cos(
2 * Math.PI / l);
30997 var itwdf = Math.sin(
2 * Math.PI / l);
30999 for (var p =
0; p < N; p += l) {
31000 var rtwdf_ = rtwdf;
31001 var itwdf_ = itwdf;
31003 for (var j =
0; j < s; j++) {
31004 var re = rtws[p + j];
31005 var ie = itws[p + j];
31007 var ro = rtws[p + j + s];
31008 var io = itws[p + j + s];
31010 var rx = rtwdf_ * ro - itwdf_ * io;
31012 io = rtwdf_ * io + itwdf_ * ro;
31015 rtws[p + j] = re + ro;
31016 itws[p + j] = ie + io;
31018 rtws[p + j + s] = re - ro;
31019 itws[p + j + s] = ie - io;
31021 /* jshint maxdepth : false */
31023 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31025 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31033 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31034 var N = Math.max(m, n) |
1;
31037 for (N = N /
2 |
0; N; N = N
>>> 1) {
31041 return
1 << i +
1 + odd;
31044 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31045 if (N <=
1) return;
31047 for (var i =
0; i < N /
2; i++) {
31050 rws[i] = rws[N - i -
1];
31051 rws[N - i -
1] = t;
31055 iws[i] = -iws[N - i -
1];
31056 iws[N - i -
1] = -t;
31060 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31062 for (var i =
0; i < N /
2; i++) {
31063 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31064 Math.round(ws[
2 * i] / N) +
31067 ws[i] = w &
0x3ffffff;
31069 if (w <
0x4000000) {
31072 carry = w /
0x4000000 |
0;
31079 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31081 for (var i =
0; i < len; i++) {
31082 carry = carry + (ws[i] |
0);
31084 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31085 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31089 for (i =
2 * len; i < N; ++i) {
31093 assert(carry ===
0);
31094 assert((carry & ~
0x1fff) ===
0);
31097 FFTM.prototype.stub = function stub (N) {
31098 var ph = new Array(N);
31099 for (var i =
0; i < N; i++) {
31106 FFTM.prototype.mulp = function mulp (x, y, out) {
31107 var N =
2 * this.guessLen13b(x.length, y.length);
31109 var rbt = this.makeRBT(N);
31111 var _ = this.stub(N);
31113 var rws = new Array(N);
31114 var rwst = new Array(N);
31115 var iwst = new Array(N);
31117 var nrws = new Array(N);
31118 var nrwst = new Array(N);
31119 var niwst = new Array(N);
31121 var rmws = out.words;
31124 this.convert13b(x.words, x.length, rws, N);
31125 this.convert13b(y.words, y.length, nrws, N);
31127 this.transform(rws, _, rwst, iwst, N, rbt);
31128 this.transform(nrws, _, nrwst, niwst, N, rbt);
31130 for (var i =
0; i < N; i++) {
31131 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31132 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31136 this.conjugate(rwst, iwst, N);
31137 this.transform(rwst, iwst, rmws, _, N, rbt);
31138 this.conjugate(rmws, _, N);
31139 this.normalize13b(rmws, N);
31141 out.negative = x.negative ^ y.negative;
31142 out.length = x.length + y.length;
31143 return out.strip();
31146 // Multiply `this` by `num`
31147 BN.prototype.mul = function mul (num) {
31148 var out = new BN(null);
31149 out.words = new Array(this.length + num.length);
31150 return this.mulTo(num, out);
31153 // Multiply employing FFT
31154 BN.prototype.mulf = function mulf (num) {
31155 var out = new BN(null);
31156 out.words = new Array(this.length + num.length);
31157 return jumboMulTo(this, num, out);
31160 // In-place Multiplication
31161 BN.prototype.imul = function imul (num) {
31162 return this.clone().mulTo(num, this);
31165 BN.prototype.imuln = function imuln (num) {
31166 assert(typeof num === 'number');
31167 assert(num <
0x4000000);
31171 for (var i =
0; i < this.length; i++) {
31172 var w = (this.words[i] |
0) * num;
31173 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31175 carry += (w /
0x4000000) |
0;
31176 // NOTE: lo is
27bit maximum
31177 carry += lo
>>> 26;
31178 this.words[i] = lo &
0x3ffffff;
31182 this.words[i] = carry;
31189 BN.prototype.muln = function muln (num) {
31190 return this.clone().imuln(num);
31194 BN.prototype.sqr = function sqr () {
31195 return this.mul(this);
31198 // `this` * `this` in-place
31199 BN.prototype.isqr = function isqr () {
31200 return this.imul(this.clone());
31203 // Math.pow(`this`, `num`)
31204 BN.prototype.pow = function pow (num) {
31205 var w = toBitArray(num);
31206 if (w.length ===
0) return new BN(
1);
31208 // Skip leading zeroes
31210 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31211 if (w[i] !==
0) break;
31214 if (++i < w.length) {
31215 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31216 if (w[i] ===
0) continue;
31225 // Shift-left in-place
31226 BN.prototype.iushln = function iushln (bits) {
31227 assert(typeof bits === 'number' && bits
>=
0);
31229 var s = (bits - r) /
26;
31230 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31236 for (i =
0; i < this.length; i++) {
31237 var newCarry = this.words[i] & carryMask;
31238 var c = ((this.words[i] |
0) - newCarry) << r;
31239 this.words[i] = c | carry;
31240 carry = newCarry
>>> (
26 - r);
31244 this.words[i] = carry;
31250 for (i = this.length -
1; i
>=
0; i--) {
31251 this.words[i + s] = this.words[i];
31254 for (i =
0; i < s; i++) {
31261 return this.strip();
31264 BN.prototype.ishln = function ishln (bits) {
31265 // TODO(indutny): implement me
31266 assert(this.negative ===
0);
31267 return this.iushln(bits);
31270 // Shift-right in-place
31271 // NOTE: `hint` is a lowest bit before trailing zeroes
31272 // NOTE: if `extended` is present - it will be filled with destroyed bits
31273 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31274 assert(typeof bits === 'number' && bits
>=
0);
31277 h = (hint - (hint %
26)) /
26;
31283 var s = Math.min((bits - r) /
26, this.length);
31284 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31285 var maskedWords = extended;
31288 h = Math.max(
0, h);
31290 // Extended mode, copy masked part
31292 for (var i =
0; i < s; i++) {
31293 maskedWords.words[i] = this.words[i];
31295 maskedWords.length = s;
31299 // No-op, we should not move anything at all
31300 } else if (this.length
> s) {
31302 for (i =
0; i < this.length; i++) {
31303 this.words[i] = this.words[i + s];
31311 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31312 var word = this.words[i] |
0;
31313 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31314 carry = word & mask;
31317 // Push carried bits as a mask
31318 if (maskedWords && carry !==
0) {
31319 maskedWords.words[maskedWords.length++] = carry;
31322 if (this.length ===
0) {
31327 return this.strip();
31330 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31331 // TODO(indutny): implement me
31332 assert(this.negative ===
0);
31333 return this.iushrn(bits, hint, extended);
31337 BN.prototype.shln = function shln (bits) {
31338 return this.clone().ishln(bits);
31341 BN.prototype.ushln = function ushln (bits) {
31342 return this.clone().iushln(bits);
31346 BN.prototype.shrn = function shrn (bits) {
31347 return this.clone().ishrn(bits);
31350 BN.prototype.ushrn = function ushrn (bits) {
31351 return this.clone().iushrn(bits);
31354 // Test if n bit is set
31355 BN.prototype.testn = function testn (bit) {
31356 assert(typeof bit === 'number' && bit
>=
0);
31358 var s = (bit - r) /
26;
31361 // Fast case: bit is much higher than all existing words
31362 if (this.length <= s) return false;
31364 // Check bit and return
31365 var w = this.words[s];
31370 // Return only lowers bits of number (in-place)
31371 BN.prototype.imaskn = function imaskn (bits) {
31372 assert(typeof bits === 'number' && bits
>=
0);
31374 var s = (bits - r) /
26;
31376 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31378 if (this.length <= s) {
31385 this.length = Math.min(s, this.length);
31388 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31389 this.words[this.length -
1] &= mask;
31392 return this.strip();
31395 // Return only lowers bits of number
31396 BN.prototype.maskn = function maskn (bits) {
31397 return this.clone().imaskn(bits);
31400 // Add plain number `num` to `this`
31401 BN.prototype.iaddn = function iaddn (num) {
31402 assert(typeof num === 'number');
31403 assert(num <
0x4000000);
31404 if (num <
0) return this.isubn(-num);
31406 // Possible sign change
31407 if (this.negative !==
0) {
31408 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31409 this.words[
0] = num - (this.words[
0] |
0);
31420 // Add without checks
31421 return this._iaddn(num);
31424 BN.prototype._iaddn = function _iaddn (num) {
31425 this.words[
0] += num;
31428 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31429 this.words[i] -=
0x4000000;
31430 if (i === this.length -
1) {
31431 this.words[i +
1] =
1;
31433 this.words[i +
1]++;
31436 this.length = Math.max(this.length, i +
1);
31441 // Subtract plain number `num` from `this`
31442 BN.prototype.isubn = function isubn (num) {
31443 assert(typeof num === 'number');
31444 assert(num <
0x4000000);
31445 if (num <
0) return this.iaddn(-num);
31447 if (this.negative !==
0) {
31454 this.words[
0] -= num;
31456 if (this.length ===
1 && this.words[
0] <
0) {
31457 this.words[
0] = -this.words[
0];
31461 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31462 this.words[i] +=
0x4000000;
31463 this.words[i +
1] -=
1;
31467 return this.strip();
31470 BN.prototype.addn = function addn (num) {
31471 return this.clone().iaddn(num);
31474 BN.prototype.subn = function subn (num) {
31475 return this.clone().isubn(num);
31478 BN.prototype.iabs = function iabs () {
31484 BN.prototype.abs = function abs () {
31485 return this.clone().iabs();
31488 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31489 var len = num.length + shift;
31496 for (i =
0; i < num.length; i++) {
31497 w = (this.words[i + shift] |
0) + carry;
31498 var right = (num.words[i] |
0) * mul;
31499 w -= right &
0x3ffffff;
31500 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31501 this.words[i + shift] = w &
0x3ffffff;
31503 for (; i < this.length - shift; i++) {
31504 w = (this.words[i + shift] |
0) + carry;
31506 this.words[i + shift] = w &
0x3ffffff;
31509 if (carry ===
0) return this.strip();
31511 // Subtraction overflow
31512 assert(carry === -
1);
31514 for (i =
0; i < this.length; i++) {
31515 w = -(this.words[i] |
0) + carry;
31517 this.words[i] = w &
0x3ffffff;
31521 return this.strip();
31524 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31525 var shift = this.length - num.length;
31527 var a = this.clone();
31531 var bhi = b.words[b.length -
1] |
0;
31532 var bhiBits = this._countBits(bhi);
31533 shift =
26 - bhiBits;
31535 b = b.ushln(shift);
31537 bhi = b.words[b.length -
1] |
0;
31540 // Initialize quotient
31541 var m = a.length - b.length;
31544 if (mode !== 'mod') {
31547 q.words = new Array(q.length);
31548 for (var i =
0; i < q.length; i++) {
31553 var diff = a.clone()._ishlnsubmul(b,
1, m);
31554 if (diff.negative ===
0) {
31561 for (var j = m -
1; j
>=
0; j--) {
31562 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31563 (a.words[b.length + j -
1] |
0);
31565 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31567 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31569 a._ishlnsubmul(b, qj, j);
31570 while (a.negative !==
0) {
31573 a._ishlnsubmul(b,
1, j);
31588 if (mode !== 'div' && shift !==
0) {
31598 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31599 // to `div` to request div only, or be absent to
31600 // request both div & mod
31601 //
2) `positive` is true if unsigned mod is requested
31602 BN.prototype.divmod = function divmod (num, mode, positive) {
31603 assert(!num.isZero());
31605 if (this.isZero()) {
31613 if (this.negative !==
0 && num.negative ===
0) {
31614 res = this.neg().divmod(num, mode);
31616 if (mode !== 'mod') {
31617 div = res.div.neg();
31620 if (mode !== 'div') {
31621 mod = res.mod.neg();
31622 if (positive && mod.negative !==
0) {
31633 if (this.negative ===
0 && num.negative !==
0) {
31634 res = this.divmod(num.neg(), mode);
31636 if (mode !== 'mod') {
31637 div = res.div.neg();
31646 if ((this.negative & num.negative) !==
0) {
31647 res = this.neg().divmod(num.neg(), mode);
31649 if (mode !== 'div') {
31650 mod = res.mod.neg();
31651 if (positive && mod.negative !==
0) {
31662 // Both numbers are positive at this point
31664 // Strip both numbers to approximate shift value
31665 if (num.length
> this.length || this.cmp(num) <
0) {
31672 // Very short reduction
31673 if (num.length ===
1) {
31674 if (mode === 'div') {
31676 div: this.divn(num.words[
0]),
31681 if (mode === 'mod') {
31684 mod: new BN(this.modn(num.words[
0]))
31689 div: this.divn(num.words[
0]),
31690 mod: new BN(this.modn(num.words[
0]))
31694 return this._wordDiv(num, mode);
31697 // Find `this` / `num`
31698 BN.prototype.div = function div (num) {
31699 return this.divmod(num, 'div', false).div;
31702 // Find `this` % `num`
31703 BN.prototype.mod = function mod (num) {
31704 return this.divmod(num, 'mod', false).mod;
31707 BN.prototype.umod = function umod (num) {
31708 return this.divmod(num, 'mod', true).mod;
31711 // Find Round(`this` / `num`)
31712 BN.prototype.divRound = function divRound (num) {
31713 var dm = this.divmod(num);
31715 // Fast case - exact division
31716 if (dm.mod.isZero()) return dm.div;
31718 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31720 var half = num.ushrn(
1);
31721 var r2 = num.andln(
1);
31722 var cmp = mod.cmp(half);
31725 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31728 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31731 BN.prototype.modn = function modn (num) {
31732 assert(num <=
0x3ffffff);
31733 var p = (
1 <<
26) % num;
31736 for (var i = this.length -
1; i
>=
0; i--) {
31737 acc = (p * acc + (this.words[i] |
0)) % num;
31743 // In-place division by number
31744 BN.prototype.idivn = function idivn (num) {
31745 assert(num <=
0x3ffffff);
31748 for (var i = this.length -
1; i
>=
0; i--) {
31749 var w = (this.words[i] |
0) + carry *
0x4000000;
31750 this.words[i] = (w / num) |
0;
31754 return this.strip();
31757 BN.prototype.divn = function divn (num) {
31758 return this.clone().idivn(num);
31761 BN.prototype.egcd = function egcd (p) {
31762 assert(p.negative ===
0);
31763 assert(!p.isZero());
31768 if (x.negative !==
0) {
31774 // A * x + B * y = x
31778 // C * x + D * y = y
31784 while (x.isEven() && y.isEven()) {
31790 var yp = y.clone();
31791 var xp = x.clone();
31793 while (!x.isZero()) {
31794 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31798 if (A.isOdd() || B.isOdd()) {
31808 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31812 if (C.isOdd() || D.isOdd()) {
31822 if (x.cmp(y)
>=
0) {
31840 // This is reduced incarnation of the binary EEA
31841 // above, designated to invert members of the
31842 // _prime_ fields F(p) at a maximal speed
31843 BN.prototype._invmp = function _invmp (p) {
31844 assert(p.negative ===
0);
31845 assert(!p.isZero());
31850 if (a.negative !==
0) {
31856 var x1 = new BN(
1);
31857 var x2 = new BN(
0);
31859 var delta = b.clone();
31861 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31862 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31874 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31886 if (a.cmp(b)
>=
0) {
31896 if (a.cmpn(
1) ===
0) {
31902 if (res.cmpn(
0) <
0) {
31909 BN.prototype.gcd = function gcd (num) {
31910 if (this.isZero()) return num.abs();
31911 if (num.isZero()) return this.abs();
31913 var a = this.clone();
31914 var b = num.clone();
31918 // Remove common factor of two
31919 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31925 while (a.isEven()) {
31928 while (b.isEven()) {
31934 // Swap `a` and `b` to make `a` always bigger than `b`
31938 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31945 return b.iushln(shift);
31948 // Invert number in the field F(num)
31949 BN.prototype.invm = function invm (num) {
31950 return this.egcd(num).a.umod(num);
31953 BN.prototype.isEven = function isEven () {
31954 return (this.words[
0] &
1) ===
0;
31957 BN.prototype.isOdd = function isOdd () {
31958 return (this.words[
0] &
1) ===
1;
31961 // And first word and num
31962 BN.prototype.andln = function andln (num) {
31963 return this.words[
0] & num;
31966 // Increment at the bit position in-line
31967 BN.prototype.bincn = function bincn (bit) {
31968 assert(typeof bit === 'number');
31970 var s = (bit - r) /
26;
31973 // Fast case: bit is much higher than all existing words
31974 if (this.length <= s) {
31975 this._expand(s +
1);
31976 this.words[s] |= q;
31980 // Add bit and propagate, if needed
31982 for (var i = s; carry !==
0 && i < this.length; i++) {
31983 var w = this.words[i] |
0;
31990 this.words[i] = carry;
31996 BN.prototype.isZero = function isZero () {
31997 return this.length ===
1 && this.words[
0] ===
0;
32000 BN.prototype.cmpn = function cmpn (num) {
32001 var negative = num <
0;
32003 if (this.negative !==
0 && !negative) return -
1;
32004 if (this.negative ===
0 && negative) return
1;
32009 if (this.length
> 1) {
32016 assert(num <=
0x3ffffff, 'Number is too big');
32018 var w = this.words[
0] |
0;
32019 res = w === num ?
0 : w < num ? -
1 :
1;
32021 if (this.negative !==
0) return -res |
0;
32025 // Compare two numbers and return:
32026 //
1 - if `this`
> `num`
32027 //
0 - if `this` == `num`
32028 // -
1 - if `this` < `num`
32029 BN.prototype.cmp = function cmp (num) {
32030 if (this.negative !==
0 && num.negative ===
0) return -
1;
32031 if (this.negative ===
0 && num.negative !==
0) return
1;
32033 var res = this.ucmp(num);
32034 if (this.negative !==
0) return -res |
0;
32038 // Unsigned comparison
32039 BN.prototype.ucmp = function ucmp (num) {
32040 // At this point both numbers have the same sign
32041 if (this.length
> num.length) return
1;
32042 if (this.length < num.length) return -
1;
32045 for (var i = this.length -
1; i
>=
0; i--) {
32046 var a = this.words[i] |
0;
32047 var b = num.words[i] |
0;
32049 if (a === b) continue;
32052 } else if (a
> b) {
32060 BN.prototype.gtn = function gtn (num) {
32061 return this.cmpn(num) ===
1;
32064 BN.prototype.gt = function gt (num) {
32065 return this.cmp(num) ===
1;
32068 BN.prototype.gten = function gten (num) {
32069 return this.cmpn(num)
>=
0;
32072 BN.prototype.gte = function gte (num) {
32073 return this.cmp(num)
>=
0;
32076 BN.prototype.ltn = function ltn (num) {
32077 return this.cmpn(num) === -
1;
32080 BN.prototype.lt = function lt (num) {
32081 return this.cmp(num) === -
1;
32084 BN.prototype.lten = function lten (num) {
32085 return this.cmpn(num) <=
0;
32088 BN.prototype.lte = function lte (num) {
32089 return this.cmp(num) <=
0;
32092 BN.prototype.eqn = function eqn (num) {
32093 return this.cmpn(num) ===
0;
32096 BN.prototype.eq = function eq (num) {
32097 return this.cmp(num) ===
0;
32101 // A reduce context, could be using montgomery or something better, depending
32102 // on the `m` itself.
32104 BN.red = function red (num) {
32105 return new Red(num);
32108 BN.prototype.toRed = function toRed (ctx) {
32109 assert(!this.red, 'Already a number in reduction context');
32110 assert(this.negative ===
0, 'red works only with positives');
32111 return ctx.convertTo(this)._forceRed(ctx);
32114 BN.prototype.fromRed = function fromRed () {
32115 assert(this.red, 'fromRed works only with numbers in reduction context');
32116 return this.red.convertFrom(this);
32119 BN.prototype._forceRed = function _forceRed (ctx) {
32124 BN.prototype.forceRed = function forceRed (ctx) {
32125 assert(!this.red, 'Already a number in reduction context');
32126 return this._forceRed(ctx);
32129 BN.prototype.redAdd = function redAdd (num) {
32130 assert(this.red, 'redAdd works only with red numbers');
32131 return this.red.add(this, num);
32134 BN.prototype.redIAdd = function redIAdd (num) {
32135 assert(this.red, 'redIAdd works only with red numbers');
32136 return this.red.iadd(this, num);
32139 BN.prototype.redSub = function redSub (num) {
32140 assert(this.red, 'redSub works only with red numbers');
32141 return this.red.sub(this, num);
32144 BN.prototype.redISub = function redISub (num) {
32145 assert(this.red, 'redISub works only with red numbers');
32146 return this.red.isub(this, num);
32149 BN.prototype.redShl = function redShl (num) {
32150 assert(this.red, 'redShl works only with red numbers');
32151 return this.red.shl(this, num);
32154 BN.prototype.redMul = function redMul (num) {
32155 assert(this.red, 'redMul works only with red numbers');
32156 this.red._verify2(this, num);
32157 return this.red.mul(this, num);
32160 BN.prototype.redIMul = function redIMul (num) {
32161 assert(this.red, 'redMul works only with red numbers');
32162 this.red._verify2(this, num);
32163 return this.red.imul(this, num);
32166 BN.prototype.redSqr = function redSqr () {
32167 assert(this.red, 'redSqr works only with red numbers');
32168 this.red._verify1(this);
32169 return this.red.sqr(this);
32172 BN.prototype.redISqr = function redISqr () {
32173 assert(this.red, 'redISqr works only with red numbers');
32174 this.red._verify1(this);
32175 return this.red.isqr(this);
32178 // Square root over p
32179 BN.prototype.redSqrt = function redSqrt () {
32180 assert(this.red, 'redSqrt works only with red numbers');
32181 this.red._verify1(this);
32182 return this.red.sqrt(this);
32185 BN.prototype.redInvm = function redInvm () {
32186 assert(this.red, 'redInvm works only with red numbers');
32187 this.red._verify1(this);
32188 return this.red.invm(this);
32191 // Return negative clone of `this` % `red modulo`
32192 BN.prototype.redNeg = function redNeg () {
32193 assert(this.red, 'redNeg works only with red numbers');
32194 this.red._verify1(this);
32195 return this.red.neg(this);
32198 BN.prototype.redPow = function redPow (num) {
32199 assert(this.red && !num.red, 'redPow(normalNum)');
32200 this.red._verify1(this);
32201 return this.red.pow(this, num);
32204 // Prime numbers with efficient reduction
32212 // Pseudo-Mersenne prime
32213 function MPrime (name, p) {
32216 this.p = new BN(p,
16);
32217 this.n = this.p.bitLength();
32218 this.k = new BN(
1).iushln(this.n).isub(this.p);
32220 this.tmp = this._tmp();
32223 MPrime.prototype._tmp = function _tmp () {
32224 var tmp = new BN(null);
32225 tmp.words = new Array(Math.ceil(this.n /
13));
32229 MPrime.prototype.ireduce = function ireduce (num) {
32230 // Assumes that `num` is less than `P^
2`
32231 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32236 this.split(r, this.tmp);
32238 r = r.iadd(this.tmp);
32239 rlen = r.bitLength();
32240 } while (rlen
> this.n);
32242 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32246 } else if (cmp
> 0) {
32255 MPrime.prototype.split = function split (input, out) {
32256 input.iushrn(this.n,
0, out);
32259 MPrime.prototype.imulK = function imulK (num) {
32260 return num.imul(this.k);
32267 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32269 inherits(K256, MPrime);
32271 K256.prototype.split = function split (input, output) {
32272 //
256 =
9 *
26 +
22
32273 var mask =
0x3fffff;
32275 var outLen = Math.min(input.length,
9);
32276 for (var i =
0; i < outLen; i++) {
32277 output.words[i] = input.words[i];
32279 output.length = outLen;
32281 if (input.length <=
9) {
32282 input.words[
0] =
0;
32287 // Shift by
9 limbs
32288 var prev = input.words[
9];
32289 output.words[output.length++] = prev & mask;
32291 for (i =
10; i < input.length; i++) {
32292 var next = input.words[i] |
0;
32293 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32297 input.words[i -
10] = prev;
32298 if (prev ===
0 && input.length
> 10) {
32299 input.length -=
10;
32305 K256.prototype.imulK = function imulK (num) {
32306 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32307 num.words[num.length] =
0;
32308 num.words[num.length +
1] =
0;
32311 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32313 for (var i =
0; i < num.length; i++) {
32314 var w = num.words[i] |
0;
32316 num.words[i] = lo &
0x3ffffff;
32317 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32320 // Fast length reduction
32321 if (num.words[num.length -
1] ===
0) {
32323 if (num.words[num.length -
1] ===
0) {
32334 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32336 inherits(P224, MPrime);
32342 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32344 inherits(P192, MPrime);
32346 function P25519 () {
32351 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32353 inherits(P25519, MPrime);
32355 P25519.prototype.imulK = function imulK (num) {
32358 for (var i =
0; i < num.length; i++) {
32359 var hi = (num.words[i] |
0) *
0x13 + carry;
32360 var lo = hi &
0x3ffffff;
32367 num.words[num.length++] = carry;
32372 // Exported mostly for testing purposes, use plain name instead
32373 BN._prime = function prime (name) {
32374 // Cached version of prime
32375 if (primes[name]) return primes[name];
32378 if (name === 'k256') {
32379 prime = new K256();
32380 } else if (name === 'p224') {
32381 prime = new P224();
32382 } else if (name === 'p192') {
32383 prime = new P192();
32384 } else if (name === 'p25519') {
32385 prime = new P25519();
32387 throw new Error('Unknown prime ' + name);
32389 primes[name] = prime;
32395 // Base reduction engine
32398 if (typeof m === 'string') {
32399 var prime = BN._prime(m);
32401 this.prime = prime;
32403 assert(m.gtn(
1), 'modulus must be greater than
1');
32409 Red.prototype._verify1 = function _verify1 (a) {
32410 assert(a.negative ===
0, 'red works only with positives');
32411 assert(a.red, 'red works only with red numbers');
32414 Red.prototype._verify2 = function _verify2 (a, b) {
32415 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32416 assert(a.red && a.red === b.red,
32417 'red works only with red numbers');
32420 Red.prototype.imod = function imod (a) {
32421 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32422 return a.umod(this.m)._forceRed(this);
32425 Red.prototype.neg = function neg (a) {
32430 return this.m.sub(a)._forceRed(this);
32433 Red.prototype.add = function add (a, b) {
32434 this._verify2(a, b);
32436 var res = a.add(b);
32437 if (res.cmp(this.m)
>=
0) {
32440 return res._forceRed(this);
32443 Red.prototype.iadd = function iadd (a, b) {
32444 this._verify2(a, b);
32446 var res = a.iadd(b);
32447 if (res.cmp(this.m)
>=
0) {
32453 Red.prototype.sub = function sub (a, b) {
32454 this._verify2(a, b);
32456 var res = a.sub(b);
32457 if (res.cmpn(
0) <
0) {
32460 return res._forceRed(this);
32463 Red.prototype.isub = function isub (a, b) {
32464 this._verify2(a, b);
32466 var res = a.isub(b);
32467 if (res.cmpn(
0) <
0) {
32473 Red.prototype.shl = function shl (a, num) {
32475 return this.imod(a.ushln(num));
32478 Red.prototype.imul = function imul (a, b) {
32479 this._verify2(a, b);
32480 return this.imod(a.imul(b));
32483 Red.prototype.mul = function mul (a, b) {
32484 this._verify2(a, b);
32485 return this.imod(a.mul(b));
32488 Red.prototype.isqr = function isqr (a) {
32489 return this.imul(a, a.clone());
32492 Red.prototype.sqr = function sqr (a) {
32493 return this.mul(a, a);
32496 Red.prototype.sqrt = function sqrt (a) {
32497 if (a.isZero()) return a.clone();
32499 var mod3 = this.m.andln(
3);
32500 assert(mod3 %
2 ===
1);
32504 var pow = this.m.add(new BN(
1)).iushrn(
2);
32505 return this.pow(a, pow);
32508 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32510 // Find Q and S, that Q *
2 ^ S = (P -
1)
32511 var q = this.m.subn(
1);
32513 while (!q.isZero() && q.andln(
1) ===
0) {
32517 assert(!q.isZero());
32519 var one = new BN(
1).toRed(this);
32520 var nOne = one.redNeg();
32522 // Find quadratic non-residue
32523 // NOTE: Max is such because of generalized Riemann hypothesis.
32524 var lpow = this.m.subn(
1).iushrn(
1);
32525 var z = this.m.bitLength();
32526 z = new BN(
2 * z * z).toRed(this);
32528 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32532 var c = this.pow(z, q);
32533 var r = this.pow(a, q.addn(
1).iushrn(
1));
32534 var t = this.pow(a, q);
32536 while (t.cmp(one) !==
0) {
32538 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32539 tmp = tmp.redSqr();
32542 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32553 Red.prototype.invm = function invm (a) {
32554 var inv = a._invmp(this.m);
32555 if (inv.negative !==
0) {
32557 return this.imod(inv).redNeg();
32559 return this.imod(inv);
32563 Red.prototype.pow = function pow (a, num) {
32564 if (num.isZero()) return new BN(
1);
32565 if (num.cmpn(
1) ===
0) return a.clone();
32567 var windowSize =
4;
32568 var wnd = new Array(
1 << windowSize);
32569 wnd[
0] = new BN(
1).toRed(this);
32571 for (var i =
2; i < wnd.length; i++) {
32572 wnd[i] = this.mul(wnd[i -
1], a);
32577 var currentLen =
0;
32578 var start = num.bitLength() %
26;
32583 for (i = num.length -
1; i
>=
0; i--) {
32584 var word = num.words[i];
32585 for (var j = start -
1; j
>=
0; j--) {
32586 var bit = (word
>> j) &
1;
32587 if (res !== wnd[
0]) {
32588 res = this.sqr(res);
32591 if (bit ===
0 && current ===
0) {
32599 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32601 res = this.mul(res, wnd[current]);
32611 Red.prototype.convertTo = function convertTo (num) {
32612 var r = num.umod(this.m);
32614 return r === num ? r.clone() : r;
32617 Red.prototype.convertFrom = function convertFrom (num) {
32618 var res = num.clone();
32624 // Montgomery method engine
32627 BN.mont = function mont (num) {
32628 return new Mont(num);
32631 function Mont (m) {
32634 this.shift = this.m.bitLength();
32635 if (this.shift %
26 !==
0) {
32636 this.shift +=
26 - (this.shift %
26);
32639 this.r = new BN(
1).iushln(this.shift);
32640 this.r2 = this.imod(this.r.sqr());
32641 this.rinv = this.r._invmp(this.m);
32643 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32644 this.minv = this.minv.umod(this.r);
32645 this.minv = this.r.sub(this.minv);
32647 inherits(Mont, Red);
32649 Mont.prototype.convertTo = function convertTo (num) {
32650 return this.imod(num.ushln(this.shift));
32653 Mont.prototype.convertFrom = function convertFrom (num) {
32654 var r = this.imod(num.mul(this.rinv));
32659 Mont.prototype.imul = function imul (a, b) {
32660 if (a.isZero() || b.isZero()) {
32667 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32668 var u = t.isub(c).iushrn(this.shift);
32671 if (u.cmp(this.m)
>=
0) {
32672 res = u.isub(this.m);
32673 } else if (u.cmpn(
0) <
0) {
32674 res = u.iadd(this.m);
32677 return res._forceRed(this);
32680 Mont.prototype.mul = function mul (a, b) {
32681 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32684 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32685 var u = t.isub(c).iushrn(this.shift);
32687 if (u.cmp(this.m)
>=
0) {
32688 res = u.isub(this.m);
32689 } else if (u.cmpn(
0) <
0) {
32690 res = u.iadd(this.m);
32693 return res._forceRed(this);
32696 Mont.prototype.invm = function invm (a) {
32697 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32698 var res = this.imod(a._invmp(this.m).mul(this.r2));
32699 return res._forceRed(this);
32701 })(typeof module === 'undefined' || module, this);
32703 },{}],
34:[function(require,module,exports){
32706 module.exports = function rand(len) {
32708 r = new Rand(null);
32710 return r.generate(len);
32713 function Rand(rand) {
32716 module.exports.Rand = Rand;
32718 Rand.prototype.generate = function generate(len) {
32719 return this._rand(len);
32722 if (typeof self === 'object') {
32723 if (self.crypto && self.crypto.getRandomValues) {
32725 Rand.prototype._rand = function _rand(n) {
32726 var arr = new Uint8Array(n);
32727 self.crypto.getRandomValues(arr);
32730 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32732 Rand.prototype._rand = function _rand(n) {
32733 var arr = new Uint8Array(n);
32734 self.msCrypto.getRandomValues(arr);
32739 Rand.prototype._rand = function() {
32740 throw new Error('Not implemented yet');
32744 // Node.js or Web worker with no crypto support
32746 var crypto = require('crypto');
32748 Rand.prototype._rand = function _rand(n) {
32749 return crypto.randomBytes(n);
32752 // Emulate crypto API using randy
32753 Rand.prototype._rand = function _rand(n) {
32754 var res = new Uint8Array(n);
32755 for (var i =
0; i < res.length; i++)
32756 res[i] = this.rand.getByte();
32762 },{"crypto":
3}],
35:[function(require,module,exports){
32763 (function (Buffer){
32764 var Transform = require('stream').Transform
32765 var inherits = require('inherits')
32766 var StringDecoder = require('string_decoder').StringDecoder
32767 module.exports = CipherBase
32768 inherits(CipherBase, Transform)
32769 function CipherBase (hashMode) {
32770 Transform.call(this)
32771 this.hashMode = typeof hashMode === 'string'
32772 if (this.hashMode) {
32773 this[hashMode] = this._finalOrDigest
32775 this.final = this._finalOrDigest
32777 this._decoder = null
32778 this._encoding = null
32780 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32781 if (typeof data === 'string') {
32782 data = new Buffer(data, inputEnc)
32784 var outData = this._update(data)
32785 if (this.hashMode) {
32789 outData = this._toString(outData, outputEnc)
32794 CipherBase.prototype.setAutoPadding = function () {}
32796 CipherBase.prototype.getAuthTag = function () {
32797 throw new Error('trying to get auth tag in unsupported state')
32800 CipherBase.prototype.setAuthTag = function () {
32801 throw new Error('trying to set auth tag in unsupported state')
32804 CipherBase.prototype.setAAD = function () {
32805 throw new Error('trying to set aad in unsupported state')
32808 CipherBase.prototype._transform = function (data, _, next) {
32811 if (this.hashMode) {
32814 this.push(this._update(data))
32822 CipherBase.prototype._flush = function (done) {
32825 this.push(this._final())
32832 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32833 var outData = this._final() || new Buffer('')
32835 outData = this._toString(outData, outputEnc, true)
32840 CipherBase.prototype._toString = function (value, enc, fin) {
32841 if (!this._decoder) {
32842 this._decoder = new StringDecoder(enc)
32843 this._encoding = enc
32845 if (this._encoding !== enc) {
32846 throw new Error('can\'t switch encodings')
32848 var out = this._decoder.write(value)
32850 out += this._decoder.end()
32855 }).call(this,require("buffer").Buffer)
32856 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32857 (function (Buffer){
32859 var inherits = require('inherits')
32860 var md5 = require('./md5')
32861 var rmd160 = require('ripemd160')
32862 var sha = require('sha.js')
32864 var Base = require('cipher-base')
32866 function HashNoConstructor(hash) {
32867 Base.call(this, 'digest')
32873 inherits(HashNoConstructor, Base)
32875 HashNoConstructor.prototype._update = function (data) {
32876 this.buffers.push(data)
32879 HashNoConstructor.prototype._final = function () {
32880 var buf = Buffer.concat(this.buffers)
32881 var r = this._hash(buf)
32882 this.buffers = null
32887 function Hash(hash) {
32888 Base.call(this, 'digest')
32893 inherits(Hash, Base)
32895 Hash.prototype._update = function (data) {
32896 this._hash.update(data)
32899 Hash.prototype._final = function () {
32900 return this._hash.digest()
32903 module.exports = function createHash (alg) {
32904 alg = alg.toLowerCase()
32905 if ('md5' === alg) return new HashNoConstructor(md5)
32906 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32908 return new Hash(sha(alg))
32911 }).call(this,require("buffer").Buffer)
32912 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32913 (function (Buffer){
32916 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32919 function toArray(buf, bigEndian) {
32920 if ((buf.length % intSize) !==
0) {
32921 var len = buf.length + (intSize - (buf.length % intSize));
32922 buf = Buffer.concat([buf, zeroBuffer], len);
32926 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32927 for (var i =
0; i < buf.length; i += intSize) {
32928 arr.push(fn.call(buf, i));
32933 function toBuffer(arr, size, bigEndian) {
32934 var buf = new Buffer(size);
32935 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32936 for (var i =
0; i < arr.length; i++) {
32937 fn.call(buf, arr[i], i *
4, true);
32942 function hash(buf, fn, hashSize, bigEndian) {
32943 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32944 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32945 return toBuffer(arr, hashSize, bigEndian);
32947 exports.hash = hash;
32948 }).call(this,require("buffer").Buffer)
32949 },{"buffer":
5}],
38:[function(require,module,exports){
32952 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32953 * Digest Algorithm, as defined in RFC
1321.
32954 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32955 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32956 * Distributed under the BSD License
32957 * See http://pajhome.org.uk/crypt/md5 for more info.
32960 var helpers = require('./helpers');
32963 * Calculate the MD5 of an array of little-endian words, and a bit length
32965 function core_md5(x, len)
32967 /* append padding */
32968 x[len
>> 5] |=
0x80 << ((len) %
32);
32969 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
32971 var a =
1732584193;
32972 var b = -
271733879;
32973 var c = -
1732584194;
32976 for(var i =
0; i < x.length; i +=
16)
32983 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
32984 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
32985 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
32986 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
32987 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
32988 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
32989 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
32990 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
32991 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
32992 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
32993 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
32994 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
32995 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
32996 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
32997 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
32998 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33000 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33001 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33002 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33003 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33004 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33005 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33006 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33007 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33008 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33009 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33010 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33011 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33012 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33013 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33014 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33015 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33017 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33018 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33019 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33020 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33021 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33022 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33023 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33024 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33025 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33026 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33027 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33028 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33029 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33030 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33031 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33032 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33034 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33035 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33036 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33037 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33038 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33039 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33040 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33041 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33042 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33043 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33044 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33045 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33046 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33047 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33048 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33049 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33051 a = safe_add(a, olda);
33052 b = safe_add(b, oldb);
33053 c = safe_add(c, oldc);
33054 d = safe_add(d, oldd);
33056 return Array(a, b, c, d);
33061 * These functions implement the four basic operations the algorithm uses.
33063 function md5_cmn(q, a, b, x, s, t)
33065 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33067 function md5_ff(a, b, c, d, x, s, t)
33069 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33071 function md5_gg(a, b, c, d, x, s, t)
33073 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33075 function md5_hh(a, b, c, d, x, s, t)
33077 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33079 function md5_ii(a, b, c, d, x, s, t)
33081 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33085 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33086 * to work around bugs in some JS interpreters.
33088 function safe_add(x, y)
33090 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33091 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33092 return (msw <<
16) | (lsw &
0xFFFF);
33096 * Bitwise rotate a
32-bit number to the left.
33098 function bit_rol(num, cnt)
33100 return (num << cnt) | (num
>>> (
32 - cnt));
33103 module.exports = function md5(buf) {
33104 return helpers.hash(buf, core_md5,
16);
33106 },{"./helpers":
37}],
39:[function(require,module,exports){
33109 var elliptic = exports;
33111 elliptic.version = require('../package.json').version;
33112 elliptic.utils = require('./elliptic/utils');
33113 elliptic.rand = require('brorand');
33114 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33115 elliptic.curve = require('./elliptic/curve');
33116 elliptic.curves = require('./elliptic/curves');
33119 elliptic.ec = require('./elliptic/ec');
33120 elliptic.eddsa = require('./elliptic/eddsa');
33122 },{"../package.json":
55,"./elliptic/curve":
42,"./elliptic/curves":
45,"./elliptic/ec":
46,"./elliptic/eddsa":
49,"./elliptic/hmac-drbg":
52,"./elliptic/utils":
54,"brorand":
34}],
40:[function(require,module,exports){
33125 var BN = require('bn.js');
33126 var elliptic = require('../../elliptic');
33127 var utils = elliptic.utils;
33128 var getNAF = utils.getNAF;
33129 var getJSF = utils.getJSF;
33130 var assert = utils.assert;
33132 function BaseCurve(type, conf) {
33134 this.p = new BN(conf.p,
16);
33136 // Use Montgomery, when there is no fast reduction for the prime
33137 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33139 // Useful for many curves
33140 this.zero = new BN(
0).toRed(this.red);
33141 this.one = new BN(
1).toRed(this.red);
33142 this.two = new BN(
2).toRed(this.red);
33144 // Curve configuration, optional
33145 this.n = conf.n && new BN(conf.n,
16);
33146 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33148 // Temporary arrays
33149 this._wnafT1 = new Array(
4);
33150 this._wnafT2 = new Array(
4);
33151 this._wnafT3 = new Array(
4);
33152 this._wnafT4 = new Array(
4);
33154 // Generalized Greg Maxwell's trick
33155 var adjustCount = this.n && this.p.div(this.n);
33156 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33159 this._maxwellTrick = true;
33160 this.redN = this.n.toRed(this.red);
33163 module.exports = BaseCurve;
33165 BaseCurve.prototype.point = function point() {
33166 throw new Error('Not implemented');
33169 BaseCurve.prototype.validate = function validate() {
33170 throw new Error('Not implemented');
33173 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33174 assert(p.precomputed);
33175 var doubles = p._getDoubles();
33177 var naf = getNAF(k,
1);
33178 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33181 // Translate into more windowed form
33183 for (var j =
0; j < naf.length; j += doubles.step) {
33185 for (var k = j + doubles.step -
1; k
>= j; k--)
33186 nafW = (nafW <<
1) + naf[k];
33190 var a = this.jpoint(null, null, null);
33191 var b = this.jpoint(null, null, null);
33192 for (var i = I; i
> 0; i--) {
33193 for (var j =
0; j < repr.length; j++) {
33194 var nafW = repr[j];
33196 b = b.mixedAdd(doubles.points[j]);
33197 else if (nafW === -i)
33198 b = b.mixedAdd(doubles.points[j].neg());
33205 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33208 // Precompute window
33209 var nafPoints = p._getNAFPoints(w);
33211 var wnd = nafPoints.points;
33214 var naf = getNAF(k, w);
33216 // Add `this`*(N+
1) for every w-NAF index
33217 var acc = this.jpoint(null, null, null);
33218 for (var i = naf.length -
1; i
>=
0; i--) {
33220 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33230 if (p.type === 'affine') {
33233 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33235 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33239 acc = acc.add(wnd[(z -
1)
>> 1]);
33241 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33244 return p.type === 'affine' ? acc.toP() : acc;
33247 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33252 var wndWidth = this._wnafT1;
33253 var wnd = this._wnafT2;
33254 var naf = this._wnafT3;
33258 for (var i =
0; i < len; i++) {
33260 var nafPoints = p._getNAFPoints(defW);
33261 wndWidth[i] = nafPoints.wnd;
33262 wnd[i] = nafPoints.points;
33265 // Comb small window NAFs
33266 for (var i = len -
1; i
>=
1; i -=
2) {
33269 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33270 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33271 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33272 max = Math.max(naf[a].length, max);
33273 max = Math.max(naf[b].length, max);
33284 // Try to avoid Projective points, if possible
33285 if (points[a].y.cmp(points[b].y) ===
0) {
33286 comb[
1] = points[a].add(points[b]);
33287 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33288 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33289 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33290 comb[
2] = points[a].add(points[b].neg());
33292 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33293 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33308 var jsf = getJSF(coeffs[a], coeffs[b]);
33309 max = Math.max(jsf[
0].length, max);
33310 naf[a] = new Array(max);
33311 naf[b] = new Array(max);
33312 for (var j =
0; j < max; j++) {
33313 var ja = jsf[
0][j] |
0;
33314 var jb = jsf[
1][j] |
0;
33316 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33322 var acc = this.jpoint(null, null, null);
33323 var tmp = this._wnafT4;
33324 for (var i = max; i
>=
0; i--) {
33329 for (var j =
0; j < len; j++) {
33330 tmp[j] = naf[j][i] |
0;
33345 for (var j =
0; j < len; j++) {
33351 p = wnd[j][(z -
1)
>> 1];
33353 p = wnd[j][(-z -
1)
>> 1].neg();
33355 if (p.type === 'affine')
33356 acc = acc.mixedAdd(p);
33361 // Zeroify references
33362 for (var i =
0; i < len; i++)
33365 if (jacobianResult)
33371 function BasePoint(curve, type) {
33372 this.curve = curve;
33374 this.precomputed = null;
33376 BaseCurve.BasePoint = BasePoint;
33378 BasePoint.prototype.eq = function eq(/*other*/) {
33379 throw new Error('Not implemented');
33382 BasePoint.prototype.validate = function validate() {
33383 return this.curve.validate(this);
33386 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33387 bytes = utils.toArray(bytes, enc);
33389 var len = this.p.byteLength();
33391 // uncompressed, hybrid-odd, hybrid-even
33392 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33393 bytes.length -
1 ===
2 * len) {
33394 if (bytes[
0] ===
0x06)
33395 assert(bytes[bytes.length -
1] %
2 ===
0);
33396 else if (bytes[
0] ===
0x07)
33397 assert(bytes[bytes.length -
1] %
2 ===
1);
33399 var res = this.point(bytes.slice(
1,
1 + len),
33400 bytes.slice(
1 + len,
1 +
2 * len));
33403 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33404 bytes.length -
1 === len) {
33405 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33407 throw new Error('Unknown point format');
33410 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33411 return this.encode(enc, true);
33414 BasePoint.prototype._encode = function _encode(compact) {
33415 var len = this.curve.p.byteLength();
33416 var x = this.getX().toArray('be', len);
33419 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33421 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33424 BasePoint.prototype.encode = function encode(enc, compact) {
33425 return utils.encode(this._encode(compact), enc);
33428 BasePoint.prototype.precompute = function precompute(power) {
33429 if (this.precomputed)
33432 var precomputed = {
33437 precomputed.naf = this._getNAFPoints(
8);
33438 precomputed.doubles = this._getDoubles(
4, power);
33439 precomputed.beta = this._getBeta();
33440 this.precomputed = precomputed;
33445 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33446 if (!this.precomputed)
33449 var doubles = this.precomputed.doubles;
33453 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33456 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33457 if (this.precomputed && this.precomputed.doubles)
33458 return this.precomputed.doubles;
33460 var doubles = [ this ];
33462 for (var i =
0; i < power; i += step) {
33463 for (var j =
0; j < step; j++)
33473 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33474 if (this.precomputed && this.precomputed.naf)
33475 return this.precomputed.naf;
33477 var res = [ this ];
33478 var max = (
1 << wnd) -
1;
33479 var dbl = max ===
1 ? null : this.dbl();
33480 for (var i =
1; i < max; i++)
33481 res[i] = res[i -
1].add(dbl);
33488 BasePoint.prototype._getBeta = function _getBeta() {
33492 BasePoint.prototype.dblp = function dblp(k) {
33494 for (var i =
0; i < k; i++)
33499 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33502 var curve = require('../curve');
33503 var elliptic = require('../../elliptic');
33504 var BN = require('bn.js');
33505 var inherits = require('inherits');
33506 var Base = curve.base;
33508 var assert = elliptic.utils.assert;
33510 function EdwardsCurve(conf) {
33511 // NOTE: Important as we are creating point in Base.call()
33512 this.twisted = (conf.a |
0) !==
1;
33513 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33514 this.extended = this.mOneA;
33516 Base.call(this, 'edwards', conf);
33518 this.a = new BN(conf.a,
16).umod(this.red.m);
33519 this.a = this.a.toRed(this.red);
33520 this.c = new BN(conf.c,
16).toRed(this.red);
33521 this.c2 = this.c.redSqr();
33522 this.d = new BN(conf.d,
16).toRed(this.red);
33523 this.dd = this.d.redAdd(this.d);
33525 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33526 this.oneC = (conf.c |
0) ===
1;
33528 inherits(EdwardsCurve, Base);
33529 module.exports = EdwardsCurve;
33531 EdwardsCurve.prototype._mulA = function _mulA(num) {
33533 return num.redNeg();
33535 return this.a.redMul(num);
33538 EdwardsCurve.prototype._mulC = function _mulC(num) {
33542 return this.c.redMul(num);
33545 // Just for compatibility with Short curve
33546 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33547 return this.point(x, y, z, t);
33550 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33553 x = x.toRed(this.red);
33555 var x2 = x.redSqr();
33556 var rhs = this.c2.redSub(this.a.redMul(x2));
33557 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33559 var y2 = rhs.redMul(lhs.redInvm());
33560 var y = y2.redSqrt();
33561 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33562 throw new Error('invalid point');
33564 var isOdd = y.fromRed().isOdd();
33565 if (odd && !isOdd || !odd && isOdd)
33568 return this.point(x, y);
33571 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33574 y = y.toRed(this.red);
33576 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33577 var y2 = y.redSqr();
33578 var lhs = y2.redSub(this.one);
33579 var rhs = y2.redMul(this.d).redAdd(this.one);
33580 var x2 = lhs.redMul(rhs.redInvm());
33582 if (x2.cmp(this.zero) ===
0) {
33584 throw new Error('invalid point');
33586 return this.point(this.zero, y);
33589 var x = x2.redSqrt();
33590 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33591 throw new Error('invalid point');
33593 if (x.isOdd() !== odd)
33596 return this.point(x, y);
33599 EdwardsCurve.prototype.validate = function validate(point) {
33600 if (point.isInfinity())
33603 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33606 var x2 = point.x.redSqr();
33607 var y2 = point.y.redSqr();
33608 var lhs = x2.redMul(this.a).redAdd(y2);
33609 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33611 return lhs.cmp(rhs) ===
0;
33614 function Point(curve, x, y, z, t) {
33615 Base.BasePoint.call(this, curve, 'projective');
33616 if (x === null && y === null && z === null) {
33617 this.x = this.curve.zero;
33618 this.y = this.curve.one;
33619 this.z = this.curve.one;
33620 this.t = this.curve.zero;
33623 this.x = new BN(x,
16);
33624 this.y = new BN(y,
16);
33625 this.z = z ? new BN(z,
16) : this.curve.one;
33626 this.t = t && new BN(t,
16);
33628 this.x = this.x.toRed(this.curve.red);
33630 this.y = this.y.toRed(this.curve.red);
33632 this.z = this.z.toRed(this.curve.red);
33633 if (this.t && !this.t.red)
33634 this.t = this.t.toRed(this.curve.red);
33635 this.zOne = this.z === this.curve.one;
33637 // Use extended coordinates
33638 if (this.curve.extended && !this.t) {
33639 this.t = this.x.redMul(this.y);
33641 this.t = this.t.redMul(this.z.redInvm());
33645 inherits(Point, Base.BasePoint);
33647 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33648 return Point.fromJSON(this, obj);
33651 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33652 return new Point(this, x, y, z, t);
33655 Point.fromJSON = function fromJSON(curve, obj) {
33656 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33659 Point.prototype.inspect = function inspect() {
33660 if (this.isInfinity())
33661 return '
<EC Point Infinity
>';
33662 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33663 ' y: ' + this.y.fromRed().toString(
16,
2) +
33664 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33667 Point.prototype.isInfinity = function isInfinity() {
33668 // XXX This code assumes that zero is always zero in red
33669 return this.x.cmpn(
0) ===
0 &&
33670 this.y.cmp(this.z) ===
0;
33673 Point.prototype._extDbl = function _extDbl() {
33674 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33675 // #doubling-dbl-
2008-hwcd
33679 var a = this.x.redSqr();
33681 var b = this.y.redSqr();
33683 var c = this.z.redSqr();
33686 var d = this.curve._mulA(a);
33687 // E = (X1 + Y1)^
2 - A - B
33688 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33690 var g = d.redAdd(b);
33692 var f = g.redSub(c);
33694 var h = d.redSub(b);
33696 var nx = e.redMul(f);
33698 var ny = g.redMul(h);
33700 var nt = e.redMul(h);
33702 var nz = f.redMul(g);
33703 return this.curve.point(nx, ny, nz, nt);
33706 Point.prototype._projDbl = function _projDbl() {
33707 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33708 // #doubling-dbl-
2008-bbjlp
33709 // #doubling-dbl-
2007-bl
33711 // Generally
3M +
4S or
2M +
4S
33714 var b = this.x.redAdd(this.y).redSqr();
33716 var c = this.x.redSqr();
33718 var d = this.y.redSqr();
33723 if (this.curve.twisted) {
33725 var e = this.curve._mulA(c);
33727 var f = e.redAdd(d);
33729 // X3 = (B - C - D) * (F -
2)
33730 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33731 // Y3 = F * (E - D)
33732 ny = f.redMul(e.redSub(d));
33733 // Z3 = F^
2 -
2 * F
33734 nz = f.redSqr().redSub(f).redSub(f);
33737 var h = this.z.redSqr();
33739 var j = f.redSub(h).redISub(h);
33741 nx = b.redSub(c).redISub(d).redMul(j);
33742 // Y3 = F * (E - D)
33743 ny = f.redMul(e.redSub(d));
33749 var e = c.redAdd(d);
33751 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33753 var j = e.redSub(h).redSub(h);
33754 // X3 = c * (B - E) * J
33755 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33756 // Y3 = c * E * (C - D)
33757 ny = this.curve._mulC(e).redMul(c.redISub(d));
33761 return this.curve.point(nx, ny, nz);
33764 Point.prototype.dbl = function dbl() {
33765 if (this.isInfinity())
33768 // Double in extended coordinates
33769 if (this.curve.extended)
33770 return this._extDbl();
33772 return this._projDbl();
33775 Point.prototype._extAdd = function _extAdd(p) {
33776 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33777 // #addition-add-
2008-hwcd-
3
33780 // A = (Y1 - X1) * (Y2 - X2)
33781 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33782 // B = (Y1 + X1) * (Y2 + X2)
33783 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33785 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33787 var d = this.z.redMul(p.z.redAdd(p.z));
33789 var e = b.redSub(a);
33791 var f = d.redSub(c);
33793 var g = d.redAdd(c);
33795 var h = b.redAdd(a);
33797 var nx = e.redMul(f);
33799 var ny = g.redMul(h);
33801 var nt = e.redMul(h);
33803 var nz = f.redMul(g);
33804 return this.curve.point(nx, ny, nz, nt);
33807 Point.prototype._projAdd = function _projAdd(p) {
33808 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33809 // #addition-add-
2008-bbjlp
33810 // #addition-add-
2007-bl
33814 var a = this.z.redMul(p.z);
33816 var b = a.redSqr();
33818 var c = this.x.redMul(p.x);
33820 var d = this.y.redMul(p.y);
33822 var e = this.curve.d.redMul(c).redMul(d);
33824 var f = b.redSub(e);
33826 var g = b.redAdd(e);
33827 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33828 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33829 var nx = a.redMul(f).redMul(tmp);
33832 if (this.curve.twisted) {
33833 // Y3 = A * G * (D - a * C)
33834 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33838 // Y3 = A * G * (D - C)
33839 ny = a.redMul(g).redMul(d.redSub(c));
33841 nz = this.curve._mulC(f).redMul(g);
33843 return this.curve.point(nx, ny, nz);
33846 Point.prototype.add = function add(p) {
33847 if (this.isInfinity())
33849 if (p.isInfinity())
33852 if (this.curve.extended)
33853 return this._extAdd(p);
33855 return this._projAdd(p);
33858 Point.prototype.mul = function mul(k) {
33859 if (this._hasDoubles(k))
33860 return this.curve._fixedNafMul(this, k);
33862 return this.curve._wnafMul(this, k);
33865 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33866 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33869 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33870 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33873 Point.prototype.normalize = function normalize() {
33877 // Normalize coordinates
33878 var zi = this.z.redInvm();
33879 this.x = this.x.redMul(zi);
33880 this.y = this.y.redMul(zi);
33882 this.t = this.t.redMul(zi);
33883 this.z = this.curve.one;
33888 Point.prototype.neg = function neg() {
33889 return this.curve.point(this.x.redNeg(),
33892 this.t && this.t.redNeg());
33895 Point.prototype.getX = function getX() {
33897 return this.x.fromRed();
33900 Point.prototype.getY = function getY() {
33902 return this.y.fromRed();
33905 Point.prototype.eq = function eq(other) {
33906 return this === other ||
33907 this.getX().cmp(other.getX()) ===
0 &&
33908 this.getY().cmp(other.getY()) ===
0;
33911 Point.prototype.eqXToP = function eqXToP(x) {
33912 var rx = x.toRed(this.curve.red).redMul(this.z);
33913 if (this.x.cmp(rx) ===
0)
33916 var xc = x.clone();
33917 var t = this.curve.redN.redMul(this.z);
33919 xc.iadd(this.curve.n);
33920 if (xc.cmp(this.curve.p)
>=
0)
33924 if (this.x.cmp(rx) ===
0)
33930 // Compatibility with BaseCurve
33931 Point.prototype.toP = Point.prototype.normalize;
33932 Point.prototype.mixedAdd = Point.prototype.add;
33934 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33937 var curve = exports;
33939 curve.base = require('./base');
33940 curve.short = require('./short');
33941 curve.mont = require('./mont');
33942 curve.edwards = require('./edwards');
33944 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33947 var curve = require('../curve');
33948 var BN = require('bn.js');
33949 var inherits = require('inherits');
33950 var Base = curve.base;
33952 var elliptic = require('../../elliptic');
33953 var utils = elliptic.utils;
33955 function MontCurve(conf) {
33956 Base.call(this, 'mont', conf);
33958 this.a = new BN(conf.a,
16).toRed(this.red);
33959 this.b = new BN(conf.b,
16).toRed(this.red);
33960 this.i4 = new BN(
4).toRed(this.red).redInvm();
33961 this.two = new BN(
2).toRed(this.red);
33962 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
33964 inherits(MontCurve, Base);
33965 module.exports = MontCurve;
33967 MontCurve.prototype.validate = function validate(point) {
33968 var x = point.normalize().x;
33969 var x2 = x.redSqr();
33970 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
33971 var y = rhs.redSqrt();
33973 return y.redSqr().cmp(rhs) ===
0;
33976 function Point(curve, x, z) {
33977 Base.BasePoint.call(this, curve, 'projective');
33978 if (x === null && z === null) {
33979 this.x = this.curve.one;
33980 this.z = this.curve.zero;
33982 this.x = new BN(x,
16);
33983 this.z = new BN(z,
16);
33985 this.x = this.x.toRed(this.curve.red);
33987 this.z = this.z.toRed(this.curve.red);
33990 inherits(Point, Base.BasePoint);
33992 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33993 return this.point(utils.toArray(bytes, enc),
1);
33996 MontCurve.prototype.point = function point(x, z) {
33997 return new Point(this, x, z);
34000 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34001 return Point.fromJSON(this, obj);
34004 Point.prototype.precompute = function precompute() {
34008 Point.prototype._encode = function _encode() {
34009 return this.getX().toArray('be', this.curve.p.byteLength());
34012 Point.fromJSON = function fromJSON(curve, obj) {
34013 return new Point(curve, obj[
0], obj[
1] || curve.one);
34016 Point.prototype.inspect = function inspect() {
34017 if (this.isInfinity())
34018 return '
<EC Point Infinity
>';
34019 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34020 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34023 Point.prototype.isInfinity = function isInfinity() {
34024 // XXX This code assumes that zero is always zero in red
34025 return this.z.cmpn(
0) ===
0;
34028 Point.prototype.dbl = function dbl() {
34029 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34033 var a = this.x.redAdd(this.z);
34035 var aa = a.redSqr();
34037 var b = this.x.redSub(this.z);
34039 var bb = b.redSqr();
34041 var c = aa.redSub(bb);
34043 var nx = aa.redMul(bb);
34044 // Z3 = C * (BB + A24 * C)
34045 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34046 return this.curve.point(nx, nz);
34049 Point.prototype.add = function add() {
34050 throw new Error('Not supported on Montgomery curve');
34053 Point.prototype.diffAdd = function diffAdd(p, diff) {
34054 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34058 var a = this.x.redAdd(this.z);
34060 var b = this.x.redSub(this.z);
34062 var c = p.x.redAdd(p.z);
34064 var d = p.x.redSub(p.z);
34066 var da = d.redMul(a);
34068 var cb = c.redMul(b);
34069 // X5 = Z1 * (DA + CB)^
2
34070 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34071 // Z5 = X1 * (DA - CB)^
2
34072 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34073 return this.curve.point(nx, nz);
34076 Point.prototype.mul = function mul(k) {
34078 var a = this; // (N /
2) * Q + Q
34079 var b = this.curve.point(null, null); // (N /
2) * Q
34082 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34083 bits.push(t.andln(
1));
34085 for (var i = bits.length -
1; i
>=
0; i--) {
34086 if (bits[i] ===
0) {
34087 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34088 a = a.diffAdd(b, c);
34089 // N * Q =
2 * ((N /
2) * Q + Q))
34092 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34093 b = a.diffAdd(b, c);
34094 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34101 Point.prototype.mulAdd = function mulAdd() {
34102 throw new Error('Not supported on Montgomery curve');
34105 Point.prototype.jumlAdd = function jumlAdd() {
34106 throw new Error('Not supported on Montgomery curve');
34109 Point.prototype.eq = function eq(other) {
34110 return this.getX().cmp(other.getX()) ===
0;
34113 Point.prototype.normalize = function normalize() {
34114 this.x = this.x.redMul(this.z.redInvm());
34115 this.z = this.curve.one;
34119 Point.prototype.getX = function getX() {
34120 // Normalize coordinates
34123 return this.x.fromRed();
34126 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34129 var curve = require('../curve');
34130 var elliptic = require('../../elliptic');
34131 var BN = require('bn.js');
34132 var inherits = require('inherits');
34133 var Base = curve.base;
34135 var assert = elliptic.utils.assert;
34137 function ShortCurve(conf) {
34138 Base.call(this, 'short', conf);
34140 this.a = new BN(conf.a,
16).toRed(this.red);
34141 this.b = new BN(conf.b,
16).toRed(this.red);
34142 this.tinv = this.two.redInvm();
34144 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34145 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34147 // If the curve is endomorphic, precalculate beta and lambda
34148 this.endo = this._getEndomorphism(conf);
34149 this._endoWnafT1 = new Array(
4);
34150 this._endoWnafT2 = new Array(
4);
34152 inherits(ShortCurve, Base);
34153 module.exports = ShortCurve;
34155 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34156 // No efficient endomorphism
34157 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34160 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34164 beta = new BN(conf.beta,
16).toRed(this.red);
34166 var betas = this._getEndoRoots(this.p);
34167 // Choose the smallest beta
34168 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34169 beta = beta.toRed(this.red);
34172 lambda = new BN(conf.lambda,
16);
34174 // Choose the lambda that is matching selected beta
34175 var lambdas = this._getEndoRoots(this.n);
34176 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34177 lambda = lambdas[
0];
34179 lambda = lambdas[
1];
34180 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34184 // Get basis vectors, used for balanced length-two representation
34187 basis = conf.basis.map(function(vec) {
34189 a: new BN(vec.a,
16),
34190 b: new BN(vec.b,
16)
34194 basis = this._getEndoBasis(lambda);
34204 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34205 // Find roots of for x^
2 + x +
1 in F
34206 // Root = (-
1 +- Sqrt(-
3)) /
2
34208 var red = num === this.p ? this.red : BN.mont(num);
34209 var tinv = new BN(
2).toRed(red).redInvm();
34210 var ntinv = tinv.redNeg();
34212 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34214 var l1 = ntinv.redAdd(s).fromRed();
34215 var l2 = ntinv.redSub(s).fromRed();
34219 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34220 // aprxSqrt
>= sqrt(this.n)
34221 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34224 // Run EGCD, until r(L +
1) < aprxSqrt
34226 var v = this.n.clone();
34227 var x1 = new BN(
1);
34228 var y1 = new BN(
0);
34229 var x2 = new BN(
0);
34230 var y2 = new BN(
1);
34232 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34246 while (u.cmpn(
0) !==
0) {
34248 r = v.sub(q.mul(u));
34249 x = x2.sub(q.mul(x1));
34250 var y = y2.sub(q.mul(y1));
34252 if (!a1 && r.cmp(aprxSqrt) <
0) {
34257 } else if (a1 && ++i ===
2) {
34272 var len1 = a1.sqr().add(b1.sqr());
34273 var len2 = a2.sqr().add(b2.sqr());
34274 if (len2.cmp(len1)
>=
0) {
34295 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34296 var basis = this.endo.basis;
34300 var c1 = v2.b.mul(k).divRound(this.n);
34301 var c2 = v1.b.neg().mul(k).divRound(this.n);
34303 var p1 = c1.mul(v1.a);
34304 var p2 = c2.mul(v2.a);
34305 var q1 = c1.mul(v1.b);
34306 var q2 = c2.mul(v2.b);
34308 // Calculate answer
34309 var k1 = k.sub(p1).sub(p2);
34310 var k2 = q1.add(q2).neg();
34311 return { k1: k1, k2: k2 };
34314 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34317 x = x.toRed(this.red);
34319 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34320 var y = y2.redSqrt();
34321 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34322 throw new Error('invalid point');
34324 // XXX Is there any way to tell if the number is odd without converting it
34325 // to non-red form?
34326 var isOdd = y.fromRed().isOdd();
34327 if (odd && !isOdd || !odd && isOdd)
34330 return this.point(x, y);
34333 ShortCurve.prototype.validate = function validate(point) {
34340 var ax = this.a.redMul(x);
34341 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34342 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34345 ShortCurve.prototype._endoWnafMulAdd =
34346 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34347 var npoints = this._endoWnafT1;
34348 var ncoeffs = this._endoWnafT2;
34349 for (var i =
0; i < points.length; i++) {
34350 var split = this._endoSplit(coeffs[i]);
34352 var beta = p._getBeta();
34354 if (split.k1.negative) {
34358 if (split.k2.negative) {
34360 beta = beta.neg(true);
34363 npoints[i *
2] = p;
34364 npoints[i *
2 +
1] = beta;
34365 ncoeffs[i *
2] = split.k1;
34366 ncoeffs[i *
2 +
1] = split.k2;
34368 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34370 // Clean-up references to points and coefficients
34371 for (var j =
0; j < i *
2; j++) {
34378 function Point(curve, x, y, isRed) {
34379 Base.BasePoint.call(this, curve, 'affine');
34380 if (x === null && y === null) {
34385 this.x = new BN(x,
16);
34386 this.y = new BN(y,
16);
34387 // Force redgomery representation when loading from JSON
34389 this.x.forceRed(this.curve.red);
34390 this.y.forceRed(this.curve.red);
34393 this.x = this.x.toRed(this.curve.red);
34395 this.y = this.y.toRed(this.curve.red);
34399 inherits(Point, Base.BasePoint);
34401 ShortCurve.prototype.point = function point(x, y, isRed) {
34402 return new Point(this, x, y, isRed);
34405 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34406 return Point.fromJSON(this, obj, red);
34409 Point.prototype._getBeta = function _getBeta() {
34410 if (!this.curve.endo)
34413 var pre = this.precomputed;
34414 if (pre && pre.beta)
34417 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34419 var curve = this.curve;
34420 var endoMul = function(p) {
34421 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34424 beta.precomputed = {
34428 points: pre.naf.points.map(endoMul)
34430 doubles: pre.doubles && {
34431 step: pre.doubles.step,
34432 points: pre.doubles.points.map(endoMul)
34439 Point.prototype.toJSON = function toJSON() {
34440 if (!this.precomputed)
34441 return [ this.x, this.y ];
34443 return [ this.x, this.y, this.precomputed && {
34444 doubles: this.precomputed.doubles && {
34445 step: this.precomputed.doubles.step,
34446 points: this.precomputed.doubles.points.slice(
1)
34448 naf: this.precomputed.naf && {
34449 wnd: this.precomputed.naf.wnd,
34450 points: this.precomputed.naf.points.slice(
1)
34455 Point.fromJSON = function fromJSON(curve, obj, red) {
34456 if (typeof obj === 'string')
34457 obj = JSON.parse(obj);
34458 var res = curve.point(obj[
0], obj[
1], red);
34462 function obj2point(obj) {
34463 return curve.point(obj[
0], obj[
1], red);
34467 res.precomputed = {
34469 doubles: pre.doubles && {
34470 step: pre.doubles.step,
34471 points: [ res ].concat(pre.doubles.points.map(obj2point))
34475 points: [ res ].concat(pre.naf.points.map(obj2point))
34481 Point.prototype.inspect = function inspect() {
34482 if (this.isInfinity())
34483 return '
<EC Point Infinity
>';
34484 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34485 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34488 Point.prototype.isInfinity = function isInfinity() {
34492 Point.prototype.add = function add(p) {
34506 if (this.neg().eq(p))
34507 return this.curve.point(null, null);
34510 if (this.x.cmp(p.x) ===
0)
34511 return this.curve.point(null, null);
34513 var c = this.y.redSub(p.y);
34514 if (c.cmpn(
0) !==
0)
34515 c = c.redMul(this.x.redSub(p.x).redInvm());
34516 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34517 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34518 return this.curve.point(nx, ny);
34521 Point.prototype.dbl = function dbl() {
34526 var ys1 = this.y.redAdd(this.y);
34527 if (ys1.cmpn(
0) ===
0)
34528 return this.curve.point(null, null);
34530 var a = this.curve.a;
34532 var x2 = this.x.redSqr();
34533 var dyinv = ys1.redInvm();
34534 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34536 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34537 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34538 return this.curve.point(nx, ny);
34541 Point.prototype.getX = function getX() {
34542 return this.x.fromRed();
34545 Point.prototype.getY = function getY() {
34546 return this.y.fromRed();
34549 Point.prototype.mul = function mul(k) {
34552 if (this._hasDoubles(k))
34553 return this.curve._fixedNafMul(this, k);
34554 else if (this.curve.endo)
34555 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34557 return this.curve._wnafMul(this, k);
34560 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34561 var points = [ this, p2 ];
34562 var coeffs = [ k1, k2 ];
34563 if (this.curve.endo)
34564 return this.curve._endoWnafMulAdd(points, coeffs);
34566 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34569 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34570 var points = [ this, p2 ];
34571 var coeffs = [ k1, k2 ];
34572 if (this.curve.endo)
34573 return this.curve._endoWnafMulAdd(points, coeffs, true);
34575 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34578 Point.prototype.eq = function eq(p) {
34579 return this === p ||
34580 this.inf === p.inf &&
34581 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34584 Point.prototype.neg = function neg(_precompute) {
34588 var res = this.curve.point(this.x, this.y.redNeg());
34589 if (_precompute && this.precomputed) {
34590 var pre = this.precomputed;
34591 var negate = function(p) {
34594 res.precomputed = {
34597 points: pre.naf.points.map(negate)
34599 doubles: pre.doubles && {
34600 step: pre.doubles.step,
34601 points: pre.doubles.points.map(negate)
34608 Point.prototype.toJ = function toJ() {
34610 return this.curve.jpoint(null, null, null);
34612 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34616 function JPoint(curve, x, y, z) {
34617 Base.BasePoint.call(this, curve, 'jacobian');
34618 if (x === null && y === null && z === null) {
34619 this.x = this.curve.one;
34620 this.y = this.curve.one;
34621 this.z = new BN(
0);
34623 this.x = new BN(x,
16);
34624 this.y = new BN(y,
16);
34625 this.z = new BN(z,
16);
34628 this.x = this.x.toRed(this.curve.red);
34630 this.y = this.y.toRed(this.curve.red);
34632 this.z = this.z.toRed(this.curve.red);
34634 this.zOne = this.z === this.curve.one;
34636 inherits(JPoint, Base.BasePoint);
34638 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34639 return new JPoint(this, x, y, z);
34642 JPoint.prototype.toP = function toP() {
34643 if (this.isInfinity())
34644 return this.curve.point(null, null);
34646 var zinv = this.z.redInvm();
34647 var zinv2 = zinv.redSqr();
34648 var ax = this.x.redMul(zinv2);
34649 var ay = this.y.redMul(zinv2).redMul(zinv);
34651 return this.curve.point(ax, ay);
34654 JPoint.prototype.neg = function neg() {
34655 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34658 JPoint.prototype.add = function add(p) {
34660 if (this.isInfinity())
34664 if (p.isInfinity())
34668 var pz2 = p.z.redSqr();
34669 var z2 = this.z.redSqr();
34670 var u1 = this.x.redMul(pz2);
34671 var u2 = p.x.redMul(z2);
34672 var s1 = this.y.redMul(pz2.redMul(p.z));
34673 var s2 = p.y.redMul(z2.redMul(this.z));
34675 var h = u1.redSub(u2);
34676 var r = s1.redSub(s2);
34677 if (h.cmpn(
0) ===
0) {
34678 if (r.cmpn(
0) !==
0)
34679 return this.curve.jpoint(null, null, null);
34684 var h2 = h.redSqr();
34685 var h3 = h2.redMul(h);
34686 var v = u1.redMul(h2);
34688 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34689 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34690 var nz = this.z.redMul(p.z).redMul(h);
34692 return this.curve.jpoint(nx, ny, nz);
34695 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34697 if (this.isInfinity())
34701 if (p.isInfinity())
34705 var z2 = this.z.redSqr();
34707 var u2 = p.x.redMul(z2);
34709 var s2 = p.y.redMul(z2).redMul(this.z);
34711 var h = u1.redSub(u2);
34712 var r = s1.redSub(s2);
34713 if (h.cmpn(
0) ===
0) {
34714 if (r.cmpn(
0) !==
0)
34715 return this.curve.jpoint(null, null, null);
34720 var h2 = h.redSqr();
34721 var h3 = h2.redMul(h);
34722 var v = u1.redMul(h2);
34724 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34725 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34726 var nz = this.z.redMul(h);
34728 return this.curve.jpoint(nx, ny, nz);
34731 JPoint.prototype.dblp = function dblp(pow) {
34734 if (this.isInfinity())
34739 if (this.curve.zeroA || this.curve.threeA) {
34741 for (var i =
0; i < pow; i++)
34746 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34747 // N =
1 =
> 6M +
6S +
9A
34748 var a = this.curve.a;
34749 var tinv = this.curve.tinv;
34754 var jz4 = jz.redSqr().redSqr();
34757 var jyd = jy.redAdd(jy);
34758 for (var i =
0; i < pow; i++) {
34759 var jx2 = jx.redSqr();
34760 var jyd2 = jyd.redSqr();
34761 var jyd4 = jyd2.redSqr();
34762 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34764 var t1 = jx.redMul(jyd2);
34765 var nx = c.redSqr().redISub(t1.redAdd(t1));
34766 var t2 = t1.redISub(nx);
34767 var dny = c.redMul(t2);
34768 dny = dny.redIAdd(dny).redISub(jyd4);
34769 var nz = jyd.redMul(jz);
34771 jz4 = jz4.redMul(jyd4);
34778 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34781 JPoint.prototype.dbl = function dbl() {
34782 if (this.isInfinity())
34785 if (this.curve.zeroA)
34786 return this._zeroDbl();
34787 else if (this.curve.threeA)
34788 return this._threeDbl();
34790 return this._dbl();
34793 JPoint.prototype._zeroDbl = function _zeroDbl() {
34799 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34800 // #doubling-mdbl-
2007-bl
34804 var xx = this.x.redSqr();
34806 var yy = this.y.redSqr();
34808 var yyyy = yy.redSqr();
34809 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34810 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34812 // M =
3 * XX + a; a =
0
34813 var m = xx.redAdd(xx).redIAdd(xx);
34815 var t = m.redSqr().redISub(s).redISub(s);
34818 var yyyy8 = yyyy.redIAdd(yyyy);
34819 yyyy8 = yyyy8.redIAdd(yyyy8);
34820 yyyy8 = yyyy8.redIAdd(yyyy8);
34824 // Y3 = M * (S - T) -
8 * YYYY
34825 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34827 nz = this.y.redAdd(this.y);
34829 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34830 // #doubling-dbl-
2009-l
34834 var a = this.x.redSqr();
34836 var b = this.y.redSqr();
34838 var c = b.redSqr();
34839 // D =
2 * ((X1 + B)^
2 - A - C)
34840 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34843 var e = a.redAdd(a).redIAdd(a);
34845 var f = e.redSqr();
34848 var c8 = c.redIAdd(c);
34849 c8 = c8.redIAdd(c8);
34850 c8 = c8.redIAdd(c8);
34853 nx = f.redISub(d).redISub(d);
34854 // Y3 = E * (D - X3) -
8 * C
34855 ny = e.redMul(d.redISub(nx)).redISub(c8);
34856 // Z3 =
2 * Y1 * Z1
34857 nz = this.y.redMul(this.z);
34858 nz = nz.redIAdd(nz);
34861 return this.curve.jpoint(nx, ny, nz);
34864 JPoint.prototype._threeDbl = function _threeDbl() {
34870 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34871 // #doubling-mdbl-
2007-bl
34875 var xx = this.x.redSqr();
34877 var yy = this.y.redSqr();
34879 var yyyy = yy.redSqr();
34880 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34881 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34884 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34886 var t = m.redSqr().redISub(s).redISub(s);
34889 // Y3 = M * (S - T) -
8 * YYYY
34890 var yyyy8 = yyyy.redIAdd(yyyy);
34891 yyyy8 = yyyy8.redIAdd(yyyy8);
34892 yyyy8 = yyyy8.redIAdd(yyyy8);
34893 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34895 nz = this.y.redAdd(this.y);
34897 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34901 var delta = this.z.redSqr();
34903 var gamma = this.y.redSqr();
34904 // beta = X1 * gamma
34905 var beta = this.x.redMul(gamma);
34906 // alpha =
3 * (X1 - delta) * (X1 + delta)
34907 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34908 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34909 // X3 = alpha^
2 -
8 * beta
34910 var beta4 = beta.redIAdd(beta);
34911 beta4 = beta4.redIAdd(beta4);
34912 var beta8 = beta4.redAdd(beta4);
34913 nx = alpha.redSqr().redISub(beta8);
34914 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34915 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34916 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34917 var ggamma8 = gamma.redSqr();
34918 ggamma8 = ggamma8.redIAdd(ggamma8);
34919 ggamma8 = ggamma8.redIAdd(ggamma8);
34920 ggamma8 = ggamma8.redIAdd(ggamma8);
34921 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34924 return this.curve.jpoint(nx, ny, nz);
34927 JPoint.prototype._dbl = function _dbl() {
34928 var a = this.curve.a;
34934 var jz4 = jz.redSqr().redSqr();
34936 var jx2 = jx.redSqr();
34937 var jy2 = jy.redSqr();
34939 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34941 var jxd4 = jx.redAdd(jx);
34942 jxd4 = jxd4.redIAdd(jxd4);
34943 var t1 = jxd4.redMul(jy2);
34944 var nx = c.redSqr().redISub(t1.redAdd(t1));
34945 var t2 = t1.redISub(nx);
34947 var jyd8 = jy2.redSqr();
34948 jyd8 = jyd8.redIAdd(jyd8);
34949 jyd8 = jyd8.redIAdd(jyd8);
34950 jyd8 = jyd8.redIAdd(jyd8);
34951 var ny = c.redMul(t2).redISub(jyd8);
34952 var nz = jy.redAdd(jy).redMul(jz);
34954 return this.curve.jpoint(nx, ny, nz);
34957 JPoint.prototype.trpl = function trpl() {
34958 if (!this.curve.zeroA)
34959 return this.dbl().add(this);
34961 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
34965 var xx = this.x.redSqr();
34967 var yy = this.y.redSqr();
34969 var zz = this.z.redSqr();
34971 var yyyy = yy.redSqr();
34972 // M =
3 * XX + a * ZZ2; a =
0
34973 var m = xx.redAdd(xx).redIAdd(xx);
34975 var mm = m.redSqr();
34976 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
34977 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34979 e = e.redAdd(e).redIAdd(e);
34982 var ee = e.redSqr();
34984 var t = yyyy.redIAdd(yyyy);
34988 // U = (M + E)^
2 - MM - EE - T
34989 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
34990 // X3 =
4 * (X1 * EE -
4 * YY * U)
34991 var yyu4 = yy.redMul(u);
34992 yyu4 = yyu4.redIAdd(yyu4);
34993 yyu4 = yyu4.redIAdd(yyu4);
34994 var nx = this.x.redMul(ee).redISub(yyu4);
34995 nx = nx.redIAdd(nx);
34996 nx = nx.redIAdd(nx);
34997 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
34998 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
34999 ny = ny.redIAdd(ny);
35000 ny = ny.redIAdd(ny);
35001 ny = ny.redIAdd(ny);
35002 // Z3 = (Z1 + E)^
2 - ZZ - EE
35003 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35005 return this.curve.jpoint(nx, ny, nz);
35008 JPoint.prototype.mul = function mul(k, kbase) {
35009 k = new BN(k, kbase);
35011 return this.curve._wnafMul(this, k);
35014 JPoint.prototype.eq = function eq(p) {
35015 if (p.type === 'affine')
35016 return this.eq(p.toJ());
35021 // x1 * z2^
2 == x2 * z1^
2
35022 var z2 = this.z.redSqr();
35023 var pz2 = p.z.redSqr();
35024 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35027 // y1 * z2^
3 == y2 * z1^
3
35028 var z3 = z2.redMul(this.z);
35029 var pz3 = pz2.redMul(p.z);
35030 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35033 JPoint.prototype.eqXToP = function eqXToP(x) {
35034 var zs = this.z.redSqr();
35035 var rx = x.toRed(this.curve.red).redMul(zs);
35036 if (this.x.cmp(rx) ===
0)
35039 var xc = x.clone();
35040 var t = this.curve.redN.redMul(zs);
35042 xc.iadd(this.curve.n);
35043 if (xc.cmp(this.curve.p)
>=
0)
35047 if (this.x.cmp(rx) ===
0)
35053 JPoint.prototype.inspect = function inspect() {
35054 if (this.isInfinity())
35055 return '
<EC JPoint Infinity
>';
35056 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35057 ' y: ' + this.y.toString(
16,
2) +
35058 ' z: ' + this.z.toString(
16,
2) + '
>';
35061 JPoint.prototype.isInfinity = function isInfinity() {
35062 // XXX This code assumes that zero is always zero in red
35063 return this.z.cmpn(
0) ===
0;
35066 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35069 var curves = exports;
35071 var hash = require('hash.js');
35072 var elliptic = require('../elliptic');
35074 var assert = elliptic.utils.assert;
35076 function PresetCurve(options) {
35077 if (options.type === 'short')
35078 this.curve = new elliptic.curve.short(options);
35079 else if (options.type === 'edwards')
35080 this.curve = new elliptic.curve.edwards(options);
35082 this.curve = new elliptic.curve.mont(options);
35083 this.g = this.curve.g;
35084 this.n = this.curve.n;
35085 this.hash = options.hash;
35087 assert(this.g.validate(), 'Invalid curve');
35088 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35090 curves.PresetCurve = PresetCurve;
35092 function defineCurve(name, options) {
35093 Object.defineProperty(curves, name, {
35094 configurable: true,
35097 var curve = new PresetCurve(options);
35098 Object.defineProperty(curves, name, {
35099 configurable: true,
35108 defineCurve('p192', {
35111 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35112 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35113 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35114 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35118 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35119 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35123 defineCurve('p224', {
35126 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35127 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35128 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35129 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35133 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35134 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35138 defineCurve('p256', {
35141 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35142 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35143 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35144 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35148 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35149 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35153 defineCurve('p384', {
35156 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35157 'fffffffe ffffffff
00000000 00000000 ffffffff',
35158 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35159 'fffffffe ffffffff
00000000 00000000 fffffffc',
35160 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35161 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35162 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35163 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35167 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35168 '
5502f25d bf55296c
3a545e38
72760ab7',
35169 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35170 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35174 defineCurve('p521', {
35177 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35178 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35179 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35180 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35181 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35182 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35183 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35184 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35185 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35186 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35187 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35188 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35192 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35193 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35194 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35195 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35196 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35197 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35201 defineCurve('curve25519', {
35204 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35207 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35215 defineCurve('ed25519', {
35218 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35221 // -
121665 * (
121666^(-
1)) (mod P)
35222 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35223 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35227 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35230 '
6666666666666666666666666666666666666666666666666666666666666658'
35236 pre = require('./precomputed/secp256k1');
35241 defineCurve('secp256k1', {
35244 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35247 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35251 // Precomputed endomorphism
35252 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35253 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35256 a: '
3086d221a7d46bcde86c90e49284eb15',
35257 b: '-e4437ed6010e88286f547fa90abfe4c3'
35260 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35261 b: '
3086d221a7d46bcde86c90e49284eb15'
35267 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35268 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35273 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35276 var BN = require('bn.js');
35277 var elliptic = require('../../elliptic');
35278 var utils = elliptic.utils;
35279 var assert = utils.assert;
35281 var KeyPair = require('./key');
35282 var Signature = require('./signature');
35284 function EC(options) {
35285 if (!(this instanceof EC))
35286 return new EC(options);
35288 // Shortcut `elliptic.ec(curve-name)`
35289 if (typeof options === 'string') {
35290 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35292 options = elliptic.curves[options];
35295 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35296 if (options instanceof elliptic.curves.PresetCurve)
35297 options = { curve: options };
35299 this.curve = options.curve.curve;
35300 this.n = this.curve.n;
35301 this.nh = this.n.ushrn(
1);
35302 this.g = this.curve.g;
35305 this.g = options.curve.g;
35306 this.g.precompute(options.curve.n.bitLength() +
1);
35308 // Hash for function for DRBG
35309 this.hash = options.hash || options.curve.hash;
35311 module.exports = EC;
35313 EC.prototype.keyPair = function keyPair(options) {
35314 return new KeyPair(this, options);
35317 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35318 return KeyPair.fromPrivate(this, priv, enc);
35321 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35322 return KeyPair.fromPublic(this, pub, enc);
35325 EC.prototype.genKeyPair = function genKeyPair(options) {
35329 // Instantiate Hmac_DRBG
35330 var drbg = new elliptic.hmacDRBG({
35332 pers: options.pers,
35333 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35334 nonce: this.n.toArray()
35337 var bytes = this.n.byteLength();
35338 var ns2 = this.n.sub(new BN(
2));
35340 var priv = new BN(drbg.generate(bytes));
35341 if (priv.cmp(ns2)
> 0)
35345 return this.keyFromPrivate(priv);
35349 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35350 var delta = msg.byteLength() *
8 - this.n.bitLength();
35352 msg = msg.ushrn(delta);
35353 if (!truncOnly && msg.cmp(this.n)
>=
0)
35354 return msg.sub(this.n);
35359 EC.prototype.sign = function sign(msg, key, enc, options) {
35360 if (typeof enc === 'object') {
35367 key = this.keyFromPrivate(key, enc);
35368 msg = this._truncateToN(new BN(msg,
16));
35370 // Zero-extend key to provide enough entropy
35371 var bytes = this.n.byteLength();
35372 var bkey = key.getPrivate().toArray('be', bytes);
35374 // Zero-extend nonce to have the same byte size as N
35375 var nonce = msg.toArray('be', bytes);
35377 // Instantiate Hmac_DRBG
35378 var drbg = new elliptic.hmacDRBG({
35382 pers: options.pers,
35383 persEnc: options.persEnc
35386 // Number of bytes to generate
35387 var ns1 = this.n.sub(new BN(
1));
35389 for (var iter =
0; true; iter++) {
35390 var k = options.k ?
35392 new BN(drbg.generate(this.n.byteLength()));
35393 k = this._truncateToN(k, true);
35394 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35397 var kp = this.g.mul(k);
35398 if (kp.isInfinity())
35401 var kpX = kp.getX();
35402 var r = kpX.umod(this.n);
35403 if (r.cmpn(
0) ===
0)
35406 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35407 s = s.umod(this.n);
35408 if (s.cmpn(
0) ===
0)
35411 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35412 (kpX.cmp(r) !==
0 ?
2 :
0);
35414 // Use complement of `s`, if it is
> `n /
2`
35415 if (options.canonical && s.cmp(this.nh)
> 0) {
35417 recoveryParam ^=
1;
35420 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35424 EC.prototype.verify = function verify(msg, signature, key, enc) {
35425 msg = this._truncateToN(new BN(msg,
16));
35426 key = this.keyFromPublic(key, enc);
35427 signature = new Signature(signature, 'hex');
35429 // Perform primitive values validation
35430 var r = signature.r;
35431 var s = signature.s;
35432 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35434 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35437 // Validate signature
35438 var sinv = s.invm(this.n);
35439 var u1 = sinv.mul(msg).umod(this.n);
35440 var u2 = sinv.mul(r).umod(this.n);
35442 if (!this.curve._maxwellTrick) {
35443 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35444 if (p.isInfinity())
35447 return p.getX().umod(this.n).cmp(r) ===
0;
35450 // NOTE: Greg Maxwell's trick, inspired by:
35451 // https://git.io/vad3K
35453 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35454 if (p.isInfinity())
35457 // Compare `p.x` of Jacobian point with `r`,
35458 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35459 // inverse of `p.z^
2`
35460 return p.eqXToP(r);
35463 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35464 assert((
3 & j) === j, 'The recovery param is more than two bits');
35465 signature = new Signature(signature, enc);
35468 var e = new BN(msg);
35469 var r = signature.r;
35470 var s = signature.s;
35472 // A set LSB signifies that the y-coordinate is odd
35473 var isYOdd = j &
1;
35474 var isSecondKey = j
>> 1;
35475 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35476 throw new Error('Unable to find sencond key candinate');
35478 //
1.1. Let x = r + jn.
35480 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35482 r = this.curve.pointFromX(r, isYOdd);
35484 var rInv = signature.r.invm(n);
35485 var s1 = n.sub(e).mul(rInv).umod(n);
35486 var s2 = s.mul(rInv).umod(n);
35488 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35489 // Q = r^-
1 (sR + -eG)
35490 return this.g.mulAdd(s1, r, s2);
35493 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35494 signature = new Signature(signature, enc);
35495 if (signature.recoveryParam !== null)
35496 return signature.recoveryParam;
35498 for (var i =
0; i <
4; i++) {
35501 Qprime = this.recoverPubKey(e, signature, i);
35509 throw new Error('Unable to find valid recovery factor');
35512 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35515 var BN = require('bn.js');
35516 var elliptic = require('../../elliptic');
35517 var utils = elliptic.utils;
35518 var assert = utils.assert;
35520 function KeyPair(ec, options) {
35525 // KeyPair(ec, { priv: ..., pub: ... })
35527 this._importPrivate(options.priv, options.privEnc);
35529 this._importPublic(options.pub, options.pubEnc);
35531 module.exports = KeyPair;
35533 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35534 if (pub instanceof KeyPair)
35537 return new KeyPair(ec, {
35543 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35544 if (priv instanceof KeyPair)
35547 return new KeyPair(ec, {
35553 KeyPair.prototype.validate = function validate() {
35554 var pub = this.getPublic();
35556 if (pub.isInfinity())
35557 return { result: false, reason: 'Invalid public key' };
35558 if (!pub.validate())
35559 return { result: false, reason: 'Public key is not a point' };
35560 if (!pub.mul(this.ec.curve.n).isInfinity())
35561 return { result: false, reason: 'Public key * N != O' };
35563 return { result: true, reason: null };
35566 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35567 // compact is optional argument
35568 if (typeof compact === 'string') {
35574 this.pub = this.ec.g.mul(this.priv);
35579 return this.pub.encode(enc, compact);
35582 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35584 return this.priv.toString(
16,
2);
35589 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35590 this.priv = new BN(key, enc ||
16);
35592 // Ensure that the priv won't be bigger than n, otherwise we may fail
35593 // in fixed multiplication method
35594 this.priv = this.priv.umod(this.ec.curve.n);
35597 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35598 if (key.x || key.y) {
35599 // Montgomery points only have an `x` coordinate.
35600 // Weierstrass/Edwards points on the other hand have both `x` and
35601 // `y` coordinates.
35602 if (this.ec.curve.type === 'mont') {
35603 assert(key.x, 'Need x coordinate');
35604 } else if (this.ec.curve.type === 'short' ||
35605 this.ec.curve.type === 'edwards') {
35606 assert(key.x && key.y, 'Need both x and y coordinate');
35608 this.pub = this.ec.curve.point(key.x, key.y);
35611 this.pub = this.ec.curve.decodePoint(key, enc);
35615 KeyPair.prototype.derive = function derive(pub) {
35616 return pub.mul(this.priv).getX();
35620 KeyPair.prototype.sign = function sign(msg, enc, options) {
35621 return this.ec.sign(msg, this, enc, options);
35624 KeyPair.prototype.verify = function verify(msg, signature) {
35625 return this.ec.verify(msg, signature, this);
35628 KeyPair.prototype.inspect = function inspect() {
35629 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35630 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35633 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35636 var BN = require('bn.js');
35638 var elliptic = require('../../elliptic');
35639 var utils = elliptic.utils;
35640 var assert = utils.assert;
35642 function Signature(options, enc) {
35643 if (options instanceof Signature)
35646 if (this._importDER(options, enc))
35649 assert(options.r && options.s, 'Signature without r or s');
35650 this.r = new BN(options.r,
16);
35651 this.s = new BN(options.s,
16);
35652 if (options.recoveryParam === undefined)
35653 this.recoveryParam = null;
35655 this.recoveryParam = options.recoveryParam;
35657 module.exports = Signature;
35659 function Position() {
35663 function getLength(buf, p) {
35664 var initial = buf[p.place++];
35665 if (!(initial &
0x80)) {
35668 var octetLen = initial &
0xf;
35670 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35678 function rmPadding(buf) {
35680 var len = buf.length -
1;
35681 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35687 return buf.slice(i);
35690 Signature.prototype._importDER = function _importDER(data, enc) {
35691 data = utils.toArray(data, enc);
35692 var p = new Position();
35693 if (data[p.place++] !==
0x30) {
35696 var len = getLength(data, p);
35697 if ((len + p.place) !== data.length) {
35700 if (data[p.place++] !==
0x02) {
35703 var rlen = getLength(data, p);
35704 var r = data.slice(p.place, rlen + p.place);
35706 if (data[p.place++] !==
0x02) {
35709 var slen = getLength(data, p);
35710 if (data.length !== slen + p.place) {
35713 var s = data.slice(p.place, slen + p.place);
35714 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35717 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35721 this.r = new BN(r);
35722 this.s = new BN(s);
35723 this.recoveryParam = null;
35728 function constructLength(arr, len) {
35733 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35734 arr.push(octets |
0x80);
35736 arr.push((len
>>> (octets <<
3)) &
0xff);
35741 Signature.prototype.toDER = function toDER(enc) {
35742 var r = this.r.toArray();
35743 var s = this.s.toArray();
35747 r = [
0 ].concat(r);
35750 s = [
0 ].concat(s);
35755 while (!s[
0] && !(s[
1] &
0x80)) {
35758 var arr = [
0x02 ];
35759 constructLength(arr, r.length);
35760 arr = arr.concat(r);
35762 constructLength(arr, s.length);
35763 var backHalf = arr.concat(s);
35764 var res = [
0x30 ];
35765 constructLength(res, backHalf.length);
35766 res = res.concat(backHalf);
35767 return utils.encode(res, enc);
35770 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35773 var hash = require('hash.js');
35774 var elliptic = require('../../elliptic');
35775 var utils = elliptic.utils;
35776 var assert = utils.assert;
35777 var parseBytes = utils.parseBytes;
35778 var KeyPair = require('./key');
35779 var Signature = require('./signature');
35781 function EDDSA(curve) {
35782 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35784 if (!(this instanceof EDDSA))
35785 return new EDDSA(curve);
35787 var curve = elliptic.curves[curve].curve;
35788 this.curve = curve;
35790 this.g.precompute(curve.n.bitLength() +
1);
35792 this.pointClass = curve.point().constructor;
35793 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35794 this.hash = hash.sha512;
35797 module.exports = EDDSA;
35800 * @param {Array|String} message - message bytes
35801 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35802 * @returns {Signature} - signature
35804 EDDSA.prototype.sign = function sign(message, secret) {
35805 message = parseBytes(message);
35806 var key = this.keyFromSecret(secret);
35807 var r = this.hashInt(key.messagePrefix(), message);
35808 var R = this.g.mul(r);
35809 var Rencoded = this.encodePoint(R);
35810 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35812 var S = r.add(s_).umod(this.curve.n);
35813 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35817 * @param {Array} message - message bytes
35818 * @param {Array|String|Signature} sig - sig bytes
35819 * @param {Array|String|Point|KeyPair} pub - public key
35820 * @returns {Boolean} - true if public key matches sig of message
35822 EDDSA.prototype.verify = function verify(message, sig, pub) {
35823 message = parseBytes(message);
35824 sig = this.makeSignature(sig);
35825 var key = this.keyFromPublic(pub);
35826 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35827 var SG = this.g.mul(sig.S());
35828 var RplusAh = sig.R().add(key.pub().mul(h));
35829 return RplusAh.eq(SG);
35832 EDDSA.prototype.hashInt = function hashInt() {
35833 var hash = this.hash();
35834 for (var i =
0; i < arguments.length; i++)
35835 hash.update(arguments[i]);
35836 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35839 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35840 return KeyPair.fromPublic(this, pub);
35843 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35844 return KeyPair.fromSecret(this, secret);
35847 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35848 if (sig instanceof Signature)
35850 return new Signature(this, sig);
35854 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35856 * EDDSA defines methods for encoding and decoding points and integers. These are
35857 * helper convenience methods, that pass along to utility functions implied
35861 EDDSA.prototype.encodePoint = function encodePoint(point) {
35862 var enc = point.getY().toArray('le', this.encodingLength);
35863 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35867 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35868 bytes = utils.parseBytes(bytes);
35870 var lastIx = bytes.length -
1;
35871 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35872 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35874 var y = utils.intFromLE(normed);
35875 return this.curve.pointFromY(y, xIsOdd);
35878 EDDSA.prototype.encodeInt = function encodeInt(num) {
35879 return num.toArray('le', this.encodingLength);
35882 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35883 return utils.intFromLE(bytes);
35886 EDDSA.prototype.isPoint = function isPoint(val) {
35887 return val instanceof this.pointClass;
35890 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35893 var elliptic = require('../../elliptic');
35894 var utils = elliptic.utils;
35895 var assert = utils.assert;
35896 var parseBytes = utils.parseBytes;
35897 var cachedProperty = utils.cachedProperty;
35900 * @param {EDDSA} eddsa - instance
35901 * @param {Object} params - public/private key parameters
35903 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35904 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35905 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35908 function KeyPair(eddsa, params) {
35909 this.eddsa = eddsa;
35910 this._secret = parseBytes(params.secret);
35911 if (eddsa.isPoint(params.pub))
35912 this._pub = params.pub;
35914 this._pubBytes = parseBytes(params.pub);
35917 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35918 if (pub instanceof KeyPair)
35920 return new KeyPair(eddsa, { pub: pub });
35923 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35924 if (secret instanceof KeyPair)
35926 return new KeyPair(eddsa, { secret: secret });
35929 KeyPair.prototype.secret = function secret() {
35930 return this._secret;
35933 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35934 return this.eddsa.encodePoint(this.pub());
35937 cachedProperty(KeyPair, 'pub', function pub() {
35938 if (this._pubBytes)
35939 return this.eddsa.decodePoint(this._pubBytes);
35940 return this.eddsa.g.mul(this.priv());
35943 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35944 var eddsa = this.eddsa;
35945 var hash = this.hash();
35946 var lastIx = eddsa.encodingLength -
1;
35948 var a = hash.slice(
0, eddsa.encodingLength);
35956 cachedProperty(KeyPair, 'priv', function priv() {
35957 return this.eddsa.decodeInt(this.privBytes());
35960 cachedProperty(KeyPair, 'hash', function hash() {
35961 return this.eddsa.hash().update(this.secret()).digest();
35964 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
35965 return this.hash().slice(this.eddsa.encodingLength);
35968 KeyPair.prototype.sign = function sign(message) {
35969 assert(this._secret, 'KeyPair can only verify');
35970 return this.eddsa.sign(message, this);
35973 KeyPair.prototype.verify = function verify(message, sig) {
35974 return this.eddsa.verify(message, sig, this);
35977 KeyPair.prototype.getSecret = function getSecret(enc) {
35978 assert(this._secret, 'KeyPair is public only');
35979 return utils.encode(this.secret(), enc);
35982 KeyPair.prototype.getPublic = function getPublic(enc) {
35983 return utils.encode(this.pubBytes(), enc);
35986 module.exports = KeyPair;
35988 },{"../../elliptic":
39}],
51:[function(require,module,exports){
35991 var BN = require('bn.js');
35992 var elliptic = require('../../elliptic');
35993 var utils = elliptic.utils;
35994 var assert = utils.assert;
35995 var cachedProperty = utils.cachedProperty;
35996 var parseBytes = utils.parseBytes;
35999 * @param {EDDSA} eddsa - eddsa instance
36000 * @param {Array
<Bytes>|Object} sig -
36001 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36002 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36003 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36004 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36006 function Signature(eddsa, sig) {
36007 this.eddsa = eddsa;
36009 if (typeof sig !== 'object')
36010 sig = parseBytes(sig);
36012 if (Array.isArray(sig)) {
36014 R: sig.slice(
0, eddsa.encodingLength),
36015 S: sig.slice(eddsa.encodingLength)
36019 assert(sig.R && sig.S, 'Signature without R or S');
36021 if (eddsa.isPoint(sig.R))
36023 if (sig.S instanceof BN)
36026 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36027 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36030 cachedProperty(Signature, 'S', function S() {
36031 return this.eddsa.decodeInt(this.Sencoded());
36034 cachedProperty(Signature, 'R', function R() {
36035 return this.eddsa.decodePoint(this.Rencoded());
36038 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36039 return this.eddsa.encodePoint(this.R());
36042 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36043 return this.eddsa.encodeInt(this.S());
36046 Signature.prototype.toBytes = function toBytes() {
36047 return this.Rencoded().concat(this.Sencoded());
36050 Signature.prototype.toHex = function toHex() {
36051 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36054 module.exports = Signature;
36056 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36059 var hash = require('hash.js');
36060 var elliptic = require('../elliptic');
36061 var utils = elliptic.utils;
36062 var assert = utils.assert;
36064 function HmacDRBG(options) {
36065 if (!(this instanceof HmacDRBG))
36066 return new HmacDRBG(options);
36067 this.hash = options.hash;
36068 this.predResist = !!options.predResist;
36070 this.outLen = this.hash.outSize;
36071 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36073 this.reseed = null;
36074 this.reseedInterval = null;
36078 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36079 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36080 var pers = utils.toArray(options.pers, options.persEnc);
36081 assert(entropy.length
>= (this.minEntropy /
8),
36082 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36083 this._init(entropy, nonce, pers);
36085 module.exports = HmacDRBG;
36087 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36088 var seed = entropy.concat(nonce).concat(pers);
36090 this.K = new Array(this.outLen /
8);
36091 this.V = new Array(this.outLen /
8);
36092 for (var i =
0; i < this.V.length; i++) {
36097 this._update(seed);
36099 this.reseedInterval =
0x1000000000000; //
2^
48
36102 HmacDRBG.prototype._hmac = function hmac() {
36103 return new hash.hmac(this.hash, this.K);
36106 HmacDRBG.prototype._update = function update(seed) {
36107 var kmac = this._hmac()
36111 kmac = kmac.update(seed);
36112 this.K = kmac.digest();
36113 this.V = this._hmac().update(this.V).digest();
36117 this.K = this._hmac()
36122 this.V = this._hmac().update(this.V).digest();
36125 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36126 // Optional entropy enc
36127 if (typeof entropyEnc !== 'string') {
36133 entropy = utils.toBuffer(entropy, entropyEnc);
36134 add = utils.toBuffer(add, addEnc);
36136 assert(entropy.length
>= (this.minEntropy /
8),
36137 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36139 this._update(entropy.concat(add || []));
36143 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36144 if (this.reseed
> this.reseedInterval)
36145 throw new Error('Reseed is required');
36147 // Optional encoding
36148 if (typeof enc !== 'string') {
36154 // Optional additional data
36156 add = utils.toArray(add, addEnc);
36161 while (temp.length < len) {
36162 this.V = this._hmac().update(this.V).digest();
36163 temp = temp.concat(this.V);
36166 var res = temp.slice(
0, len);
36169 return utils.encode(res, enc);
36172 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36178 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36179 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36182 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36183 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36186 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36187 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36190 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36191 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36194 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36195 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36198 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36199 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36202 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36203 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36206 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36207 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36210 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36211 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36214 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36215 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36218 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36219 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36222 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36223 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36226 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36227 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36230 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36231 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36234 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36235 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36238 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36239 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36242 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36243 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36246 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36247 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36250 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36251 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36254 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36255 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36258 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36259 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36262 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36263 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36266 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36267 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36270 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36271 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36274 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36275 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36278 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36279 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36282 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36283 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36286 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36287 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36290 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36291 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36294 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36295 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36298 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36299 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36302 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36303 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36306 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36307 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36310 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36311 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36314 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36315 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36318 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36319 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36322 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36323 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36326 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36327 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36330 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36331 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36334 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36335 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36338 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36339 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36342 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36343 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36346 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36347 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36350 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36351 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36354 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36355 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36358 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36359 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36362 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36363 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36366 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36367 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36370 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36371 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36374 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36375 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36378 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36379 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36382 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36383 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36386 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36387 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36390 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36391 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36394 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36395 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36398 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36399 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36402 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36403 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36406 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36407 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36410 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36411 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36414 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36415 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36418 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36419 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36422 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36423 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36426 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36427 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36430 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36431 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36434 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36435 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36443 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36444 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36447 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36448 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36451 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36452 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36455 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36456 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36459 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36460 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36463 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36464 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36467 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36468 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36471 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36472 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36475 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36476 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36479 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36480 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36483 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36484 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36487 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36488 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36491 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36492 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36495 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36496 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36499 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36500 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36503 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36504 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36507 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36508 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36511 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36512 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36515 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36516 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36519 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36520 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36523 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36524 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36527 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36528 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36531 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36532 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36535 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36536 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36539 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36540 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36543 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36544 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36547 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36548 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36551 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36552 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36555 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36556 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36559 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36560 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36563 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36564 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36567 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36568 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36571 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36572 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36575 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36576 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36579 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36580 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36583 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36584 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36587 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36588 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36591 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36592 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36595 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36596 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36599 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36600 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36603 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36604 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36607 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36608 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36611 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36612 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36615 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36616 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36619 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36620 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36623 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36624 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36627 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36628 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36631 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36632 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36635 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36636 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36639 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36640 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36643 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36644 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36647 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36648 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36651 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36652 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36655 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36656 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36659 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36660 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36663 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36664 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36667 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36668 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36671 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36672 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36675 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36676 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36679 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36680 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36683 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36684 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36687 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36688 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36691 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36692 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36695 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36696 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36699 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36700 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36703 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36704 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36707 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36708 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36711 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36712 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36715 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36716 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36719 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36720 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36723 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36724 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36727 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36728 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36731 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36732 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36735 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36736 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36739 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36740 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36743 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36744 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36747 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36748 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36751 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36752 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36755 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36756 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36759 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36760 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36763 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36764 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36767 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36768 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36771 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36772 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36775 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36776 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36779 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36780 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36783 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36784 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36787 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36788 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36791 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36792 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36795 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36796 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36799 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36800 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36803 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36804 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36807 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36808 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36811 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36812 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36815 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36816 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36819 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36820 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36823 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36824 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36827 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36828 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36831 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36832 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36835 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36836 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36839 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36840 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36843 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36844 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36847 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36848 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36851 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36852 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36855 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36856 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36859 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36860 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36863 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36864 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36867 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36868 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36871 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36872 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36875 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36876 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36879 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36880 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36883 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36884 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36887 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36888 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36891 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36892 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36895 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36896 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36899 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36900 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36903 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36904 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36907 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36908 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36911 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36912 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36915 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36916 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36919 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36920 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36923 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36924 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36927 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36928 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36931 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36932 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36935 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36936 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36939 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36940 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36943 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36944 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36947 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36948 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36954 },{}],
54:[function(require,module,exports){
36957 var utils = exports;
36958 var BN = require('bn.js');
36960 utils.assert = function assert(val, msg) {
36962 throw new Error(msg || 'Assertion failed');
36965 function toArray(msg, enc) {
36966 if (Array.isArray(msg))
36967 return msg.slice();
36971 if (typeof msg !== 'string') {
36972 for (var i =
0; i < msg.length; i++)
36973 res[i] = msg[i] |
0;
36977 for (var i =
0; i < msg.length; i++) {
36978 var c = msg.charCodeAt(i);
36986 } else if (enc === 'hex') {
36987 msg = msg.replace(/[^a-z0-
9]+/ig, '');
36988 if (msg.length %
2 !==
0)
36990 for (var i =
0; i < msg.length; i +=
2)
36991 res.push(parseInt(msg[i] + msg[i +
1],
16));
36995 utils.toArray = toArray;
36997 function zero2(word) {
36998 if (word.length ===
1)
37003 utils.zero2 = zero2;
37005 function toHex(msg) {
37007 for (var i =
0; i < msg.length; i++)
37008 res += zero2(msg[i].toString(
16));
37011 utils.toHex = toHex;
37013 utils.encode = function encode(arr, enc) {
37020 // Represent num in a w-NAF form
37021 function getNAF(num, w) {
37023 var ws =
1 << (w +
1);
37024 var k = num.clone();
37025 while (k.cmpn(
1)
>=
0) {
37028 var mod = k.andln(ws -
1);
37029 if (mod
> (ws
>> 1) -
1)
37030 z = (ws
>> 1) - mod;
37039 // Optimization, shift by word if possible
37040 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37041 for (var i =
1; i < shift; i++)
37048 utils.getNAF = getNAF;
37050 // Represent k1, k2 in a Joint Sparse Form
37051 function getJSF(k1, k2) {
37061 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37064 var m14 = (k1.andln(
3) + d1) &
3;
37065 var m24 = (k2.andln(
3) + d2) &
3;
37071 if ((m14 &
1) ===
0) {
37074 var m8 = (k1.andln(
7) + d1) &
7;
37075 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37083 if ((m24 &
1) ===
0) {
37086 var m8 = (k2.andln(
7) + d2) &
7;
37087 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37095 if (
2 * d1 === u1 +
1)
37097 if (
2 * d2 === u2 +
1)
37105 utils.getJSF = getJSF;
37107 function cachedProperty(obj, name, computer) {
37108 var key = '_' + name;
37109 obj.prototype[name] = function cachedProperty() {
37110 return this[key] !== undefined ? this[key] :
37111 this[key] = computer.call(this);
37114 utils.cachedProperty = cachedProperty;
37116 function parseBytes(bytes) {
37117 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37120 utils.parseBytes = parseBytes;
37122 function intFromLE(bytes) {
37123 return new BN(bytes, 'hex', 'le');
37125 utils.intFromLE = intFromLE;
37128 },{
"bn.js":
33}],
55:[function(require,module,exports){
37133 "raw":
"elliptic@^6.2.3",
37135 "escapedName":
"elliptic",
37136 "name":
"elliptic",
37137 "rawSpec":
"^6.2.3",
37138 "spec":
">=6.2.3 <7.0.0",
37141 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37144 "_from":
"elliptic@>=6.2.3 <7.0.0",
37145 "_id":
"elliptic@6.3.3",
37147 "_location":
"/elliptic",
37148 "_nodeVersion":
"7.0.0",
37149 "_npmOperationalInternal": {
37150 "host":
"packages-18-east.internal.npmjs.com",
37151 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37155 "email":
"fedor@indutny.com"
37157 "_npmVersion":
"3.10.8",
37158 "_phantomChildren": {},
37160 "raw":
"elliptic@^6.2.3",
37162 "escapedName":
"elliptic",
37163 "name":
"elliptic",
37164 "rawSpec":
"^6.2.3",
37165 "spec":
">=6.2.3 <7.0.0",
37169 "/browserify-sign",
37173 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37174 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37175 "_shrinkwrap": null,
37176 "_spec":
"elliptic@^6.2.3",
37177 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37179 "name":
"Fedor Indutny",
37180 "email":
"fedor@indutny.com"
37183 "url":
"https://github.com/indutny/elliptic/issues"
37187 "brorand":
"^1.0.1",
37188 "hash.js":
"^1.0.0",
37189 "inherits":
"^2.0.1"
37191 "description":
"EC cryptography",
37192 "devDependencies": {
37194 "coveralls":
"^2.11.3",
37196 "grunt-browserify":
"^5.0.0",
37197 "grunt-cli":
"^1.2.0",
37198 "grunt-contrib-connect":
"^1.0.0",
37199 "grunt-contrib-copy":
"^1.0.0",
37200 "grunt-contrib-uglify":
"^1.0.1",
37201 "grunt-mocha-istanbul":
"^3.0.1",
37202 "grunt-saucelabs":
"^8.6.2",
37203 "istanbul":
"^0.4.2",
37205 "jshint":
"^2.6.0",
37210 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37211 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37216 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37217 "homepage":
"https://github.com/indutny/elliptic",
37225 "main":
"lib/elliptic.js",
37229 "email":
"fedor@indutny.com"
37232 "name":
"elliptic",
37233 "optionalDependencies": {},
37234 "readme":
"ERROR: No README data found!",
37237 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37240 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37241 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37242 "lint":
"npm run jscs && npm run jshint",
37243 "test":
"npm run lint && npm run unit",
37244 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37245 "version":
"grunt dist && git add dist/"
37250 },{}],
56:[function(require,module,exports){
37251 (function (Buffer){
37254 var isHexPrefixed = require('is-hex-prefixed');
37255 var stripHexPrefix = require('strip-hex-prefix');
37258 * Pads a `String` to have an even length
37259 * @param {String} value
37260 * @return {String} output
37262 function padToEven(value) {
37263 var a = value; // eslint-disable-line
37265 if (typeof a !== 'string') {
37266 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37269 if (a.length %
2) {
37277 * Converts a `Number` into a hex `String`
37278 * @param {Number} i
37281 function intToHex(i) {
37282 var hex = i.toString(
16); // eslint-disable-line
37284 return '
0x' + padToEven(hex);
37288 * Converts an `Number` to a `Buffer`
37289 * @param {Number} i
37292 function intToBuffer(i) {
37293 var hex = intToHex(i);
37295 return new Buffer(hex.slice(
2), 'hex');
37299 * Get the binary size of a string
37300 * @param {String} str
37303 function getBinarySize(str) {
37304 if (typeof str !== 'string') {
37305 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37308 return Buffer.byteLength(str, 'utf8');
37312 * Returns TRUE if the first specified array contains all elements
37313 * from the second one. FALSE otherwise.
37315 * @param {array} superset
37316 * @param {array} subset
37318 * @returns {boolean}
37320 function arrayContainsArray(superset, subset, some) {
37321 if (Array.isArray(superset) !== true) {
37322 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37324 if (Array.isArray(subset) !== true) {
37325 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37328 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37329 return superset.indexOf(value)
>=
0;
37334 * Should be called to get utf8 from it's hex representation
37337 * @param {String} string in hex
37338 * @returns {String} ascii string representation of hex value
37340 function toUtf8(hex) {
37341 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37343 return bufferValue.toString('utf8');
37347 * Should be called to get ascii from it's hex representation
37350 * @param {String} string in hex
37351 * @returns {String} ascii string representation of hex value
37353 function toAscii(hex) {
37354 var str = ''; // eslint-disable-line
37356 l = hex.length; // eslint-disable-line
37358 if (hex.substring(
0,
2) === '
0x') {
37362 for (; i < l; i +=
2) {
37363 var code = parseInt(hex.substr(i,
2),
16);
37364 str += String.fromCharCode(code);
37371 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37374 * @param {String} string
37375 * @param {Number} optional padding
37376 * @returns {String} hex representation of input string
37378 function fromUtf8(stringValue) {
37379 var str = new Buffer(stringValue, 'utf8');
37381 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37385 * Should be called to get hex representation (prefixed by
0x) of ascii string
37387 * @method fromAscii
37388 * @param {String} string
37389 * @param {Number} optional padding
37390 * @returns {String} hex representation of input string
37392 function fromAscii(stringValue) {
37393 var hex = ''; // eslint-disable-line
37394 for (var i =
0; i < stringValue.length; i++) {
37395 // eslint-disable-line
37396 var code = stringValue.charCodeAt(i);
37397 var n = code.toString(
16);
37398 hex += n.length <
2 ? '
0' + n : n;
37405 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37407 * @method getKeys get specific key from inner object array of objects
37408 * @param {String} params
37409 * @param {String} key
37410 * @param {Boolean} allowEmpty
37411 * @returns {Array} output just a simple array of output keys
37413 function getKeys(params, key, allowEmpty) {
37414 if (!Array.isArray(params)) {
37415 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37417 if (typeof key !== 'string') {
37418 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37421 var result = []; // eslint-disable-line
37423 for (var i =
0; i < params.length; i++) {
37424 // eslint-disable-line
37425 var value = params[i][key]; // eslint-disable-line
37426 if (allowEmpty && !value) {
37428 } else if (typeof value !== 'string') {
37429 throw new Error('invalid abi');
37431 result.push(value);
37438 * Is the string a hex string.
37440 * @method check if string is hex string of specific length
37441 * @param {String} value
37442 * @param {Number} length
37443 * @returns {Boolean} output the string is a hex string
37445 function isHexString(value, length) {
37446 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37450 if (length && value.length !==
2 +
2 * length) {
37458 arrayContainsArray: arrayContainsArray,
37459 intToBuffer: intToBuffer,
37460 getBinarySize: getBinarySize,
37461 isHexPrefixed: isHexPrefixed,
37462 stripHexPrefix: stripHexPrefix,
37463 padToEven: padToEven,
37464 intToHex: intToHex,
37465 fromAscii: fromAscii,
37466 fromUtf8: fromUtf8,
37470 isHexString: isHexString
37472 }).call(this,require("buffer").Buffer)
37473 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37474 var hash = exports;
37476 hash.utils = require('./hash/utils');
37477 hash.common = require('./hash/common');
37478 hash.sha = require('./hash/sha');
37479 hash.ripemd = require('./hash/ripemd');
37480 hash.hmac = require('./hash/hmac');
37482 // Proxy hash functions to the main object
37483 hash.sha1 = hash.sha.sha1;
37484 hash.sha256 = hash.sha.sha256;
37485 hash.sha224 = hash.sha.sha224;
37486 hash.sha384 = hash.sha.sha384;
37487 hash.sha512 = hash.sha.sha512;
37488 hash.ripemd160 = hash.ripemd.ripemd160;
37490 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37491 var hash = require('../hash');
37492 var utils = hash.utils;
37493 var assert = utils.assert;
37495 function BlockHash() {
37496 this.pending = null;
37497 this.pendingTotal =
0;
37498 this.blockSize = this.constructor.blockSize;
37499 this.outSize = this.constructor.outSize;
37500 this.hmacStrength = this.constructor.hmacStrength;
37501 this.padLength = this.constructor.padLength /
8;
37502 this.endian = 'big';
37504 this._delta8 = this.blockSize /
8;
37505 this._delta32 = this.blockSize /
32;
37507 exports.BlockHash = BlockHash;
37509 BlockHash.prototype.update = function update(msg, enc) {
37510 // Convert message to array, pad it, and join into
32bit blocks
37511 msg = utils.toArray(msg, enc);
37513 this.pending = msg;
37515 this.pending = this.pending.concat(msg);
37516 this.pendingTotal += msg.length;
37518 // Enough data, try updating
37519 if (this.pending.length
>= this._delta8) {
37520 msg = this.pending;
37522 // Process pending data in blocks
37523 var r = msg.length % this._delta8;
37524 this.pending = msg.slice(msg.length - r, msg.length);
37525 if (this.pending.length ===
0)
37526 this.pending = null;
37528 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37529 for (var i =
0; i < msg.length; i += this._delta32)
37530 this._update(msg, i, i + this._delta32);
37536 BlockHash.prototype.digest = function digest(enc) {
37537 this.update(this._pad());
37538 assert(this.pending === null);
37540 return this._digest(enc);
37543 BlockHash.prototype._pad = function pad() {
37544 var len = this.pendingTotal;
37545 var bytes = this._delta8;
37546 var k = bytes - ((len + this.padLength) % bytes);
37547 var res = new Array(k + this.padLength);
37549 for (var i =
1; i < k; i++)
37554 if (this.endian === 'big') {
37555 for (var t =
8; t < this.padLength; t++)
37562 res[i++] = (len
>>> 24) &
0xff;
37563 res[i++] = (len
>>> 16) &
0xff;
37564 res[i++] = (len
>>> 8) &
0xff;
37565 res[i++] = len &
0xff;
37567 res[i++] = len &
0xff;
37568 res[i++] = (len
>>> 8) &
0xff;
37569 res[i++] = (len
>>> 16) &
0xff;
37570 res[i++] = (len
>>> 24) &
0xff;
37576 for (var t =
8; t < this.padLength; t++)
37583 },{
"../hash":
57}],
59:[function(require,module,exports){
37584 var hmac = exports;
37586 var hash = require('../hash');
37587 var utils = hash.utils;
37588 var assert = utils.assert;
37590 function Hmac(hash, key, enc) {
37591 if (!(this instanceof Hmac))
37592 return new Hmac(hash, key, enc);
37594 this.blockSize = hash.blockSize /
8;
37595 this.outSize = hash.outSize /
8;
37599 this._init(utils.toArray(key, enc));
37601 module.exports = Hmac;
37603 Hmac.prototype._init = function init(key) {
37604 // Shorten key, if needed
37605 if (key.length
> this.blockSize)
37606 key = new this.Hash().update(key).digest();
37607 assert(key.length <= this.blockSize);
37609 // Add padding to key
37610 for (var i = key.length; i < this.blockSize; i++)
37613 for (var i =
0; i < key.length; i++)
37615 this.inner = new this.Hash().update(key);
37617 //
0x36 ^
0x5c =
0x6a
37618 for (var i =
0; i < key.length; i++)
37620 this.outer = new this.Hash().update(key);
37623 Hmac.prototype.update = function update(msg, enc) {
37624 this.inner.update(msg, enc);
37628 Hmac.prototype.digest = function digest(enc) {
37629 this.outer.update(this.inner.digest());
37630 return this.outer.digest(enc);
37633 },{"../hash":
57}],
60:[function(require,module,exports){
37634 var hash = require('../hash');
37635 var utils = hash.utils;
37637 var rotl32 = utils.rotl32;
37638 var sum32 = utils.sum32;
37639 var sum32_3 = utils.sum32_3;
37640 var sum32_4 = utils.sum32_4;
37641 var BlockHash = hash.common.BlockHash;
37643 function RIPEMD160() {
37644 if (!(this instanceof RIPEMD160))
37645 return new RIPEMD160();
37647 BlockHash.call(this);
37649 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37650 this.endian = 'little';
37652 utils.inherits(RIPEMD160, BlockHash);
37653 exports.ripemd160 = RIPEMD160;
37655 RIPEMD160.blockSize =
512;
37656 RIPEMD160.outSize =
160;
37657 RIPEMD160.hmacStrength =
192;
37658 RIPEMD160.padLength =
64;
37660 RIPEMD160.prototype._update = function update(msg, start) {
37671 for (var j =
0; j <
80; j++) {
37674 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37684 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37689 Dh = rotl32(Ch,
10);
37693 T = sum32_3(this.h[
1], C, Dh);
37694 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37695 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37696 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37697 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37701 RIPEMD160.prototype._digest = function digest(enc) {
37703 return utils.toHex32(this.h, 'little');
37705 return utils.split32(this.h, 'little');
37708 function f(j, x, y, z) {
37712 return (x & y) | ((~x) & z);
37714 return (x | (~y)) ^ z;
37716 return (x & z) | (y & (~z));
37718 return x ^ (y | (~z));
37748 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37749 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37750 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37751 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37752 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37756 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37757 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37758 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37759 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37760 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37764 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37765 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37766 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37767 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37768 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37772 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37773 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37774 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37775 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37776 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37779 },{"../hash":
57}],
61:[function(require,module,exports){
37780 var hash = require('../hash');
37781 var utils = hash.utils;
37782 var assert = utils.assert;
37784 var rotr32 = utils.rotr32;
37785 var rotl32 = utils.rotl32;
37786 var sum32 = utils.sum32;
37787 var sum32_4 = utils.sum32_4;
37788 var sum32_5 = utils.sum32_5;
37789 var rotr64_hi = utils.rotr64_hi;
37790 var rotr64_lo = utils.rotr64_lo;
37791 var shr64_hi = utils.shr64_hi;
37792 var shr64_lo = utils.shr64_lo;
37793 var sum64 = utils.sum64;
37794 var sum64_hi = utils.sum64_hi;
37795 var sum64_lo = utils.sum64_lo;
37796 var sum64_4_hi = utils.sum64_4_hi;
37797 var sum64_4_lo = utils.sum64_4_lo;
37798 var sum64_5_hi = utils.sum64_5_hi;
37799 var sum64_5_lo = utils.sum64_5_lo;
37800 var BlockHash = hash.common.BlockHash;
37803 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37804 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37805 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37806 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37807 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37808 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37809 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37810 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37811 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37812 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37813 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37814 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37815 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37816 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37817 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37818 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37822 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37823 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37824 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37825 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37826 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37827 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37828 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37829 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37830 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37831 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37832 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37833 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37834 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37835 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37836 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37837 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37838 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37839 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37840 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37841 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37842 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37843 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37844 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37845 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37846 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37847 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37848 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37849 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37850 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37851 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37852 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37853 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37854 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37855 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37856 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37857 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37858 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37859 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37860 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37861 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37865 0x5A827999,
0x6ED9EBA1,
37866 0x8F1BBCDC,
0xCA62C1D6
37869 function SHA256() {
37870 if (!(this instanceof SHA256))
37871 return new SHA256();
37873 BlockHash.call(this);
37874 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37875 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37877 this.W = new Array(
64);
37879 utils.inherits(SHA256, BlockHash);
37880 exports.sha256 = SHA256;
37882 SHA256.blockSize =
512;
37883 SHA256.outSize =
256;
37884 SHA256.hmacStrength =
192;
37885 SHA256.padLength =
64;
37887 SHA256.prototype._update = function _update(msg, start) {
37890 for (var i =
0; i <
16; i++)
37891 W[i] = msg[start + i];
37892 for (; i < W.length; i++)
37893 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37904 assert(this.k.length === W.length);
37905 for (var i =
0; i < W.length; i++) {
37906 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37907 var T2 = sum32(s0_256(a), maj32(a, b, c));
37918 this.h[
0] = sum32(this.h[
0], a);
37919 this.h[
1] = sum32(this.h[
1], b);
37920 this.h[
2] = sum32(this.h[
2], c);
37921 this.h[
3] = sum32(this.h[
3], d);
37922 this.h[
4] = sum32(this.h[
4], e);
37923 this.h[
5] = sum32(this.h[
5], f);
37924 this.h[
6] = sum32(this.h[
6], g);
37925 this.h[
7] = sum32(this.h[
7], h);
37928 SHA256.prototype._digest = function digest(enc) {
37930 return utils.toHex32(this.h, 'big');
37932 return utils.split32(this.h, 'big');
37935 function SHA224() {
37936 if (!(this instanceof SHA224))
37937 return new SHA224();
37940 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37941 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37943 utils.inherits(SHA224, SHA256);
37944 exports.sha224 = SHA224;
37946 SHA224.blockSize =
512;
37947 SHA224.outSize =
224;
37948 SHA224.hmacStrength =
192;
37949 SHA224.padLength =
64;
37951 SHA224.prototype._digest = function digest(enc) {
37952 // Just truncate output
37954 return utils.toHex32(this.h.slice(
0,
7), 'big');
37956 return utils.split32(this.h.slice(
0,
7), 'big');
37959 function SHA512() {
37960 if (!(this instanceof SHA512))
37961 return new SHA512();
37963 BlockHash.call(this);
37964 this.h = [
0x6a09e667,
0xf3bcc908,
37965 0xbb67ae85,
0x84caa73b,
37966 0x3c6ef372,
0xfe94f82b,
37967 0xa54ff53a,
0x5f1d36f1,
37968 0x510e527f,
0xade682d1,
37969 0x9b05688c,
0x2b3e6c1f,
37970 0x1f83d9ab,
0xfb41bd6b,
37971 0x5be0cd19,
0x137e2179 ];
37973 this.W = new Array(
160);
37975 utils.inherits(SHA512, BlockHash);
37976 exports.sha512 = SHA512;
37978 SHA512.blockSize =
1024;
37979 SHA512.outSize =
512;
37980 SHA512.hmacStrength =
192;
37981 SHA512.padLength =
128;
37983 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
37986 //
32 x
32bit words
37987 for (var i =
0; i <
32; i++)
37988 W[i] = msg[start + i];
37989 for (; i < W.length; i +=
2) {
37990 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
37991 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
37992 var c1_hi = W[i -
14]; // i -
7
37993 var c1_lo = W[i -
13];
37994 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
37995 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
37996 var c3_hi = W[i -
32]; // i -
16
37997 var c3_lo = W[i -
31];
37999 W[i] = sum64_4_hi(c0_hi, c0_lo,
38003 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38010 SHA512.prototype._update = function _update(msg, start) {
38011 this._prepareBlock(msg, start);
38015 var ah = this.h[
0];
38016 var al = this.h[
1];
38017 var bh = this.h[
2];
38018 var bl = this.h[
3];
38019 var ch = this.h[
4];
38020 var cl = this.h[
5];
38021 var dh = this.h[
6];
38022 var dl = this.h[
7];
38023 var eh = this.h[
8];
38024 var el = this.h[
9];
38025 var fh = this.h[
10];
38026 var fl = this.h[
11];
38027 var gh = this.h[
12];
38028 var gl = this.h[
13];
38029 var hh = this.h[
14];
38030 var hl = this.h[
15];
38032 assert(this.k.length === W.length);
38033 for (var i =
0; i < W.length; i +=
2) {
38036 var c1_hi = s1_512_hi(eh, el);
38037 var c1_lo = s1_512_lo(eh, el);
38038 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38039 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38040 var c3_hi = this.k[i];
38041 var c3_lo = this.k[i +
1];
38043 var c4_lo = W[i +
1];
38045 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38050 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38056 var c0_hi = s0_512_hi(ah, al);
38057 var c0_lo = s0_512_lo(ah, al);
38058 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38059 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38061 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38062 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38073 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38074 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38085 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38086 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38089 sum64(this.h,
0, ah, al);
38090 sum64(this.h,
2, bh, bl);
38091 sum64(this.h,
4, ch, cl);
38092 sum64(this.h,
6, dh, dl);
38093 sum64(this.h,
8, eh, el);
38094 sum64(this.h,
10, fh, fl);
38095 sum64(this.h,
12, gh, gl);
38096 sum64(this.h,
14, hh, hl);
38099 SHA512.prototype._digest = function digest(enc) {
38101 return utils.toHex32(this.h, 'big');
38103 return utils.split32(this.h, 'big');
38106 function SHA384() {
38107 if (!(this instanceof SHA384))
38108 return new SHA384();
38111 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38112 0x629a292a,
0x367cd507,
38113 0x9159015a,
0x3070dd17,
38114 0x152fecd8,
0xf70e5939,
38115 0x67332667,
0xffc00b31,
38116 0x8eb44a87,
0x68581511,
38117 0xdb0c2e0d,
0x64f98fa7,
38118 0x47b5481d,
0xbefa4fa4 ];
38120 utils.inherits(SHA384, SHA512);
38121 exports.sha384 = SHA384;
38123 SHA384.blockSize =
1024;
38124 SHA384.outSize =
384;
38125 SHA384.hmacStrength =
192;
38126 SHA384.padLength =
128;
38128 SHA384.prototype._digest = function digest(enc) {
38130 return utils.toHex32(this.h.slice(
0,
12), 'big');
38132 return utils.split32(this.h.slice(
0,
12), 'big');
38136 if (!(this instanceof SHA1))
38139 BlockHash.call(this);
38140 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38141 0x10325476,
0xc3d2e1f0 ];
38142 this.W = new Array(
80);
38145 utils.inherits(SHA1, BlockHash);
38146 exports.sha1 = SHA1;
38148 SHA1.blockSize =
512;
38149 SHA1.outSize =
160;
38150 SHA1.hmacStrength =
80;
38151 SHA1.padLength =
64;
38153 SHA1.prototype._update = function _update(msg, start) {
38156 for (var i =
0; i <
16; i++)
38157 W[i] = msg[start + i];
38159 for(; i < W.length; i++)
38160 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38168 for (var i =
0; i < W.length; i++) {
38169 var s = ~~(i /
20);
38170 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38178 this.h[
0] = sum32(this.h[
0], a);
38179 this.h[
1] = sum32(this.h[
1], b);
38180 this.h[
2] = sum32(this.h[
2], c);
38181 this.h[
3] = sum32(this.h[
3], d);
38182 this.h[
4] = sum32(this.h[
4], e);
38185 SHA1.prototype._digest = function digest(enc) {
38187 return utils.toHex32(this.h, 'big');
38189 return utils.split32(this.h, 'big');
38192 function ch32(x, y, z) {
38193 return (x & y) ^ ((~x) & z);
38196 function maj32(x, y, z) {
38197 return (x & y) ^ (x & z) ^ (y & z);
38200 function p32(x, y, z) {
38204 function s0_256(x) {
38205 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38208 function s1_256(x) {
38209 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38212 function g0_256(x) {
38213 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38216 function g1_256(x) {
38217 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38220 function ft_1(s, x, y, z) {
38222 return ch32(x, y, z);
38223 if (s ===
1 || s ===
3)
38224 return p32(x, y, z);
38226 return maj32(x, y, z);
38229 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38230 var r = (xh & yh) ^ ((~xh) & zh);
38236 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38237 var r = (xl & yl) ^ ((~xl) & zl);
38243 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38244 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38250 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38251 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38257 function s0_512_hi(xh, xl) {
38258 var c0_hi = rotr64_hi(xh, xl,
28);
38259 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38260 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38262 var r = c0_hi ^ c1_hi ^ c2_hi;
38268 function s0_512_lo(xh, xl) {
38269 var c0_lo = rotr64_lo(xh, xl,
28);
38270 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38271 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38273 var r = c0_lo ^ c1_lo ^ c2_lo;
38279 function s1_512_hi(xh, xl) {
38280 var c0_hi = rotr64_hi(xh, xl,
14);
38281 var c1_hi = rotr64_hi(xh, xl,
18);
38282 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38284 var r = c0_hi ^ c1_hi ^ c2_hi;
38290 function s1_512_lo(xh, xl) {
38291 var c0_lo = rotr64_lo(xh, xl,
14);
38292 var c1_lo = rotr64_lo(xh, xl,
18);
38293 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38295 var r = c0_lo ^ c1_lo ^ c2_lo;
38301 function g0_512_hi(xh, xl) {
38302 var c0_hi = rotr64_hi(xh, xl,
1);
38303 var c1_hi = rotr64_hi(xh, xl,
8);
38304 var c2_hi = shr64_hi(xh, xl,
7);
38306 var r = c0_hi ^ c1_hi ^ c2_hi;
38312 function g0_512_lo(xh, xl) {
38313 var c0_lo = rotr64_lo(xh, xl,
1);
38314 var c1_lo = rotr64_lo(xh, xl,
8);
38315 var c2_lo = shr64_lo(xh, xl,
7);
38317 var r = c0_lo ^ c1_lo ^ c2_lo;
38323 function g1_512_hi(xh, xl) {
38324 var c0_hi = rotr64_hi(xh, xl,
19);
38325 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38326 var c2_hi = shr64_hi(xh, xl,
6);
38328 var r = c0_hi ^ c1_hi ^ c2_hi;
38334 function g1_512_lo(xh, xl) {
38335 var c0_lo = rotr64_lo(xh, xl,
19);
38336 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38337 var c2_lo = shr64_lo(xh, xl,
6);
38339 var r = c0_lo ^ c1_lo ^ c2_lo;
38345 },{
"../hash":
57}],
62:[function(require,module,exports){
38346 var utils = exports;
38347 var inherits = require('inherits');
38349 function toArray(msg, enc) {
38350 if (Array.isArray(msg))
38351 return msg.slice();
38355 if (typeof msg === 'string') {
38357 for (var i =
0; i < msg.length; i++) {
38358 var c = msg.charCodeAt(i);
38366 } else if (enc === 'hex') {
38367 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38368 if (msg.length %
2 !==
0)
38370 for (var i =
0; i < msg.length; i +=
2)
38371 res.push(parseInt(msg[i] + msg[i +
1],
16));
38374 for (var i =
0; i < msg.length; i++)
38375 res[i] = msg[i] |
0;
38379 utils.toArray = toArray;
38381 function toHex(msg) {
38383 for (var i =
0; i < msg.length; i++)
38384 res += zero2(msg[i].toString(
16));
38387 utils.toHex = toHex;
38389 function htonl(w) {
38390 var res = (w
>>> 24) |
38391 ((w
>>> 8) &
0xff00) |
38392 ((w <<
8) &
0xff0000) |
38393 ((w &
0xff) <<
24);
38396 utils.htonl = htonl;
38398 function toHex32(msg, endian) {
38400 for (var i =
0; i < msg.length; i++) {
38402 if (endian === 'little')
38404 res += zero8(w.toString(
16));
38408 utils.toHex32 = toHex32;
38410 function zero2(word) {
38411 if (word.length ===
1)
38416 utils.zero2 = zero2;
38418 function zero8(word) {
38419 if (word.length ===
7)
38421 else if (word.length ===
6)
38422 return '
00' + word;
38423 else if (word.length ===
5)
38424 return '
000' + word;
38425 else if (word.length ===
4)
38426 return '
0000' + word;
38427 else if (word.length ===
3)
38428 return '
00000' + word;
38429 else if (word.length ===
2)
38430 return '
000000' + word;
38431 else if (word.length ===
1)
38432 return '
0000000' + word;
38436 utils.zero8 = zero8;
38438 function join32(msg, start, end, endian) {
38439 var len = end - start;
38440 assert(len %
4 ===
0);
38441 var res = new Array(len /
4);
38442 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38444 if (endian === 'big')
38445 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38447 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38452 utils.join32 = join32;
38454 function split32(msg, endian) {
38455 var res = new Array(msg.length *
4);
38456 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38458 if (endian === 'big') {
38460 res[k +
1] = (m
>>> 16) &
0xff;
38461 res[k +
2] = (m
>>> 8) &
0xff;
38462 res[k +
3] = m &
0xff;
38464 res[k +
3] = m
>>> 24;
38465 res[k +
2] = (m
>>> 16) &
0xff;
38466 res[k +
1] = (m
>>> 8) &
0xff;
38472 utils.split32 = split32;
38474 function rotr32(w, b) {
38475 return (w
>>> b) | (w << (
32 - b));
38477 utils.rotr32 = rotr32;
38479 function rotl32(w, b) {
38480 return (w << b) | (w
>>> (
32 - b));
38482 utils.rotl32 = rotl32;
38484 function sum32(a, b) {
38485 return (a + b)
>>> 0;
38487 utils.sum32 = sum32;
38489 function sum32_3(a, b, c) {
38490 return (a + b + c)
>>> 0;
38492 utils.sum32_3 = sum32_3;
38494 function sum32_4(a, b, c, d) {
38495 return (a + b + c + d)
>>> 0;
38497 utils.sum32_4 = sum32_4;
38499 function sum32_5(a, b, c, d, e) {
38500 return (a + b + c + d + e)
>>> 0;
38502 utils.sum32_5 = sum32_5;
38504 function assert(cond, msg) {
38506 throw new Error(msg || 'Assertion failed');
38508 utils.assert = assert;
38510 utils.inherits = inherits;
38512 function sum64(buf, pos, ah, al) {
38514 var bl = buf[pos +
1];
38516 var lo = (al + bl)
>>> 0;
38517 var hi = (lo < al ?
1 :
0) + ah + bh;
38518 buf[pos] = hi
>>> 0;
38521 exports.sum64 = sum64;
38523 function sum64_hi(ah, al, bh, bl) {
38524 var lo = (al + bl)
>>> 0;
38525 var hi = (lo < al ?
1 :
0) + ah + bh;
38528 exports.sum64_hi = sum64_hi;
38530 function sum64_lo(ah, al, bh, bl) {
38534 exports.sum64_lo = sum64_lo;
38536 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38539 lo = (lo + bl)
>>> 0;
38540 carry += lo < al ?
1 :
0;
38541 lo = (lo + cl)
>>> 0;
38542 carry += lo < cl ?
1 :
0;
38543 lo = (lo + dl)
>>> 0;
38544 carry += lo < dl ?
1 :
0;
38546 var hi = ah + bh + ch + dh + carry;
38549 exports.sum64_4_hi = sum64_4_hi;
38551 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38552 var lo = al + bl + cl + dl;
38555 exports.sum64_4_lo = sum64_4_lo;
38557 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38560 lo = (lo + bl)
>>> 0;
38561 carry += lo < al ?
1 :
0;
38562 lo = (lo + cl)
>>> 0;
38563 carry += lo < cl ?
1 :
0;
38564 lo = (lo + dl)
>>> 0;
38565 carry += lo < dl ?
1 :
0;
38566 lo = (lo + el)
>>> 0;
38567 carry += lo < el ?
1 :
0;
38569 var hi = ah + bh + ch + dh + eh + carry;
38572 exports.sum64_5_hi = sum64_5_hi;
38574 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38575 var lo = al + bl + cl + dl + el;
38579 exports.sum64_5_lo = sum64_5_lo;
38581 function rotr64_hi(ah, al, num) {
38582 var r = (al << (
32 - num)) | (ah
>>> num);
38585 exports.rotr64_hi = rotr64_hi;
38587 function rotr64_lo(ah, al, num) {
38588 var r = (ah << (
32 - num)) | (al
>>> num);
38591 exports.rotr64_lo = rotr64_lo;
38593 function shr64_hi(ah, al, num) {
38596 exports.shr64_hi = shr64_hi;
38598 function shr64_lo(ah, al, num) {
38599 var r = (ah << (
32 - num)) | (al
>>> num);
38602 exports.shr64_lo = shr64_lo;
38604 },{
"inherits":
63}],
63:[function(require,module,exports){
38605 arguments[
4][
9][
0].apply(exports,arguments)
38606 },{
"dup":
9}],
64:[function(require,module,exports){
38608 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38609 * @param {String} str the string input value
38610 * @return {Boolean} a boolean if it is or is not hex prefixed
38611 * @throws if the str input is not a string
38613 module.exports = function isHexPrefixed(str) {
38614 if (typeof str !== 'string') {
38615 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38618 return str.slice(
0,
2) === '
0x';
38621 },{}],
65:[function(require,module,exports){
38623 module.exports = require('./lib/api')(require('./lib/keccak'))
38625 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38627 var createKeccak = require('./keccak')
38628 var createShake = require('./shake')
38630 module.exports = function (KeccakState) {
38631 var Keccak = createKeccak(KeccakState)
38632 var Shake = createShake(KeccakState)
38634 return function (algorithm, options) {
38635 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38637 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38638 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38639 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38640 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38642 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38643 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38644 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38645 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38647 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38648 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38650 default: throw new Error('Invald algorithm: ' + algorithm)
38655 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38656 (function (Buffer){
38658 var Transform = require('stream').Transform
38659 var inherits = require('inherits')
38661 module.exports = function (KeccakState) {
38662 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38663 Transform.call(this, options)
38666 this._capacity = capacity
38667 this._delimitedSuffix = delimitedSuffix
38668 this._hashBitLength = hashBitLength
38669 this._options = options
38671 this._state = new KeccakState()
38672 this._state.initialize(rate, capacity)
38673 this._finalized = false
38676 inherits(Keccak, Transform)
38678 Keccak.prototype._transform = function (chunk, encoding, callback) {
38681 this.update(chunk, encoding)
38689 Keccak.prototype._flush = function (callback) {
38692 this.push(this.digest())
38700 Keccak.prototype.update = function (data, encoding) {
38701 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38702 if (this._finalized) throw new Error('Digest already called')
38703 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38705 this._state.absorb(data)
38710 Keccak.prototype.digest = function (encoding) {
38711 if (this._finalized) throw new Error('Digest already called')
38712 this._finalized = true
38714 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38715 var digest = this._state.squeeze(this._hashBitLength /
8)
38716 if (encoding !== undefined) digest = digest.toString(encoding)
38723 // remove result from memory
38724 Keccak.prototype._resetState = function () {
38725 this._state.initialize(this._rate, this._capacity)
38729 // because sometimes we need hash right now and little later
38730 Keccak.prototype._clone = function () {
38731 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38732 this._state.copy(clone._state)
38733 clone._finalized = this._finalized
38741 }).call(this,require(
"buffer").Buffer)
38742 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38743 (function (Buffer){
38745 var Transform = require('stream').Transform
38746 var inherits = require('inherits')
38748 module.exports = function (KeccakState) {
38749 function Shake (rate, capacity, delimitedSuffix, options) {
38750 Transform.call(this, options)
38753 this._capacity = capacity
38754 this._delimitedSuffix = delimitedSuffix
38755 this._options = options
38757 this._state = new KeccakState()
38758 this._state.initialize(rate, capacity)
38759 this._finalized = false
38762 inherits(Shake, Transform)
38764 Shake.prototype._transform = function (chunk, encoding, callback) {
38767 this.update(chunk, encoding)
38775 Shake.prototype._flush = function () {}
38777 Shake.prototype._read = function (size) {
38778 this.push(this.squeeze(size))
38781 Shake.prototype.update = function (data, encoding) {
38782 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38783 if (this._finalized) throw new Error('Squeeze already called')
38784 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38786 this._state.absorb(data)
38791 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38792 if (!this._finalized) {
38793 this._finalized = true
38794 this._state.absorbLastFewBits(this._delimitedSuffix)
38797 var data = this._state.squeeze(dataByteLength)
38798 if (encoding !== undefined) data = data.toString(encoding)
38803 Shake.prototype._resetState = function () {
38804 this._state.initialize(this._rate, this._capacity)
38808 Shake.prototype._clone = function () {
38809 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38810 this._state.copy(clone._state)
38811 clone._finalized = this._finalized
38819 }).call(this,require(
"buffer").Buffer)
38820 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38822 var P1600_ROUND_CONSTANTS = [
1,
0,
32898,
0,
32906,
2147483648,
2147516416,
2147483648,
32907,
0,
2147483649,
0,
2147516545,
2147483648,
32777,
2147483648,
138,
0,
136,
0,
2147516425,
0,
2147483658,
0,
2147516555,
0,
139,
2147483648,
32905,
2147483648,
32771,
2147483648,
32770,
2147483648,
128,
2147483648,
32778,
0,
2147483658,
2147483648,
2147516545,
2147483648,
32896,
2147483648,
2147483649,
0,
2147516424,
2147483648]
38824 exports.p1600 = function (s) {
38825 for (var round =
0; round <
24; ++round) {
38827 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38828 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38829 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38830 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38831 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38832 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38833 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38834 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38835 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38836 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38838 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38839 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38840 var t1slo0 = s[
0] ^ lo
38841 var t1shi0 = s[
1] ^ hi
38842 var t1slo5 = s[
10] ^ lo
38843 var t1shi5 = s[
11] ^ hi
38844 var t1slo10 = s[
20] ^ lo
38845 var t1shi10 = s[
21] ^ hi
38846 var t1slo15 = s[
30] ^ lo
38847 var t1shi15 = s[
31] ^ hi
38848 var t1slo20 = s[
40] ^ lo
38849 var t1shi20 = s[
41] ^ hi
38850 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38851 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38852 var t1slo1 = s[
2] ^ lo
38853 var t1shi1 = s[
3] ^ hi
38854 var t1slo6 = s[
12] ^ lo
38855 var t1shi6 = s[
13] ^ hi
38856 var t1slo11 = s[
22] ^ lo
38857 var t1shi11 = s[
23] ^ hi
38858 var t1slo16 = s[
32] ^ lo
38859 var t1shi16 = s[
33] ^ hi
38860 var t1slo21 = s[
42] ^ lo
38861 var t1shi21 = s[
43] ^ hi
38862 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38863 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38864 var t1slo2 = s[
4] ^ lo
38865 var t1shi2 = s[
5] ^ hi
38866 var t1slo7 = s[
14] ^ lo
38867 var t1shi7 = s[
15] ^ hi
38868 var t1slo12 = s[
24] ^ lo
38869 var t1shi12 = s[
25] ^ hi
38870 var t1slo17 = s[
34] ^ lo
38871 var t1shi17 = s[
35] ^ hi
38872 var t1slo22 = s[
44] ^ lo
38873 var t1shi22 = s[
45] ^ hi
38874 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38875 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38876 var t1slo3 = s[
6] ^ lo
38877 var t1shi3 = s[
7] ^ hi
38878 var t1slo8 = s[
16] ^ lo
38879 var t1shi8 = s[
17] ^ hi
38880 var t1slo13 = s[
26] ^ lo
38881 var t1shi13 = s[
27] ^ hi
38882 var t1slo18 = s[
36] ^ lo
38883 var t1shi18 = s[
37] ^ hi
38884 var t1slo23 = s[
46] ^ lo
38885 var t1shi23 = s[
47] ^ hi
38886 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38887 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38888 var t1slo4 = s[
8] ^ lo
38889 var t1shi4 = s[
9] ^ hi
38890 var t1slo9 = s[
18] ^ lo
38891 var t1shi9 = s[
19] ^ hi
38892 var t1slo14 = s[
28] ^ lo
38893 var t1shi14 = s[
29] ^ hi
38894 var t1slo19 = s[
38] ^ lo
38895 var t1shi19 = s[
39] ^ hi
38896 var t1slo24 = s[
48] ^ lo
38897 var t1shi24 = s[
49] ^ hi
38900 var t2slo0 = t1slo0
38901 var t2shi0 = t1shi0
38902 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38903 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38904 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38905 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38906 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38907 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38908 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38909 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38910 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38911 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38912 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38913 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38914 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38915 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38916 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38917 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38918 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38919 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38920 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38921 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38922 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38923 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38924 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38925 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38926 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38927 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38928 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38929 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38930 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38931 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38932 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38933 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38934 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38935 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38936 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38937 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38938 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38939 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38940 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38941 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38942 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38943 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38944 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38945 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38946 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38947 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38948 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38949 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38952 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38953 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38954 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38955 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38956 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38957 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38958 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38959 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38960 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38961 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
38962 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
38963 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
38964 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
38965 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
38966 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
38967 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
38968 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
38969 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
38970 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
38971 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
38972 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
38973 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
38974 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
38975 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
38976 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
38977 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
38978 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
38979 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
38980 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
38981 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
38982 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
38983 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
38984 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
38985 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
38986 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
38987 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
38988 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
38989 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
38990 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
38991 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
38992 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
38993 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
38994 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
38995 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
38996 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
38997 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
38998 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
38999 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39000 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39001 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39004 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39005 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39009 },{}],
70:[function(require,module,exports){
39010 (function (Buffer){
39012 var keccakState = require('./keccak-state-unroll')
39014 function Keccak () {
39015 // much faster than `new Array(
50)`
39024 this.blockSize = null
39026 this.squeezing = false
39029 Keccak.prototype.initialize = function (rate, capacity) {
39030 for (var i =
0; i <
50; ++i) this.state[i] =
0
39031 this.blockSize = rate /
8
39033 this.squeezing = false
39036 Keccak.prototype.absorb = function (data) {
39037 for (var i =
0; i < data.length; ++i) {
39038 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39040 if (this.count === this.blockSize) {
39041 keccakState.p1600(this.state)
39047 Keccak.prototype.absorbLastFewBits = function (bits) {
39048 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39049 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39050 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39051 keccakState.p1600(this.state)
39053 this.squeezing = true
39056 Keccak.prototype.squeeze = function (length) {
39057 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39059 var output = Buffer.allocUnsafe(length)
39060 for (var i =
0; i < length; ++i) {
39061 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39063 if (this.count === this.blockSize) {
39064 keccakState.p1600(this.state)
39072 Keccak.prototype.copy = function (dest) {
39073 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39074 dest.blockSize = this.blockSize
39075 dest.count = this.count
39076 dest.squeezing = this.squeezing
39079 module.exports = Keccak
39081 }).call(this,require("buffer").Buffer)
39082 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39083 (function (Buffer){
39086 code.google.com/p/crypto-js
39087 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39088 code.google.com/p/crypto-js/wiki/License
39091 (c)
2012 by Cédric Mesnil. All rights reserved.
39093 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39095 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39096 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
39098 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39103 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39104 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39105 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39106 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39107 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39111 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39112 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39113 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39114 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39115 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39119 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39120 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39121 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39122 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39123 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39127 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39128 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39129 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39130 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39131 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39134 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39135 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39137 function bytesToWords (bytes) {
39139 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39140 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39145 function wordsToBytes (words) {
39147 for (var b =
0; b < words.length *
32; b +=
8) {
39148 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39153 function processBlock (H, M, offset) {
39155 for (var i =
0; i <
16; i++) {
39156 var offset_i = offset + i
39157 var M_offset_i = M[offset_i]
39161 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39162 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39166 // Working variables
39167 var al, bl, cl, dl, el
39168 var ar, br, cr, dr, er
39178 for (i =
0; i <
80; i +=
1) {
39179 t = (al + M[offset + zl[i]]) |
0
39181 t += f1(bl, cl, dl) + hl[
0]
39182 } else if (i <
32) {
39183 t += f2(bl, cl, dl) + hl[
1]
39184 } else if (i <
48) {
39185 t += f3(bl, cl, dl) + hl[
2]
39186 } else if (i <
64) {
39187 t += f4(bl, cl, dl) + hl[
3]
39188 } else {// if (i
<80) {
39189 t += f5(bl, cl, dl) + hl[
4]
39200 t = (ar + M[offset + zr[i]]) |
0
39202 t += f5(br, cr, dr) + hr[
0]
39203 } else if (i <
32) {
39204 t += f4(br, cr, dr) + hr[
1]
39205 } else if (i <
48) {
39206 t += f3(br, cr, dr) + hr[
2]
39207 } else if (i <
64) {
39208 t += f2(br, cr, dr) + hr[
3]
39209 } else {// if (i
<80) {
39210 t += f1(br, cr, dr) + hr[
4]
39223 // intermediate hash value
39224 t = (H[
1] + cl + dr) |
0
39225 H[
1] = (H[
2] + dl + er) |
0
39226 H[
2] = (H[
3] + el + ar) |
0
39227 H[
3] = (H[
4] + al + br) |
0
39228 H[
4] = (H[
0] + bl + cr) |
0
39232 function f1 (x, y, z) {
39233 return ((x) ^ (y) ^ (z))
39236 function f2 (x, y, z) {
39237 return (((x) & (y)) | ((~x) & (z)))
39240 function f3 (x, y, z) {
39241 return (((x) | (~(y))) ^ (z))
39244 function f4 (x, y, z) {
39245 return (((x) & (z)) | ((y) & (~(z))))
39248 function f5 (x, y, z) {
39249 return ((x) ^ ((y) | (~(z))))
39252 function rotl (x, n) {
39253 return (x << n) | (x
>>> (
32 - n))
39256 function ripemd160 (message) {
39257 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39259 if (typeof message === 'string') {
39260 message = new Buffer(message, 'utf8')
39263 var m = bytesToWords(message)
39265 var nBitsLeft = message.length *
8
39266 var nBitsTotal = message.length *
8
39269 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39270 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39271 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39272 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39275 for (var i =
0; i < m.length; i +=
16) {
39276 processBlock(H, m, i)
39280 for (i =
0; i <
5; i++) {
39285 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39286 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39289 var digestbytes = wordsToBytes(H)
39290 return new Buffer(digestbytes)
39293 module.exports = ripemd160
39295 }).call(this,require(
"buffer").Buffer)
39296 },{
"buffer":
5}],
72:[function(require,module,exports){
39297 (function (Buffer){
39298 const assert = require('assert')
39300 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39301 * This function takes in a data, convert it to buffer if not, and a length for recursion
39303 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39304 * @returns {Buffer} - returns buffer of encoded data
39306 exports.encode = function (input) {
39307 if (input instanceof Array) {
39309 for (var i =
0; i < input.length; i++) {
39310 output.push(exports.encode(input[i]))
39312 var buf = Buffer.concat(output)
39313 return Buffer.concat([encodeLength(buf.length,
192), buf])
39315 input = toBuffer(input)
39316 if (input.length ===
1 && input[
0] <
128) {
39319 return Buffer.concat([encodeLength(input.length,
128), input])
39324 function safeParseInt (v, base) {
39325 if (v.slice(
0,
2) === '
00') {
39326 throw (new Error('invalid RLP: extra zeros'))
39329 return parseInt(v, base)
39332 function encodeLength (len, offset) {
39334 return new Buffer([len + offset])
39336 var hexLength = intToHex(len)
39337 var lLength = hexLength.length /
2
39338 var firstByte = intToHex(offset +
55 + lLength)
39339 return new Buffer(firstByte + hexLength, 'hex')
39344 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39345 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39346 * @returns {Array} - returns decode Array of Buffers containg the original message
39348 exports.decode = function (input, stream) {
39349 if (!input || input.length ===
0) {
39350 return new Buffer([])
39353 input = toBuffer(input)
39354 var decoded = _decode(input)
39360 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39361 return decoded.data
39364 exports.getLength = function (input) {
39365 if (!input || input.length ===
0) {
39366 return new Buffer([])
39369 input = toBuffer(input)
39370 var firstByte = input[
0]
39371 if (firstByte <=
0x7f) {
39372 return input.length
39373 } else if (firstByte <=
0xb7) {
39374 return firstByte -
0x7f
39375 } else if (firstByte <=
0xbf) {
39376 return firstByte -
0xb6
39377 } else if (firstByte <=
0xf7) {
39378 // a list between
0-
55 bytes long
39379 return firstByte -
0xbf
39381 // a list over
55 bytes long
39382 var llength = firstByte -
0xf6
39383 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39384 return llength + length
39388 function _decode (input) {
39389 var length, llength, data, innerRemainder, d
39391 var firstByte = input[
0]
39393 if (firstByte <=
0x7f) {
39394 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39396 data: input.slice(
0,
1),
39397 remainder: input.slice(
1)
39399 } else if (firstByte <=
0xb7) {
39400 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39401 // The range of the first byte is [
0x80,
0xb7]
39402 length = firstByte -
0x7f
39404 // set
0x80 null to
0
39405 if (firstByte ===
0x80) {
39406 data = new Buffer([])
39408 data = input.slice(
1, length)
39411 if (length ===
2 && data[
0] <
0x80) {
39412 throw new Error('invalid rlp encoding: byte must be less
0x80')
39417 remainder: input.slice(length)
39419 } else if (firstByte <=
0xbf) {
39420 llength = firstByte -
0xb6
39421 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39422 data = input.slice(llength, length + llength)
39423 if (data.length < length) {
39424 throw (new Error('invalid RLP'))
39429 remainder: input.slice(length + llength)
39431 } else if (firstByte <=
0xf7) {
39432 // a list between
0-
55 bytes long
39433 length = firstByte -
0xbf
39434 innerRemainder = input.slice(
1, length)
39435 while (innerRemainder.length) {
39436 d = _decode(innerRemainder)
39437 decoded.push(d.data)
39438 innerRemainder = d.remainder
39443 remainder: input.slice(length)
39446 // a list over
55 bytes long
39447 llength = firstByte -
0xf6
39448 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39449 var totalLength = llength + length
39450 if (totalLength
> input.length) {
39451 throw new Error('invalid rlp: total length is larger than the data')
39454 innerRemainder = input.slice(llength, totalLength)
39455 if (innerRemainder.length ===
0) {
39456 throw new Error('invalid rlp, List has a invalid length')
39459 while (innerRemainder.length) {
39460 d = _decode(innerRemainder)
39461 decoded.push(d.data)
39462 innerRemainder = d.remainder
39466 remainder: input.slice(totalLength)
39471 function isHexPrefixed (str) {
39472 return str.slice(
0,
2) === '
0x'
39475 // Removes
0x from a given String
39476 function stripHexPrefix (str) {
39477 if (typeof str !== 'string') {
39480 return isHexPrefixed(str) ? str.slice(
2) : str
39483 function intToHex (i) {
39484 var hex = i.toString(
16)
39485 if (hex.length %
2) {
39492 function padToEven (a) {
39493 if (a.length %
2) a = '
0' + a
39497 function intToBuffer (i) {
39498 var hex = intToHex(i)
39499 return new Buffer(hex, 'hex')
39502 function toBuffer (v) {
39503 if (!Buffer.isBuffer(v)) {
39504 if (typeof v === 'string') {
39505 if (isHexPrefixed(v)) {
39506 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39510 } else if (typeof v === 'number') {
39516 } else if (v === null || v === undefined) {
39518 } else if (v.toArray) {
39519 // converts a BN to a Buffer
39520 v = new Buffer(v.toArray())
39522 throw new Error('invalid type')
39528 }).call(this,require("buffer").Buffer)
39529 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39531 module.exports = require('./lib')(require('./lib/elliptic'))
39533 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39534 (function (Buffer){
39536 var toString = Object.prototype.toString
39539 exports.isArray = function (value, message) {
39540 if (!Array.isArray(value)) throw TypeError(message)
39543 exports.isBoolean = function (value, message) {
39544 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39547 exports.isBuffer = function (value, message) {
39548 if (!Buffer.isBuffer(value)) throw TypeError(message)
39551 exports.isFunction = function (value, message) {
39552 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39555 exports.isNumber = function (value, message) {
39556 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39559 exports.isObject = function (value, message) {
39560 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39564 exports.isBufferLength = function (buffer, length, message) {
39565 if (buffer.length !== length) throw RangeError(message)
39568 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39569 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39572 exports.isLengthGTZero = function (value, message) {
39573 if (value.length ===
0) throw RangeError(message)
39576 exports.isNumberInInterval = function (number, x, y, message) {
39577 if (number <= x || number
>= y) throw RangeError(message)
39580 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39581 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39582 (function (Buffer){
39584 var bip66 = require('bip66')
39586 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39588 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39590 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39591 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39593 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39594 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39595 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39596 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39597 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39598 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39599 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39600 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39601 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39603 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39604 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39608 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39610 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39612 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39613 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39615 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39616 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39617 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39618 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39619 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39620 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39621 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39622 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39623 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39624 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39625 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39627 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39628 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39629 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39630 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39634 var ZERO_BUFFER_32 = new Buffer([
39635 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39636 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39639 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39640 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39641 privateKey.copy(result, compressed ?
8 :
9)
39642 publicKey.copy(result, compressed ?
181 :
214)
39646 exports.privateKeyImport = function (privateKey) {
39647 var length = privateKey.length
39651 if (length < index +
1 || privateKey[index] !==
0x30) return
39654 // sequence length constructor
39655 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39657 var lenb = privateKey[index] &
0x7f
39659 if (lenb <
1 || lenb
> 2) return
39660 if (length < index + lenb) return
39663 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39665 if (length < index + len) return
39667 // sequence element
0: version number (=
1)
39668 if (length < index +
3 ||
39669 privateKey[index] !==
0x02 ||
39670 privateKey[index +
1] !==
0x01 ||
39671 privateKey[index +
2] !==
0x01) {
39676 // sequence element
1: octet string, up to
32 bytes
39677 if (length < index +
2 ||
39678 privateKey[index] !==
0x04 ||
39679 privateKey[index +
1]
> 0x20 ||
39680 length < index +
2 + privateKey[index +
1]) {
39684 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39687 exports.signatureExport = function (sigObj) {
39688 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39689 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39691 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39692 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39694 return bip66.encode(r.slice(posR), s.slice(posS))
39697 exports.signatureImport = function (sig) {
39698 var r = new Buffer(ZERO_BUFFER_32)
39699 var s = new Buffer(ZERO_BUFFER_32)
39702 var sigObj = bip66.decode(sig)
39703 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39704 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39705 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39706 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39711 sigObj.r.copy(r,
32 - sigObj.r.length)
39712 sigObj.s.copy(s,
32 - sigObj.s.length)
39714 return { r: r, s: s }
39717 exports.signatureImportLax = function (sig) {
39718 var r = new Buffer(ZERO_BUFFER_32)
39719 var s = new Buffer(ZERO_BUFFER_32)
39721 var length = sig.length
39724 // sequence tag byte
39725 if (sig[index++] !==
0x30) return
39727 // sequence length byte
39728 var lenbyte = sig[index++]
39729 if (lenbyte &
0x80) {
39730 index += lenbyte -
0x80
39731 if (index
> length) return
39734 // sequence tag byte for r
39735 if (sig[index++] !==
0x02) return
39738 var rlen = sig[index++]
39740 lenbyte = rlen -
0x80
39741 if (index + lenbyte
> length) return
39742 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39743 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39745 if (rlen
> length - index) return
39749 // sequence tag byte for s
39750 if (sig[index++] !==
0x02) return
39753 var slen = sig[index++]
39755 lenbyte = slen -
0x80
39756 if (index + lenbyte
> length) return
39757 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39758 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39760 if (slen
> length - index) return
39764 // ignore leading zeros in r
39765 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39767 if (rlen
> 32) return
39768 var rvalue = sig.slice(rindex, rindex + rlen)
39769 rvalue.copy(r,
32 - rvalue.length)
39771 // ignore leading zeros in s
39772 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39774 if (slen
> 32) return
39775 var svalue = sig.slice(sindex, sindex + slen)
39776 svalue.copy(s,
32 - svalue.length)
39778 return { r: r, s: s }
39781 }).call(this,require(
"buffer").Buffer)
39782 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39783 (function (Buffer){
39785 var createHash = require('create-hash')
39786 var BN = require('bn.js')
39787 var EC = require('elliptic').ec
39789 var messages = require('../messages.json')
39791 var ec = new EC('secp256k1')
39792 var ecparams = ec.curve
39794 function loadCompressedPublicKey (first, xBuffer) {
39795 var x = new BN(xBuffer)
39798 if (x.cmp(ecparams.p)
>=
0) return null
39799 x = x.toRed(ecparams.red)
39801 // compute corresponding Y
39802 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39803 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39805 return ec.keyPair({ pub: { x: x, y: y } })
39808 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39809 var x = new BN(xBuffer)
39810 var y = new BN(yBuffer)
39813 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39815 x = x.toRed(ecparams.red)
39816 y = y.toRed(ecparams.red)
39819 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39822 var x3 = x.redSqr().redIMul(x)
39823 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39825 return ec.keyPair({ pub: { x: x, y: y } })
39828 function loadPublicKey (publicKey) {
39829 var first = publicKey[
0]
39833 if (publicKey.length !==
33) return null
39834 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39838 if (publicKey.length !==
65) return null
39839 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39845 exports.privateKeyVerify = function (privateKey) {
39846 var bn = new BN(privateKey)
39847 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39850 exports.privateKeyExport = function (privateKey, compressed) {
39851 var d = new BN(privateKey)
39852 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39854 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39857 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39858 var bn = new BN(tweak)
39859 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39861 bn.iadd(new BN(privateKey))
39862 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39863 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39865 return bn.toArrayLike(Buffer, 'be',
32)
39868 exports.privateKeyTweakMul = function (privateKey, tweak) {
39869 var bn = new BN(tweak)
39870 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39872 bn.imul(new BN(privateKey))
39873 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39875 return bn.toArrayLike(Buffer, 'be',
32)
39878 exports.publicKeyCreate = function (privateKey, compressed) {
39879 var d = new BN(privateKey)
39880 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39882 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39885 exports.publicKeyConvert = function (publicKey, compressed) {
39886 var pair = loadPublicKey(publicKey)
39887 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39889 return new Buffer(pair.getPublic(compressed, true))
39892 exports.publicKeyVerify = function (publicKey) {
39893 return loadPublicKey(publicKey) !== null
39896 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39897 var pair = loadPublicKey(publicKey)
39898 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39900 tweak = new BN(tweak)
39901 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39903 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39906 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39907 var pair = loadPublicKey(publicKey)
39908 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39910 tweak = new BN(tweak)
39911 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39913 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39916 exports.publicKeyCombine = function (publicKeys, compressed) {
39917 var pairs = new Array(publicKeys.length)
39918 for (var i =
0; i < publicKeys.length; ++i) {
39919 pairs[i] = loadPublicKey(publicKeys[i])
39920 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39923 var point = pairs[
0].pub
39924 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39925 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39927 return new Buffer(point.encode(true, compressed))
39930 exports.signatureNormalize = function (signature) {
39931 var r = new BN(signature.slice(
0,
32))
39932 var s = new BN(signature.slice(
32,
64))
39933 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39935 var result = new Buffer(signature)
39936 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39941 exports.signatureExport = function (signature) {
39942 var r = signature.slice(
0,
32)
39943 var s = signature.slice(
32,
64)
39944 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39946 return { r: r, s: s }
39949 exports.signatureImport = function (sigObj) {
39950 var r = new BN(sigObj.r)
39951 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39953 var s = new BN(sigObj.s)
39954 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39956 return Buffer.concat([
39957 r.toArrayLike(Buffer, 'be',
32),
39958 s.toArrayLike(Buffer, 'be',
32)
39962 exports.sign = function (message, privateKey, noncefn, data) {
39963 if (typeof noncefn === 'function') {
39964 var getNonce = noncefn
39965 noncefn = function (counter) {
39966 var nonce = getNonce(message, privateKey, null, data, counter)
39967 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
39969 return new BN(nonce)
39973 var d = new BN(privateKey)
39974 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
39976 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
39978 signature: Buffer.concat([
39979 result.r.toArrayLike(Buffer, 'be',
32),
39980 result.s.toArrayLike(Buffer, 'be',
32)
39982 recovery: result.recoveryParam
39986 exports.verify = function (message, signature, publicKey) {
39987 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39989 var sigr = new BN(sigObj.r)
39990 var sigs = new BN(sigObj.s)
39991 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39992 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
39994 var pair = loadPublicKey(publicKey)
39995 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39997 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40000 exports.recover = function (message, signature, recovery, compressed) {
40001 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40003 var sigr = new BN(sigObj.r)
40004 var sigs = new BN(sigObj.s)
40005 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40008 if (sigr.isZero() || sigs.isZero()) throw new Error()
40010 var point = ec.recoverPubKey(message, sigObj, recovery)
40011 return new Buffer(point.encode(true, compressed))
40013 throw new Error(messages.ECDSA_RECOVER_FAIL)
40017 exports.ecdh = function (publicKey, privateKey) {
40018 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40019 return createHash('sha256').update(shared).digest()
40022 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40023 var pair = loadPublicKey(publicKey)
40024 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40026 var scalar = new BN(privateKey)
40027 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40029 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40032 }).call(this,require("buffer").Buffer)
40033 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40035 var assert = require('./assert')
40036 var der = require('./der')
40037 var messages = require('./messages.json')
40039 function initCompressedValue (value, defaultValue) {
40040 if (value === undefined) return defaultValue
40042 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40046 module.exports = function (secp256k1) {
40048 privateKeyVerify: function (privateKey) {
40049 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40050 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40053 privateKeyExport: function (privateKey, compressed) {
40054 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40055 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40057 compressed = initCompressedValue(compressed, true)
40058 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40060 return der.privateKeyExport(privateKey, publicKey, compressed)
40063 privateKeyImport: function (privateKey) {
40064 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40066 privateKey = der.privateKeyImport(privateKey)
40067 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40069 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40072 privateKeyTweakAdd: function (privateKey, tweak) {
40073 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40074 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40076 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40077 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40079 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40082 privateKeyTweakMul: function (privateKey, tweak) {
40083 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40084 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40086 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40087 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40089 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40092 publicKeyCreate: function (privateKey, compressed) {
40093 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40094 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40096 compressed = initCompressedValue(compressed, true)
40098 return secp256k1.publicKeyCreate(privateKey, compressed)
40101 publicKeyConvert: function (publicKey, compressed) {
40102 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40103 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40105 compressed = initCompressedValue(compressed, true)
40107 return secp256k1.publicKeyConvert(publicKey, compressed)
40110 publicKeyVerify: function (publicKey) {
40111 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40112 return secp256k1.publicKeyVerify(publicKey)
40115 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40116 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40117 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40119 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40120 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40122 compressed = initCompressedValue(compressed, true)
40124 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40127 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40128 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40129 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40131 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40132 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40134 compressed = initCompressedValue(compressed, true)
40136 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40139 publicKeyCombine: function (publicKeys, compressed) {
40140 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40141 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40142 for (var i =
0; i < publicKeys.length; ++i) {
40143 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40144 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40147 compressed = initCompressedValue(compressed, true)
40149 return secp256k1.publicKeyCombine(publicKeys, compressed)
40152 signatureNormalize: function (signature) {
40153 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40154 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40156 return secp256k1.signatureNormalize(signature)
40159 signatureExport: function (signature) {
40160 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40161 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40163 var sigObj = secp256k1.signatureExport(signature)
40164 return der.signatureExport(sigObj)
40167 signatureImport: function (sig) {
40168 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40169 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40171 var sigObj = der.signatureImport(sig)
40172 if (sigObj) return secp256k1.signatureImport(sigObj)
40174 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40177 signatureImportLax: function (sig) {
40178 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40179 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40181 var sigObj = der.signatureImportLax(sig)
40182 if (sigObj) return secp256k1.signatureImport(sigObj)
40184 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40187 sign: function (message, privateKey, options) {
40188 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40189 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40191 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40192 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40196 if (options !== undefined) {
40197 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40199 if (options.data !== undefined) {
40200 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40201 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40202 data = options.data
40205 if (options.noncefn !== undefined) {
40206 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40207 noncefn = options.noncefn
40211 return secp256k1.sign(message, privateKey, noncefn, data)
40214 verify: function (message, signature, publicKey) {
40215 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40216 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40218 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40219 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40221 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40222 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40224 return secp256k1.verify(message, signature, publicKey)
40227 recover: function (message, signature, recovery, compressed) {
40228 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40229 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40231 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40232 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40234 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40235 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40237 compressed = initCompressedValue(compressed, true)
40239 return secp256k1.recover(message, signature, recovery, compressed)
40242 ecdh: function (publicKey, privateKey) {
40243 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40244 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40246 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40247 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40249 return secp256k1.ecdh(publicKey, privateKey)
40252 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40253 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40254 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40256 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40257 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40259 compressed = initCompressedValue(compressed, true)
40261 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40266 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40268 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40269 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40270 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40271 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40272 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40273 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40274 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40275 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40276 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40277 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40278 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40279 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40280 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40281 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40282 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40283 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40284 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40285 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40286 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40287 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40288 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40289 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40290 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40291 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40292 "MSG32_TYPE_INVALID": "message should be a Buffer",
40293 "MSG32_LENGTH_INVALID": "message length is invalid",
40294 "OPTIONS_TYPE_INVALID": "options should be an Object",
40295 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40296 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40297 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40298 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40299 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40300 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40301 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40304 },{}],
79:[function(require,module,exports){
40305 (function (Buffer){
40306 // prototype class for hash functions
40307 function Hash (blockSize, finalSize) {
40308 this._block = new Buffer(blockSize)
40309 this._finalSize = finalSize
40310 this._blockSize = blockSize
40315 Hash.prototype.update = function (data, enc) {
40316 if (typeof data === 'string') {
40317 enc = enc || 'utf8'
40318 data = new Buffer(data, enc)
40321 var l = this._len += data.length
40322 var s = this._s ||
0
40324 var buffer = this._block
40327 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40330 for (var i =
0; i < ch; i++) {
40331 buffer[(s % this._blockSize) + i] = data[i + f]
40337 if ((s % this._blockSize) ===
0) {
40338 this._update(buffer)
40346 Hash.prototype.digest = function (enc) {
40347 // Suppose the length of the message M, in bits, is l
40348 var l = this._len *
8
40350 // Append the bit
1 to the end of the message
40351 this._block[this._len % this._blockSize] =
0x80
40353 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40354 this._block.fill(
0, this._len % this._blockSize +
1)
40356 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40357 this._update(this._block)
40358 this._block.fill(
0)
40361 // to this append the block which is equal to the number l written in binary
40362 // TODO: handle case where l is
> Math.pow(
2,
29)
40363 this._block.writeInt32BE(l, this._blockSize -
4)
40365 var hash = this._update(this._block) || this._hash()
40367 return enc ? hash.toString(enc) : hash
40370 Hash.prototype._update = function () {
40371 throw new Error('_update must be implemented by subclass')
40374 module.exports = Hash
40376 }).call(this,require("buffer").Buffer)
40377 },{"buffer":
5}],
80:[function(require,module,exports){
40378 var exports = module.exports = function SHA (algorithm) {
40379 algorithm = algorithm.toLowerCase()
40381 var Algorithm = exports[algorithm]
40382 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40384 return new Algorithm()
40387 exports.sha = require('./sha')
40388 exports.sha1 = require('./sha1')
40389 exports.sha224 = require('./sha224')
40390 exports.sha256 = require('./sha256')
40391 exports.sha384 = require('./sha384')
40392 exports.sha512 = require('./sha512')
40394 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40395 (function (Buffer){
40397 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40398 * in FIPS PUB
180-
1
40399 * This source code is derived from sha1.js of the same repository.
40400 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40401 * operation was added.
40404 var inherits = require('inherits')
40405 var Hash = require('./hash')
40408 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40411 var W = new Array(
80)
40417 Hash.call(this,
64,
56)
40420 inherits(Sha, Hash)
40422 Sha.prototype.init = function () {
40423 this._a =
0x67452301
40424 this._b =
0xefcdab89
40425 this._c =
0x98badcfe
40426 this._d =
0x10325476
40427 this._e =
0xc3d2e1f0
40432 function rotl5 (num) {
40433 return (num <<
5) | (num
>>> 27)
40436 function rotl30 (num) {
40437 return (num <<
30) | (num
>>> 2)
40440 function ft (s, b, c, d) {
40441 if (s ===
0) return (b & c) | ((~b) & d)
40442 if (s ===
2) return (b & c) | (b & d) | (c & d)
40446 Sha.prototype._update = function (M) {
40449 var a = this._a |
0
40450 var b = this._b |
0
40451 var c = this._c |
0
40452 var d = this._d |
0
40453 var e = this._e |
0
40455 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40456 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40458 for (var j =
0; j <
80; ++j) {
40460 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40469 this._a = (a + this._a) |
0
40470 this._b = (b + this._b) |
0
40471 this._c = (c + this._c) |
0
40472 this._d = (d + this._d) |
0
40473 this._e = (e + this._e) |
0
40476 Sha.prototype._hash = function () {
40477 var H = new Buffer(
20)
40479 H.writeInt32BE(this._a |
0,
0)
40480 H.writeInt32BE(this._b |
0,
4)
40481 H.writeInt32BE(this._c |
0,
8)
40482 H.writeInt32BE(this._d |
0,
12)
40483 H.writeInt32BE(this._e |
0,
16)
40488 module.exports = Sha
40490 }).call(this,require(
"buffer").Buffer)
40491 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40492 (function (Buffer){
40494 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40495 * in FIPS PUB
180-
1
40496 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40497 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40498 * Distributed under the BSD License
40499 * See http://pajhome.org.uk/crypt/md5 for details.
40502 var inherits = require('inherits')
40503 var Hash = require('./hash')
40506 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40509 var W = new Array(
80)
40515 Hash.call(this,
64,
56)
40518 inherits(Sha1, Hash)
40520 Sha1.prototype.init = function () {
40521 this._a =
0x67452301
40522 this._b =
0xefcdab89
40523 this._c =
0x98badcfe
40524 this._d =
0x10325476
40525 this._e =
0xc3d2e1f0
40530 function rotl1 (num) {
40531 return (num <<
1) | (num
>>> 31)
40534 function rotl5 (num) {
40535 return (num <<
5) | (num
>>> 27)
40538 function rotl30 (num) {
40539 return (num <<
30) | (num
>>> 2)
40542 function ft (s, b, c, d) {
40543 if (s ===
0) return (b & c) | ((~b) & d)
40544 if (s ===
2) return (b & c) | (b & d) | (c & d)
40548 Sha1.prototype._update = function (M) {
40551 var a = this._a |
0
40552 var b = this._b |
0
40553 var c = this._c |
0
40554 var d = this._d |
0
40555 var e = this._e |
0
40557 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40558 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40560 for (var j =
0; j <
80; ++j) {
40562 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40571 this._a = (a + this._a) |
0
40572 this._b = (b + this._b) |
0
40573 this._c = (c + this._c) |
0
40574 this._d = (d + this._d) |
0
40575 this._e = (e + this._e) |
0
40578 Sha1.prototype._hash = function () {
40579 var H = new Buffer(
20)
40581 H.writeInt32BE(this._a |
0,
0)
40582 H.writeInt32BE(this._b |
0,
4)
40583 H.writeInt32BE(this._c |
0,
8)
40584 H.writeInt32BE(this._d |
0,
12)
40585 H.writeInt32BE(this._e |
0,
16)
40590 module.exports = Sha1
40592 }).call(this,require(
"buffer").Buffer)
40593 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40594 (function (Buffer){
40596 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40598 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40599 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40603 var inherits = require('inherits')
40604 var Sha256 = require('./sha256')
40605 var Hash = require('./hash')
40607 var W = new Array(
64)
40609 function Sha224 () {
40612 this._w = W // new Array(
64)
40614 Hash.call(this,
64,
56)
40617 inherits(Sha224, Sha256)
40619 Sha224.prototype.init = function () {
40620 this._a =
0xc1059ed8
40621 this._b =
0x367cd507
40622 this._c =
0x3070dd17
40623 this._d =
0xf70e5939
40624 this._e =
0xffc00b31
40625 this._f =
0x68581511
40626 this._g =
0x64f98fa7
40627 this._h =
0xbefa4fa4
40632 Sha224.prototype._hash = function () {
40633 var H = new Buffer(
28)
40635 H.writeInt32BE(this._a,
0)
40636 H.writeInt32BE(this._b,
4)
40637 H.writeInt32BE(this._c,
8)
40638 H.writeInt32BE(this._d,
12)
40639 H.writeInt32BE(this._e,
16)
40640 H.writeInt32BE(this._f,
20)
40641 H.writeInt32BE(this._g,
24)
40646 module.exports = Sha224
40648 }).call(this,require(
"buffer").Buffer)
40649 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40650 (function (Buffer){
40652 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40654 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40655 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40659 var inherits = require('inherits')
40660 var Hash = require('./hash')
40663 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40664 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40665 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40666 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40667 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40668 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40669 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40670 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40671 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40672 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40673 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40674 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40675 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40676 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40677 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40678 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40681 var W = new Array(
64)
40683 function Sha256 () {
40686 this._w = W // new Array(
64)
40688 Hash.call(this,
64,
56)
40691 inherits(Sha256, Hash)
40693 Sha256.prototype.init = function () {
40694 this._a =
0x6a09e667
40695 this._b =
0xbb67ae85
40696 this._c =
0x3c6ef372
40697 this._d =
0xa54ff53a
40698 this._e =
0x510e527f
40699 this._f =
0x9b05688c
40700 this._g =
0x1f83d9ab
40701 this._h =
0x5be0cd19
40706 function ch (x, y, z) {
40707 return z ^ (x & (y ^ z))
40710 function maj (x, y, z) {
40711 return (x & y) | (z & (x | y))
40714 function sigma0 (x) {
40715 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40718 function sigma1 (x) {
40719 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40722 function gamma0 (x) {
40723 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40726 function gamma1 (x) {
40727 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40730 Sha256.prototype._update = function (M) {
40733 var a = this._a |
0
40734 var b = this._b |
0
40735 var c = this._c |
0
40736 var d = this._d |
0
40737 var e = this._e |
0
40738 var f = this._f |
0
40739 var g = this._g |
0
40740 var h = this._h |
0
40742 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40743 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40745 for (var j =
0; j <
64; ++j) {
40746 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40747 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40759 this._a = (a + this._a) |
0
40760 this._b = (b + this._b) |
0
40761 this._c = (c + this._c) |
0
40762 this._d = (d + this._d) |
0
40763 this._e = (e + this._e) |
0
40764 this._f = (f + this._f) |
0
40765 this._g = (g + this._g) |
0
40766 this._h = (h + this._h) |
0
40769 Sha256.prototype._hash = function () {
40770 var H = new Buffer(
32)
40772 H.writeInt32BE(this._a,
0)
40773 H.writeInt32BE(this._b,
4)
40774 H.writeInt32BE(this._c,
8)
40775 H.writeInt32BE(this._d,
12)
40776 H.writeInt32BE(this._e,
16)
40777 H.writeInt32BE(this._f,
20)
40778 H.writeInt32BE(this._g,
24)
40779 H.writeInt32BE(this._h,
28)
40784 module.exports = Sha256
40786 }).call(this,require(
"buffer").Buffer)
40787 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40788 (function (Buffer){
40789 var inherits = require('inherits')
40790 var SHA512 = require('./sha512')
40791 var Hash = require('./hash')
40793 var W = new Array(
160)
40795 function Sha384 () {
40799 Hash.call(this,
128,
112)
40802 inherits(Sha384, SHA512)
40804 Sha384.prototype.init = function () {
40805 this._ah =
0xcbbb9d5d
40806 this._bh =
0x629a292a
40807 this._ch =
0x9159015a
40808 this._dh =
0x152fecd8
40809 this._eh =
0x67332667
40810 this._fh =
0x8eb44a87
40811 this._gh =
0xdb0c2e0d
40812 this._hh =
0x47b5481d
40814 this._al =
0xc1059ed8
40815 this._bl =
0x367cd507
40816 this._cl =
0x3070dd17
40817 this._dl =
0xf70e5939
40818 this._el =
0xffc00b31
40819 this._fl =
0x68581511
40820 this._gl =
0x64f98fa7
40821 this._hl =
0xbefa4fa4
40826 Sha384.prototype._hash = function () {
40827 var H = new Buffer(
48)
40829 function writeInt64BE (h, l, offset) {
40830 H.writeInt32BE(h, offset)
40831 H.writeInt32BE(l, offset +
4)
40834 writeInt64BE(this._ah, this._al,
0)
40835 writeInt64BE(this._bh, this._bl,
8)
40836 writeInt64BE(this._ch, this._cl,
16)
40837 writeInt64BE(this._dh, this._dl,
24)
40838 writeInt64BE(this._eh, this._el,
32)
40839 writeInt64BE(this._fh, this._fl,
40)
40844 module.exports = Sha384
40846 }).call(this,require(
"buffer").Buffer)
40847 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40848 (function (Buffer){
40849 var inherits = require('inherits')
40850 var Hash = require('./hash')
40853 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40854 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40855 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40856 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40857 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40858 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40859 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40860 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40861 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40862 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40863 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40864 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40865 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40866 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40867 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40868 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40869 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40870 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40871 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40872 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40873 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40874 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40875 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40876 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40877 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40878 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40879 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40880 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40881 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40882 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40883 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40884 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40885 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40886 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40887 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40888 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40889 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40890 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40891 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40892 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40895 var W = new Array(
160)
40897 function Sha512 () {
40901 Hash.call(this,
128,
112)
40904 inherits(Sha512, Hash)
40906 Sha512.prototype.init = function () {
40907 this._ah =
0x6a09e667
40908 this._bh =
0xbb67ae85
40909 this._ch =
0x3c6ef372
40910 this._dh =
0xa54ff53a
40911 this._eh =
0x510e527f
40912 this._fh =
0x9b05688c
40913 this._gh =
0x1f83d9ab
40914 this._hh =
0x5be0cd19
40916 this._al =
0xf3bcc908
40917 this._bl =
0x84caa73b
40918 this._cl =
0xfe94f82b
40919 this._dl =
0x5f1d36f1
40920 this._el =
0xade682d1
40921 this._fl =
0x2b3e6c1f
40922 this._gl =
0xfb41bd6b
40923 this._hl =
0x137e2179
40928 function Ch (x, y, z) {
40929 return z ^ (x & (y ^ z))
40932 function maj (x, y, z) {
40933 return (x & y) | (z & (x | y))
40936 function sigma0 (x, xl) {
40937 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40940 function sigma1 (x, xl) {
40941 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40944 function Gamma0 (x, xl) {
40945 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40948 function Gamma0l (x, xl) {
40949 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40952 function Gamma1 (x, xl) {
40953 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40956 function Gamma1l (x, xl) {
40957 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40960 function getCarry (a, b) {
40961 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
40964 Sha512.prototype._update = function (M) {
40967 var ah = this._ah |
0
40968 var bh = this._bh |
0
40969 var ch = this._ch |
0
40970 var dh = this._dh |
0
40971 var eh = this._eh |
0
40972 var fh = this._fh |
0
40973 var gh = this._gh |
0
40974 var hh = this._hh |
0
40976 var al = this._al |
0
40977 var bl = this._bl |
0
40978 var cl = this._cl |
0
40979 var dl = this._dl |
0
40980 var el = this._el |
0
40981 var fl = this._fl |
0
40982 var gl = this._gl |
0
40983 var hl = this._hl |
0
40985 for (var i =
0; i <
32; i +=
2) {
40986 W[i] = M.readInt32BE(i *
4)
40987 W[i +
1] = M.readInt32BE(i *
4 +
4)
40989 for (; i <
160; i +=
2) {
40990 var xh = W[i -
15 *
2]
40991 var xl = W[i -
15 *
2 +
1]
40992 var gamma0 = Gamma0(xh, xl)
40993 var gamma0l = Gamma0l(xl, xh)
40996 xl = W[i -
2 *
2 +
1]
40997 var gamma1 = Gamma1(xh, xl)
40998 var gamma1l = Gamma1l(xl, xh)
41000 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41001 var Wi7h = W[i -
7 *
2]
41002 var Wi7l = W[i -
7 *
2 +
1]
41004 var Wi16h = W[i -
16 *
2]
41005 var Wi16l = W[i -
16 *
2 +
1]
41007 var Wil = (gamma0l + Wi7l) |
0
41008 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41009 Wil = (Wil + gamma1l) |
0
41010 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41011 Wil = (Wil + Wi16l) |
0
41012 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41018 for (var j =
0; j <
160; j +=
2) {
41022 var majh = maj(ah, bh, ch)
41023 var majl = maj(al, bl, cl)
41025 var sigma0h = sigma0(ah, al)
41026 var sigma0l = sigma0(al, ah)
41027 var sigma1h = sigma1(eh, el)
41028 var sigma1l = sigma1(el, eh)
41030 // t1 = h + sigma1 + ch + K[j] + W[j]
41034 var chh = Ch(eh, fh, gh)
41035 var chl = Ch(el, fl, gl)
41037 var t1l = (hl + sigma1l) |
0
41038 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41039 t1l = (t1l + chl) |
0
41040 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41041 t1l = (t1l + Kil) |
0
41042 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41043 t1l = (t1l + Wil) |
0
41044 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41046 // t2 = sigma0 + maj
41047 var t2l = (sigma0l + majl) |
0
41048 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41056 el = (dl + t1l) |
0
41057 eh = (dh + t1h + getCarry(el, dl)) |
0
41064 al = (t1l + t2l) |
0
41065 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41068 this._al = (this._al + al) |
0
41069 this._bl = (this._bl + bl) |
0
41070 this._cl = (this._cl + cl) |
0
41071 this._dl = (this._dl + dl) |
0
41072 this._el = (this._el + el) |
0
41073 this._fl = (this._fl + fl) |
0
41074 this._gl = (this._gl + gl) |
0
41075 this._hl = (this._hl + hl) |
0
41077 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41078 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41079 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41080 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41081 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41082 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41083 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41084 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41087 Sha512.prototype._hash = function () {
41088 var H = new Buffer(
64)
41090 function writeInt64BE (h, l, offset) {
41091 H.writeInt32BE(h, offset)
41092 H.writeInt32BE(l, offset +
4)
41095 writeInt64BE(this._ah, this._al,
0)
41096 writeInt64BE(this._bh, this._bl,
8)
41097 writeInt64BE(this._ch, this._cl,
16)
41098 writeInt64BE(this._dh, this._dl,
24)
41099 writeInt64BE(this._eh, this._el,
32)
41100 writeInt64BE(this._fh, this._fl,
40)
41101 writeInt64BE(this._gh, this._gl,
48)
41102 writeInt64BE(this._hh, this._hl,
56)
41107 module.exports = Sha512
41109 }).call(this,require(
"buffer").Buffer)
41110 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41111 var isHexPrefixed = require('is-hex-prefixed');
41114 * Removes '
0x' from a given `String` is present
41115 * @param {String} str the string value
41116 * @return {String|Optional} a string by pass if necessary
41118 module.exports = function stripHexPrefix(str) {
41119 if (typeof str !== 'string') {
41123 return isHexPrefixed(str) ? str.slice(
2) : str;
41126 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41128 <script>function convertRippleAdrr(address) {
41129 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41130 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41134 function convertRipplePriv(priv) {
41135 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41139 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41143 /** @fileOverview Javascript cryptography implementation.
41145 * Crush to remove comments, shorten variable names and
41146 * generally reduce transmission size.
41148 * @author Emily Stark
41149 * @author Mike Hamburg
41150 * @author Dan Boneh
41154 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41155 /*global document, window, escape, unescape, module, require, Uint32Array */
41157 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41159 /** @namespace Symmetric ciphers. */
41162 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41165 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41168 /** @namespace Block cipher modes of operation. */
41171 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41175 * @namespace Bit array encoders and decoders.
41178 * The members of this namespace are functions which translate between
41179 * SJCL's bitArrays and other objects (usually strings). Because it
41180 * isn't always clear which direction is encoding and which is decoding,
41181 * the method names are "fromBits" and "toBits".
41185 /** @namespace Exceptions. */
41187 /** @constructor Ciphertext is corrupt. */
41188 corrupt: function(message) {
41189 this.toString = function() { return "CORRUPT: "+this.message; };
41190 this.message = message;
41193 /** @constructor Invalid parameter. */
41194 invalid: function(message) {
41195 this.toString = function() { return "INVALID: "+this.message; };
41196 this.message = message;
41199 /** @constructor Bug or missing feature in SJCL. @constructor */
41200 bug: function(message) {
41201 this.toString = function() { return "BUG: "+this.message; };
41202 this.message = message;
41205 /** @constructor Something isn't ready. */
41206 notReady: function(message) {
41207 this.toString = function() { return "NOT READY: "+this.message; };
41208 this.message = message;
41213 if(typeof module !== 'undefined' && module.exports){
41214 module.exports = sjcl;
41216 if (typeof define === "function") {
41217 define([], function () {
41225 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41227 * @author Emily Stark
41228 * @author Mike Hamburg
41229 * @author Dan Boneh
41232 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41236 * These objects are the currency accepted by SJCL's crypto functions.
41240 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41241 * but many of them can take arguments that are not a multiple of
4 bytes.
41242 * This library encodes arrays of bits (whose size need not be a multiple of
8
41243 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41244 * array of words,
32 bits at a time. Since the words are double-precision
41245 * floating point numbers, they fit some extra data. We use this (in a private,
41246 * possibly-changing manner) to encode the number of bits actually present
41247 * in the last word of the array.
41251 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41252 * to ciphers like AES which want arrays of words.
41257 * Array slices in units of bits.
41258 * @param {bitArray} a The array to slice.
41259 * @param {Number} bstart The offset to the start of the slice, in bits.
41260 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41261 * slice until the end of the array.
41262 * @return {bitArray} The requested slice.
41264 bitSlice: function (a, bstart, bend) {
41265 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41266 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41270 * Extract a number packed into a bit array.
41271 * @param {bitArray} a The array to slice.
41272 * @param {Number} bstart The offset to the start of the slice, in bits.
41273 * @param {Number} length The length of the number to extract.
41274 * @return {Number} The requested slice.
41276 extract: function(a, bstart, blength) {
41277 // FIXME: this Math.floor is not necessary at all, but for some reason
41278 // seems to suppress a bug in the Chromium JIT.
41279 var x, sh = Math.floor((-bstart-blength) &
31);
41280 if ((bstart + blength -
1 ^ bstart) & -
32) {
41281 // it crosses a boundary
41282 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41284 // within a single word
41285 x = a[bstart/
32|
0]
>>> sh;
41287 return x & ((
1<
<blength) -
1);
41291 * Concatenate two bit arrays.
41292 * @param {bitArray} a1 The first array.
41293 * @param {bitArray} a2 The second array.
41294 * @return {bitArray} The concatenation of a1 and a2.
41296 concat: function (a1, a2) {
41297 if (a1.length ===
0 || a2.length ===
0) {
41298 return a1.concat(a2);
41301 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41302 if (shift ===
32) {
41303 return a1.concat(a2);
41305 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41310 * Find the length of an array of bits.
41311 * @param {bitArray} a The array.
41312 * @return {Number} The length of a, in bits.
41314 bitLength: function (a) {
41315 var l = a.length, x;
41316 if (l ===
0) { return
0; }
41318 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41322 * Truncate an array.
41323 * @param {bitArray} a The array.
41324 * @param {Number} len The length to truncate to, in bits.
41325 * @return {bitArray} A new array, truncated to len bits.
41327 clamp: function (a, len) {
41328 if (a.length *
32 < len) { return a; }
41329 a = a.slice(
0, Math.ceil(len /
32));
41332 if (l
> 0 && len) {
41333 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41339 * Make a partial word for a bit array.
41340 * @param {Number} len The number of bits in the word.
41341 * @param {Number} x The bits.
41342 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41343 * @return {Number} The partial word.
41345 partial: function (len, x, _end) {
41346 if (len ===
32) { return x; }
41347 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41351 * Get the number of bits used by a partial word.
41352 * @param {Number} x The partial word.
41353 * @return {Number} The number of bits used by the partial word.
41355 getPartial: function (x) {
41356 return Math.round(x/
0x10000000000) ||
32;
41360 * Compare two arrays for equality in a predictable amount of time.
41361 * @param {bitArray} a The first array.
41362 * @param {bitArray} b The second array.
41363 * @return {boolean} true if a == b; false otherwise.
41365 equal: function (a, b) {
41366 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41370 for (i=
0; i
<a.length; i++) {
41376 /** Shift an array right.
41377 * @param {bitArray} a The array to shift.
41378 * @param {Number} shift The number of bits to shift.
41379 * @param {Number} [carry=
0] A byte to carry in
41380 * @param {bitArray} [out=[]] An array to prepend to the output.
41383 _shiftRight: function (a, shift, carry, out) {
41384 var i, last2=
0, shift2;
41385 if (out === undefined) { out = []; }
41387 for (; shift
>=
32; shift -=
32) {
41392 return out.concat(a);
41395 for (i=
0; i
<a.length; i++) {
41396 out.push(carry | a[i]
>>>shift);
41397 carry = a[i] << (
32-shift);
41399 last2 = a.length ? a[a.length-
1] :
0;
41400 shift2 = sjcl.bitArray.getPartial(last2);
41401 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41405 /** xor a block of
4 words together.
41408 _xor4: function(x,y) {
41409 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41412 /** byteswap a word array inplace.
41413 * (does not handle partial words)
41414 * @param {sjcl.bitArray} a word array
41415 * @return {sjcl.bitArray} byteswapped array
41417 byteswapM: function(a) {
41418 var i, v, m =
0xff00;
41419 for (i =
0; i < a.length; ++i) {
41421 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41428 //// codecString.js
41430 /** @fileOverview Bit array codec implementations.
41432 * @author Emily Stark
41433 * @author Mike Hamburg
41434 * @author Dan Boneh
41437 /** @namespace UTF-
8 strings */
41438 sjcl.codec.utf8String = {
41439 /** Convert from a bitArray to a UTF-
8 string. */
41440 fromBits: function (arr) {
41441 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41442 for (i=
0; i
<bl/
8; i++) {
41446 out += String.fromCharCode(tmp
>>> 24);
41449 return decodeURIComponent(escape(out));
41452 /** Convert from a UTF-
8 string to a bitArray. */
41453 toBits: function (str) {
41454 str = unescape(encodeURIComponent(str));
41455 var out = [], i, tmp=
0;
41456 for (i=
0; i
<str.length; i++) {
41457 tmp = tmp <<
8 | str.charCodeAt(i);
41464 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41473 /** @fileOverview Bit array codec implementations.
41475 * @author Emily Stark
41476 * @author Mike Hamburg
41477 * @author Dan Boneh
41480 /** @namespace Hexadecimal */
41482 /** Convert from a bitArray to a hex string. */
41483 fromBits: function (arr) {
41485 for (i=
0; i
<arr.length; i++) {
41486 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41488 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41490 /** Convert from a hex string to a bitArray. */
41491 toBits: function (str) {
41492 var i, out=[], len;
41493 str = str.replace(/\s|
0x/g,
"");
41495 str = str +
"00000000";
41496 for (i=
0; i
<str.length; i+=
8) {
41497 out.push(parseInt(str.substr(i,
8),
16)^
0);
41499 return sjcl.bitArray.clamp(out, len*
4);
41506 /** @fileOverview Javascript SHA-
512 implementation.
41508 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41509 * SJCL by Stefan Thomas.
41511 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41512 * Released with New BSD License
41514 * @author Emily Stark
41515 * @author Mike Hamburg
41516 * @author Dan Boneh
41517 * @author Jeff Mott
41518 * @author Stefan Thomas
41522 * Context for a SHA-
512 operation in progress.
41524 * @class Secure Hash Algorithm,
512 bits.
41526 sjcl.hash.sha512 = function (hash) {
41527 if (!this._key[
0]) { this._precompute(); }
41529 this._h = hash._h.slice(
0);
41530 this._buffer = hash._buffer.slice(
0);
41531 this._length = hash._length;
41538 * Hash a string or an array of words.
41540 * @param {bitArray|String} data the data to hash.
41541 * @return {bitArray} The hash value, an array of
16 big-endian words.
41543 sjcl.hash.sha512.hash = function (data) {
41544 return (new sjcl.hash.sha512()).update(data).finalize();
41547 sjcl.hash.sha512.prototype = {
41549 * The hash's block size, in bits.
41555 * Reset the hash state.
41558 reset:function () {
41559 this._h = this._init.slice(
0);
41566 * Input several words to the hash.
41567 * @param {bitArray|String} data the data to hash.
41570 update: function (data) {
41571 if (typeof data ===
"string") {
41572 data = sjcl.codec.utf8String.toBits(data);
41574 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41576 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41577 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41578 this._block(b.splice(
0,
32));
41584 * Complete hashing and output the hash value.
41585 * @return {bitArray} The hash value, an array of
16 big-endian words.
41587 finalize:function () {
41588 var i, b = this._buffer, h = this._h;
41590 // Round out and push the buffer
41591 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41593 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41594 for (i = b.length +
4; i &
31; i++) {
41598 // append the length
41601 b.push(Math.floor(this._length /
0x100000000));
41602 b.push(this._length |
0);
41605 this._block(b.splice(
0,
32));
41613 * The SHA-
512 initialization vector, to be precomputed.
41619 * Least significant
24 bits of SHA512 initialization values.
41621 * Javascript only has
53 bits of precision, so we compute the
40 most
41622 * significant bits and add the remaining
24 bits as constants.
41626 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41630 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41631 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41635 * The SHA-
512 hash key, to be precomputed.
41641 * Least significant
24 bits of SHA512 key values.
41645 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41646 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41647 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41648 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41649 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41650 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41651 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41652 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41653 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41654 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41658 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41659 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41660 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41661 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41662 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41663 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41664 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41665 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41666 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41667 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41668 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41669 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41670 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41671 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41672 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41673 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41674 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41675 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41676 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41677 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41681 * Function to precompute _init and _key.
41684 _precompute: function () {
41685 // XXX: This code is for precomputing the SHA256 constants, change for
41686 // SHA512 and re-enable.
41687 var i =
0, prime =
2, factor;
41689 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41690 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41692 outer: for (; i
<80; prime++) {
41693 for (factor=
2; factor*factor <= prime; factor++) {
41694 if (prime % factor ===
0) {
41701 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41702 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41704 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41705 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41711 * Perform one cycle of SHA-
512.
41712 * @param {bitArray} words one block of words.
41715 _block:function (words) {
41717 w = words.slice(
0),
41720 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41721 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41722 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41723 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41725 // Working variables
41726 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41727 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41728 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41729 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41731 for (i=
0; i
<80; i++) {
41732 // load up the input word for this round
41735 wrl = w[i *
2 +
1];
41738 var gamma0xh = w[(i-
15) *
2];
41739 var gamma0xl = w[(i-
15) *
2 +
1];
41741 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41742 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41745 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41746 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41747 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41750 var gamma1xh = w[(i-
2) *
2];
41751 var gamma1xl = w[(i-
2) *
2 +
1];
41753 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41754 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41757 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41758 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41759 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41762 var wr7h = w[(i-
7) *
2];
41763 var wr7l = w[(i-
7) *
2 +
1];
41765 var wr16h = w[(i-
16) *
2];
41766 var wr16l = w[(i-
16) *
2 +
1];
41768 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41769 wrl = gamma0l + wr7l;
41770 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41772 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41774 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41778 w[i*
2 +
1] = wrl |=
0;
41781 var chh = (eh & fh) ^ (~eh & gh);
41782 var chl = (el & fl) ^ (~el & gl);
41785 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41786 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41789 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41790 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41793 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41794 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41798 var krl = k[i*
2+
1];
41800 // t1 = h + sigma1 + ch + K(round) + W(round)
41801 var t1l = hl + sigma1l;
41802 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41804 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41806 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41807 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41808 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41810 // t2 = sigma0 + maj
41811 var t2l = sigma0l + majl;
41812 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41814 // Update working variables
41821 el = (dl + t1l) |
0;
41822 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41829 al = (t1l + t2l) |
0;
41830 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41833 // Intermediate hash
41834 h0l = h[
1] = (h0l + al) |
0;
41835 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41836 h1l = h[
3] = (h1l + bl) |
0;
41837 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41838 h2l = h[
5] = (h2l + cl) |
0;
41839 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41840 h3l = h[
7] = (h3l + dl) |
0;
41841 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41842 h4l = h[
9] = (h4l + el) |
0;
41843 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41844 h5l = h[
11] = (h5l + fl) |
0;
41845 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41846 h6l = h[
13] = (h6l + gl) |
0;
41847 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41848 h7l = h[
15] = (h7l + hl) |
0;
41849 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41856 /** @fileOverview HMAC implementation.
41858 * @author Emily Stark
41859 * @author Mike Hamburg
41860 * @author Dan Boneh
41863 /** HMAC with the specified hash function.
41865 * @param {bitArray} key the key for HMAC.
41866 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41868 sjcl.misc.hmac = function (key, Hash) {
41869 this._hash = Hash = Hash || sjcl.hash.sha256;
41870 var exKey = [[],[]], i,
41871 bs = Hash.prototype.blockSize /
32;
41872 this._baseHash = [new Hash(), new Hash()];
41874 if (key.length
> bs) {
41875 key = Hash.hash(key);
41878 for (i=
0; i
<bs; i++) {
41879 exKey[
0][i] = key[i]^
0x36363636;
41880 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41883 this._baseHash[
0].update(exKey[
0]);
41884 this._baseHash[
1].update(exKey[
1]);
41885 this._resultHash = new Hash(this._baseHash[
0]);
41888 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41889 * @param {bitArray|String} data The data to mac.
41891 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41892 if (!this._updated) {
41894 return this.digest(data);
41896 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41900 sjcl.misc.hmac.prototype.reset = function () {
41901 this._resultHash = new this._hash(this._baseHash[
0]);
41902 this._updated = false;
41905 sjcl.misc.hmac.prototype.update = function (data) {
41906 this._updated = true;
41907 this._resultHash.update(data);
41910 sjcl.misc.hmac.prototype.digest = function () {
41911 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41922 /** @fileOverview Password-based key-derivation function, version
2.0.
41924 * @author Emily Stark
41925 * @author Mike Hamburg
41926 * @author Dan Boneh
41929 /** Password-Based Key-Derivation Function, version
2.0.
41931 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41933 * This is the method specified by RSA's PKCS #
5 standard.
41935 * @param {bitArray|String} password The password.
41936 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41937 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41938 * @param {Number} [length] The length of the derived key. Defaults to the
41939 output size of the hash function.
41940 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41941 * @return {bitArray} the derived key.
41943 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41944 count = count ||
1000;
41946 if (length <
0 || count <
0) {
41947 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41950 if (typeof password ===
"string") {
41951 password = sjcl.codec.utf8String.toBits(password);
41954 if (typeof salt ===
"string") {
41955 salt = sjcl.codec.utf8String.toBits(salt);
41958 Prff = Prff || sjcl.misc.hmac;
41960 var prf = new Prff(password),
41961 u, ui, i, j, k, out = [], b = sjcl.bitArray;
41963 for (k =
1;
32 * out.length < (length ||
1); k++) {
41964 u = ui = prf.encrypt(b.concat(salt,[k]));
41966 for (i=
1; i
<count; i++) {
41967 ui = prf.encrypt(ui);
41968 for (j=
0; j
<ui.length; j++) {
41973 out = out.concat(u);
41976 if (length) { out = b.clamp(out, length); }
41984 /** @fileOverview Javascript SHA-
256 implementation.
41986 * An older version of this implementation is available in the public
41987 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
41988 * Stanford University
2008-
2010 and BSD-licensed for liability
41991 * Special thanks to Aldo Cortesi for pointing out several bugs in
41994 * @author Emily Stark
41995 * @author Mike Hamburg
41996 * @author Dan Boneh
42000 * Context for a SHA-
256 operation in progress.
42002 * @class Secure Hash Algorithm,
256 bits.
42004 sjcl.hash.sha256 = function (hash) {
42005 if (!this._key[
0]) { this._precompute(); }
42007 this._h = hash._h.slice(
0);
42008 this._buffer = hash._buffer.slice(
0);
42009 this._length = hash._length;
42016 * Hash a string or an array of words.
42018 * @param {bitArray|String} data the data to hash.
42019 * @return {bitArray} The hash value, an array of
16 big-endian words.
42021 sjcl.hash.sha256.hash = function (data) {
42022 return (new sjcl.hash.sha256()).update(data).finalize();
42025 sjcl.hash.sha256.prototype = {
42027 * The hash's block size, in bits.
42033 * Reset the hash state.
42036 reset:function () {
42037 this._h = this._init.slice(
0);
42044 * Input several words to the hash.
42045 * @param {bitArray|String} data the data to hash.
42048 update: function (data) {
42049 if (typeof data ===
"string") {
42050 data = sjcl.codec.utf8String.toBits(data);
42052 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42054 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42055 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42056 this._block(b.splice(
0,
16));
42062 * Complete hashing and output the hash value.
42063 * @return {bitArray} The hash value, an array of
8 big-endian words.
42065 finalize:function () {
42066 var i, b = this._buffer, h = this._h;
42068 // Round out and push the buffer
42069 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42071 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42072 for (i = b.length +
2; i &
15; i++) {
42076 // append the length
42077 b.push(Math.floor(this._length /
0x100000000));
42078 b.push(this._length |
0);
42081 this._block(b.splice(
0,
16));
42089 * The SHA-
256 initialization vector, to be precomputed.
42094 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42098 * The SHA-
256 hash key, to be precomputed.
42104 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42105 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42106 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42107 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42108 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42109 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42110 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42111 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42116 * Function to precompute _init and _key.
42119 _precompute: function () {
42120 var i =
0, prime =
2, factor;
42122 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42124 outer: for (; i
<64; prime++) {
42125 for (factor=
2; factor*factor <= prime; factor++) {
42126 if (prime % factor ===
0) {
42133 this._init[i] = frac(Math.pow(prime,
1/
2));
42135 this._key[i] = frac(Math.pow(prime,
1/
3));
42141 * Perform one cycle of SHA-
256.
42142 * @param {bitArray} words one block of words.
42145 _block:function (words) {
42147 w = words.slice(
0),
42150 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42151 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42153 /* Rationale for placement of |
0 :
42154 * If a value can overflow is original
32 bits by a factor of more than a few
42155 * million (
2^
23 ish), there is a possibility that it might overflow the
42156 *
53-bit mantissa and lose precision.
42158 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42159 * propagates around the loop, and on the hash state h[]. I don't believe
42160 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42161 * (for h4 anyway), and better safe than sorry.
42163 * The clamps on h[] are necessary for the output to be correct even in the
42164 * common case and for short inputs.
42166 for (i=
0; i
<64; i++) {
42167 // load up the input word for this round
42171 a = w[(i+
1 ) &
15];
42172 b = w[(i+
14) &
15];
42173 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42174 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42175 w[i&
15] + w[(i+
9) &
15]) |
0;
42178 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42181 h7 = h6; h6 = h5; h5 = h4;
42183 h3 = h2; h2 = h1; h1 = h0;
42185 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42188 h[
0] = h[
0]+h0 |
0;
42189 h[
1] = h[
1]+h1 |
0;
42190 h[
2] = h[
2]+h2 |
0;
42191 h[
3] = h[
3]+h3 |
0;
42192 h[
4] = h[
4]+h4 |
0;
42193 h[
5] = h[
5]+h5 |
0;
42194 h[
6] = h[
6]+h6 |
0;
42195 h[
7] = h[
7]+h7 |
0;
42199 <script>// An extremely basic translation library
42203 // Set some html to be translated. Do this using the 'data-translate' attribute:
42205 //
<div data-translate
>Test
</div>
42206 //
<div data-translate-html
><em>keep em tag
</em></div>
42207 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
42208 //
<span data-translate-title
title=
"Example title"></span>
42210 // Obtain all the phrases to be translated via js debug console:
42212 // Translate.phrasesAsJson();
42214 // Use that template to translate the phrases into another language.
42215 // Leave the key the same. Change the value to the new language.
42217 // Create a js file to load the new phrases. In this example for Spanish,
42218 // es.js will contain the following code:
42220 // Translate.loadForeignPhrases("es", {
42221 // "Test": "Test in Spanish",
42222 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
42223 // "Example placeholder
": "Example placeholder in Spanish
"
42224 // "Example title
": "Example title in Spanish
"
42227 // In your UI put a listener for clicking on the Spanish button:
42229 // mySpanishButton.addEventListener("click
", function() {
42230 // Translate.setLanguage("es
");
42232 // myEnglishButton.addEventListener("click
", function() {
42233 // Translate.setLanguage("en
");
42236 Translate = new (function() {
42238 var defaultLanguage = "en
";
42240 var allPhrases = {};
42241 allPhrases[defaultLanguage] = {};
42246 selector: "[data-translate]
",
42247 getKey: function() {
42248 return this.textContent.trim().replace(/\s+/g, " ");
42250 setPhrase: function(p) {
42251 this.textContent = p;
42256 selector: "[data-translate-html]
",
42257 getKey: function() {
42258 return this.innerHTML.trim().replace(/\s+/g, " ");
42260 setPhrase: function(p) {
42261 this.innerHTML = p;
42265 var placeholder = {
42266 selector: "[data-translate-placeholder]
",
42267 getKey: function() {
42268 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
42270 setPhrase: function(p) {
42271 this.setAttribute("placeholder
", p);
42276 selector: "[data-translate-title]
",
42277 getKey: function() {
42278 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
42280 setPhrase: function(p) {
42281 this.setAttribute("title
", p);
42285 // Get elements to be translated
42286 var allEls = getEls(text)
42287 .concat(getEls(html))
42288 .concat(getEls(placeholder))
42289 .concat(getEls(title));
42291 // Provides access to phrases from a non-default language.
42292 // See phrases_en.js for example usage.
42293 this.loadForeignPhrases = function(language, phrases) {
42294 allPhrases[language] = phrases;
42297 // Displays a different language, eg "en
" or "fr
"
42298 this.setLanguage = function(language) {
42299 for (var i=0; i<allEls.length; i++) {
42300 var el = allEls[i];
42302 if (!(language in allPhrases)) {
42303 console.log(language + " not in allPhrases
");
42306 if (!(key in allPhrases[language])) {
42307 console.log(language + " does not contain phrase:
" + key);
42310 var phrase = allPhrases[language][key];
42311 el.setPhrase(phrase);
42315 // Converts the phrases to a key-pair json file.
42316 // This is a good way to export phrases for use in translation tools.
42317 this.phrasesAsJson = function(language) {
42319 for (var i=0; i<allEls.length; i++) {
42320 var el = allEls[i];
42326 for (var i=0; i<keys.length; i++) {
42328 var translated = "";
42329 if (language in allPhrases && key in allPhrases[language]) {
42330 translated = allPhrases[language][key];
42332 output[key] = translated;
42334 return JSON.stringify(output, null, 2);
42337 function getEls(nodeType) {
42338 var nodes = document.querySelectorAll(nodeType.selector);
42340 for (var i=0; i<nodes.length; i++) {
42341 var node = nodes[i];
42342 node.getKey = nodeType.getKey;
42343 node.setPhrase = nodeType.setPhrase;
42344 node.key = node.getKey();
42345 allPhrases[defaultLanguage][node.key] = node.key;
42353 <script>Translate.loadForeignPhrases("en",
42355 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
42356 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
42357 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
42358 "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).": "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).",
42359 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
42360 "Account": "Account",
42361 "Address": "Address",
42362 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
42363 "BIP32 Derivation Path": "BIP32 Derivation Path",
42364 "BIP32 Extended Key": "BIP32 Extended Key",
42365 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
42366 "BIP32 Root Key": "BIP32 Root Key",
42367 "BIP39 Mnemonic": "BIP39 Mnemonic",
42368 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
42369 "BIP39 Seed": "BIP39 Seed",
42370 "Base
10": "Base
10",
42371 "Base
6": "Base
6",
42372 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
42373 "Binary": "Binary",
42374 "Bitcoin Core": "Bitcoin Core",
42375 "Bits Per Event": "Bits Per Event",
42376 "Block Explorers": "Block Explorers",
42377 "Can be used with": "Can be used with",
42381 "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
42382 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
42383 "Entropy": "Entropy",
42384 "Entropy Type": "Entropy Type",
42385 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
42386 "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.": "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.",
42387 "Event Count": "Event Count",
42388 "External / Internal": "External / Internal",
42389 "Filtered Entropy": "Filtered Entropy",
42390 "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>": "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>",
42391 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.",
42392 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.",
42393 "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>": "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>",
42394 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
42395 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
42396 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
42397 "Get the source code from the repository
": "Get the source code from the repository
",
42399 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
42400 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
",
42401 "In that case you might choose to use your own source of entropy.
": "In that case you might choose to use your own source of entropy.
",
42402 "In your browser, select file save-as, and save this page as a file.
": "In your browser, select file save-as, and save this page as a file.
",
42403 "Libraries
": "Libraries
",
42404 "Mnemonic Language
": "Mnemonic Language
",
42405 "Mnemonic Length
": "Mnemonic Length
",
42406 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
42407 "More info
": "More info
",
42408 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
42409 "Mycelium Wallet
": "Mycelium Wallet
",
42410 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
42411 "Offline Usage
": "Offline Usage
",
42412 "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.": "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.",
42414 "Private Key": "Private Key",
42415 "Private Keys": "Private Keys",
42416 "Public Key": "Public Key",
42417 "Purpose": "Purpose",
42418 "Raw Binary": "Raw Binary",
42419 "Read more": "Read more",
42420 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>",
42421 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>",
42422 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>",
42423 "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>": "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>",
42425 "Show more rows
": "Show more rows
",
42426 "Strength
": "Strength
",
42427 "Supply my own source of entropy
": "Supply my own source of entropy
",
42428 "The built in random generator can generally be trusted more than your own intuition about randomness.
": "The built in random generator can generally be trusted more than your own intuition about randomness.
",
42429 "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.": "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.",
42430 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
42431 "This project is
100% open-source code": "This project is
100% open-source code",
42432 "Toggle": "Toggle",
42433 "Total Bits": "Total Bits",
42434 "Use hardened addresses": "Use hardened addresses",
42435 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
42436 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
42437 "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.": "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.",
42438 "Valid entropy values include:": "Valid entropy values include:",
42439 "Warning": "Warning",
42440 "Word Count": "Word Count",
42441 "You are not a good source of entropy.": "You are not a good source of entropy.",
42442 "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).": "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).",
42443 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
42448 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42449 WORDLISTS["english"] = [
42450 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42451 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42452 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42453 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42454 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42455 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42456 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42457 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42458 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42459 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42460 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42461 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42462 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42463 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42464 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42465 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42466 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42467 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42468 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42469 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42470 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42471 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42472 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42473 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42474 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42475 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42476 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42477 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42478 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42479 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42480 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42481 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42482 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42483 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42484 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42485 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42486 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42487 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42488 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42489 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42490 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42491 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42492 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42493 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42494 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42495 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42496 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42497 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42498 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42499 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42500 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42501 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42502 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42503 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42504 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42505 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42506 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42507 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42508 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42509 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42510 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42511 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42512 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42513 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42514 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42515 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42516 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42517 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42518 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42519 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42520 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42521 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42522 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42523 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42524 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42525 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42526 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42527 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42528 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42529 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42530 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42531 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42532 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42533 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42534 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42535 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42536 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42537 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42538 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42539 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42540 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42541 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42542 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42543 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42544 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42545 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42546 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42547 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42548 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42549 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42550 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42551 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42552 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42553 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42554 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42555 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42556 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42557 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42558 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42559 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42560 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42561 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42562 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42563 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42564 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42565 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42566 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42567 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42568 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42569 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42570 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42571 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42572 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42573 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42574 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42575 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42576 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42577 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42578 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42579 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42580 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42581 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42582 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42583 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42584 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42585 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42586 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42587 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42588 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42589 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42590 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42591 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42592 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42593 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42594 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42595 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42596 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42597 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42598 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42599 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42600 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42601 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42602 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42603 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42604 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42605 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42606 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42607 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42608 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42609 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42610 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42611 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42612 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42613 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42614 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42615 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42616 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42617 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42618 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42619 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42620 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42621 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42622 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42623 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42624 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42625 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42626 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42627 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42628 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42629 "thank","that","theme","then","theory","there","they","thing","this","thought",
42630 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42631 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42632 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42633 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42634 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42635 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42636 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42637 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42638 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42639 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42640 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42641 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42642 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42643 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42644 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42645 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42646 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42647 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42648 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42649 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42650 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42651 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42652 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42653 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42654 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42656 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42657 WORDLISTS["japanese"] = [
42658 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42659 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42660 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42661 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42662 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42663 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42664 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42665 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42666 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42667 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42668 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42669 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42670 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42671 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42672 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42673 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42674 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42675 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42676 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42677 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42678 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42679 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42680 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42681 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42682 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42683 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42684 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42685 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42686 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42687 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42688 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42689 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42690 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42691 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42692 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42693 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42694 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42695 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42696 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42697 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42698 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42699 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42700 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42701 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42702 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42703 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42704 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42705 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42706 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42707 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42708 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42709 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42710 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42711 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42712 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42713 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42714 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42715 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42716 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42717 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42718 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42719 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42720 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42721 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42722 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42723 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42724 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42725 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42726 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42727 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42728 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42729 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42730 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42731 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42732 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42733 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42734 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42735 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42736 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42737 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42738 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42739 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42740 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42741 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42742 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42743 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42744 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42745 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42746 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42747 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42748 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42749 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42750 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42751 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42752 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42753 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42754 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42755 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42756 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42757 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42758 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42759 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42760 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42761 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42762 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42763 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42764 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42765 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42766 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42767 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42768 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42769 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42770 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42771 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42772 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42773 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42774 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42775 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42776 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42777 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42778 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42779 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42780 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42781 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42782 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42783 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42784 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42785 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42786 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42787 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42788 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42789 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42790 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42791 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42792 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42793 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42794 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42795 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42796 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42797 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42798 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42799 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42800 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42801 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42802 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42803 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42804 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42805 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42806 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42807 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42808 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42809 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42810 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42811 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42812 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42813 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42814 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42815 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42816 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42817 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42818 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42819 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42820 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42821 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42822 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42823 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42824 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42825 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42826 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42827 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42828 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42829 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42830 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42831 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42832 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42833 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42834 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42835 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42836 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42837 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42838 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42839 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42840 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42841 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42842 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42843 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42844 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42845 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42846 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42847 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42848 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42849 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42850 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42851 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42852 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42853 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42854 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42855 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42856 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42857 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42858 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42859 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42860 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42861 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42862 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42864 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42865 WORDLISTS["spanish"] = [
42866 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42867 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42868 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42869 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42870 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42871 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42872 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42873 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42874 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42875 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42876 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42877 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42878 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42879 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42880 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42881 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42882 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42883 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42884 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42885 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42886 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42887 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42888 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42889 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42890 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42891 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42892 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42893 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42894 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42895 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42896 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42897 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42898 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42899 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42900 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42901 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42902 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42903 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42904 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42905 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42906 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42907 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42908 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42909 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42910 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42911 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42912 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42913 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42914 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42915 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42916 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42917 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42918 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42919 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42920 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42921 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42922 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42923 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42924 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42925 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42926 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42927 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42928 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42929 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42930 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42931 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42932 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42933 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42934 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42935 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42936 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42937 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42938 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42939 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42940 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42941 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42942 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42943 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42944 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42945 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42946 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42947 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42948 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42949 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42950 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42951 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42952 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42953 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42954 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42955 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42956 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42957 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42958 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42959 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42960 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42961 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42962 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42963 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42964 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42965 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42966 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42967 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42968 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42969 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42970 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42971 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42972 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42973 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42974 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42975 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42976 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42977 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42978 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42979 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42980 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42981 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42982 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42983 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42984 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42985 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42986 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42987 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42988 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42989 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42990 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42991 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42992 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42993 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42994 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42995 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42996 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42997 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42998 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42999 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
43000 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
43001 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
43002 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
43003 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
43004 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
43005 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
43006 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
43007 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
43008 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
43009 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
43010 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
43011 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
43012 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
43013 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
43014 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
43015 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
43016 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
43017 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
43018 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
43019 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
43020 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
43021 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
43022 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
43023 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
43024 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
43025 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
43026 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
43027 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
43028 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
43029 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
43030 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
43031 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
43032 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
43033 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
43034 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
43035 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
43036 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
43037 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
43038 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
43039 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
43040 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
43041 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
43042 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
43043 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
43044 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
43045 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
43046 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
43047 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
43048 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
43049 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
43050 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
43051 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
43052 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
43053 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
43054 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
43055 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
43056 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
43057 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
43058 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
43059 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
43060 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
43061 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
43062 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
43063 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
43064 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
43065 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
43066 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
43067 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
43068 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
43069 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
43070 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
43072 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43073 WORDLISTS["chinese_simplified"] = [
43074 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
43075 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
43076 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
43077 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
43078 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
43079 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
43080 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
43081 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
43082 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
43083 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
43084 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
43085 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43086 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
43087 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
43088 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
43089 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
43090 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
43091 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
43092 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
43093 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
43094 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
43095 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
43096 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
43097 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
43098 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
43099 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
43100 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
43101 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
43102 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
43103 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
43104 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
43105 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
43106 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
43107 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
43108 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
43109 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
43110 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
43111 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
43112 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
43113 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
43114 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
43115 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
43116 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
43117 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
43118 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
43119 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
43120 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
43121 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
43122 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
43123 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
43124 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
43125 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
43126 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
43127 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
43128 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
43129 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
43130 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
43131 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
43132 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
43133 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
43134 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
43135 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
43136 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
43137 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
43138 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
43139 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
43140 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
43141 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
43142 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
43143 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
43144 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
43145 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
43146 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
43147 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
43148 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
43149 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43150 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
43151 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
43152 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
43153 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
43154 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
43155 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
43156 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
43157 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
43158 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
43159 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
43160 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
43161 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
43162 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
43163 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
43164 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
43165 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
43166 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43167 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
43168 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
43169 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
43170 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
43171 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
43172 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
43173 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
43174 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
43175 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
43176 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
43177 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
43178 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
43179 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
43180 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
43181 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
43182 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43183 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43184 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
43185 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
43186 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
43187 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
43188 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
43189 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
43190 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
43191 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
43192 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
43193 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
43194 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
43195 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43196 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
43197 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
43198 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
43199 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
43200 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
43201 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
43202 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
43203 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
43204 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
43205 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
43206 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
43207 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
43208 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
43209 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
43210 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
43211 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
43212 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
43213 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
43214 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
43215 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
43216 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
43217 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
43218 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
43219 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
43220 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
43221 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
43222 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
43223 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
43224 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
43225 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
43226 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
43227 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
43228 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
43229 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
43230 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
43231 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
43232 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
43233 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
43234 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
43235 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
43236 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
43237 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
43238 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
43239 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
43240 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
43241 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
43242 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
43243 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
43244 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
43245 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
43246 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
43247 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
43248 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
43249 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
43250 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
43251 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
43252 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
43253 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
43254 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
43255 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
43256 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
43257 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
43258 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
43259 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
43260 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
43261 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
43262 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
43263 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
43264 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
43265 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
43266 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
43267 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
43268 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
43269 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
43270 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
43271 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
43272 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
43273 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43274 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43275 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43276 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43277 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43278 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43280 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43281 WORDLISTS["chinese_traditional"] = [
43282 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43283 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43284 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43285 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43286 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43287 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43288 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43289 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43290 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43291 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43292 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43293 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43294 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43295 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43296 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43297 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43298 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43299 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43300 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43301 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43302 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43303 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43304 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43305 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43306 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43307 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43308 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43309 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43310 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43311 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43312 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43313 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43314 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43315 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43316 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43317 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43318 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43319 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43320 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43321 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43322 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43323 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43324 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43325 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43326 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43327 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43328 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43329 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43330 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43331 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43332 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43333 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43334 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43335 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43336 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43337 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43338 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43339 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43340 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43341 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43342 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43343 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43344 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43345 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43346 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43347 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43348 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43349 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43350 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43351 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43352 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43353 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43354 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43355 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43356 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43357 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43358 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43359 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43360 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43361 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43362 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43363 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43364 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43365 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43366 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43367 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43368 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43369 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43370 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43371 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43372 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43373 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43374 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43375 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43376 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43377 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43378 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43379 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43380 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43381 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43382 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43383 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43384 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43385 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43386 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43387 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43388 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43389 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43390 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43391 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43392 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43393 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43394 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43395 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43396 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43397 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43398 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43399 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43400 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43401 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43402 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43403 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43404 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43405 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43406 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43407 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43408 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43409 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43410 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43411 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43412 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43413 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43414 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43415 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43416 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43417 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43418 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43419 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43420 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43421 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43422 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43423 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43424 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43425 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43426 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43427 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43428 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43429 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43430 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43431 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43432 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43433 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43434 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43435 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43436 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43437 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43438 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43439 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43440 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43441 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43442 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43443 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43444 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43445 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43446 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43447 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43448 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43449 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43450 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43451 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43452 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43453 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43454 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43455 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43456 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43457 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43458 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43459 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43460 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43461 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43462 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43463 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43464 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43465 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43466 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43467 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43468 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43469 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43470 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43471 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43472 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43473 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43474 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43475 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43476 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43477 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43478 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43479 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43480 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43481 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43482 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43483 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43484 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43485 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43486 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43488 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43489 WORDLISTS["french"] = [
43490 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43491 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43492 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43493 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43494 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43495 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43496 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43497 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43498 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43499 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43500 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43501 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43502 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43503 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43504 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43505 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43506 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43507 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43508 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43509 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43510 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43511 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43512 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43513 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43514 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43515 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43516 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43517 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43518 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43519 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43520 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43521 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43522 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43523 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43524 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43525 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43526 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43527 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43528 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43529 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43530 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43531 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43532 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43533 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43534 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43535 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43536 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43537 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43538 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43539 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43540 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43541 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43542 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43543 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43544 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43545 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43546 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43547 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43548 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43549 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43550 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43551 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43552 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43553 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43554 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43555 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43556 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43557 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43558 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43559 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43560 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43561 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43562 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43563 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43564 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43565 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43566 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43567 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43568 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43569 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43570 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43571 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43572 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43573 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43574 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43575 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43576 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43577 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43578 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43579 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43580 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43581 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43582 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43583 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43584 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43585 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43586 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43587 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43588 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43589 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43590 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43591 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43592 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43593 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43594 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43595 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43596 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43597 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43598 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43599 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43600 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43601 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43602 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43603 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43604 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43605 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43606 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43607 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43608 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43609 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43610 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43611 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43612 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43613 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43614 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43615 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43616 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43617 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43618 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43619 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43620 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43621 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43622 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43623 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43624 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43625 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43626 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43627 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43628 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43629 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43630 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43631 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43632 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43633 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43634 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43635 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43636 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43637 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43638 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43639 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43640 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43641 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43642 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43643 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43644 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43645 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43646 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43647 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43648 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43649 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43650 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43651 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43652 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43653 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43654 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43655 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43656 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43657 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43658 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43659 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43660 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43661 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43662 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43663 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43664 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43665 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43666 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43667 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43668 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43669 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43670 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43671 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43672 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43673 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43674 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43675 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43676 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43677 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43678 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43679 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43680 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43681 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43682 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43683 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43684 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43685 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43686 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43687 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43688 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43689 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43690 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43691 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43692 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43693 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43694 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43696 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43697 WORDLISTS["italian"] = [
43698 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43699 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43700 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43701 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43702 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43703 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43704 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43705 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43706 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43707 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43708 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43709 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43710 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43711 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43712 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43713 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43714 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43715 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43716 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43717 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43718 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43719 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43720 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43721 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43722 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43723 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43724 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43725 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43726 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43727 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43728 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43729 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43730 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43731 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43732 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43733 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43734 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43735 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43736 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43737 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43738 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43739 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43740 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43741 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43742 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43743 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43744 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43745 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43746 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43747 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43748 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43749 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43750 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43751 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43752 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43753 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43754 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43755 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43756 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43757 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43758 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43759 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43760 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43761 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43762 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43763 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43764 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43765 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43766 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43767 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43768 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43769 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43770 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43771 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43772 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43773 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43774 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43775 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43776 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43777 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43778 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43779 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43780 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43781 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43782 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43783 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43784 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43785 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43786 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43787 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43788 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43789 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43790 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43791 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43792 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43793 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43794 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43795 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43796 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43797 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43798 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43799 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43800 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43801 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43802 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43803 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43804 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43805 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43806 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43807 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43808 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43809 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43810 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43811 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43812 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43813 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43814 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43815 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43816 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43817 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43818 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43819 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43820 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43821 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43822 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43823 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43824 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43825 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43826 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43827 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43828 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43829 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43830 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43831 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43832 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43833 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43834 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43835 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43836 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43837 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43838 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43839 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43840 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43841 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43842 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43843 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43844 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43845 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43846 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43847 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43848 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43849 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43850 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43851 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43852 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43853 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43854 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43855 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43856 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43857 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43858 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43859 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43860 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43861 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43862 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43863 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43864 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43865 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43866 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43867 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43868 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43869 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43870 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43871 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43872 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43873 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43874 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43875 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43876 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43877 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43878 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43879 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43880 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43881 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43882 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43883 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43884 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43885 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43886 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43887 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43888 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43889 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43890 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43891 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43892 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43893 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43894 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43895 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43896 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43897 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43898 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43899 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43900 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43901 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43902 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43905 * Copyright (c)
2013 Pavol Rusnak
43907 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43908 * this software and associated documentation files (the "Software"), to deal in
43909 * the Software without restriction, including without limitation the rights to
43910 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43911 * of the Software, and to permit persons to whom the Software is furnished to do
43912 * so, subject to the following conditions:
43914 * The above copyright notice and this permission notice shall be included in all
43915 * copies or substantial portions of the Software.
43917 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43918 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43919 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43920 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43921 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43922 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43926 * Javascript port from python by Ian Coleman
43928 * Requires code from sjcl
43929 * https://github.com/bitwiseshiftleft/sjcl
43932 var Mnemonic = function(language) {
43934 var PBKDF2_ROUNDS =
2048;
43940 var hmacSHA512 = function(key) {
43941 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43942 this.encrypt = function() {
43943 return hasher.encrypt.apply(hasher, arguments);
43948 wordlist = WORDLISTS[language];
43949 if (wordlist.length != RADIX) {
43950 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43955 self.generate = function(strength) {
43956 strength = strength ||
128;
43957 var r = strength %
32;
43959 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43961 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43962 if (!hasStrongCrypto) {
43963 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43965 var buffer = new Uint8Array(strength /
8);
43966 var data = crypto.getRandomValues(buffer);
43967 return self.toMnemonic(data);
43970 self.toMnemonic = function(byteArray) {
43971 if (byteArray.length %
4 > 0) {
43972 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43975 //h = hashlib.sha256(data).hexdigest()
43976 var data = byteArrayToWordArray(byteArray);
43977 var hash = sjcl.hash.sha256.hash(data);
43978 var h = sjcl.codec.hex.fromBits(hash);
43980 // b is a binary string, eg '
00111010101100...'
43981 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43982 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43984 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43985 // c = bin(int(h,
16))[
2:].zfill(
256)
43986 // d = c[:len(data) *
8 /
32]
43987 var a = byteArrayToBinaryString(byteArray);
43988 var c = zfill(hexStringToBinaryString(h),
256);
43989 var d = c.substring(
0, byteArray.length *
8 /
32);
43990 // b = line1 + line2
43994 var blen = b.length /
11;
43995 for (var i=
0; i
<blen; i++) {
43996 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43997 result.push(wordlist[idx]);
43999 return self.joinWords(result);
44002 self.check = function(mnemonic) {
44003 var mnemonic = self.splitWords(mnemonic);
44004 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
44007 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
44009 for (var i=
0; i
<mnemonic.length; i++) {
44010 var word = mnemonic[i];
44011 var wordIndex = wordlist.indexOf(word);
44012 if (wordIndex == -
1) {
44015 var binaryIndex = zfill(wordIndex.toString(
2),
11);
44016 idx.push(binaryIndex);
44018 var b = idx.join('');
44020 //d = b[:l /
33 *
32]
44022 var d = b.substring(
0, l /
33 *
32);
44023 var h = b.substring(l - l /
33, l);
44024 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
44025 var nd = binaryStringToWordArray(d);
44026 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
44027 var ndHash = sjcl.hash.sha256.hash(nd);
44028 var ndHex = sjcl.codec.hex.fromBits(ndHash);
44029 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
44030 var nh = ndBstr.substring(
0,l/
33);
44034 self.toSeed = function(mnemonic, passphrase) {
44035 passphrase = passphrase || '';
44036 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
44037 var mnemonicNormalized = self.normalizeString(mnemonic);
44038 passphrase = self.normalizeString(passphrase)
44039 passphrase =
"mnemonic" + passphrase;
44040 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
44041 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
44042 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
44043 var hashHex = sjcl.codec.hex.fromBits(result);
44047 self.splitWords = function(mnemonic) {
44048 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
44051 self.joinWords = function(words) {
44052 // Set space correctly depending on the language
44053 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
44055 if (language ==
"japanese") {
44056 space =
"\u3000"; // ideographic space
44058 return words.join(space);
44061 self.normalizeString = function(str) {
44062 if (typeof str.normalize ==
"function") {
44063 return str.normalize(
"NFKD");
44066 // TODO decide how to handle this in the future.
44067 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
44072 function byteArrayToWordArray(data) {
44074 for (var i=
0; i
<data.length/
4; i++) {
44076 v += data[i*
4 +
0] <<
8 *
3;
44077 v += data[i*
4 +
1] <<
8 *
2;
44078 v += data[i*
4 +
2] <<
8 *
1;
44079 v += data[i*
4 +
3] <<
8 *
0;
44085 function byteArrayToBinaryString(data) {
44087 for (var i=
0; i
<data.length; i++) {
44088 bin += zfill(data[i].toString(
2),
8);
44093 function hexStringToBinaryString(hexString) {
44095 for (var i=
0; i
<hexString.length; i++) {
44096 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
44098 return binaryString;
44101 function binaryStringToWordArray(binary) {
44102 var aLen = binary.length /
32;
44104 for (var i=
0; i
<aLen; i++) {
44105 var valueStr = binary.substring(
0,
32);
44106 var value = parseInt(valueStr,
2);
44108 binary = binary.slice(
32);
44113 // Pad a numeric string on the left with zero digits until the given width
44115 // Note this differs to the python implementation because it does not
44116 // handle numbers starting with a sign.
44117 function zfill(source, length) {
44118 source = source.toString();
44119 while (source.length < length) {
44120 source = '
0' + source;
44130 JavaScript BigInteger library version
0.9.1
44131 http://silentmatt.com/biginteger/
44133 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44134 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44135 Licensed under the MIT license.
44137 Support for arbitrary internal representation base was added by
44142 File: biginteger.js
44148 (function(exports) {
44152 An arbitrarily-large integer.
44154 <BigInteger> objects should be considered immutable. None of the "built-in"
44155 methods modify *this* or their arguments. All properties should be
44156 considered private.
44158 All the methods of
<BigInteger> instances can be called "statically". The
44159 static versions are convenient if you don't already have a
<BigInteger>
44162 As an example, these calls are equivalent.
44164 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44165 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44168 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44171 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44174 Constructor: BigInteger()
44175 Convert a value to a
<BigInteger>.
44177 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44178 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44179 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44180 without a radix argument.
44182 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44183 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44184 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44185 > var n3 = BigInteger(n2); // Return n2, unchanged
44187 The constructor form only takes an array and a sign. *n* must be an
44188 array of numbers in little-endian order, where each digit is between
0
44189 and BigInteger.base. The second parameter sets the sign: -
1 for
44190 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44191 may be modified*. If the array contains only zeros, the sign parameter
44192 is ignored and is forced to zero.
44194 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44198 n - Value to convert to a
<BigInteger>.
44202 A
<BigInteger> value.
44206 <parse>,
<BigInteger>
44208 function BigInteger(n, s, token) {
44209 if (token !== CONSTRUCT) {
44210 if (n instanceof BigInteger) {
44213 else if (typeof n === "undefined") {
44216 return BigInteger.parse(n);
44219 n = n || []; // Provide the nullary constructor for subclasses.
44220 while (n.length && !n[n.length -
1]) {
44224 this._s = n.length ? (s ||
1) :
0;
44227 BigInteger._construct = function(n, s) {
44228 return new BigInteger(n, s, CONSTRUCT);
44231 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44232 // require base to be a power of
10.
10^
7 is the largest such power
44233 // that won't cause a precision loss when digits are multiplied.
44234 var BigInteger_base =
10000000;
44235 var BigInteger_base_log10 =
7;
44237 BigInteger.base = BigInteger_base;
44238 BigInteger.base_log10 = BigInteger_base_log10;
44240 var ZERO = new BigInteger([],
0, CONSTRUCT);
44243 BigInteger.ZERO = ZERO;
44245 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44248 BigInteger.ONE = ONE;
44250 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44252 //
<BigInteger> -
1.
44253 BigInteger.M_ONE = M_ONE;
44256 // Shortcut for
<ZERO>.
44257 BigInteger._0 = ZERO;
44260 // Shortcut for
<ONE>.
44261 BigInteger._1 = ONE;
44265 Array of
<BigIntegers> from
0 to
36.
44267 These are used internally for parsing, but useful when you need a "small"
44272 <ZERO>,
<ONE>,
<_0>,
<_1>
44274 BigInteger.small = [
44277 /* Assuming BigInteger_base
> 36 */
44278 new BigInteger( [
2],
1, CONSTRUCT),
44279 new BigInteger( [
3],
1, CONSTRUCT),
44280 new BigInteger( [
4],
1, CONSTRUCT),
44281 new BigInteger( [
5],
1, CONSTRUCT),
44282 new BigInteger( [
6],
1, CONSTRUCT),
44283 new BigInteger( [
7],
1, CONSTRUCT),
44284 new BigInteger( [
8],
1, CONSTRUCT),
44285 new BigInteger( [
9],
1, CONSTRUCT),
44286 new BigInteger([
10],
1, CONSTRUCT),
44287 new BigInteger([
11],
1, CONSTRUCT),
44288 new BigInteger([
12],
1, CONSTRUCT),
44289 new BigInteger([
13],
1, CONSTRUCT),
44290 new BigInteger([
14],
1, CONSTRUCT),
44291 new BigInteger([
15],
1, CONSTRUCT),
44292 new BigInteger([
16],
1, CONSTRUCT),
44293 new BigInteger([
17],
1, CONSTRUCT),
44294 new BigInteger([
18],
1, CONSTRUCT),
44295 new BigInteger([
19],
1, CONSTRUCT),
44296 new BigInteger([
20],
1, CONSTRUCT),
44297 new BigInteger([
21],
1, CONSTRUCT),
44298 new BigInteger([
22],
1, CONSTRUCT),
44299 new BigInteger([
23],
1, CONSTRUCT),
44300 new BigInteger([
24],
1, CONSTRUCT),
44301 new BigInteger([
25],
1, CONSTRUCT),
44302 new BigInteger([
26],
1, CONSTRUCT),
44303 new BigInteger([
27],
1, CONSTRUCT),
44304 new BigInteger([
28],
1, CONSTRUCT),
44305 new BigInteger([
29],
1, CONSTRUCT),
44306 new BigInteger([
30],
1, CONSTRUCT),
44307 new BigInteger([
31],
1, CONSTRUCT),
44308 new BigInteger([
32],
1, CONSTRUCT),
44309 new BigInteger([
33],
1, CONSTRUCT),
44310 new BigInteger([
34],
1, CONSTRUCT),
44311 new BigInteger([
35],
1, CONSTRUCT),
44312 new BigInteger([
36],
1, CONSTRUCT)
44315 // Used for parsing/radix conversion
44316 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44320 Convert a
<BigInteger> to a string.
44322 When *base* is greater than
10, letters are upper case.
44326 base - Optional base to represent the number in (default is base
10).
44327 Must be between
2 and
36 inclusive, or an Error will be thrown.
44331 The string representation of the
<BigInteger>.
44333 BigInteger.prototype.toString = function(base) {
44334 base = +base ||
10;
44335 if (base <
2 || base
> 36) {
44336 throw new Error(
"illegal radix " + base +
".");
44338 if (this._s ===
0) {
44342 var str = this._s <
0 ?
"-" :
"";
44343 str += this._d[this._d.length -
1].toString();
44344 for (var i = this._d.length -
2; i
>=
0; i--) {
44345 var group = this._d[i].toString();
44346 while (group.length < BigInteger_base_log10) group = '
0' + group;
44352 var numerals = BigInteger.digits;
44353 base = BigInteger.small[base];
44354 var sign = this._s;
44356 var n = this.abs();
44360 while (n._s !==
0) {
44361 var divmod = n.divRem(base);
44364 // TODO: This could be changed to unshift instead of reversing at the end.
44365 // Benchmark both to compare speeds.
44366 digits.push(numerals[digit.valueOf()]);
44368 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44372 // Verify strings for parsing
44373 BigInteger.radixRegex = [
44415 Parse a string into a
<BigInteger>.
44417 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44418 *base* is not provided, it will be guessed based on the leading characters
44421 - "
0x" or "
0X": *base* =
16
44422 - "
0c" or "
0C": *base* =
8
44423 - "
0b" or "
0B": *base* =
2
44424 - else: *base* =
10
44426 If no base is provided, or *base* is
10, the number can be in exponential
44427 form. For example, these are all valid:
44429 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44430 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44431 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44433 If any characters fall outside the range defined by the radix, an exception
44438 s - The string to parse.
44439 base - Optional radix (default is to guess based on *s*).
44443 a
<BigInteger> instance.
44445 BigInteger.parse = function(s, base) {
44446 // Expands a number in exponential form to decimal form.
44447 // expandExponential("-
13.441*
10^
5") === "
1344100";
44448 // expandExponential("
1.12300e-1") === "
0.112300";
44449 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44450 function expandExponential(str) {
44451 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44453 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44456 var i = n.length + c;
44457 x = (l ? n : f).length;
44458 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44459 var z = (new Array(c +
1)).join("
0");
44461 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44466 if (typeof base === "undefined" || +base ===
10) {
44467 s = expandExponential(s);
44471 if (typeof base === "undefined") {
44472 prefixRE = '
0[xcb]';
44474 else if (base ==
16) {
44477 else if (base ==
8) {
44480 else if (base ==
2) {
44486 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44488 var sign = parts[
1] || "+";
44489 var baseSection = parts[
2] || "";
44490 var digits = parts[
3] || "";
44492 if (typeof base === "undefined") {
44494 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44497 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44500 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44507 else if (base <
2 || base
> 36) {
44508 throw new Error(
"Illegal radix " + base +
".");
44513 // Check for digits outside the range
44514 if (!(BigInteger.radixRegex[base].test(digits))) {
44515 throw new Error(
"Bad digit for radix " + base);
44518 // Strip leading zeros, and convert to array
44519 digits = digits.replace(/^
0+/,
"").split(
"");
44520 if (digits.length ===
0) {
44524 // Get the sign (we know it's not zero)
44525 sign = (sign ===
"-") ? -
1 :
1;
44530 while (digits.length
>= BigInteger_base_log10) {
44531 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44533 d.push(parseInt(digits.join(''),
10));
44534 return new BigInteger(d, sign, CONSTRUCT);
44537 // Do the conversion
44539 base = BigInteger.small[base];
44540 var small = BigInteger.small;
44541 for (var i =
0; i < digits.length; i++) {
44542 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44544 return new BigInteger(d._d, sign, CONSTRUCT);
44547 throw new Error("Invalid BigInteger format: " + s);
44553 Add two
<BigIntegers>.
44557 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44561 The numbers added together.
44565 <subtract>,
<multiply>,
<quotient>,
<next>
44567 BigInteger.prototype.add = function(n) {
44568 if (this._s ===
0) {
44569 return BigInteger(n);
44576 if (this._s !== n._s) {
44578 return this.subtract(n);
44585 var sum = new Array(Math.max(al, bl) +
1);
44586 var size = Math.min(al, bl);
44590 for (var i =
0; i < size; i++) {
44591 digit = a[i] + b[i] + carry;
44592 sum[i] = digit % BigInteger_base;
44593 carry = (digit / BigInteger_base) |
0;
44599 for (i = size; carry && i < al; i++) {
44600 digit = a[i] + carry;
44601 sum[i] = digit % BigInteger_base;
44602 carry = (digit / BigInteger_base) |
0;
44608 for ( ; i < al; i++) {
44612 return new BigInteger(sum, this._s, CONSTRUCT);
44617 Get the additive inverse of a
<BigInteger>.
44621 A
<BigInteger> with the same magnatude, but with the opposite sign.
44627 BigInteger.prototype.negate = function() {
44628 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44633 Get the absolute value of a
<BigInteger>.
44637 A
<BigInteger> with the same magnatude, but always positive (or zero).
44643 BigInteger.prototype.abs = function() {
44644 return (this._s <
0) ? this.negate() : this;
44649 Subtract two
<BigIntegers>.
44653 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44657 The *n* subtracted from *this*.
44661 <add>,
<multiply>,
<quotient>,
<prev>
44663 BigInteger.prototype.subtract = function(n) {
44664 if (this._s ===
0) {
44665 return BigInteger(n).negate();
44672 if (this._s !== n._s) {
44674 return this.add(n);
44678 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44680 m = new BigInteger(n._d,
1, CONSTRUCT);
44681 n = new BigInteger(this._d,
1, CONSTRUCT);
44684 // Both are positive =
> a - b
44685 var sign = m.compareAbs(n);
44689 else if (sign <
0) {
44701 var diff = new Array(al); // al
>= bl since a
> b
44706 for (i =
0; i < bl; i++) {
44707 digit = a[i] - borrow - b[i];
44709 digit += BigInteger_base;
44717 for (i = bl; i < al; i++) {
44718 digit = a[i] - borrow;
44720 digit += BigInteger_base;
44728 for ( ; i < al; i++) {
44732 return new BigInteger(diff, sign, CONSTRUCT);
44736 function addOne(n, sign) {
44738 var sum = a.slice();
44743 var digit = (a[i] ||
0) +
1;
44744 sum[i] = digit % BigInteger_base;
44745 if (digit <= BigInteger_base -
1) {
44751 return new BigInteger(sum, sign, CONSTRUCT);
44754 function subtractOne(n, sign) {
44756 var sum = a.slice();
44761 var digit = (a[i] ||
0) -
1;
44763 sum[i] = digit + BigInteger_base;
44772 return new BigInteger(sum, sign, CONSTRUCT);
44777 Get the next
<BigInteger> (add one).
44787 BigInteger.prototype.next = function() {
44792 return subtractOne(this, -
1);
44795 return addOne(this,
1);
44801 Get the previous
<BigInteger> (subtract one).
44811 BigInteger.prototype.prev = function() {
44816 return addOne(this, -
1);
44819 return subtractOne(this,
1);
44825 Function: compareAbs
44826 Compare the absolute value of two
<BigIntegers>.
44828 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44832 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44836 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44842 BigInteger.prototype.compareAbs = function(n) {
44847 if (!(n instanceof BigInteger)) {
44848 if (!isFinite(n)) {
44849 return(isNaN(n) ? n : -
1);
44854 if (this._s ===
0) {
44855 return (n._s !==
0) ? -
1 :
0;
44861 var l = this._d.length;
44862 var nl = n._d.length;
44872 for (var i = l-
1; i
>=
0; i--) {
44873 if (a[i] !== b[i]) {
44874 return a[i] < b[i] ? -
1 :
1;
44883 Compare two
<BigIntegers>.
44887 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44891 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44895 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44897 BigInteger.prototype.compare = function(n) {
44904 if (this._s ===
0) {
44908 if (this._s === n._s) { // both positive or both negative
44909 var cmp = this.compareAbs(n);
44910 return cmp * this._s;
44919 Return true iff *this* is either
1 or -
1.
44923 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44927 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44928 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44930 BigInteger.prototype.isUnit = function() {
44931 return this === ONE ||
44933 (this._d.length ===
1 && this._d[
0] ===
1);
44938 Multiply two
<BigIntegers>.
44942 n - The number to multiply *this* by. Will be converted to a
44947 The numbers multiplied together.
44951 <add>,
<subtract>,
<quotient>,
<square>
44953 BigInteger.prototype.multiply = function(n) {
44954 // TODO: Consider adding Karatsuba multiplication for large numbers
44955 if (this._s ===
0) {
44963 if (this.isUnit()) {
44971 return this.negate();
44976 return this.square();
44979 var r = (this._d.length
>= n._d.length);
44980 var a = (r ? this : n)._d; // a will be longer than b
44981 var b = (r ? n : this)._d;
44986 var partial = new Array(pl);
44988 for (i =
0; i < pl; i++) {
44992 for (i =
0; i < bl; i++) {
44995 var jlimit = al + i;
44997 for (var j = i; j < jlimit; j++) {
44998 digit = partial[j] + bi * a[j - i] + carry;
44999 carry = (digit / BigInteger_base) |
0;
45000 partial[j] = (digit % BigInteger_base) |
0;
45003 digit = partial[j] + carry;
45004 carry = (digit / BigInteger_base) |
0;
45005 partial[j] = digit % BigInteger_base;
45008 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
45011 // Multiply a BigInteger by a single-digit native number
45012 // Assumes that this and n are
>=
0
45013 // This is not really intended to be used outside the library itself
45014 BigInteger.prototype.multiplySingleDigit = function(n) {
45015 if (n ===
0 || this._s ===
0) {
45023 if (this._d.length ===
1) {
45024 digit = this._d[
0] * n;
45025 if (digit
>= BigInteger_base) {
45026 return new BigInteger([(digit % BigInteger_base)|
0,
45027 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
45029 return new BigInteger([digit],
1, CONSTRUCT);
45033 return this.add(this);
45035 if (this.isUnit()) {
45036 return new BigInteger([n],
1, CONSTRUCT);
45043 var partial = new Array(pl);
45044 for (var i =
0; i < pl; i++) {
45049 for (var j =
0; j < al; j++) {
45050 digit = n * a[j] + carry;
45051 carry = (digit / BigInteger_base) |
0;
45052 partial[j] = (digit % BigInteger_base) |
0;
45055 partial[j] = carry;
45058 return new BigInteger(partial,
1, CONSTRUCT);
45063 Multiply a
<BigInteger> by itself.
45065 This is slightly faster than regular multiplication, since it removes the
45066 duplicated multiplcations.
45070 > this.multiply(this)
45075 BigInteger.prototype.square = function() {
45076 // Normally, squaring a
10-digit number would take
100 multiplications.
45077 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
45078 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
45079 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
45081 if (this._s ===
0) {
45084 if (this.isUnit()) {
45088 var digits = this._d;
45089 var length = digits.length;
45090 var imult1 = new Array(length + length +
1);
45091 var product, carry, k;
45094 // Calculate diagonal
45095 for (i =
0; i < length; i++) {
45097 product = digits[i] * digits[i];
45098 carry = (product / BigInteger_base) |
0;
45099 imult1[k] = product % BigInteger_base;
45100 imult1[k +
1] = carry;
45103 // Calculate repeating part
45104 for (i =
0; i < length; i++) {
45107 for (var j = i +
1; j < length; j++, k++) {
45108 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
45109 carry = (product / BigInteger_base) |
0;
45110 imult1[k] = product % BigInteger_base;
45113 var digit = carry + imult1[k];
45114 carry = (digit / BigInteger_base) |
0;
45115 imult1[k] = digit % BigInteger_base;
45116 imult1[k +
1] += carry;
45119 return new BigInteger(imult1,
1, CONSTRUCT);
45124 Divide two
<BigIntegers> and truncate towards zero.
45126 <quotient> throws an exception if *n* is zero.
45130 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45134 The *this* / *n*, truncated to an integer.
45138 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45140 BigInteger.prototype.quotient = function(n) {
45141 return this.divRem(n)[
0];
45146 Deprecated synonym for
<quotient>.
45148 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45151 Function: remainder
45152 Calculate the remainder of two
<BigIntegers>.
45154 <remainder> throws an exception if *n* is zero.
45158 n - The remainder after *this* is divided *this* by *n*. Will be
45159 converted to a
<BigInteger>.
45167 <divRem>,
<quotient>
45169 BigInteger.prototype.remainder = function(n) {
45170 return this.divRem(n)[
1];
45175 Calculate the integer quotient and remainder of two
<BigIntegers>.
45177 <divRem> throws an exception if *n* is zero.
45181 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45185 A two-element array containing the quotient and the remainder.
45189 is exactly equivalent to
45191 > [a.quotient(b), a.remainder(b)]
45193 except it is faster, because they are calculated at the same time.
45197 <quotient>,
<remainder>
45199 BigInteger.prototype.divRem = function(n) {
45202 throw new Error("Divide by zero");
45204 if (this._s ===
0) {
45205 return [ZERO, ZERO];
45207 if (n._d.length ===
1) {
45208 return this.divRemSmall(n._s * n._d[
0]);
45211 // Test for easy cases -- |n1| <= |n2|
45212 switch (this.compareAbs(n)) {
45213 case
0: // n1 == n2
45214 return [this._s === n._s ? ONE : M_ONE, ZERO];
45215 case -
1: // |n1| < |n2|
45216 return [ZERO, this];
45219 var sign = this._s * n._s;
45221 var b_digits = this._d;
45222 var b_index = b_digits.length;
45223 var digits = n._d.length;
45227 var part = new BigInteger([],
0, CONSTRUCT);
45230 part._d.unshift(b_digits[--b_index]);
45231 part = new BigInteger(part._d,
1, CONSTRUCT);
45233 if (part.compareAbs(n) <
0) {
45237 if (part._s ===
0) {
45241 var xlen = part._d.length, ylen = a._d.length;
45242 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45243 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45244 if (part._d.length
> a._d.length) {
45245 // The length of part._d can either match a._d length,
45246 // or exceed it by one.
45247 highx = (highx+
1)*BigInteger_base;
45249 guess = Math.ceil(highx/highy);
45252 var check = a.multiplySingleDigit(guess);
45253 if (check.compareAbs(part) <=
0) {
45263 var diff = part.subtract(check);
45264 part._d = diff._d.slice();
45267 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45268 new BigInteger(part._d, this._s, CONSTRUCT)];
45271 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45272 // [
1, BigInteger.base). It's not necessary to call this, since the
45273 // other division functions will call it if they are able to.
45274 BigInteger.prototype.divRemSmall = function(n) {
45278 throw new Error("Divide by zero");
45281 var n_s = n <
0 ? -
1 :
1;
45282 var sign = this._s * n_s;
45285 if (n <
1 || n
>= BigInteger_base) {
45286 throw new Error("Argument out of range");
45289 if (this._s ===
0) {
45290 return [ZERO, ZERO];
45293 if (n ===
1 || n === -
1) {
45294 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45297 //
2 <= n < BigInteger_base
45299 // divide a single digit by a single digit
45300 if (this._d.length ===
1) {
45301 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45302 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45312 var digits = this._d.slice();
45313 var quot = new Array(digits.length);
45319 while (digits.length) {
45320 part = part * BigInteger_base + digits[digits.length -
1];
45324 diff = BigInteger_base * diff + part;
45331 guess = (part / n) |
0;
45334 var check = n * guess;
45335 diff = part - check;
45346 r = new BigInteger([diff],
1, CONSTRUCT);
45350 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45355 Return true iff *this* is divisible by two.
45357 Note that
<BigInteger.ZERO
> is even.
45361 true if *this* is even, false otherwise.
45367 BigInteger.prototype.isEven = function() {
45368 var digits = this._d;
45369 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45374 Return true iff *this* is not divisible by two.
45378 true if *this* is odd, false otherwise.
45384 BigInteger.prototype.isOdd = function() {
45385 return !this.isEven();
45390 Get the sign of a
<BigInteger>.
45400 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45402 BigInteger.prototype.sign = function() {
45407 Function: isPositive
45408 Return true iff *this*
> 0.
45412 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45416 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45418 BigInteger.prototype.isPositive = function() {
45419 return this._s
> 0;
45423 Function: isNegative
45424 Return true iff *this* <
0.
45428 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45432 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45434 BigInteger.prototype.isNegative = function() {
45435 return this._s <
0;
45440 Return true iff *this* ==
0.
45444 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45448 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45450 BigInteger.prototype.isZero = function() {
45451 return this._s ===
0;
45456 Multiply a
<BigInteger> by a power of
10.
45458 This is equivalent to, but faster than
45461 > return this.multiply(BigInteger("
1e" + n));
45464 > return this.quotient(BigInteger("
1e" + -n));
45469 n - The power of
10 to multiply *this* by. *n* is converted to a
45470 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45471 (
0x7FFFFFFF), or an exception will be thrown.
45475 *this* * (
10 ** *n*), truncated to an integer if necessary.
45481 BigInteger.prototype.exp10 = function(n) {
45486 if (Math.abs(n)
> Number(MAX_EXP)) {
45487 throw new Error("exponent too large in BigInteger.exp10");
45489 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45490 if (this._s ===
0) {
45494 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45496 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45502 k = k.multiplySingleDigit(Math.pow(
10, n));
45503 return (this._s <
0 ? k.negate() : k);
45504 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45507 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45509 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45512 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45518 Raise a
<BigInteger> to a power.
45520 In this implementation,
0**
0 is
1.
45524 n - The exponent to raise *this* by. *n* must be no greater than
45525 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45529 *this* raised to the *nth* power.
45535 BigInteger.prototype.pow = function(n) {
45536 if (this.isUnit()) {
45541 return BigInteger(n).isOdd() ? this : this.negate();
45549 else if (n._s <
0) {
45550 if (this._s ===
0) {
45551 throw new Error(
"Divide by zero");
45557 if (this._s ===
0) {
45564 if (n.compareAbs(MAX_EXP)
> 0) {
45565 throw new Error(
"exponent too large in BigInteger.pow");
45569 var two = BigInteger.small[
2];
45571 while (n.isPositive()) {
45573 aux = aux.multiply(x);
45579 n = n.quotient(two);
45587 Raise a
<BigInteger> to a power (mod m).
45589 Because it is reduced by a modulus,
<modPow> is not limited by
45590 <BigInteger.MAX_EXP
> like
<pow>.
45594 exponent - The exponent to raise *this* by. Must be positive.
45595 modulus - The modulus.
45599 *this* ^ *exponent* (mod *modulus*).
45605 BigInteger.prototype.modPow = function(exponent, modulus) {
45609 while (exponent.isPositive()) {
45610 if (exponent.isOdd()) {
45611 result = result.multiply(base).remainder(modulus);
45614 exponent = exponent.quotient(BigInteger.small[
2]);
45615 if (exponent.isPositive()) {
45616 base = base.square().remainder(modulus);
45625 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45627 This is equivalent to
45629 > Math.log(this.toJSValue())
45631 but handles values outside of the native number range.
45641 BigInteger.prototype.log = function() {
45643 case
0: return -Infinity;
45644 case -
1: return NaN;
45645 default: // Fall through.
45648 var l = this._d.length;
45650 if (l*BigInteger_base_log10 <
30) {
45651 return Math.log(this.valueOf());
45654 var N = Math.ceil(
30/BigInteger_base_log10);
45655 var firstNdigits = this._d.slice(l - N);
45656 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45661 Convert a
<BigInteger> to a native JavaScript integer.
45663 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45668 > parseInt(this.toString(),
10)
45672 <toString>,
<toJSValue>
45674 BigInteger.prototype.valueOf = function() {
45675 return parseInt(this.toString(),
10);
45679 Function: toJSValue
45680 Convert a
<BigInteger> to a native JavaScript integer.
45682 This is the same as valueOf, but more explicitly named.
45686 > parseInt(this.toString(),
10)
45690 <toString>,
<valueOf>
45692 BigInteger.prototype.toJSValue = function() {
45693 return parseInt(this.toString(),
10);
45696 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45697 // Constant: MAX_EXP
45698 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45699 BigInteger.MAX_EXP = MAX_EXP;
45702 function makeUnary(fn) {
45703 return function(a) {
45704 return fn.call(BigInteger(a));
45708 function makeBinary(fn) {
45709 return function(a, b) {
45710 return fn.call(BigInteger(a), BigInteger(b));
45714 function makeTrinary(fn) {
45715 return function(a, b, c) {
45716 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45722 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45723 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45724 var trinary = ["modPow"];
45726 for (i =
0; i < unary.length; i++) {
45728 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45731 for (i =
0; i < binary.length; i++) {
45733 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45736 for (i =
0; i < trinary.length; i++) {
45738 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45741 BigInteger.exp10 = function(x, n) {
45742 return BigInteger(x).exp10(n);
45747 exports.BigInteger = BigInteger;
45748 })(typeof exports !== 'undefined' ? exports : this);
45750 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.zxcvbn = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
45751 var adjacency_graphs;adjacency_graphs={qwerty:{
"!":[
"`~",null,null,
"2@",
"qQ",null],'
"':[";:
","[{
","]}
",null,null,"/?
"],"#
":["2@
",null,null,"4$
","eE
","wW
"],$:["3#
",null,null,"5%
","rR
","eE
"],"%
":["4$
",null,null,"6^
","tT
","rR
"],"&
":["6^
",null,null,"8*
","uU
","yY
"],"'
":[";:
","[{
","]}
",null,null,"/?
"],"(
":["8*
",null,null,"0)
","oO
","iI
"],")
":["9(
",null,null,"-_
","pP
","oO
"],"*
":["7&
",null,null,"9(
","iI
","uU
"],"+
":["-_
",null,null,null,"]}
","[{
"],",
":["mM
","kK
","lL
",".
>",null,null],"-
":["0)
",null,null,"=+
","[{
","pP
"],".
":[",<
","lL
",";:
","/?
",null,null],"/
":[".
>",";:
","'\
"",null,null,null],
0:[
"9(",null,null,
"-_",
"pP",
"oO"],
1:[
"`~",null,null,
"2@",
"qQ",null],
2:[
"1!",null,null,
"3#",
"wW",
"qQ"],
3:[
"2@",null,null,
"4$",
"eE",
"wW"],
4:[
"3#",null,null,
"5%",
"rR",
"eE"],
5:[
"4$",null,null,
"6^",
"tT",
"rR"],
6:[
"5%",null,null,
"7&",
"yY",
"tT"],
7:[
"6^",null,null,
"8*",
"uU",
"yY"],
8:[
"7&",null,null,
"9(",
"iI",
"uU"],
9:[
"8*",null,null,
"0)",
"oO",
"iI"],
":":[
"lL",
"pP",
"[{",
"'\"","/?
",".
>"],";
":["lL
","pP
","[{
","'\
"",
"/?",
".>"],
"<":[
"mM",
"kK",
"lL",
".>",null,null],
"=":[
"-_",null,null,null,
"]}",
"[{"],
">":[
",<",
"lL",
";:",
"/?",null,null],
"?":[
".>",
";:",
"'\"",null,null,null],"@
":["1!
",null,null,"3#
","wW
","qQ
"],A:[null,"qQ
","wW
","sS
","zZ
",null],B:["vV
","gG
","hH
","nN
",null,null],C:["xX
","dD
","fF
","vV
",null,null],D:["sS
","eE
","rR
","fF
","cC
","xX
"],E:["wW
","3#
","4$
","rR
","dD
","sS
"],F:["dD
","rR
","tT
","gG
","vV
","cC
"],G:["fF
","tT
","yY
","hH
","bB
","vV
"],H:["gG
","yY
","uU
","jJ
","nN
","bB
"],I:["uU
","8*
","9(
","oO
","kK
","jJ
"],J:["hH
","uU
","iI
","kK
","mM
","nN
"],K:["jJ
","iI
","oO
","lL
",",<
","mM
"],L:["kK
","oO
","pP
",";:
",".
>",",<
"],M:["nN
","jJ
","kK
",",<
",null,null],N:["bB
","hH
","jJ
","mM
",null,null],O:["iI
","9(
","0)
","pP
","lL
","kK
"],P:["oO
","0)
","-_
","[{
",";:
","lL
"],Q:[null,"1!
","2@
","wW
","aA
",null],R:["eE
","4$
","5%
","tT
","fF
","dD
"],S:["aA
","wW
","eE
","dD
","xX
","zZ
"],T:["rR
","5%
","6^
","yY
","gG
","fF
"],U:["yY
","7&
","8*
","iI
","jJ
","hH
"],V:["cC
","fF
","gG
","bB
",null,null],W:["qQ
","2@
","3#
","eE
","sS
","aA
"],X:["zZ
","sS
","dD
","cC
",null,null],Y:["tT
","6^
","7&
","uU
","hH
","gG
"],Z:[null,"aA
","sS
","xX
",null,null],"[
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"\\":[
"]}",null,null,null,null,null],
"]":[
"[{",
"=+",null,
"\\|",null,
"'\""],"^
":["5%
",null,null,"7&
","yY
","tT
"],_:["0)
",null,null,"=+
","[{
","pP
"],"`
":[null,null,null,"1!
",null,null],a:[null,"qQ
","wW
","sS
","zZ
",null],b:["vV
","gG
","hH
","nN
",null,null],c:["xX
","dD
","fF
","vV
",null,null],d:["sS
","eE
","rR
","fF
","cC
","xX
"],e:["wW
","3#
","4$
","rR
","dD
","sS
"],f:["dD
","rR
","tT
","gG
","vV
","cC
"],g:["fF
","tT
","yY
","hH
","bB
","vV
"],h:["gG
","yY
","uU
","jJ
","nN
","bB
"],i:["uU
","8*
","9(
","oO
","kK
","jJ
"],j:["hH
","uU
","iI
","kK
","mM
","nN
"],k:["jJ
","iI
","oO
","lL
",",<
","mM
"],l:["kK
","oO
","pP
",";:
",".
>",",<
"],m:["nN
","jJ
","kK
",",<
",null,null],n:["bB
","hH
","jJ
","mM
",null,null],o:["iI
","9(
","0)
","pP
","lL
","kK
"],p:["oO
","0)
","-_
","[{
",";:
","lL
"],q:[null,"1!
","2@
","wW
","aA
",null],r:["eE
","4$
","5%
","tT
","fF
","dD
"],s:["aA
","wW
","eE
","dD
","xX
","zZ
"],t:["rR
","5%
","6^
","yY
","gG
","fF
"],u:["yY
","7&
","8*
","iI
","jJ
","hH
"],v:["cC
","fF
","gG
","bB
",null,null],w:["qQ
","2@
","3#
","eE
","sS
","aA
"],x:["zZ
","sS
","dD
","cC
",null,null],y:["tT
","6^
","7&
","uU
","hH
","gG
"],z:[null,"aA
","sS
","xX
",null,null],"{
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"|":[
"]}",null,null,null,null,null],
"}":[
"[{",
"=+",null,
"\\|",null,
"'\""],"~
":[null,null,null,"1!
",null,null]},dvorak:{"!
":["`~
",null,null,"2@
","'\
"",null],'
"':[null,"1!
","2@
",",<
","aA
",null],"#
":["2@
",null,null,"4$
",".
>",",<
"],$:["3#
",null,null,"5%
","pP
",".
>"],"%
":["4$
",null,null,"6^
","yY
","pP
"],"&
":["6^
",null,null,"8*
","gG
","fF
"],"'
":[null,"1!
","2@
",",<
","aA
",null],"(
":["8*
",null,null,"0)
","rR
","cC
"],")
":["9(
",null,null,"[{
","lL
","rR
"],"*
":["7&
",null,null,"9(
","cC
","gG
"],"+
":["/?
","]}
",null,"\\|
",null,"-_
"],",
":["'\
"",
"2@",
"3#",
".>",
"oO",
"aA"],
"-":[
"sS",
"/?",
"=+",null,null,
"zZ"],
".":[
",<",
"3#",
"4$",
"pP",
"eE",
"oO"],
"/":[
"lL",
"[{",
"]}",
"=+",
"-_",
"sS"],
0:[
"9(",null,null,
"[{",
"lL",
"rR"],
1:[
"`~",null,null,
"2@",
"'\"",null],2:["1!
",null,null,"3#
",",<
","'\
""],
3:[
"2@",null,null,
"4$",
".>",
",<"],
4:[
"3#",null,null,
"5%",
"pP",
".>"],
5:[
"4$",null,null,
"6^",
"yY",
"pP"],
6:[
"5%",null,null,
"7&",
"fF",
"yY"],
7:[
"6^",null,null,
"8*",
"gG",
"fF"],
8:[
"7&",null,null,
"9(",
"cC",
"gG"],
9:[
"8*",null,null,
"0)",
"rR",
"cC"],
":":[null,
"aA",
"oO",
"qQ",null,null],
";":[null,
"aA",
"oO",
"qQ",null,null],
"<":[
"'\"","2@
","3#
",".
>","oO
","aA
"],"=
":["/?
","]}
",null,"\\|
",null,"-_
"],">":[",<
","3#
","4$
","pP
","eE
","oO
"],"?
":["lL
","[{
","]}
","=+
","-_
","sS
"],"@
":["1!
",null,null,"3#
",",<
","'\
""],A:[null,
"'\"",",<
","oO
",";:
",null],B:["xX
","dD
","hH
","mM
",null,null],C:["gG
","8*
","9(
","rR
","tT
","hH
"],D:["iI
","fF
","gG
","hH
","bB
","xX
"],E:["oO
",".
>","pP
","uU
","jJ
","qQ
"],F:["yY
","6^
","7&
","gG
","dD
","iI
"],G:["fF
","7&
","8*
","cC
","hH
","dD
"],H:["dD
","gG
","cC
","tT
","mM
","bB
"],I:["uU
","yY
","fF
","dD
","xX
","kK
"],J:["qQ
","eE
","uU
","kK
",null,null],K:["jJ
","uU
","iI
","xX
",null,null],L:["rR
","0)
","[{
","/?
","sS
","nN
"],M:["bB
","hH
","tT
","wW
",null,null],N:["tT
","rR
","lL
","sS
","vV
","wW
"],O:["aA
",",<
",".
>","eE
","qQ
",";:
"],P:[".
>","4$
","5%
","yY
","uU
","eE
"],Q:[";:
","oO
","eE
","jJ
",null,null],R:["cC
","9(
","0)
","lL
","nN
","tT
"],S:["nN
","lL
","/?
","-_
","zZ
","vV
"],T:["hH
","cC
","rR
","nN
","wW
","mM
"],U:["eE
","pP
","yY
","iI
","kK
","jJ
"],V:["wW
","nN
","sS
","zZ
",null,null],W:["mM
","tT
","nN
","vV
",null,null],X:["kK
","iI
","dD
","bB
",null,null],Y:["pP
","5%
","6^
","fF
","iI
","uU
"],Z:["vV
","sS
","-_
",null,null,null],"[
":["0)
",null,null,"]}
","/?
","lL
"],"\\
":["=+
",null,null,null,null,null],"]
":["[{
",null,null,null,"=+
","/?
"],"^
":["5%
",null,null,"7&
","fF
","yY
"],_:["sS
","/?
","=+
",null,null,"zZ
"],"`
":[null,null,null,"1!
",null,null],a:[null,"'\
"",
",<",
"oO",
";:",null],b:[
"xX",
"dD",
"hH",
"mM",null,null],c:[
"gG",
"8*",
"9(",
"rR",
"tT",
"hH"],d:[
"iI",
"fF",
"gG",
"hH",
"bB",
"xX"],e:[
"oO",
".>",
"pP",
"uU",
"jJ",
"qQ"],f:[
"yY",
"6^",
"7&",
"gG",
"dD",
"iI"],g:[
"fF",
"7&",
"8*",
"cC",
"hH",
"dD"],h:[
"dD",
"gG",
"cC",
"tT",
"mM",
"bB"],i:[
"uU",
"yY",
"fF",
"dD",
"xX",
"kK"],j:[
"qQ",
"eE",
"uU",
"kK",null,null],k:[
"jJ",
"uU",
"iI",
"xX",null,null],l:[
"rR",
"0)",
"[{",
"/?",
"sS",
"nN"],m:[
"bB",
"hH",
"tT",
"wW",null,null],n:[
"tT",
"rR",
"lL",
"sS",
"vV",
"wW"],o:[
"aA",
",<",
".>",
"eE",
"qQ",
";:"],p:[
".>",
"4$",
"5%",
"yY",
"uU",
"eE"],q:[
";:",
"oO",
"eE",
"jJ",null,null],r:[
"cC",
"9(",
"0)",
"lL",
"nN",
"tT"],s:[
"nN",
"lL",
"/?",
"-_",
"zZ",
"vV"],t:[
"hH",
"cC",
"rR",
"nN",
"wW",
"mM"],u:[
"eE",
"pP",
"yY",
"iI",
"kK",
"jJ"],v:[
"wW",
"nN",
"sS",
"zZ",null,null],w:[
"mM",
"tT",
"nN",
"vV",null,null],x:[
"kK",
"iI",
"dD",
"bB",null,null],y:[
"pP",
"5%",
"6^",
"fF",
"iI",
"uU"],z:[
"vV",
"sS",
"-_",null,null,null],
"{":[
"0)",null,null,
"]}",
"/?",
"lL"],
"|":[
"=+",null,null,null,null,null],
"}":[
"[{",null,null,null,
"=+",
"/?"],
"~":[null,null,null,
"1!",null,null]},keypad:{
"*":[
"/",null,null,null,
"-",
"+",
"9",
"8"],
"+":[
"9",
"*",
"-",null,null,null,null,
"6"],
"-":[
"*",null,null,null,null,null,
"+",
"9"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[null,null,null,null,
"*",
"9",
"8",
"7"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",null,null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"+",null,null,
"3",
"2"],
7:[null,null,null,
"/",
"8",
"5",
"4",null],
8:[
"7",null,
"/",
"*",
"9",
"6",
"5",
"4"],
9:[
"8",
"/",
"*",
"-",
"+",null,
"6",
"5"]},mac_keypad:{
"*":[
"/",null,null,null,null,null,
"-",
"9"],
"+":[
"6",
"9",
"-",null,null,null,null,
"3"],
"-":[
"9",
"/",
"*",null,null,null,
"+",
"6"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[
"=",null,null,null,
"*",
"-",
"9",
"8"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",
"+",null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"-",
"+",null,
"3",
"2"],
7:[null,null,null,
"=",
"8",
"5",
"4",null],
8:[
"7",null,
"=",
"/",
"9",
"6",
"5",
"4"],
9:[
"8",
"=",
"/",
"*",
"-",
"+",
"6",
"5"],
"=":[null,null,null,null,
"/",
"9",
"8",
"7"]}},module.exports=adjacency_graphs;
45753 },{}],
2:[function(require,module,exports){
45754 var feedback,scoring;scoring=require(
"./scoring"),feedback={default_feedback:{warning:
"",suggestions:[
"Use a few words, avoid common phrases",
"No need for symbols, digits, or uppercase letters"]},get_feedback:function(e,s){var a,t,r,n,o,i;if(
0===s.length)return this.default_feedback;if(e
>2)return{warning:
"",suggestions:[]};for(n=s[
0],i=s.slice(
1),t=
0,r=i.length;t
<r;t++)o=i[t],o.token.length
>n.token.length&&(n=o);return feedback=this.get_match_feedback(n,
1===s.length),
a="Add another word or two. Uncommon words are better.",null!=feedback?(feedback.suggestions.unshift(a),null==feedback.warning&&(feedback.
warning="")):feedback={warning:"",suggestions:[a]},feedback},get_match_feedback:function(e,s){var a,t;switch(e.pattern){case"dictionary":return this.get_dictionary_match_feedback(e,s);case"spatial":return a=e.graph.toUpperCase(),t=
1===e.turns?"Straight rows of keys are easy to guess":"Short keyboard patterns are easy to guess",{warning:t,suggestions:["Use a longer keyboard pattern with more turns"]};case"repeat":return t=
1===e.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',{warning:t,suggestions:["Avoid repeated words and characters"]};case"sequence":return{warning:"Sequences like abc or
6543 are easy to guess",suggestions:["Avoid sequences"]};case"regex":if("recent_year"===e.regex_name)return{warning:"Recent years are easy to guess",suggestions:["Avoid recent years","Avoid years that are associated with you"]};break;case"date":return{warning:"Dates are often easy to guess",suggestions:["Avoid dates and years that are associated with you"]}}},get_dictionary_match_feedback:function(e,s){var a,t,r,n,o;return
n="passwords"===e.dictionary_name?!s||e.l33t||e.reversed?e.guesses_log10<=
4?"This is similar to a commonly used password":void
0:e.rank<=
10?"This is a top-
10 common password":e.rank<=
100?"This is a top-
100 common password":"This is a very common password":"english"===e.dictionary_name?s?"A word by itself is easy to guess":void
0:"surnames"===(a=e.dictionary_name)||"male_names"===a||"female_names"===a?s?"Names and surnames by themselves are easy to guess":"Common names and surnames are easy to guess":"",r=[],o=e.token,o.match(scoring.START_UPPER)?r.push("Capitalization doesn't help very much"):o.match(scoring.ALL_UPPER)&&o.toLowerCase()!==o&&r.push("All-uppercase is almost as easy to guess as all-lowercase"),e.reversed&&e.token.length
>=
4&&r.push("Reversed words aren't much harder to guess"),e.l33t&&r.push("Predictable substitutions like '@' instead of 'a' don't help very much"),t={warning:n,suggestions:r}}},module.exports=feedback;
45756 },{"./scoring":
6}],
3:[function(require,module,exports){
45757 var frequency_lists;frequency_lists={passwords:"
123456,password,
12345678,qwerty,
123456789,
12345,
1234,
111111,
1234567,dragon,
123123,baseball,abc123,football,monkey,letmein,shadow,master,
696969,mustang,
666666,qwertyuiop,
123321,
1234567890,pussy,superman,
654321,
1qaz2wsx,
7777777,fuckyou,qazwsx,jordan,
123qwe,
000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,
112233,zxcvbn,freedom,princess,maggie,pass,ginger,
11111111,
131313,fuck,love,cheese,
159753,summer,chelsea,dallas,biteme,matrix,yankees,
6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,
1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,
123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,
1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,
12344321,blowjob,
8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,
123abc,slipknot,qazxsw,
123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,
159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,
789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,
1q2w3e4r5t,sydney,gators,dexter,red123,
123456q,
12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,
5150,fucking,apollo,
1qazxsw2,
2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,
4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,
01012011,girls,bigboy,
102030,animal,police,online,
11223344,voyager,lifehack,
12qwaszx,fish,sniper,
315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,
789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,
007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,
147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,
12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,
111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,
147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,
010203,lizard,a123456,
123456789a,ruslan,eagle,
1232323q,scarface,qwerty12,
147852,a12345,buddha,porno,
420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,
12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,
123789,infinity,assman,bulldogs,fantasy,sucker,
1234554321,horney,domino,budlight,disney,ironman,usuckballz1,softball,brutus,redrum,bigred,mnbvcxz,fktrcfylh,karina,marines,digger,kawasaki,cougar,fireman,oksana,monday,cunt,justice,nigger,super,wildcats,tinker,logitech,dancer,swordfis,avalon,everton,alexandr,motorola,patriots,hentai,madonna,pussy1,ducati,colorado,connor,juventus,galore,smooth,freeuser,warcraft,boogie,titanic,wolverin,elizabet,arizona,valentin,saints,asdfg,accord,test123,password123,christ,yfnfif,stinky,slut,spiderma,naughty,chopper,hello123,ncc1701d,extreme,skyline,poop,zombie,pearljam,
123qweasd,froggy,awesome,vision,pirate,fylhtq,dreamer,bullet,predator,empire,
123123a,kirill,charlie1,panthers,penis,skipper,nemesis,rasdzv3,peekaboo,rolltide,cardinal,psycho,danger,mookie,happy1,wanker,chevelle,manutd,goblue,
9379992,hobbes,vegeta,fyfcnfcbz,
852456,picard,
159951,windows,loverboy,victory,vfrcbv,bambam,serega,
123654789,turkey,tweety,galina,hiphop,rooster,changeme,berlin,taurus,suckme,polina,electric,avatar,
134679,maksim,raptor,alpha1,hendrix,newport,bigcock,brazil,spring,a1b2c3,madmax,alpha,britney,sublime,darkside,bigman,wolfpack,classic,hercules,ronaldo,letmein1,
1q2w3e,
741852963,spiderman,blizzard,
123456789q,cheyenne,cjkysirj,tiger1,wombat,bubba1,pandora,zxc123,holiday,wildcat,devils,horse,alabama,
147852369,caesar,
12312,buddy1,bondage,pussycat,pickle,shaggy,catch22,leather,chronic,a1b2c3d4,admin,qqq111,qaz123,airplane,kodiak,freepass,billybob,sunset,katana,phpbb,chocolat,snowman,angel1,stingray,firebird,wolves,zeppelin,detroit,pontiac,gundam,panzer,vagina,outlaw,redhead,tarheels,greenday,nastya,
01011980,hardon,engineer,dragon1,hellfire,serenity,cobra,fireball,lickme,darkstar,
1029384756,
01011,mustang1,flash,
124578,strike,beauty,pavilion,
01012000,bobafett,dbrnjhbz,bigmac,bowling,chris1,ytrewq,natali,pyramid,rulez,welcome1,dodgers,apache,swimming,whynot,teens,trooper,fuckit,defender,precious,
135790,packard,weasel,popeye,lucifer,cancer,icecream,
142536,raven,swordfish,presario,viktor,rockstar,blonde,james1,wutang,spike,pimp,atlanta,airforce,thailand,casino,lennon,mouse,
741852,hacker,bluebird,hawkeye,
456123,theone,catfish,sailor,goldfish,nfnmzyf,tattoo,pervert,barbie,maxima,nipples,machine,trucks,wrangler,rocks,tornado,lights,cadillac,bubble,pegasus,madman,longhorn,browns,target,
666999,eatme,qazwsx123,microsoft,dilbert,christia,baller,lesbian,shooter,xfiles,seattle,qazqaz,cthutq,amateur,prelude,corona,freaky,malibu,
123qweasdzxc,assassin,
246810,atlantis,integra,pussies,iloveu,lonewolf,dragons,monkey1,unicorn,software,bobcat,stealth,peewee,openup,
753951,srinivas,zaqwsx,valentina,shotgun,trigger,veronika,bruins,coyote,babydoll,joker,dollar,lestat,rocky1,hottie,random,butterfly,wordpass,smiley,sweety,snake,chipper,woody,samurai,devildog,gizmo,maddie,soso123aljg,mistress,freedom1,flipper,express,hjvfirf,moose,cessna,piglet,polaris,teacher,montreal,cookies,wolfgang,scully,fatboy,wicked,balls,tickle,bunny,dfvgbh,foobar,transam,pepsi,fetish,oicu812,basketba,toshiba,hotstuff,sunday,booty,gambit,
31415926,impala,stephani,jessica1,hooker,lancer,knicks,shamrock,fuckyou2,stinger,
314159,redneck,deftones,squirt,siemens,blaster,trucker,subaru,renegade,ibanez,manson,swinger,reaper,blondie,mylove,galaxy,blahblah,enterpri,travel,
1234abcd,babylon5,indiana,skeeter,master1,sugar,ficken,smoke,bigone,sweetpea,fucked,trfnthbyf,marino,escort,smitty,bigfoot,babes,larisa,trumpet,spartan,valera,babylon,asdfghj,yankees1,bigboobs,stormy,mister,hamlet,aardvark,butterfl,marathon,paladin,cavalier,manchester,skater,indigo,hornet,buckeyes,
01011990,indians,karate,hesoyam,toronto,diamonds,chiefs,buckeye,
1qaz2wsx3edc,highland,hotsex,charger,redman,passwor,maiden,drpepper,storm,pornstar,garden,
12345678910,pencil,sherlock,timber,thuglife,insane,pizza,jungle,jesus1,aragorn,
1a2b3c,hamster,david1,triumph,techno,lollol,pioneer,catdog,
321654,fktrctq,morpheus,
141627,pascal,shadow1,hobbit,wetpussy,erotic,consumer,blabla,justme,stones,chrissy,spartak,goforit,burger,pitbull,adgjmptw,italia,barcelona,hunting,colors,kissme,virgin,overlord,pebbles,sundance,emerald,doggy,racecar,irina,element,
1478963,zipper,alpine,basket,goddess,poison,nipple,sakura,chichi,huskers,
13579,pussys,q12345,ultimate,ncc1701e,blackie,nicola,rommel,matthew1,caserta,omega,geronimo,sammy1,trojan,
123qwe123,philips,nugget,tarzan,chicks,aleksandr,bassman,trixie,portugal,anakin,dodger,bomber,superfly,madness,q1w2e3r4t5y6,loser,
123asd,fatcat,ybrbnf,soldier,warlock,wrinkle1,desire,sexual,babe,seminole,alejandr,
951753,
11235813,westham,andrei,concrete,access14,weed,letmein2,ladybug,naked,christop,trombone,tintin,bluesky,rhbcnbyf,qazxswedc,onelove,cdtnkfyf,whore,vfvjxrf,titans,stallion,truck,hansolo,blue22,smiles,beagle,panama,kingkong,flatron,inferno,mongoose,connect,poiuyt,snatch,qawsed,juice,blessed,rocker,snakes,turbo,bluemoon,sex4me,finger,jamaica,a1234567,mulder,beetle,fuckyou1,passat,immortal,plastic,
123454321,anthony1,whiskey,dietcoke,suck,spunky,magic1,monitor,cactus,exigen,planet,ripper,teen,spyder,apple1,nolimit,hollywoo,sluts,sticky,trunks,
1234321,
14789632,pickles,sailing,bonehead,ghbdtnbr,delta,charlott,rubber,
911911,
112358,molly1,yomama,hongkong,jumper,william1,ilovesex,faster,unreal,cumming,memphis,
1123581321,nylons,legion,sebastia,shalom,pentium,geheim,werewolf,funtime,ferret,orion,curious,
555666,niners,cantona,sprite,philly,pirates,abgrtyu,lollipop,eternity,boeing,super123,sweets,cooldude,tottenha,green1,jackoff,stocking,
7895123,moomoo,martini,biscuit,drizzt,colt45,fossil,makaveli,snapper,satan666,maniac,salmon,patriot,verbatim,nasty,shasta,asdzxc,shaved,blackcat,raistlin,qwerty12345,punkrock,cjkywt,
01012010,
4128,waterloo,crimson,twister,oxford,musicman,seinfeld,biggie,condor,ravens,megadeth,wolfman,cosmos,sharks,banshee,keeper,foxtrot,gn56gn56,skywalke,velvet,black1,sesame,dogs,squirrel,privet,sunrise,wolverine,sucks,legolas,grendel,ghost,cats,carrot,frosty,lvbnhbq,blades,stardust,frog,qazwsxed,
121314,coolio,brownie,groovy,twilight,daytona,vanhalen,pikachu,peanuts,licker,hershey,jericho,intrepid,ninja,
1234567a,zaq123,lobster,goblin,punisher,strider,shogun,kansas,amadeus,seven7,jason1,neptune,showtime,muscle,oldman,ekaterina,rfrfirf,getsome,showme,
111222333,obiwan,skittles,danni,tanker,maestro,tarheel,anubis,hannibal,anal,newlife,gothic,shark,fighter,blue123,blues,
123456z,princes,slick,chaos,thunder1,sabine,
1q2w3e4r5t6y,python,test1,mirage,devil,clover,tequila,chelsea1,surfing,delete,potato,chubby,panasonic,sandiego,portland,baggins,fusion,sooners,blackdog,buttons,californ,moscow,playtime,mature,
1a2b3c4d,dagger,dima,stimpy,asdf123,gangster,warriors,iverson,chargers,byteme,swallow,liquid,lucky7,dingdong,nymets,cracker,mushroom,
456852,crusader,bigguy,miami,dkflbvbh,bugger,nimrod,tazman,stranger,newpass,doodle,powder,gotcha,guardian,dublin,slapshot,septembe,
147896325,pepsi1,milano,grizzly,woody1,knights,photos,
2468,nookie,charly,rammstein,brasil,
123321123,scruffy,munchkin,poopie,
123098,kittycat,latino,walnut,
1701,thegame,viper1,
1passwor,kolobok,picasso,robert1,barcelon,bananas,trance,auburn,coltrane,eatshit,goodluck,starcraft,wheels,parrot,postal,blade,wisdom,pink,gorilla,katerina,pass123,andrew1,shaney14,dumbass,osiris,fuck_inside,oakland,discover,ranger1,spanking,lonestar,bingo,meridian,ping,heather1,dookie,stonecol,megaman,
192837465,rjntyjr,ledzep,lowrider,
25802580,richard1,firefly,griffey,racerx,paradox,ghjcnj,gangsta,zaq1xsw2,tacobell,weezer,sirius,halflife,buffett,shiloh,
123698745,vertigo,sergei,aliens,sobaka,keyboard,kangaroo,sinner,soccer1,
0.0.000,bonjour,socrates,chucky,hotboy,sprint,
0007,sarah1,scarlet,celica,shazam,formula1,sommer,trebor,qwerasdf,jeep,mailcreated5240,bollox,asshole1,fuckface,honda1,rebels,vacation,lexmark,penguins,
12369874,ragnarok,formula,
258456,tempest,vfhecz,tacoma,qwertz,colombia,flames,rockon,duck,prodigy,wookie,dodgeram,mustangs,
123qaz,sithlord,smoker,server,bang,incubus,scoobydo,oblivion,molson,kitkat,titleist,rescue,zxcv1234,carpet,
1122,bigballs,tardis,jimbob,xanadu,blueeyes,shaman,mersedes,pooper,pussy69,golfing,hearts,mallard,
12312312,kenwood,patrick1,dogg,cowboys1,oracle,
123zxc,nuttertools,
102938,topper,
1122334455,shemale,sleepy,gremlin,yourmom,
123987,gateway1,printer,monkeys,peterpan,mikey,kingston,cooler,analsex,jimbo,pa55word,asterix,freckles,birdman,frank1,defiant,aussie,stud,blondes,tatyana,
445566,aspirine,mariners,jackal,deadhead,katrin,anime,rootbeer,frogger,polo,scooter1,hallo,noodles,thomas1,parola,shaolin,celine,
11112222,plymouth,creampie,justdoit,ohyeah,fatass,assfuck,amazon,
1234567q,kisses,magnus,camel,nopass,bosco,
987456,
6751520,harley1,putter,champs,massive,spidey,lightnin,camelot,letsgo,gizmodo,aezakmi,bones,caliente,
12121,goodtime,thankyou,raiders1,brucelee,redalert,aquarius,
456654,catherin,smokin,pooh,mypass,astros,roller,porkchop,sapphire,qwert123,kevin1,a1s2d3f4,beckham,atomic,rusty1,vanilla,qazwsxedcrfv,hunter1,kaktus,cxfcnmt,blacky,
753159,elvis1,aggies,blackjac,bangkok,scream,
123321q,iforgot,power1,kasper,abc12,buster1,slappy,shitty,veritas,chevrole,amber1,
01012001,vader,amsterdam,jammer,primus,spectrum,eduard,granny,horny1,sasha1,clancy,usa123,satan,diamond1,hitler,avenger,
1221,spankme,
123456qwerty,simba,smudge,scrappy,labrador,john316,syracuse,front242,falcons,husker,candyman,commando,gator,pacman,delta1,pancho,krishna,fatman,clitoris,pineappl,lesbians,
8j4ye3uz,barkley,vulcan,punkin,boner,celtics,monopoly,flyboy,romashka,hamburg,
123456aa,lick,gangbang,
223344,area51,spartans,aaa111,tricky,snuggles,drago,homerun,vectra,homer1,hermes,topcat,cuddles,infiniti,
1234567890q,cosworth,goose,phoenix1,killer1,ivanov,bossman,qawsedrf,peugeot,exigent,doberman,durango,brandon1,plumber,telefon,horndog,laguna,rbhbkk,dawg,webmaster,breeze,beast,porsche9,beefcake,leopard,redbull,oscar1,topdog,godsmack,theking,pics,omega1,speaker,viktoria,fuckers,bowler,starbuck,gjkbyf,valhalla,anarchy,blacks,herbie,kingpin,starfish,nokia,loveit,achilles,
906090,labtec,ncc1701a,fitness,jordan1,brando,arsenal1,bull,kicker,napass,desert,sailboat,bohica,tractor,hidden,muppet,jackson1,jimmy1,terminator,phillies,pa55w0rd,terror,farside,swingers,legacy,frontier,butthole,doughboy,jrcfyf,tuesday,sabbath,daniel1,nebraska,homers,qwertyuio,azamat,fallen,agent007,striker,camels,iguana,looker,pinkfloy,moloko,qwerty123456,dannyboy,luckydog,
789654,pistol,whocares,charmed,skiing,select,franky,puppy,daniil,vladik,vette,vfrcbvrf,ihateyou,nevada,moneys,vkontakte,mandingo,puppies,
666777,mystic,zidane,kotenok,dilligaf,budman,bunghole,zvezda,
123457,triton,golfball,technics,trojans,panda,laptop,rookie,
01011991,
15426378,aberdeen,gustav,jethro,enterprise,igor,stripper,filter,hurrican,rfnthbyf,lespaul,gizmo1,butch,
132435,dthjybrf,
1366613,excalibu,
963852,nofear,momoney,possum,cutter,oilers,moocow,cupcake,gbpltw,batman1,splash,svetik,super1,soleil,bogdan,melissa1,vipers,babyboy,tdutybq,lancelot,ccbill,keystone,passwort,flamingo,firefox,dogman,vortex,rebel,noodle,raven1,zaphod,killme,pokemon1,coolman,danila,designer,skinny,kamikaze,deadman,gopher,doobie,warhammer,deeznuts,freaks,engage,chevy1,steve1,apollo13,poncho,hammers,azsxdc,dracula,
000007,sassy,bitch1,boots,deskjet,
12332,macdaddy,mighty,rangers1,manchest,sterlin,casey1,meatball,mailman,sinatra,cthulhu,summer1,bubbas,cartoon,bicycle,eatpussy,truelove,sentinel,tolkien,breast,capone,lickit,summit,
123456k,peter1,daisy1,kitty1,
123456789z,crazy1,jamesbon,texas1,sexygirl,
362436,sonic,billyboy,redhot,microsof,microlab,daddy1,rockets,iloveyo,fernand,gordon24,danie,cutlass,polska,star69,titties,pantyhos,
01011985,thekid,aikido,gofish,mayday,
1234qwe,coke,anfield,sony,lansing,smut,scotch,sexx,catman,
73501505,hustler,saun,dfkthbz,passwor1,jenny1,azsxdcfv,cheers,irish1,gabrie,tinman,orioles,
1225,charlton,fortuna,
01011970,airbus,rustam,xtreme,bigmoney,zxcasd,retard,grumpy,huskies,boxing,
4runner,kelly1,ultima,warlord,fordf150,oranges,rotten,asdfjkl,superstar,denali,sultan,bikini,saratoga,thor,figaro,sixers,wildfire,vladislav,
128500,sparta,mayhem,greenbay,chewie,music1,number1,cancun,fabie,mellon,poiuytrewq,cloud9,crunch,bigtime,chicken1,piccolo,bigbird,
321654987,billy1,mojo,
01011981,maradona,sandro,chester1,bizkit,rjirfrgbde,
789123,rightnow,jasmine1,hyperion,treasure,meatloaf,armani,rovers,jarhead,
01011986,cruise,coconut,dragoon,utopia,davids,cosmo,rfhbyf,reebok,
1066,charli,giorgi,sticks,sayang,pass1234,exodus,anaconda,zaqxsw,illini,woofwoof,emily1,sandy1,packer,poontang,govols,jedi,tomato,beaner,cooter,creamy,lionking,happy123,albatros,poodle,kenworth,dinosaur,greens,goku,happyday,eeyore,tsunami,cabbage,holyshit,turkey50,memorex,chaser,bogart,orgasm,tommy1,volley,whisper,knopka,ericsson,walleye,
321123,pepper1,katie1,chickens,tyler1,corrado,twisted,
100000,zorro,clemson,zxcasdqwe,tootsie,milana,zenith,fktrcfylhf,shania,frisco,polniypizdec0211,crazybab,junebug,fugazi,rereirf,vfvekz,
1001,sausage,vfczyz,koshka,clapton,justin1,anhyeuem,condom,fubar,hardrock,skywalker,tundra,cocks,gringo,
150781,canon,vitalik,aspire,stocks,samsung1,applepie,abc12345,arjay,gandalf1,boob,pillow,sparkle,gmoney,rockhard,lucky13,samiam,everest,hellyeah,bigsexy,skorpion,rfrnec,hedgehog,australi,candle,slacker,dicks,voyeur,jazzman,america1,bobby1,br0d3r,wolfie,vfksirf,
1qa2ws3ed,
13243546,fright,yosemite,temp,karolina,fart,barsik,surf,cheetah,baddog,deniska,starship,bootie,milena,hithere,kume,greatone,dildo,
50cent,
0.0.0.000,albion,amanda1,midget,lion,maxell,football1,cyclone,freeporn,nikola,bonsai,kenshin,slider,balloon,roadkill,killbill,
222333,jerkoff,
78945612,dinamo,tekken,rambler,goliath,cinnamon,malaka,backdoor,fiesta,packers1,rastaman,fletch,sojdlg123aljg,stefano,artemis,calico,nyjets,damnit,robotech,duchess,rctybz,hooter,keywest,
18436572,hal9000,mechanic,pingpong,operator,presto,sword,rasputin,spank,bristol,faggot,shado,
963852741,amsterda,
321456,wibble,carrera,alibaba,majestic,ramses,duster,route66,trident,clipper,steeler,wrestlin,divine,kipper,gotohell,kingfish,snake1,passwords,buttman,pompey,viagra,zxcvbnm1,spurs,
332211,slutty,lineage2,oleg,macross,pooter,brian1,qwert1,charles1,slave,jokers,yzerman,swimmer,ne1469,nwo4life,solnce,seamus,lolipop,pupsik,moose1,ivanova,secret1,matador,love69,
420247,ktyjxrf,subway,cinder,vermont,pussie,chico,florian,magick,guiness,allsop,ghetto,flash1,a123456789,typhoon,dfkthf,depeche,skydive,dammit,seeker,fuckthis,crysis,kcj9wx5n,umbrella,r2d2c3po,
123123q,snoopdog,critter,theboss,ding,
162534,splinter,kinky,cyclops,jayhawk,
456321,caramel,qwer123,underdog,caveman,onlyme,grapes,feather,hotshot,fuckher,renault,george1,sex123,pippen,
000001,
789987,floppy,cunts,megapass,
1000,pornos,usmc,kickass,great1,quattro,
135246,wassup,helloo,p0015123,nicole1,chivas,shannon1,bullseye,java,fishes,blackhaw,jamesbond,tunafish,juggalo,dkflbckfd,
123789456,dallas1,translator,
122333,beanie,alucard,gfhjkm123,supersta,magicman,ashley1,cohiba,xbox360,caligula,
12131415,facial,
7753191,dfktynbyf,cobra1,cigars,fang,klingon,bob123,safari,looser,
10203,deepthroat,malina,
200000,tazmania,gonzo,goalie,jacob1,monaco,cruiser,misfit,vh5150,tommyboy,marino13,yousuck,sharky,vfhufhbnf,horizon,absolut,brighton,
123456r,death1,kungfu,maxx,forfun,mamapapa,enter1,budweise,banker,getmoney,kostya,qazwsx12,bigbear,vector,fallout,nudist,gunners,royals,chainsaw,scania,trader,blueboy,walrus,eastside,kahuna,qwerty1234,love123,steph,
01011989,cypress,champ,undertaker,ybrjkfq,europa,snowboar,sabres,moneyman,chrisbln,minime,nipper,groucho,whitey,viewsonic,penthous,wolf359,fabric,flounder,coolguy,whitesox,passme,smegma,skidoo,thanatos,fucku2,snapple,dalejr,mondeo,thesims,mybaby,panasoni,sinbad,thecat,topher,frodo,sneakers,q123456,z1x2c3,alfa,chicago1,taylor1,ghjcnjnfr,cat123,olivier,cyber,titanium,
0420,madison1,jabroni,dang,hambone,intruder,holly1,gargoyle,sadie1,static,poseidon,studly,newcastl,sexxxx,poppy,johannes,danzig,beastie,musica,buckshot,sunnyday,adonis,bluedog,bonkers,
2128506,chrono,compute,spawn,
01011988,turbo1,smelly,wapbbs,goldstar,ferrari1,
778899,quantum,pisces,boomboom,gunnar,
1024,test1234,florida1,nike,superman1,multiplelo,custom,motherlode,
1qwerty,westwood,usnavy,apple123,daewoo,korn,stereo,sasuke,sunflowe,watcher,dharma,
555777,mouse1,assholes,babyblue,
123qwerty,marius,walmart,snoop,starfire,tigger1,paintbal,knickers,aaliyah,lokomotiv,theend,winston1,sapper,rover,erotica,scanner,racer,zeus,sexy69,doogie,bayern,joshua1,newbie,scott1,losers,droopy,outkast,martin1,dodge1,wasser,ufkbyf,rjycnfynby,thirteen,
12345z,
112211,hotred,deejay,hotpussy,
192837,jessic,philippe,scout,panther1,cubbies,havefun,magpie,fghtkm,avalanch,newyork1,pudding,leonid,harry1,cbr600,audia4,bimmer,fucku,
01011984,idontknow,vfvfgfgf,
1357,aleksey,builder,
01011987,zerocool,godfather,mylife,donuts,allmine,redfish,
777888,sascha,nitram,bounce,
333666,smokes,
1x2zkg8w,rodman,stunner,zxasqw12,hoosier,hairy,beretta,insert,
123456s,rtyuehe,francesc,tights,cheese1,micron,quartz,hockey1,gegcbr,searay,jewels,bogey,paintball,celeron,padres,bing,syncmaster,ziggy,simon1,beaches,prissy,diehard,orange1,mittens,aleksandra,queens,
02071986,biggles,thongs,southpark,artur,twinkle,gretzky,rabota,cambiami,monalisa,gollum,chuckles,spike1,gladiator,whisky,spongebob,sexy1,
03082006,mazafaka,meathead,
4121,ou8122,barefoot,
12345678q,cfitymrf,bigass,a1s2d3,kosmos,blessing,titty,clevelan,terrapin,ginger1,johnboy,maggot,clarinet,deeznutz,
336699,stumpy,stoney,footbal,traveler,volvo,bucket,snapon,pianoman,hawkeyes,futbol,casanova,tango,goodboy,scuba,honey1,sexyman,warthog,mustard,abc1234,nickel,
10203040,meowmeow,
1012,boricua,prophet,sauron,
12qwas,reefer,andromeda,crystal1,joker1,
90210,goofy,loco,lovesex,triangle,whatsup,mellow,bengals,monster1,maste,
01011910,lover1,love1,
123aaa,sunshin,smeghead,hokies,sting,welder,rambo,cerberus,bunny1,rockford,monke,
1q2w3e4r5,goldwing,gabriell,buzzard,crjhgbjy,james007,rainman,groove,tiberius,purdue,nokia6300,hayabusa,shou,jagger,diver,zigzag,poochie,usarmy,phish,redwood,redwing,
12345679,salamander,silver1,abcd123,sputnik,boobie,ripple,eternal,
12qw34er,thegreat,allstar,slinky,gesperrt,mishka,whiskers,pinhead,overkill,sweet1,rhfcjnrf,montgom240,sersolution,jamie1,starman,proxy,swords,nikolay,bacardi,rasta,badgirl,rebecca1,wildman,penny1,spaceman,
1007,
10101,logan1,hacked,bulldog1,helmet,windsor,buffy1,runescape,trapper,
123451,banane,dbrnjh,ripken,
12345qwe,frisky,shun,fester,oasis,lightning,ib6ub9,cicero,kool,pony,thedog,
784512,
01011992,megatron,illusion,edward1,napster,
11223,squash,roadking,woohoo,
19411945,hoosiers,
01091989,tracker,bagira,midway,leavemealone,br549,
14725836,
235689,menace,rachel1,feng,laser,stoned,realmadrid,
787898,balloons,tinkerbell,
5551212,maria1,pobeda,heineken,sonics,moonlight,optimus,comet,orchid,
02071982,jaybird,kashmir,
12345678a,chuang,chunky,peach,mortgage,rulezzz,saleen,chuckie,zippy,fishing1,gsxr750,doghouse,maxim,reader,shai,buddah,benfica,chou,salomon,meister,eraser,blackbir,bigmike,starter,pissing,angus,deluxe,eagles1,hardcock,
135792468,mian,seahawks,godfathe,bookworm,gregor,intel,talisman,blackjack,babyface,hawaiian,dogfood,zhong,
01011975,sancho,ludmila,medusa,mortimer,
123456654321,roadrunn,just4me,stalin,
01011993,handyman,alphabet,pizzas,calgary,clouds,password2,cgfhnfr,f**k,cubswin,gong,lexus,max123,xxx123,digital1,gfhjkm1,
7779311,missy1,michae,beautifu,gator1,
1005,pacers,buddie,chinook,heckfy,dutchess,sally1,breasts,beowulf,darkman,jenn,tiffany1,zhei,quan,qazwsx1,satana,shang,idontkno,smiths,puddin,nasty1,teddybea,valkyrie,passwd,chao,boxster,killers,yoda,cheater,inuyasha,beast1,wareagle,foryou,dragonball,mermaid,bhbirf,teddy1,dolphin1,misty1,delphi,gromit,sponge,qazzaq,fytxrf,gameover,diao,sergi,beamer,beemer,kittykat,rancid,manowar,adam12,diggler,assword,austin1,wishbone,gonavy,sparky1,fisting,thedude,sinister,
1213,venera,novell,salsero,jayden,fuckoff1,linda1,vedder,
02021987,
1pussy,redline,lust,jktymrf,
02011985,dfcbkbq,dragon12,chrome,gamecube,titten,cong,bella1,leng,
02081988,eureka,bitchass,
147369,banner,lakota,
123321a,mustafa,preacher,hotbox,
02041986,z1x2c3v4,playstation,
01011977,claymore,electra,checkers,zheng,qing,armagedon,
02051986,wrestle,svoboda,bulls,nimbus,alenka,madina,newpass6,onetime,aa123456,bartman,
02091987,silverad,electron,
12345t,devil666,oliver1,skylar,rhtdtlrj,gobucks,johann,
12011987,milkman,
02101985,camper,thunderb,bigbutt,jammin,davide,cheeks,goaway,lighter,claudi,thumbs,pissoff,ghostrider,cocaine,teng,squall,lotus,hootie,blackout,doitnow,subzero,
02031986,marine1,
02021988,pothead,
123456qw,skate,
1369,peng,antoni,neng,miao,bcfields,
1492,marika,
794613,musashi,tulips,nong,piao,chai,ruan,southpar,
02061985,nude,mandarin,
654123,ninjas,cannabis,jetski,xerxes,zhuang,kleopatra,dickie,bilbo,pinky,morgan1,
1020,
1017,dieter,baseball1,tottenham,quest,yfnfkmz,dirtbike,
1234567890a,mango,jackson5,ipswich,iamgod,
02011987,tdutybz,modena,qiao,slippery,qweasd123,bluefish,samtron,toon,
111333,iscool,
02091986,petrov,fuzzy,zhou,
1357924680,mollydog,deng,
02021986,
1236987,pheonix,zhun,ghblehjr,othello,starcraf,
000111,sanfran,a11111,cameltoe,badman,vasilisa,jiang,
1qaz2ws,luan,sveta,
12qw12,akira,chuai,
369963,cheech,beatle,pickup,paloma,
01011983,caravan,elizaveta,gawker,banzai,pussey,mullet,seng,bingo1,bearcat,flexible,farscape,borussia,zhuai,templar,guitar1,toolman,yfcntymrf,chloe1,xiang,slave1,guai,nuggets,
02081984,mantis,slim,scorpio1,fyutkbyf,thedoors,
02081987,
02061986,
123qq123,zappa,fergie,
7ugd
5hip
2j,huai,asdfzxcv,sunflower,pussyman,deadpool,bigtit,
01011982,love12,lassie,skyler,gatorade,carpedie,jockey,mancity,spectre,
02021984,cameron1,artemka,reng,
02031984,iomega,jing,moritz,spice,rhino,spinner,heater,zhai,hover,talon,grease,qiong,corleone,ltybcrf,tian,cowboy1,hippie,chimera,ting,alex123,
02021985,mickey1,corsair,sonoma,aaron1,xxxpass,bacchus,webmaste,chuo,xyz123,chrysler,spurs1,artem,shei,cosmic,
01020304,deutsch,gabriel1,
123455,oceans,
987456321,binladen,latinas,a12345678,speedo,buttercu,
02081989,
21031988,merlot,millwall,ceng,kotaku,jiong,dragonba,
2580,stonecold,snuffy,
01011999,
02011986,hellos,blaze,maggie1,slapper,istanbul,bonjovi,babylove,mazda,bullfrog,phoeni,meng,porsche1,nomore,
02061989,bobdylan,capslock,orion1,zaraza,teddybear,ntktajy,myname,rong,wraith,mets,niao,
02041984,smokie,chevrolet,dialog,gfhjkmgfhjkm,dotcom,vadim,monarch,athlon,mikey1,hamish,pian,liang,coolness,chui,thoma,ramones,ciccio,chippy,eddie1,house1,ning,marker,cougars,jackpot,barbados,reds,pdtplf,knockers,cobalt,amateurs,dipshit,napoli,kilroy,pulsar,jayhawks,daemon,alexey,weng,shuang,
9293709b13,shiner,eldorado,soulmate,mclaren,golfer1,andromed,duan,
50spanks,sexyboy,dogshit,
02021983,shuo,kakashka,syzygy,
111111a,yeahbaby,qiang,netscape,fulham,
120676,gooner,zhui,rainbow6,laurent,dog123,halifax,freeway,carlitos,
147963,eastwood,microphone,monkey12,
1123,persik,coldbeer,geng,nuan,danny1,fgtkmcby,entropy,gadget,just4fun,sophi,baggio,carlito,
1234567891,
02021989,
02041983,specialk,piramida,suan,bigblue,salasana,hopeful,mephisto,bailey1,hack,annie1,generic,violetta,spencer1,arcadia,
02051983,hondas,
9562876,trainer,jones1,smashing,liao,
159632,iceberg,rebel1,snooker,temp123,zang,matteo,fastball,q2w3e4r5,bamboo,fuckyo,shutup,astro,buddyboy,nikitos,redbird,maxxxx,shitface,
02031987,kuai,kissmyass,sahara,radiohea,
1234asdf,wildcard,maxwell1,patric,plasma,heynow,bruno1,shao,bigfish,misfits,sassy1,sheng,
02011988,
02081986,testpass,nanook,cygnus,licking,slavik,pringles,xing,
1022,ninja1,submit,dundee,tiburon,pinkfloyd,yummy,shuai,guang,chopin,obelix,insomnia,stroker,
1a2s3d4f,
1223,playboy1,lazarus,jorda,spider1,homerj,sleeper,
02041982,darklord,cang,
02041988,
02041987,tripod,magician,jelly,telephon,
15975,vsjasnel12,pasword,iverson3,pavlov,homeboy,gamecock,amigo,brodie,budapest,yjdsqgfhjkm,reckless,
02011980,pang,tiger123,
2469,mason1,orient,
01011979,zong,cdtnbr,maksimka,
1011,bushido,taxman,giorgio,sphinx,kazantip,
02101984,concorde,verizon,lovebug,georg,sam123,seadoo,qazwsxedc123,jiao,jezebel,pharmacy,abnormal,jellybea,maxime,puffy,islander,bunnies,jiggaman,drakon,
010180,pluto,zhjckfd,
12365,classics,crusher,mordor,hooligan,strawberry,
02081985,scrabble,hawaii50,
1224,wg8e3wjf,cthtuf,premium,arrow,
123456qwe,mazda626,ramrod,tootie,rhjrjlbk,ghost1,
1211,bounty,niang,
02071984,goat,killer12,sweetnes,porno1,masamune,
426hemi,corolla,mariposa,hjccbz,doomsday,bummer,blue12,zhao,bird33,excalibur,samsun,kirsty,buttfuck,kfhbcf,zhuo,marcello,ozzy,
02021982,dynamite,
655321,master12,
123465,lollypop,stepan,
1qa2ws,spiker,goirish,callum,michael2,moonbeam,attila,henry1,lindros,andrea1,sporty,lantern,
12365478,nextel,violin,volcom,
998877,water1,imation,inspiron,dynamo,citadel,placebo,clowns,tiao,
02061988,tripper,dabears,haggis,merlin1,
02031985,anthrax,amerika,iloveme,vsegda,burrito,bombers,snowboard,forsaken,katarina,a1a2a3,woofer,tigger2,fullmoon,tiger2,spock,hannah1,snoopy1,sexxxy,sausages,stanislav,cobain,robotics,exotic,green123,mobydick,senators,pumpkins,fergus,asddsa,
147741,
258852,windsurf,reddevil,vfitymrf,nevermind,nang,woodland,
4417,mick,shui,q1q2q3,wingman,
69696,superb,zuan,ganesh,pecker,zephyr,anastasiya,icu812,larry1,
02081982,broker,zalupa,mihail,vfibyf,dogger,
7007,paddle,varvara,schalke,
1z2x3c,presiden,yankees2,tuning,poopy,
02051982,concord,vanguard,stiffy,rjhjktdf,felix1,wrench,firewall,boxer,bubba69,popper,
02011984,temppass,gobears,cuan,tipper,fuckme1,kamila,thong,puss,bigcat,drummer1,
02031982,sowhat,digimon,tigers1,rang,jingle,bian,uranus,soprano,mandy1,dusty1,fandango,aloha,pumpkin1,postman,
02061980,dogcat,bombay,pussy123,onetwo,highheel,pippo,julie1,laura1,pepito,beng,smokey1,stylus,stratus,reload,duckie,karen1,jimbo1,
225588,
369258,krusty,snappy,asdf12,electro,
111qqq,kuang,fishin,clit,abstr,christma,qqqqq1,
1234560,carnage,guyver,boxers,kittens,zeng,
1000000,qwerty11,toaster,cramps,yugioh,
02061987,icehouse,zxcvbnm123,pineapple,namaste,harrypotter,mygirl,falcon1,earnhard,fender1,spikes,nutmeg,
01081989,dogboy,
02091983,
369852,softail,mypassword,prowler,bigboss,
1112,harvest,heng,jubilee,killjoy,basset,keng,zaqxswcde,redsox1,biao,titan,misfit99,robot,wifey,kidrock,
02101987,gameboy,enrico,
1z2x3c4v,broncos1,arrows,havana,banger,cookie1,chriss,
123qw,platypus,cindy1,lumber,pinball,foxy,london1,
1023,
05051987,
02041985,password12,superma,longbow,radiohead,nigga,
12051988,spongebo,qwert12345,abrakadabra,dodgers1,
02101989,chillin,niceguy,pistons,hookup,santafe,bigben,jets,
1013,vikings1,mankind,viktoriya,beardog,hammer1,
02071980,reddwarf,magelan,longjohn,jennife,gilles,carmex2,
02071987,stasik,bumper,doofus,slamdunk,pixies,garion,steffi,alessandro,beerman,niceass,warrior1,honolulu,
134679852,visa,johndeer,mother1,windmill,boozer,oatmeal,aptiva,busty,delight,tasty,slick1,bergkamp,badgers,guitars,puffin,
02091981,nikki1,irishman,miller1,zildjian,
123000,airwolf,magnet,anai,install,
02041981,
02061983,astra,romans,megan1,mudvayne,freebird,muscles,dogbert,
02091980,
02091984,snowflak,
01011900,mang,joseph1,nygiants,playstat,junior1,vjcrdf,qwer12,webhompas,giraffe,pelican,jefferso,comanche,bruiser,monkeybo,kjkszpj,
123456l,micro,albany,
02051987,angel123,epsilon,aladin,death666,hounddog,josephin,altima,chilly,
02071988,
78945,ultra,
02041979,gasman,thisisit,pavel,idunno,kimmie,
05051985,paulie,ballin,medion,moondog,manolo,pallmall,climber,fishbone,genesis1,
153624,toffee,tbone,clippers,krypton,jerry1,picturs,compass,
111111q,
02051988,
1121,
02081977,sairam,getout,
333777,cobras,
22041987,bigblock,severin,booster,norwich,whiteout,ctrhtn,
123456m,
02061984,hewlett,shocker,fuckinside,
02031981,chase1,white1,versace,
123456789s,basebal,iloveyou2,bluebell,
08031986,anthon,stubby,foreve,undertak,werder,saiyan,mama123,medic,chipmunk,mike123,mazdarx7,qwe123qwe,bowwow,kjrjvjnbd,celeb,choochoo,demo,lovelife,
02051984,colnago,lithium,
02051989,
15051981,zzzxxx,welcom,anastasi,fidelio,franc,
26061987,roadster,stone55,drifter,hookem,hellboy,
1234qw,cbr900rr,sinned,good123654,storm1,gypsy,zebra,zachary1,toejam,buceta,
02021979,testing1,redfox,lineage,mike1,highbury,koroleva,nathan1,washingt,
02061982,
02091985,vintage,redbaron,dalshe,mykids,
11051987,macbeth,julien,james123,krasotka,
111000,
10011986,
987123,pipeline,tatarin,sensei,codered,komodo,frogman,
7894561230,nascar24,juicy,
01031988,redrose,mydick,pigeon,tkbpfdtnf,smirnoff,
1215,spam,winner1,flyfish,moskva,
81fukkc,
21031987,olesya,starligh,summer99,
13041988,fishhead,freesex,super12,
06061986,azazel,scoobydoo,
02021981,cabron,yogibear,sheba1,konstantin,tranny,chilli,terminat,ghbywtccf,slowhand,soccer12,cricket1,fuckhead,
1002,seagull,achtung,blam,bigbob,bdsm,nostromo,survivor,cnfybckfd,lemonade,boomer1,rainbow1,rober,irinka,cocksuck,peaches1,itsme,sugar1,zodiac,upyours,dinara,
135791,sunny1,chiara,johnson1,
02041989,solitude,habibi,sushi,markiz,smoke1,rockies,catwoman,johnny1,qwerty7,bearcats,username,
01011978,wanderer,ohshit,
02101986,sigma,stephen1,paradigm,
02011989,flanker,sanity,jsbach,spotty,bologna,fantasia,chevys,borabora,cocker,
74108520,
123ewq,
12021988,
01061990,gtnhjdbx,
02071981,
01011960,sundevil,
3000gt,mustang6,gagging,maggi,armstron,yfnfkb,
13041987,revolver,
02021976,trouble1,madcat,jeremy1,jackass1,volkswag,
30051985,corndog,pool6123,marines1,
03041991,pizza1,piggy,sissy,
02031979,sunfire,angelus,undead,
24061986,
14061991,wildbill,shinobi,
45m2do5bs,
123qwer,
21011989,cleopatr,lasvega,hornets,amorcit,
11081989,coventry,nirvana1,destin,sidekick,
20061988,
02081983,gbhfvblf,sneaky,bmw325,
22021989,nfytxrf,sekret,kalina,zanzibar,hotone,qazws,wasabi,heidi1,highlander,blues1,hitachi,paolo,
23041987,slayer1,simba1,
02011981,tinkerbe,kieran,
01121986,
172839,boiler,
1125,bluesman,waffle,asdfgh01,threesom,conan,
1102,reflex,
18011987,nautilus,everlast,fatty,vader1,
01071986,cyborg,ghbdtn123,birddog,rubble,
02071983,suckers,
02021973,skyhawk,
12qw12qw,dakota1,joebob,nokia6233,woodie,longdong,lamer,troll,ghjcnjgfhjkm,
420000,boating,nitro,armada,messiah,
1031,penguin1,
02091989,americ,
02071989,redeye,asdqwe123,
07071987,monty1,goten,spikey,sonata,
635241,tokiohotel,sonyericsson,citroen,compaq1,
1812,umpire,belmont,jonny,pantera1,nudes,palmtree,
14111986,fenway,bighead,razor,gryphon,andyod22,aaaaa1,taco,
10031988,enterme,malachi,dogface,reptile,
01041985,dindom,handball,marseille,candy1,
19101987,torino,tigge,matthias,viewsoni,
13031987,stinker,evangelion,
24011985,
123456123,rampage,sandrine,
02081980,thecrow,astral,
28041987,sprinter,private1,seabee,shibby,
02101988,
25081988,fearless,junkie,
01091987,aramis,antelope,draven,fuck1,mazda6,eggman,
02021990,barselona,buddy123,
19061987,fyfnjkbq,nancy1,
12121990,
10071987,sluggo,kille,hotties,irishka,zxcasdqwe123,shamus,fairlane,honeybee,soccer10,
13061986,fantomas,
17051988,
10051987,
20111986,gladiato,karachi,gambler,gordo,
01011995,biatch,matthe,
25800852,papito,excite,buffalo1,bobdole,cheshire,player1,
28021992,thewho,
10101986,pinky1,mentor,tomahawk,brown1,
03041986,bismillah,bigpoppa,ijrjkfl,
01121988,runaway,
08121986,skibum,studman,helper,squeak,holycow,manfred,harlem,glock,gideon,
987321,
14021985,yellow1,wizard1,margarit,success1,medved,sf49ers,lambda,pasadena,johngalt,quasar,
1776,
02031980,coldplay,amand,playa,bigpimp,
04041991,capricorn,elefant,sweetness,bruce1,luca,dominik,
10011990,biker,
09051945,datsun,elcamino,trinitro,malice,audi,voyager1,
02101983,joe123,carpente,spartan1,mario1,glamour,diaper,
12121985,
22011988,winter1,asimov,callisto,nikolai,pebble,
02101981,vendetta,david123,boytoy,
11061985,
02031989,iloveyou1,stupid1,cayman,casper1,zippo,yamahar1,wildwood,foxylady,calibra,
02041980,
27061988,dungeon,leedsutd,
30041986,
11051990,bestbuy,antares,dominion,
24680,
01061986,skillet,enforcer,derparol,
01041988,
196969,
29071983,f00tball,purple1,mingus,
25031987,
21031990,remingto,giggles,klaste,
3x7pxr,
01011994,coolcat,
29051989,megane,
20031987,
02051980,
04041988,synergy,
0000007,macman,iforget,adgjmp,vjqgfhjkm,
28011987,rfvfcenhf,
16051989,
25121987,
16051987,rogue,mamamia,
08051990,
20091991,
1210,carnival,bolitas,paris1,dmitriy,dimas,
05051989,papillon,knuckles,
29011985,hola,tophat,
28021990,
100500,cutiepie,devo,
415263,ducks,ghjuhfvvf,asdqwe,
22021986,freefall,parol,
02011983,zarina,buste,vitamin,warez,bigones,
17061988,baritone,jamess,twiggy,mischief,bitchy,hetfield,
1003,dontknow,grinch,sasha_007,
18061990,
12031985,
12031987,calimero,
224466,letmei,
15011987,acmilan,alexandre,
02031977,
08081988,whiteboy,
21051991,barney1,
02071978,money123,
18091985,bigdawg,
02031988,cygnusx1,zoloto,
31011987,firefigh,blowfish,screamer,lfybbk,
20051988,chelse,
11121986,
01031989,harddick,sexylady,
30031988,
02041974,auditt,pizdec,kojak,kfgjxrf,
20091988,
123456ru,wp2003wp,
1204,
15051990,slugger,kordell1,
03031986,swinging,
01011974,
02071979,rockie,dimples,
1234123,
1dragon,trucking,rusty2,roger1,marijuana,kerouac,
02051978,
08031985,paco,thecure,keepout,kernel,noname123,
13121985,francisc,bozo,
02011982,
22071986,
02101979,obsidian,
12345qw,spud,tabasco,
02051985,jaguars,dfktynby,kokomo,popova,notused,sevens,
4200,magneto,
02051976,roswell,
15101986,
21101986,lakeside,bigbang,aspen,little1,
14021986,loki,suckmydick,strawber,carlos1,nokian73,dirty1,joshu,
25091987,
16121987,
02041975,advent,
17011987,slimshady,whistler,
10101990,stryker,
22031984,
15021985,
01031985,blueball,
26031988,ksusha,bahamut,robocop,w_pass,chris123,impreza,prozac,bookie,bricks,
13021990,alice1,cassandr,
11111q,john123,
4ever,korova,
02051973,
142857,
25041988,paramedi,eclipse1,salope,
07091990,
1124,darkangel,
23021986,
999666,nomad,
02051981,smackdow,
01021990,yoyoma,argentin,moonligh,
57chevy,bootys,hardone,capricor,galant,spanker,dkflbr,
24111989,magpies,krolik,
21051988,cevthrb,cheddar,
22041988,bigbooty,scuba1,qwedsa,duffman,bukkake,acura,johncena,sexxy,p@ssw0rd,
258369,cherries,
12345s,asgard,leopold,fuck123,mopar,lalakers,dogpound,matrix1,crusty,spanner,kestrel,fenris,universa,peachy,assasin,lemmein,eggplant,hejsan,canucks,wendy1,doggy1,aikman,tupac,turnip,godlike,fussball,golden1,
19283746,april1,django,petrova,captain1,vincent1,ratman,taekwondo,chocha,serpent,perfect1,capetown,vampir,amore,gymnast,timeout,nbvjatq,blue32,ksenia,k.lvbkf,nazgul,budweiser,clutch,mariya,sylveste,
02051972,beaker,cartman1,q11111,sexxx,forever1,loser1,marseill,magellan,vehpbr,sexgod,jktxrf,hallo123,
132456,liverpool1,southpaw,seneca,camden,
357159,camero,tenchi,johndoe,
145236,roofer,
741963,vlad,
02041978,fktyrf,zxcv123,wingnut,wolfpac,notebook,pufunga7782,brandy1,biteme1,goodgirl,redhat,
02031978,challeng,millenium,hoops,maveric,noname,angus1,gaell,onion,olympus,sabrina1,ricard,sixpack,gratis,gagged,camaross,hotgirls,flasher,
02051977,bubba123,goldfing,moonshin,gerrard,volkov,sonyfuck,mandrake,
258963,tracer,lakers1,asians,susan1,money12,helmut,boater,diablo2,
1234zxcv,dogwood,bubbles1,happy2,randy1,aries,beach1,marcius2,navigator,goodie,hellokitty,fkbyjxrf,earthlink,lookout,jumbo,opendoor,stanley1,marie1,
12345m,
07071977,ashle,wormix,murzik,
02081976,lakewood,bluejays,loveya,commande,gateway2,peppe,
01011976,
7896321,goth,oreo,slammer,rasmus,faith1,knight1,stone1,redskin,ironmaiden,gotmilk,destiny1,dejavu,
1master,midnite,timosha,espresso,delfin,toriamos,oberon,ceasar,markie,
1a2s3d,ghhh47hj7649,vjkjrj,daddyo,dougie,disco,auggie,lekker,therock1,ou8123,start1,noway,p4ssw0rd,shadow12,
333444,saigon,
2fast4u,capecod,
23skidoo,qazxcv,beater,bremen,aaasss,roadrunner,peace1,
12345qwer,
02071975,platon,bordeaux,vbkfirf,
135798642,test12,supernov,beatles1,qwert40,optimist,vanessa1,prince1,ilovegod,nightwish,natasha1,alchemy,bimbo,blue99,patches1,gsxr1000,richar,hattrick,hott,solaris,proton,nevets,enternow,beavis1,amigos,
159357a,ambers,lenochka,
147896,suckdick,shag,intercourse,blue1234,spiral,
02061977,tosser,ilove,
02031975,cowgirl,canuck,q2w3e4,munch,spoons,waterboy,
123567,evgeniy,savior,zasada,redcar,mamacita,terefon,globus,doggies,htubcnhfwbz,
1008,cuervo,suslik,azertyui,limewire,houston1,stratfor,steaua,coors,tennis1,
12345qwerty,stigmata,derf,klondike,patrici,marijuan,hardball,odyssey,nineinch,boston1,pass1,beezer,sandr,charon,power123,a1234,vauxhall,
875421,awesome1,reggae,boulder,funstuff,iriska,krokodil,rfntymrf,sterva,champ1,bball,peeper,m123456,toolbox,cabernet,sheepdog,magic32,pigpen,
02041977,holein1,lhfrjy,banan,dabomb,natalie1,jennaj,montana1,joecool,funky,steven1,ringo,junio,sammy123,qqqwww,baltimor,footjob,geezer,
357951,mash4077,cashmone,pancake,monic,grandam,bongo,yessir,gocubs,nastia,vancouve,barley,dragon69,watford,ilikepie,
02071976,laddie,
123456789m,hairball,toonarmy,pimpdadd,cvthnm,hunte,davinci,lback,sophie1,firenze,q1234567,admin1,bonanza,elway7,daman,strap,azert,wxcvbn,afrika,theforce,
123456t,idefix,wolfen,houdini,scheisse,default,beech,maserati,
02061976,sigmachi,dylan1,bigdicks,eskimo,mizzou,
02101976,riccardo,egghead,
111777,kronos,ghbrjk,chaos1,jomama,rfhnjirf,rodeo,dolemite,cafc91,nittany,pathfind,mikael,password9,vqsablpzla,purpl,gabber,modelsne,myxworld,hellsing,punker,rocknrol,fishon,fuck69,
02041976,lolol,twinkie,tripleh,cirrus,redbone,killer123,biggun,allegro,gthcbr,smith1,wanking,bootsy,barry1,mohawk,koolaid,
5329,futurama,samoht,klizma,
996633,lobo,honeys,peanut1,
556677,zxasqw,joemama,javelin,samm,
223322,sandra1,flicks,montag,nataly,
3006,tasha1,
1235789,dogbone,poker1,p0o9i8u7,goodday,smoothie,toocool,max333,metroid,archange,vagabond,billabon,
22061941,tyson1,
02031973,darkange,skateboard,evolutio,morrowind,wizards,frodo1,rockin,cumslut,plastics,zaqwsxcde,
5201314,doit,outback,bumble,dominiqu,persona,nevermore,alinka,
02021971,forgetit,sexo,all4one,c2h5oh,petunia,sheeba,kenny1,elisabet,aolsucks,woodstoc,pumper,
02011975,fabio,granada,scrapper,
123459,minimoni,q123456789,breaker,
1004,
02091976,ncc74656,slimshad,friendster,austin31,wiseguy,donner,dilbert1,
132465,blackbird,buffet,jellybean,barfly,behappy,
01011971,carebear,fireblad,
02051975,boxcar,cheeky,kiteboy,hello12,panda1,elvisp,opennow,doktor,alex12,
02101977,pornking,flamengo,
02091975,snowbird,lonesome,robin1,
11111a,weed420,baracuda,bleach,
12345abc,nokia1,metall,singapor,mariner,herewego,dingo,tycoon,cubs,blunts,proview,
123456789d,kamasutra,lagnaf,vipergts,navyseal,starwar,masterbate,wildone,peterbil,cucumber,butkus,
123qwert,climax,deniro,gotribe,cement,scooby1,summer69,harrier,shodan,newyear,
02091977,starwars1,romeo1,sedona,harald,doubled,sasha123,bigguns,salami,awnyce,kiwi,homemade,pimping,azzer,bradley1,warhamme,linkin,dudeman,qwe321,pinnacle,maxdog,flipflop,lfitymrf,fucker1,acidburn,esquire,sperma,fellatio,jeepster,thedon,sexybitch,pookey,spliff,widget,vfntvfnbrf,trinity1,mutant,samuel1,meliss,gohome,
1q2q3q,mercede,comein,grin,cartoons,paragon,henrik,rainyday,pacino,senna,bigdog1,alleycat,
12345qaz,narnia,mustang2,tanya1,gianni,apollo11,wetter,clovis,escalade,rainbows,freddy1,smart1,daisydog,s123456,cocksucker,pushkin,lefty,sambo,fyutkjxtr,hiziad,boyz,whiplash,orchard,newark,adrenalin,
1598753,bootsie,chelle,trustme,chewy,golfgti,tuscl,ambrosia,
5wr2i7h8,penetration,shonuf,jughead,payday,stickman,gotham,kolokol,johnny5,kolbasa,stang,puppydog,charisma,gators1,mone,jakarta,draco,nightmar,
01011973,inlove,laetitia,
02091973,tarpon,nautica,meadow,
0192837465,luckyone,
14881488,chessie,goldeney,tarakan,
69camaro,bungle,wordup,interne,fuckme2,
515000,dragonfl,sprout,
02081974,gerbil,bandit1,
02071971,melanie1,phialpha,camber,kathy1,adriano,gonzo1,
10293847,bigjohn,bismarck,
7777777a,scamper,
12348765,rabbits,
222777,bynthytn,dima123,alexander1,mallorca,dragster,favorite6,beethove,burner,cooper1,fosters,hello2,normandy,
777999,sebring,
1michael,lauren1,blake1,killa,
02091971,nounours,trumpet1,thumper1,playball,xantia,rugby1,rocknroll,guillaum,angela1,strelok,prosper,buttercup,masterp,dbnfkbr,cambridg,venom,treefrog,lumina,
1234566,supra,sexybabe,freee,shen,frogs,driller,pavement,grace1,dicky,checker,smackdown,pandas,cannibal,asdffdsa,blue42,zyjxrf,nthvbyfnjh,melrose,neon,jabber,gamma,
369258147,aprilia,atticus,benessere,catcher,skipper1,azertyuiop,sixty9,thierry,treetop,jello,melons,
123456789qwe,tantra,buzzer,catnip,bouncer,computer1,sexyone,ananas,young1,olenka,sexman,mooses,kittys,sephiroth,contra,hallowee,skylark,sparkles,
777333,
1qazxsw23edc,lucas1,q1w2e3r,gofast,hannes,amethyst,ploppy,flower2,hotass,amatory,volleyba,dixie1,bettyboo,ticklish,
02061974,frenchy,phish1,murphy1,trustno,
02061972,leinad,mynameis,spooge,jupiter1,hyundai,frosch,junkmail,abacab,marbles,
32167,casio,sunshine1,wayne1,longhair,caster,snicker,
02101973,gannibal,skinhead,hansol,gatsby,segblue2,montecar,plato,gumby,kaboom,matty,bosco1,
888999,jazzy,panter,jesus123,charlie2,giulia,candyass,sex69,travis1,farmboy,special1,
02041973,letsdoit,password01,allison1,abcdefg1,notredam,ilikeit,
789654123,liberty1,rugger,uptown,alcatraz,
123456w,airman,
007bond,navajo,kenobi,terrier,stayout,grisha,frankie1,fluff,
1qazzaq1,
1234561,virginie,
1234568,tango1,werdna,octopus,fitter,dfcbkbcf,blacklab,
115599,montrose,allen1,supernova,frederik,ilovepussy,justice1,radeon,playboy2,blubber,sliver,swoosh,motocros,lockdown,pearls,thebear,istheman,pinetree,biit,
1234rewq,rustydog,tampabay,titts,babycake,jehovah,vampire1,streaming,collie,camil,fidelity,calvin1,stitch,gatit,restart,puppy1,budgie,grunt,capitals,hiking,dreamcas,zorro1,
321678,riffraff,makaka,playmate,napalm,rollin,amstel,zxcvb123,samanth,rumble,fuckme69,jimmys,
951357,pizzaman,
1234567899,tralala,delpiero,alexi,yamato,itisme,
1million,vfndtq,kahlua,londo,wonderboy,carrots,tazz,ratboy,rfgecnf,
02081973,nico,fujitsu,tujhrf,sergbest,blobby,
02051970,sonic1,
1357911,smirnov,video1,panhead,bucky,
02031974,
44332211,duffer,cashmoney,left4dead,bagpuss,salman,
01011972,titfuck,
66613666,england1,malish,dresden,lemans,darina,zapper,
123456as,
123456qqq,met2002,
02041972,redstar,blue23,
1234509876,pajero,booyah,please1,tetsuo,semper,finder,hanuman,sunlight,
123456n,
02061971,treble,cupoi,password99,dimitri,
3ip76k2,popcorn1,lol12345,stellar,nympho,shark1,keith1,saskia,bigtruck,revoluti,rambo1,asd222,feelgood,phat,gogators,bismark,cola,puck,furball,burnout,slonik,bowtie,mommy1,icecube,fabienn,mouser,papamama,rolex,giants1,blue11,trooper1,momdad,iklo,morten,rhubarb,gareth,
123456d,blitz,canada1,r2d2,brest,tigercat,usmarine,lilbit,benny1,azrael,lebowski,
12345r,madagaskar,begemot,loverman,dragonballz,italiano,mazda3,naughty1,onions,diver1,cyrano,capcom,asdfg123,forlife,fisherman,weare138,requiem,mufasa,alpha123,piercing,hellas,abracadabra,duckman,caracas,macintos,
02011971,jordan2,crescent,fduecn,hogtied,eatmenow,ramjet,
18121812,kicksass,whatthe,discus,rfhfvtkmrf,rufus1,sqdwfe,mantle,vegitto,trek,dan123,paladin1,rudeboy,liliya,lunchbox,riversid,acapulco,libero,dnsadm,maison,toomuch,boobear,hemlock,sextoy,pugsley,misiek,athome,migue,altoids,marcin,
123450,rhfcfdbwf,jeter2,rhinos,rjhjkm,mercury1,ronaldinho,shampoo,makayla,kamilla,masterbating,tennesse,holger,john1,matchbox,hores,poptart,parlament,goodyear,asdfgh1,
02081970,hardwood,alain,erection,hfytnrb,highlife,implants,benjami,dipper,jeeper,bendover,supersonic,babybear,laserjet,gotenks,bama,natedogg,aol123,pokemo,rabbit1,raduga,sopranos,cashflow,menthol,pharao,hacking,
334455,ghjcnbnenrf,lizzy,muffin1,pooky,penis1,flyer,gramma,dipset,becca,ireland1,diana1,donjuan,pong,ziggy1,alterego,simple1,cbr900,logger,
111555,claudia1,cantona7,matisse,ljxtymrf,victori,harle,mamas,encore,mangos,iceman1,diamon,alexxx,tiamat,
5000,desktop,mafia,smurf,princesa,shojou,blueberr,welkom,maximka,
123890,
123q123,tammy1,bobmarley,clips,demon666,ismail,termite,laser1,missie,altair,donna1,bauhaus,trinitron,mogwai,flyers88,juniper,nokia5800,boroda,jingles,qwerasdfzxcv,shakur,
777666,legos,mallrats,
1qazxsw,goldeneye,tamerlan,julia1,backbone,spleen,
49ers,shady,darkone,medic1,justi,giggle,cloudy,aisan,douche,parkour,bluejay,huskers1,redwine,
1qw23er4,satchmo,
1231234,nineball,stewart1,ballsack,probes,kappa,amiga,flipper1,dortmund,
963258,trigun,
1237895,homepage,blinky,screwy,gizzmo,belkin,chemist,coolhand,chachi,braves1,thebest,greedisgood,pro100,banana1,
101091m,
123456g,wonderfu,barefeet,
8inches,
1111qqqq,kcchiefs,qweasdzxc123,metal1,jennifer1,xian,asdasd123,pollux,cheerleaers,fruity,mustang5,turbos,shopper,photon,espana,hillbill,oyster,macaroni,gigabyte,jesper,motown,tuxedo,buster12,triplex,cyclones,estrell,mortis,holla,
456987,fiddle,sapphic,jurassic,thebeast,ghjcnjq,baura,spock1,metallica1,karaoke,nemrac58,love1234,
02031970,flvbybcnhfnjh,frisbee,diva,ajax,feathers,flower1,soccer11,allday,mierda,pearl1,amature,marauder,
333555,redheads,womans,egorka,godbless,
159263,nimitz,aaaa1111,sashka,madcow,socce,greywolf,baboon,pimpdaddy,
123456789r,reloaded,lancia,rfhfylfi,dicker,placid,grimace,
22446688,olemiss,whores,culinary,wannabe,maxi,
1234567aa,amelie,riley1,trample,phantom1,baberuth,bramble,asdfqwer,vides,
4you,abc123456,taichi,aztnm,smother,outsider,hakr,blackhawk,bigblack,girlie,spook,valeriya,gianluca,freedo,
1q2q3q4q,handbag,lavalamp,cumm,pertinant,whatup,nokia123,redlight,patrik,
111aaa,poppy1,dfytxrf,aviator,sweeps,kristin1,cypher,elway,yinyang,access1,poophead,tucson,noles1,monterey,waterfal,dank,dougal,
918273,suede,minnesot,legman,bukowski,ganja,mammoth,riverrat,asswipe,daredevi,lian,arizona1,kamikadze,alex1234,smile1,angel2,
55bgates,bellagio,
0001,wanrltw,stiletto,lipton,arsena,biohazard,bbking,chappy,tetris,as123456,darthvad,lilwayne,nopassword,
7412369,
123456789987654321,natchez,glitter,
14785236,mytime,rubicon,moto,pyon,wazzup,tbird,shane1,nightowl,getoff,beckham7,trueblue,hotgirl,nevermin,deathnote,
13131,taffy,bigal,copenhag,apricot,gallaries,dtkjcbgtl,totoro,onlyone,civicsi,jesse1,baby123,sierra1,festus,abacus,sickboy,fishtank,fungus,charle,golfpro,teensex,mario66,seaside,aleksei,rosewood,blackberry,
1020304050,bedlam,schumi,deerhunt,contour,darkelf,surveyor,deltas,pitchers,
741258963,dipstick,funny1,lizzard,
112233445566,jupiter2,softtail,titman,greenman,z1x2c3v4b5,smartass,
12345677,notnow,myworld,nascar1,chewbacc,nosferatu,downhill,dallas22,kuan,blazers,whales,soldat,craving,powerman,yfcntyf,hotrats,cfvceyu,qweasdzx,princess1,feline,qqwwee,chitown,
1234qaz,mastermind,
114477,dingbat,care1839,standby,kismet,atreides,dogmeat,icarus,monkeyboy,alex1,mouses,nicetits,sealteam,chopper1,crispy,winter99,rrpass1,myporn,myspace1,corazo,topolino,ass123,lawman,muffy,orgy,
1love,passord,hooyah,ekmzyf,pretzel,amonra,nestle,
01011950,jimbeam,happyman,z12345,stonewal,helios,manunited,harcore,dick1,gaymen,
2hot4u,light1,qwerty13,kakashi,pjkjnj,alcatel,taylo,allah,buddydog,ltkmaby,mongo,blonds,start123,audia6,
123456v,civilwar,bellaco,turtles,mustan,deadspin,aaa123,fynjirf,lucky123,tortoise,amor,summe,waterski,zulu,drag0n,dtxyjcnm,gizmos,strife,interacial,pusyy,goose1,bear1,equinox,matri,jaguar1,tobydog,sammys,nachos,traktor,bryan1,morgoth,
444555,dasani,miami1,mashka,xxxxxx1,ownage,nightwin,hotlips,passmast,cool123,skolko,eldiablo,manu,
1357908642,screwyou,badabing,foreplay,hydro,kubrick,seductive,demon1,comeon,galileo,aladdin,metoo,happines,
902100,mizuno,caddy,bizzare,girls1,redone,ohmygod,sable,bonovox,girlies,hamper,opus,gizmodo1,aaabbb,pizzahut,
999888,rocky2,anton1,kikimora,peavey,ocelot,a1a2a3a4,
2wsx3edc,jackie1,solace,sprocket,galary,chuck1,volvo1,shurik,poop123,locutus,virago,wdtnjxtr,tequier,bisexual,doodles,makeitso,fishy,
789632145,nothing1,fishcake,sentry,libertad,oaktree,fivestar,adidas1,vegitta,mississi,spiffy,carme,neutron,vantage,agassi,boners,
123456789v,hilltop,taipan,barrage,kenneth1,fister,martian,willem,lfybkf,bluestar,moonman,ntktdbpjh,paperino,bikers,daffy,benji,quake,dragonfly,suckcock,danilka,lapochka,belinea,calypso,asshol,camero1,abraxas,mike1234,womam,q1q2q3q4q5,youknow,maxpower,pic's,audi80,sonora,raymond1,tickler,tadpole,belair,crazyman,finalfantasy,
999000,jonatha,paisley,kissmyas,morgana,monste,mantra,spunk,magic123,jonesy,mark1,alessand,
741258,baddest,ghbdtnrfrltkf,zxccxz,tictac,augustin,racers,
7grout,foxfire,
99762000,openit,nathanie,
1z2x3c4v5b,seadog,gangbanged,lovehate,hondacbr,harpoon,mamochka,fisherma,bismilla,locust,wally1,spiderman1,saffron,utjhubq,
123456987,
20spanks,safeway,pisser,bdfyjd,kristen1,bigdick1,magenta,vfhujif,anfisa,friday13,qaz123wsx,
0987654321q,tyrant,guan,meggie,kontol,nurlan,ayanami,rocket1,yaroslav,websol76,mutley,hugoboss,websolutions,elpaso,gagarin,badboys,sephirot,
918273645,newuser,qian,edcrfv,booger1,
852258,lockout,timoxa94,mazda323,firedog,sokolova,skydiver,jesus777,
1234567890z,soulfly,canary,malinka,guillerm,hookers,dogfart,surfer1,osprey,india123,rhjkbr,stoppedby,nokia5530,
123456789o,blue1,werter,divers,
3000,
123456f,alpina,cali,whoknows,godspeed,
986532,foreskin,fuzzy1,heyyou,didier,slapnuts,fresno,rosebud1,sandman1,bears1,blade1,honeybun,queen1,baronn,pakista,philipp,
9111961,topsecret,sniper1,
214365,slipper,letsfuck,pippen33,godawgs,mousey,qw123456,scrotum,loveis,lighthou,bp2002,nancy123,jeffrey1,susieq,buddy2,ralphie,trout1,willi,antonov,sluttey,rehbwf,marty1,darian,losangeles,letme1n,
12345d,pusssy,godiva,ender,golfnut,leonidas,a1b2c3d4e5,puffer,general1,wizzard,lehjxrf,racer1,bigbucks,cool12,buddys,zinger,esprit,vbienrf,josep,tickling,froggie,
987654321a,
895623,daddys,crumbs,gucci,mikkel,opiate,tracy1,christophe,came11,
777555,petrovich,humbug,dirtydog,allstate,horatio,wachtwoord,creepers,squirts,rotary,bigd,georgia1,fujifilm,
2sweet,dasha,yorkie,slimjim,wiccan,kenzie,system1,skunk,b12345,getit,pommes,daredevil,sugars,bucker,piston,lionheart,
1bitch,
515051,catfight,recon,icecold,fantom,vodafone,kontakt,boris1,vfcnth,canine,
01011961,valleywa,faraon,chickenwing101,qq123456,livewire,livelife,roosters,jeepers,ilya1234,coochie,pavlik,dewalt,dfhdfhf,architec,blackops,
1qaz2wsx3edc4rfv,rhfcjnf,wsxedc,teaser,sebora,
25252,rhino1,ankara,swifty,decimal,redleg,shanno,nermal,candies,smirnova,dragon01,photo1,ranetki,a1s2d3f4g5,axio,wertzu,maurizio,
6uldv
8,zxcvasdf,punkass,flowe,graywolf,peddler,
3rjs1la7qe,mpegs,seawolf,ladyboy,pianos,piggies,vixen,alexus,orpheus,gdtrfb,z123456,macgyver,hugetits,ralph1,flathead,maurici,mailru,goofball,nissan1,nikon,stopit,odin,big1,smooch,reboot,famil,bullit,anthony7,gerhard,methos,
124038,morena,eagle2,jessica2,zebras,getlost,gfynthf,
123581321,sarajevo,indon,comets,tatjana,rfgbnjirf,joystick,batman12,
123456c,sabre,beerme,victory1,kitties,
1475369,badboy1,booboo1,comcast,slava,squid,saxophon,lionhear,qaywsx,bustle,nastena,roadway,loader,hillside,starlight,
24681012,niggers,access99,bazooka,molly123,blackice,bandi,cocacol,nfhfrfy,timur,muschi,horse1,quant4307s,squerting,oscars,mygirls,flashman,tangerin,goofy1,p0o9i8,housewifes,newness,monkey69,escorpio,password11,hippo,warcraft3,qazxsw123,qpalzm,ribbit,ghbdtndctv,bogota,star123,
258000,lincoln1,bigjim,lacoste,firestorm,legenda,indain,ludacris,milamber,
1009,evangeli,letmesee,a111111,hooters1,bigred1,shaker,husky,a4tech,cnfkrth,argyle,rjhjdf,nataha,
0o9i8u7y,gibson1,sooners1,glendale,archery,hoochie,stooge,aaaaaa1,scorpions,school1,vegas1,rapier,mike23,bassoon,groupd2013,macaco,baker1,labia,freewill,santiag,silverado,butch1,vflfufcrfh,monica1,rugrat,cornhole,aerosmit,bionicle,gfgfvfvf,daniel12,virgo,fmale,favorite2,detroit1,pokey,shredder,baggies,wednesda,cosmo1,mimosa,sparhawk,firehawk,romario,
911turbo,funtimes,fhntvrf,nexus6,
159753456,timothy1,bajingan,terry1,frenchie,raiden,
1mustang,babemagnet,
74123698,nadejda,truffles,rapture,douglas1,lamborghini,motocross,rjcvjc,
748596,skeeter1,dante1,angel666,telecom,carsten,pietro,bmw318,astro1,carpediem,samir,orang,helium,scirocco,fuzzball,rushmore,rebelz,hotspur,lacrimosa,chevys10,madonna1,domenico,yfnfirf,jachin,shelby1,bloke,dawgs,dunhill,atlanta1,service1,mikado,devilman,angelit,reznor,euphoria,lesbain,checkmat,browndog,phreak,blaze1,crash1,farida,mutter,luckyme,horsemen,vgirl,jediknig,asdas,cesare,allnight,rockey,starlite,truck1,passfan,close-up,samue,cazzo,wrinkles,homely,eatme1,sexpot,snapshot,dima1995,asthma,thetruth,ducky,blender,priyanka,gaucho,dutchman,sizzle,kakarot,
651550,passcode,justinbieber,
666333,elodie,sanjay,
110442,alex01,lotus1,
2300mj,lakshmi,zoomer,quake3,
12349876,teapot,
12345687,ramada,pennywis,striper,pilot1,chingon,optima,nudity,ethan1,euclid,beeline,loyola,biguns,zaq12345,bravo1,disney1,buffa,assmunch,vivid,
6661313,wellingt,aqwzsx,madala11,
9874123,sigmar,pictere,tiptop,bettyboop,dinero,tahiti,gregory1,bionic,speed1,fubar1,lexus1,denis1,hawthorn,saxman,suntzu,bernhard,dominika,camaro1,hunter12,balboa,bmw2002,seville,diablo1,vfhbyjxrf,
1234abc,carling,lockerroom,punani,darth,baron1,vaness,
1password,libido,picher,
232425,karamba,futyn007,daydream,
11001001,dragon123,friends1,bopper,rocky123,chooch,asslover,shimmer,riddler,openme,tugboat,sexy123,midori,gulnara,christo,swatch,laker,offroad,puddles,hackers,mannheim,manager1,horseman,roman1,dancer1,komputer,pictuers,nokia5130,ejaculation,lioness,
123456y,evilone,nastenka,pushok,javie,lilman,
3141592,mjolnir,toulouse,pussy2,bigworm,smoke420,fullback,extensa,dreamcast,belize,delboy,willie1,casablanca,csyjxtr,ricky1,bonghit,salvator,basher,pussylover,rosie1,
963258741,vivitron,cobra427,meonly,armageddon,myfriend,zardoz,qwedsazxc,kraken,fzappa,starfox,
333999,illmatic,capoeira,weenie,ramzes,freedom2,toasty,pupkin,shinigami,fhvfutljy,nocturne,churchil,thumbnils,tailgate,neworder,sexymama,goarmy,cerebus,michelle1,vbifyz,surfsup,earthlin,dabulls,basketbal,aligator,mojojojo,saibaba,welcome2,wifes,wdtnjr,
12345w,slasher,papabear,terran,footman,hocke,
153759,texans,tom123,sfgiants,billabong,aassdd,monolith,xxx777,l3tm31n,ticktock,newone,hellno,japanees,contortionist,admin123,scout1,alabama1,divx1,rochard,privat,radar1,bigdad,fhctybq,tortuga,citrus,avanti,fantasy1,woodstock,s12345,fireman1,embalmer,woodwork,bonzai,konyor,newstart,jigga,panorama,goats,smithy,rugrats,hotmama,daedalus,nonstop,fruitbat,lisenok,quaker,violator,
12345123,my3sons,cajun,fraggle,gayboy,oldfart,vulva,knickerless,orgasms,undertow,binky,litle,kfcnjxrf,masturbation,bunnie,alexis1,planner,transexual,sparty,leeloo,monies,fozzie,stinger1,landrove,anakonda,scoobie,yamaha1,henti,star12,rfhlbyfk,beyonce,catfood,cjytxrf,zealots,strat,fordtruc,archangel,silvi,sativa,boogers,miles1,bigjoe,tulip,petite,greentea,shitter,jonboy,voltron,morticia,evanescence,
3edc4rfv,longshot,windows1,serge,aabbcc,starbucks,sinful,drywall,prelude1,www123,camel1,homebrew,marlins,
123412,letmeinn,domini,swampy,plokij,fordf350,webcam,michele1,bolivi,
27731828,wingzero,qawsedrftg,shinji,sverige,jasper1,piper1,cummer,iiyama,gocats,amour,alfarome,jumanji,mike69,fantasti,
1monkey,w00t88,shawn1,lorien,
1a2s3d4f5g,koleso,murph,natascha,sunkist,kennwort,emine,grinder,m12345,q1q2q3q4,cheeba,money2,qazwsxedc1,diamante,prosto,pdiddy,stinky1,gabby1,luckys,franci,pornographic,moochie,gfhjdjp,samdog,empire1,comicbookdb,emili,motdepasse,iphone,braveheart,reeses,nebula,sanjose,bubba2,kickflip,arcangel,superbow,porsche911,xyzzy,nigger1,dagobert,devil1,alatam,monkey2,barbara1,
12345v,vfpfafrf,alessio,babemagn,aceman,arrakis,kavkaz,
987789,jasons,berserk,sublime1,rogue1,myspace,buckwhea,csyekz,pussy4me,vette1,boots1,boingo,arnaud,budlite,redstorm,paramore,becky1,imtheman,chango,marley1,milkyway,
666555,giveme,mahalo,lux2000,lucian,paddy,praxis,shimano,bigpenis,creeper,newproject2004,rammstei,j3qq4h7h2v,hfljcnm,lambchop,anthony2,bugman,gfhjkm12,dreamer1,stooges,cybersex,diamant,cowboyup,maximus1,sentra,
615243,goethe,manhatta,fastcar,selmer,
1213141516,yfnfitymrf,denni,chewey,yankee1,elektra,
123456789p,trousers,fishface,topspin,orwell,vorona,sodapop,motherfu,ibilltes,forall,kookie,ronald1,balrog,maximilian,mypasswo,sonny1,zzxxcc,tkfkdg,magoo,mdogg,heeled,gitara,lesbos,marajade,tippy,morozova,enter123,lesbean,pounded,asd456,fialka,scarab,sharpie,spanky1,gstring,sachin,
12345asd,princeto,hellohel,ursitesux,billows,
1234kekc,kombat,cashew,duracell,kseniya,sevenof9,kostik,arthur1,corvet07,rdfhnbhf,songoku,tiberian,needforspeed,
1qwert,dropkick,kevin123,panache,libra,a123456a,kjiflm,vfhnsirf,cntgfy,iamcool,narut,buffer,sk8ordie,urlaub,fireblade,blanked,marishka,gemini1,altec,gorillaz,chief1,revival47,ironman1,space1,ramstein,doorknob,devilmaycry,nemesis1,sosiska,pennstat,monday1,pioner,shevchenko,detectiv,evildead,blessed1,aggie,coffees,tical,scotts,bullwink,marsel,krypto,adrock,rjitxrf,asmodeus,rapunzel,theboys,hotdogs,deepthro,maxpayne,veronic,fyyeirf,otter,cheste,abbey1,thanos,bedrock,bartok,google1,xxxzzz,rodent,montecarlo,hernande,mikayla,
123456789l,bravehea,
12locked,ltymub,pegasus1,ameteur,saltydog,faisal,milfnew,momsuck,everques,ytngfhjkz,m0nkey,businessbabe,cooki,custard,
123456ab,lbvjxrf,outlaws,
753357,qwerty78,udacha,insider,chees,fuckmehard,shotokan,katya,seahorse,vtldtlm,turtle1,mike12,beebop,heathe,everton1,darknes,barnie,rbcekz,alisher,toohot,theduke,
555222,reddog1,breezy,bulldawg,monkeyman,baylee,losangel,mastermi,apollo1,aurelie,zxcvb12345,cayenne,bastet,wsxzaq,geibcnbr,yello,fucmy69,redwall,ladybird,bitchs,cccccc1,rktjgfnhf,ghjdthrf,quest1,oedipus,linus,impalass,fartman,
12345k,fokker,
159753a,optiplex,bbbbbb1,realtor,slipkno,santacru,rowdy,jelena,smeller,
3984240,ddddd1,sexyme,janet1,
3698741,eatme69,cazzone,today1,poobear,ignatius,master123,newpass1,heather2,snoopdogg,blondinka,pass12,honeydew,fuckthat,
890098890,lovem,goldrush,gecko,biker1,llama,pendejo,avalanche,fremont,snowman1,gandolf,chowder,
1a2b3c4d5e,flyguy,magadan,
1fuck,pingvin,nokia5230,ab1234,lothar,lasers,bignuts,renee1,royboy,skynet,
12340987,
1122334,dragrace,lovely1,
22334455,booter,
12345612,corvett,
123456qq,capital1,videoes,funtik,wyvern,flange,sammydog,hulkster,
13245768,not4you,vorlon,omegared,l58jkdjp!,filippo,
123mudar,samadams,petrus,chris12,charlie123,
123456789123,icetea,sunderla,adrian1,
123qweas,kazanova,aslan,monkey123,fktyeirf,goodsex,
123ab,lbtest,banaan,bluenose,
837519,asd12345,waffenss,whateve,
1a2a3a4a,trailers,vfhbirf,bhbcrf,klaatu,turk182,monsoon,beachbum,sunbeam,succes,clyde1,viking1,rawhide,bubblegum,princ,mackenzi,hershey1,
222555,dima55,niggaz,manatee,aquila,anechka,pamel,bugsbunn,lovel,sestra,newport1,althor,hornyman,wakeup,zzz111,phishy,cerber,torrent,thething,solnishko,babel,buckeye1,peanu,ethernet,uncencored,baraka,
665544,chris2,rb26dett,willy1,choppers,texaco,biggirl,
123456b,anna2614,sukebe,caralho,callofduty,rt6ytere,jesus7,angel12,
1money,timelord,allblack,pavlova,romanov,tequiero,yitbos,lookup,bulls23,snowflake,dickweed,barks,lever,irisha,firestar,fred1234,ghjnjnbg,danman,gatito,betty1,milhouse,kbctyjr,masterbaiting,delsol,papit,doggys,
123698741,bdfyjdf,invictus,bloods,kayla1,yourmama,apple2,angelok,bigboy1,pontiac1,verygood,yeshua,twins2,porn4me,
141516,rasta69,james2,bosshog,candys,adventur,stripe,djkjlz,dokken,austin316,skins,hogwarts,vbhevbh,navigato,desperado,xxx666,cneltyn,vasiliy,hazmat,daytek,eightbal,fred1,four20,
74227422,fabia,aerosmith,manue,wingchun,boohoo,hombre,sanity72,goatboy,fuckm,partizan,avrora,utahjazz,submarin,pussyeat,heinlein,control1,costaric,smarty,chuan,triplets,snowy,snafu,teacher1,vangogh,vandal,evergree,cochise,qwerty99,pyramid1,saab900,sniffer,qaz741,lebron23,mark123,wolvie,blackbelt,yoshi,feeder,janeway,nutella,fuking,asscock,deepak,poppie,bigshow,housewife,grils,tonto,cynthia1,temptress,irakli,belle1,russell1,manders,frank123,seabass,gforce,songbird,zippy1,naught,brenda1,chewy1,hotshit,topaz,
43046721,girfriend,marinka,jakester,thatsme,planeta,falstaff,patrizia,reborn,riptide,cherry1,shuan,nogard,chino,oasis1,qwaszx12,goodlife,davis1,
1911a1,harrys,shitfuck,
12345678900,russian7,
007700,bulls1,porshe,danil,dolphi,river1,sabaka,gobigred,deborah1,volkswagen,miamo,alkaline,muffdive,
1letmein,fkbyrf,goodguy,hallo1,nirvan,ozzie,cannonda,cvbhyjdf,marmite,germany1,joeblow,radio1,love11,raindrop,
159852,jacko,newday,fathead,elvis123,caspe,citibank,sports1,deuce,boxter,fakepass,golfman,snowdog,birthday4,nonmembe,niklas,parsifal,krasota,theshit,
1235813,maganda,nikita1,omicron,cassie1,columbo,buick,sigma1,thistle,bassin,rickster,apteka,sienna,skulls,miamor,coolgirl,gravis,
1qazxc,virgini,hunter2,akasha,batma,motorcyc,bambino,tenerife,fordf250,zhuan,iloveporn,markiza,hotbabes,becool,fynjybyf,wapapapa,forme,mamont,pizda,dragonz,sharon1,scrooge,mrbill,pfloyd,leeroy,natedog,ishmael,
777111,tecumseh,carajo,nfy.irf,
0000000000o,blackcock,fedorov,antigone,feanor,novikova,bobert,peregrin,spartan117,pumkin,rayman,manuals,tooltime,
555333,bonethug,marina1,bonnie1,tonyhawk,laracroft,mahalkita,
18273645,terriers,gamer,hoser,littlema,molotok,glennwei,lemon1,caboose,tater,
12345654321,brians,fritz1,mistral,jigsaw,fuckshit,hornyguy,southside,edthom,antonio1,bobmarle,pitures,ilikesex,crafty,nexus,boarder,fulcrum,astonvil,yanks1,yngwie,account1,zooropa,hotlegs,sammi,gumbo,rover1,perkele,maurolarastefy,lampard,
357753,barracud,dmband,abcxyz,pathfinder,
335577,yuliya,micky,jayman,asdfg12345,
1596321,halcyon,rerfhtre,feniks,zaxscd,gotyoass,jaycee,samson1,jamesb,vibrate,grandpri,camino,colossus,davidb,mamo4ka,nicky1,homer123,pinguin,watermelon,shadow01,lasttime,glider,
823762,helen1,pyramids,tulane,osama,rostov,john12,scoote,bhbyrf,gohan,galeries,joyful,bigpussy,tonka,mowgli,astalavista,zzz123,leafs,dalejr8,unicorn1,
777000,primal,bigmama,okmijn,killzone,qaz12345,snookie,zxcvvcxz,davidc,epson,rockman,ceaser,beanbag,katten,
3151020,duckhunt,segreto,matros,ragnar,
699669,sexsexse,
123123z,fuckyeah,bigbutts,gbcmrf,element1,marketin,saratov,elbereth,blaster1,yamahar6,grime,masha,juneau,
1230123,pappy,lindsay1,mooner,seattle1,katzen,lucent,polly1,lagwagon,pixie,misiaczek,
666666a,smokedog,lakers24,eyeball,ironhors,ametuer,volkodav,vepsrf,kimmy,gumby1,poi098,ovation,
1q2w3,drinker,penetrating,summertime,
1dallas,prima,modles,takamine,hardwork,macintosh,tahoe,passthie,chiks,sundown,flowers1,boromir,music123,phaedrus,albert1,joung,malakas,gulliver,parker1,balder,sonne,jessie1,domainlock2005,express1,vfkbyf,youandme,raketa,koala,dhjnvytyjub,nhfrnjh,testibil,ybrbnjc,
987654321q,axeman,pintail,pokemon123,dogggg,shandy,thesaint,
11122233,x72jhhu3z,theclash,raptors,zappa1,djdjxrf,hell666,friday1,vivaldi,pluto1,lance1,guesswho,jeadmi,corgan,skillz,skippy1,mango1,gymnastic,satori,
362514,theedge,cxfcnkbdfz,sparkey,deicide,bagels,lololol,lemmings,r4e3w2q1,silve,staind,schnuffi,dazzle,basebal1,leroy1,bilbo1,luckie,qwerty2,goodfell,hermione,peaceout,davidoff,yesterda,killah,flippy,chrisb,zelda1,headless,muttley,fuckof,tittys,catdaddy,photog,beeker,reaver,ram1500,yorktown,bolero,tryagain,arman,chicco,learjet,alexei,jenna1,go2hell,
12s3t4p55,momsanaladventure,mustang9,protoss,rooter,ginola,dingo1,mojave,erica1,
1qazse4,marvin1,redwolf,sunbird,dangerou,maciek,girsl,hawks1,packard1,excellen,dashka,soleda,toonces,acetate,nacked,jbond007,alligator,debbie1,wellhung,monkeyma,supers,rigger,larsson,vaseline,rjnzhf,maripos,
123456asd,cbr600rr,doggydog,cronic,jason123,trekker,flipmode,druid,sonyvaio,dodges,mayfair,mystuff,fun4me,samanta,sofiya,magics,
1ranger,arcane,sixtynin,
222444,omerta,luscious,gbyudby,bobcats,envision,chance1,seaweed,holdem,tomate,mensch,slicer,acura1,goochi,qweewq,punter,repoman,tomboy,never1,cortina,gomets,
147896321,
369852147,dogma,bhjxrf,loglatin,eragon,strato,gazelle,growler,
885522,klaudia,payton34,fuckem,butchie,scorpi,lugano,
123456789k,nichola,chipper1,spide,uhbujhbq,rsalinas,vfylfhby,longhorns,bugatti,everquest,!qaz2wsx,blackass,
999111,snakeman,p455w0rd,fanatic,family1,pfqxbr,
777vlad,mysecret,marat,phoenix2,october1,genghis,panties1,cooker,citron,ace123,
1234569,gramps,blackcoc,kodiak1,hickory,ivanhoe,blackboy,escher,sincity,beaks,meandyou,spaniel,canon1,timmy1,lancaste,polaroid,edinburg,fuckedup,hotman,cueball,golfclub,gopack,bookcase,worldcup,dkflbvbhjdbx,twostep,
17171717aa,letsplay,zolushka,stella1,pfkegf,kingtut,
67camaro,barracuda,wiggles,gjhjkm,prancer,patata,kjifhf,theman1,romanova,sexyass,copper1,dobber,sokolov,pomidor,algernon,cadman,amoremio,william2,silly1,bobbys,hercule,hd764nw5d7e1vb1,defcon,deutschland,robinhood,alfalfa,machoman,lesbens,pandora1,easypay,tomservo,nadezhda,goonies,saab9000,jordyn,f15eagle,dbrecz,
12qwerty,greatsex,thrawn,blunted,baywatch,doggystyle,loloxx,chevy2,january1,kodak,bushel,
78963214,ub6ib9,zz8807zpl,briefs,hawker,
224488,first1,bonzo,brent1,erasure,
69213124,sidewind,soccer13,
622521,mentos,kolibri,onepiece,united1,ponyboy,keksa12,wayer,mypussy,andrej,mischa,mille,bruno123,garter,bigpun,talgat,familia,jazzy1,mustang8,newjob,
747400,bobber,blackbel,hatteras,ginge,asdfjkl;,camelot1,blue44,rebbyt34,ebony1,vegas123,myboys,aleksander,ijrjkflrf,lopata,pilsner,lotus123,m0nk3y,andreev,freiheit,balls1,drjynfrnt,mazda1,waterpolo,shibumi,
852963,
123bbb,cezer121,blondie1,volkova,rattler,kleenex,ben123,sanane,happydog,satellit,qazplm,qazwsxedcrfvtgb,meowmix,badguy,facefuck,spice1,blondy,major1,
25000,anna123,
654321a,sober1,deathrow,patterso,china1,naruto1,hawkeye1,waldo1,butchy,crayon,
5tgb6yhn,klopik,crocodil,mothra,imhorny,pookie1,splatter,slippy,lizard1,router,buratino,yahweh,
123698,dragon11,
123qwe456,peepers,trucker1,ganjaman,
1hxboqg2,cheyanne,storys,sebastie,zztop,maddison,
4rfv3edc,darthvader,jeffro,iloveit,victor1,hotty,delphin,lifeisgood,gooseman,shifty,insertions,dude123,abrupt,
123masha,boogaloo,chronos,stamford,pimpster,kthjxrf,getmein,amidala,flubber,fettish,grapeape,dantes,oralsex,jack1,foxcg33,winchest,francis1,getin,archon,cliffy,blueman,
1basebal,sport1,emmitt22,porn123,bignasty,morga,
123hfjdk147,ferrar,juanito,fabiol,caseydog,steveo,peternorth,paroll,kimchi,bootleg,gaijin,secre,acacia,eatme2,amarillo,monkey11,rfhfgep,tylers,a1a2a3a4a5,sweetass,blower,rodina,babushka,camilo,cimbom,tiffan,vfnbkmlf,ohbaby,gotigers,lindsey1,dragon13,romulus,qazxsw12,zxcvbn1,dropdead,hitman47,snuggle,eleven11,bloopers,
357mag,avangard,bmw320,ginscoot,dshade,masterkey,voodoo1,rootedit,caramba,leahcim,hannover,
8phrowz622,tim123,cassius,
000000a,angelito,zzzzz1,badkarma,star1,malaga,glenwood,footlove,golf1,summer12,helpme1,fastcars,titan1,police1,polinka,k.jdm,marusya,augusto,shiraz,pantyhose,donald1,blaise,arabella,brigada,c3por2d2,peter01,marco1,hellow,dillweed,uzumymw,geraldin,loveyou2,toyota1,
088011,gophers,indy500,slainte,
5hsu75kpot,teejay,renat,racoon,sabrin,angie1,shiznit,harpua,sexyred,latex,tucker1,alexandru,wahoo,teamwork,deepblue,goodison,rundmc,r2d2c3p0,puppys,samba,ayrton,boobed,
999777,topsecre,blowme1,
123321z,loudog,random1,pantie,drevil,mandolin,
121212q,hottub,brother1,failsafe,spade1,matvey,open1234,carmen1,priscill,schatzi,kajak,gooddog,trojans1,gordon1,kayak,calamity,argent,ufhvjybz,seviyi,penfold,assface,dildos,hawkwind,crowbar,yanks,ruffles,rastus,luv2epus,open123,aquafina,dawns,jared1,teufel,
12345c,vwgolf,pepsi123,amores,passwerd,
01478520,boliva,smutty,headshot,password3,davidd,zydfhm,gbgbcmrf,pornpass,insertion,ceckbr,test2,car123,checkit,dbnfkbq,niggas,nyyankee,muskrat,nbuhtyjr,gunner1,ocean1,fabienne,chrissy1,wendys,loveme89,batgirl,cerveza,igorek,steel1,ragman,boris123,novifarm,sexy12,qwerty777,mike01,giveitup,
123456abc,fuckall,crevice,hackerz,gspot,eight8,assassins,texass,swallows,
123458,baldur,moonshine,labatt,modem,sydney1,voland,dbnfkz,hotchick,jacker,princessa,dawgs1,holiday1,booper,reliant,miranda1,jamaica1,andre1,badnaamhere,barnaby,tiger7,david12,margaux,corsica,
085tzzqi,universi,thewall,nevermor,martin6,qwerty77,cipher,apples1,
0102030405,seraphim,black123,imzadi,gandon,ducati99,
1shadow,dkflbvbhjdyf,
44magnum,bigbad,feedme,samantha1,ultraman,redneck1,jackdog,usmc0311,fresh1,monique1,tigre,alphaman,cool1,greyhoun,indycar,crunchy,
55chevy,carefree,willow1,
063dyjuy,xrated,assclown,federica,hilfiger,trivia,bronco1,mamita,
100200300,simcity,lexingky,akatsuki,retsam,johndeere,abudfv,raster,elgato,businka,satanas,mattingl,redwing1,shamil,patate,mannn,moonstar,evil666,b123456,bowl300,tanechka,
34523452,carthage,babygir,santino,bondarenko,jesuss,chico1,numlock,shyguy,sound1,kirby1,needit,mostwanted,
427900,funky1,steve123,passions,anduril,kermit1,prospero,lusty,barakuda,dream1,broodwar,porky,christy1,mahal,yyyyyy1,allan1,
1sexy,flintsto,capri,cumeater,heretic,robert2,hippos,blindax,marykay,collecti,kasumi,
1qaz!qaz,
112233q,
123258,chemistr,coolboy,
0o9i8u,kabuki,righton,tigress,nessie,sergej,andrew12,yfafyz,ytrhjvfyn,angel7,victo,mobbdeep,lemming,transfor,
1725782,myhouse,aeynbr,muskie,leno4ka,westham1,cvbhyjd,daffodil,pussylicker,pamela1,stuffer,warehous,tinker1,
2w3e4r,pluton,louise1,polarbea,
253634,prime1,anatoliy,januar,wysiwyg,cobraya,ralphy,whaler,xterra,cableguy,
112233a,porn69,jamesd,aqualung,jimmy123,lumpy,luckyman,kingsize,golfing1,alpha7,leeds1,marigold,lol1234,teabag,alex11,
10sne1,saopaulo,shanny,roland1,basser,
3216732167,carol1,year2005,morozov,saturn1,joseluis,bushed,redrock,memnoch,lalaland,indiana1,lovegod,gulnaz,buffalos,loveyou1,anteater,pattaya,jaydee,redshift,bartek,summerti,coffee1,ricochet,incest,schastie,rakkaus,h2opolo,suikoden,perro,dance1,loveme1,whoopass,vladvlad,boober,flyers1,alessia,gfcgjhn,pipers,papaya,gunsling,coolone,blackie1,gonads,gfhjkzytn,foxhound,qwert12,gangrel,ghjvtntq,bluedevi,mywife,summer01,hangman,licorice,patter,vfr750,thorsten,
515253,ninguna,dakine,strange1,mexic,vergeten,
12345432,
8phrowz624,stampede,floyd1,sailfish,raziel,ananda,giacomo,freeme,crfprf,
74185296,allstars,master01,solrac,gfnhbjn,bayliner,bmw525,
3465xxx,catter,single1,michael3,pentium4,nitrox,mapet123456,halibut,killroy,xxxxx1,phillip1,poopsie,arsenalfc,buffys,kosova,all4me,
32165498,arslan,opensesame,brutis,charles2,pochta,nadegda,backspac,mustang0,invis,gogeta,
654321q,adam25,niceday,truckin,gfdkbr,biceps,sceptre,bigdave,lauras,user345,sandys,shabba,ratdog,cristiano,natha,march13,gumball,getsdown,wasdwasd,redhead1,dddddd1,longlegs,
13572468,starsky,ducksoup,bunnys,omsairam,whoami,fred123,danmark,flapper,swanky,lakings,yfhenj,asterios,rainier,searcher,dapper,ltdjxrf,horsey,seahawk,shroom,tkfkdgo,aquaman,tashkent,number9,messi10,
1asshole,milenium,illumina,vegita,jodeci,buster01,bareback,goldfinger,fire1,
33rjhjds,sabian,thinkpad,smooth1,sully,bonghits,sushi1,magnavox,colombi,voiture,limpone,oldone,aruba,rooster1,zhenya,nomar5,touchdow,limpbizkit,rhfcfdxbr,baphomet,afrodita,bball1,madiso,ladles,lovefeet,matthew2,theworld,thunderbird,dolly1,
123rrr,forklift,alfons,berkut,speedy1,saphire,oilman,creatine,pussylov,bastard1,
456258,wicked1,filimon,skyline1,fucing,yfnfkbz,hot123,abdulla,nippon,nolimits,billiard,booty1,buttplug,westlife,coolbean,aloha1,lopas,asasin,
1212121,october2,whodat,good4u,d12345,kostas,ilya1992,regal,pioneer1,volodya,focus1,bastos,nbvjif,fenix,anita1,vadimka,nickle,jesusc,
123321456,teste,christ1,essendon,evgenii,celticfc,adam1,forumwp,lovesme,
26exkp,chillout,burly,thelast1,marcus1,metalgear,test11,ronaldo7,socrate,world1,franki,mommie,vicecity,postov1000,charlie3,oldschool,
333221,legoland,antoshka,counterstrike,buggy,mustang3,
123454,qwertzui,toons,chesty,bigtoe,tigger12,limpopo,rerehepf,diddle,nokia3250,solidsnake,conan1,rockroll,
963369,titanic1,qwezxc,cloggy,prashant,katharin,maxfli,takashi,cumonme,michael9,mymother,pennstate,khalid,
48151623,fightclub,showboat,mateusz,elrond,teenie,arrow1,mammamia,dustydog,dominator,erasmus,zxcvb1,
1a2a3a,bones1,dennis1,galaxie,pleaseme,whatever1,junkyard,galadriel,charlies,
2wsxzaq1,crimson1,behemoth,teres,master11,fairway,shady1,pass99,
1batman,joshua12,baraban,apelsin,mousepad,melon,twodogs,
123321qwe,metalica,ryjgrf,pipiska,rerfhfxf,lugnut,cretin,iloveu2,powerade,aaaaaaa1,omanko,kovalenko,isabe,chobits,
151nxjmt,shadow11,zcxfcnkbdf,gy3yt2rgls,vfhbyrf,
159753123,bladerunner,goodone,wonton,doodie,
333666999,fuckyou123,kitty123,chisox,orlando1,skateboa,red12345,destroye,snoogans,satan1,juancarlo,goheels,jetson,scottt,fuckup,aleksa,gfhfljrc,passfind,oscar123,derrick1,hateme,viper123,pieman,audi100,tuffy,andover,shooter1,
10000,makarov,grant1,nighthaw,
13576479,browneye,batigol,nfvfhf,chocolate1,
7hrdnw23,petter,bantam,morlii,jediknight,brenden,argonaut,goodstuf,wisconsi,
315920,abigail1,dirtbag,splurge,k123456,lucky777,valdepen,gsxr600,
322223,ghjnjrjk,zaq1xsw2cde3,schwanz,walter1,letmein22,nomads,
124356,codeblue,nokian70,fucke,footbal1,agyvorc,aztecs,passw0r,smuggles,femmes,ballgag,krasnodar,tamuna,schule,sixtynine,empires,erfolg,dvader,ladygaga,elite1,venezuel,nitrous,kochamcie,olivia1,trustn01,arioch,sting1,
131415,tristar,
555000,maroon,
135799,marsik,
555556,fomoco,natalka,cwoui,tartan,davecole,nosferat,hotsauce,dmitry,horus,dimasik,skazka,boss302,bluebear,vesper,ultras,tarantul,asd123asd,azteca,theflash,
8ball,
1footbal,titlover,lucas123,number6,sampson1,
789852,party1,dragon99,adonai,carwash,metropol,psychnau,vthctltc,hounds,firework,blink18,
145632,wildcat1,satchel,rice80,ghtktcnm,sailor1,cubano,anderso,rocks1,mike11,famili,dfghjc,besiktas,roygbiv,nikko,bethan,minotaur,rakesh,orange12,hfleuf,jackel,myangel,favorite7,
1478520,asssss,agnieszka,haley1,raisin,htubyf,
1buster,cfiekz,derevo,
1a2a3a4a5a,baltika,raffles,scruffy1,clitlick,louis1,buddha1,fy.nrf,walker1,makoto,shadow2,redbeard,vfvfvskfhfve,mycock,sandydog,lineman,network1,favorite8,longdick,mustangg,mavericks,indica,
1killer,cisco1,angelofwar,blue69,brianna1,bubbaa,slayer666,level42,baldrick,brutus1,lowdown,haribo,lovesexy,
500000,thissuck,picker,stephy,
1fuckme,characte,telecast,
1bigdog,repytwjdf,thematrix,hammerhe,chucha,ganesha,gunsmoke,georgi,sheltie,
1harley,knulla,sallas,westie,dragon7,conker,crappie,margosha,lisboa,
3e2w1q,shrike,grifter,ghjcnjghjcnj,asdfg1,mnbvcxz1,myszka,posture,boggie,rocketman,flhtyfkby,twiztid,vostok,pi314159,force1,televizor,gtkmvtym,samhain,imcool,jadzia,dreamers,strannik,k2trix,steelhea,nikitin,commodor,brian123,chocobo,whopper,ibilljpf,megafon,ararat,thomas12,ghbrjkbcn,q1234567890,hibernia,kings1,jim123,redfive,
68camaro,iawgk2,xavier1,
1234567u,d123456,ndirish,airborn,halfmoon,fluffy1,ranchero,sneaker,soccer2,passion1,cowman,birthday1,johnn,razzle,glock17,wsxqaz,nubian,lucky2,jelly1,henderso,eric1,
123123e,boscoe01,fuck0ff,simpson1,sassie,rjyjgkz,nascar3,watashi,loredana,janus,wilso,conman,david2,mothe,iloveher,snikers,davidj,fkmnthyfnbdf,mettss,ratfink,
123456h,lostsoul,sweet16,brabus,wobble,petra1,fuckfest,otters,sable1,svetka,spartacu,bigstick,milashka,
1lover,pasport,champagn,papichul,hrvatska,hondacivic,kevins,tacit,moneybag,gohogs,rasta1,
246813579,ytyfdbcnm,gubber,darkmoon,vitaliy,
233223,playboys,tristan1,joyce1,oriflame,mugwump,access2,autocad,thematri,qweqwe123,lolwut,ibill01,multisyn,
1233211,pelikan,rob123,chacal,
1234432,griffon,pooch,dagestan,geisha,satriani,anjali,rocketma,gixxer,pendrago,vincen,hellokit,killyou,ruger,doodah,bumblebe,badlands,galactic,emachines,foghorn,jackso,jerem,avgust,frontera,
123369,daisymae,hornyboy,welcome123,tigger01,diabl,angel13,interex,iwantsex,rockydog,kukolka,sawdust,online1,
3234412,bigpapa,jewboy,
3263827,dave123,riches,
333222,tony1,toggle,farter,
124816,tities,balle,brasilia,southsid,micke,ghbdtn12,patit,ctdfcnjgjkm,olds442,zzzzzz1,nelso,gremlins,gypsy1,carter1,slut69,farcry,
7415963,michael8,birdie1,charl,
123456789abc,
100001,aztec,sinjin,bigpimpi,closeup,atlas1,nvidia,doggone,classic1,manana,malcolm1,rfkbyf,hotbabe,rajesh,dimebag,ganjubas,rodion,jagr68,seren,syrinx,funnyman,karapuz,
123456789n,bloomin,admin18533362,biggdogg,ocarina,poopy1,hellome,internet1,booties,blowjobs,matt1,donkey1,swede,
1jennife,evgeniya,lfhbyf,coach1,
444777,green12,patryk,pinewood,justin12,
271828,
89600506779,notredame,tuborg,lemond,sk8ter,million1,wowser,pablo1,st0n3,jeeves,funhouse,hiroshi,gobucs,angeleye,bereza,winter12,catalin,qazedc,andros,ramazan,vampyre,sweethea,imperium,murat,jamest,flossy,sandeep,morgen,salamandra,bigdogg,stroller,njdevils,nutsack,vittorio,%%passwo,playful,rjyatnrf,tookie,ubnfhf,michi,
777444,shadow13,devils1,radiance,toshiba1,beluga,amormi,dandfa,trust1,killemall,smallville,polgara,billyb,landscap,steves,exploite,zamboni,damage11,dzxtckfd,trader12,pokey1,kobe08,damager,egorov,dragon88,ckfdbr,lisa69,blade2,audis4,nelson1,nibbles,
23176djivanfros,mutabor,artofwar,matvei,metal666,hrfzlz,schwinn,poohbea,seven77,thinker,
123456789qwerty,sobriety,jakers,karamelka,vbkfyf,volodin,iddqd,dale03,roberto1,lizaveta,qqqqqq1,cathy1,
08154711,davidm,quixote,bluenote,tazdevil,katrina1,bigfoot1,bublik,marma,olechka,fatpussy,marduk,arina,nonrev67,qqqq1111,camill,wtpfhm,truffle,fairview,mashina,voltaire,qazxswedcvfr,dickface,grassy,lapdance,bosstone,crazy8,yackwin,mobil,danielit,mounta1n,player69,bluegill,mewtwo,reverb,cnthdf,pablito,a123321,elena1,warcraft1,orland,ilovemyself,rfntyjr,joyride,schoo,dthjxrf,thetachi,goodtimes,blacksun,humpty,chewbacca,guyute,
123xyz,lexicon,blue45,qwe789,galatasaray,centrino,hendrix1,deimos,saturn5,craig1,vlad1996,sarah123,tupelo,ljrnjh,hotwife,bingos,
1231231,nicholas1,flamer,pusher,
1233210,heart1,hun999,jiggy,giddyup,oktober,
123456zxc,budda,galahad,glamur,samwise,oneton,bugsbunny,dominic1,scooby2,freetime,internat,
159753852,sc00ter,wantit,mazinger,inflames,laracrof,greedo,
014789,godofwar,repytwjd,water123,fishnet,venus1,wallace1,tenpin,paula1,
1475963,mania,novikov,qwertyasdfgh,goldmine,homies,
777888999,
8balls,holeinon,paper1,samael,
013579,mansur,nikit,ak1234,blueline,polska1,hotcock,laredo,windstar,vbkbwbz,raider1,newworld,lfybkrf,catfish1,shorty1,piranha,treacle,royale,
2234562,smurfs,minion,cadence,flapjack,
123456p,sydne,
135531,robinhoo,nasdaq,decatur,cyberonline,newage,gemstone,jabba,touchme,hooch,pigdog,indahous,fonzie,zebra1,juggle,patrick2,nihongo,hitomi,oldnavy,qwerfdsa,ukraina,shakti,allure,kingrich,diane1,canad,piramide,hottie1,clarion,college1,
5641110,connect1,therion,clubber,velcro,dave1,astra1,
13579-,astroboy,skittle,isgreat,photoes,cvzefh1gkc,
001100,
2cool4u,
7555545,ginger12,
2wsxcde3,camaro69,invader,domenow,asd1234,colgate,qwertasdfg,jack123,pass01,maxman,bronte,whkzyc,peter123,bogie,yecgaa,abc321,
1qay2wsx,enfield,camaroz2,trashman,bonefish,system32,azsxdcfvgb,peterose,iwantyou,dick69,temp1234,blastoff,capa200,connie1,blazin,
12233445,sexybaby,
123456j,brentfor,pheasant,hommer,jerryg,thunders,august1,lager,kapusta,boobs1,nokia5300,rocco1,xytfu7,stars1,tugger,
123sas,blingbling,
1bubba,
0wnsyo0,
1george,baile,richard2,habana,
1diamond,sensatio,
1golfer,maverick1,
1chris,clinton1,michael7,dragons1,sunrise1,pissant,fatim,mopar1,levani,rostik,pizzapie,
987412365,oceans11,
748159263,cum4me,palmetto,
4r3e2w1q,paige1,muncher,arsehole,kratos,gaffer,banderas,billys,prakash,crabby,bungie,silver12,caddis,spawn1,xboxlive,sylvania,littlebi,
524645,futura,valdemar,isacs155,prettygirl,big123,
555444,slimer,chicke,newstyle,skypilot,sailormoon,fatluvr69,jetaime,sitruc,jesuschrist,sameer,bear12,hellion,yendor,country1,etnies,conejo,jedimast,darkknight,toobad,yxcvbn,snooks,porn4life,calvary,alfaromeo,ghostman,yannick,fnkfynblf,vatoloco,homebase,
5550666,barret,
1111111111zz,odysseus,edwardss,favre4,jerrys,crybaby,xsw21qaz,firestor,spanks,indians1,squish,kingair,babycakes,haters,sarahs,
212223,teddyb,xfactor,cumload,rhapsody,death123,three3,raccoon,thomas2,slayer66,
1q2q3q4q5q,thebes,mysterio,thirdeye,orkiox.,nodoubt,bugsy,schweiz,dima1996,angels1,darkwing,jeronimo,moonpie,ronaldo9,peaches2,mack10,manish,denise1,fellowes,carioca,taylor12,epaulson,makemoney,oc247ngucz,kochanie,
3edcvfr4,vulture,
1qw23e,
1234567z,munchie,picard1,xthtgfirf,sportste,psycho1,tahoe1,creativ,perils,slurred,hermit,scoob,diesel1,cards1,wipeout,weeble,integra1,out3xf,powerpc,chrism,kalle,ariadne,kailua,phatty,dexter1,fordman,bungalow,paul123,compa,train1,thejoker,jys6wz,pussyeater,eatmee,sludge,dominus,denisa,tagheuer,yxcvbnm,bill1,ghfdlf,
300zx,nikita123,carcass,semaj,ramone,muenchen,animal1,greeny,annemari,dbrf134,jeepcj7,mollys,garten,sashok,ironmaid,coyotes,astoria,george12,westcoast,primetim,
123456o,panchito,rafae,japan1,framer,auralo,tooshort,egorova,qwerty22,callme,medicina,warhawk,w1w2w3w4,cristia,merli,alex22,kawaii,chatte,wargames,utvols,muaddib,trinket,andreas1,jjjjj1,cleric,scooters,cuntlick,gggggg1,slipknot1,
235711,handcuff,stussy,guess1,leiceste,ppppp1,passe,lovegun,chevyman,hugecock,driver1,buttsex,psychnaut1,cyber1,black2,alpha12,melbourn,man123,metalman,yjdsqujl,blondi,bungee,freak1,stomper,caitlin1,nikitina,flyaway,prikol,begood,desperad,aurelius,john1234,whosyourdaddy,slimed123,bretagne,den123,hotwheel,king123,roodypoo,izzicam,save13tx,warpten,nokia3310,samolet,ready1,coopers,scott123,bonito,
1aaaaa,yomomma,dawg1,rache,itworks,asecret,fencer,
451236,polka,olivetti,sysadmin,zepplin,sanjuan,
479373,lickem,hondacrx,pulamea,future1,naked1,sexyguy,w4g8at,lollol1,declan,runner1,rumple,daddy123,
4snz9g,grandprix,calcio,whatthefuck,nagrom,asslick,pennst,negrit,squiggy,
1223334444,police22,giovann,toronto1,tweet,yardbird,seagate,truckers,
554455,scimitar,pescator,slydog,gaysex,dogfish,fuck777,
12332112,qazxswed,morkovka,daniela1,imback,horny69,
789123456,
123456789w,jimmy2,bagger,ilove69,nikolaus,atdhfkm,rebirth,
1111aaaa,pervasive,gjgeufq,dte4uw,gfhnbpfy,skeletor,whitney1,walkman,delorean,disco1,
555888,as1234,ishikawa,fuck12,reaper1,dmitrii,bigshot,morrisse,purgen,qwer4321,itachi,willys,
123123qwe,kisska,roma123,trafford,sk84life,
326159487,pedros,idiom,plover,bebop,
159875321,jailbird,arrowhea,qwaszx123,zaxscdvf,catlover,bakers,
13579246,bones69,vermont1,helloyou,simeon,chevyz71,funguy,stargaze,parolparol,steph1,bubby,apathy,poppet,laxman,kelly123,goodnews,
741236,boner1,gaetano,astonvilla,virtua,luckyboy,rocheste,hello2u,elohim,trigger1,cstrike,pepsicola,miroslav,
96385274,fistfuck,cheval,magyar,svetlanka,lbfyjxrf,mamedov,
123123123q,ronaldo1,scotty1,
1nicole,pittbull,fredd,bbbbb1,dagwood,gfhkfvtyn,ghblehrb,logan5,
1jordan,sexbomb,omega2,montauk,
258741,dtythf,gibbon,winamp,thebomb,millerli,
852654,gemin,baldy,halflife2,dragon22,mulberry,morrigan,hotel6,zorglub,surfin,
951159,excell,arhangel,emachine,moses1,
968574,reklama,bulldog2,cuties,barca,twingo,saber,elite11,redtruck,casablan,ashish,moneyy,pepper12,cnhtktw,rjcnbr,arschloch,phenix,cachorro,sunita,madoka,joselui,adams1,mymoney,hemicuda,fyutkjr,jake12,chicas,eeeee1,sonnyboy,smarties,birdy,kitten1,cnfcbr,island1,kurosaki,taekwond,konfetka,bennett1,omega3,jackson2,fresca,minako,octavian,kban667,feyenoord,muaythai,jakedog,fktrcfylhjdyf,
1357911q,phuket,sexslave,fktrcfylhjdbx,asdfjk,
89015173454,qwerty00,kindbud,eltoro,sex6969,nyknicks,
12344321q,caballo,evenflow,hoddle,love22,metro1,mahalko,lawdog,tightass,manitou,buckie,whiskey1,anton123,
335533,password4,primo,ramair,timbo,brayden,stewie,pedro1,yorkshir,ganster,hellothe,tippy1,direwolf,genesi,rodrig,enkeli,vaz21099,sorcerer,winky,oneshot,boggle,serebro,badger1,japanes,comicbook,kamehame,alcat,denis123,echo45,sexboy,gr8ful,hondo,voetbal,blue33,
2112rush,geneviev,danni1,moosey,polkmn,matthew7,ironhead,hot2trot,ashley12,sweeper,imogen,blue21,retep,stealth1,guitarra,bernard1,tatian,frankfur,vfnhbwf,slacking,haha123,
963741,asdasdas,katenok,airforce1,
123456789qaz,shotgun1,
12qwasz,reggie1,sharo,
976431,pacifica,dhip6a,neptun,kardon,spooky1,beaut,
555555a,toosweet,tiedup,
11121314,startac,lover69,rediska,pirata,vfhrbp,
1234qwerty,energize,hansolo1,playbo,larry123,oemdlg,cnjvfnjkju,a123123,alexan,gohawks,antonius,fcbayern,mambo,yummy1,kremlin,ellen1,tremere,vfiekz,bellevue,charlie9,izabella,malishka,fermat,rotterda,dawggy,becket,chasey,kramer1,
21125150,lolit,cabrio,schlong,arisha,verity,
3some,favorit,maricon,travelle,hotpants,red1234,garrett1,home123,knarf,seven777,figment,asdewq,canseco,good2go,warhol,thomas01,pionee,al9agd,panacea,chevy454,brazzers,oriole,azerty123,finalfan,patricio,northsta,rebelde,bulldo,stallone,boogie1,
7uftyx,cfhfnjd,compusa,cornholi,config,deere,hoopster,sepultura,grasshop,babygurl,lesbo,diceman,proverbs,reddragon,nurbek,tigerwoo,superdup,buzzsaw,kakaroto,golgo13,edwar,
123qaz123,butter1,sssss1,texas2,respekt,ou812ic,
123456qaz,
55555a,doctor1,mcgwire,maria123,aol999,cinders,aa1234,joness,ghbrjkmyj,makemone,sammyboy,
567765,
380zliki,theraven,testme,mylene,elvira26,indiglo,tiramisu,shannara,baby1,
123666,gfhreh,papercut,johnmish,orange8,bogey1,mustang7,bagpipes,dimarik,vsijyjr,
4637324,ravage,cogito,seven11,natashka,warzone,hr3ytm,
4free,bigdee,
000006,
243462536,bigboi,
123333,trouts,sandy123,szevasz,monica2,guderian,newlife1,ratchet,r12345,razorbac,
12345i,piazza31,oddjob,beauty1,fffff1,anklet,nodrog,pepit,olivi,puravida,robert12,transam1,portman,bubbadog,steelers1,wilson1,eightball,mexico1,superboy,
4rfv5tgb,mzepab,samurai1,fuckslut,colleen1,girdle,vfrcbvec,q1w2e3r4t,soldier1,
19844891,alyssa1,a12345a,fidelis,skelter,nolove,mickeymouse,frehley,password69,watermel,aliska,soccer15,
12345e,ladybug1,abulafia,adagio,tigerlil,takehana,hecate,bootneck,junfan,arigato,wonkette,bobby123,trustnoone,phantasm,
132465798,brianjo,w12345,t34vfrc1991,deadeye,
1robert,
1daddy,adida,check1,grimlock,muffi,airwalk,prizrak,onclick,longbeac,ernie1,eadgbe,moore1,geniu,shadow123,bugaga,jonathan1,cjrjkjdf,orlova,buldog,talon1,westport,aenima,
541233432442,barsuk,chicago2,kellys,hellbent,toughguy,iskander,skoal,whatisit,jake123,scooter2,fgjrfkbgcbc,ghandi,love13,adelphia,vjhrjdrf,adrenali,niunia,jemoeder,rainbo,all4u8,anime1,freedom7,seraph,
789321,tommys,antman,firetruc,neogeo,natas,bmwm3,froggy1,paul1,mamit,bayview,gateways,kusanagi,ihateu,frederi,rock1,centurion,grizli,biggin,fish1,stalker1,
3girls,ilovepor,klootzak,lollo,redsox04,kirill123,jake1,pampers,vasya,hammers1,teacup,towing,celtic1,ishtar,yingyang,
4904s677075,dahc1,patriot1,patrick9,redbirds,doremi,rebecc,yoohoo,makarova,epiphone,rfgbnfy,milesd,blister,chelseafc,katana1,blackrose,
1james,primrose,shock5,hard1,scooby12,c6h12o6,dustoff,boing,chisel,kamil,
1william,defiant1,tyvugq,mp8o6d,aaa340,nafets,sonnet,flyhigh,
242526,crewcom,love23,strike1,stairway,katusha,salamand,cupcake1,password0,
007james,sunnie,multisync,harley01,tequila1,fred12,driver8,q8zo8wzq,hunter01,mozzer,temporar,eatmeraw,mrbrownxx,kailey,sycamore,flogger,tincup,rahasia,ganymede,bandera,slinger,
1111122222,vander,woodys,
1cowboy,khaled,jamies,london12,babyboo,tzpvaw,diogenes,budice,mavrick,
135797531,cheeta,macros,squonk,blackber,topfuel,apache1,falcon16,darkjedi,cheeze,vfhvtkfl,sparco,change1,gfhfif,freestyl,kukuruza,loveme2,
12345f,kozlov,sherpa,marbella,
44445555,bocephus,
1winner,alvar,hollydog,gonefish,iwantin,barman,godislove,amanda18,rfpfynbg,eugen,abcdef1,redhawk,thelema,spoonman,baller1,harry123,
475869,tigerman,cdtnjxrf,marillio,scribble,elnino,carguy,hardhead,l2g7k3,troopers,selen,dragon76,antigua,ewtosi,ulysse,astana,paroli,cristo,carmex,marjan,bassfish,letitbe,kasparov,jay123,
19933991,blue13,eyecandy,scribe,mylord,ukflbjkec,ellie1,beaver1,destro,neuken,halfpint,ameli,lilly1,satanic,xngwoj,
12345trewq,asdf1,bulldogg,asakura,jesucrist,flipside,packers4,biggy,kadett,biteme69,bobdog,silverfo,saint1,bobbo,packman,knowledg,foolio,fussbal,
12345g,kozerog,westcoas,minidisc,nbvcxw,martini1,alastair,rasengan,superbee,memento,porker,lena123,florenc,kakadu,bmw123,getalife,bigsky,monkee,people1,schlampe,red321,memyself,
0147896325,
12345678900987654321,soccer14,realdeal,gfgjxrf,bella123,juggs,doritos,celtics1,peterbilt,ghbdtnbrb,gnusmas,xcountry,ghbdtn1,batman99,deusex,gtnhjdf,blablabl,juster,marimba,love2,rerjkrf,alhambra,micros,siemens1,assmaste,moonie,dashadasha,atybrc,eeeeee1,wildrose,blue55,davidl,xrp23q,skyblue,leo123,ggggg1,bestfriend,franny,
1234rmvb,fun123,rules1,sebastien,chester2,hakeem,winston2,fartripper,atlant,
07831505,iluvsex,q1a2z3,larrys,
009900,ghjkju,capitan,rider1,qazxsw21,belochka,andy123,hellya,chicca,maximal,juergen,password1234,howard1,quetzal,daniel123,qpwoeiruty,
123555,bharat,ferrari3,numbnuts,savant,ladydog,phipsi,lovepussy,etoile,power2,mitten,britneys,chilidog,
08522580,
2fchbg,kinky1,bluerose,loulo,ricardo1,doqvq3,kswbdu,
013cpfza,timoha,ghbdtnghbdtn,
3stooges,gearhead,browns1,g00ber,super7,greenbud,kitty2,pootie,toolshed,gamers,coffe,ibill123,freelove,anasazi,sister1,jigger,natash,stacy1,weronika,luzern,soccer7,hoopla,dmoney,valerie1,canes,razdvatri,washere,greenwoo,rfhjkbyf,anselm,pkxe62,maribe,daniel2,maxim1,faceoff,carbine,xtkjdtr,buddy12,stratos,jumpman,buttocks,aqswdefr,pepsis,sonechka,steeler1,lanman,nietzsch,ballz,biscuit1,wrxsti,goodfood,juventu,federic,mattman,vika123,strelec,jledfyxbr,sideshow,
4life,fredderf,bigwilly,
12347890,
12345671,sharik,bmw325i,fylhtqrf,dannon4,marky,mrhappy,drdoom,maddog1,pompier,cerbera,goobers,howler,jenny69,evely,letitrid,cthuttdyf,felip,shizzle,golf12,t123456,yamah,bluearmy,squishy,roxan,
10inches,dollface,babygirl1,blacksta,kaneda,lexingto,canadien,
222888,kukushka,sistema,
224422,shadow69,ppspankp,mellons,barbie1,free4all,alfa156,lostone,
2w3e4r5t,painkiller,robbie1,binger,
8dihc6,jaspe,rellik,quark,sogood,hoopstar,number2,snowy1,dad2ownu,cresta,qwe123asd,hjvfyjdf,gibsonsg,qbg26i,dockers,grunge,duckling,lfiekz,cuntsoup,kasia1,
1tigger,woaini,reksio,tmoney,firefighter,neuron,audia3,woogie,powerboo,powermac,fatcock,
12345666,upnfmc,lustful,porn1,gotlove,amylee,kbytqrf,
11924704,
25251325,sarasota,sexme,ozzie1,berliner,nigga1,guatemal,seagulls,iloveyou!,chicken2,qwerty21,
010203040506,
1pillow,libby1,vodoley,backlash,piglets,teiubesc,
019283,vonnegut,perico,thunde,buckey,gtxtymrf,manunite,iiiii1,lost4815162342,madonn,
270873_,britney1,kevlar,piano1,boondock,colt1911,salamat,doma77ns,anuradha,cnhjqrf,rottweil,newmoon,topgun1,mauser,fightclu,birthday21,reviewpa,herons,aassddff,lakers32,melissa2,vredina,jiujitsu,mgoblue,shakey,moss84,
12345zxcvb,funsex,benji1,garci,
113322,chipie,windex,nokia5310,pwxd5x,bluemax,cosita,chalupa,trotsky,new123,g3ujwg,newguy,canabis,gnaget,happydays,felixx,
1patrick,cumface,sparkie,kozlova,
123234,newports,broncos7,golf18,recycle,hahah,harrypot,cachondo,open4me,miria,guessit,pepsione,knocker,usmc1775,countach,playe,wiking,landrover,cracksevi,drumline,a7777777,smile123,manzana,panty,liberta,pimp69,dolfan,quality1,schnee,superson,elaine22,webhompass,mrbrownx,deepsea,
4wheel,mamasita,rockport,rollie,myhome,jordan12,kfvgjxrf,hockey12,seagrave,ford1,chelsea2,samsara,marissa1,lamesa,mobil1,piotrek,tommygun,yyyyy1,wesley1,billy123,homersim,julies,amanda12,shaka,maldini,suzenet,springst,iiiiii1,yakuza,
111111aa,westwind,helpdesk,annamari,bringit,hopefull,hhhhhhh1,saywhat,mazdarx8,bulova,jennife1,baikal,gfhjkmxbr,victoria1,gizmo123,alex99,defjam,
2girls,sandrock,positivo,shingo,syncmast,opensesa,silicone,fuckina,senna1,karlos,duffbeer,montagne,gehrig,thetick,pepino,hamburge,paramedic,scamp,smokeweed,fabregas,phantoms,venom121293,
2583458,badone,porno69,manwhore,vfvf123,notagain,vbktyf,rfnthbyrf,wildblue,kelly001,dragon66,camell,curtis1,frolova,
1212123,dothedew,tyler123,reddrago,planetx,promethe,gigolo,
1001001,thisone,eugeni,blackshe,cruzazul,incognito,puller,joonas,quick1,spirit1,gazza,zealot,gordito,hotrod1,mitch1,pollito,hellcat,mythos,duluth,
383pdjvl,easy123,hermos,binkie,its420,lovecraf,darien,romina,doraemon,
19877891,syclone,hadoken,transpor,ichiro,intell,gargamel,dragon2,wavpzt,
557744,rjw7x4,jennys,kickit,rjynfrn,likeit,
555111,corvus,nec3520,
133113,mookie1,bochum,samsung2,locoman0,
154ugeiu,vfvfbgfgf,
135792,[start],tenni,
20001,vestax,hufmqw,neveragain,wizkid,kjgfnf,nokia6303,tristen,saltanat,louie1,gandalf2,sinfonia,alpha3,tolstoy,ford150,f00bar,
1hello,alici,lol12,riker1,hellou,
333888,
1hunter,qw1234,vibrator,mets86,
43211234,gonzale,cookies1,sissy1,john11,bubber,blue01,cup2006,gtkmvtyb,nazareth,heybaby,suresh,teddie,mozilla,rodeo1,madhouse,gamera,
123123321,naresh,dominos,foxtrot1,taras,powerup,kipling,jasonb,fidget,galena,meatman,alpacino,bookmark,farting,humper,titsnass,gorgon,castaway,dianka,anutka,gecko1,fucklove,connery,wings1,erika1,peoria,moneymaker,ichabod,heaven1,paperboy,phaser,breakers,nurse1,westbrom,alex13,brendan1,
123asd123,almera,grubber,clarkie,thisisme,welkom01,
51051051051,crypto,freenet,pflybwf,black12,testme2,changeit,autobahn,attica,chaoss,denver1,tercel,gnasher23,master2,vasilii,sherman1,gomer,bigbuck,derek1,qwerzxcv,jumble,dragon23,art131313,numark,beasty,cxfcnmttcnm,updown,starion,glist,sxhq65,ranger99,monkey7,shifter,wolves1,
4r5t6y,phone1,favorite5,skytommy,abracada,
1martin,
102030405060,gatech,giulio,blacktop,cheer1,africa1,grizzly1,inkjet,shemales,durango1,booner,
11223344q,supergirl,vanyarespekt,dickless,srilanka,weaponx,
6string,nashvill,spicey,boxer1,fabien,
2sexy2ho,bowhunt,jerrylee,acrobat,tawnee,ulisse,nolimit8,l8g3bkde,pershing,gordo1,allover,gobrowns,
123432,
123444,
321456987,spoon1,hhhhh1,sailing1,gardenia,teache,sexmachine,tratata,pirate1,niceone,jimbos,
314159265,qsdfgh,bobbyy,ccccc1,carla1,vjkjltw,savana,biotech,frigid,
123456789g,dragon10,yesiam,alpha06,oakwood,tooter,winsto,radioman,vavilon,asnaeb,google123,nariman,kellyb,dthyjcnm,password6,parol1,golf72,skate1,lthtdj,
1234567890s,kennet,rossia,lindas,nataliya,perfecto,eminem1,kitana,aragorn1,rexona,arsenalf,planot,coope,testing123,timex,blackbox,bullhead,barbarian,dreamon,polaris1,cfvjktn,frdfhbev,gametime,slipknot666,nomad1,hfgcjlbz,happy69,fiddler,brazil1,joeboy,indianali,
113355,obelisk,telemark,ghostrid,preston1,anonim,wellcome,verizon1,sayangku,censor,timeport,dummies,adult1,nbnfybr,donger,thales,iamgay,sexy1234,deadlift,pidaras,doroga,
123qwe321,portuga,asdfgh12,happys,cadr14nu,pi3141,maksik,dribble,cortland,darken,stepanova,bommel,tropic,sochi2014,bluegras,shahid,merhaba,nacho,
2580456,orange44,kongen,
3cudjz,
78girl,my3kids,marcopol,deadmeat,gabbie,saruman,jeepman,freddie1,katie123,master99,ronal,ballbag,centauri,killer7,xqgann,pinecone,jdeere,geirby,aceshigh,
55832811,pepsimax,rayden,razor1,tallyho,ewelina,coldfire,florid,glotest,
999333,sevenup,bluefin,limaperu,apostol,bobbins,charmed1,michelin,sundin,centaur,alphaone,christof,trial1,lions1,
45645,just4you,starflee,vicki1,cougar1,green2,jellyfis,batman69,games1,hihje863,crazyzil,w0rm1,oklick,dogbite,yssup,sunstar,paprika,postov10,
124578963,x24ik3,kanada,buckster,iloveamy,bear123,smiler,nx74205,ohiostat,spacey,bigbill,doudo,nikolaeva,hcleeb,sex666,mindy1,buster11,deacons,boness,njkcnsq,candy2,cracker1,turkey1,qwertyu1,gogreen,tazzzz,edgewise,ranger01,qwerty6,blazer1,arian,letmeinnow,cigar1,jjjjjj1,grigio,frien,tenchu,f9lmwd,imissyou,filipp,heathers,coolie,salem1,woodduck,scubadiv,
123kat,raffaele,nikolaev,dapzu455,skooter,
9inches,lthgfhjkm,gr8one,ffffff1,zujlrf,amanda69,gldmeo,m5wkqf,rfrltkf,televisi,bonjou,paleale,stuff1,cumalot,fuckmenow,climb7,mark1234,t26gn4,oneeye,george2,utyyflbq,hunting1,tracy71,ready2go,hotguy,accessno,charger1,rudedog,kmfdm,goober1,sweetie1,wtpmjgda,dimensio,ollie1,pickles1,hellraiser,mustdie,
123zzz,
99887766,stepanov,verdun,tokenbad,anatol,bartende,cidkid86,onkelz,timmie,mooseman,patch1,
12345678c,marta1,dummy1,bethany1,myfamily,history1,
178500,lsutiger,phydeaux,moren,dbrnjhjdbx,gnbxrf,uniden,drummers,abpbrf,godboy,daisy123,hogan1,ratpack,irland,tangerine,greddy,flore,sqrunch,billyjoe,q55555,clemson1,
98745632,marios,ishot,angelin,access12,naruto12,lolly,scxakv,austin12,sallad,cool99,rockit,mongo1,mark22,ghbynth,ariadna,senha,docto,tyler2,mobius,hammarby,
192168,anna12,claire1,pxx3eftp,secreto,greeneye,stjabn,baguvix,satana666,rhbcnbyjxrf,dallastx,garfiel,michaelj,
1summer,montan,
1234ab,filbert,squids,fastback,lyudmila,chucho,eagleone,kimberle,ar3yuk3,jake01,nokids,soccer22,
1066ad,ballon,cheeto,review69,madeira,taylor2,sunny123,chubbs,lakeland,striker1,porche,qwertyu8,digiview,go1234,ferari,lovetits,aditya,minnow,green3,matman,cellphon,fortytwo,minni,pucara,
69a20a,roman123,fuente,
12e3e456,paul12,jacky,demian,littleman,jadakiss,vlad1997,franca,
282860,midian,nunzio,xaccess2,colibri,jessica0,revilo,
654456,harvey1,wolf1,macarena,corey1,husky1,arsen,milleniu,
852147,crowes,redcat,combat123654,hugger,psalms,quixtar,ilovemom,toyot,ballss,ilovekim,serdar,james23,avenger1,serendip,malamute,nalgas,teflon,shagger,letmein6,vyjujnjxbt,assa1234,student1,dixiedog,gznybwf13,fuckass,aq1sw2de3,robroy,hosehead,sosa21,
123345,ias100,teddy123,poppin,dgl70460,zanoza,farhan,quicksilver,
1701d,tajmahal,depechemode,paulchen,angler,tommy2,recoil,megamanx,scarecro,nicole2,
152535,rfvtgb,skunky,fatty1,saturno,wormwood,milwauke,udbwsk,sexlover,stefa,
7bgiqk,gfnhbr,omar10,bratan,lbyfvj,slyfox,forest1,jambo,william3,tempus,solitari,lucydog,murzilka,qweasdzxc1,vehpbkrf,
12312345,fixit,woobie,andre123,
123456789x,lifter,zinaida,soccer17,andone,foxbat,torsten,apple12,teleport,
123456i,leglover,bigcocks,vologda,dodger1,martyn,d6o8pm,naciona,eagleeye,maria6,rimshot,bentley1,octagon,barbos,masaki,gremio,siemen,s1107d,mujeres,bigtits1,cherr,saints1,mrpink,simran,ghzybr,ferrari2,secret12,tornado1,kocham,picolo,deneme,onelove1,rolan,fenster,
1fuckyou,cabbie,pegaso,nastyboy,password5,aidana,mine2306,mike13,wetone,tigger69,ytreza,bondage1,myass,golova,tolik,happyboy,poilkj,nimda2k,rammer,rubies,hardcore1,jetset,hoops1,jlaudio,misskitt,
1charlie,google12,theone1,phred,porsch,aalborg,luft4,charlie5,password7,gnosis,djgabbab,
1daniel,vinny,borris,cumulus,member1,trogdor,darthmau,andrew2,ktjybl,relisys,kriste,rasta220,chgobndg,weener,qwerty66,fritter,followme,freeman1,ballen,blood1,peache,mariso,trevor1,biotch,gtfullam,chamonix,friendste,alligato,misha1,
1soccer,
18821221,venkat,superd,molotov,bongos,mpower,acun3t1x,dfcmrf,h4x3d,rfhfufylf,tigran,booyaa,plastic1,monstr,rfnhby,lookatme,anabolic,tiesto,simon123,soulman,canes1,skyking,tomcat1,madona,bassline,dasha123,tarheel1,dutch1,xsw23edc,qwerty123456789,imperator,slaveboy,bateau,paypal,house123,pentax,wolf666,drgonzo,perros,digger1,juninho,hellomoto,bladerun,zzzzzzz1,keebler,take8422,fffffff1,ginuwine,israe,caesar1,crack1,precious1,garand,magda1,zigazaga,
321ewq,johnpaul,mama1234,iceman69,sanjeev,treeman,elric,rebell,
1thunder,cochon,deamon,zoltan,straycat,uhbyuj,luvfur,mugsy,primer,wonder1,teetime,candycan,pfchfytw,fromage,gitler,salvatio,piggy1,
23049307,zafira,chicky,sergeev,katze,bangers,andriy,jailbait,vaz2107,ghbhjlf,dbjktnnf,aqswde,zaratustra,asroma,
1pepper,alyss,kkkkk1,ryan1,radish,cozumel,waterpol,pentium1,rosebowl,farmall,steinway,dbrekz,baranov,jkmuf,another1,chinacat,qqqqqqq1,hadrian,devilmaycry4,ratbag,teddy2,love21,pullings,packrat,robyn1,boobo,qw12er34,tribe1,rosey,celestia,nikkie,fortune12,olga123,danthema,gameon,vfrfhjys,dilshod,henry14,jenova,redblue,chimaera,pennywise,sokrates,danimal,qqaazz,fuaqz4,killer2,
198200,tbone1,kolyan,wabbit,lewis1,maxtor,egoist,asdfas,spyglass,omegas,jack12,nikitka,esperanz,doozer,matematika,wwwww1,ssssss1,poiu0987,suchka,courtney1,gungho,alpha2,fktyjxrf,summer06,bud420,devildriver,heavyd,saracen,foucault,choclate,rjdfktyrj,goblue1,monaro,jmoney,dcpugh,efbcapa201,qqh92r,pepsicol,bbb747,ch5nmk,honeyb,beszoptad,tweeter,intheass,iseedeadpeople,
123dan,
89231243658s,farside1,findme,smiley1,
55556666,sartre,ytcnjh,kacper,costarica,
134679258,mikeys,nolimit9,vova123,withyou,
5rxypn,love143,freebie,rescue1,
203040,michael6,
12monkey,redgreen,steff,itstime,naveen,good12345,acidrain,
1dawg,miramar,playas,daddio,orion2,
852741,studmuff,kobe24,senha123,stephe,mehmet,allalone,scarface1,helloworld,smith123,blueyes,vitali,memphis1,mybitch,colin1,
159874,
1dick,podaria,d6wnro,brahms,f3gh65,dfcbkmtd,xxxman,corran,ugejvp,qcfmtz,marusia,totem,arachnid,matrix2,antonell,fgntrf,zemfira,christos,surfing1,naruto123,plato1,
56qhxs,madzia,vanille,
043aaa,asq321,mutton,ohiostate,golde,cdznjckfd,rhfcysq,green5,elephan,superdog,jacqueli,bollock,lolitas,nick12,
1orange,maplelea,july23,argento,waldorf,wolfer,pokemon12,zxcvbnmm,flicka,drexel,outlawz,harrie,atrain,juice2,falcons1,charlie6,
19391945,tower1,dragon21,hotdamn,dirtyboy,love4ever,
1ginger,thunder2,virgo1,alien1,bubblegu,
4wwvte,
123456789qqq,realtime,studio54,passss,vasilek,awsome,giorgia,bigbass,
2002tii,sunghile,mosdef,simbas,count0,uwrl7c,summer05,lhepmz,ranger21,sugarbea,principe,
5550123,tatanka,
9638v,cheerios,majere,nomercy,jamesbond007,bh90210,
7550055,jobber,karaganda,pongo,trickle,defamer,
6chid8,
1q2a3z,tuscan,nick123,.adgjm,loveyo,hobbes1,note1234,shootme,
171819,loveporn,
9788960,monty123,fabrice,macduff,monkey13,shadowfa,tweeker,hanna1,madball,telnet,loveu2,qwedcxzas,thatsit,vfhcbr,ptfe3xxp,gblfhfcs,ddddddd1,hakkinen,liverune,deathsta,misty123,suka123,recon1,inferno1,
232629,polecat,sanibel,grouch,hitech,hamradio,rkfdbfnehf,vandam,nadin,fastlane,shlong,iddqdidkfa,ledzeppelin,sexyfeet,
098123,stacey1,negras,roofing,lucifer1,ikarus,tgbyhn,melnik,barbaria,montego,twisted1,bigal1,jiggle,darkwolf,acerview,silvio,treetops,bishop1,iwanna,pornsite,happyme,gfccdjhl,
114411,veritech,batterse,casey123,yhntgb,mailto,milli,guster,q12345678,coronet,sleuth,fuckmeha,armadill,kroshka,geordie,lastochka,pynchon,killall,tommy123,sasha1996,godslove,hikaru,clticic,cornbrea,vfkmdbyf,passmaster,
123123123a,souris,nailer,diabolo,skipjack,martin12,hinata,mof6681,brookie,dogfight,johnso,karpov,
326598,rfvbrflpt,travesti,caballer,galaxy1,wotan,antoha,art123,xakep1234,ricflair,pervert1,p00kie,ambulanc,santosh,berserker,larry33,bitch123,a987654321,dogstar,angel22,cjcbcrf,redhouse,toodles,gold123,hotspot,kennedy1,glock21,chosen1,schneide,mainman,taffy1,
3ki42x,
4zqauf,ranger2,
4meonly,year2000,
121212a,kfylsi,netzwerk,diese,picasso1,rerecz,
225522,dastan,swimmer1,brooke1,blackbea,oneway,ruslana,dont4get,phidelt,chrisp,gjyxbr,xwing,kickme,shimmy,kimmy1,
4815162342lost,qwerty5,fcporto,jazzbo,mierd,
252627,basses,sr20det,
00133,florin,howdy1,kryten,goshen,koufax,cichlid,imhotep,andyman,wrest666,saveme,dutchy,anonymou,semprini,siempre,mocha1,forest11,wildroid,aspen1,sesam,kfgekz,cbhbec,a55555,sigmanu,slash1,giggs11,vatech,marias,candy123,jericho1,kingme,
123a123,drakula,cdjkjxm,mercur,oneman,hoseman,plumper,ilovehim,lancers,sergey1,takeshi,goodtogo,cranberr,ghjcnj123,harvick,qazxs,
1972chev,horsesho,freedom3,letmein7,saitek,anguss,vfvfgfgfz,
300000,elektro,toonporn,
999111999q,mamuka,q9umoz,edelweis,subwoofer,bayside,disturbe,volition,lucky3,
12345678z,
3mpz4r,march1,atlantida,strekoza,seagrams,
090909t,yy5rbfsc,jack1234,sammy12,sampras,mark12,eintrach,chaucer,lllll1,nochance,whitepower,
197000,lbvekz,passer,torana,
12345as,pallas,koolio,
12qw34,nokia8800,findout,
1thomas,mmmmm1,
654987,mihaela,chinaman,superduper,donnas,ringo1,jeroen,gfdkjdf,professo,cdtnrf,tranmere,tanstaaf,himera,ukflbfnjh,
667788,alex32,joschi,w123456,okidoki,flatline,papercli,super8,doris1,
2good4u,
4z34l0ts,pedigree,freeride,gsxr1100,wulfgar,benjie,ferdinan,king1,charlie7,djdxbr,fhntvbq,ripcurl,
2wsx1qaz,kingsx,desade,sn00py,loveboat,rottie,evgesha,
4money,dolittle,adgjmpt,buzzers,brett1,makita,
123123qweqwe,rusalka,sluts1,
123456e,jameson1,bigbaby,
1z2z3z,ckjybr,love4u,fucker69,erhfbyf,jeanluc,farhad,fishfood,merkin,giant1,golf69,rfnfcnhjaf,camera1,stromb,smoothy,
774411,nylon,juice1,rfn.irf,newyor,
123456789t,marmot,star11,jennyff,jester1,hisashi,kumquat,alex777,helicopt,merkur,dehpye,cummin,zsmj2v,kristjan,april12,englan,honeypot,badgirls,uzumaki,keines,p12345,guita,quake1,duncan1,juicer,milkbone,hurtme,
123456789b,qq123456789,schwein,p3wqaw,
54132442,qwertyytrewq,andreeva,ruffryde,punkie,abfkrf,kristinka,anna1987,ooooo1,
335533aa,umberto,amber123,
456123789,
456789123,beelch,manta,peeker,
1112131415,
3141592654,gipper,wrinkle5,katies,asd123456,james11,
78n3s5af,michael0,daboss,jimmyb,hotdog1,david69,
852123,blazed,sickan,eljefe,
2n6wvq,gobills,rfhfcm,squeaker,cabowabo,luebri,karups,test01,melkor,angel777,smallvil,modano,olorin,
4rkpkt,leslie1,koffie,shadows1,littleon,amiga1,topeka,summer20,asterix1,pitstop,aloysius,k12345,magazin,joker69,panocha,pass1word,
1233214,ironpony,
368ejhih,
88keys,pizza123,sonali,
57np39,quake2,
1234567890qw,
1020304,sword1,fynjif,abcde123,dfktyjr,rockys,grendel1,harley12,kokakola,super2,azathoth,lisa123,shelley1,girlss,ibragim,seven1,jeff24,
1bigdick,dragan,autobot,t4nvp7,omega123,
900000,hecnfv,
889988,nitro1,doggie1,fatjoe,
811pahc,tommyt,savage1,pallino,smitty1,jg3h4hfn,jamielee,
1qazwsx,zx123456,machine1,asdfgh123,guinnes,
789520,sharkman,jochen,legend1,sonic2,extreme1,dima12,photoman,
123459876,nokian95,
775533,vaz2109,april10,becks,repmvf,pooker,qwer12345,themaster,nabeel,monkey10,gogetit,hockey99,bbbbbbb1,zinedine,dolphin2,anelka,
1superma,winter01,muggsy,horny2,
669966,kuleshov,jesusis,calavera,bullet1,
87t5hdf,sleepers,winkie,vespa,lightsab,carine,magister,
1spider,shitbird,salavat,becca1,wc18c2,shirak,galactus,zaskar,barkley1,reshma,dogbreat,fullsail,asasa,boeder,
12345ta,zxcvbnm12,lepton,elfquest,tony123,vkaxcs,savatage,sevilia1,badkitty,munkey,pebbles1,diciembr,qapmoc,gabriel2,
1qa2ws3e,cbcmrb,welldone,nfyufh,kaizen,jack11,manisha,grommit,g12345,maverik,chessman,heythere,mixail,jjjjjjj1,sylvia1,fairmont,harve,skully,global1,youwish,pikachu1,badcat,zombie1,
49527843,ultra1,redrider,offsprin,lovebird,
153426,stymie,aq1sw2,sorrento,
0000001,r3ady41t,webster1,
95175,adam123,coonass,
159487,slut1,gerasim,monkey99,slutwife,
159963,
1pass1page,hobiecat,bigtymer,all4you,maggie2,olamide,comcast1,infinit,bailee,vasileva,.ktxrf,asdfghjkl1,
12345678912,setter,fuckyou7,nnagqx,lifesuck,draken,austi,feb2000,cable1,
1234qwerasdf,hax0red,zxcv12,vlad7788,nosaj,lenovo,underpar,huskies1,lovegirl,feynman,suerte,babaloo,alskdjfhg,oldsmobi,bomber1,redrover,pupuce,methodman,phenom,cutegirl,countyli,gretsch,godisgood,bysunsu,hardhat,mironova,
123qwe456rty,rusty123,salut,
187211,
555666777,
11111z,mahesh,rjntyjxtr,br00klyn,dunce1,timebomb,bovine,makelove,littlee,shaven,rizwan,patrick7,
42042042,bobbijo,rustem,buttmunc,dongle,tiger69,bluecat,blackhol,shirin,peaces,cherub,cubase,longwood,lotus7,gwju3g,bruin,pzaiu8,green11,uyxnyd,seventee,dragon5,tinkerbel,bluess,bomba,fedorova,joshua2,bodyshop,peluche,gbpacker,shelly1,d1i2m3a4,ghtpbltyn,talons,sergeevna,misato,chrisc,sexmeup,brend,olddog,davros,hazelnut,bridget1,hzze929b,readme,brethart,wild1,ghbdtnbr1,nortel,kinger,royal1,bucky1,allah1,drakkar,emyeuanh,gallaghe,hardtime,jocker,tanman,flavio,abcdef123,leviatha,squid1,skeet,sexse,
123456x,mom4u4mm,lilred,djljktq,ocean11,cadaver,baxter1,
808state,fighton,primavera,
1andrew,moogle,limabean,goddess1,vitalya,blue56,
258025,bullride,cicci,
1234567d,connor1,gsxr11,oliveoil,leonard1,legsex,gavrik,rjnjgtc,mexicano,
2bad4u,goodfellas,ornw6d,mancheste,hawkmoon,zlzfrh,schorsch,g9zns4,bashful,rossi46,stephie,rfhfntkm,sellout,
123fuck,stewar1,solnze,
00007,thor5200,compaq12,didit,bigdeal,hjlbyf,zebulon,wpf8eu,kamran,emanuele,
197500,carvin,ozlq6qwm,
3syqo15hil,pennys,epvjb6,asdfghjkl123,
198000,nfbcbz,jazzer,asfnhg66,zoloft,albundy,aeiou,getlaid,planet1,gjkbyjxrf,alex2000,brianb,moveon,maggie11,eieio,vcradq,shaggy1,novartis,cocoloco,dunamis,
554uzpad,sundrop,
1qwertyu,alfie,feliks,briand,
123www,red456,addams,fhntv1998,goodhead,theway,javaman,angel01,stratoca,lonsdale,
15987532,bigpimpin,skater1,issue43,muffie,yasmina,slowride,crm114,sanity729,himmel,carolcox,bustanut,parabola,masterlo,computador,crackhea,dynastar,rockbott,doggysty,wantsome,bigten,gaelle,juicy1,alaska1,etower,sixnine,suntan,froggies,nokia7610,hunter11,njnets,alicante,buttons1,diosesamo,elizabeth1,chiron,trustnoo,amatuers,tinytim,mechta,sammy2,cthulu,trs8f7,poonam,m6cjy69u35,cookie12,blue25,jordans,santa1,kalinka,mikey123,lebedeva,
12345689,kissss,queenbee,vjybnjh,ghostdog,cuckold,bearshare,rjcntyrj,alinochka,ghjcnjrdfibyj,aggie1,teens1,
3qvqod,dauren,tonino,hpk2qc,iqzzt580,bears85,nascar88,theboy,njqcw4,masyanya,pn5jvw,intranet,lollone,shadow99,
00096462,techie,cvtifhbrb,redeemed,gocanes,
62717315,topman,intj3a,cobrajet,antivirus,whyme,berserke,ikilz083,airedale,brandon2,hopkig,johanna1,danil8098,gojira,arthu,vision1,pendragon,milen,chrissie,vampiro,mudder,chris22,blowme69,omega7,surfers,goterps,italy1,baseba11,diego1,gnatsum,birdies,semenov,joker123,zenit2011,wojtek,cab4ma99,watchmen,damia,forgotte,fdm7ed,strummer,freelanc,cingular,orange77,mcdonalds,vjhjpjdf,kariya,tombston,starlet,hawaii1,dantheman,megabyte,nbvjirf,anjing,ybrjkftdbx,hotmom,kazbek,pacific1,sashimi,asd12,coorslig,yvtte545,kitte,elysium,klimenko,cobblers,kamehameha,only4me,redriver,triforce,sidorov,vittoria,fredi,dank420,m1234567,fallout2,
989244342a,crazy123,crapola,servus,volvos,
1scooter,griffin1,autopass,ownzyou,deviant,george01,
2kgwai,boeing74,simhrq,hermosa,hardcor,griffy,rolex1,hackme,cuddles1,master3,bujhtr,aaron123,popolo,blader,
1sexyred,gerry1,cronos,ffvdj474,yeehaw,bob1234,carlos2,mike77,buckwheat,ramesh,acls2h,monster2,montess,
11qq22ww,lazer,zx123456789,chimpy,masterch,sargon,lochness,archana,
1234qwert,hbxfhl,sarahb,altoid,zxcvbn12,dakot,caterham,dolomite,chazz,r29hqq,longone,pericles,grand1,sherbert,eagle3,pudge,irontree,synapse,boome,nogood,summer2,pooki,gangsta1,mahalkit,elenka,lbhtrnjh,dukedog,
19922991,hopkins1,evgenia,domino1,x123456,manny1,tabbycat,drake1,jerico,drahcir,kelly2,
708090a,facesit,
11c645df,mac123,boodog,kalani,hiphop1,critters,hellothere,tbirds,valerka,
551scasi,love777,paloalto,mrbrown,duke3d,killa1,arcturus,spider12,dizzy1,smudger,goddog,
75395,spammy,
1357997531,
78678,datalife,zxcvbn123,
1122112211,london22,
23dp4x,rxmtkp,biggirls,ownsu,lzbs2twz,sharps,geryfe,
237081a,golakers,nemesi,sasha1995,pretty1,mittens1,d1lakiss,speedrac,gfhjkmm,sabbat,hellrais,
159753258,qwertyuiop123,playgirl,crippler,salma,strat1,celest,hello5,omega5,cheese12,ndeyl5,edward12,soccer3,cheerio,davido,vfrcbr,gjhjctyjr,boscoe,inessa,shithole,ibill,qwepoi,
201jedlz,asdlkj,davidk,spawn2,ariel1,michael4,jamie123,romantik,micro1,pittsbur,canibus,katja,muhtar,thomas123,studboy,masahiro,rebrov,patrick8,hotboys,sarge1,
1hammer,nnnnn1,eistee,datalore,jackdani,sasha2010,mwq6qlzo,cmfnpu,klausi,cnhjbntkm,andrzej,ilovejen,lindaa,hunter123,vvvvv1,novembe,hamster1,x35v8l,lacey1,
1silver,iluvporn,valter,herson,alexsandr,cojones,backhoe,womens,
777angel,beatit,klingon1,ta8g4w,luisito,benedikt,maxwel,inspecto,zaq12ws,wladimir,bobbyd,peterj,asdfg12,hellspawn,bitch69,nick1234,golfer23,sony123,jello1,killie,chubby1,kodaira52,yanochka,buckfast,morris1,roaddogg,snakeeye,sex1234,mike22,mmouse,fucker11,dantist,brittan,vfrfhjdf,doc123,plokijuh,emerald1,batman01,serafim,elementa,soccer9,footlong,cthuttdbx,hapkido,eagle123,getsmart,getiton,batman2,masons,mastiff,
098890,cfvfhf,james7,azalea,sherif,saun24865709,
123red,cnhtrjpf,martina1,pupper,michael5,alan12,shakir,devin1,ha8fyp,palom,mamulya,trippy,deerhunter,happyone,monkey77,
3mta3,
123456789f,crownvic,teodor,natusik,
0137485,vovchik,strutter,triumph1,cvetok,moremone,sonnen,screwbal,akira1,sexnow,pernille,independ,poopies,samapi,kbcbxrf,master22,swetlana,urchin,viper2,magica,slurpee,postit,gilgames,kissarmy,clubpenguin,limpbizk,timber1,celin,lilkim,fuckhard,lonely1,mom123,goodwood,extasy,sdsadee23,foxglove,malibog,clark1,casey2,shell1,odense,balefire,dcunited,cubbie,pierr,solei,
161718,bowling1,areyukesc,batboy,r123456,
1pionee,marmelad,maynard1,cn42qj,cfvehfq,heathrow,qazxcvbn,connecti,secret123,newfie,xzsawq21,tubitzen,nikusha,enigma1,yfcnz123,
1austin,michaelc,splunge,wanger,phantom2,jason2,pain4me,primetime21,babes1,liberte,sugarray,undergro,zonker,labatts,djhjyf,watch1,eagle5,madison2,cntgfirf,sasha2,masterca,fiction7,slick50,bruins1,sagitari,
12481632,peniss,insuranc,
2b8riedt,
12346789,mrclean,ssptx452,tissot,q1w2e3r4t5y6u7,avatar1,comet1,spacer,vbrjkf,pass11,wanker1,
14vbqk9p,noshit,money4me,sayana,fish1234,seaways,pipper,romeo123,karens,wardog,ab123456,gorilla1,andrey123,lifesucks,jamesr,
4wcqjn,bearman,glock22,matt11,dflbvrf,barbi,maine1,dima1997,sunnyboy,
6bjvpe,bangkok1,
666666q,rafiki,letmein0,
0raziel0,dalla,london99,wildthin,patrycja,skydog,qcactw,tmjxn151,yqlgr667,jimmyd,stripclub,deadwood,
863abgsg,horses1,qn632o,scatman,sonia1,subrosa,woland,kolya,charlie4,moleman,j12345,summer11,angel11,blasen,sandal,mynewpas,retlaw,cambria,mustang4,nohack04,kimber45,fatdog,maiden1,bigload,necron,dupont24,ghost123,turbo2,.ktymrf,radagast,balzac,vsevolod,pankaj,argentum,
2bigtits,mamabear,bumblebee,mercury7,maddie1,chomper,jq24nc,snooky,pussylic,
1lovers,taltos,warchild,diablo66,jojo12,sumerki,aventura,gagger,annelies,drumset,cumshots,azimut,
123580,clambake,bmw540,birthday54,psswrd,paganini,wildwest,filibert,teaseme,
1test,scampi,thunder5,antosha,purple12,supersex,hhhhhh1,brujah,
111222333a,
13579a,bvgthfnjh,
4506802a,killians,choco,qqqwwweee,raygun,
1grand,koetsu13,sharp1,mimi92139,fastfood,idontcare,bluered,chochoz,
4z3al0ts,target1,sheffiel,labrat,stalingrad,
147123,cubfan,corvett1,holden1,snapper1,
4071505,amadeo,pollo,desperados,lovestory,marcopolo,mumbles,familyguy,kimchee,marcio,support1,tekila,shygirl1,trekkie,submissi,ilaria,salam,loveu,wildstar,master69,sales1,netware,homer2,arseniy,gerrity1,raspberr,atreyu,stick1,aldric,tennis12,matahari,alohomora,dicanio,michae1,michaeld,
666111,luvbug,boyscout,esmerald,mjordan,admiral1,steamboa,
616913,ybhdfyf,
557711,
555999,sunray,apokalipsis,theroc,bmw330,buzzy,chicos,lenusik,shadowma,eagles05,
444222,peartree,qqq123,sandmann,spring1,
430799,phatass,andi03,binky1,arsch,bamba,kenny123,fabolous,loser123,poop12,maman,phobos,tecate,myxworld4,metros,cocorico,nokia6120,johnny69,hater,spanked,
313233,markos,love2011,mozart1,viktoriy,reccos,
331234,hornyone,vitesse,
1um
83z,
55555q,proline,v12345,skaven,alizee,bimini,fenerbahce,
543216,zaqqaz,poi123,stabilo,brownie1,
1qwerty1,dinesh,baggins1,
1234567t,davidkin,friend1,lietuva,octopuss,spooks,
12345qq,myshit,buttface,paradoxx,pop123,golfin,sweet69,rfghbp,sambuca,kayak1,bogus1,girlz,dallas12,millers,
123456zx,operatio,pravda,eternal1,chase123,moroni,proust,blueduck,harris1,redbarch,
996699,
1010101,mouche,millenni,
1123456,score1,
1234565,
1234576,eae21157,dave12,pussyy,gfif1991,
1598741,hoppy,darrian,snoogins,fartface,ichbins,vfkbyrf,rusrap,
2741001,fyfrjylf,aprils,favre,thisis,bannana,serval,wiggum,satsuma,matt123,ivan123,gulmira,
123zxc123,oscar2,acces,annie2,dragon0,emiliano,allthat,pajaro,amandine,rawiswar,sinead,tassie,karma1,piggys,nokias,orions,origami,type40,mondo,ferrets,monker,biteme2,gauntlet,arkham,ascona,ingram01,klem1,quicksil,bingo123,blue66,plazma,onfire,shortie,spjfet,
123963,thered,fire777,lobito,vball,
1chicken,moosehea,elefante,babe23,jesus12,parallax,elfstone,number5,shrooms,freya,hacker1,roxette,snoops,number7,fellini,dtlmvf,chigger,mission1,mitsubis,kannan,whitedog,james01,ghjgecr,rfnfgekmnf,everythi,getnaked,prettybo,sylvan,chiller,carrera4,cowbo,biochem,azbuka,qwertyuiop1,midnight1,informat,audio1,alfred1,
0range,sucker1,scott2,russland,
1eagle,torben,djkrjlfd,rocky6,maddy1,bonobo,portos,chrissi,xjznq5,dexte,vdlxuc,teardrop,pktmxr,iamtheone,danijela,eyphed,suzuki1,etvww4,redtail,ranger11,mowerman,asshole2,coolkid,adriana1,bootcamp,longcut,evets,npyxr5,bighurt,bassman1,stryder,giblet,nastja,blackadd,topflite,wizar,cumnow,technolo,bassboat,bullitt,kugm7b,maksimus,wankers,mine12,sunfish,pimpin1,shearer9,user1,vjzgjxnf,tycobb,
80070633pc,stanly,vitaly,shirley1,cinzia,carolyn1,angeliqu,teamo,qdarcv,aa123321,ragdoll,bonit,ladyluck,wiggly,vitara,jetbalance,
12345600,ozzman,dima12345,mybuddy,shilo,satan66,erebus,warrio,
090808qwe,stupi,bigdan,paul1234,chiapet,brooks1,philly1,dually,gowest,farmer1,
1qa2ws3ed4rf,alberto1,beachboy,barne,aa12345,aliyah,radman,benson1,dfkthbq,highball,bonou2,i81u812,workit,darter,redhook,csfbr5yy,buttlove,episode1,ewyuza,porthos,lalal,abcd12,papero,toosexy,keeper1,silver7,jujitsu,corset,pilot123,simonsay,pinggolf,katerinka,kender,drunk1,fylhjvtlf,rashmi,nighthawk,maggy,juggernaut,larryb,cabibble,fyabcf,
247365,gangstar,jaybee,verycool,
123456789qw,forbidde,prufrock,
12345zxc,malaika,blackbur,docker,filipe,koshechka,gemma1,djamaal,dfcbkmtdf,gangst,
9988aa,ducks1,pthrfkj,puertorico,muppets,griffins,whippet,sauber,timofey,larinso,
123456789zxc,quicken,qsefth,liteon,headcase,bigdadd,zxc321,maniak,jamesc,bassmast,bigdogs,
1girls,
123xxx,trajan,lerochka,noggin,mtndew,
04975756,domin,wer123,fumanchu,lambada,thankgod,june22,kayaking,patchy,summer10,timepass,poiu1234,kondor,kakka,lament,zidane10,
686xqxfg,l8v53x,caveman1,nfvthkfy,holymoly,pepita,alex1996,mifune,fighter1,asslicker,jack22,abc123abc,zaxxon,midnigh,winni,psalm23,punky,monkey22,password13,mymusic,justyna,annushka,lucky5,briann,
495rus19,withlove,almaz,supergir,miata,bingbong,bradpitt,kamasutr,yfgjktjy,vanman,pegleg,amsterdam1,
123a321,letmein9,shivan,korona,bmw520,annette1,scotsman,gandal,welcome12,sc00by,qpwoei,fred69,m1sf1t,hamburg1,
1access,dfkmrbhbz,excalibe,boobies1,fuckhole,karamel,starfuck,star99,breakfas,georgiy,ywvxpz,smasher,fatcat1,allanon,
12345n,coondog,whacko,avalon1,scythe,saab93,timon,khorne,atlast,nemisis,brady12,blenheim,
52678677,mick7278,
9skw5g,fleetwoo,ruger1,kissass,pussy7,scruff,
12345l,bigfun,vpmfsz,yxkck878,evgeny,
55667788,lickher,foothill,alesis,poppies,
77777778,californi,mannie,bartjek,qhxbij,thehulk,xirt2k,angelo4ek,rfkmrekznjh,tinhorse,
1david,sparky12,night1,luojianhua,bobble,nederland,rosemari,travi,minou,ciscokid,beehive,
565hlgqo,alpine1,samsung123,trainman,xpress,logistic,vw198m2n,hanter,zaqwsx123,qwasz,mariachi,paska,kmg365,kaulitz,sasha12,north1,polarbear,mighty1,makeksa11,
123456781,one4all,gladston,notoriou,polniypizdec110211,gosia,grandad,xholes,timofei,invalidp,speaker1,zaharov,maggiema,loislane,gonoles,br5499,discgolf,kaskad,snooper,newman1,belial,demigod,vicky1,pridurok,alex1990,tardis1,cruzer,hornie,sacramen,babycat,burunduk,mark69,oakland1,me1234,gmctruck,extacy,sexdog,putang,poppen,billyd,
1qaz2w,loveable,gimlet,azwebitalia,ragtop,
198500,qweas,mirela,rock123,
11bravo,sprewell,tigrenok,jaredleto,vfhbif,blue2,rimjob,catwalk,sigsauer,loqse,doromich,jack01,lasombra,jonny5,newpassword,profesor,garcia1,
123as123,croucher,demeter,
4_life,rfhfvtkm,superman2,rogues,assword1,russia1,jeff1,mydream,z123456789,rascal1,darre,kimberl,pickle1,ztmfcq,ponchik,lovesporn,hikari,gsgba368,pornoman,chbjun,choppy,diggity,nightwolf,viktori,camar,vfhecmrf,alisa1,minstrel,wishmaster,mulder1,aleks,gogirl,gracelan,
8womys,highwind,solstice,dbrnjhjdyf,nightman,pimmel,beertje,ms6nud,wwfwcw,fx3tuo,poopface,asshat,dirtyd,jiminy,luv2fuck,ptybnxtvgbjy,dragnet,pornogra,
10inch,scarlet1,guido1,raintree,v123456,
1aaaaaaa,maxim1935,hotwater,gadzooks,playaz,harri,brando1,defcon1,ivanna,
123654a,arsenal2,candela,nt5d27,jaime1,duke1,burton1,allstar1,dragos,newpoint,albacore,
1236987z,verygoodbot,
1wildcat,fishy1,ptktysq,chris11,puschel,itdxtyrj,
7kbe9d,serpico,jazzie,
1zzzzz,kindbuds,wenef45313,
1compute,tatung,sardor,gfyfcjybr,test99,toucan,meteora,lysander,asscrack,jowgnx,hevnm4,suckthis,masha123,karinka,marit,oqglh565,dragon00,vvvbbb,cheburashka,vfrfrf,downlow,unforgiven,p3e85tr,kim123,sillyboy,gold1,golfvr6,quicksan,irochka,froglegs,shortsto,caleb1,tishka,bigtitts,smurfy,bosto,dropzone,nocode,jazzbass,digdug,green7,saltlake,therat,dmitriev,lunita,deaddog,summer0,
1212qq,bobbyg,mty3rh,isaac1,gusher,helloman,sugarbear,corvair,extrem,teatime,tujazopi,titanik,efyreg,jo9k2jw2,counchac,tivoli,utjvtnhbz,bebit,jacob6,clayton1,incubus1,flash123,squirter,dima2010,cock1,rawks,komatsu,forty2,
98741236,cajun1,madelein,mudhoney,magomed,q111111,qaswed,consense,
12345b,bakayaro,silencer,zoinks,bigdic,werwolf,pinkpuss,
96321478,alfie1,ali123,sarit,minette,musics,chato,iaapptfcor,cobaka,strumpf,datnigga,sonic123,yfnecbr,vjzctvmz,pasta1,tribbles,crasher,htlbcrf,
1tiger,shock123,bearshar,syphon,a654321,cubbies1,jlhanes,eyespy,fucktheworld,carrie1,bmw325is,suzuk,mander,dorina,mithril,hondo1,vfhnbyb,sachem,newton1,
12345x,
7777755102q,
230857z,xxxsex,scubapro,hayastan,spankit,delasoul,searock6,fallout3,nilrem,
24681357,pashka,voluntee,pharoh,willo,india1,badboy69,roflmao,gunslinger,lovergir,mama12,melange,
640xwfkv,chaton,darkknig,bigman1,aabbccdd,harleyd,birdhouse,giggsy,hiawatha,tiberium,joker7,hello1234,sloopy,tm371855,greendog,solar1,bignose,djohn11,espanol,oswego,iridium,kavitha,pavell,mirjam,cyjdsvujljv,alpha5,deluge,hamme,luntik,turismo,stasya,kjkbnf,caeser,schnecke,tweety1,tralfaz,lambrett,prodigy1,trstno1,pimpshit,werty1,karman,bigboob,pastel,blackmen,matthew8,moomin,q1w2e,gilly,primaver,jimmyg,house2,elviss,
15975321,
1jessica,monaliza,salt55,vfylfhbyrf,harley11,tickleme,murder1,nurgle,kickass1,theresa1,fordtruck,pargolf,managua,inkognito,sherry1,gotit,friedric,metro2033,slk230,freeport,cigarett,
492529,vfhctkm,thebeach,twocats,bakugan,yzerman1,charlieb,motoko,skiman,
1234567w,pussy3,love77,asenna,buffie,
260zntpc,kinkos,access20,mallard1,fuckyou69,monami,rrrrr1,bigdog69,mikola,
1boomer,godzila,ginger2,dima2000,skorpion39,dima1234,hawkdog79,warrior2,ltleirf,supra1,jerusale,monkey01,
333z333,
666888,kelsey1,w8gkz2x1,fdfnfh,msnxbi,qwe123rty,mach1,monkey3,
123456789qq,c123456,nezabudka,barclays,nisse,dasha1,
12345678987654321,dima1993,oldspice,frank2,rabbitt,prettyboy,ov3ajy,iamthema,kawasak,banjo1,gtivr6,collants,gondor,hibees,cowboys2,codfish,buster2,purzel,rubyred,kayaker,bikerboy,qguvyt,masher,sseexx,kenshiro,moonglow,semenova,rosari,eduard1,deltaforce,grouper,bongo1,tempgod,
1taylor,goldsink,qazxsw1,
1jesus,m69fg2w,maximili,marysia,husker1,kokanee,sideout,googl,south1,plumber1,trillian,
00001,
1357900,farkle,
1xxxxx,pascha,emanuela,bagheera,hound1,mylov,newjersey,swampfox,sakic19,torey,geforce,wu4etd,conrail,pigman,martin2,ber02,nascar2,angel69,barty,kitsune,cornet,yes90125,goomba,daking,anthea,sivart,weather1,ndaswf,scoubidou,masterchief,rectum,
3364068,oranges1,copter,
1samanth,eddies,mimoza,ahfywbz,celtic88,
86mets,applemac,amanda11,taliesin,
1angel,imhere,london11,bandit12,killer666,beer1,
06225930,psylocke,james69,schumach,
24pnz6kc,endymion,wookie1,poiu123,birdland,smoochie,lastone,rclaki,olive1,pirat,thunder7,chris69,rocko,
151617,djg4bb4b,lapper,ajcuivd289,colole57,shadow7,dallas21,ajtdmw,executiv,dickies,omegaman,jason12,newhaven,aaaaaas,pmdmscts,s456123789,beatri,applesauce,levelone,strapon,benladen,creaven,ttttt1,saab95,f123456,pitbul,
54321a,sex12345,robert3,atilla,mevefalkcakk,
1johnny,veedub,lilleke,nitsuj,
5t6y7u8i,teddys,bluefox,nascar20,vwjetta,buffy123,playstation3,loverr,qweasd12,lover2,telekom,benjamin1,alemania,neutrino,rockz,valjean,testicle,trinity3,realty,firestarter,
794613852,ardvark,guadalup,philmont,arnold1,holas,zw6syj,birthday299,dover1,sexxy1,gojets,
741236985,cance,blue77,xzibit,qwerty88,komarova,qweszxc,footer,rainger,silverst,ghjcnb,catmando,tatooine,
31217221027711,amalgam,
69dude,qwerty321,roscoe1,
74185,cubby,alfa147,perry1,darock,katmandu,darknight,knicks1,freestuff,
45454,kidman,
4tlved,axlrose,cutie1,quantum1,joseph10,ichigo,pentium3,rfhectkm,rowdy1,woodsink,justforfun,sveta123,pornografia,mrbean,bigpig,tujheirf,delta9,portsmou,hotbod,kartal,
10111213,fkbyf001,pavel1,pistons1,necromancer,verga,c7lrwu,doober,thegame1,hatesyou,sexisfun,
1melissa,tuczno18,bowhunte,gobama,scorch,campeon,bruce2,fudge1,herpderp,bacon1,redsky,blackeye,
19966991,
19992000,ripken8,masturba,
34524815,primax,paulina1,vp6y38,
427cobra,
4dwvjj,dracon,fkg7h4f3v6,longview,arakis,panama1,honda2,lkjhgfdsaz,razors,steels,fqkw5m,dionysus,mariajos,soroka,enriqu,nissa,barolo,king1234,hshfd4n279,holland1,flyer1,tbones,
343104ky,modems,tk421,ybrbnrf,pikapp,sureshot,wooddoor,florida2,mrbungle,vecmrf,catsdogs,axolotl,nowayout,francoi,chris21,toenail,hartland,asdjkl,nikkii,onlyyou,buckskin,fnord,flutie,holen1,rincewind,lefty1,ducky1,
199000,fvthbrf,redskin1,ryno23,lostlove,
19mtpgam19,abercrom,benhur,jordan11,roflcopter,ranma,phillesh,avondale,igromania,p4ssword,jenny123,tttttt1,spycams,cardigan,
2112yyz,sleepy1,paris123,mopars,lakers34,hustler1,james99,matrix3,popimp,
12pack,eggbert,medvedev,testit,performa,logitec,marija,sexybeast,supermanboy,iwantit,rjktcj,jeffer,svarog,halo123,whdbtp,nokia3230,heyjoe,marilyn1,speeder,ibxnsm,prostock,bennyboy,charmin,codydog,parol999,ford9402,jimmer,crayola,
159357258,alex77,joey1,cayuga,phish420,poligon,specops,tarasova,caramelo,draconis,dimon,cyzkhw,june29,getbent,
1guitar,jimjam,dictiona,shammy,flotsam,
0okm9ijn,crapper,technic,fwsadn,rhfdxtyrj,zaq11qaz,anfield1,
159753q,curious1,hip-hop,
1iiiii,gfhjkm2,cocteau,liveevil,friskie,crackhead,b1afra,elektrik,lancer1,b0ll0cks,jasond,z1234567,tempest1,alakazam,asdfasd,duffy1,oneday,dinkle,qazedctgb,kasimir,happy7,salama,hondaciv,nadezda,andretti,cannondale,sparticu,znbvjd,blueice,money01,finster,eldar,moosie,pappa,delta123,neruda,bmw330ci,jeanpaul,malibu1,alevtina,sobeit,travolta,fullmetal,enamorad,mausi,boston12,greggy,smurf1,ratrace,ichiban,ilovepus,davidg,wolf69,villa1,cocopuff,football12,starfury,zxc12345,forfree,fairfiel,dreams1,tayson,mike2,dogday,hej123,oldtimer,sanpedro,clicker,mollycat,roadstar,golfe,lvbnhbq1,topdevice,a1b2c,sevastopol,calli,milosc,fire911,pink123,team3x,nolimit5,snickers1,annies,
09877890,jewel1,steve69,justin11,autechre,killerbe,browncow,slava1,christer,fantomen,redcloud,elenberg,beautiful1,passw0rd1,nazira,advantag,cockring,chaka,rjpzdrf,
99941,az123456,biohazar,energie,bubble1,bmw323,tellme,printer1,glavine,
1starwar,coolbeans,april17,carly1,quagmire,admin2,djkujuhfl,pontoon,texmex,carlos12,thermo,vaz2106,nougat,bob666,
1hockey,
1john,cricke,qwerty10,twinz,totalwar,underwoo,tijger,lildevil,
123q321,germania,freddd,
1scott,beefy,
5t4r3e2w1q,fishbait,nobby,hogger,dnstuff,jimmyc,redknapp,flame1,tinfloor,balla,nfnfhby,yukon1,vixens,batata,danny123,
1zxcvbnm,gaetan,homewood,greats,tester1,green99,
1fucker,sc0tland,starss,glori,arnhem,goatman,
1234asd,supertra,bill123,elguapo,sexylegs,jackryan,usmc69,innow,roaddog,alukard,winter11,crawler,gogiants,rvd420,alessandr,homegrow,gobbler,esteba,valeriy,happy12,
1joshua,hawking,sicnarf,waynes,iamhappy,bayadera,august2,sashas,gotti,dragonfire,pencil1,halogen,borisov,bassingw,
15975346,zachar,sweetp,soccer99,sky123,flipyou,spots3,xakepy,cyclops1,dragon77,rattolo58,motorhea,piligrim,helloween,dmb2010,supermen,shad0w,eatcum,sandokan,pinga,ufkfrnbrf,roksana,amista,pusser,sony1234,azerty1,
1qasw2,ghbdt,q1w2e3r4t5y6u7i8,ktutylf,brehznev,zaebali,shitass,creosote,gjrtvjy,
14938685,naughtyboy,pedro123,
21crack,maurice1,joesakic,nicolas1,matthew9,lbyfhf,elocin,hfcgbplzq,pepper123,tiktak,mycroft,ryan11,firefly1,arriva,cyecvevhbr,loreal,peedee,jessica8,lisa01,anamari,pionex,ipanema,airbag,frfltvbz,
123456789aa,epwr49,casper12,sweethear,sanandreas,wuschel,cocodog,france1,
119911,redroses,erevan,xtvgbjy,bigfella,geneve,volvo850,evermore,amy123,moxie,celebs,geeman,underwor,haslo1,joy123,hallow,chelsea0,
12435687,abarth,
12332145,tazman1,roshan,yummie,genius1,chrisd,ilovelife,seventy7,qaz1wsx2,rocket88,gaurav,bobbyboy,tauchen,roberts1,locksmit,masterof,www111,d9ungl,volvos40,asdasd1,golfers,jillian1,
7xm5rq,arwpls4u,gbhcf2,elloco,football2,muerte,bob101,sabbath1,strider1,killer66,notyou,lawnboy,de7mdf,johnnyb,voodoo2,sashaa,homedepo,bravos,nihao123,braindea,weedhead,rajeev,artem1,camille1,rockss,bobbyb,aniston,frnhbcf,oakridge,biscayne,cxfcnm,dressage,jesus3,kellyann,king69,juillet,holliste,h00ters,ripoff,
123645,
1999ar,eric12,
123777,tommi,dick12,bilder,chris99,rulezz,getpaid,chicubs,ender1,byajhvfnbrf,milkshak,sk8board,freakshow,antonella,monolit,shelb,hannah01,masters1,pitbull1,
1matthew,luvpussy,agbdlcid,panther2,alphas,euskadi,
8318131,ronnie1,
7558795,sweetgirl,cookie59,sequoia,
5552555,ktyxbr,
4500455,money7,severus,shinobu,dbityrf,phisig,rogue2,fractal,redfred,sebastian1,nelli,b00mer,cyberman,zqjphsyf6ctifgu,oldsmobile,redeemer,pimpi,lovehurts,
1slayer,black13,rtynfdh,airmax,g00gle,
1panther,artemon,nopasswo,fuck1234,luke1,trinit,
666000,ziadma,oscardog,davex,hazel1,isgood,demond,james5,construc,
555551,january2,m1911a1,flameboy,merda,nathan12,nicklaus,dukester,hello99,scorpio7,leviathan,dfcbktr,pourquoi,vfrcbv123,shlomo,rfcgth,rocky3,ignatz,ajhneyf,roger123,squeek,
4815162342a,biskit,mossimo,soccer21,gridlock,lunker,popstar,ghhh47hj764,chutney,nitehawk,vortec,gamma1,codeman,dragula,kappasig,rainbow2,milehigh,blueballs,ou8124me,rulesyou,collingw,mystere,aster,astrovan,firetruck,fische,crawfish,hornydog,morebeer,tigerpaw,radost,
144000,
1chance,
1234567890qwe,gracie1,myopia,oxnard,seminoles,evgeni,edvard,partytim,domani,tuffy1,jaimatadi,blackmag,kzueirf,peternor,mathew1,maggie12,henrys,k1234567,fasted,pozitiv,cfdtkbq,jessica7,goleafs,bandito,girl78,sharingan,skyhigh,bigrob,zorros,poopers,oldschoo,pentium2,gripper,norcal,kimba,artiller,moneymak,
00197400,
272829,shadow1212,thebull,handbags,all4u2c,bigman2,civics,godisgoo,section8,bandaid,suzanne1,zorba,
159123,racecars,i62gbq,rambo123,ironroad,johnson2,knobby,twinboys,sausage1,kelly69,enter2,rhjirf,yessss,james12,anguilla,boutit,iggypop,vovochka,
06060,budwiser,romuald,meditate,good1,sandrin,herkules,lakers8,honeybea,
11111111a,miche,rangers9,lobster1,seiko,belova,midcon,mackdadd,bigdaddy1,daddie,sepultur,freddy12,damon1,stormy1,hockey2,bailey12,hedimaptfcor,dcowboys,sadiedog,thuggin,horny123,josie1,nikki2,beaver69,peewee1,mateus,viktorija,barrys,cubswin1,matt1234,timoxa,rileydog,sicilia,luckycat,candybar,julian1,abc456,pussylip,phase1,acadia,catty,
246800,evertonf,bojangle,qzwxec,nikolaj,fabrizi,kagome,noncapa0,marle,popol,hahaha1,cossie,carla10,diggers,spankey,sangeeta,cucciolo,breezer,starwar1,cornholio,rastafari,spring99,yyyyyyy1,webstar,
72d5tn,sasha1234,inhouse,gobuffs,civic1,redstone,
234523,minnie1,rivaldo,angel5,sti2000,xenocide,
11qq11,
1phoenix,herman1,holly123,tallguy,sharks1,madri,superbad,ronin,jalal123,hardbody,
1234567r,assman1,vivahate,buddylee,
38972091,bonds25,
40028922,qrhmis,wp2005,ceejay,pepper01,
51842543,redrum1,renton,varadero,tvxtjk7r,vetteman,djhvbrc,curly1,fruitcak,jessicas,maduro,popmart,acuari,dirkpitt,buick1,bergerac,golfcart,pdtpljxrf,hooch1,dudelove,d9ebk7,
123452000,afdjhbn,greener,
123455432,parachut,mookie12,
123456780,jeepcj5,potatoe,sanya,qwerty2010,waqw3p,gotika,freaky1,chihuahu,buccanee,ecstacy,crazyboy,slickric,blue88,fktdnbyf,
2004rj,delta4,
333222111,calient,ptbdhw,
1bailey,blitz1,sheila1,master23,hoagie,pyf8ah,orbita,daveyboy,prono1,delta2,heman,
1horny,tyrik123,ostrov,md2020,herve,rockfish,el546218,rfhbyjxrf,chessmaster,redmoon,lenny1,
215487,tomat,guppy,amekpass,amoeba,my3girls,nottingh,kavita,natalia1,puccini,fabiana,
8letters,romeos,netgear,casper2,taters,gowings,iforgot1,pokesmot,pollit,lawrun,petey1,rosebuds,
007jr,gthtcnhjqrf,k9dls02a,neener,azertyu,duke11,manyak,tiger01,petros,supermar,mangas,twisty,spotter,takagi,dlanod,qcmfd454,tusymo,zz123456,chach,navyblue,gilbert1,
2kash6zq,avemaria,
1hxboqg2s,viviane,lhbjkjubz2957704,nowwowtg,
1a2b3c4,m0rn3,kqigb7,superpuper,juehtw,gethigh,theclown,makeme,pradeep,sergik,deion21,nurik,devo2706,nbvibt,roman222,kalima,nevaeh,martin7,anathema,florian1,tamwsn3sja,dinmamma,
133159,
123654q,slicks,pnp0c08,yojimbo,skipp,kiran,pussyfuck,teengirl,apples12,myballs,angeli,
1234a,
125678,opelastra,blind1,armagedd,fish123,pitufo,chelseaf,thedevil,nugget1,cunt69,beetle1,carter15,apolon,collant,password00,fishboy,djkrjdf,deftone,celti,three11,cyrus1,lefthand,skoal1,ferndale,aries1,fred01,roberta1,chucks,cornbread,lloyd1,icecrea,cisco123,newjerse,vfhrbpf,passio,volcom1,rikimaru,yeah11,djembe,facile,a1l2e3x4,batman7,nurbol,lorenzo1,monica69,blowjob1,
998899,spank1,
233391,n123456,
1bear,bellsout,
999998,celtic67,sabre1,putas,y9enkj,alfabeta,heatwave,honey123,hard4u,insane1,xthysq,magnum1,lightsaber,
123qweqwe,fisher1,pixie1,precios,benfic,thegirls,bootsman,
4321rewq,nabokov,hightime,djghjc,
1chelsea,junglist,august16,t3fkvkmj,
1232123,lsdlsd12,chuckie1,pescado,granit,toogood,cathouse,natedawg,bmw530,
123kid,hajime,
198400,engine1,wessonnn,kingdom1,novembre,
1rocks,kingfisher,qwerty89,jordan22,zasranec,megat,sucess,installutil,fetish01,yanshi1982,
1313666,
1314520,clemence,wargod,time1,newzealand,snaker,
13324124,cfrehf,hepcat,mazahaka,bigjay,denisov,eastwest,
1yellow,mistydog,cheetos,
1596357,ginger11,mavrik,bubby1,bhbyf,pyramide,giusepp,luthien,honda250,andrewjackie,kentavr,lampoon,zaq123wsx,sonicx,davidh,
1ccccc,gorodok,windsong,programm,blunt420,vlad1995,zxcvfdsa,tarasov,mrskin,sachas,mercedes1,koteczek,rawdog,honeybear,stuart1,kaktys,richard7,
55555n,azalia,hockey10,scouter,francy,
1xxxxxx,julie456,tequilla,penis123,schmoe,tigerwoods,
1ferrari,popov,snowdrop,matthieu,smolensk,cornflak,jordan01,love2000,
23wesdxc,kswiss,anna2000,geniusnet,baby2000,
33ds5x,waverly,onlyone4,networkingpe,raven123,blesse,gocards,wow123,pjflkork,juicey,poorboy,freeee,billybo,shaheen,zxcvbnm.,berlit,truth1,gepard,ludovic,gunther1,bobby2,bob12345,sunmoon,septembr,bigmac1,bcnjhbz,seaking,all4u,
12qw34er56ty,bassie,nokia5228,
7355608,sylwia,charvel,billgate,davion,chablis,catsmeow,kjiflrf,amylynn,rfvbkkf,mizredhe,handjob,jasper12,erbol,solara,bagpipe,biffer,notime,erlan,
8543852,sugaree,oshkosh,fedora,bangbus,
5lyedn,longball,teresa1,bootyman,aleksand,qazwsxedc12,nujbhc,tifosi,zpxvwy,lights1,slowpoke,tiger12,kstate,password10,alex69,collins1,
9632147,doglover,baseball2,security1,grunts,orange2,godloves,
213qwe879,julieb,
1qazxsw23edcvfr4,noidea,
8uiazp,betsy1,junior2,parol123,
123456zz,piehonkii,kanker,bunky,hingis,reese1,qaz123456,sidewinder,tonedup,footsie,blackpoo,jalapeno,mummy1,always1,josh1,rockyboy,plucky,chicag,nadroj,blarney,blood123,wheaties,packer1,ravens1,mrjones,gfhjkm007,anna2010,awatar,guitar12,hashish,scale1,tomwaits,amrita,fantasma,rfpfym,pass2,tigris,bigair,slicker,sylvi,shilpa,cindylou,archie1,bitches1,poppys,ontime,horney1,camaroz28,alladin,bujhm,cq2kph,alina1,wvj5np,
1211123a,tetons,scorelan,concordi,morgan2,awacs,shanty,tomcat14,andrew123,bear69,vitae,fred99,chingy,octane,belgario,fatdaddy,rhodan,password23,sexxes,boomtown,joshua01,war3demo,my2kids,buck1,hot4you,monamour,
12345aa,yumiko,parool,carlton1,neverland,rose12,right1,sociald,grouse,brandon0,cat222,alex00,civicex,bintang,malkav,arschloc,dodgeviper,qwerty666,goduke,dante123,boss1,ontheroc,corpsman,love14,uiegu451,hardtail,irondoor,ghjrehfnehf,
36460341,konijn,h2slca,kondom25,
123456ss,cfytxrf,btnjey,nando,freemail,comander,natas666,siouxsie,hummer1,biomed,dimsum,yankees0,diablo666,lesbian1,pot420,jasonm,glock23,jennyb,itsmine,lena2010,whattheh,beandip,abaddon,kishore,signup,apogee,biteme12,suzieq,vgfun4,iseeyou,rifleman,qwerta,
4pussy,hawkman,guest1,june17,dicksuck,bootay,cash12,bassale,ktybyuhfl,leetch,nescafe,
7ovtgimc,clapton1,auror,boonie,tracker1,john69,bellas,cabinboy,yonkers,silky1,ladyffesta,drache,kamil1,davidp,bad123,snoopy12,sanche,werthvfy,achille,nefertiti,gerald1,slage33,warszawa,macsan26,mason123,kotopes,welcome8,nascar99,kiril,
77778888,hairy1,monito,comicsans,
81726354,killabee,arclight,yuo67,feelme,
86753099,nnssnn,monday12,
88351132,
88889999,websters,subito,asdf12345,vaz2108,zvbxrpl,
159753456852,rezeda,multimed,noaccess,henrique,tascam,captiva,zadrot,hateyou,sophie12,
123123456,snoop1,charlie8,birmingh,hardline,libert,azsxdcf,
89172735872,rjpthju,bondar,philips1,olegnaruto,myword,yakman,stardog,banana12,
1234567890w,farout,annick,duke01,rfj422,billard,glock19,shaolin1,master10,cinderel,deltaone,manning1,biggreen,sidney1,patty1,goforit1,
766rglqy,sevendus,aristotl,armagedo,blumen,gfhfyjz,kazakov,lekbyxxx,accord1,idiota,soccer16,texas123,victoire,ololo,chris01,bobbbb,
299792458,eeeeeee1,confiden,
07070,clarks,techno1,kayley,stang1,wwwwww1,uuuuu1,neverdie,jasonr,cavscout,
481516234,mylove1,shaitan,
1qazxcvb,barbaros,
123456782000,
123wer,thissucks,
7seven,
227722,faerie,hayduke,dbacks,snorkel,zmxncbv,tiger99,unknown1,melmac,polo1234,sssssss1,
1fire,
369147,bandung,bluejean,nivram,stanle,ctcnhf,soccer20,blingbli,dirtball,alex2112,
183461,skylin,boobman,geronto,brittany1,yyz2112,gizmo69,ktrcec,dakota12,chiken,sexy11,vg08k714,bernadet,
1bulldog,beachs,hollyb,maryjoy,margo1,danielle1,chakra,alexand,hullcity,matrix12,sarenna,pablos,antler,supercar,chomsky,german1,airjordan,
545ettvy,camaron,flight1,netvideo,tootall,valheru,
481516,
1234as,skimmer,redcross,inuyash,uthvfy,
1012nw,edoardo,bjhgfi,golf11,
9379992a,lagarto,socball,boopie,krazy,.adgjmptw,gaydar,kovalev,geddylee,firstone,turbodog,loveee,
135711,badbo,trapdoor,opopop11,danny2,max2000,
526452,kerry1,leapfrog,daisy2,
134kzbip,
1andrea,playa1,peekab00,heskey,pirrello,gsewfmck,dimon4ik,puppie,chelios,
554433,hypnodanny,fantik,yhwnqc,ghbdtngjrf,anchorag,buffett1,fanta,sappho,
024680,vialli,chiva,lucylu,hashem,exbntkm,thema,
23jordan,jake11,wildside,smartie,emerica,
2wj2k9oj,ventrue,timoth,lamers,baerchen,suspende,boobis,denman85,
1adam12,otello,king12,dzakuni,qsawbbs,isgay,porno123,jam123,daytona1,tazzie,bunny123,amaterasu,jeffre,crocus,mastercard,bitchedup,chicago7,aynrand,intel1,tamila,alianza,mulch,merlin12,rose123,alcapone,mircea,loveher,joseph12,chelsea6,dorothy1,wolfgar,unlimite,arturik,qwerty3,paddy1,piramid,linda123,cooool,millie1,warlock1,forgotit,tort02,ilikeyou,avensis,loveislife,dumbass1,clint1,
2110se,drlove,olesia,kalinina,sergey123,
123423,alicia1,markova,tri5a3,media1,willia1,xxxxxxx1,beercan,smk7366,jesusislord,motherfuck,smacker,birthday5,jbaby,harley2,hyper1,a9387670a,honey2,corvet,gjmptw,rjhjkmbien,apollon,madhuri,
3a5irt,cessna17,saluki,digweed,tamia1,yja3vo,cfvlehfr,
1111111q,martyna,stimpy1,anjana,yankeemp,jupiler,idkfa,
1blue,fromv,afric,
3xbobobo,liverp00l,nikon1,amadeus1,acer123,napoleo,david7,vbhjckfdf,mojo69,percy1,pirates1,grunt1,alenushka,finbar,zsxdcf,mandy123,
1fred,timewarp,
747bbb,druids,julia123,
123321qq,spacebar,dreads,fcbarcelona,angela12,anima,christopher1,stargazer,
123123s,hockey11,brewski,marlbor,blinker,motorhead,damngood,werthrf,letmein3,moremoney,killer99,anneke,eatit,pilatus,andrew01,fiona1,maitai,blucher,zxgdqn,e5pftu,nagual,panic1,andron,openwide,alphabeta,alison1,chelsea8,fende,mmm666,
1shot2,a19l1980,
123456@,
1black,m1chael,vagner,realgood,maxxx,vekmnbr,stifler,
2509mmh,tarkan,sherzod,
1234567b,gunners1,artem2010,shooby,sammie1,p123456,piggie,abcde12345,nokia6230,moldir,piter,
1qaz3edc,frequenc,acuransx,
1star,nikeair,alex21,dapimp,ranjan,ilovegirls,anastasiy,berbatov,manso,
21436587,leafs1,
106666,angelochek,ingodwetrust,
123456aaa,deano,korsar,pipetka,thunder9,minka,himura,installdevic,
1qqqqq,digitalprodu,suckmeoff,plonker,headers,vlasov,ktr1996,windsor1,mishanya,garfield1,korvin,littlebit,azaz09,vandamme,scripto,s4114d,passward,britt1,r1chard,ferrari5,running1,
7xswzaq,falcon2,pepper76,trademan,ea53g5,graham1,volvos80,reanimator,micasa,
1234554321q,kairat,escorpion,sanek94,karolina1,kolovrat,karen2,
1qaz@wsx,racing1,splooge,sarah2,deadman1,creed1,nooner,minicoop,oceane,room112,charme,
12345ab,summer00,wetcunt,drewman,nastyman,redfire,appels,merlin69,dolfin,bornfree,diskette,ohwell,
12345678qwe,jasont,madcap,cobra2,dolemit1,whatthehell,juanit,voldemar,rocke,bianc,elendil,vtufgjkbc,hotwheels,spanis,sukram,pokerface,k1ller,freakout,dontae,realmadri,drumss,gorams,
258789,snakey,jasonn,whitewolf,befree,johnny99,pooka,theghost,kennys,vfvektxrf,toby1,jumpman23,deadlock,barbwire,stellina,alexa1,dalamar,mustanggt,northwes,tesoro,chameleo,sigtau,satoshi,george11,hotcum,cornell1,golfer12,geek01d,trololo,kellym,megapolis,pepsi2,hea666,monkfish,blue52,sarajane,bowler1,skeets,ddgirls,hfccbz,bailey01,isabella1,dreday,moose123,baobab,crushme,
000009,veryhot,roadie,meanone,mike18,henriett,dohcvtec,moulin,gulnur,adastra,angel9,western1,natura,sweetpe,dtnfkm,marsbar,daisys,frogger1,virus1,redwood1,streetball,fridolin,d78unhxq,midas,michelob,cantik,sk2000,kikker,macanudo,rambone,fizzle,
20000,peanuts1,cowpie,stone32,astaroth,dakota01,redso,mustard1,sexylove,giantess,teaparty,bobbin,beerbong,monet1,charles3,anniedog,anna1988,cameleon,longbeach,tamere,qpful542,mesquite,waldemar,
12345zx,iamhere,lowboy,canard,granp,daisymay,love33,moosejaw,nivek,ninjaman,shrike01,aaa777,
88002000600,vodolei,bambush,falcor,harley69,alphaomega,severine,grappler,bosox,twogirls,gatorman,vettes,buttmunch,chyna,excelsio,crayfish,birillo,megumi,lsia9dnb9y,littlebo,stevek,hiroyuki,firehous,master5,briley2,gangste,chrisk,camaleon,bulle,troyboy,froinlaven,mybutt,sandhya,rapala,jagged,crazycat,lucky12,jetman,wavmanuk,
1heather,beegee,negril,mario123,funtime1,conehead,abigai,mhorgan,patagoni,travel1,backspace,frenchfr,mudcat,dashenka,baseball3,rustys,
741852kk,dickme,baller23,griffey1,suckmycock,fuhrfzgc,jenny2,spuds,berlin1,justfun,icewind,bumerang,pavlusha,minecraft123,shasta1,ranger12,
123400,twisters,buthead,miked,finance1,dignity7,hello9,lvjdp383,jgthfnjh,dalmatio,paparoach,miller31,
2bornot2b,fathe,monterre,theblues,satans,schaap,jasmine2,sibelius,manon,heslo,jcnhjd,shane123,natasha2,pierrot,bluecar,iloveass,harriso,red12,london20,job314,beholder,reddawg,fuckyou!,pussylick,bologna1,austintx,ole4ka,blotto,onering,jearly,balbes,lightbul,bighorn,crossfir,lee123,prapor,
1ashley,gfhjkm22,wwe123,
09090,sexsite,marina123,jagua,witch1,schmoo,parkview,dragon3,chilango,ultimo,abramova,nautique,
2bornot2,duende,
1arthur,nightwing,surfboar,quant4307,
15s9pu03,karina1,shitball,walleye1,wildman1,whytesha,
1morgan,my2girls,polic,baranova,berezuckiy,kkkkkk1,forzima,fornow,qwerty02,gokart,suckit69,davidlee,whatnow,edgard,tits1,bayshore,
36987412,ghbphfr,daddyy,explore1,zoidberg,
5qnzjx,morgane,danilov,blacksex,mickey12,balsam,
83y6pv,sarahc,slaye,all4u2,slayer69,nadia1,rlzwp503,
4cranker,kaylie,numberon,teremok,wolf12,deeppurple,goodbeer,aaa555,
66669999,whatif,harmony1,ue8fpw,
3tmnej,
254xtpss,dusty197,wcksdypk,zerkalo,dfnheirf,motorol,digita,whoareyou,darksoul,manics,rounders,killer11,d2000lb,cegthgfhjkm,catdog1,beograd,pepsico,julius1,
123654987,softbal,killer23,weasel1,lifeson,q123456q,
444555666,bunches,andy1,darby1,service01,bear11,jordan123,amega,duncan21,yensid,lerxst,rassvet,bronco2,fortis,pornlove,paiste,
198900,asdflkjh,
1236547890,futur,eugene1,winnipeg261,fk8bhydb,seanjohn,brimston,matthe1,bitchedu,crisco,
302731,roxydog,woodlawn,volgograd,ace1210,boy4u2ownnyc,laura123,pronger,parker12,z123456z,andrew13,longlife,sarang,drogba,gobruins,soccer4,holida,espace,almira,murmansk,green22,safina,wm00022,
1chevy,schlumpf,doroth,ulises,golf99,hellyes,detlef,mydog,erkina,bastardo,mashenka,sucram,wehttam,generic1,
195000,spaceboy,lopas123,scammer,skynyrd,daddy2,titani,ficker,cr250r,kbnthfnehf,takedown,sticky1,davidruiz,desant,nremtp,painter1,bogies,agamemno,kansas1,smallfry,archi,
2b4dnvsx,
1player,saddie,peapod,
6458zn7a,qvw6n2,gfxqx686,twice2,sh4d0w3d,mayfly,
375125,phitau,yqmbevgk,
89211375759,kumar1,pfhfpf,toyboy,way2go,
7pvn4t,pass69,chipster,spoony,buddycat,diamond3,rincewin,hobie,david01,billbo,hxp4life,matild,pokemon2,dimochka,clown1,
148888,jenmt3,cuxldv,cqnwhy,cde34rfv,simone1,verynice,toobig,pasha123,mike00,maria2,lolpop,firewire,dragon9,martesana,a1234567890,birthday3,providen,kiska,pitbulls,
556655,misawa,damned69,martin11,goldorak,gunship,glory1,winxclub,sixgun,splodge,agent1,splitter,dome69,ifghjb,eliza1,snaiper,wutang36,phoenix7,
666425,arshavin,paulaner,namron,m69fg1w,qwert1234,terrys,zesyrmvu,joeman,scoots,dwml9f,
625vrobg,sally123,gostoso,symow8,pelota,c43qpul5rz,majinbuu,lithium1,bigstuff,horndog1,kipelov,kringle,
1beavis,loshara,octobe,jmzacf,
12342000,qw12qw,runescape1,chargers1,krokus,piknik,jessy,
778811,gjvbljh,
474jdvff,pleaser,misskitty,breaker1,
7f4df451,dayan,twinky,yakumo,chippers,matia,tanith,len2ski1,manni,nichol1,f00b4r,nokia3110,standart,
123456789i,shami,steffie,larrywn,chucker,john99,chamois,jjjkkk,penmouse,ktnj2010,gooners,hemmelig,rodney1,merlin01,bearcat1,
1yyyyy,
159753z,
1fffff,
1ddddd,thomas11,gjkbyrf,ivanka,f1f2f3,petrovna,phunky,conair,brian2,creative1,klipsch,vbitymrf,freek,breitlin,cecili,westwing,gohabsgo,tippmann,
1steve,quattro6,fatbob,sp00ky,rastas,
1123581,redsea,rfnmrf,jerky1,
1aaaaaa,spk666,simba123,qwert54321,
123abcd,beavis69,fyfyfc,starr1,
1236547,peanutbutter,sintra,
12345abcde,
1357246,abcde1,climbon,
755dfx,mermaids,monte1,serkan,geilesau,
777win,jasonc,parkside,imagine1,rockhead,producti,playhard,principa,spammer,gagher,escada,tsv1860,dbyjuhfl,cruiser1,kennyg,montgome,
2481632,pompano,cum123,angel6,sooty,bear01,april6,bodyhamm,pugsly,getrich,mikes,pelusa,fosgate,jasonp,rostislav,kimberly1,
128mo,dallas11,gooner1,manuel1,cocacola1,imesh,
5782790,password8,daboys,
1jones,intheend,e3w2q1,whisper1,madone,pjcgujrat,
1p2o3i,jamesp,felicida,nemrac,phikap,firecat,jrcfyjxrf,matt12,bigfan,doedel,
005500,jasonx,
1234567k,badfish,goosey,utjuhfabz,wilco,artem123,igor123,spike123,jor23dan,dga9la,v2jmsz,morgan12,avery1,dogstyle,natasa,
221195ws,twopac,oktober7,karthik,poop1,mightymo,davidr,zermatt,jehova,aezakmi1,dimwit,monkey5,serega123,qwerty111,blabl,casey22,boy123,
1clutch,asdfjkl1,hariom,bruce10,jeep95,
1smith,sm9934,karishma,bazzzz,aristo,
669e53e1,nesterov,kill666,fihdfv,
1abc2,anna1,silver11,mojoman,telefono,goeagles,sd3lpgdr,rfhfynby,melinda1,llcoolj,idteul,bigchief,rocky13,timberwo,ballers,gatekeep,kashif,hardass,anastasija,max777,vfuyjkbz,riesling,agent99,kappas,dalglish,tincan,orange3,turtoise,abkbvjy,mike24,hugedick,alabala,geolog,aziza,devilboy,habanero,waheguru,funboy,freedom5,natwest,seashore,impaler,qwaszx1,pastas,bmw535,tecktonik,mika00,jobsearc,pinche,puntang,aw96b6,
1corvett,skorpio,foundati,zzr1100,gembird,vfnhjcrby,soccer18,vaz2110,peterp,archer1,cross1,samedi,dima1992,hunter99,lipper,hotbody,zhjckfdf,ducati1,trailer1,
04325956,cheryl1,benetton,kononenko,sloneczko,rfgtkmrf,nashua,balalaika,ampere,eliston,dorsai,digge,flyrod,oxymoron,minolta,ironmike,majortom,karimov,fortun,putaria,an83546921an13,blade123,franchis,mxaigtg5,dynxyu,devlt4,brasi,terces,wqmfuh,nqdgxz,dale88,minchia,seeyou,housepen,
1apple,
1buddy,mariusz,bighouse,tango2,flimflam,nicola1,qwertyasd,tomek1,shumaher,kartoshka,bassss,canaries,redman1,
123456789as,preciosa,allblacks,navidad,tommaso,beaudog,forrest1,green23,ryjgjxrf,go4it,ironman2,badnews,butterba,
1grizzly,isaeva,rembrand,toront,
1richard,bigjon,yfltymrf,
1kitty,
4ng62t,littlejo,wolfdog,ctvtyjd,spain1,megryan,tatertot,raven69,
4809594q,tapout,stuntman,a131313,lagers,hotstuf,lfdbl11,stanley2,advokat,boloto,
7894561,dooker,adxel187,cleodog,
4play,
0p9o8i,masterb,bimota,charlee,toystory,
6820055,
6666667,crevette,
6031769,corsa,bingoo,dima1990,tennis11,samuri,avocado,melissa6,unicor,habari,metart,needsex,cockman,hernan,
3891576,
3334444,amigo1,gobuffs2,mike21,allianz,
2835493,
179355,midgard,joey123,oneluv,ellis1,towncar,shonuff,scouse,tool69,thomas19,chorizo,jblaze,lisa1,dima1999,sophia1,anna1989,vfvekbxrf,krasavica,redlegs,jason25,tbontb,katrine,eumesmo,vfhufhbnrf,
1654321,asdfghj1,motdepas,booga,doogle,
1453145,byron1,
158272,kardinal,tanne,fallen1,abcd12345,ufyljy,n12345,kucing,burberry,bodger,
1234578,februar,
1234512,nekkid,prober,harrison1,idlewild,rfnz90,foiegras,pussy21,bigstud,denzel,tiffany2,bigwill,
1234567890zzz,hello69,compute1,viper9,hellspaw,trythis,gococks,dogballs,delfi,lupine,millenia,newdelhi,charlest,basspro,
1mike,joeblack,
975310,
1rosebud,batman11,misterio,fucknut,charlie0,august11,juancho,ilonka,jigei743ks,adam1234,
889900,goonie,alicat,ggggggg1,
1zzzzzzz,sexywife,northstar,chris23,
888111,containe,trojan1,jason5,graikos,
1ggggg,
1eeeee,tigers01,indigo1,hotmale,jacob123,mishima,richard3,cjxb2014,coco123,meagain,thaman,wallst,edgewood,bundas,
1power,matilda1,maradon,hookedup,jemima,r3vi3wpass,
2004-
10-,mudman,taz123,xswzaq,emerson1,anna21,warlord1,toering,pelle,tgwdvu,masterb8,wallstre,moppel,priora,ghjcnjrdfif,yoland,
12332100,
1j9e7f6f,jazzzz,yesman,brianm,
42qwerty42,
12345698,darkmanx,nirmal,john31,bb123456,neuspeed,billgates,moguls,fj1200,hbhlair,shaun1,ghbdfn,
305pwzlr,nbu3cd,susanb,pimpdad,mangust6403,joedog,dawidek,gigante,
708090,
703751,
700007,ikalcr,tbivbn,
697769,marvi,iyaayas,karen123,jimmyboy,dozer1,e6z8jh,bigtime1,getdown,kevin12,brookly,zjduc3,nolan1,cobber,yr8wdxcq,liebe,m1garand,blah123,
616879,action1,
600000,sumitomo,albcaz,asian1,
557799,dave69,
556699,sasa123,streaker,michel1,karate1,buddy7,daulet,koks888,roadtrip,wapiti,oldguy,illini1,
1234qq,mrspock,kwiatek,buterfly,august31,jibxhq,jackin,taxicab,tristram,talisker,
446655,
444666,chrisa,freespace,vfhbfyyf,chevell,
444333,notyours,
442244,christian1,seemore,sniper12,marlin1,joker666,multik,devilish,crf450,cdfoli,eastern1,asshead,duhast,voyager2,cyberia,
1wizard,cybernet,iloveme1,veterok,karandash,
392781,looksee,diddy,diabolic,foofight,missey,herbert1,bmw318i,premier1,zsfmpv,eric1234,dun6sm,fuck11,
345543,spudman,lurker,bitem,lizzy1,ironsink,minami,
339311,s7fhs127,sterne,
332233,plankton,galax,azuywe,changepa,august25,mouse123,sikici,killer69,xswqaz,quovadis,gnomik,
033028pw,
777777a,barrakuda,spawn666,goodgod,slurp,morbius,yelnats,cujo31,norman1,fastone,earwig,aureli,wordlife,bnfkbz,yasmi,austin123,timberla,missy2,legalize,netcom,liljon,takeit,georgin,
987654321z,warbird,vitalina,all4u3,mmmmmm1,bichon,ellobo,wahoos,fcazmj,aksarben,lodoss,satnam,vasili,
197800,maarten,sam138989,
0u812,ankita,walte,prince12,anvils,bestia,hoschi,
198300,univer,jack10,ktyecbr,gr00vy,hokie,wolfman1,fuckwit,geyser,emmanue,ybrjkftd,qwerty33,karat,dblock,avocat,bobbym,womersle,
1please,nostra,dayana,billyray,alternat,iloveu1,qwerty69,rammstein1,mystikal,winne,drawde,executor,craxxxs,ghjcnjnf,
999888777,welshman,access123,
963214785,
951753852,babe69,fvcnthlfv,****me,
666999666,testing2,
199200,nintendo64,oscarr,guido8,zhanna,gumshoe,jbird,
159357456,pasca,
123452345,satan6,mithrand,fhbirf,aa1111aa,viggen,ficktjuv,radial9,davids1,rainbow7,futuro,hipho,platin,poppy123,rhenjq,fulle,rosit,chicano,scrumpy,lumpy1,seifer,uvmrysez,autumn1,xenon,susie1,
7u8i
9o
0p,gamer1,sirene,muffy1,monkeys1,kalinin,olcrackmaster,hotmove,uconn,gshock,merson,lthtdyz,pizzaboy,peggy1,pistache,pinto1,fishka,ladydi,pandor,baileys,hungwell,redboy,rookie1,amanda01,passwrd,clean1,matty1,tarkus,jabba1,bobster,beer30,solomon1,moneymon,sesamo,fred11,sunnysid,jasmine5,thebears,putamadre,workhard,flashbac,counter1,liefde,magnat,corky1,green6,abramov,lordik,univers,shortys,david3,vip123,gnarly,
1234567s,billy2,honkey,deathstar,grimmy,govinda,direktor,
12345678s,linus1,shoppin,rekbrjdf,santeria,prett,berty75,mohican,daftpunk,uekmyfhf,chupa,strats,ironbird,giants56,salisbur,koldun,summer04,pondscum,jimmyj,miata1,george3,redshoes,weezie,bartman1,
0p9o8i7u,s1lver,dorkus,
125478,omega9,sexisgood,mancow,patric1,jetta1,
074401,ghjuhtcc,gfhjk,bibble,terry2,
123213,medicin,rebel2,hen3ry,
4freedom,aldrin,lovesyou,browny,renwod,winnie1,belladon,
1house,tyghbn,blessme,rfhfrfnbwf,haylee,deepdive,booya,phantasy,gansta,cock69,
4mnveh,gazza1,redapple,structur,anakin1,manolito,steve01,poolman,chloe123,vlad1998,qazwsxe,pushit,random123,ontherocks,o236nq,brain1,dimedrol,agape,rovnogod,
1balls,knigh,alliso,love01,wolf01,flintstone,beernuts,tuffguy,isengard,highfive,alex23,casper99,rubina,getreal,chinita,italian1,airsoft,qwerty23,muffdiver,willi1,grace123,orioles1,redbull1,chino1,ziggy123,breadman,estefan,ljcneg,gotoit,logan123,wideglid,mancity1,treess,qwe123456,kazumi,qweasdqwe,oddworld,naveed,protos,towson,a801016,godislov,at_asp,bambam1,soccer5,dark123,
67vette,carlos123,hoser1,scouser,wesdxc,pelus,dragon25,pflhjn,abdula,
1freedom,policema,tarkin,eduardo1,mackdad,gfhjkm11,lfplhfgthvf,adilet,zzzzxxxx,childre,samarkand,cegthgegth,shama,fresher,silvestr,greaser,allout,plmokn,sexdrive,nintendo1,fantasy7,oleander,fe126fd,crumpet,pingzing,dionis,hipster,yfcnz,requin,calliope,jerome1,housecat,abc123456789,doghot,snake123,augus,brillig,chronic1,gfhjkbot,expediti,noisette,master7,caliban,whitetai,favorite3,lisamari,educatio,ghjhjr,saber1,zcegth,
1958proman,vtkrbq,milkdud,imajica,thehip,bailey10,hockey19,dkflbdjcnjr,j123456,bernar,aeiouy,gamlet,deltachi,endzone,conni,bcgfybz,brandi1,auckland2010,
7653ajl1,mardigra,testuser,bunko18,camaro67,
36936,greenie,
454dfmcq,
6xe8j2z4,mrgreen,ranger5,headhunt,banshee1,moonunit,zyltrc,hello3,pussyboy,stoopid,tigger11,yellow12,drums1,blue02,kils123,junkman,banyan,jimmyjam,tbbucs,sportster,badass1,joshie,braves10,lajolla,
1amanda,antani,
78787,antero,
19216801,chich,rhett32,sarahm,beloit,sucker69,corkey,nicosnn,rccola,caracol,daffyduc,bunny2,mantas,monkies,hedonist,cacapipi,ashton1,sid123,
19899891,patche,greekgod,cbr1000,leader1,
19977991,ettore,chongo,
113311,picass,cfif123,rhtfnbd,frances1,andy12,minnette,bigboy12,green69,alices,babcia,partyboy,javabean,freehand,qawsed123,xxx111,harold1,passwo,jonny1,kappa1,w2dlww3v5p,
1merlin,
222999,tomjones,jakeman,franken,markhegarty,john01,carole1,daveman,caseys,apeman,mookey,moon123,claret,titans1,residentevil,campari,curitiba,dovetail,aerostar,jackdaniels,basenji,zaq12w,glencoe,biglove,goober12,ncc170,far7766,monkey21,eclipse9,
1234567v,vanechka,aristote,grumble,belgorod,abhishek,neworleans,pazzword,dummie,sashadog,diablo11,mst3000,koala1,maureen1,jake99,isaiah1,funkster,gillian1,ekaterina20,chibears,astra123,
4me2no,winte,skippe,necro,windows9,vinograd,demolay,vika2010,quiksilver,
19371ayj,dollar1,shecky,qzwxecrv,butterfly1,merrill1,scoreland,
1crazy,megastar,mandragora,track1,dedhed,jacob2,newhope,qawsedrftgyh,shack1,samvel,gatita,shyster,clara1,telstar,office1,crickett,truls,nirmala,joselito,chrisl,lesnik,aaaabbbb,austin01,leto2010,bubbie,aaa12345,widder,
234432,salinger,mrsmith,qazsedcft,newshoes,skunks,yt1300,bmw316,arbeit,smoove,
123321qweewq,
123qazwsx,
22221111,seesaw,
0987654321a,peach1,
1029384756q,sereda,gerrard8,shit123,batcave,energy1,peterb,mytruck,peter12,alesya,tomato1,spirou,laputaxx,magoo1,omgkremidia,knight12,norton1,vladislava,shaddy,austin11,jlbyjxrf,kbdthgekm,punheta,fetish69,exploiter,roger2,manstein,gtnhjd,
32615948worms,dogbreath,ujkjdjkjvrf,vodka1,ripcord,fatrat,kotek1,tiziana,larrybir,thunder3,nbvfnb,
9kyq6fge,remembe,likemike,gavin1,shinigam,yfcnfcmz,
13245678,jabbar,vampyr,ane4ka,lollipo,ashwin,scuderia,limpdick,deagle,
3247562,vishenka,fdhjhf,alex02,volvov70,mandys,bioshock,caraca,tombraider,matrix69,jeff123,
13579135,parazit,black3,noway1,diablos,hitmen,garden1,aminor,decembe,august12,b00ger,
006900,
452073t,schach,hitman1,mariner1,vbnmrf,paint1,
742617000027,bitchboy,pfqxjyjr,
5681392,marryher,sinnet,malik1,muffin12,aninha,piolin,lady12,traffic1,cbvjyf,
6345789,june21,ivan2010,ryan123,honda99,gunny,coorslight,asd321,hunter69,
7224763,sonofgod,dolphins1,
1dolphin,pavlenko,woodwind,lovelov,pinkpant,gblfhfcbyf,hotel1,justinbiebe,vinter,jeff1234,mydogs,
1pizza,boats1,parrothe,shawshan,brooklyn1,cbrown,
1rocky,hemi426,dragon64,redwings1,porsches,ghostly,hubbahub,buttnut,b929ezzh,sorokina,flashg,fritos,b7mguk,metatron,treehous,vorpal,
8902792,marcu,free123,labamba,chiefs1,zxc123zxc,keli_14,hotti,
1steeler,money4,rakker,foxwoods,free1,ahjkjd,sidorova,snowwhit,neptune1,mrlover,trader1,nudelamb,baloo,power7,deltasig,bills1,trevo,
7gorwell,nokia6630,nokia5320,madhatte,
1cowboys,manga1,namtab,sanjar,fanny1,birdman1,adv12775,carlo1,dude1998,babyhuey,nicole11,madmike,ubvyfpbz,qawsedr,lifetec,skyhook,stalker123,toolong,robertso,ripazha,zippy123,
1111111a,manol,dirtyman,analslut,jason3,dutches,minhasenha,cerise,fenrir,jayjay1,flatbush,franka,bhbyjxrf,
26429vadim,lawntrax,
198700,fritzy,nikhil,ripper1,harami,truckman,nemvxyheqdd5oqxyxyzi,gkfytnf,bugaboo,cableman,hairpie,xplorer,movado,hotsex69,mordred,ohyeah1,patrick3,frolov,katieh,
4311111q,mochaj,presari,bigdo,
753951852,freedom4,kapitan,tomas1,
135795,sweet123,pokers,shagme,tane4ka,sentinal,ufgyndmv,jonnyb,skate123,
123456798,
123456788,very1,gerrit,damocles,dollarbi,caroline1,lloyds,pizdets,flatland,
92702689,dave13,meoff,ajnjuhfabz,achmed,madison9,
744744z,amonte,avrillavigne,elaine1,norma1,asseater,everlong,buddy23,cmgang1,trash1,mitsu,flyman,ulugbek,june27,magistr,fittan,sebora64,dingos,sleipnir,caterpil,cindys,
212121qaz,partys,dialer,gjytltkmybr,qweqaz,janvier,rocawear,lostboy,aileron,sweety1,everest1,pornman,boombox,potter1,blackdic,
44448888,eric123,
112233aa,
2502557i,novass,nanotech,yourname,x12345,indian1,
15975300,
1234567l,carla51,chicago0,coleta,cxzdsaewq,qqwweerr,marwan,deltic,hollys,qwerasd,pon32029,rainmake,nathan0,matveeva,legioner,kevink,riven,tombraid,blitzen,a54321,jackyl,chinese1,shalimar,oleg1995,beaches1,tommylee,eknock,berli,monkey23,badbob,pugwash,likewhoa,jesus2,yujyd360,belmar,shadow22,utfp5e,angelo1,minimax,pooder,cocoa1,moresex,tortue,lesbia,panthe,snoopy2,drumnbass,alway,gmcz71,
6jhwmqku,leppard,dinsdale,blair1,boriqua,money111,virtuagirl,
267605,rattlesn,
1sunshin,monica12,veritas1,newmexic,millertime,turandot,rfvxfnrf,jaydog,kakawka,bowhunter,booboo12,deerpark,erreway,taylorma,rfkbybyf,wooglin,weegee,rexdog,iamhorny,cazzo1,vhou812,bacardi1,dctktyyfz,godpasi,peanut12,bertha1,fuckyoubitch,ghosty,altavista,jertoot,smokeit,ghjcnbvtyz,fhnehxbr,rolsen,qazxcdews,maddmaxx,redrocke,qazokm,spencer2,thekiller,asdf11,
123sex,tupac1,p1234567,dbrown,
1biteme,tgo4466,
316769,sunghi,shakespe,frosty1,gucci1,arcana,bandit01,lyubov,poochy,dartmout,magpies1,sunnyd,mouseman,summer07,chester7,shalini,danbury,pigboy,dave99,deniss,harryb,ashley11,pppppp1,
01081988m,balloon1,tkachenko,bucks1,master77,pussyca,tricky1,zzxxccvv,zoulou,doomer,mukesh,iluv69,supermax,todays,thefox,don123,dontask,diplom,piglett,shiney,fahbrf,qaz12wsx,temitope,reggin,project1,buffy2,inside1,lbpfqyth,vanilla1,lovecock,u4slpwra,fylh.irf,
123211,
7ertu3ds,necroman,chalky,artist1,simpso,
4x7wjr,chaos666,lazyacres,harley99,ch33s3,marusa,eagle7,dilligas,computadora,lucky69,denwer,nissan350z,unforgiv,oddball,schalke0,aztec1,borisova,branden1,parkave,marie123,germa,lafayett,
878kckxy,
405060,cheeseca,bigwave,fred22,andreea,poulet,mercutio,psycholo,andrew88,o4izdmxu,sanctuar,newhome,milion,suckmydi,rjvgm.nth,warior,goodgame,
1qwertyuiop,
6339cndh,scorpio2,macker,southbay,crabcake,toadie,paperclip,fatkid,maddo,cliff1,rastafar,maries,twins1,geujdrf,anjela,wc4fun,dolina,mpetroff,rollout,zydeco,shadow3,pumpki,steeda,volvo240,terras,blowjo,blue2000,incognit,badmojo,gambit1,zhukov,station1,aaronb,graci,duke123,clipper1,qazxsw2,ledzeppe,kukareku,sexkitte,cinco,
007008,lakers12,a1234b,acmilan1,afhfjy,starrr,slutty3,phoneman,kostyan,bonzo1,sintesi07,ersatz,cloud1,nephilim,nascar03,rey619,kairos,
123456789e,hardon1,boeing1,juliya,hfccdtn,vgfun8,polizei,
456838,keithb,minouche,ariston,savag,
213141,clarkken,microwav,london2,santacla,campeo,qr5mx7,
464811,mynuts,bombo,
1mickey,lucky8,danger1,ironside,carter12,wyatt1,borntorun,iloveyou123,jose1,pancake1,tadmichaels,monsta,jugger,hunnie,triste,heat7777,ilovejesus,queeny,luckycharm,lieben,gordolee85,jtkirk,forever21,jetlag,skylane,taucher,neworlea,holera,
000005,anhnhoem,melissa7,mumdad,massimiliano,dima1994,nigel1,madison3,slicky,shokolad,serenit,jmh1978,soccer123,chris3,drwho,rfpzdrf,
1qasw23ed,free4me,wonka,sasquatc,sanan,maytag,verochka,bankone,molly12,monopoli,xfqybr,lamborgini,gondolin,candycane,needsome,jb007,scottie1,brigit,
0147258369,kalamazo,lololyo123,bill1234,ilovejes,lol123123,popkorn,april13,
567rntvm,downunde,charle1,angelbab,guildwars,homeworld,qazxcvbnm,superma1,dupa123,kryptoni,happyy,artyom,stormie,cool11,calvin69,saphir,konovalov,jansport,october8,liebling,druuna,susans,megans,tujhjdf,wmegrfux,jumbo1,ljb4dt7n,
012345678910,kolesnik,speculum,at4gftlw,kurgan,
93pn75,cahek0980,dallas01,godswill,fhifdby,chelsea4,jump23,barsoom,catinhat,urlacher,angel99,vidadi1,
678910,lickme69,topaz1,westend,loveone,c12345,gold12,alex1959,mamon,barney12,
1maggie,alex12345,lp2568cskt,s1234567,gjikbdctyf,anthony0,browns99,chips1,sunking,widespre,lalala1,tdutif,fucklife,master00,alino4ka,stakan,blonde1,phoebus,tenore,bvgthbz,brunos,suzjv8,uvdwgt,revenant,
1banana,veroniqu,sexfun,sp1der,
4g3izhox,isakov,shiva1,scooba,bluefire,wizard12,dimitris,funbags,perseus,hoodoo,keving,malboro,
157953,a32tv8ls,latics,animate,mossad,yejntb,karting,qmpq39zr,busdrive,jtuac3my,jkne9y,sr20dett,
4gxrzemq,keylargo,
741147,rfktylfhm,toast1,skins1,xcalibur,gattone,seether,kameron,glock9mm,julio1,delenn,gameday,tommyd,str8edge,bulls123,
66699,carlsberg,woodbird,adnama,
45auto,codyman,truck2,
1w2w3w4w,pvjegu,method1,luetdi,
41d8cd98f00b,bankai,
5432112345,
94rwpe,reneee,chrisx,melvins,
775577,sam2000,scrappy1,rachid,grizzley,margare,morgan01,winstons,gevorg,gonzal,crawdad,gfhfdjp,babilon,noneya,pussy11,barbell,easyride,c00li0,
777771,
311music,karla1,golions,
19866891,peejay,leadfoot,hfvbkm,kr9z40sy,cobra123,isotwe,grizz,sallys,****you,aaa123a,dembel,foxs14,hillcres,webman,mudshark,alfredo1,weeded,lester1,hovepark,ratface,
000777fffa,huskie,wildthing,elbarto,waikiki,masami,call911,goose2,regin,dovajb,agricola,cjytxrj,andy11,penny123,family01,a121212,
1braves,upupa68,happy100,
824655,cjlove,firsttim,kalel,redhair,dfhtymt,sliders,bananna,loverbo,fifa2008,crouton,chevy350,panties2,kolya1,alyona,hagrid,spagetti,q2w3e4r,
867530,narkoman,nhfdvfnjkju123,
1ccccccc,napolean,
0072563,allay,w8sted,wigwam,jamesk,state1,parovoz,beach69,kevinb,rossella,logitech1,celula,gnocca,canucks1,loginova,marlboro1,aaaa1,kalleanka,mester,mishutka,milenko,alibek,jersey1,peterc,
1mouse,nedved,blackone,ghfplybr,
682regkh,beejay,newburgh,ruffian,clarets,noreaga,xenophon,hummerh2,tenshi,smeagol,soloyo,vfhnby,ereiamjh,ewq321,goomie,sportin,cellphone,sonnie,jetblack,saudan,gblfhfc,matheus,uhfvjnf,alicja,jayman1,devon1,hexagon,bailey2,vtufajy,yankees7,salty1,
908070,killemal,gammas,eurocard,sydney12,tuesday1,antietam,wayfarer,beast666,
19952009sa,aq12ws,eveli,hockey21,haloreach,dontcare,xxxx1,andrea11,karlmarx,jelszo,tylerb,protools,timberwolf,ruffneck,pololo,
1bbbbb,waleed,sasami,twinss,fairlady,illuminati,alex007,sucks1,homerjay,scooter7,tarbaby,barmaley,amistad,vanes,randers,tigers12,dreamer2,goleafsg,googie,bernie1,as12345,godeep,james3,phanto,gwbush,cumlover,
2196dc,studioworks,
995511,golf56,titova,kaleka,itali,socks1,kurwamac,daisuke,hevonen,woody123,daisie,wouter,henry123,gostosa,guppie,porpoise,iamsexy,
276115,paula123,
1020315,
38gjgeuftd,rjrfrjkf,knotty,idiot1,sasha12345,matrix13,securit,radical1,ag764ks,jsmith,coolguy1,secretar,juanas,sasha1988,itout,
00000001,tiger11,
1butthea,putain,cavalo,basia1,kobebryant,
1232323,
12345asdfg,sunsh1ne,cyfqgth,tomkat,dorota,dashit,pelmen,
5t6y7u,whipit,smokeone,helloall,bonjour1,snowshoe,nilknarf,x1x2x3,lammas,
1234599,lol123456,atombomb,ironchef,noclue,alekseev,gwbush1,silver2,
12345678m,yesican,fahjlbnf,chapstic,alex95,open1,tiger200,lisichka,pogiako,cbr929,searchin,tanya123,alex1973,phil413,alex1991,dominati,geckos,freddi,silenthill,egroeg,vorobey,antoxa,dark666,shkola,apple22,rebellio,shamanking,
7f8srt,cumsucker,partagas,bill99,
22223333,arnster55,fucknuts,proxima,silversi,goblues,parcells,vfrcbvjdf,piloto,avocet,emily2,
1597530,miniskir,himitsu,pepper2,juiceman,venom1,bogdana,jujube,quatro,botafogo,mama2010,junior12,derrickh,asdfrewq,miller2,chitarra,silverfox,napol,prestigio,devil123,mm111qm,ara123,max33484,sex2000,primo1,sephan,anyuta,alena2010,viborg,verysexy,hibiscus,terps,josefin,oxcart,spooker,speciali,raffaello,partyon,vfhvtkflrf,strela,a123456z,worksuck,glasss,lomonosov,dusty123,dukeblue,
1winter,sergeeva,lala123,john22,cmc09,sobolev,bettylou,dannyb,gjkrjdybr,hagakure,iecnhbr,awsedr,pmdmsctsk,costco,alekseeva,fktrcttd,bazuka,flyingv,garuda,buffy16,gutierre,beer12,stomatolog,ernies,palmeiras,golf123,love269,n.kmgfy,gjkysqgbpltw,youare,joeboo,baksik,lifeguar,
111a111,nascar8,mindgame,dude1,neopets,frdfkfyu,june24,phoenix8,penelopa,merlin99,mercenar,badluck,mishel,bookert,deadsexy,power9,chinchil,
1234567m,alex10,skunk1,rfhkcjy,sammycat,wright1,randy2,marakesh,temppassword,elmer251,mooki,patrick0,bonoedge,
1tits,chiar,kylie1,graffix,milkman1,cornel,mrkitty,nicole12,ticketmaster,beatles4,number20,ffff1,terps1,superfre,yfdbufnjh,jake1234,flblfc,
1111qq,zanuda,jmol01,wpoolejr,polopol,nicolett,omega13,cannonba,
123456789.,sandy69,ribeye,bo243ns,marilena,bogdan123,milla,redskins1,
19733791,alias1,movie1,ducat,marzena,shadowru,
56565,coolman1,pornlover,teepee,spiff,nafanya,gateway3,fuckyou0,hasher,
34778,booboo69,staticx,hang10,qq12345,garnier,bosco123,
1234567qw,carson1,samso,
1xrg4kcq,cbr929rr,allan123,motorbik,andrew22,pussy101,miroslava,cytujdbr,camp0017,cobweb,snusmumrik,salmon1,cindy2,aliya,serendipity,co437at,tincouch,timmy123,hunter22,st1100,vvvvvv1,blanka,krondor,sweeti,nenit,kuzmich,gustavo1,bmw320i,alex2010,trees1,kyliem,essayons,april26,kumari,sprin,fajita,appletre,fghbjhb,
1green,katieb,steven2,corrado1,satelite,
1michell,
123456789c,cfkfvfylhf,acurarsx,slut543,inhere,bob2000,pouncer,k123456789,fishie,aliso,audia8,bluetick,soccer69,jordan99,fromhell,mammoth1,fighting54,mike25,pepper11,extra1,worldwid,chaise,vfr800,sordfish,almat,nofate,listopad,hellgate,dctvghbdf,jeremia,qantas,lokiju,honker,sprint1,maral,triniti,compaq3,sixsix6,married1,loveman,juggalo1,repvtyrj,zxcasdqw,
123445,whore1,
123678,monkey6,west123,warcraf,pwnage,mystery1,creamyou,ant123,rehjgfnrf,corona1,coleman1,steve121,alderaan,barnaul,celeste1,junebug1,bombshel,gretzky9,tankist,targa,cachou,vaz2101,playgolf,boneyard,strateg,romawka,iforgotit,pullup,garbage1,irock,archmage,shaft1,oceano,sadies,alvin1,
135135ab,psalm69,lmfao,ranger02,zaharova,
33334444,perkman,realman,salguod,cmoney,astonmartin,glock1,greyfox,viper99,helpm,blackdick,
46775575,family5,shazbot,dewey1,qwertyas,shivani,black22,mailman1,greenday1,
57392632,red007,stanky,sanchez1,tysons,daruma,altosax,krayzie,
85852008,
1forever,
98798798,irock.,
123456654,
142536789,ford22,brick1,michela,preciou,crazy4u,
01telemike01,nolife,concac,safety1,annie123,brunswic,destini,
123456qwer,madison0,snowball1,
137946,
1133557799,jarule,scout2,songohan,thedead,
00009999,murphy01,spycam,hirsute,aurinko,associat,
1miller,baklan,hermes1,
2183rm,martie,kangoo,shweta,yvonne1,westsid,jackpot1,rotciv,maratik,fabrika,claude1,nursultan,noentry,ytnhjufnm,electra1,ghjcnjnfr1,puneet,smokey01,integrit,bugeye,trouble2,
14071789,paul01,omgwtf,dmh415,ekilpool,yourmom1,moimeme,sparky11,boludo,ruslan123,kissme1,demetrio,appelsin,asshole3,raiders2,bunns,fynjybj,billygoa,p030710p$e4o,macdonal,
248ujnfk,acorns,schmidt1,sparrow1,vinbylrj,weasle,jerom,ycwvrxxh,skywalk,gerlinde,solidus,postal1,poochie1,
1charles,rhianna,terorist,rehnrf,omgwtfbbq,assfucke,deadend,zidan,jimboy,vengence,maroon5,
7452tr,dalejr88,sombra,anatole,elodi,amazonas,
147789,q12345q,gawker1,juanma,kassidy,greek1,bruces,bilbob,mike44,
0o9i8u7y6t,kaligula,agentx,familie,anders1,pimpjuice,
0128um,birthday10,lawncare,hownow,grandorgue,juggerna,scarfac,kensai,swatteam,
123four,motorbike,repytxbr,other1,celicagt,pleomax,gen0303,godisgreat,icepick,lucifer666,heavy1,tea4two,forsure,
02020,shortdog,webhead,chris13,palenque,
3techsrl,knights1,orenburg,prong,nomarg,wutang1,
80637852730,laika,iamfree,
12345670,pillow1,
12343412,bigears,peterg,stunna,rocky5,
12123434,damir,feuerwehr,
7418529630,danone,yanina,valenci,andy69,
111222q,silvia1,
1jjjjj,loveforever,passwo1,stratocaster,
8928190a,motorolla,lateralu,ujujkm,chubba,ujkjdf,signon,
123456789zx,serdce,stevo,wifey200,ololo123,popeye1,
1pass,central1,melena,luxor,nemezida,poker123,ilovemusic,qaz1234,noodles1,lakeshow,amarill,ginseng,billiam,trento,
321cba,fatback,soccer33,master13,marie2,newcar,bigtop,dark1,camron,nosgoth,
155555,biglou,redbud,jordan7,
159789,diversio,actros,dazed,drizzit,hjcnjd,wiktoria,justic,gooses,luzifer,darren1,chynna,tanuki,
11335577,icculus,boobss,biggi,firstson,ceisi123,gatewa,hrothgar,jarhead1,happyjoy,felipe1,bebop1,medman,athena1,boneman,keiths,djljgfl,dicklick,russ120,mylady,zxcdsa,rock12,bluesea,kayaks,provista,luckies,smile4me,bootycal,enduro,
123123f,heartbre,ern3sto,apple13,bigpappa,fy.njxrf,bigtom,cool69,perrito,quiet1,puszek,cious,cruella,temp1,david26,alemap,aa123123,teddies,tricolor,smokey12,kikiriki,mickey01,robert01,super5,ranman,stevenso,deliciou,money777,degauss,mozar,susanne1,asdasd12,shitbag,mommy123,wrestle1,imfree,fuckyou12,barbaris,florent,ujhijr,f8yruxoj,tefjps,anemone,toltec,
2gether,left4dead2,ximen,gfkmvf,dunca,emilys,diana123,
16473a,mark01,bigbro,annarbor,nikita2000,
11aa11,tigres,llllll1,loser2,fbi11213,jupite,qwaszxqw,macabre,
123ert,rev2000,mooooo,klapaucius,bagel1,chiquit,iyaoyas,bear101,irocz28,vfktymrfz,smokey2,love99,rfhnbyf,dracul,keith123,slicko,peacock1,orgasmic,thesnake,solder,wetass,doofer,david5,rhfcyjlfh,swanny,tammys,turkiye,tubaman,estefani,firehose,funnyguy,servo,grace17,pippa1,arbiter,jimmy69,nfymrf,asdf67nm,rjcnzy,demon123,thicknes,sexysex,kristall,michail,encarta,banderos,minty,marchenko,de1987ma,mo5kva,aircav,naomi1,bonni,tatoo,cronaldo,
49ers1,mama1963,
1truck,telecaster,punksnotdead,erotik,
1eagles,
1fender,luv269,acdeehan,tanner1,freema,
1q3e5t7u,linksys,tiger6,megaman1,neophyte,australia1,mydaddy,
1jeffrey,fgdfgdfg,gfgekz,
1986irachka,keyman,m0b1l3,dfcz123,mikeyg,playstation2,abc125,slacker1,
110491g,lordsoth,bhavani,ssecca,dctvghbdtn,niblick,hondacar,baby01,worldcom,
4034407,
51094didi,
3657549,
3630000,
3578951,sweetpussy,majick,supercoo,robert11,abacabb,panda123,gfhjkm13,ford4x4,zippo1,lapin,
1726354,lovesong,dude11,moebius,paravoz,
1357642,matkhau,solnyshko,daniel4,multiplelog,starik,martusia,iamtheman,greentre,jetblue,motorrad,vfrcbvev,redoak,dogma1,gnorman,komlos,tonka1,
1010220,
666satan,losenord,lateralus,absinthe,command1,jigga1,iiiiiii1,pants1,jungfrau,
926337,ufhhbgjnnth,yamakasi,
888555,sunny7,gemini69,alone1,zxcvbnmz,cabezon,skyblues,zxc1234,
456123a,zero00,caseih,azzurra,legolas1,menudo,murcielago,
785612,
779977,benidorm,viperman,dima1985,piglet1,hemligt,hotfeet,
7elephants,hardup,gamess,a000000,
267ksyjf,kaitlynn,sharkie,sisyphus,yellow22,
667766,redvette,
666420,mets69,ac2zxdty,hxxrvwcy,cdavis,alan1,noddy,
579300,druss,eatshit1,
555123,appleseed,simpleplan,kazak,
526282,fynfyfyfhbde,birthday6,dragon6,
1pookie,bluedevils,omg123,hj8z6e,x5dxwp,
455445,batman23,termin,chrisbrown,animals1,lucky9,
443322,kzktxrf,takayuki,fermer,assembler,zomu9q,sissyboy,sergant,felina,nokia6230i,eminem12,croco,hunt4red,festina,darknigh,cptnz062,ndshnx4s,twizzler,wnmaz7sd,aamaax,gfhfcjkmrf,alabama123,barrynov,happy5,punt0it,durandal,
8xuuobe4,cmu9ggzh,bruno12,
316497,crazyfrog,vfvfktyf,apple3,kasey1,mackdaddy,anthon1,sunnys,angel3,cribbage,moon1,donal,bryce1,pandabear,mwss474,whitesta,freaker,
197100,bitche,p2ssw0rd,turnb,tiktonik,moonlite,ferret1,jackas,ferrum,bearclaw,liberty2,
1diablo,caribe,snakeeyes,janbam,azonic,rainmaker,vetalik,bigeasy,baby1234,sureno13,blink1,kluivert,calbears,lavanda,
198600,dhtlbyf,medvedeva,fox123,whirling,bonscott,freedom9,october3,manoman,segredo,cerulean,robinso,bsmith,flatus,dannon,password21,rrrrrr1,callista,romai,rainman1,trantor,mickeymo,bulldog7,g123456,pavlin,pass22,snowie,hookah,
7ofnine,bubba22,cabible,nicerack,moomoo1,summer98,yoyo123,milan1,lieve27,mustang69,jackster,exocet,nadege,qaz12,bahama,watson1,libras,eclipse2,bahram,bapezm,up9x8rww,ghjcnjz,themaste,deflep27,ghost16,gattaca,fotograf,junior123,gilber,gbjyth,
8vjzus,rosco1,begonia,aldebara,flower12,novastar,buzzman,manchild,lopez1,mama11,william7,yfcnz1,blackstar,spurs123,moom4242,
1amber,iownyou,tightend,
07931505,paquito,
1johnson,smokepot,pi31415,snowmass,ayacdc,jessicam,giuliana,
5tgbnhy6,harlee,giuli,bigwig,tentacle,scoubidou2,benelli,vasilina,nimda,
284655,jaihind,lero4ka,
1tommy,reggi,ididit,jlbyjxtcndj,mike26,qbert,wweraw,lukasz,loosee123,palantir,flint1,mapper,baldie,saturne,virgin1,meeeee,elkcit,iloveme2,blue15,themoon,radmir,number3,shyanne,missle,hannelor,jasmina,karin1,lewie622,ghjcnjqgfhjkm,blasters,oiseau,sheela,grinders,panget,rapido,positiv,twink,fltkbyf,kzsfj874,daniel01,enjoyit,nofags,doodad,rustler,squealer,fortunat,peace123,khushi,devils2,
7inches,candlebo,topdawg,armen,soundman,zxcqweasd,april7,gazeta,netman,hoppers,bear99,ghbjhbntn,mantle7,bigbo,harpo,jgordon,bullshi,vinny1,krishn,star22,thunderc,galinka,phish123,tintable,nightcrawler,tigerboy,rbhgbx,messi,basilisk,masha1998,nina123,yomamma,kayla123,geemoney,
0000000000d,motoman,a3jtni,ser123,owen10,italien,vintelok,
12345rewq,nightime,jeepin,ch1tt1ck,mxyzptlk,bandido,ohboy,doctorj,hussar,superted,parfilev,grundle,
1jack,livestrong,chrisj,matthew3,access22,moikka,fatone,miguelit,trivium,glenn1,smooches,heiko,dezember,spaghett,stason,molokai,bossdog,guitarma,waderh,boriska,photosho,path13,hfrtnf,audre,junior24,monkey24,silke,vaz21093,bigblue1,trident1,candide,arcanum,klinker,orange99,bengals1,rosebu,mjujuj,nallepuh,mtwapa1a,ranger69,level1,bissjop,leica,
1tiffany,rutabega,elvis77,kellie1,sameas,barada,karabas,frank12,queenb,toutoune,surfcity,samanth1,monitor1,littledo,kazakova,fodase,mistral1,april22,carlit,shakal,batman123,fuckoff2,alpha01,
5544332211,buddy3,towtruck,kenwood1,vfiekmrf,jkl123,pypsik,ranger75,sitges,toyman,bartek1,ladygirl,booman,boeing77,installsqlst,
222666,gosling,bigmack,
223311,bogos,kevin2,gomez1,xohzi3g4,kfnju842,klubnika,cubalibr,
123456789101,kenpo,
0147852369,raptor1,tallulah,boobys,jjones,
1q2s3c,moogie,vid2600,almas,wombat1,extra300,xfiles1,green77,sexsex1,heyjude,sammyy,missy123,maiyeuem,nccpl25282,thicluv,sissie,raven3,fldjrfn,buster22,broncos2,laurab,letmein4,harrydog,solovey,fishlips,asdf4321,ford123,superjet,norwegen,movieman,psw333333,intoit,postbank,deepwate,ola123,geolog323,murphys,eshort,a3eilm2s2y,kimota,belous,saurus,
123321qaz,i81b4u,aaa12,monkey20,buckwild,byabybnb,mapleleafs,yfcnzyfcnz,baby69,summer03,twista,
246890,
246824,ltcnhjth,z1z2z3,monika1,sad123,uto29321,bathory,villan,funkey,poptarts,spam967888,
705499fh,sebast,porn1234,earn381,
1porsche,whatthef,
123456789y,polo12,brillo,soreilly,waters1,eudora,allochka,is_a_bot,winter00,bassplay,
531879fiz,onemore,bjarne,red911,kot123,artur1,qazxdr,c0rvette,diamond7,matematica,klesko,beaver12,
2enter,seashell,panam,chaching,edward2,browni,xenogear,cornfed,aniram,chicco22,darwin1,ancella2,sophie2,vika1998,anneli,shawn41,babie,resolute,pandora2,william8,twoone,coors1,jesusis1,teh012,cheerlea,renfield,tessa1,anna1986,madness1,bkmlfh,
19719870,liebherr,ck6znp42,gary123,
123654z,alsscan,eyedoc,matrix7,metalgea,chinito,
4iter,falcon11,
7jokx7b9du,bigfeet,tassadar,retnuh,muscle1,klimova,darion,batistuta,bigsur,
1herbier,noonie,ghjrehjh,karimova,faustus,snowwhite,
1manager,dasboot,michael12,analfuck,inbed,dwdrums,jaysoncj,maranell,bsheep75,
164379,rolodex,
166666,rrrrrrr1,almaz666,
167943,russel1,negrito,alianz,goodpussy,veronik,
1w2q3r4e,efremov,emb377,sdpass,william6,alanfahy,nastya1995,panther5,automag,
123qwe12,vfvf2011,fishe,
1peanut,speedie,qazwsx1234,pass999,
171204j,ketamine,sheena1,energizer,usethis1,
123abc123,buster21,thechamp,flvbhfk,frank69,chane,hopeful1,claybird,pander,anusha,bigmaxxx,faktor,housebed,dimidrol,bigball,shashi,derby1,fredy,dervish,bootycall,
80988218126,killerb,cheese2,pariss,mymail,dell123,catbert,christa1,chevytru,gjgjdf,
00998877,overdriv,ratten,golf01,nyyanks,dinamite,bloembol,gismo,magnus1,march2,twinkles,ryan22,duckey,
118a105b,kitcat,brielle,poussin,lanzarot,youngone,ssvegeta,hero63,battle1,kiler,fktrcfylh1,newera,vika1996,dynomite,oooppp,beer4me,foodie,ljhjuf,sonshine,godess,doug1,constanc,thinkbig,steve2,damnyou,autogod,www333,kyle1,ranger7,roller1,harry2,dustin1,hopalong,tkachuk,b00bies,bill2,deep111,stuffit,fire69,redfish1,andrei123,graphix,
1fishing,kimbo1,mlesp31,ifufkbyf,gurkan,
44556,emily123,busman,and123,
8546404,paladine,
1world,bulgakov,
4294967296,bball23,
1wwwww,mycats,elain,delta6,
36363,emilyb,color1,
6060842,cdtnkfyrf,hedonism,gfgfrfhkj,
5551298,scubad,gostate,sillyme,hdbiker,beardown,fishers,sektor,
00000007,newbaby,rapid1,braves95,gator2,nigge,anthony3,sammmy,oou812,heffer,phishin,roxanne1,yourass,hornet1,albator,
2521659,underwat,tanusha,dianas,
3f3fpht7op,dragon20,bilbobag,cheroke,radiatio,dwarf1,majik,
33st33,dochka,garibald,robinh,sham69,temp01,wakeboar,violet1,
1w2w3w,registr,tonite,maranello,
1593570,parolamea,galatasara,loranthos,
1472583,asmodean,
1362840,scylla,doneit,jokerr,porkypig,kungen,mercator,koolhaas,come2me,debbie69,calbear,liverpoolfc,yankees4,
12344321a,kennyb,madma,
85200258,dustin23,thomas13,tooling,mikasa,mistic,crfnbyf,
112233445,sofia1,heinz57,colts1,price1,snowey,joakim,mark11,
963147,cnhfcnm,kzinti,
1bbbbbbb,rubberdu,donthate,rupert1,sasha1992,regis1,nbuhbwf,fanboy,sundial,sooner1,wayout,vjnjhjkf,deskpro,arkangel,willie12,mikeyb,celtic1888,luis1,buddy01,duane1,grandma1,aolcom,weeman,
172839456,basshead,hornball,magnu,pagedown,molly2,
131517,rfvtgbyhn,astonmar,mistery,madalina,cash1,
1happy,shenlong,matrix01,nazarova,
369874125,
800500,webguy,rse2540,ashley2,briank,
789551,
786110,chunli,j0nathan,greshnik,courtne,suckmyco,mjollnir,
789632147,asdfg1234,
754321,odelay,ranma12,zebedee,artem777,bmw318is,butt1,rambler1,yankees9,alabam,
5w76rnqp,rosies,mafioso,studio1,babyruth,tranzit,magical123,gfhjkm135,
12345$,soboleva,
709394,ubique,drizzt1,elmers,teamster,pokemons,
1472583690,
1597532486,shockers,merckx,melanie2,ttocs,clarisse,earth1,dennys,slobber,flagman,farfalla,troika,
4fa82hyx,hakan,x4ww5qdr,cumsuck,leather1,forum1,july20,barbel,zodiak,samuel12,ford01,rushfan,bugsy1,invest1,tumadre,screwme,a666666,money5,henry8,tiddles,sailaway,starburs,
100years,killer01,comando,hiromi,ranetka,thordog,blackhole,palmeira,verboten,solidsna,q1w1e1,humme,kevinc,gbrfxe,gevaudan,hannah11,peter2,vangar,sharky7,talktome,jesse123,chuchi,pammy,!qazxsw2,siesta,twenty1,wetwilly,
477041,natural1,sun123,daniel3,intersta,shithead1,hellyea,bonethugs,solitair,bubbles2,father1,nick01,
444000,adidas12,dripik,cameron2,
442200,a7nz8546,respublika,fkojn6gb,
428054,snoppy,rulez1,haslo,rachael1,purple01,zldej102,ab12cd34,cytuehjxrf,madhu,astroman,preteen,handsoff,mrblonde,biggio,testin,vfdhif,twolves,unclesam,asmara,kpydskcw,lg2wmgvr,grolsch,biarritz,feather1,williamm,s62i93,bone1,penske,
337733,
336633,taurus1,
334433,billet,diamondd,
333000,nukem,fishhook,godogs,thehun,lena1982,blue00,smelly1,unb4g9ty,
65pjv22,applegat,mikehunt,giancarlo,krillin,felix123,december1,soapy,
46doris,nicole23,bigsexy1,justin10,pingu,bambou,falcon12,dgthtl,
1surfer,qwerty01,estrellit,nfqcjy,easygo,konica,qazqwe,
1234567890m,stingers,nonrev,
3e4r5t,champio,bbbbbb99,
196400,allen123,seppel,simba2,rockme,zebra3,tekken3,endgame,sandy2,
197300,fitte,monkey00,eldritch,littleone,rfyfgkz,
1member,
66chevy,oohrah,cormac,hpmrbm41,
197600,grayfox,elvis69,celebrit,maxwell7,rodders,krist,
1camaro,broken1,kendall1,silkcut,katenka,angrick,maruni,
17071994a,tktyf,kruemel,snuffles,iro4ka,baby12,alexis01,marryme,vlad1994,forward1,culero,badaboom,malvin,hardtoon,hatelove,molley,knopo4ka,duchess1,mensuck,cba321,kickbutt,zastava,wayner,fuckyou6,eddie123,cjkysir,john33,dragonfi,cody1,jabell,cjhjrf,badseed,sweden1,marihuana,brownlov,elland,nike1234,kwiettie,jonnyboy,togepi,billyk,robert123,bb334,florenci,ssgoku,
198910,bristol1,bob007,allister,yjdujhjl,gauloise,
198920,bellaboo,
9lives,aguilas,wltfg4ta,foxyroxy,rocket69,fifty50,babalu,master21,malinois,kaluga,gogosox,obsessio,yeahrigh,panthers1,capstan,liza2000,leigh1,paintball1,blueskie,cbr600f3,bagdad,jose98,mandreki,shark01,wonderbo,muledeer,xsvnd4b2,hangten,
200001,grenden,anaell,apa195,model1,
245lufpq,zip100,ghjcgtrn,wert1234,misty2,charro,juanjose,fkbcrf,frostbit,badminto,buddyy,
1doctor,vanya,archibal,parviz,spunky1,footboy,dm6tzsgp,legola,samadhi,poopee,ytdxz2ca,hallowboy,dposton,gautie,theworm,guilherme,dopehead,iluvtits,bobbob1,ranger6,worldwar,lowkey,chewbaca,oooooo99,ducttape,dedalus,celular,
8i9o0p,borisenko,taylor01,
111111z,arlingto,p3nnywiz,rdgpl3ds,boobless,kcmfwesg,blacksab,mother2,markus1,leachim,secret2,s123456789,
1derful,espero,russell2,tazzer,marykate,freakme,mollyb,lindros8,james00,gofaster,stokrotka,kilbosik,aquamann,pawel1,shedevil,mousie,slot2009,october6,
146969,mm259up,brewcrew,choucho,uliana,sexfiend,fktirf,pantss,vladimi,starz,sheeps,
12341234q,bigun,tiggers,crjhjcnm,libtech,pudge1,home12,zircon,klaus1,jerry2,pink1,lingus,monkey66,dumass,polopolo09,feuerweh,rjyatnf,chessy,beefer,shamen,poohbear1,
4jjcho,bennevis,fatgirls,ujnbrf,cdexswzaq,
9noize9,rich123,nomoney,racecar1,hacke,clahay,acuario,getsum,hondacrv,william0,cheyenn,techdeck,atljhjdf,wtcacq,suger,fallenangel,bammer,tranquil,carla123,relayer,lespaul1,portvale,idontno,bycnbnen,trooper2,gennadiy,pompon,billbob,amazonka,akitas,chinatow,atkbrc,busters,fitness1,cateye,selfok2013,
1murphy,fullhous,mucker,bajskorv,nectarin,littlebitch,love24,feyenoor,bigal37,lambo1,pussybitch,icecube1,biged,kyocera,ltybcjdf,boodle,theking1,gotrice,sunset1,abm1224,fromme,sexsells,inheat,kenya1,swinger1,aphrodit,kurtcobain,rhind101,poidog,poiulkjh,kuzmina,beantown,tony88,stuttgar,drumer,joaqui,messenge,motorman,amber2,nicegirl,rachel69,andreia,faith123,studmuffin,jaiden,red111,vtkmybr,gamecocks,gumper,bosshogg,
4me2know,tokyo1,kleaner,roadhog,fuckmeno,phoenix3,seeme,buttnutt,boner69,andreyka,myheart,katerin,rugburn,jvtuepip,dc3ubn,chile1,ashley69,happy99,swissair,balls2,fylhttdf,jimboo,
55555d,mickey11,voronin,m7hsqstm,stufff,merete,weihnachte,dowjones,baloo1,freeones,bears34,auburn1,beverl,timberland,
1elvis,guinness1,bombadil,flatron1,logging7,telefoon,merl1n,masha1,andrei1,cowabung,yousuck1,
1matrix,peopl,asd123qwe,sweett,mirror1,torrente,joker12,diamond6,jackaroo,
00000a,millerlite,ironhorse,
2twins,stryke,gggg1,zzzxxxccc,roosevel,
8363eddy,angel21,depeche1,d0ct0r,blue14,areyou,veloce,grendal,frederiksberg,cbcntvf,cb207sl,sasha2000,was.here,fritzz,rosedale,spinoza,cokeisit,gandalf3,skidmark,ashley01,
12345j,
1234567890qaz,sexxxxxx,beagles,lennart,
12345789,pass10,politic,max007,gcheckou,
12345611,tiffy,lightman,mushin,velosiped,brucewayne,gauthie,elena123,greenegg,h2oski,clocker,nitemare,
123321s,megiddo,cassidy1,david13,boywonde,flori,peggy12,pgszt6md,batterie,redlands,scooter6,bckhere,trueno,bailey11,maxwell2,bandana,timoth1,startnow,ducati74,tiern,maxine1,blackmetal,suzyq,balla007,phatfarm,kirsten1,titmouse,benhogan,culito,forbin,chess1,warren1,panman,mickey7,
24lover,dascha,speed2,redlion,andrew10,johnwayn,nike23,chacha1,bendog,bullyboy,goldtree,spookie,tigger99,
1cookie,poutine,cyclone1,woodpony,camaleun,bluesky1,dfadan,eagles20,lovergirl,peepshow,mine1,dima1989,rjdfkmxer,
11111aaaaa,machina,august17,
1hhhhh,
0773417k,
1monster,freaksho,jazzmin,davidw,kurupt,chumly,huggies,sashenka,ccccccc1,bridge1,giggalo,cincinna,pistol1,hello22,david77,lightfoo,lucky6,jimmy12,
261397,lisa12,tabaluga,mysite,belo4ka,greenn,eagle99,punkrawk,salvado,slick123,wichsen,knight99,dummys,fefolico,contrera,kalle1,anna1984,delray,robert99,garena,pretende,racefan,alons,serenada,ludmilla,cnhtkjr,l0swf9gx,hankster,dfktynbyrf,sheep1,john23,cv141ab,kalyani,
944turbo,crystal2,blackfly,zrjdktdf,eus1sue1,mario5,riverplate,harddriv,melissa3,elliott1,sexybitc,cnhfyybr,jimdavis,bollix,beta1,amberlee,skywalk1,natala,
1blood,brattax,shitty1,gb15kv99,ronjon,rothmans,thedoc,joey21,hotboi,firedawg,bimbo38,jibber,aftermat,nomar,
01478963,phishing,domodo,anna13,materia,martha1,budman1,gunblade,exclusiv,sasha1997,anastas,rebecca2,fackyou,kallisti,fuckmyass,norseman,ipswich1,
151500,
1edward,intelinside,darcy1,bcrich,yjdjcnbf,failte,buzzzz,cream1,tatiana1,
7eleven,green8,
153351,
1a2s3d4f5g6h,
154263,milano1,bambi1,bruins77,rugby2,jamal1,bolita,sundaypunch,bubba12,realmadr,vfyxtcnth,iwojima,notlob,black666,valkiria,nexus1,millerti,birthday100,swiss1,appollo,gefest,greeneyes,celebrat,tigerr,slava123,izumrud,bubbabub,legoman,joesmith,katya123,sweetdream,john44,wwwwwww1,oooooo1,socal,lovespor,s5r8ed67s,
258147,heidis,cowboy22,wachovia,michaelb,qwe1234567,i12345,
255225,goldie1,alfa155,
45colt,safeu851,antonova,longtong,
1sparky,gfvznm,busen,hjlbjy,whateva,rocky4,cokeman,joshua3,kekskek1,sirocco,jagman,
123456qwert,phinupi,thomas10,loller,sakur,vika2011,fullred,mariska,azucar,ncstate,glenn74,halima,aleshka,ilovemylife,verlaat,baggie,scoubidou6,phatboy,jbruton,scoop1,barney11,blindman,def456,maximus2,master55,nestea,
11223355,diego123,sexpistols,sniffy,philip1,f12345,prisonbreak,nokia2700,ajnjuhfa,yankees3,colfax,ak470000,mtnman,bdfyeirf,fotball,ichbin,trebla,ilusha,riobravo,beaner1,thoradin,polkaudi,kurosawa,honda123,ladybu,valerik,poltava,saviola,fuckyouguys,
754740g0,anallove,microlab1,juris01,ncc1864,garfild,shania1,qagsud,makarenko,cindy69,lebedev,andrew11,johnnybo,groovy1,booster1,sanders1,tommyb,johnson4,kd189nlcih,hondaman,vlasova,chick1,sokada,sevisgur,bear2327,chacho,sexmania,roma1993,hjcnbckfd,valley1,howdie,tuppence,jimandanne,strike3,y4kuz4,nhfnfnf,tsubasa,
19955991,scabby,quincunx,dima1998,uuuuuu1,logica,skinner1,pinguino,lisa1234,xpressmusic,getfucked,qqqq1,bbbb1,matulino,ulyana,upsman,johnsmith,
123579,co2000,spanner1,todiefor,mangoes,isabel1,
123852,negra,snowdon,nikki123,bronx1,booom,ram2500,chuck123,fireboy,creek1,batman13,princesse,az12345,maksat,
1knight,
28infern,
241455,r7112s,muselman,mets1986,katydid,vlad777,playme,kmfdm1,asssex,
1prince,iop890,bigbroth,mollymoo,waitron,lizottes,
125412,juggler,quinta,
0sister0,zanardi,nata123,heckfyxbr,
22q04w90e,engine2,nikita95,zamira,hammer22,lutscher,carolina1,zz6319,sanman,vfuflfy,buster99,rossco,kourniko,aggarwal,tattoo1,janice1,finger1,
125521,
19911992,shdwlnds,rudenko,vfvfgfgf123,galatea,monkeybu,juhani,premiumcash,classact,devilmay,helpme2,knuddel,hardpack,ramil,perrit,basil1,zombie13,stockcar,tos8217,honeypie,nowayman,alphadog,melon1,talula,
125689,tiribon12,tornike,haribol,telefone,tiger22,sucka,lfytxrf,chicken123,muggins,a23456,b1234567,lytdybr,otter1,pippa,vasilisk,cooking1,helter,
78978,bestboy,viper7,ahmed1,whitewol,mommys,apple5,shazam1,chelsea7,kumiko,masterma,rallye,bushmast,jkz123,entrar,andrew6,nathan01,alaric,tavasz,heimdall,gravy1,jimmy99,cthlwt,powerr,gthtrhtcnjr,canesfan,sasha11,ybrbnf_25,august9,brucie,artichok,arnie1,superdude,tarelka,mickey22,dooper,luners,holeshot,good123,gettysbu,bicho,hammer99,divine5,
1zxcvbn,stronzo,q22222,disne,bmw750il,godhead,hallodu,aerith,nastik,differen,cestmoi,amber69,
5string,pornosta,dirtygirl,ginger123,formel1,scott12,honda200,hotspurs,johnatha,firstone123,lexmark1,msconfig,karlmasc,l123456,
123qweasdzx,baldman,sungod,furka,retsub,
9811020,ryder1,tcglyued,astron,lbvfcbr,minddoc,dirt49,baseball12,tbear,simpl,schuey,artimus,bikman,plat1num,quantex,gotyou,hailey1,justin01,ellada,
8481068,
000002,manimal,dthjybxrf,buck123,dick123,
6969696,nospam,strong1,kodeord,bama12,
123321w,superman123,gladiolus,nintend,
5792076,dreamgirl,spankme1,gautam,arianna1,titti,tetas,cool1234,belladog,importan,
4206969,
87e5nclizry,teufelo7,doller,yfl.irf,quaresma,
3440172,melis,bradle,nnmaster,fast1,iverso,blargh,lucas12,chrisg,iamsam,
123321az,tomjerry,kawika,
2597174,standrew,billyg,muskan,gizmodo2,rz93qpmq,
870621345,sathya,qmezrxg4,januari,marthe,moom4261,cum2me,hkger286,lou1988,suckit1,croaker,klaudia1,
753951456,aidan1,fsunoles,romanenko,abbydog,isthebes,akshay,corgi,fuck666,walkman555,ranger98,scorpian,hardwareid,bluedragon,fastman,
2305822q,iddqdiddqd,
1597532,gopokes,zvfrfcb,w1234567,sputnik1,tr1993,pa$$w0rd,
2i5fdruv,havvoc,
1357913,
1313131,bnm123,cowd00d,flexscan,thesims2,boogiema,bigsexxy,powerstr,ngc4565,joshman,babyboy1,
123jlb,funfunfu,qwe456,honor1,puttana,bobbyj,daniel21,pussy12,shmuck,
1232580,
123578951,maxthedo,hithere1,bond0007,gehenna,nomames,blueone,r1234567,bwana,gatinho,
1011111,torrents,cinta,
123451234,tiger25,money69,edibey,pointman,mmcm19,wales1,caffreys,phaedra,bloodlus,
321ret32,rufuss,tarbit,joanna1,
102030405,stickboy,lotrfotr34,jamshid,mclarenf1,ataman,
99ford,yarrak,logan2,ironlung,pushistik,dragoon1,unclebob,tigereye,pinokio,tylerj,mermaid1,stevie1,jaylen,
888777,ramana,roman777,brandon7,
17711771s,thiago,luigi1,edgar1,brucey,videogam,classi,birder,faramir,twiddle,cubalibre,grizzy,fucky,jjvwd4,august15,idinahui,ranita,nikita1998,
123342,w1w2w3,
78621323,
4cancel,
789963,(null,vassago,jaydog472,
123452,timt42,canada99,
123589,rebenok,htyfnf,
785001,osipov,maks123,neverwinter,love2010,
777222,
67390436,eleanor1,bykemo,aquemini,frogg,roboto,thorny,shipmate,logcabin,
66005918,nokian,gonzos,louisian,
1abcdefg,triathlo,ilovemar,couger,letmeino,supera,runvs,fibonacci,muttly,
58565254,
5thgbqi,vfnehsv,electr,jose12,artemis1,newlove,thd1shr,hawkey,grigoryan,saisha,tosca,redder,lifesux,temple1,bunnyman,thekids,sabbeth,tarzan1,
182838,
158uefas,dell50,
1super,
666222,
47ds8x,jackhamm,mineonly,rfnfhbyf,
048ro,
665259,kristina1,bombero,
52545856,secure1,bigloser,peterk,alex2,
51525354,anarchy1,superx,teenslut,money23,sigmapi,sanfrancisco,acme34,private5,eclips,qwerttrewq,axelle,kokain,hardguy,peter69,jesuschr,dyanna,dude69,sarah69,toyota91,amberr,
45645645,bugmenot,bigted,
44556677,
556644,wwr8x9pu,alphaome,harley13,kolia123,wejrpfpu,revelati,nairda,sodoff,cityboy,pinkpussy,dkalis,miami305,wow12345,triplet,tannenbau,asdfasdf1,darkhors,
527952,retired1,soxfan,nfyz123,
37583867,goddes,
515069,gxlmxbewym,
1warrior,
36925814,dmb2011,topten,karpova,
89876065093rax,naturals,gateway9,cepseoun,turbot,
493949,cock22,italia1,sasafras,gopnik,stalke,
1qazxdr5,wm2006,ace1062,alieva,blue28,aracel,sandia,motoguzz,terri1,emmajane,conej,recoba,alex1995,jerkyboy,cowboy12,arenrone,precisio,
31415927,scsa316,panzer1,studly1,powerhou,bensam,mashoutq,billee,eeyore1,reape,thebeatl,rul3z,montesa,doodle1,cvzefh1gk,
424365,a159753,zimmerma,gumdrop,ashaman,grimreap,icandoit,borodina,branca,dima2009,keywest1,vaders,bubluk,diavolo,assss,goleta,eatass,napster1,
382436,
369741,
5411pimo,lenchik,pikach,gilgamesh,kalimera,singer1,gordon2,rjycnbnewbz,maulwurf,joker13,
2much4u,bond00,alice123,robotec,fuckgirl,zgjybz,redhorse,margaret1,brady1,pumpkin2,chinky,fourplay,
1booger,roisin,
1brandon,sandan,blackheart,cheez,blackfin,cntgfyjdf,mymoney1,
09080706,goodboss,sebring1,rose1,kensingt,bigboner,marcus12,ym3cautj,struppi,thestone,lovebugs,stater,silver99,forest99,qazwsx12345,vasile,longboar,mkonji,huligan,rhfcbdfz,airmail,porn11,
1ooooo,sofun,snake2,msouthwa,dougla,
1iceman,shahrukh,sharona,dragon666,france98,
196800,
196820,ps253535,zjses9evpa,sniper01,design1,konfeta,jack99,drum66,good4you,station2,brucew,regedit,school12,mvtnr765,pub113,fantas,tiburon1,king99,ghjcnjgbpltw,checkito,
308win,
1ladybug,corneliu,svetasveta,
197430,icicle,imaccess,ou81269,jjjdsl,brandon6,bimbo1,smokee,piccolo1,
3611jcmg,children2,cookie2,conor1,darth1,margera,aoi856,paully,ou812345,sklave,eklhigcz,
30624700,amazing1,wahooo,seau55,
1beer,apples2,chulo,dolphin9,heather6,
198206,
198207,hergood,miracle1,njhyflj,
4real,milka,silverfi,fabfive,spring12,ermine,mammy,jumpjet,adilbek,toscana,caustic,hotlove,sammy69,lolita1,byoung,whipme,barney01,mistys,tree1,buster3,kaylin,gfccgjhn,
132333,aishiteru,pangaea,fathead1,smurph,
198701,ryslan,gasto,xexeylhf,anisimov,chevyss,saskatoo,brandy12,tweaker,irish123,music2,denny1,palpatin,outlaw1,lovesuck,woman1,mrpibb,diadora,hfnfneq,poulette,harlock,mclaren1,cooper12,newpass3,bobby12,rfgecnfcerf,alskdjfh,mini14,dukers,raffael,
199103,cleo123,
1234567qwertyu,mossberg,scoopy,dctulf,starline,hjvjxrf,misfits1,rangers2,bilbos,blackhea,pappnase,atwork,purple2,daywalker,summoner,
1jjjjjjj,swansong,chris10,laluna,
12345qqq,charly1,lionsden,money99,silver33,hoghead,bdaddy,
199430,saisg002,nosaints,tirpitz,
1gggggg,jason13,kingss,ernest1,
0cdh0v99ue,pkunzip,arowana,spiri,deskjet1,armine,lances,magic2,thetaxi,
14159265,cacique,
14142135,orange10,richard0,backdraf,
255ooo,humtum,kohsamui,c43dae874d,wrestling1,cbhtym,sorento,megha,pepsiman,qweqwe12,bliss7,mario64,korolev,balls123,schlange,gordit,optiquest,fatdick,fish99,richy,nottoday,dianne1,armyof1,
1234qwerasdfzxcv,bbonds,aekara,lidiya,baddog1,yellow5,funkie,ryan01,greentree,gcheckout,marshal1,liliput,
000000z,rfhbyrf,gtogto43,rumpole,tarado,marcelit,aqwzsxedc,kenshin1,sassydog,system12,belly1,zilla,kissfan,tools1,desember,donsdad,nick11,scorpio6,poopoo1,toto99,steph123,dogfuck,rocket21,thx113,dude12,sanek,sommar,smacky,pimpsta,letmego,k1200rs,lytghjgtnhjdcr,abigale,buddog,deles,baseball9,roofus,carlsbad,hamzah,hereiam,genial,schoolgirlie,yfz450,breads,piesek,washear,chimay,apocalyp,nicole18,gfgf1234,gobulls,dnevnik,wonderwall,beer1234,
1moose,beer69,maryann1,adpass,mike34,birdcage,hottuna,gigant,penquin,praveen,donna123,
123lol
123,thesame,fregat,adidas11,selrahc,pandoras,test3,chasmo,
111222333000,pecos,daniel11,ingersol,shana1,mama12345,cessna15,myhero,
1simpson,nazarenko,cognit,seattle2,irina1,azfpc310,rfycthdf,hardy1,jazmyn,sl1200,hotlanta,jason22,kumar123,sujatha,fsd9shtyu,highjump,changer,entertai,kolding,mrbig,sayuri,eagle21,qwertzu,jorge1,
0101dd,bigdong,ou812a,sinatra1,htcnjhfy,oleg123,videoman,pbyfblf,tv612se,bigbird1,kenaidog,gunite,silverma,ardmore,
123123qq,hotbot,cascada,cbr600f4,harakiri,chico123,boscos,aaron12,glasgow1,kmn5hc,lanfear,
1light,liveoak,fizika,ybrjkftdyf,surfside,intermilan,multipas,redcard,
72chevy,balata,coolio1,schroede,kanat,testerer,camion,kierra,hejmeddig,antonio2,tornados,isidor,pinkey,n8skfswa,ginny1,houndog,
1bill,chris25,hastur,
1marine,greatdan,french1,hatman,
123qqq,z1z2z3z4,kicker1,katiedog,usopen,smith22,mrmagoo,
1234512i,assa123,
7seven7,monster7,june12,bpvtyf,
149521,guenter,alex1985,voronina,mbkugegs,zaqwsxcderfv,rusty5,mystic1,master0,abcdef12,jndfkb,r4zpm3,cheesey,skripka,blackwhite,sharon69,dro8smwq,lektor,techman,boognish,deidara,heckfyf,quietkey,authcode,monkey4,jayboy,pinkerto,merengue,chulita,bushwick,turambar,kittykit,joseph2,dad123,kristo,pepote,scheiss,hambone1,bigballa,restaura,tequil,
111luzer,euro2000,motox,denhaag,chelsi,flaco1,preeti,lillo,
1001sin,passw,august24,beatoff,
555555d,willis1,kissthis,qwertyz,rvgmw2gl,iloveboobies,timati,kimbo,msinfo,dewdrop,sdbaker,fcc5nky2,messiah1,catboy,small1,chode,beastie1,star77,hvidovre,short1,xavie,dagobah,alex1987,papageno,dakota2,toonami,fuerte,jesus33,lawina,souppp,dirtybir,chrish,naturist,channel1,peyote,flibble,gutentag,lactate,killem,zucchero,robinho,ditka,grumpy1,avr7000,boxxer,topcop,berry1,mypass1,beverly1,deuce1,
9638527410,cthuttdf,kzkmrf,lovethem,band1t,cantona1,purple11,apples123,wonderwo,
123a456,fuzzie,lucky99,dancer2,hoddling,rockcity,winner12,spooty,mansfiel,aimee1,
287hf71h,rudiger,culebra,god123,agent86,daniel0,bunky1,notmine,
9ball,goofus,puffy1,xyh28af4,kulikov,bankshot,vurdf5i2,kevinm,ercole,sexygirls,razvan,october7,goater,lollie,raissa,thefrog,mdmaiwa3,mascha,jesussaves,union1,anthony9,crossroa,brother2,areyuke,rodman91,toonsex,dopeman,gericom,vaz2115,cockgobbler,
12356789,
12345699,signatur,alexandra1,coolwhip,erwin1,awdrgyjilp,pens66,ghjrjgtyrj,linkinpark,emergenc,psych0,blood666,bootmort,wetworks,piroca,johnd,iamthe1,supermario,homer69,flameon,image1,bebert,fylhtq1,annapoli,apple11,hockey22,
10048,indahouse,mykiss,
1penguin,markp,misha123,foghat,march11,hank1,santorin,defcon4,tampico,vbnhjafy,robert22,bunkie,athlon64,sex777,nextdoor,koskesh,lolnoob,seemnemaailm,black23,march15,yeehaa,chiqui,teagan,siegheil,monday2,cornhusk,mamusia,chilis,sthgrtst,feldspar,scottm,pugdog,rfghjy,micmac,gtnhjdyf,terminato,
1jackson,kakosja,bogomol,
123321aa,rkbvtyrj,tresor,tigertig,fuckitall,vbkkbjy,caramon,zxc12,balin,dildo1,soccer09,avata,abby123,cheetah1,marquise,jennyc,hondavfr,tinti,anna1985,dennis2,jorel,mayflowe,icema,hal2000,nikkis,bigmouth,greenery,nurjan,leonov,liberty7,fafnir,larionov,sat321321,byteme1,nausicaa,hjvfynbrf,everto,zebra123,sergio1,titone,wisdom1,kahala,
104328q,marcin1,salima,pcitra,
1nnnnn,nalini,galvesto,neeraj,rick1,squeeky,agnes1,jitterbu,agshar,maria12,
0112358,traxxas,stivone,prophet1,bananza,sommer1,canoneos,hotfun,redsox11,
1bigmac,dctdjkjl,legion1,everclea,valenok,black9,danny001,roxie1,
1theman,mudslide,july16,lechef,chula,glamis,emilka,canbeef,ioanna,cactus1,rockshox,im2cool,ninja9,thvfrjdf,june28,milo17,missyou,micky1,nbibyf,nokiaa,goldi,mattias,fuckthem,asdzxc123,ironfist,junior01,nesta,crazzy,killswit,hygge,zantac,kazama,melvin1,allston,maandag,hiccup,prototyp,specboot,dwl610,hello6,
159456,baldhead,redwhite,calpoly,whitetail,agile1,cousteau,matt01,aust1n,malcolmx,gjlfhjr,semperf1,ferarri,a1b2c3d,vangelis,mkvdari,bettis36,andzia,comand,tazzman,morgaine,pepluv,anna1990,inandout,anetka,anna1997,wallpape,moonrake,huntress,hogtie,cameron7,sammy7,singe11,clownboy,newzeala,wilmar,safrane,rebeld,poopi,granat,hammertime,nermin,
11251422,xyzzy1,bogeys,jkmxbr,fktrcfyl,
11223311,nfyrbcn,
11223300,powerpla,zoedog,ybrbnbyf,zaphod42,tarawa,jxfhjdfirf,dude1234,g5wks9,goobe,czekolada,blackros,amaranth,medical1,thereds,julija,nhecsyfujkjdt,promopas,buddy4,marmalad,weihnachten,tronic,letici,passthief,
67mustan,ds7zamnw,morri,w8woord,cheops,pinarell,sonofsam,av473dv,sf161pn,
5c92v5h6,purple13,tango123,plant1,
1baby,xufrgemw,fitta,
1rangers,spawns,kenned,taratata,
19944991,
11111118,coronas,
4ebouux8,roadrash,corvette1,dfyjdf846,marley12,qwaszxerdfcv,
68stang,
67stang,racin,ellehcim,sofiko,nicetry,seabass1,jazzman1,zaqwsx1,laz2937,uuuuuuu1,vlad123,rafale,j1234567,
223366,nnnnnn1,
226622,junkfood,asilas,cer980,daddymac,persepho,neelam,
00700,shithappens,
255555,qwertyy,xbox36,
19755791,qweasd1,bearcub,jerryb,a1b1c1,polkaudio,basketball1,
456rty,
1loveyou,marcus2,mama1961,palace1,transcend,shuriken,sudhakar,teenlove,anabelle,matrix99,pogoda,notme,bartend,jordana,nihaoma,ataris,littlegi,ferraris,redarmy,giallo,fastdraw,accountbloc,peludo,pornostar,pinoyako,cindee,glassjaw,dameon,johnnyd,finnland,saudade,losbravo,slonko,toplay,smalltit,nicksfun,stockhol,penpal,caraj,divedeep,cannibus,poppydog,pass88,viktory,walhalla,arisia,lucozade,goldenbo,tigers11,caball,ownage123,tonna,handy1,johny,capital5,faith2,stillher,brandan,pooky1,antananarivu,hotdick,
1justin,lacrimos,goathead,bobrik,cgtwbfkbcn,maywood,kamilek,gbplf123,gulnar,beanhead,vfvjyn,shash,viper69,ttttttt1,hondacr,kanako,muffer,dukies,justin123,agapov58,mushka,bad11bad,muleman,jojo123,andreika,makeit,vanill,boomers,bigals,merlin11,quacker,aurelien,spartak1922,ligeti,diana2,lawnmowe,fortune1,awesom,rockyy,anna1994,oinker,love88,eastbay,ab55484,poker0,ozzy666,papasmurf,antihero,photogra,ktm250,painkill,jegr2d2,p3orion,canman,dextur,qwest123,samboy,yomismo,sierra01,herber,vfrcbvvfrcbv,gloria1,llama1,pie123,bobbyjoe,buzzkill,skidrow,grabber,phili,javier1,
9379992q,geroin,oleg1994,sovereig,rollover,zaq12qaz,battery1,killer13,alina123,groucho1,mario12,peter22,butterbean,elise1,lucycat,neo123,ferdi,golfer01,randie,gfhfyjbr,ventura1,chelsea3,pinoy,mtgox,yrrim7,shoeman,mirko,ffggyyo,
65mustan,ufdibyjd,john55,suckfuck,greatgoo,fvfnjhb,mmmnnn,love20,
1bullshi,sucesso,easy1234,robin123,rockets1,diamondb,wolfee,nothing0,joker777,glasnost,richar1,guille,sayan,koresh,goshawk,alexx,batman21,a123456b,hball,
243122,rockandr,coolfool,isaia,mary1,yjdbrjdf,lolopc,cleocat,cimbo,lovehina,
8vfhnf,passking,bonapart,diamond2,bigboys,kreator,ctvtyjdf,sassy123,shellac,table54781,nedkelly,philbert,sux2bu,nomis,sparky99,python1,littlebear,numpty,silmaril,sweeet,jamesw,cbufhtnf,peggysue,wodahs,luvsex,wizardry,venom123,love4you,bama1,samat,reviewpass,ned467,cjkjdtq,mamula,gijoe,amersham,devochka,redhill,gisel,preggo,polock,cando,rewster,greenlantern,panasonik,dave1234,mikeee,
1carlos,miledi,darkness1,p0o9i8u7y6,kathryn1,happyguy,dcp500,assmaster,sambuka,sailormo,antonio3,logans,
18254288,nokiax2,qwertzuiop,zavilov,totti,xenon1,edward11,targa1,something1,tony_t,q1w2e3r4t5y6u7i8o9p0,
02551670,vladimir1,monkeybutt,greenda,neel21,craiger,saveliy,dei008,honda450,fylhtq95,spike2,fjnq8915,passwordstandard,vova12345,talonesi,richi,gigemags,pierre1,westin,trevoga,dorothee,bastogne,
25563o,brandon3,truegrit,krimml,iamgreat,servis,a112233,paulinka,azimuth,corperfmonsy,
358hkyp,homerun1,dogbert1,eatmyass,cottage1,savina,baseball7,bigtex,gimmesum,asdcxz,lennon1,a159357,
1bastard,
413276191q,pngfilt,pchealth,netsnip,bodiroga,
1matt,webtvs,ravers,adapters,siddis,mashamasha,coffee2,myhoney,anna1982,marcia1,fairchil,maniek,iloveluc,batmonh,wildon,bowie1,netnwlnk,fancy1,tom204,olga1976,vfif123,queens1,ajax01,lovess,mockba,icam4usb,triada,odinthor,rstlne,exciter,sundog,anchorat,girls69,nfnmzyrf,soloma,gti16v,shadowman,ottom,rataros,tonchin,vishal,chicken0,pornlo,christiaan,volante,likesit,mariupol,runfast,gbpltw123,missys,villevalo,kbpjxrf,ghibli,calla,cessna172,kinglear,dell11,swift1,walera,
1cricket,pussy5,turbo911,tucke,maprchem56458,rosehill,thekiwi1,ygfxbkgt,mandarinka,
98xa29,magnit,cjfrf,paswoord,grandam1,shenmue,leedsuni,hatrick,zagadka,angeldog,michaell,dance123,koichi,bballs,
29palms,xanth,
228822,ppppppp1,
1kkkkk,
1lllll,mynewbots,spurss,madmax1,
224455,city1,mmmmmmm1,nnnnnnn1,biedronka,thebeatles,elessar,f14tomcat,jordan18,bobo123,ayi000,tedbear,
86chevyx,user123,bobolink,maktub,elmer1,flyfishi,franco1,gandalf0,traxdata,david21,enlighte,dmitrij,beckys,
1giants,flippe,
12345678w,jossie,rugbyman,snowcat,rapeme,peanut11,gemeni,udders,techn9ne,armani1,chappie,war123,vakantie,maddawg,sewanee,jake5253,tautt1,anthony5,letterma,jimbo2,kmdtyjr,hextall,jessica6,amiga500,hotcunt,phoenix9,veronda,saqartvelo,scubas,sixer3,williamj,nightfal,shihan,melnikova,kosssss,handily,killer77,jhrl0821,march17,rushman,
6gcf636i,metoyou,irina123,mine11,primus1,formatters,matthew5,infotech,gangster1,jordan45,moose69,kompas,motoxxx,greatwhi,cobra12,kirpich,weezer1,hello23,montse,tracy123,connecte,cjymrf,hemingwa,azreal,gundam00,mobila,boxman,slayers1,ravshan,june26,fktrcfylhjd,bermuda1,tylerd,maersk,qazwsx11,eybdthcbntn,ash123,camelo,kat123,backd00r,cheyenne1,
1king,jerkin,tnt123,trabant,warhammer40k,rambos,punto,home77,pedrito,
1frank,brille,guitarman,george13,rakas,tgbxtcrbq,flute1,bananas1,lovezp1314,thespot,postie,buster69,sexytime,twistys,zacharia,sportage,toccata,denver7,terry123,bogdanova,devil69,higgins1,whatluck,pele10,kkk666,jeffery1,
1qayxsw2,riptide1,chevy11,munchy,lazer1,hooker1,ghfgjh,vergesse,playgrou,
4077mash,gusev,humpin,oneputt,hydepark,monster9,tiger8,tangsoo,guy123,hesoyam1,uhtqneyu,thanku,lomond,ortezza,kronik,geetha,rabbit66,killas,qazxswe,alabaste,
1234567890qwerty,capone1,andrea12,geral,beatbox,slutfuck,booyaka,jasmine7,ostsee,maestro1,beatme,tracey1,buster123,donaldduck,ironfish,happy6,konnichi,gintonic,momoney1,dugan1,today2,enkidu,destiny2,trim7gun,katuha,fractals,morganstanley,polkadot,gotime,prince11,
204060,fifa2010,bobbyt,seemee,amanda10,airbrush,bigtitty,heidie,layla1,cotton1,
5speed,fyfnjkmtdyf,flynavy,joxury8f,meeko,akuma,dudley1,flyboy1,moondog1,trotters,mariami,signin,chinna,legs11,pussy4,
1s1h1e1f1,felici,optimus1,iluvu,marlins1,gavaec,balance1,glock40,london01,kokot,southwes,comfort1,sammy11,rockbottom,brianc,litebeer,homero,chopsuey,greenlan,charit,freecell,hampster,smalldog,viper12,blofeld,
1234567890987654321,realsex,romann,cartman2,cjdthitycndj,nelly1,bmw528,zwezda,masterba,jeep99,turtl,america2,sunburst,sanyco,auntjudy,
125wm,blue10,qwsazx,cartma,toby12,robbob,red222,ilovecock,losfix16,
1explore,helge,vaz2114,whynotme,baba123,mugen,
1qazwsxedc,albertjr,
0101198,sextime,supras,nicolas2,wantsex,pussy6,checkm8,winam,
24gordon,misterme,curlew,gbljhfcs,medtech,franzi,butthea,voivod,blackhat,egoiste,pjkeirf,maddog69,pakalolo,hockey4,igor1234,rouges,snowhite,homefree,sexfreak,acer12,dsmith,blessyou,
199410,vfrcbvjd,falco02,belinda1,yaglasph,april21,groundho,jasmin1,nevergiveup,elvir,gborv526,c00kie,emma01,awesome2,larina,mike12345,maximu,anupam,bltynbabrfwbz,tanushka,sukkel,raptor22,josh12,schalke04,cosmodog,fuckyou8,busybee,
198800,bijoux,frame1,blackmor,giveit,issmall,bear13,
123-
123,bladez,littlegirl,ultra123,fletch1,flashnet,loploprock,rkelly,
12step,lukas1,littlewhore,cuntfinger,stinkyfinger,laurenc,
198020,n7td4bjl,jackie69,camel123,ben1234,
1gateway,adelheid,fatmike,thuglove,zzaaqq,chivas1,
4815162342q,mamadou,nadano,james22,benwin,andrea99,rjirf,michou,abkbgg,d50gnn,aaazzz,a123654,blankman,booboo11,medicus,bigbone,
197200,justine1,bendix,morphius,njhvjp,
44mag,zsecyus56,goodbye1,nokiadermo,a333444,waratsea,
4rzp8ab7,fevral,brillian,kirbys,minim,erathia,grazia,zxcvb1234,dukey,snaggle,poppi,hymen,
1video,dune2000,jpthjdf,cvbn123,zcxfcnkbdfz,astonv,ginnie,
316271,engine3,pr1ncess,
64chevy,glass1,laotzu,hollyy,comicbooks,assasins,nuaddn9561,scottsda,hfcnfvfy,accobra,
7777777z,werty123,metalhead,romanson,redsand,
365214,shalo,arsenii,
1989cc,sissi,duramax,
382563,petera,
414243,mamapap,jollymon,field1,fatgirl,janets,trompete,matchbox20,rambo2,nepenthe,
441232,qwertyuiop10,bozo123,phezc419hv,romantika,lifestyl,pengui,decembre,demon6,panther6,
444888,scanman,ghjcnjabkz,pachanga,buzzword,indianer,spiderman3,tony12,startre,frog1,fyutk,
483422,tupacshakur,albert12,
1drummer,bmw328i,green17,aerdna,invisibl,summer13,calimer,mustaine,lgnu9d,morefun,hesoyam123,escort1,scrapland,stargat,barabbas,dead13,
545645,mexicali,sierr,gfhfpbn,gonchar,moonstafa,searock,counte,foster1,jayhawk1,floren,maremma,nastya2010,softball1,adaptec,halloo,barrabas,zxcasd123,hunny,mariana1,kafedra,freedom0,green420,vlad1234,method7,
665566,tooting,hallo12,davinchi,conducto,medias,
666444,invernes,madhatter,
456asd,
12345678i,
687887,le33px,spring00,help123,bellybut,billy5,vitalik1,river123,gorila,bendis,power666,
747200,footslav,acehigh,qazxswedc123,q1a1z1,richard9,peterburg,tabletop,gavrilov,
123qwe1,kolosov,fredrau,run4fun,
789056,jkbvgbflf,chitra,
87654321q,steve22,wideopen,access88,surfe,tdfyutkbjy,impossib,kevin69,
880888,cantina,
887766,wxcvb,dontforg,qwer1209,asslicke,mamma123,indig,arkasha,scrapp,morelia,vehxbr,jones2,scratch1,cody11,cassie12,gerbera,dontgotm,underhil,maks2010,hollywood1,hanibal,elena2010,jason11,
1010321,stewar,elaman,fireplug,goodby,sacrific,babyphat,bobcat12,bruce123,
1233215,tony45,tiburo,love15,bmw750,wallstreet,
2h0t4me,
1346795,lamerz,munkee,
134679q,granvill,
1512198,armastus,aiden1,pipeutvj,g1234567,angeleyes,usmc1,
102030q,putangina,brandnew,shadowfax,eagles12,
1falcon,brianw,lokomoti,
2022958,scooper,pegas,jabroni1,
2121212,buffal,siffredi,wewiz,twotone,rosebudd,nightwis,carpet1,mickey2,
2525252,sleddog,red333,jamesm,
2797349,jeff12,onizuka,felixxxx,rf6666,fine1,ohlala,forplay,chicago5,muncho,scooby11,ptichka,johnnn,
19851985p,dogphil3650,totenkopf,monitor2,macross7,
3816778,dudder,semaj1,bounder,racerx1,
5556633,
7085506,ofclr278,brody1,
7506751,nantucke,hedj2n4q,drew1,aessedai,trekbike,pussykat,samatron,imani,
9124852,wiley1,dukenukem,iampurehaha2,
9556035,obvious1,mccool24,apache64,kravchenko,justforf,basura,jamese,s0ccer,safado,darksta,surfer69,damian1,gjpbnbd,gunny1,wolley,sananton,zxcvbn123456,odt4p6sv8,sergei1,modem1,mansikka,zzzz1,rifraf,dima777,mary69,looking4,donttell,red100,ninjutsu,uaeuaeman,bigbri,brasco,queenas8151,demetri,angel007,bubbl,kolort,conny,antonia1,avtoritet,kaka22,kailayu,sassy2,wrongway,chevy3,
1nascar,patriots1,chrisrey,mike99,sexy22,chkdsk,sd3utre7,padawan,a6pihd,doming,mesohorny,tamada,donatello,emma22,eather,susan69,pinky123,stud69,fatbitch,pilsbury,thc420,lovepuss,
1creativ,golf1234,hurryup,
1honda,huskerdu,marino1,gowron,girl1,fucktoy,gtnhjpfdjlcr,dkjfghdk,pinkfl,loreli,
7777777s,donkeykong,rockytop,staples1,sone4ka,xxxjay,flywheel,toppdogg,bigbubba,aaa123456,
2letmein,shavkat,paule,dlanor,adamas,
0147852,aassaa,dixon1,bmw328,mother12,ilikepussy,holly2,tsmith,excaliber,fhutynbyf,nicole3,tulipan,emanue,flyvholm,currahee,godsgift,antonioj,torito,dinky1,sanna,yfcnzvjz,june14,anime123,
123321456654,hanswurst,bandman,hello101,xxxyyy,chevy69,technica,tagada,arnol,v00d00,lilone,filles,drumandbass,dinamit,a1234a,eatmeat,elway07,inout,james6,dawid1,thewolf,diapason,yodaddy,qscwdv,fuckit1,liljoe,sloeber,simbacat,sascha1,qwe1234,
1badger,prisca,angel17,gravedig,jakeyboy,longboard,truskawka,golfer11,pyramid7,highspee,pistola,theriver,hammer69,
1packers,dannyd,alfonse,qwertgfdsa,
11119999,basket1,ghjtrn,saralee,
12inches,paolo1,zse4xdr5,taproot,sophieh6,grizzlie,hockey69,danang,biggums,hotbitch,
5alive,beloved1,bluewave,dimon95,koketka,multiscan,littleb,leghorn,poker2,delite,skyfir,bigjake,persona1,amberdog,hannah12,derren,ziffle,
1sarah,
1assword,sparky01,seymur,tomtom1,
123321qw,goskins,soccer19,luvbekki,bumhole,
2balls,
1muffin,borodin,monkey9,yfeiybrb,
1alex,betmen,freder,nigger123,azizbek,gjkzrjdf,lilmike,
1bigdadd,
1rock,taganrog,snappy1,andrey1,kolonka,bunyan,gomango,vivia,clarkkent,satur,gaudeamus,mantaray,
1month,whitehea,fargus,andrew99,ray123,redhawks,liza2009,qw12345,den12345,vfhnsyjdf,
147258369a,mazepa,newyorke,
1arsenal,hondas2000,demona,fordgt,steve12,birthday2,
12457896,dickster,edcwsxqaz,sahalin,pantyman,skinny1,hubertus,cumshot1,chiro,kappaman,mark3434,canada12,lichking,bonkers1,ivan1985,sybase,valmet,doors1,deedlit,kyjelly,bdfysx,ford11,throatfuck,backwood,fylhsq,lalit,boss429,kotova,bricky,steveh,joshua19,kissa,imladris,star1234,lubimka,partyman,crazyd,tobias1,ilike69,imhome,whome,fourstar,scanner1,ujhjl312,anatoli,
85bears,jimbo69,
5678ytr,potapova,nokia7070,sunday1,kalleank,
1996gta,refinnej,july1,molodec,nothanks,enigm,
12play,sugardog,nhfkbdfkb,larousse,cannon1,
144444,qazxcdew,stimorol,jhereg,spawn7,
143000,fearme,hambur,merlin21,dobie,is3yeusc,partner1,dekal,varsha,
478jfszk,flavi,hippo1,
9hmlpyjd,july21,
7imjfstw,lexxus,truelov,nokia5200,carlos6,anais,mudbone,anahit,taylorc,tashas,larkspur,animal2000,nibiru,jan123,miyvarxar,deflep,dolore,communit,ifoptfcor,laura2,anadrol,mamaliga,mitzi1,blue92,april15,matveev,kajlas,wowlook1,
1flowers,shadow14,alucard1,
1golf,bantha,scotlan,singapur,mark13,manchester1,telus01,superdav,jackoff1,madnes,bullnuts,world123,clitty,palmer1,david10,spider10,sargsyan,rattlers,david4,windows2,sony12,visigoth,qqqaaa,penfloor,cabledog,camilla1,natasha123,eagleman,softcore,bobrov,dietmar,divad,sss123,d1234567,tlbyjhju,
1q1q1q1,paraiso,dav123,lfiekmrf,drachen,lzhan16889,tplate,gfghbrf,casio1,
123boots1,
123test,sys64738,heavymetal,andiamo,meduza,soarer,coco12,negrita,amigas,heavymet,bespin,
1asdfghj,wharfrat,wetsex,tight1,janus1,sword123,ladeda,dragon98,austin2,atep1,jungle1,
12345abcd,lexus300,pheonix1,alex1974,
123qw123,
137955,bigtim,shadow88,igor1994,goodjob,arzen,champ123,
121ebay,changeme1,brooksie,frogman1,buldozer,morrowin,achim,trish1,lasse,festiva,bubbaman,scottb,kramit,august22,tyson123,passsword,oompah,al123456,fucking1,green45,noodle1,looking1,ashlynn,al1716,stang50,coco11,greese,bob111,brennan1,jasonj,
1cherry,
1q2345,
1xxxxxxx,fifa2011,brondby,zachar1,satyam,easy1,magic7,
1rainbow,cheezit,
1eeeeeee,ashley123,assass1,amanda123,jerbear,
1bbbbbb,azerty12,
15975391,
654321z,twinturb,onlyone1,denis1988,
6846kg3r,jumbos,pennydog,dandelion,haileris,epervier,snoopy69,afrodite,oldpussy,green55,poopypan,verymuch,katyusha,recon7,mine69,tangos,contro,blowme2,jade1,skydive1,fiveiron,dimo4ka,bokser,stargirl,fordfocus,tigers2,platina,baseball11,raque,pimper,jawbreak,buster88,walter34,chucko,penchair,horizon1,thecure1,scc1975,adrianna1,kareta,duke12,krille,dumbfuck,cunt1,aldebaran,laverda,harumi,knopfler,pongo1,pfhbyf,dogman1,rossigno,
1hardon,scarlets,nuggets1,ibelieve,akinfeev,xfhkbr,athene,falcon69,happie,billly,nitsua,fiocco,qwerty09,gizmo2,slava2,
125690,doggy123,craigs,vader123,silkeborg,
124365,peterm,
123978,krakatoa,
123699,
123592,kgvebmqy,pensacol,d1d2d3,snowstor,goldenboy,gfg65h7,ev700,church1,orange11,g0dz1ll4,chester3,acheron,cynthi,hotshot1,jesuschris,motdepass,zymurgy,one2one,fietsbel,harryp,wisper,pookster,nn527hp,dolla,milkmaid,rustyboy,terrell1,epsilon1,lillian1,dale3,crhbgrf,maxsim,selecta,mamada,fatman1,ufkjxrf,shinchan,fuckuall,women1,
000008,bossss,greta1,rbhjxrf,mamasboy,purple69,felicidade,sexy21,cathay,hunglow,splatt,kahless,shopping1,
1gandalf,themis,delta7,moon69,blue24,parliame,mamma1,miyuki,
2500hd,jackmeof,razer,rocker1,juvis123,noremac,boing747,
9z5ve9rrcz,icewater,titania,alley1,moparman,christo1,oliver2,vinicius,tigerfan,chevyy,joshua99,doda99,matrixx,ekbnrf,jackfrost,viper01,kasia,cnfhsq,triton1,ssbt8ae2,rugby8,ramman,
1lucky,barabash,ghtlfntkm,junaid,apeshit,enfant,kenpo1,shit12,
007000,marge1,shadow10,qwerty789,richard8,vbitkm,lostboys,jesus4me,richard4,hifive,kolawole,damilola,prisma,paranoya,prince2,lisaann,happyness,cardss,methodma,supercop,a8kd47v5,gamgee,polly123,irene1,number8,hoyasaxa,
1digital,matthew0,dclxvi,lisica,roy123,
2468013579,sparda,queball,vaffanculo,pass1wor,repmvbx,
999666333,freedom8,botanik,
777555333,marcos1,lubimaya,flash2,einstei,
08080,
123456789j,
159951159,
159357123,carrot1,alina1995,sanjos,dilara,mustang67,wisteria,jhnjgtl12,
98766789,darksun,arxangel,
87062134,creativ1,malyshka,fuckthemall,barsic,rocksta,
2big4u,
5nizza,genesis2,romance1,ofcourse,
1horse,latenite,cubana,sactown,
789456123a,milliona,
61808861,
57699434,imperia,bubba11,yellow3,change12,
55495746,flappy,jimbo123,
19372846,
19380018,cutlass1,craig123,klepto,beagle1,solus,
51502112,pasha1,
19822891,
46466452,
19855891,petshop,nikolaevna,
119966,nokia6131,evenpar,hoosier1,contrasena,jawa350,gonzo123,mouse2,
115511,eetfuk,gfhfvgfvgfv,
1crystal,sofaking,coyote1,kwiatuszek,fhrflbq,valeria1,anthro,
0123654789,alltheway,zoltar,maasikas,wildchil,fredonia,earlgrey,gtnhjczy,matrix123,solid1,slavko,
12monkeys,fjdksl,inter1,nokia6500,
59382113kevinp,spuddy,cachero,coorslit,password!,kiba1z,karizma,vova1994,chicony,english1,bondra12,
1rocket,hunden,jimbob1,zpflhjn1,th0mas,deuce22,meatwad,fatfree,congas,sambora,cooper2,janne,clancy1,stonie,busta,kamaz,speedy2,jasmine3,fahayek,arsenal0,beerss,trixie1,boobs69,luansantana,toadman,control2,ewing33,maxcat,mama1964,diamond4,tabaco,joshua0,piper2,music101,guybrush,reynald,pincher,katiebug,starrs,pimphard,frontosa,alex97,cootie,clockwor,belluno,skyeseth,booty69,chaparra,boochie,green4,bobcat1,havok,saraann,pipeman,aekdb,jumpshot,wintermu,chaika,
1chester,rjnjatq,emokid,reset1,regal1,j0shua,
134679a,asmodey,sarahh,zapidoo,ciccione,sosexy,beckham23,hornets1,alex1971,delerium,manageme,connor11,
1rabbit,sane4ek,caseyboy,cbljhjdf,redsox20,tttttt99,haustool,ander,pantera6,passwd1,journey1,
9988776655,blue135,writerspace,xiaoyua123,justice2,niagra,cassis,scorpius,bpgjldsgjldthnf,gamemaster,bloody1,retrac,stabbin,toybox,fight1,ytpyf.,glasha,va2001,taylor11,shameles,ladylove,
10078,karmann,rodeos,eintritt,lanesra,tobasco,jnrhjqcz,navyman,pablit,leshka,jessica3,
123vika,alena1,platinu,ilford,storm7,undernet,sasha777,
1legend,anna2002,kanmax1994,porkpie,thunder0,gundog,pallina,easypass,duck1,supermom,roach1,twincam,
14028,tiziano,qwerty32,
123654789a,evropa,shampoo1,yfxfkmybr,cubby1,tsunami1,fktrcttdf,yasacrac,
17098,happyhap,bullrun,rodder,oaktown,holde,isbest,taylor9,reeper,hammer11,julias,rolltide1,compaq123,fourx4,subzero1,hockey9,
7mary3,busines,ybrbnjcbr,wagoneer,danniash,portishead,digitex,alex1981,david11,infidel,
1snoopy,free30,jaden,tonto1,redcar27,footie,moskwa,thomas21,hammer12,burzum,cosmo123,
50000,burltree,
54343,
54354,vwpassat,jack5225,cougars1,burlpony,blackhorse,alegna,petert,katemoss,ram123,nels0n,ferrina,angel77,cstock,
1christi,dave55,abc123a,alex1975,av626ss,flipoff,folgore,max1998,science1,si711ne,yams7,wifey1,sveiks,cabin1,volodia,ox3ford,cartagen,platini,picture1,sparkle1,tiedomi,service321,wooody,christi1,gnasher,brunob,hammie,iraffert,bot2010,dtcyeirf,
1234567890p,cooper11,alcoholi,savchenko,adam01,chelsea5,niewiem,icebear,lllooottt,ilovedick,sweetpus,money8,cookie13,rfnthbyf1988,booboo2,angus123,blockbus,david9,chica1,nazaret,samsung9,smile4u,daystar,skinnass,john10,thegirl,sexybeas,wasdwasd1,sigge1,
1qa2ws3ed4rf5tg,czarny,ripley1,chris5,ashley19,anitha,pokerman,prevert,trfnthby,tony69,georgia2,stoppedb,qwertyuiop12345,miniclip,franky1,durdom,cabbages,
1234567890o,delta5,liudmila,nhfycajhvths,court1,josiew,abcd1,doghead,diman,masiania,songline,boogle,triston,deepika,sexy4me,grapple,spacebal,ebonee,winter0,smokewee,nargiza,dragonla,sassys,andy2000,menards,yoshio,massive1,suckmy1k,passat99,sexybo,nastya1996,isdead,stratcat,hokuto,infix,pidoras,daffyduck,cumhard,baldeagl,kerberos,yardman,shibainu,guitare,cqub6553,tommyy,bk.irf,bigfoo,hecto,july27,james4,biggus,esbjerg,isgod,
1irish,phenmarr,jamaic,roma1990,diamond0,yjdbrjd,girls4me,tampa1,kabuto,vaduz,hanse,spieng,dianochka,csm101,lorna1,ogoshi,plhy6hql,
2wsx4rfv,cameron0,adebayo,oleg1996,sharipov,bouboule,hollister1,frogss,yeababy,kablam,adelante,memem,howies,thering,cecilia1,onetwo12,ojp123456,jordan9,msorcloledbr,neveraga,evh5150,redwin,
1august,canno,
1mercede,moody1,mudbug,chessmas,tiikeri,stickdaddy77,alex15,kvartira,
7654321a,lollol123,qwaszxedc,algore,solana,vfhbyfvfhbyf,blue72,misha1111,smoke20,junior13,mogli,threee,shannon2,fuckmylife,kevinh,saransk,karenw,isolde,sekirarr,orion123,thomas0,debra1,laketaho,alondra,curiva,jazz1234,
1tigers,jambos,lickme2,suomi,gandalf7,
028526,zygote,brett123,br1ttany,supafly,
159000,kingrat,luton1,cool-ca,bocman,thomasd,skiller,katter,mama777,chanc,tomass,
1rachel,oldno7,rfpfyjdf,bigkev,yelrah,primas,osito,kipper1,msvcr71,bigboy11,thesun,noskcaj,chicc,sonja1,lozinka,mobile1,
1vader,ummagumma,waves1,punter12,tubgtn,server1,irina1991,magic69,dak001,pandemonium,dead1,berlingo,cherrypi,
1montana,lohotron,chicklet,asdfgh123456,stepside,ikmvw103,icebaby,trillium,
1sucks,ukrnet,glock9,ab12345,thepower,robert8,thugstools,hockey13,buffon,livefree,sexpics,dessar,ja0000,rosenrot,james10,
1fish,svoloch,mykitty,muffin11,evbukb,shwing,artem1992,andrey1992,sheldon1,passpage,nikita99,fubar123,vannasx,eight888,marial,max2010,express2,violentj,
2ykn5ccf,spartan11,brenda69,jackiech,abagail,robin2,grass1,andy76,bell1,taison,superme,vika1995,xtr451,fred20,
89032073168,denis1984,
2000jeep,weetabix,
199020,daxter,tevion,panther8,h9iymxmc,bigrig,kalambur,tsalagi,
12213443,racecar02,jeffrey4,nataxa,bigsam,purgator,acuracl,troutbum,potsmoke,jimmyz,manutd1,nytimes,pureevil,bearss,cool22,dragonage,nodnarb,dbrbyu,
4seasons,freude,elric1,werule,hockey14,
12758698,corkie,yeahright,blademan,tafkap,clave,liziko,hofner,jeffhardy,nurich,runne,stanisla,lucy1,monk3y,forzaroma,eric99,bonaire,blackwoo,fengshui,
1qaz0okm,newmoney,pimpin69,
07078,anonymer,laptop1,cherry12,ace111,salsa1,wilbur1,doom12,diablo23,jgtxzbhr,under1,honda01,breadfan,megan2,juancarlos,stratus1,ackbar,love5683,happytim,lambert1,cbljhtyrj,komarov,spam69,nfhtkrf,brownn,sarmat,ifiksr,spike69,hoangen,angelz,economia,tanzen,avogadro,
1vampire,spanners,mazdarx,queequeg,oriana,hershil,sulaco,joseph11,
8seconds,aquariu,cumberla,heather9,anthony8,burton12,crystal0,maria3,qazwsxc,snow123,notgood,
198520,raindog,heehaw,consulta,dasein,miller01,cthulhu1,dukenuke,iubire,baytown,hatebree,
198505,sistem,lena12,welcome01,maraca,middleto,sindhu,mitsou,phoenix5,vovan,donaldo,dylandog,domovoy,lauren12,byrjuybnj,
123llll,stillers,sanchin,tulpan,smallvill,
1mmmmm,patti1,folgers,mike31,colts18,
123456rrr,njkmrjz,phoenix0,biene,ironcity,kasperok,password22,fitnes,matthew6,spotligh,bujhm123,tommycat,hazel5,guitar11,
145678,vfcmrf,compass1,willee,
1barney,jack2000,littleminge,shemp,derrek,xxx12345,littlefuck,spuds1,karolinka,camneely,qwertyu123,
142500,brandon00,munson15,falcon3,passssap,z3cn2erv,goahead,baggio10,
141592,denali1,
37kazoo,copernic,
123456789asd,orange88,bravada,rush211,
197700,pablo123,uptheass,samsam1,demoman,mattylad10,heydude,mister2,werken,
13467985,marantz,a22222,f1f2f3f4,fm12mn12,gerasimova,burrito1,sony1,glenny,baldeagle,rmfidd,fenomen,verbati,forgetme,
5element,wer138,chanel1,ooicu812,
10293847qp,minicooper,chispa,myturn,deisel,vthrehbq,boredboi4u,filatova,anabe,poiuyt1,barmalei,yyyy1,fourkids,naumenko,bangbros,pornclub,okaykk,euclid90,warrior3,kornet,palevo,patatina,gocart,antanta,jed1054,clock1,
111111w,dewars,mankind1,peugeot406,liten,tahira,howlin,naumov,rmracing,corone,cunthole,passit,rock69,jaguarxj,bumsen,
197101,sweet2,
197010,whitecat,sawadee,money100,yfhrjnbrb,andyboy,
9085603566,trace1,fagget,robot1,angel20,
6yhn7ujm,specialinsta,kareena,newblood,chingada,boobies2,bugger1,squad51,
133andre,call06,ashes1,ilovelucy,success2,kotton,cavalla,philou,deebee,theband,nine09,artefact,
196100,kkkkkkk1,nikolay9,onelov,basia,emilyann,sadman,fkrjujkbr,teamomuch,david777,padrino,money21,firdaus,orion3,chevy01,albatro,erdfcv,
2legit,sarah7,torock,kevinn,holio,soloy,enron714,starfleet,qwer11,neverman,doctorwh,lucy11,dino12,trinity7,seatleon,o123456,pimpman,
1asdfgh,snakebit,chancho,prorok,bleacher,ramire,darkseed,warhorse,michael123,
1spanky,
1hotdog,
34erdfcv,n0th1ng,dimanche,repmvbyf,michaeljackson,login1,icequeen,toshiro,sperme,racer2,veget,birthday26,daniel9,lbvekmrf,charlus,bryan123,wspanic,schreibe,
1andonly,dgoins,kewell,apollo12,egypt1,fernie,tiger21,aa123456789,blowj,spandau,bisquit,
12345678d,deadmau5,fredie,
311420,happyface,samant,gruppa,filmstar,andrew17,bakesale,sexy01,justlook,cbarkley,paul11,bloodred,rideme,birdbath,nfkbcvfy,jaxson,sirius1,kristof,virgos,nimrod1,hardc0re,killerbee,
1abcdef,pitcher1,justonce,vlada,dakota99,vespucci,wpass,outside1,puertori,rfvbkf,teamlosi,vgfun2,porol777,empire11,
20091989q,jasong,webuivalidat,escrima,lakers08,trigger2,addpass,
342500,mongini,dfhtybr,horndogg,palermo1,
136900,babyblu,alla98,dasha2010,jkelly,kernow,yfnecz,rockhopper,toeman,tlaloc,silver77,dave01,kevinr,
1234567887654321,
135642,me2you,
8096468644q,remmus,spider7,jamesa,jilly,samba1,drongo,
770129ji,supercat,juntas,tema1234,esthe,
1234567892000,drew11,qazqaz123,beegees,blome,rattrace,howhigh,tallboy,rufus2,sunny2,sou812,miller12,indiana7,irnbru,patch123,letmeon,welcome5,nabisco,
9hotpoin,hpvteb,lovinit,stormin,assmonke,trill,atlanti,money1234,cubsfan,mello1,stars2,ueptkm,agate,dannym88,lover123,wordz,worldnet,julemand,chaser1,s12345678,pissword,cinemax,woodchuc,point1,hotchkis,packers2,bananana,kalender,
420666,penguin8,awo8rx3wa8t,hoppie,metlife,ilovemyfamily,weihnachtsbau,pudding1,luckystr,scully1,fatboy1,amizade,dedham,jahbless,blaat,surrende,****er,
1panties,bigasses,ghjuhfvbcn,asshole123,dfktyrb,likeme,nickers,plastik,hektor,deeman,muchacha,cerebro,santana5,testdrive,dracula1,canalc,l1750sq,savannah1,murena,
1inside,pokemon00,
1iiiiiii,jordan20,sexual1,mailliw,calipso,
014702580369,
1zzzzzz,
1jjjjjj,break1,
15253545,yomama1,katinka,kevin11,
1ffffff,martijn,sslazio,daniel5,porno2,nosmas,leolion,jscript,
15975312,pundai,kelli1,kkkddd,obafgkm,marmaris,lilmama,london123,rfhfnt,elgordo,talk87,daniel7,thesims3,
444111,bishkek,afrika2002,toby22,
1speedy,daishi,
2children,afroman,qqqqwwww,oldskool,hawai,v55555,syndicat,pukimak,fanatik,tiger5,parker01,bri5kev6,timexx,wartburg,love55,ecosse,yelena03,madinina,highway1,uhfdbwfgf,karuna,buhjvfybz,wallie,
46and2,khalif,europ,qaz123wsx456,bobbybob,wolfone,falloutboy,manning18,scuba10,schnuff,ihateyou1,lindam,sara123,popcor,fallengun,divine1,montblanc,qwerty8,rooney10,roadrage,bertie1,latinus,lexusis,rhfvfnjhcr,opelgt,hitme,agatka,
1yamaha,dmfxhkju,imaloser,michell1,sb211st,silver22,lockedup,andrew9,monica01,sassycat,dsobwick,tinroof,ctrhtnyj,bultaco,rhfcyjzhcr,aaaassss,
14ss88,joanne1,momanddad,ahjkjdf,yelhsa,zipdrive,telescop,
500600,
1sexsex,facial1,motaro,
511647,stoner1,temujin,elephant1,greatman,honey69,kociak,ukqmwhj6,altezza,cumquat,zippos,kontiki,
123max,altec1,bibigon,tontos,qazsew,nopasaran,militar,supratt,oglala,kobayash,agathe,yawetag,dogs1,cfiekmrf,megan123,jamesdea,porosenok,tiger23,berger1,hello11,seemann,stunner1,walker2,imissu,jabari,minfd,lollol12,hjvfy,
1-oct,stjohns,
2278124q,
123456789qwer,alex1983,glowworm,chicho,mallards,bluedevil,explorer1,
543211,casita,
1time,lachesis,alex1982,airborn1,dubesor,changa,lizzie1,captaink,socool,bidule,march23,
1861brr,k.ljxrf,watchout,fotze,
1brian,keksa2,aaaa1122,matrim,providian,privado,dreame,merry1,aregdone,davidt,nounour,twenty2,play2win,artcast2,zontik,
552255,shit1,sluggy,
552861,dr8350,brooze,alpha69,thunder6,kamelia2011,caleb123,mmxxmm,jamesh,lfybkjd,
125267,
125000,
124536,bliss1,dddsss,indonesi,bob69,
123888,tgkbxfgy,gerar,themack,hijodeputa,good4now,ddd123,clk430,kalash,tolkien1,
132forever,blackb,whatis,s1s2s3s4,lolkin09,yamahar,
48n25rcc,djtiesto,
111222333444555,bigbull,blade55,coolbree,kelse,ichwill,yamaha12,sakic,bebeto,katoom,donke,sahar,wahine,
645202,god666,berni,starwood,june15,sonoio,time123,llbean,deadsoul,lazarev,cdtnf,ksyusha,madarchod,technik,jamesy,
4speed,tenorsax,legshow,yoshi1,chrisbl,
44e3ebda,trafalga,heather7,serafima,favorite4,havefun1,wolve,
55555r,james13,nosredna,bodean,jlettier,borracho,mickael,marinus,brutu,sweet666,kiborg,rollrock,jackson6,macross1,ousooner,
9085084232,takeme,
123qwaszx,firedept,vfrfhjd,jackfros,
123456789000,briane,cookie11,baby22,bobby18,gromova,systemofadown,martin01,silver01,pimaou,darthmaul,hijinx,commo,chech,skyman,sunse,
2vrd6,vladimirovna,uthvfybz,nicole01,kreker,bobo1,v123456789,erxtgb,meetoo,drakcap,vfvf12,misiek1,butane,network2,flyers99,riogrand,jennyk,e12345,spinne,avalon11,lovejone,studen,maint,porsche2,qwerty100,chamberl,bluedog1,sungam,just4u,andrew23,summer22,ludic,musiclover,aguil,beardog1,libertin,pippo1,joselit,patito,bigberth,digler,sydnee,jockstra,poopo,jas4an,nastya123,profil,fuesse,default1,titan2,mendoz,kpcofgs,anamika,brillo021,bomberman,guitar69,latching,
69pussy,blues2,phelge,ninja123,m7n56xo,qwertasd,alex1976,cunningh,estrela,gladbach,marillion,mike2000,
258046,bypop,muffinman,kd5396b,zeratul,djkxbwf,john77,sigma2,
1linda,selur,reppep,quartz1,teen1,freeclus,spook1,kudos4ever,clitring,sexiness,blumpkin,macbook,tileman,centra,escaflowne,pentable,shant,grappa,zverev,
1albert,lommerse,coffee11,
777123,polkilo,muppet1,alex74,lkjhgfdsazx,olesica,april14,ba25547,souths,jasmi,arashi,smile2,
2401pedro,mybabe,alex111,quintain,pimp1,tdeir8b2,makenna,
122333444455555,%e2%
82%ac,tootsie1,pass111,zaqxsw123,gkfdfybt,cnfnbcnbrf,usermane,iloveyou12,hard69,osasuna,firegod,arvind,babochka,kiss123,cookie123,julie123,kamakazi,dylan2,
223355,tanguy,nbhtqa,tigger13,tubby1,makavel,asdflkj,sambo1,mononoke,mickeys,gayguy,win123,green33,wcrfxtvgbjy,bigsmall,
1newlife,clove,babyfac,bigwaves,mama1970,shockwav,
1friday,bassey,yarddog,codered1,victory7,bigrick,kracker,gulfstre,chris200,sunbanna,bertuzzi,begemotik,kuolema,pondus,destinee,
123456789zz,abiodun,flopsy,amadeusptfcor,geronim,yggdrasi,contex,daniel6,suck1,adonis1,moorea,el345612,f22raptor,moviebuf,raunchy,
6043dkf,zxcvbnm123456789,eric11,deadmoin,ratiug,nosliw,fannies,danno,
888889,blank1,mikey2,gullit,thor99,mamiya,ollieb,thoth,dagger1,websolutionssu,bonker,prive,
1346798520,
03038,q1234q,mommy2,contax,zhipo,gwendoli,gothic1,
1234562000,lovedick,gibso,digital2,space199,b26354,
987654123,golive,serious1,pivkoo,better1,
824358553,
794613258,nata1980,logout,fishpond,buttss,squidly,good4me,redsox19,jhonny,zse45rdx,matrixxx,honey12,ramina,
213546879,motzart,fall99,newspape,killit,gimpy,photowiz,olesja,thebus,marco123,
147852963,bedbug,
147369258,hellbound,gjgjxrf,
123987456,lovehurt,five55,hammer01,
1234554321a,alina2011,peppino,ang238,questor,
112358132,alina1994,alina1998,money77,bobjones,aigerim,cressida,madalena,
420smoke,tinchair,raven13,mooser,mauric,lovebu,adidas69,krypton1,
1111112,loveline,divin,voshod,michaelm,cocotte,gbkbuhbv,
76689295,kellyj,rhonda1,sweetu70,steamforums,geeque,nothere,
124c41,quixotic,steam181,
1169900,rfcgthcrbq,rfvbkm,sexstuff,
1231230,djctvm,rockstar1,fulhamfc,bhecbr,rfntyf,quiksilv,
56836803,jedimaster,pangit,gfhjkm777,tocool,
1237654,stella12,
55378008,
19216811,potte,fender12,mortalkombat,ball1,nudegirl,palace22,rattrap,debeers,lickpussy,jimmy6,not4u2c,wert12,bigjuggs,sadomaso,
1357924,
312mas,laser123,arminia,branford,coastie,mrmojo,
19801982,scott11,banaan123,ingres,
300zxtt,hooters6,sweeties,
19821983,
19831985,
19833891,sinnfein,welcome4,winner69,killerman,tachyon,tigre1,nymets1,kangol,martinet,sooty1,
19921993,
789qwe,harsingh,
1597535,thecount,phantom3,
36985214,lukas123,
117711,pakistan1,madmax11,willow01,
19932916,fucker12,flhrci,opelagila,theword,ashley24,tigger3,crazyj,rapide,deadfish,allana,
31359092,sasha1993,sanders2,discman,zaq!
2wsx,boilerma,mickey69,jamesg,babybo,jackson9,orion7,alina2010,indien,breeze1,atease,warspite,bazongaz,
1celtic,asguard,mygal,fitzgera,
1secret,duke33,cyklone,dipascuc,potapov,
1escobar2,c0l0rad0,kki177hk,
1little,macondo,victoriya,peter7,red666,winston6,kl?benhavn,muneca,jackme,jennan,happylife,am4h39d8nh,bodybuil,
201980,dutchie,biggame,lapo4ka,rauchen,black10,flaquit,water12,
31021364,command2,lainth88,mazdamx5,typhon,colin123,rcfhlfc,qwaszx11,g0away,ramir,diesirae,hacked1,cessna1,woodfish,enigma2,pqnr67w5,odgez8j3,grisou,hiheels,
5gtgiaxm,
2580258,ohotnik,transits,quackers,serjik,makenzie,mdmgatew,bryana,superman12,melly,lokit,thegod,slickone,fun4all,netpass,penhorse,
1cooper,nsync,asdasd22,otherside,honeydog,herbie1,chiphi,proghouse,l0nd0n,shagg,select1,frost1996,casper123,countr,magichat,greatzyo,jyothi,
3bears,thefly,nikkita,fgjcnjk,nitros,hornys,san123,lightspe,maslova,kimber1,newyork2,spammm,mikejone,pumpk1n,bruiser1,bacons,prelude9,boodie,dragon4,kenneth2,love98,power5,yodude,pumba,thinline,blue30,sexxybj,
2dumb2live,matt21,forsale,
1carolin,innova,ilikeporn,rbgtkjd,a1s2d3f,wu9942,ruffus,blackboo,qwerty999,draco1,marcelin,hideki,gendalf,trevon,saraha,cartmen,yjhbkmcr,time2go,fanclub,ladder1,chinni,
6942987,united99,lindac,quadra,paolit,mainstre,beano002,lincoln7,bellend,anomie,
8520456,bangalor,goodstuff,chernov,stepashka,gulla,mike007,frasse,harley03,omnislash,
8538622,maryjan,sasha2011,gineok,
8807031,hornier,gopinath,princesit,bdr529,godown,bosslady,hakaone,
1qwe2,madman1,joshua11,lovegame,bayamon,jedi01,stupid12,sport123,aaa666,tony44,collect1,charliem,chimaira,cx18ka,trrim777,chuckd,thedream,redsox99,goodmorning,delta88,iloveyou11,newlife2,figvam,chicago3,jasonk,
12qwer,
9875321,lestat1,satcom,conditio,capri50,sayaka,
9933162,trunks1,chinga,snooch,alexand1,findus,poekie,cfdbyf,kevind,mike1969,fire13,leftie,bigtuna,chinnu,silence1,celos1,blackdra,alex24,gfgfif,
2boobs,happy8,enolagay,sataniv1993,turner1,dylans,peugeo,sasha1994,hoppel,conno,moonshot,santa234,meister1,
008800,hanako,tree123,qweras,gfitymrf,reggie31,august29,supert,joshua10,akademia,gbljhfc,zorro123,nathalia,redsox12,hfpdjl,mishmash,nokiae51,nyyankees,tu190022,strongbo,none1,not4u2no,katie2,popart,harlequi,santan,michal1,
1therock,screwu,csyekmrf,olemiss1,tyrese,hoople,sunshin1,cucina,starbase,topshelf,fostex,california1,castle1,symantec,pippolo,babare,turntabl,
1angela,moo123,ipvteb,gogolf,alex88,cycle1,maxie1,phase2,selhurst,furnitur,samfox,fromvermine,shaq34,gators96,captain2,delonge,tomatoe,bisous,zxcvbnma,glacius,pineapple1,cannelle,ganibal,mko09ijn,paraklast1974,hobbes12,petty43,artema,junior8,mylover,
1234567890d,fatal1ty,prostreet,peruan,
10020,nadya,caution1,marocas,chanel5,summer08,metal123,
111lox,scrapy,thatguy,eddie666,washingto,yannis,minnesota_hp,lucky4,playboy6,naumova,azzurro,patat,dale33,pa55wd,speedster,zemanova,saraht,newto,tony22,qscesz,arkady,
1oliver,death6,vkfwx046,antiflag,stangs,jzf7qf2e,brianp,fozzy,cody123,startrek1,yoda123,murciela,trabajo,lvbnhbtdf,canario,fliper,adroit,henry5,goducks,papirus,alskdj,soccer6,
88mike,gogetter,tanelorn,donking,marky1,leedsu,badmofo,al1916,wetdog,akmaral,pallet,april24,killer00,nesterova,rugby123,coffee12,browseui,ralliart,paigow,calgary1,armyman,vtldtltd,frodo2,frxtgb,iambigal,benno,jaytee,
2hot4you,askar,bigtee,brentwoo,palladin,eddie2,al1916w,horosho,entrada,ilovetits,venture1,dragon19,jayde,chuvak,jamesl,fzr600,brandon8,vjqvbh,snowbal,snatch1,bg6njokf,pudder,karolin,candoo,pfuflrf,satchel1,manteca,khongbiet,critter1,partridg,skyclad,bigdon,ginger69,brave1,anthony4,spinnake,chinadol,passout,cochino,nipples1,
15058,lopesk,sixflags,lloo999,parkhead,breakdance,cia123,fidodido,yuitre12,fooey,artem1995,gayathri,medin,nondriversig,l12345,bravo7,happy13,kazuya,camster,alex1998,luckyy,zipcode,dizzle,boating1,opusone,newpassw,movies23,kamikazi,zapato,bart316,cowboys0,corsair1,kingshit,hotdog12,rolyat,h200svrm,qwerty4,boofer,rhtyltkm,chris999,vaz21074,simferopol,pitboss,love3,britania,tanyshka,brause,
123qwerty123,abeille,moscow1,ilkaev,manut,process1,inetcfg,dragon05,fortknox,castill,rynner,mrmike,koalas,jeebus,stockpor,longman,juanpabl,caiman,roleplay,jeremi,
26058,prodojo,
002200,magical1,black5,bvlgari,doogie1,cbhtqa,mahina,a1s2d3f4g5h6,jblpro,usmc01,bismilah,guitar01,april9,santana1,
1234aa,monkey14,sorokin,evan1,doohan,animalsex,pfqxtyjr,dimitry,catchme,chello,silverch,glock45,dogleg,litespee,nirvana9,peyton18,alydar,warhamer,iluvme,sig229,minotavr,lobzik,jack23,bushwack,onlin,football123,joshua5,federov,winter2,bigmax,fufnfrhbcnb,hfpldfnhb,
1dakota,f56307,chipmonk,
4nick8,praline,vbhjh123,king11,
22tango,gemini12,street1,
77879,doodlebu,homyak,
165432,chuluthu,trixi,karlito,salom,reisen,cdtnkzxjr,pookie11,tremendo,shazaam,welcome0,
00000ty,peewee51,pizzle,gilead,bydand,sarvar,upskirt,legends1,freeway1,teenfuck,ranger9,darkfire,dfymrf,hunt0802,justme1,buffy1ma,
1harry,
671fsa75yt,burrfoot,budster,pa437tu,jimmyp,alina2006,malacon,charlize,elway1,free12,summer02,gadina,manara,gomer1,
1cassie,sanja,kisulya,money3,pujols,ford50,midiland,turga,orange6,demetriu,freakboy,orosie1,radio123,open12,vfufpby,mustek,chris33,animes,meiling,nthtvjr,jasmine9,gfdkjd,oligarh,marimar,chicago9,.kzirf,bugssgub,samuraix,jackie01,pimpjuic,macdad,cagiva,vernost,willyboy,fynjyjdf,tabby1,privet123,torres9,retype,blueroom,raven11,q12we3,alex1989,bringiton,ridered,kareltje,ow8jtcs8t,ciccia,goniners,countryb,
24688642,covingto,
24861793,beyblade,vikin,badboyz,wlafiga,walstib,mirand,needajob,chloes,balaton,kbpfdtnf,freyja,bond9007,gabriel12,stormbri,hollage,love4eve,fenomeno,darknite,dragstar,kyle123,milfhunter,ma123123123,samia,ghislain,enrique1,ferien12,xjy6721,natalie2,reglisse,wilson2,wesker,rosebud7,amazon1,robertr,roykeane,xtcnth,mamatata,crazyc,mikie,savanah,blowjob69,jackie2,forty1,
1coffee,fhbyjxrf,bubbah,goteam,hackedit,risky1,logoff,h397pnvr,buck13,robert23,bronc,st123st,godflesh,pornog,iamking,cisco69,septiembr,dale38,zhongguo,tibbar,panther9,buffa1,bigjohn1,mypuppy,vehvfycr,april16,shippo,fire1234,green15,q123123,gungadin,steveg,olivier1,chinaski,magnoli,faithy,storm12,toadfrog,paul99,
78791,august20,automati,squirtle,cheezy,positano,burbon,nunya,llebpmac,kimmi,turtle2,alan123,prokuror,violin1,durex,pussygal,visionar,trick1,chicken6,
29024,plowboy,rfybreks,imbue,sasha13,wagner1,vitalogy,cfymrf,thepro,
26028,gorbunov,dvdcom,letmein5,duder,fastfun,pronin,libra1,conner1,harley20,stinker1,
20068,
20038,amitech,syoung,dugway,
18068,welcome7,jimmypag,anastaci,kafka1,pfhfnecnhf,catsss,campus100,shamal,nacho1,fire12,vikings2,brasil1,rangerover,mohamma,peresvet,
14058,cocomo,aliona,
14038,qwaser,vikes,cbkmdf,skyblue1,ou81234,goodlove,dfkmltvfh,
108888,roamer,pinky2,static1,zxcv4321,barmen,rock22,shelby2,morgans,
1junior,pasword1,logjam,fifty5,nhfrnjhbcn,chaddy,philli,nemesis2,ingenier,djkrjd,ranger3,aikman8,knothead,daddy69,love007,vsythb,ford350,tiger00,renrut,owen11,energy12,march14,alena123,robert19,carisma,orange22,murphy11,podarok,prozak,kfgeirf,wolf13,lydia1,shazza,parasha,akimov,tobbie,pilote,heather4,baster,leones,gznfxjr,megama,
987654321g,bullgod,boxster1,minkey,wombats,vergil,colegiata,lincol,smoothe,pride1,carwash1,latrell,bowling3,fylhtq123,pickwick,eider,bubblebox,bunnies1,loquit,slipper1,nutsac,purina,xtutdfhf,plokiju,
1qazxs,uhjpysq,zxcvbasdfg,enjoy1,
1pumpkin,phantom7,mama22,swordsma,wonderbr,dogdays,milker,u23456,silvan,dfkthbr,slagelse,yeahman,twothree,boston11,wolf100,dannyg,troll1,fynjy123,ghbcnfd,bftest,ballsdeep,bobbyorr,alphasig,cccdemo,fire123,norwest,claire2,august10,lth1108,problemas,sapito,alex06,
1rusty,maccom,goirish1,ohyes,bxdumb,nabila,boobear1,rabbit69,princip,alexsander,travail,chantal1,dogggy,greenpea,diablo69,alex2009,bergen09,petticoa,classe,ceilidh,vlad2011,kamakiri,lucidity,qaz321,chileno,cexfhf,
99ranger,mcitra,estoppel,volvos60,carter80,webpass,temp12,touareg,fcgbhby,bubba8,sunitha,
200190ru,bitch2,shadow23,iluvit,nicole0,ruben1,nikki69,butttt,shocker1,souschef,lopotok01,kantot,corsano,cfnfyf,riverat,makalu,swapna,all4u9,cdtnkfy,ntktgepbr,ronaldo99,thomasj,bmw540i,chrisw,boomba,open321,z1x2c3v4b5n6m7,gaviota,iceman44,frosya,chris100,chris24,cosette,clearwat,micael,boogyman,pussy9,camus1,chumpy,heccrbq,konoplya,chester8,scooter5,ghjgfufylf,giotto,koolkat,zero000,bonita1,ckflrbq,j1964,mandog,
18n28n24a,renob,head1,shergar,ringo123,tanita,sex4free,johnny12,halberd,reddevils,biolog,dillinge,fatb0y,c00per,hyperlit,wallace2,spears1,vitamine,buheirf,sloboda,alkash,mooman,marion1,arsenal7,sunder,nokia5610,edifier,pippone,fyfnjkmtdbx,fujimo,pepsi12,kulikova,bolat,duetto,daimon,maddog01,timoshka,ezmoney,desdemon,chesters,aiden,hugues,patrick5,aikman08,robert4,roenick,nyranger,writer1,
36169544,foxmulder,
118801,kutter,shashank,jamjar,
118811,
119955,aspirina,dinkus,
1sailor,nalgene,
19891959,snarf,allie1,cracky,resipsa,
45678912,kemerovo,
19841989,netware1,alhimik,
19801984,nicole123,
19761977,
51501984,malaka1,montella,peachfuz,jethro1,cypress1,henkie,holdon,esmith,
55443322,
1friend,quique,bandicoot,statistika,great123,death13,ucht36,master4,
67899876,bobsmith,nikko1,jr1234,hillary1,
78978978,rsturbo,lzlzdfcz,bloodlust,shadow00,skagen,bambina,yummies,
88887777,
91328378,matthew4,itdoes,
98256518,
102938475,alina2002,
123123789,fubared,dannys,
123456321,nikifor,suck69,newmexico,scubaman,rhbcnb,fifnfy,puffdadd,
159357852,dtheyxbr,theman22,
212009164,prohor,shirle,nji90okm,newmedia,goose5,roma1995,letssee,iceman11,aksana,wirenut,pimpdady,
1212312121,tamplier,pelican1,domodedovo,
1928374655,fiction6,duckpond,ybrecz,thwack,onetwo34,gunsmith,murphydo,fallout1,spectre1,jabberwo,jgjesq,turbo6,bobo12,redryder,blackpus,elena1971,danilova,antoin,bobo1234,bobob,bobbobbo,dean1,
222222a,jesusgod,matt23,musical1,darkmage,loppol,werrew,josepha,rebel12,toshka,gadfly,hawkwood,alina12,dnomyar,sexaddict,dangit,cool23,yocrack,archimed,farouk,nhfkzkz,lindalou,
111zzzzz,ghjatccjh,wethepeople,m123456789,wowsers,kbkbxrf,bulldog5,m_roesel,sissinit,yamoon6,
123ewqasd,dangel,miruvor79,kaytee,falcon7,bandit11,dotnet,dannii,arsenal9,miatamx5,
1trouble,strip4me,dogpile,sexyred1,rjdfktdf,google10,shortman,crystal7,awesome123,cowdog,haruka,birthday28,jitter,diabolik,boomer12,dknight,bluewate,hockey123,crm0624,blueboys,willy123,jumpup,google2,cobra777,llabesab,vicelord,hopper1,gerryber,remmah,j10e5d4,qqqqqqw,agusti,fre_ak8yj,nahlik,redrobin,scott3,epson1,dumpy,bundao,aniolek,hola123,jergens,itsasecret,maxsam,bluelight,mountai1,bongwater,
1london,pepper14,freeuse,dereks,qweqw,fordgt40,rfhfdfy,raider12,hunnybun,compac,splicer,megamon,tuffgong,gymnast1,butter11,modaddy,wapbbs_1,dandelio,soccer77,ghjnbdjcnjzybt,
123xyi2,fishead,x002tp00,whodaman,
555aaa,oussama,brunodog,technici,pmtgjnbl,qcxdw8ry,schweden,redsox3,throbber,collecto,japan10,dbm123dm,hellhoun,tech1,deadzone,kahlan,wolf123,dethklok,xzsawq,bigguy1,cybrthc,chandle,buck01,qq123123,secreta,williams1,c32649135,delta12,flash33,
123joker,spacejam,polopo,holycrap,daman1,tummybed,financia,nusrat,euroline,magicone,jimkirk,ameritec,daniel26,sevenn,topazz,kingpins,dima1991,macdog,spencer5,oi812,geoffre,music11,baffle,
123569,usagi,cassiope,polla,lilcrowe,thecakeisalie,vbhjndjhtw,vthokies,oldmans,sophie01,ghoster,penny2,
129834,locutus1,meesha,magik,jerry69,daddysgirl,irondesk,andrey12,jasmine123,vepsrfyn,likesdick,
1accord,jetboat,grafix,tomuch,showit,protozoa,mosias98,taburetka,blaze420,esenin,anal69,zhv84kv,puissant,charles0,aishwarya,babylon6,bitter1,lenina,raleigh1,lechat,access01,kamilka,fynjy,sparkplu,daisy3112,choppe,zootsuit,
1234567j,rubyrose,gorilla9,nightshade,alternativa,cghfdjxybr,snuggles1,
10121v,vova1992,leonardo1,dave2,matthewd,vfhfnbr,
1986mets,nobull,bacall,mexican1,juanjo,mafia1,boomer22,soylent,edwards1,jordan10,blackwid,alex86,gemini13,lunar2,dctvcjcfnm,malaki,plugger,eagles11,snafu2,
1shelly,cintaku,hannah22,tbird1,maks5843,irish88,homer22,amarok,fktrcfylhjdf,lincoln2,acess,gre69kik,need4speed,hightech,core2duo,blunt1,ublhjgjybrf,dragon33,
1autopas,autopas1,wwww1,
15935746,daniel20,
2500aa,massim,
1ggggggg,
96ford,hardcor1,cobra5,blackdragon,vovan_lt,orochimaru,hjlbntkb,qwertyuiop12,tallen,paradoks,frozenfish,ghjuhfvvbcn,gerri1,nuggett,camilit,doright,trans1,serena1,catch2,bkmyeh,fireston,afhvfwtdn,purple3,figure8,fuckya,scamp1,laranja,ontheoutside,louis123,yellow7,moonwalk,mercury2,tolkein,raide,amenra,a13579,dranreb,
5150vh,harish,tracksta,sexking,ozzmosis,katiee,alomar,matrix19,headroom,jahlove,ringding,apollo8,
132546,
132613,
12345672000,saretta,
135798,
136666,thomas7,
136913,onetwothree,hockey33,calida,nefertit,bitwise,tailhook,boop4,kfgecbr,bujhmbujhm,metal69,thedark,meteoro,felicia1,house12,tinuviel,istina,vaz2105,pimp13,toolfan,nina1,tuesday2,maxmotives,lgkp500,locksley,treech,darling1,kurama,aminka,ramin,redhed,dazzler,jager1,stpiliot,cardman,rfvtym,cheeser,
14314314,paramoun,samcat,plumpy,stiffie,vsajyjr,panatha,qqq777,car12345,
098poi,asdzx,keegan1,furelise,kalifornia,vbhjckfd,beast123,zcfvfzkexifz,harry5,
1birdie,
96328i,escola,extra330,henry12,gfhfyjqz,
14u2nv,max1234,templar1,
1dave,
02588520,catrin,pangolin,marhaba,latin1,amorcito,dave22,escape1,advance1,yasuhiro,grepw,meetme,orange01,ernes,erdna,zsergn,nautica1,justinb,soundwav,miasma,greg78,nadine1,sexmad,lovebaby,promo1,excel1,babys,dragonma,camry1,sonnenschein,farooq,wazzkaprivet,magal,katinas,elvis99,redsox24,rooney1,chiefy,peggys,aliev,pilsung,mudhen,dontdoit,dennis12,supercal,energia,ballsout,funone,claudiu,brown2,amoco,dabl1125,philos,gjdtkbntkm,servette,
13571113,whizzer,nollie,
13467982,upiter,
12string,bluejay1,silkie,william4,kosta1,
143333,connor12,sustanon,
06068,corporat,ssnake,laurita,king10,tahoes,arsenal123,sapato,charless,jeanmarc,levent,algerie,marine21,jettas,winsome,dctvgbplf,
1701ab,xxxp455w0rd5,lllllll1,ooooooo1,monalis,koufax32,anastasya,debugger,sarita2,jason69,ufkxjyjr,gjlcnfdf,
1jerry,daniel10,balinor,sexkitten,death2,qwertasdfgzxcvb,s9te949f,vegeta1,sysman,maxxam,dimabilan,mooose,ilovetit,june23,illest,doesit,mamou,abby12,longjump,transalp,moderato,littleguy,magritte,dilnoza,hawaiiguy,winbig,nemiroff,kokaine,admira,myemail,dream2,browneyes,destiny7,dragonss,suckme1,asa123,andranik,suckem,fleshbot,dandie,timmys,scitra,timdog,hasbeen,guesss,smellyfe,arachne,deutschl,harley88,birthday27,nobody1,papasmur,home1,jonass,bunia3,epatb1,embalm,vfvekmrf,apacer,
12345656,estreet,weihnachtsbaum,mrwhite,admin12,kristie1,kelebek,yoda69,socken,tima123,bayern1,fktrcfylth,tamiya,
99strenght,andy01,denis2011,
19delta,stokecit,aotearoa,stalker2,nicnac,conrad1,popey,agusta,bowl36,
1bigfish,mossyoak,
1stunner,getinnow,jessejames,gkfnjy,drako,
1nissan,egor123,hotness,
1hawaii,zxc123456,cantstop,
1peaches,madlen,west1234,jeter1,markis,judit,attack1,artemi,silver69,
153246,crazy2,green9,yoshimi,
1vette,chief123,jasper2,
1sierra,twentyon,drstrang,aspirant,yannic,jenna123,bongtoke,slurpy,
1sugar,civic97,rusty21,shineon,james19,anna12345,wonderwoman,
1kevin,karol1,kanabis,wert21,fktif6115,evil1,kakaha,
54gv768,
826248s,tyrone1,
1winston,sugar2,falcon01,adelya,mopar440,zasxcd,leecher,kinkysex,mercede1,travka,
11234567,rebon,geekboy".split(","),
45758 english_wikipedia:"the,of,and,in,was,is,for,as,on,with,by,he,at,from,his,an,were,are,which,doc,https,also,or,has,had,first,one,their,its,after,new,who,they,two,her,she,been,other,when,time,during,there,into,school,more,may,years,over,only,year,most,would,world,city,some,where,between,later,three,state,such,then,national,used,made,known,under,many,university,united,while,part,season,team,these,american,than,film,second,born,south,became,states,war,through,being,including,both,before,north,high,however,people,family,early,history,album,area,them,series,against,until,since,district,county,name,work,life,group,music,following,number,company,several,four,called,played,released,career,league,game,government,house,each,based,day,same,won,use,station,club,international,town,located,population,general,college,east,found,age,march,end,september,began,home,public,church,line,june,river,member,system,place,century,band,july,york,january,october,song,august,best,former,british,party,named,held,village,show,local,november,took,service,december,built,another,major,within,along,members,five,single,due,although,small,old,left,final,large,include,building,served,president,received,games,death,february,main,third,set,children,own,order,species,park,law,air,published,road,died,book,men,women,army,often,according,education,central,country,division,english,top,included,development,french,community,among,water,play,side,list,times,near,late,form,original,different,center,power,led,students,german,moved,court,six,land,council,island,u.s.,record,million,research,art,established,award,street,military,television,given,region,support,western,production,non,political,point,cup,period,business,title,started,various,election,using,england,role,produced,become,program,works,field,total,office,class,written,association,radio,union,level,championship,director,few,force,created,department,founded,services,married,though,per,n't,site,open,act,short,society,version,royal,present,northern,worked,professional,full,returned,joined,story,france,european,currently,language,social,california,india,days,design,st.,further,round,australia,wrote,san,project,control,southern,railway,board,popular,continued,free,battle,considered,video,common,position,living,half,playing,recorded,red,post,described,average,records,special,modern,appeared,announced,areas,rock,release,elected,others,example,term,opened,similar,formed,route,census,current,schools,originally,lake,developed,race,himself,forces,addition,information,upon,province,match,event,songs,result,events,win,eastern,track,lead,teams,science,human,construction,minister,germany,awards,available,throughout,training,style,body,museum,australian,health,seven,signed,chief,eventually,appointed,sea,centre,debut,tour,points,media,light,range,character,across,features,families,largest,indian,network,less,performance,players,refer,europe,sold,festival,usually,taken,despite,designed,committee,process,return,official,episode,institute,stage,followed,performed,japanese,personal,thus,arts,space,low,months,includes,china,study,middle,magazine,leading,japan,groups,aircraft,featured,federal,civil,rights,model,coach,canadian,books,remained,eight,type,independent,completed,capital,academy,instead,kingdom,organization,countries,studies,competition,sports,size,above,section,finished,gold,involved,reported,management,systems,industry,directed,market,fourth,movement,technology,bank,ground,campaign,base,lower,sent,rather,added,provided,coast,grand,historic,valley,conference,bridge,winning,approximately,films,chinese,awarded,degree,russian,shows,native,female,replaced,municipality,square,studio,medical,data,african,successful,mid,bay,attack,previous,operations,spanish,theatre,student,republic,beginning,provide,ship,primary,owned,writing,tournament,culture,introduced,texas,related,natural,parts,governor,reached,ireland,units,senior,decided,italian,whose,higher,africa,standard,income,professor,placed,regional,los,buildings,championships,active,novel,energy,generally,interest,via,economic,previously,stated,itself,channel,below,operation,leader,traditional,trade,structure,limited,runs,prior,regular,famous,saint,navy,foreign,listed,artist,catholic,airport,results,parliament,collection,unit,officer,goal,attended,command,staff,commission,lived,location,plays,commercial,places,foundation,significant,older,medal,self,scored,companies,highway,activities,programs,wide,musical,notable,library,numerous,paris,towards,individual,allowed,plant,property,annual,contract,whom,highest,initially,required,earlier,assembly,artists,rural,seat,practice,defeated,ended,soviet,length,spent,manager,press,associated,author,issues,additional,characters,lord,zealand,policy,engine,township,noted,historical,complete,financial,religious,mission,contains,nine,recent,represented,pennsylvania,administration,opening,secretary,lines,report,executive,youth,closed,theory,writer,italy,angeles,appearance,feature,queen,launched,legal,terms,entered,issue,edition,singer,greek,majority,background,source,anti,cultural,complex,changes,recording,stadium,islands,operated,particularly,basketball,month,uses,port,castle,mostly,names,fort,selected,increased,status,earth,subsequently,pacific,cover,variety,certain,goals,remains,upper,congress,becoming,studied,irish,nature,particular,loss,caused,chart,dr.,forced,create,era,retired,material,review,rate,singles,referred,larger,individuals,shown,provides,products,speed,democratic,poland,parish,olympics,cities,themselves,temple,wing,genus,households,serving,cost,wales,stations,passed,supported,view,cases,forms,actor,male,matches,males,stars,tracks,females,administrative,median,effect,biography,train,engineering,camp,offered,chairman,houses,mainly,
19th,surface,therefore,nearly,score,ancient,subject,prime,seasons,claimed,experience,specific,jewish,failed,overall,believed,plot,troops,greater,spain,consists,broadcast,heavy,increase,raised,separate,campus,
1980s,appears,presented,lies,composed,recently,influence,fifth,nations,creek,references,elections,britain,double,cast,meaning,earned,carried,producer,latter,housing,brothers,attempt,article,response,border,remaining,nearby,direct,ships,value,workers,politician,academic,label,
1970s,commander,rule,fellow,residents,authority,editor,transport,dutch,projects,responsible,covered,territory,flight,races,defense,tower,emperor,albums,facilities,daily,stories,assistant,managed,primarily,quality,function,proposed,distribution,conditions,prize,journal,code,vice,newspaper,corps,highly,constructed,mayor,critical,secondary,corporation,rugby,regiment,ohio,appearances,serve,allow,nation,multiple,discovered,directly,scene,levels,growth,elements,acquired,
1990s,officers,physical,
20th,latin,host,jersey,graduated,arrived,issued,literature,metal,estate,vote,immediately,quickly,asian,competed,extended,produce,urban,
1960s,promoted,contemporary,global,formerly,appear,industrial,types,opera,ministry,soldiers,commonly,mass,formation,smaller,typically,drama,shortly,density,senate,effects,iran,polish,prominent,naval,settlement,divided,basis,republican,languages,distance,treatment,continue,product,mile,sources,footballer,format,clubs,leadership,initial,offers,operating,avenue,officially,columbia,grade,squadron,fleet,percent,farm,leaders,agreement,likely,equipment,website,mount,grew,method,transferred,intended,renamed,iron,asia,reserve,capacity,politics,widely,activity,advanced,relations,scottish,dedicated,crew,founder,episodes,lack,amount,build,efforts,concept,follows,ordered,leaves,positive,economy,entertainment,affairs,memorial,ability,illinois,communities,color,text,railroad,scientific,focus,comedy,serves,exchange,environment,cars,direction,organized,firm,description,agency,analysis,purpose,destroyed,reception,planned,revealed,infantry,architecture,growing,featuring,household,candidate,removed,situated,models,knowledge,solo,technical,organizations,assigned,conducted,participated,largely,purchased,register,gained,combined,headquarters,adopted,potential,protection,scale,approach,spread,independence,mountains,titled,geography,applied,safety,mixed,accepted,continues,captured,rail,defeat,principal,recognized,lieutenant,mentioned,semi,owner,joint,liberal,actress,traffic,creation,basic,notes,unique,supreme,declared,simply,plants,sales,massachusetts,designated,parties,jazz,compared,becomes,resources,titles,concert,learning,remain,teaching,versions,content,alongside,revolution,sons,block,premier,impact,champions,districts,generation,estimated,volume,image,sites,account,roles,sport,quarter,providing,zone,yard,scoring,classes,presence,performances,representatives,hosted,split,taught,origin,olympic,claims,critics,facility,occurred,suffered,municipal,damage,defined,resulted,respectively,expanded,platform,draft,opposition,expected,educational,ontario,climate,reports,atlantic,surrounding,performing,reduced,ranked,allows,birth,nominated,younger,newly,kong,positions,theater,philadelphia,heritage,finals,disease,sixth,laws,reviews,constitution,tradition,swedish,theme,fiction,rome,medicine,trains,resulting,existing,deputy,environmental,labour,classical,develop,fans,granted,receive,alternative,begins,nuclear,fame,buried,connected,identified,palace,falls,letters,combat,sciences,effort,villages,inspired,regions,towns,conservative,chosen,animals,labor,attacks,materials,yards,steel,representative,orchestra,peak,entitled,officials,returning,reference,northwest,imperial,convention,examples,ocean,publication,painting,subsequent,frequently,religion,brigade,fully,sides,acts,cemetery,relatively,oldest,suggested,succeeded,achieved,application,programme,cells,votes,promotion,graduate,armed,supply,flying,communist,figures,literary,netherlands,korea,worldwide,citizens,
1950s,faculty,draw,stock,seats,occupied,methods,unknown,articles,claim,holds,authorities,audience,sweden,interview,obtained,covers,settled,transfer,marked,allowing,funding,challenge,southeast,unlike,crown,rise,portion,transportation,sector,phase,properties,edge,tropical,standards,institutions,philosophy,legislative,hills,brand,fund,conflict,unable,founding,refused,attempts,metres,permanent,starring,applications,creating,effective,aired,extensive,employed,enemy,expansion,billboard,rank,battalion,multi,vehicle,fought,alliance,category,perform,federation,poetry,bronze,bands,entry,vehicles,bureau,maximum,billion,trees,intelligence,greatest,screen,refers,commissioned,gallery,injury,confirmed,setting,treaty,adult,americans,broadcasting,supporting,pilot,mobile,writers,programming,existence,squad,minnesota,copies,korean,provincial,sets,defence,offices,agricultural,internal,core,northeast,retirement,factory,actions,prevent,communications,ending,weekly,containing,functions,attempted,interior,weight,bowl,recognition,incorporated,increasing,ultimately,documentary,derived,attacked,lyrics,mexican,external,churches,centuries,metropolitan,selling,opposed,personnel,mill,visited,presidential,roads,pieces,norwegian,controlled,
18th,rear,influenced,wrestling,weapons,launch,composer,locations,developing,circuit,specifically,studios,shared,canal,wisconsin,publishing,approved,domestic,consisted,determined,comic,establishment,exhibition,southwest,fuel,electronic,cape,converted,educated,melbourne,hits,wins,producing,norway,slightly,occur,surname,identity,represent,constituency,funds,proved,links,structures,athletic,birds,contest,users,poet,institution,display,receiving,rare,contained,guns,motion,piano,temperature,publications,passenger,contributed,toward,cathedral,inhabitants,architect,exist,athletics,muslim,courses,abandoned,signal,successfully,disambiguation,tennessee,dynasty,heavily,maryland,jews,representing,budget,weather,missouri,introduction,faced,pair,chapel,reform,height,vietnam,occurs,motor,cambridge,lands,focused,sought,patients,shape,invasion,chemical,importance,communication,selection,regarding,homes,voivodeship,maintained,borough,failure,aged,passing,agriculture,oregon,teachers,flow,philippines,trail,seventh,portuguese,resistance,reaching,negative,fashion,scheduled,downtown,universities,trained,skills,scenes,views,notably,typical,incident,candidates,engines,decades,composition,commune,chain,inc.,austria,sale,values,employees,chamber,regarded,winners,registered,task,investment,colonial,swiss,user,entirely,flag,stores,closely,entrance,laid,journalist,coal,equal,causes,turkish,quebec,techniques,promote,junction,easily,dates,kentucky,singapore,residence,violence,advance,survey,humans,expressed,passes,streets,distinguished,qualified,folk,establish,egypt,artillery,visual,improved,actual,finishing,medium,protein,switzerland,productions,operate,poverty,neighborhood,organisation,consisting,consecutive,sections,partnership,extension,reaction,factor,costs,bodies,device,ethnic,racial,flat,objects,chapter,improve,musicians,courts,controversy,membership,merged,wars,expedition,interests,arab,comics,gain,describes,mining,bachelor,crisis,joining,decade,
1930s,distributed,habitat,routes,arena,cycle,divisions,briefly,vocals,directors,degrees,object,recordings,installed,adjacent,demand,voted,causing,businesses,ruled,grounds,starred,drawn,opposite,stands,formal,operates,persons,counties,compete,wave,israeli,ncaa,resigned,brief,greece,combination,demographics,historian,contain,commonwealth,musician,collected,argued,louisiana,session,cabinet,parliamentary,electoral,loan,profit,regularly,conservation,islamic,purchase,
17th,charts,residential,earliest,designs,paintings,survived,moth,items,goods,grey,anniversary,criticism,images,discovery,observed,underground,progress,additionally,participate,thousands,reduce,elementary,owners,stating,iraq,resolution,capture,tank,rooms,hollywood,finance,queensland,reign,maintain,iowa,landing,broad,outstanding,circle,path,manufacturing,assistance,sequence,gmina,crossing,leads,universal,shaped,kings,attached,medieval,ages,metro,colony,affected,scholars,oklahoma,coastal,soundtrack,painted,attend,definition,meanwhile,purposes,trophy,require,marketing,popularity,cable,mathematics,mississippi,represents,scheme,appeal,distinct,factors,acid,subjects,roughly,terminal,economics,senator,diocese,prix,contrast,argentina,czech,wings,relief,stages,duties,
16th,novels,accused,whilst,equivalent,charged,measure,documents,couples,request,danish,defensive,guide,devices,statistics,credited,tries,passengers,allied,frame,puerto,peninsula,concluded,instruments,wounded,differences,associate,forests,afterwards,replace,requirements,aviation,solution,offensive,ownership,inner,legislation,hungarian,contributions,actors,translated,denmark,steam,depending,aspects,assumed,injured,severe,admitted,determine,shore,technique,arrival,measures,translation,debuted,delivered,returns,rejected,separated,visitors,damaged,storage,accompanied,markets,industries,losses,gulf,charter,strategy,corporate,socialist,somewhat,significantly,physics,mounted,satellite,experienced,constant,relative,pattern,restored,belgium,connecticut,partners,harvard,retained,networks,protected,mode,artistic,parallel,collaboration,debate,involving,journey,linked,salt,authors,components,context,occupation,requires,occasionally,policies,tamil,ottoman,revolutionary,hungary,poem,versus,gardens,amongst,audio,makeup,frequency,meters,orthodox,continuing,suggests,legislature,coalition,guitarist,eighth,classification,practices,soil,tokyo,instance,limit,coverage,considerable,ranking,colleges,cavalry,centers,daughters,twin,equipped,broadway,narrow,hosts,rates,domain,boundary,arranged,
12th,whereas,brazilian,forming,rating,strategic,competitions,trading,covering,baltimore,commissioner,infrastructure,origins,replacement,praised,disc,collections,expression,ukraine,driven,edited,austrian,solar,ensure,premiered,successor,wooden,operational,hispanic,concerns,rapid,prisoners,childhood,meets,influential,tunnel,employment,tribe,qualifying,adapted,temporary,celebrated,appearing,increasingly,depression,adults,cinema,entering,laboratory,script,flows,romania,accounts,fictional,pittsburgh,achieve,monastery,franchise,formally,tools,newspapers,revival,sponsored,processes,vienna,springs,missions,classified,
13th,annually,branches,lakes,gender,manner,advertising,normally,maintenance,adding,characteristics,integrated,decline,modified,strongly,critic,victims,malaysia,arkansas,nazi,restoration,powered,monument,hundreds,depth,
15th,controversial,admiral,criticized,brick,honorary,initiative,output,visiting,birmingham,progressive,existed,carbon,
1920s,credits,colour,rising,hence,defeating,superior,filmed,listing,column,surrounded,orleans,principles,territories,struck,participation,indonesia,movements,index,commerce,conduct,constitutional,spiritual,ambassador,vocal,completion,edinburgh,residing,tourism,finland,bears,medals,resident,themes,visible,indigenous,involvement,basin,electrical,ukrainian,concerts,boats,styles,processing,rival,drawing,vessels,experimental,declined,touring,supporters,compilation,coaching,cited,dated,roots,string,explained,transit,traditionally,poems,minimum,representation,
14th,releases,effectively,architectural,triple,indicated,greatly,elevation,clinical,printed,
10th,proposal,peaked,producers,romanized,rapidly,stream,innings,meetings,counter,householder,honour,lasted,agencies,document,exists,surviving,experiences,honors,landscape,hurricane,harbor,panel,competing,profile,vessel,farmers,lists,revenue,exception,customers,
11th,participants,wildlife,utah,bible,gradually,preserved,replacing,symphony,begun,longest,siege,provinces,mechanical,genre,transmission,agents,executed,videos,benefits,funded,rated,instrumental,ninth,similarly,dominated,destruction,passage,technologies,thereafter,outer,facing,affiliated,opportunities,instrument,governments,scholar,evolution,channels,shares,sessions,widespread,occasions,engineers,scientists,signing,battery,competitive,alleged,eliminated,supplies,judges,hampshire,regime,portrayed,penalty,taiwan,denied,submarine,scholarship,substantial,transition,victorian,http,nevertheless,filed,supports,continental,tribes,ratio,doubles,useful,honours,blocks,principle,retail,departure,ranks,patrol,yorkshire,vancouver,inter,extent,afghanistan,strip,railways,component,organ,symbol,categories,encouraged,abroad,civilian,periods,traveled,writes,struggle,immediate,recommended,adaptation,egyptian,graduating,assault,drums,nomination,historically,voting,allies,detailed,achievement,percentage,arabic,assist,frequent,toured,apply,and/or,intersection,maine,touchdown,throne,produces,contribution,emerged,obtain,archbishop,seek,researchers,remainder,populations,clan,finnish,overseas,fifa,licensed,chemistry,festivals,mediterranean,injuries,animated,seeking,publisher,volumes,limits,venue,jerusalem,generated,trials,islam,youngest,ruling,glasgow,germans,songwriter,persian,municipalities,donated,viewed,belgian,cooperation,posted,tech,dual,volunteer,settlers,commanded,claiming,approval,delhi,usage,terminus,partly,electricity,locally,editions,premiere,absence,belief,traditions,statue,indicate,manor,stable,attributed,possession,managing,viewers,chile,overview,seed,regulations,essential,minority,cargo,segment,endemic,forum,deaths,monthly,playoffs,erected,practical,machines,suburb,relation,mrs.,descent,indoor,continuous,characterized,solutions,caribbean,rebuilt,serbian,summary,contested,psychology,pitch,attending,muhammad,tenure,drivers,diameter,assets,venture,punk,airlines,concentration,athletes,volunteers,pages,mines,influences,sculpture,protest,ferry,behalf,drafted,apparent,furthermore,ranging,romanian,democracy,lanka,significance,linear,d.c.,certified,voters,recovered,tours,demolished,boundaries,assisted,identify,grades,elsewhere,mechanism,
1940s,reportedly,aimed,conversion,suspended,photography,departments,beijing,locomotives,publicly,dispute,magazines,resort,conventional,platforms,internationally,capita,settlements,dramatic,derby,establishing,involves,statistical,implementation,immigrants,exposed,diverse,layer,vast,ceased,connections,belonged,interstate,uefa,organised,abuse,deployed,cattle,partially,filming,mainstream,reduction,automatic,rarely,subsidiary,decides,merger,comprehensive,displayed,amendment,guinea,exclusively,manhattan,concerning,commons,radical,serbia,baptist,buses,initiated,portrait,harbour,choir,citizen,sole,unsuccessful,manufactured,enforcement,connecting,increases,patterns,sacred,muslims,clothing,hindu,unincorporated,sentenced,advisory,tanks,campaigns,fled,repeated,remote,rebellion,implemented,texts,fitted,tribute,writings,sufficient,ministers,
21st,devoted,jurisdiction,coaches,interpretation,pole,businessman,peru,sporting,prices,cuba,relocated,opponent,arrangement,elite,manufacturer,responded,suitable,distinction,calendar,dominant,tourist,earning,prefecture,ties,preparation,anglo,pursue,worship,archaeological,chancellor,bangladesh,scores,traded,lowest,horror,outdoor,biology,commented,specialized,loop,arriving,farming,housed,historians,'the,patent,pupils,christianity,opponents,athens,northwestern,maps,promoting,reveals,flights,exclusive,lions,norfolk,hebrew,extensively,eldest,shops,acquisition,virtual,renowned,margin,ongoing,essentially,iranian,alternate,sailed,reporting,conclusion,originated,temperatures,exposure,secured,landed,rifle,framework,identical,martial,focuses,topics,ballet,fighters,belonging,wealthy,negotiations,evolved,bases,oriented,acres,democrat,heights,restricted,vary,graduation,aftermath,chess,illness,participating,vertical,collective,immigration,demonstrated,leaf,completing,organic,missile,leeds,eligible,grammar,confederate,improvement,congressional,wealth,cincinnati,spaces,indicates,corresponding,reaches,repair,isolated,taxes,congregation,ratings,leagues,diplomatic,submitted,winds,awareness,photographs,maritime,nigeria,accessible,animation,restaurants,philippine,inaugural,dismissed,armenian,illustrated,reservoir,speakers,programmes,resource,genetic,interviews,camps,regulation,computers,preferred,travelled,comparison,distinctive,recreation,requested,southeastern,dependent,brisbane,breeding,playoff,expand,bonus,gauge,departed,qualification,inspiration,shipping,slaves,variations,shield,theories,munich,recognised,emphasis,favour,variable,seeds,undergraduate,territorial,intellectual,qualify,mini,banned,pointed,democrats,assessment,judicial,examination,attempting,objective,partial,characteristic,hardware,pradesh,execution,ottawa,metre,drum,exhibitions,withdrew,attendance,phrase,journalism,logo,measured,error,christians,trio,protestant,theology,respective,atmosphere,buddhist,substitute,curriculum,fundamental,outbreak,rabbi,intermediate,designation,globe,liberation,simultaneously,diseases,experiments,locomotive,difficulties,mainland,nepal,relegated,contributing,database,developments,veteran,carries,ranges,instruction,lodge,protests,obama,newcastle,experiment,physician,describing,challenges,corruption,delaware,adventures,ensemble,succession,renaissance,tenth,altitude,receives,approached,crosses,syria,croatia,warsaw,professionals,improvements,worn,airline,compound,permitted,preservation,reducing,printing,scientist,activist,comprises,sized,societies,enters,ruler,gospel,earthquake,extend,autonomous,croatian,serial,decorated,relevant,ideal,grows,grass,tier,towers,wider,welfare,columns,alumni,descendants,interface,reserves,banking,colonies,manufacturers,magnetic,closure,pitched,vocalist,preserve,enrolled,cancelled,equation,
2000s,nickname,bulgaria,heroes,exile,mathematical,demands,input,structural,tube,stem,approaches,argentine,axis,manuscript,inherited,depicted,targets,visits,veterans,regard,removal,efficiency,organisations,concepts,lebanon,manga,petersburg,rally,supplied,amounts,yale,tournaments,broadcasts,signals,pilots,azerbaijan,architects,enzyme,literacy,declaration,placing,batting,incumbent,bulgarian,consistent,poll,defended,landmark,southwestern,raid,resignation,travels,casualties,prestigious,namely,aims,recipient,warfare,readers,collapse,coached,controls,volleyball,coup,lesser,verse,pairs,exhibited,proteins,molecular,abilities,integration,consist,aspect,advocate,administered,governing,hospitals,commenced,coins,lords,variation,resumed,canton,artificial,elevated,palm,difficulty,civic,efficient,northeastern,inducted,radiation,affiliate,boards,stakes,byzantine,consumption,freight,interaction,oblast,numbered,seminary,contracts,extinct,predecessor,bearing,cultures,functional,neighboring,revised,cylinder,grants,narrative,reforms,athlete,tales,reflect,presidency,compositions,specialist,cricketer,founders,sequel,widow,disbanded,associations,backed,thereby,pitcher,commanding,boulevard,singers,crops,militia,reviewed,centres,waves,consequently,fortress,tributary,portions,bombing,excellence,nest,payment,mars,plaza,unity,victories,scotia,farms,nominations,variant,attacking,suspension,installation,graphics,estates,comments,acoustic,destination,venues,surrender,retreat,libraries,quarterback,customs,berkeley,collaborated,gathered,syndrome,dialogue,recruited,shanghai,neighbouring,psychological,saudi,moderate,exhibit,innovation,depot,binding,brunswick,situations,certificate,actively,shakespeare,editorial,presentation,ports,relay,nationalist,methodist,archives,experts,maintains,collegiate,bishops,maintaining,temporarily,embassy,essex,wellington,connects,reformed,bengal,recalled,inches,doctrine,deemed,legendary,reconstruction,statements,palestinian,meter,achievements,riders,interchange,spots,auto,accurate,chorus,dissolved,missionary,thai,operators,e.g.,generations,failing,delayed,cork,nashville,perceived,venezuela,cult,emerging,tomb,abolished,documented,gaining,canyon,episcopal,stored,assists,compiled,kerala,kilometers,mosque,grammy,theorem,unions,segments,glacier,arrives,theatrical,circulation,conferences,chapters,displays,circular,authored,conductor,fewer,dimensional,nationwide,liga,yugoslavia,peer,vietnamese,fellowship,armies,regardless,relating,dynamic,politicians,mixture,serie,somerset,imprisoned,posts,beliefs,beta,layout,independently,electronics,provisions,fastest,logic,headquartered,creates,challenged,beaten,appeals,plains,protocol,graphic,accommodate,iraqi,midfielder,span,commentary,freestyle,reflected,palestine,lighting,burial,virtually,backing,prague,tribal,heir,identification,prototype,criteria,dame,arch,tissue,footage,extending,procedures,predominantly,updated,rhythm,preliminary,cafe,disorder,prevented,suburbs,discontinued,retiring,oral,followers,extends,massacre,journalists,conquest,larvae,pronounced,behaviour,diversity,sustained,addressed,geographic,restrictions,voiced,milwaukee,dialect,quoted,grid,nationally,nearest,roster,twentieth,separation,indies,manages,citing,intervention,guidance,severely,migration,artwork,focusing,rivals,trustees,varied,enabled,committees,centered,skating,slavery,cardinals,forcing,tasks,auckland,youtube,argues,colored,advisor,mumbai,requiring,theological,registration,refugees,nineteenth,survivors,runners,colleagues,priests,contribute,variants,workshop,concentrated,creator,lectures,temples,exploration,requirement,interactive,navigation,companion,perth,allegedly,releasing,citizenship,observation,stationed,ph.d.,sheep,breed,discovers,encourage,kilometres,journals,performers,isle,saskatchewan,hybrid,hotels,lancashire,dubbed,airfield,anchor,suburban,theoretical,sussex,anglican,stockholm,permanently,upcoming,privately,receiver,optical,highways,congo,colours,aggregate,authorized,repeatedly,varies,fluid,innovative,transformed,praise,convoy,demanded,discography,attraction,export,audiences,ordained,enlisted,occasional,westminster,syrian,heavyweight,bosnia,consultant,eventual,improving,aires,wickets,epic,reactions,scandal,i.e.,discrimination,buenos,patron,investors,conjunction,testament,construct,encountered,celebrity,expanding,georgian,brands,retain,underwent,algorithm,foods,provision,orbit,transformation,associates,tactical,compact,varieties,stability,refuge,gathering,moreover,manila,configuration,gameplay,discipline,entity,comprising,composers,skill,monitoring,ruins,museums,sustainable,aerial,altered,codes,voyage,friedrich,conflicts,storyline,travelling,conducting,merit,indicating,referendum,currency,encounter,particles,automobile,workshops,acclaimed,inhabited,doctorate,cuban,phenomenon,dome,enrollment,tobacco,governance,trend,equally,manufacture,hydrogen,grande,compensation,download,pianist,grain,shifted,neutral,evaluation,define,cycling,seized,array,relatives,motors,firms,varying,automatically,restore,nicknamed,findings,governed,investigate,manitoba,administrator,vital,integral,indonesian,confusion,publishers,enable,geographical,inland,naming,civilians,reconnaissance,indianapolis,lecturer,deer,tourists,exterior,rhode,bassist,symbols,scope,ammunition,yuan,poets,punjab,nursing,cent,developers,estimates,presbyterian,nasa,holdings,generate,renewed,computing,cyprus,arabia,duration,compounds,gastropod,permit,valid,touchdowns,facade,interactions,mineral,practiced,allegations,consequence,goalkeeper,baronet,copyright,uprising,carved,targeted,competitors,mentions,sanctuary,fees,pursued,tampa,chronicle,capabilities,specified,specimens,toll,accounting,limestone,staged,upgraded,philosophical,streams,guild,revolt,rainfall,supporter,princeton,terrain,hometown,probability,assembled,paulo,surrey,voltage,developer,destroyer,floors,lineup,curve,prevention,potentially,onwards,trips,imposed,hosting,striking,strict,admission,apartments,solely,utility,proceeded,observations,euro,incidents,vinyl,profession,haven,distant,expelled,rivalry,runway,torpedo,zones,shrine,dimensions,investigations,lithuania,idaho,pursuit,copenhagen,considerably,locality,wireless,decrease,genes,thermal,deposits,hindi,habitats,withdrawn,biblical,monuments,casting,plateau,thesis,managers,flooding,assassination,acknowledged,interim,inscription,guided,pastor,finale,insects,transported,activists,marshal,intensity,airing,cardiff,proposals,lifestyle,prey,herald,capitol,aboriginal,measuring,lasting,interpreted,occurring,desired,drawings,healthcare,panels,elimination,oslo,ghana,blog,sabha,intent,superintendent,governors,bankruptcy,p.m.,equity,disk,layers,slovenia,prussia,quartet,mechanics,graduates,politically,monks,screenplay,nato,absorbed,topped,petition,bold,morocco,exhibits,canterbury,publish,rankings,crater,dominican,enhanced,planes,lutheran,governmental,joins,collecting,brussels,unified,streak,strategies,flagship,surfaces,oval,archive,etymology,imprisonment,instructor,noting,remix,opposing,servant,rotation,width,trans,maker,synthesis,excess,tactics,snail,ltd.,lighthouse,sequences,cornwall,plantation,mythology,performs,foundations,populated,horizontal,speedway,activated,performer,diving,conceived,edmonton,subtropical,environments,prompted,semifinals,caps,bulk,treasury,recreational,telegraph,continent,portraits,relegation,catholics,graph,velocity,rulers,endangered,secular,observer,learns,inquiry,idol,dictionary,certification,estimate,cluster,armenia,observatory,revived,nadu,consumers,hypothesis,manuscripts,contents,arguments,editing,trails,arctic,essays,belfast,acquire,promotional,undertaken,corridor,proceedings,antarctic,millennium,labels,delegates,vegetation,acclaim,directing,substance,outcome,diploma,philosopher,malta,albanian,vicinity,degc,legends,regiments,consent,terrorist,scattered,presidents,gravity,orientation,deployment,duchy,refuses,estonia,crowned,separately,renovation,rises,wilderness,objectives,agreements,empress,slopes,inclusion,equality,decree,ballot,criticised,rochester,recurring,struggled,disabled,henri,poles,prussian,convert,bacteria,poorly,sudan,geological,wyoming,consistently,minimal,withdrawal,interviewed,proximity,repairs,initiatives,pakistani,republicans,propaganda,viii,abstract,commercially,availability,mechanisms,naples,discussions,underlying,lens,proclaimed,advised,spelling,auxiliary,attract,lithuanian,editors,o'brien,accordance,measurement,novelist,ussr,formats,councils,contestants,indie,facebook,parishes,barrier,battalions,sponsor,consulting,terrorism,implement,uganda,crucial,unclear,notion,distinguish,collector,attractions,filipino,ecology,investments,capability,renovated,iceland,albania,accredited,scouts,armor,sculptor,cognitive,errors,gaming,condemned,successive,consolidated,baroque,entries,regulatory,reserved,treasurer,variables,arose,technological,rounded,provider,rhine,agrees,accuracy,genera,decreased,frankfurt,ecuador,edges,particle,rendered,calculated,careers,faction,rifles,americas,gaelic,portsmouth,resides,merchants,fiscal,premises,coin,draws,presenter,acceptance,ceremonies,pollution,consensus,membrane,brigadier,nonetheless,genres,supervision,predicted,magnitude,finite,differ,ancestry,vale,delegation,removing,proceeds,placement,emigrated,siblings,molecules,payments,considers,demonstration,proportion,newer,valve,achieving,confederation,continuously,luxury,notre,introducing,coordinates,charitable,squadrons,disorders,geometry,winnipeg,ulster,loans,longtime,receptor,preceding,belgrade,mandate,wrestler,neighbourhood,factories,buddhism,imported,sectors,protagonist,steep,elaborate,prohibited,artifacts,prizes,pupil,cooperative,sovereign,subspecies,carriers,allmusic,nationals,settings,autobiography,neighborhoods,analog,facilitate,voluntary,jointly,newfoundland,organizing,raids,exercises,nobel,machinery,baltic,crop,granite,dense,websites,mandatory,seeks,surrendered,anthology,comedian,bombs,slot,synopsis,critically,arcade,marking,equations,halls,indo,inaugurated,embarked,speeds,clause,invention,premiership,likewise,presenting,demonstrate,designers,organize,examined,km/h,bavaria,troop,referee,detection,zurich,prairie,rapper,wingspan,eurovision,luxembourg,slovakia,inception,disputed,mammals,entrepreneur,makers,evangelical,yield,clergy,trademark,defunct,allocated,depicting,volcanic,batted,conquered,sculptures,providers,reflects,armoured,locals,walt,herzegovina,contracted,entities,sponsorship,prominence,flowing,ethiopia,marketed,corporations,withdraw,carnegie,induced,investigated,portfolio,flowering,opinions,viewing,classroom,donations,bounded,perception,leicester,fruits,charleston,academics,statute,complaints,smallest,deceased,petroleum,resolved,commanders,algebra,southampton,modes,cultivation,transmitter,spelled,obtaining,sizes,acre,pageant,bats,abbreviated,correspondence,barracks,feast,tackles,raja,derives,geology,disputes,translations,counted,constantinople,seating,macedonia,preventing,accommodation,homeland,explored,invaded,provisional,transform,sphere,unsuccessfully,missionaries,conservatives,highlights,traces,organisms,openly,dancers,fossils,absent,monarchy,combining,lanes,stint,dynamics,chains,missiles,screening,module,tribune,generating,miners,nottingham,seoul,unofficial,owing,linking,rehabilitation,citation,louisville,mollusk,depicts,differential,zimbabwe,kosovo,recommendations,responses,pottery,scorer,aided,exceptions,dialects,telecommunications,defines,elderly,lunar,coupled,flown,
25th,espn,formula_1,bordered,fragments,guidelines,gymnasium,valued,complexity,papal,presumably,maternal,challenging,reunited,advancing,comprised,uncertain,favorable,twelfth,correspondent,nobility,livestock,expressway,chilean,tide,researcher,emissions,profits,lengths,accompanying,witnessed,itunes,drainage,slope,reinforced,feminist,sanskrit,develops,physicians,outlets,isbn,coordinator,averaged,termed,occupy,diagnosed,yearly,humanitarian,prospect,spacecraft,stems,enacted,linux,ancestors,karnataka,constitute,immigrant,thriller,ecclesiastical,generals,celebrations,enhance,heating,advocated,evident,advances,bombardment,watershed,shuttle,wicket,twitter,adds,branded,teaches,schemes,pension,advocacy,conservatory,cairo,varsity,freshwater,providence,seemingly,shells,cuisine,specially,peaks,intensive,publishes,trilogy,skilled,nacional,unemployment,destinations,parameters,verses,trafficking,determination,infinite,savings,alignment,linguistic,countryside,dissolution,measurements,advantages,licence,subfamily,highlands,modest,regent,algeria,crest,teachings,knockout,brewery,combine,conventions,descended,chassis,primitive,fiji,explicitly,cumberland,uruguay,laboratories,bypass,elect,informal,preceded,holocaust,tackle,minneapolis,quantity,securities,console,doctoral,religions,commissioners,expertise,unveiled,precise,diplomat,standings,infant,disciplines,sicily,endorsed,systematic,charted,armored,mild,lateral,townships,hurling,prolific,invested,wartime,compatible,galleries,moist,battlefield,decoration,convent,tubes,terrestrial,nominee,requests,delegate,leased,dubai,polar,applying,addresses,munster,sings,commercials,teamed,dances,eleventh,midland,cedar,flee,sandstone,snails,inspection,divide,asset,themed,comparable,paramount,dairy,archaeology,intact,institutes,rectangular,instances,phases,reflecting,substantially,applies,vacant,lacked,copa,coloured,encounters,sponsors,encoded,possess,revenues,ucla,chaired,a.m.,enabling,playwright,stoke,sociology,tibetan,frames,motto,financing,illustrations,gibraltar,chateau,bolivia,transmitted,enclosed,persuaded,urged,folded,suffolk,regulated,bros.,submarines,myth,oriental,malaysian,effectiveness,narrowly,acute,sunk,replied,utilized,tasmania,consortium,quantities,gains,parkway,enlarged,sided,employers,adequate,accordingly,assumption,ballad,mascot,distances,peaking,saxony,projected,affiliation,limitations,metals,guatemala,scots,theaters,kindergarten,verb,employer,differs,discharge,controller,seasonal,marching,guru,campuses,avoided,vatican,maori,excessive,chartered,modifications,caves,monetary,sacramento,mixing,institutional,celebrities,irrigation,shapes,broadcaster,anthem,attributes,demolition,offshore,specification,surveys,yugoslav,contributor,auditorium,lebanese,capturing,airports,classrooms,chennai,paths,tendency,determining,lacking,upgrade,sailors,detected,kingdoms,sovereignty,freely,decorative,momentum,scholarly,georges,gandhi,speculation,transactions,undertook,interact,similarities,cove,teammate,constituted,painters,tends,madagascar,partnerships,afghan,personalities,attained,rebounds,masses,synagogue,reopened,asylum,embedded,imaging,catalogue,defenders,taxonomy,fiber,afterward,appealed,communists,lisbon,rica,judaism,adviser,batsman,ecological,commands,lgbt,cooling,accessed,wards,shiva,employs,thirds,scenic,worcester,tallest,contestant,humanities,economist,textile,constituencies,motorway,tram,percussion,cloth,leisure,
1880s,baden,flags,resemble,riots,coined,sitcom,composite,implies,daytime,tanzania,penalties,optional,competitor,excluded,steering,reversed,autonomy,reviewer,breakthrough,professionally,damages,pomeranian,deputies,valleys,ventures,highlighted,electorate,mapping,shortened,executives,tertiary,specimen,launching,bibliography,sank,pursuing,binary,descendant,marched,natives,ideology,turks,adolf,archdiocese,tribunal,exceptional,nigerian,preference,fails,loading,comeback,vacuum,favored,alter,remnants,consecrated,spectators,trends,patriarch,feedback,paved,sentences,councillor,astronomy,advocates,broader,commentator,commissions,identifying,revealing,theatres,incomplete,enables,constituent,reformation,tract,haiti,atmospheric,screened,explosive,czechoslovakia,acids,symbolic,subdivision,liberals,incorporate,challenger,erie,filmmaker,laps,kazakhstan,organizational,evolutionary,chemicals,dedication,riverside,fauna,moths,maharashtra,annexed,gen.,resembles,underwater,garnered,timeline,remake,suited,educator,hectares,automotive,feared,latvia,finalist,narrator,portable,airways,plaque,designing,villagers,licensing,flank,statues,struggles,deutsche,migrated,cellular,jacksonville,wimbledon,defining,highlight,preparatory,planets,cologne,employ,frequencies,detachment,readily,libya,resign,halt,helicopters,reef,landmarks,collaborative,irregular,retaining,helsinki,folklore,weakened,viscount,interred,professors,memorable,mega,repertoire,rowing,dorsal,albeit,progressed,operative,coronation,liner,telugu,domains,philharmonic,detect,bengali,synthetic,tensions,atlas,dramatically,paralympics,xbox,shire,kiev,lengthy,sued,notorious,seas,screenwriter,transfers,aquatic,pioneers,unesco,radius,abundant,tunnels,syndicated,inventor,accreditation,janeiro,exeter,ceremonial,omaha,cadet,predators,resided,prose,slavic,precision,abbot,deity,engaging,cambodia,estonian,compliance,demonstrations,protesters,reactor,commodore,successes,chronicles,mare,extant,listings,minerals,tonnes,parody,cultivated,traders,pioneering,supplement,slovak,preparations,collision,partnered,vocational,atoms,malayalam,welcomed,documentation,curved,functioning,presently,formations,incorporates,nazis,botanical,nucleus,ethical,greeks,metric,automated,whereby,stance,europeans,duet,disability,purchasing,email,telescope,displaced,sodium,comparative,processor,inning,precipitation,aesthetic,import,coordination,feud,alternatively,mobility,tibet,regained,succeeding,hierarchy,apostolic,catalog,reproduction,inscriptions,vicar,clusters,posthumously,rican,loosely,additions,photographic,nowadays,selective,derivative,keyboards,guides,collectively,affecting,combines,operas,networking,decisive,terminated,continuity,finishes,ancestor,consul,heated,simulation,leipzig,incorporating,georgetown,formula_2,circa,forestry,portrayal,councillors,advancement,complained,forewings,confined,transaction,definitions,reduces,televised,
1890s,rapids,phenomena,belarus,alps,landscapes,quarterly,specifications,commemorate,continuation,isolation,antenna,downstream,patents,ensuing,tended,saga,lifelong,columnist,labeled,gymnastics,papua,anticipated,demise,encompasses,madras,antarctica,interval,icon,rams,midlands,ingredients,priory,strengthen,rouge,explicit,gaza,aging,securing,anthropology,listeners,adaptations,underway,vista,malay,fortified,lightweight,violations,concerto,financed,jesuit,observers,trustee,descriptions,nordic,resistant,opted,accepts,prohibition,andhra,inflation,negro,wholly,imagery,spur,instructed,gloucester,cycles,middlesex,destroyers,statewide,evacuated,hyderabad,peasants,mice,shipyard,coordinate,pitching,colombian,exploring,numbering,compression,countess,hiatus,exceed,raced,archipelago,traits,soils,o'connor,vowel,android,facto,angola,amino,holders,logistics,circuits,emergence,kuwait,partition,emeritus,outcomes,submission,promotes,barack,negotiated,loaned,stripped,
50th,excavations,treatments,fierce,participant,exports,decommissioned,cameo,remarked,residences,fuselage,mound,undergo,quarry,node,midwest,specializing,occupies,etc.,showcase,molecule,offs,modules,salon,exposition,revision,peers,positioned,hunters,competes,algorithms,reside,zagreb,calcium,uranium,silicon,airs,counterpart,outlet,collectors,sufficiently,canberra,inmates,anatomy,ensuring,curves,aviv,firearms,basque,volcano,thrust,sheikh,extensions,installations,aluminum,darker,sacked,emphasized,aligned,asserted,pseudonym,spanning,decorations,eighteenth,orbital,spatial,subdivided,notation,decay,macedonian,amended,declining,cyclist,feat,unusually,commuter,birthplace,latitude,activation,overhead,
30th,finalists,whites,encyclopedia,tenor,qatar,survives,complement,concentrations,uncommon,astronomical,bangalore,pius,genome,memoir,recruit,prosecutor,modification,paired,container,basilica,arlington,displacement,germanic,mongolia,proportional,debates,matched,calcutta,rows,tehran,aerospace,prevalent,arise,lowland,
24th,spokesman,supervised,advertisements,clash,tunes,revelation,wanderers,quarterfinals,fisheries,steadily,memoirs,pastoral,renewable,confluence,acquiring,strips,slogan,upstream,scouting,analyst,practitioners,turbine,strengthened,heavier,prehistoric,plural,excluding,isles,persecution,turin,rotating,villain,hemisphere,unaware,arabs,corpus,relied,singular,unanimous,schooling,passive,angles,dominance,instituted,aria,outskirts,balanced,beginnings,financially,structured,parachute,viewer,attitudes,subjected,escapes,derbyshire,erosion,addressing,styled,declaring,originating,colts,adjusted,stained,occurrence,fortifications,baghdad,nitrogen,localities,yemen,galway,debris,lodz,victorious,pharmaceutical,substances,unnamed,dwelling,atop,developmental,activism,voter,refugee,forested,relates,overlooking,genocide,kannada,insufficient,oversaw,partisan,dioxide,recipients,factions,mortality,capped,expeditions,receptors,reorganized,prominently,atom,flooded,flute,orchestral,scripts,mathematician,airplay,detached,rebuilding,dwarf,brotherhood,salvation,expressions,arabian,cameroon,poetic,recruiting,bundesliga,inserted,scrapped,disabilities,evacuation,pasha,undefeated,crafts,rituals,aluminium,norm,pools,submerged,occupying,pathway,exams,prosperity,wrestlers,promotions,basal,permits,nationalism,trim,merge,gazette,tributaries,transcription,caste,porto,emerge,modeled,adjoining,counterparts,paraguay,redevelopment,renewal,unreleased,equilibrium,similarity,minorities,soviets,comprise,nodes,tasked,unrelated,expired,johan,precursor,examinations,electrons,socialism,exiled,admiralty,floods,wigan,nonprofit,lacks,brigades,screens,repaired,hanover,fascist,labs,osaka,delays,judged,statutory,colt,col.,offspring,solving,bred,assisting,retains,somalia,grouped,corresponds,tunisia,chaplain,eminent,chord,
22nd,spans,viral,innovations,possessions,mikhail,kolkata,icelandic,implications,introduces,racism,workforce,alto,compulsory,admits,censorship,onset,reluctant,inferior,iconic,progression,liability,turnout,satellites,behavioral,coordinated,exploitation,posterior,averaging,fringe,krakow,mountainous,greenwich,para,plantations,reinforcements,offerings,famed,intervals,constraints,individually,nutrition,
1870s,taxation,threshold,tomatoes,fungi,contractor,ethiopian,apprentice,diabetes,wool,gujarat,honduras,norse,bucharest,
23rd,arguably,accompany,prone,teammates,perennial,vacancy,polytechnic,deficit,okinawa,functionality,reminiscent,tolerance,transferring,myanmar,concludes,neighbours,hydraulic,economically,slower,plots,charities,synod,investor,catholicism,identifies,bronx,interpretations,adverse,judiciary,hereditary,nominal,sensor,symmetry,cubic,triangular,tenants,divisional,outreach,representations,passages,undergoing,cartridge,testified,exceeded,impacts,limiting,railroads,defeats,regain,rendering,humid,retreated,reliability,governorate,antwerp,infamous,implied,packaging,lahore,trades,billed,extinction,ecole,rejoined,recognizes,projection,qualifications,stripes,forts,socially,lexington,accurately,sexuality,westward,wikipedia,pilgrimage,abolition,choral,stuttgart,nests,expressing,strikeouts,assessed,monasteries,reconstructed,humorous,marxist,fertile,consort,urdu,patronage,peruvian,devised,lyric,baba,nassau,communism,extraction,popularly,markings,inability,litigation,accounted,processed,emirates,tempo,cadets,eponymous,contests,broadly,oxide,courtyard,frigate,directory,apex,outline,regency,chiefly,patrols,secretariat,cliffs,residency,privy,armament,australians,dorset,geometric,genetics,scholarships,fundraising,flats,demographic,multimedia,captained,documentaries,updates,canvas,blockade,guerrilla,songwriting,administrators,intake,drought,implementing,fraction,cannes,refusal,inscribed,meditation,announcing,exported,ballots,formula_3,curator,basel,arches,flour,subordinate,confrontation,gravel,simplified,berkshire,patriotic,tuition,employing,servers,castile,posting,combinations,discharged,miniature,mutations,constellation,incarnation,ideals,necessity,granting,ancestral,crowds,pioneered,mormon,methodology,rama,indirect,complexes,bavarian,patrons,uttar,skeleton,bollywood,flemish,viable,bloc,breeds,triggered,sustainability,tailed,referenced,comply,takeover,latvian,homestead,platoon,communal,nationality,excavated,targeting,sundays,posed,physicist,turret,endowment,marginal,dispatched,commentators,renovations,attachment,collaborations,ridges,barriers,obligations,shareholders,prof.,defenses,presided,rite,backgrounds,arbitrary,affordable,gloucestershire,thirteenth,inlet,miniseries,possesses,detained,pressures,subscription,realism,solidarity,proto,postgraduate,noun,burmese,abundance,homage,reasoning,anterior,robust,fencing,shifting,vowels,garde,profitable,loch,anchored,coastline,samoa,terminology,prostitution,magistrate,venezuelan,speculated,regulate,fixture,colonists,digit,induction,manned,expeditionary,computational,centennial,principally,vein,preserving,engineered,numerical,cancellation,conferred,continually,borne,seeded,advertisement,unanimously,treaties,infections,ions,sensors,lowered,amphibious,lava,fourteenth,bahrain,niagara,nicaragua,squares,congregations,
26th,periodic,proprietary,
1860s,contributors,seller,overs,emission,procession,presumed,illustrator,zinc,gases,tens,applicable,stretches,reproductive,sixteenth,apparatus,accomplishments,canoe,guam,oppose,recruitment,accumulated,limerick,namibia,staging,remixes,ordnance,uncertainty,pedestrian,temperate,treason,deposited,registry,cerambycidae,attracting,lankan,reprinted,shipbuilding,homosexuality,neurons,eliminating,
1900s,resume,ministries,beneficial,blackpool,surplus,northampton,licenses,constructing,announcer,standardized,alternatives,taipei,inadequate,failures,yields,medalist,titular,obsolete,torah,burlington,predecessors,lublin,retailers,castles,depiction,issuing,gubernatorial,propulsion,tiles,damascus,discs,alternating,pomerania,peasant,tavern,redesignated,
27th,illustration,focal,mans,codex,specialists,productivity,antiquity,controversies,promoter,pits,companions,behaviors,lyrical,prestige,creativity,swansea,dramas,approximate,feudal,tissues,crude,campaigned,unprecedented,chancel,amendments,surroundings,allegiance,exchanges,align,firmly,optimal,commenting,reigning,landings,obscure,
1850s,contemporaries,paternal,devi,endurance,communes,incorporation,denominations,exchanged,routing,resorts,amnesty,slender,explores,suppression,heats,pronunciation,centred,coupe,stirling,freelance,treatise,linguistics,laos,informs,discovering,pillars,encourages,halted,robots,definitive,maturity,tuberculosis,venetian,silesian,unchanged,originates,mali,lincolnshire,quotes,seniors,premise,contingent,distribute,danube,gorge,logging,dams,curling,seventeenth,specializes,wetlands,deities,assess,thickness,rigid,culminated,utilities,substrate,insignia,nile,assam,shri,currents,suffrage,canadians,mortar,asteroid,bosnian,discoveries,enzymes,sanctioned,replica,hymn,investigators,tidal,dominate,derivatives,converting,leinster,verbs,honoured,criticisms,dismissal,discrete,masculine,reorganization,unlimited,wurttemberg,sacks,allocation,bahn,jurisdictions,participates,lagoon,famine,communion,culminating,surveyed,shortage,cables,intersects,cassette,foremost,adopting,solicitor,outright,bihar,reissued,farmland,dissertation,turnpike,baton,photographed,christchurch,kyoto,finances,rails,histories,linebacker,kilkenny,accelerated,dispersed,handicap,absorption,rancho,ceramic,captivity,cites,font,weighed,mater,utilize,bravery,extract,validity,slovenian,seminars,discourse,ranged,duel,ironically,warships,sega,temporal,surpassed,prolonged,recruits,northumberland,greenland,contributes,patented,eligibility,unification,discusses,reply,translates,beirut,relies,torque,northward,reviewers,monastic,accession,neural,tramway,heirs,sikh,subscribers,amenities,taliban,audit,rotterdam,wagons,kurdish,favoured,combustion,meanings,persia,browser,diagnostic,niger,formula_4,denomination,dividing,parameter,branding,badminton,leningrad,sparked,hurricanes,beetles,propeller,mozambique,refined,diagram,exhaust,vacated,readings,markers,reconciliation,determines,concurrent,imprint,primera,organism,demonstrating,filmmakers,vanderbilt,affiliates,traction,evaluated,defendants,megachile,investigative,zambia,assassinated,rewarded,probable,staffordshire,foreigners,directorate,nominees,consolidation,commandant,reddish,differing,unrest,drilling,bohemia,resembling,instrumentation,considerations,haute,promptly,variously,dwellings,clans,tablet,enforced,cockpit,semifinal,hussein,prisons,ceylon,emblem,monumental,phrases,correspond,crossover,outlined,characterised,acceleration,caucus,crusade,protested,composing,rajasthan,habsburg,rhythmic,interception,inherent,cooled,ponds,spokesperson,gradual,consultation,kuala,globally,suppressed,builders,avengers,suffix,integer,enforce,fibers,unionist,proclamation,uncovered,infrared,adapt,eisenhower,utilizing,captains,stretched,observing,assumes,prevents,analyses,saxophone,caucasus,notices,villains,dartmouth,mongol,hostilities,stretching,veterinary,lenses,texture,prompting,overthrow,excavation,islanders,masovian,battleship,biographer,replay,degradation,departing,luftwaffe,fleeing,oversight,immigrated,serbs,fishermen,strengthening,respiratory,italians,denotes,radial,escorted,motif,wiltshire,expresses,accessories,reverted,establishments,inequality,protocols,charting,famously,satirical,entirety,trench,friction,atletico,sampling,subset,weekday,upheld,sharply,correlation,incorrect,mughal,travelers,hasan,earnings,offset,evaluate,specialised,recognizing,flexibility,nagar,postseason,algebraic,capitalism,crystals,melodies,polynomial,racecourse,defences,austro,wembley,attracts,anarchist,resurrection,reviewing,decreasing,prefix,ratified,mutation,displaying,separating,restoring,assemblies,ordinance,priesthood,cruisers,appoint,moldova,imports,directive,epidemic,militant,senegal,signaling,restriction,critique,retrospective,nationalists,undertake,sioux,canals,algerian,redesigned,philanthropist,depict,conceptual,turbines,intellectuals,eastward,applicants,contractors,vendors,undergone,namesake,ensured,tones,substituted,hindwings,arrests,tombs,transitional,principality,reelection,taiwanese,cavity,manifesto,broadcasters,spawned,thoroughbred,identities,generators,proposes,hydroelectric,johannesburg,cortex,scandinavian,killings,aggression,boycott,catalyst,physiology,fifteenth,waterfront,chromosome,organist,costly,calculation,cemeteries,flourished,recognise,juniors,merging,disciples,ashore,workplace,enlightenment,diminished,debated,hailed,podium,educate,mandated,distributor,litre,electromagnetic,flotilla,estuary,peterborough,staircase,selections,melodic,confronts,wholesale,integrate,intercepted,catalonia,unite,immense,palatinate,switches,earthquakes,occupational,successors,praising,concluding,faculties,firstly,overhaul,empirical,metacritic,inauguration,evergreen,laden,winged,philosophers,amalgamated,geoff,centimeters,napoleonic,upright,planting,brewing,fined,sensory,migrants,wherein,inactive,headmaster,warwickshire,siberia,terminals,denounced,academia,divinity,bilateral,clive,omitted,peerage,relics,apartheid,syndicate,fearing,fixtures,desirable,dismantled,ethnicity,valves,biodiversity,aquarium,ideological,visibility,creators,analyzed,tenant,balkan,postwar,supplier,smithsonian,risen,morphology,digits,bohemian,wilmington,vishnu,demonstrates,aforementioned,biographical,mapped,khorasan,phosphate,presentations,ecosystem,processors,calculations,mosaic,clashes,penned,recalls,coding,angular,lattice,macau,accountability,extracted,pollen,therapeutic,overlap,violinist,deposed,candidacy,infants,covenant,bacterial,restructuring,dungeons,ordination,conducts,builds,invasive,customary,concurrently,relocation,cello,statutes,borneo,entrepreneurs,sanctions,packet,rockefeller,piedmont,comparisons,waterfall,receptions,glacial,surge,signatures,alterations,advertised,enduring,somali,botanist,
100th,canonical,motifs,longitude,circulated,alloy,indirectly,margins,preserves,internally,besieged,shale,peripheral,drained,baseman,reassigned,tobago,soloist,socio,grazing,contexts,roofs,portraying,ottomans,shrewsbury,noteworthy,lamps,supplying,beams,qualifier,portray,greenhouse,stronghold,hitter,rites,cretaceous,urging,derive,nautical,aiming,fortunes,verde,donors,reliance,exceeding,exclusion,exercised,simultaneous,continents,guiding,pillar,gradient,poznan,eruption,clinics,moroccan,indicator,trams,piers,parallels,fragment,teatro,potassium,satire,compressed,businessmen,influx,seine,perspectives,shelters,decreases,mounting,formula_5,confederacy,equestrian,expulsion,mayors,liberia,resisted,affinity,shrub,unexpectedly,stimulus,amtrak,deported,perpendicular,statesman,wharf,storylines,romanesque,weights,surfaced,interceptions,dhaka,crambidae,orchestras,rwanda,conclude,constitutes,subsidiaries,admissions,prospective,shear,bilingual,campaigning,presiding,domination,commemorative,trailing,confiscated,petrol,acquisitions,polymer,onlyinclude,chloride,elevations,resolutions,hurdles,pledged,likelihood,objected,erect,encoding,databases,aristotle,hindus,marshes,bowled,ministerial,grange,acronym,annexation,squads,ambient,pilgrims,botany,sofla,astronomer,planetary,descending,bestowed,ceramics,diplomacy,metabolism,colonization,potomac,africans,engraved,recycling,commitments,resonance,disciplinary,jamaican,narrated,spectral,tipperary,waterford,stationary,arbitration,transparency,threatens,crossroads,slalom,oversee,centenary,incidence,economies,livery,moisture,newsletter,autobiographical,bhutan,propelled,dependence,moderately,adobe,barrels,subdivisions,outlook,labelled,stratford,arising,diaspora,barony,automobiles,ornamental,slated,norms,primetime,generalized,analysts,vectors,libyan,yielded,certificates,rooted,vernacular,belarusian,marketplace,prediction,fairfax,malawi,viruses,wooded,demos,mauritius,prosperous,coincided,liberties,huddersfield,ascent,warnings,hinduism,glucose,pulitzer,unused,filters,illegitimate,acquitted,protestants,canopy,staple,psychedelic,winding,abbas,pathways,cheltenham,lagos,niche,invaders,proponents,barred,conversely,doncaster,recession,embraced,rematch,concession,emigration,upgrades,bowls,tablets,remixed,loops,kensington,shootout,monarchs,organizers,harmful,punjabi,broadband,exempt,neolithic,profiles,portrays,parma,cyrillic,quasi,attested,regimental,revive,torpedoes,heidelberg,rhythms,spherical,denote,hymns,icons,theologian,qaeda,exceptionally,reinstated,comune,playhouse,lobbying,grossing,viceroy,delivers,visually,armistice,utrecht,syllable,vertices,analogous,annex,refurbished,entrants,knighted,disciple,rhetoric,detailing,inactivated,ballads,algae,intensified,favourable,sanitation,receivers,pornography,commemorated,cannons,entrusted,manifold,photographers,pueblo,textiles,steamer,myths,marquess,onward,liturgical,romney,uzbekistan,consistency,denoted,hertfordshire,convex,hearings,sulfur,universidad,podcast,selecting,emperors,arises,justices,
1840s,mongolian,exploited,termination,digitally,infectious,sedan,symmetric,penal,illustrate,formulation,attribute,problematic,modular,inverse,berth,searches,rutgers,leicestershire,enthusiasts,lockheed,upwards,transverse,accolades,backward,archaeologists,crusaders,nuremberg,defects,ferries,vogue,containers,openings,transporting,separates,lumpur,purchases,attain,wichita,topology,woodlands,deleted,periodically,syntax,overturned,musicals,corp.,strasbourg,instability,nationale,prevailing,cache,marathi,versailles,unmarried,grains,straits,antagonist,segregation,assistants,d'etat,contention,dictatorship,unpopular,motorcycles,criterion,analytical,salzburg,militants,hanged,worcestershire,emphasize,paralympic,erupted,convinces,offences,oxidation,nouns,populace,atari,spanned,hazardous,educators,playable,births,baha'i,preseason,generates,invites,meteorological,handbook,foothills,enclosure,diffusion,mirza,convergence,geelong,coefficient,connector,formula_6,cylindrical,disasters,pleaded,knoxville,contamination,compose,libertarian,arrondissement,franciscan,intercontinental,susceptible,initiation,malaria,unbeaten,consonants,waived,saloon,popularized,estadio,pseudo,interdisciplinary,transports,transformers,carriages,bombings,revolves,ceded,collaborator,celestial,exemption,colchester,maltese,oceanic,ligue,crete,shareholder,routed,depictions,ridden,advisors,calculate,lending,guangzhou,simplicity,newscast,scheduling,snout,eliot,undertaking,armenians,nottinghamshire,whitish,consulted,deficiency,salle,cinemas,superseded,rigorous,kerman,convened,landowners,modernization,evenings,pitches,conditional,scandinavia,differed,formulated,cyclists,swami,guyana,dunes,electrified,appalachian,abdomen,scenarios,prototypes,sindh,consonant,adaptive,boroughs,wolverhampton,modelling,cylinders,amounted,minimize,ambassadors,lenin,settler,coincide,approximation,grouping,murals,bullying,registers,rumours,engagements,energetic,vertex,annals,bordering,geologic,yellowish,runoff,converts,allegheny,facilitated,saturdays,colliery,monitored,rainforest,interfaces,geographically,impaired,prevalence,joachim,paperback,slowed,shankar,distinguishing,seminal,categorized,authorised,auspices,bandwidth,asserts,rebranded,balkans,supplemented,seldom,weaving,capsule,apostles,populous,monmouth,payload,symphonic,densely,shoreline,managerial,masonry,antioch,averages,textbooks,royalist,coliseum,tandem,brewers,diocesan,posthumous,walled,incorrectly,distributions,ensued,reasonably,graffiti,propagation,automation,harmonic,augmented,middleweight,limbs,elongated,landfall,comparatively,literal,grossed,koppen,wavelength,
1830s,cerebral,boasts,congestion,physiological,practitioner,coasts,cartoonist,undisclosed,frontal,launches,burgundy,qualifiers,imposing,stade,flanked,assyrian,raided,multiplayer,montane,chesapeake,pathology,drains,vineyards,intercollegiate,semiconductor,grassland,convey,citations,predominant,rejects,benefited,yahoo,graphs,busiest,encompassing,hamlets,explorers,suppress,minors,graphical,calculus,sediment,intends,diverted,mainline,unopposed,cottages,initiate,alumnus,towed,autism,forums,darlington,modernist,oxfordshire,lectured,capitalist,suppliers,panchayat,actresses,foundry,southbound,commodity,wesleyan,divides,palestinians,luton,caretaker,nobleman,mutiny,organizer,preferences,nomenclature,splits,unwilling,offenders,timor,relying,halftime,semitic,arithmetic,milestone,jesuits,arctiidae,retrieved,consuming,contender,edged,plagued,inclusive,transforming,khmer,federally,insurgents,distributing,amherst,rendition,prosecutors,viaduct,disqualified,kabul,liturgy,prevailed,reelected,instructors,swimmers,aperture,churchyard,interventions,totals,darts,metropolis,fuels,fluent,northbound,correctional,inflicted,barrister,realms,culturally,aristocratic,collaborating,emphasizes,choreographer,inputs,ensembles,humboldt,practised,endowed,strains,infringement,archaeologist,congregational,magna,relativity,efficiently,proliferation,mixtape,abruptly,regeneration,commissioning,yukon,archaic,reluctantly,retailer,northamptonshire,universally,crossings,boilers,nickelodeon,revue,abbreviation,retaliation,scripture,routinely,medicinal,benedictine,kenyan,retention,deteriorated,glaciers,apprenticeship,coupling,researched,topography,entrances,anaheim,pivotal,compensate,arched,modify,reinforce,dusseldorf,journeys,motorsport,conceded,sumatra,spaniards,quantitative,loire,cinematography,discarded,botswana,morale,engined,zionist,philanthropy,sainte,fatalities,cypriot,motorsports,indicators,pricing,institut,bethlehem,implicated,gravitational,differentiation,rotor,thriving,precedent,ambiguous,concessions,forecast,conserved,fremantle,asphalt,landslide,middlesbrough,formula_7,humidity,overseeing,chronological,diaries,multinational,crimean,turnover,improvised,youths,declares,tasmanian,canadiens,fumble,refinery,weekdays,unconstitutional,upward,guardians,brownish,imminent,hamas,endorsement,naturalist,martyrs,caledonia,chords,yeshiva,reptiles,severity,mitsubishi,fairs,installment,substitution,repertory,keyboardist,interpreter,silesia,noticeable,rhineland,transmit,inconsistent,booklet,academies,epithet,pertaining,progressively,aquatics,scrutiny,prefect,toxicity,rugged,consume,o'donnell,evolve,uniquely,cabaret,mediated,landowner,transgender,palazzo,compilations,albuquerque,induce,sinai,remastered,efficacy,underside,analogue,specify,possessing,advocating,compatibility,liberated,greenville,mecklenburg,header,memorials,sewage,rhodesia,
1800s,salaries,atoll,coordinating,partisans,repealed,amidst,subjective,optimization,nectar,evolving,exploits,madhya,styling,accumulation,raion,postage,responds,buccaneers,frontman,brunei,choreography,coated,kinetic,sampled,inflammatory,complementary,eclectic,norte,vijay,a.k.a,mainz,casualty,connectivity,laureate,franchises,yiddish,reputed,unpublished,economical,periodicals,vertically,bicycles,brethren,capacities,unitary,archeological,tehsil,domesday,wehrmacht,justification,angered,mysore,fielded,abuses,nutrients,ambitions,taluk,battleships,symbolism,superiority,neglect,attendees,commentaries,collaborators,predictions,yorker,breeders,investing,libretto,informally,coefficients,memorandum,pounder,collingwood,tightly,envisioned,arbor,mistakenly,captures,nesting,conflicting,enhancing,streetcar,manufactures,buckinghamshire,rewards,commemorating,stony,expenditure,tornadoes,semantic,relocate,weimar,iberian,sighted,intending,ensign,beverages,expectation,differentiate,centro,utilizes,saxophonist,catchment,transylvania,ecosystems,shortest,sediments,socialists,ineffective,kapoor,formidable,heroine,guantanamo,prepares,scattering,pamphlet,verified,elector,barons,totaling,shrubs,pyrenees,amalgamation,mutually,longitudinal,comte,negatively,masonic,envoy,sexes,akbar,mythical,tonga,bishopric,assessments,malaya,warns,interiors,reefs,reflections,neutrality,musically,nomadic,waterways,provence,collaborate,scaled,adulthood,emerges,euros,optics,incentives,overland,periodical,liege,awarding,realization,slang,affirmed,schooner,hokkaido,czechoslovak,protectorate,undrafted,disagreed,commencement,electors,spruce,swindon,fueled,equatorial,inventions,suites,slovene,backdrop,adjunct,energies,remnant,inhabit,alliances,simulcast,reactors,mosques,travellers,outfielder,plumage,migratory,benin,experimented,fibre,projecting,drafting,laude,evidenced,northernmost,indicted,directional,replication,croydon,comedies,jailed,organizes,devotees,reservoirs,turrets,originate,economists,songwriters,junta,trenches,mounds,proportions,comedic,apostle,azerbaijani,farmhouse,resembled,disrupted,playback,mixes,diagonal,relevance,govern,programmer,gdansk,maize,soundtracks,tendencies,mastered,impacted,believers,kilometre,intervene,chairperson,aerodrome,sails,subsidies,ensures,aesthetics,congresses,ratios,sardinia,southernmost,functioned,controllers,downward,randomly,distortion,regents,palatine,disruption,spirituality,vidhan,tracts,compiler,ventilation,anchorage,symposium,assert,pistols,excelled,avenues,convoys,moniker,constructions,proponent,phased,spines,organising,schleswig,policing,campeonato,mined,hourly,croix,lucrative,authenticity,haitian,stimulation,burkina,espionage,midfield,manually,staffed,awakening,metabolic,biographies,entrepreneurship,conspicuous,guangdong,preface,subgroup,mythological,adjutant,feminism,vilnius,oversees,honourable,tripoli,stylized,kinase,societe,notoriety,altitudes,configurations,outward,transmissions,announces,auditor,ethanol,clube,nanjing,mecca,haifa,blogs,postmaster,paramilitary,depart,positioning,potent,recognizable,spire,brackets,remembrance,overlapping,turkic,articulated,scientology,operatic,deploy,readiness,biotechnology,restrict,cinematographer,inverted,synonymous,administratively,westphalia,commodities,replaces,downloads,centralized,munitions,preached,sichuan,fashionable,implementations,matrices,hiv/aids,loyalist,luzon,celebrates,hazards,heiress,mercenaries,synonym,creole,ljubljana,technician,auditioned,technicians,viewpoint,wetland,mongols,princely,sharif,coating,dynasties,southward,doubling,formula_8,mayoral,harvesting,conjecture,goaltender,oceania,spokane,welterweight,bracket,gatherings,weighted,newscasts,mussolini,affiliations,disadvantage,vibrant,spheres,sultanate,distributors,disliked,establishes,marches,drastically,yielding,jewellery,yokohama,vascular,airlift,canons,subcommittee,repression,strengths,graded,outspoken,fused,pembroke,filmography,redundant,fatigue,repeal,threads,reissue,pennant,edible,vapor,corrections,stimuli,commemoration,dictator,anand,secession,amassed,orchards,pontifical,experimentation,greeted,bangor,forwards,decomposition,quran,trolley,chesterfield,traverse,sermons,burials,skier,climbs,consultants,petitioned,reproduce,parted,illuminated,kurdistan,reigned,occupants,packaged,geometridae,woven,regulating,protagonists,crafted,affluent,clergyman,consoles,migrant,supremacy,attackers,caliph,defect,convection,rallies,huron,resin,segunda,quota,warship,overseen,criticizing,shrines,glamorgan,lowering,beaux,hampered,invasions,conductors,collects,bluegrass,surrounds,substrates,perpetual,chronology,pulmonary,executions,crimea,compiling,noctuidae,battled,tumors,minsk,novgorod,serviced,yeast,computation,swamps,theodor,baronetcy,salford,uruguayan,shortages,odisha,siberian,novelty,cinematic,invitational,decks,dowager,oppression,bandits,appellate,state-of-the-art,clade,palaces,signalling,galaxies,industrialist,tensor,learnt,incurred,magistrates,binds,orbits,ciudad,willingness,peninsular,basins,biomedical,shafts,marlborough,bournemouth,withstand,fitzroy,dunedin,variance,steamship,integrating,muscular,fines,akron,bulbophyllum,malmo,disclosed,cornerstone,runways,medicines,twenty20,gettysburg,progresses,frigates,bodied,transformations,transforms,helens,modelled,versatile,regulator,pursuits,legitimacy,amplifier,scriptures,voyages,examines,presenters,octagonal,poultry,formula_9,anatolia,computed,migrate,directorial,hybrids,localized,preferring,guggenheim,persisted,grassroots,inflammation,fishery,otago,vigorous,professions,instructional,inexpensive,insurgency,legislators,sequels,surnames,agrarian,stainless,nairobi,minas,forerunner,aristocracy,transitions,sicilian,showcased,doses,hiroshima,summarized,gearbox,emancipation,limitation,nuclei,seismic,abandonment,dominating,appropriations,occupations,electrification,hilly,contracting,exaggerated,entertainer,kazan,oricon,cartridges,characterization,parcel,maharaja,exceeds,aspiring,obituary,flattened,contrasted,narration,replies,oblique,outpost,fronts,arranger,talmud,keynes,doctrines,endured,confesses,fortification,supervisors,kilometer,academie,jammu,bathurst,piracy,prostitutes,navarre,cumulative,cruises,lifeboat,twinned,radicals,interacting,expenditures,wexford,libre,futsal,curated,clockwise,colloquially,procurement,immaculate,lyricist,enhancement,porcelain,alzheimer,highlighting,judah,disagreements,storytelling,sheltered,wroclaw,vaudeville,contrasts,neoclassical,compares,contrasting,deciduous,francaise,descriptive,cyclic,reactive,antiquities,meiji,repeats,creditors,forcibly,newmarket,picturesque,impending,uneven,bison,raceway,solvent,ecumenical,optic,professorship,harvested,waterway,banjo,pharaoh,geologist,scanning,dissent,recycled,unmanned,retreating,gospels,aqueduct,branched,tallinn,groundbreaking,syllables,hangar,designations,procedural,craters,cabins,encryption,anthropologist,montevideo,outgoing,inverness,chattanooga,fascism,calais,chapels,groundwater,downfall,misleading,robotic,tortricidae,pixel,handel,prohibit,crewe,renaming,reprised,kickoff,leftist,spaced,integers,causeway,pines,authorship,organise,ptolemy,accessibility,virtues,lesions,iroquois,qur'an,atheist,synthesized,biennial,confederates,dietary,skaters,stresses,tariff,koreans,intercity,republics,quintet,baroness,naive,amplitude,insistence,tbilisi,residues,grammatical,diversified,egyptians,accompaniment,vibration,repository,mandal,topological,distinctions,coherent,invariant,batters,nuevo,internationals,implements,follower,bahia,widened,independents,cantonese,totaled,guadalajara,wolverines,befriended,muzzle,surveying,hungarians,medici,deportation,rayon,approx,recounts,attends,clerical,hellenic,furnished,alleging,soluble,systemic,gallantry,bolshevik,intervened,hostel,gunpowder,specialising,stimulate,leiden,removes,thematic,floral,bafta,printers,conglomerate,eroded,analytic,successively,lehigh,thessaloniki,kilda,clauses,ascended,nehru,scripted,tokugawa,competence,diplomats,exclude,consecration,freedoms,assaults,revisions,blacksmith,textual,sparse,concacaf,slain,uploaded,enraged,whaling,guise,stadiums,debuting,dormitory,cardiovascular,yunnan,dioceses,consultancy,notions,lordship,archdeacon,collided,medial,airfields,garment,wrestled,adriatic,reversal,refueling,verification,jakob,horseshoe,intricate,veracruz,sarawak,syndication,synthesizer,anthologies,stature,feasibility,guillaume,narratives,publicized,antrim,intermittent,constituents,grimsby,filmmaking,doping,unlawful,nominally,transmitting,documenting,seater,internationale,ejected,steamboat,alsace,boise,ineligible,geared,vassal,mustered,ville,inline,pairing,eurasian,kyrgyzstan,barnsley,reprise,stereotypes,rushes,conform,firefighters,deportivo,revolutionaries,rabbis,concurrency,charters,sustaining,aspirations,algiers,chichester,falkland,morphological,systematically,volcanoes,designate,artworks,reclaimed,jurist,anglia,resurrected,chaotic,feasible,circulating,simulated,environmentally,confinement,adventist,harrisburg,laborers,ostensibly,universiade,pensions,influenza,bratislava,octave,refurbishment,gothenburg,putin,barangay,annapolis,breaststroke,illustrates,distorted,choreographed,promo,emphasizing,stakeholders,descends,exhibiting,intrinsic,invertebrates,evenly,roundabout,salts,formula_10,strata,inhibition,branching,stylistic,rumored,realises,mitochondrial,commuted,adherents,logos,bloomberg,telenovela,guineas,charcoal,engages,winery,reflective,siena,cambridgeshire,ventral,flashback,installing,engraving,grasses,traveller,rotated,proprietor,nationalities,precedence,sourced,trainers,cambodian,reductions,depleted,saharan,classifications,biochemistry,plaintiffs,arboretum,humanist,fictitious,aleppo,climates,bazaar,his/her,homogeneous,multiplication,moines,indexed,linguist,skeletal,foliage,societal,differentiated,informing,mammal,infancy,archival,cafes,malls,graeme,musee,schizophrenia,fargo,pronouns,derivation,descend,ascending,terminating,deviation,recaptured,confessions,weakening,tajikistan,bahadur,pasture,b/hip,donegal,supervising,sikhs,thinkers,euclidean,reinforcement,friars,portage,fuscous,lucknow,synchronized,assertion,choirs,privatization,corrosion,multitude,skyscraper,royalties,ligament,usable,spores,directs,clashed,stockport,fronted,dependency,contiguous,biologist,backstroke,powerhouse,frescoes,phylogenetic,welding,kildare,gabon,conveyed,augsburg,severn,continuum,sahib,lille,injuring,passeriformesfamily,succeeds,translating,unitarian,startup,turbulent,outlying,philanthropic,stanislaw,idols,claremont,conical,haryana,armagh,blended,implicit,conditioned,modulation,rochdale,labourers,coinage,shortstop,potsdam,gears,obesity,bestseller,advisers,bouts,comedians,jozef,lausanne,taxonomic,correlated,columbian,marne,indications,psychologists,libel,edict,beaufort,disadvantages,renal,finalized,racehorse,unconventional,disturbances,falsely,zoology,adorned,redesign,executing,narrower,commended,appliances,stalls,resurgence,saskatoon,miscellaneous,permitting,epoch,formula_11,cumbria,forefront,vedic,eastenders,disposed,supermarkets,rower,inhibitor,magnesium,colourful,yusuf,harrow,formulas,centrally,balancing,ionic,nocturnal,consolidate,ornate,raiding,charismatic,accelerate,nominate,residual,dhabi,commemorates,attribution,uninhabited,mindanao,atrocities,genealogical,romani,applicant,enactment,abstraction,trough,pulpit,minuscule,misconduct,grenades,timely,supplements,messaging,curvature,ceasefire,telangana,susquehanna,braking,redistribution,shreveport,neighbourhoods,gregorian,widowed,khuzestan,empowerment,scholastic,evangelist,peptide,topical,theorist,historia,thence,sudanese,museo,jurisprudence,masurian,frankish,headlined,recounted,netball,petitions,tolerant,hectare,truncated,southend,methane,captives,reigns,massif,subunit,acidic,weightlifting,footballers,sabah,britannia,tunisian,segregated,sawmill,withdrawing,unpaid,weaponry,somme,perceptions,unicode,alcoholism,durban,wrought,waterfalls,jihad,auschwitz,upland,eastbound,adjective,anhalt,evaluating,regimes,guildford,reproduced,pamphlets,hierarchical,maneuvers,hanoi,fabricated,repetition,enriched,arterial,replacements,tides,globalization,adequately,westbound,satisfactory,fleets,phosphorus,lastly,neuroscience,anchors,xinjiang,membranes,improvisation,shipments,orthodoxy,submissions,bolivian,mahmud,ramps,leyte,pastures,outlines,flees,transmitters,fares,sequential,stimulated,novice,alternately,symmetrical,breakaway,layered,baronets,lizards,blackish,edouard,horsepower,penang,principals,mercantile,maldives,overwhelmingly,hawke,rallied,prostate,conscription,juveniles,maccabi,carvings,strikers,sudbury,spurred,improves,lombardy,macquarie,parisian,elastic,distillery,shetland,humane,brentford,wrexham,warehouses,routines,encompassed,introductory,isfahan,instituto,palais,revolutions,sporadic,impoverished,portico,fellowships,speculative,enroll,dormant,adhere,fundamentally,sculpted,meritorious,template,upgrading,reformer,rectory,uncredited,indicative,creeks,galveston,radically,hezbollah,firearm,educating,prohibits,trondheim,locus,refit,headwaters,screenings,lowlands,wasps,coarse,attaining,sedimentary,perished,pitchfork,interned,cerro,stagecoach,aeronautical,liter,transitioned,haydn,inaccurate,legislatures,bromwich,knesset,spectroscopy,butte,asiatic,degraded,concordia,catastrophic,lobes,wellness,pensacola,periphery,hapoel,theta,horizontally,freiburg,liberalism,pleas,durable,warmian,offenses,mesopotamia,shandong,unsuitable,hospitalized,appropriately,phonetic,encompass,conversions,observes,illnesses,breakout,assigns,crowns,inhibitors,nightly,manifestation,fountains,maximize,alphabetical,sloop,expands,newtown,widening,gaddafi,commencing,camouflage,footprint,tyrol,barangays,universite,highlanders,budgets,query,lobbied,westchester,equator,stipulated,pointe,distinguishes,allotted,embankment,advises,storing,loyalists,fourier,rehearsals,starvation,gland,rihanna,tubular,expressive,baccalaureate,intersections,revered,carbonate,eritrea,craftsmen,cosmopolitan,sequencing,corridors,shortlisted,bangladeshi,persians,mimic,parades,repetitive,recommends,flanks,promoters,incompatible,teaming,ammonia,greyhound,solos,improper,legislator,newsweek,recurrent,vitro,cavendish,eireann,crises,prophets,mandir,strategically,guerrillas,formula_12,ghent,contenders,equivalence,drone,sociological,hamid,castes,statehood,aland,clinched,relaunched,tariffs,simulations,williamsburg,rotate,mediation,smallpox,harmonica,lodges,lavish,restrictive,o'sullivan,detainees,polynomials,echoes,intersecting,learners,elects,charlemagne,defiance,epsom,liszt,facilitating,absorbing,revelations,padua,pieter,pious,penultimate,mammalian,montenegrin,supplementary,widows,aromatic,croats,roanoke,trieste,legions,subdistrict,babylonian,grasslands,volga,violently,sparsely,oldies,telecommunication,respondents,quarries,downloadable,commandos,taxpayer,catalytic,malabar,afforded,copying,declines,nawab,junctions,assessing,filtering,classed,disused,compliant,christoph,gottingen,civilizations,hermitage,caledonian,whereupon,ethnically,springsteen,mobilization,terraces,indus,excel,zoological,enrichment,simulate,guitarists,registrar,cappella,invoked,reused,manchu,configured,uppsala,genealogy,mergers,casts,curricular,rebelled,subcontinent,horticultural,parramatta,orchestrated,dockyard,claudius,decca,prohibiting,turkmenistan,brahmin,clandestine,obligatory,elaborated,parasitic,helix,constraint,spearheaded,rotherham,eviction,adapting,albans,rescues,sociologist,guiana,convicts,occurrences,kamen,antennas,asturias,wheeled,sanitary,deterioration,trier,theorists,baseline,announcements,valea,planners,factual,serialized,serials,bilbao,demoted,fission,jamestown,cholera,alleviate,alteration,indefinite,sulfate,paced,climatic,valuation,artisans,proficiency,aegean,regulators,fledgling,sealing,influencing,servicemen,frequented,cancers,tambon,narayan,bankers,clarified,embodied,engraver,reorganisation,dissatisfied,dictated,supplemental,temperance,ratification,puget,nutrient,pretoria,papyrus,uniting,ascribed,cores,coptic,schoolhouse,barrio,
1910s,armory,defected,transatlantic,regulates,ported,artefacts,specifies,boasted,scorers,mollusks,emitted,navigable,quakers,projective,dialogues,reunification,exponential,vastly,banners,unsigned,dissipated,halves,coincidentally,leasing,purported,escorting,estimation,foxes,lifespan,inflorescence,assimilation,showdown,staunch,prologue,ligand,superliga,telescopes,northwards,keynote,heaviest,taunton,redeveloped,vocalists,podlaskie,soyuz,rodents,azores,moravian,outset,parentheses,apparel,domestically,authoritative,polymers,monterrey,inhibit,launcher,jordanian,folds,taxis,mandates,singled,liechtenstein,subsistence,marxism,ousted,governorship,servicing,offseason,modernism,prism,devout,translators,islamist,chromosomes,pitted,bedfordshire,fabrication,authoritarian,javanese,leaflets,transient,substantive,predatory,sigismund,assassinate,diagrams,arrays,rediscovered,reclamation,spawning,fjord,peacekeeping,strands,fabrics,highs,regulars,tirana,ultraviolet,athenian,filly,barnet,naacp,nueva,favourites,terminates,showcases,clones,inherently,interpreting,bjorn,finely,lauded,unspecified,chola,pleistocene,insulation,antilles,donetsk,funnel,nutritional,biennale,reactivated,southport,primate,cavaliers,austrians,interspersed,restarted,suriname,amplifiers,wladyslaw,blockbuster,sportsman,minogue,brightness,benches,bridgeport,initiating,israelis,orbiting,newcomers,externally,scaling,transcribed,impairment,luxurious,longevity,impetus,temperament,ceilings,tchaikovsky,spreads,pantheon,bureaucracy,
1820s,heraldic,villas,formula_13,galician,meath,avoidance,corresponded,headlining,connacht,seekers,rappers,solids,monograph,scoreless,opole,isotopes,himalayas,parodies,garments,microscopic,republished,havilland,orkney,demonstrators,pathogen,saturated,hellenistic,facilitates,aerodynamic,relocating,indochina,laval,astronomers,bequeathed,administrations,extracts,nagoya,torquay,demography,medicare,ambiguity,renumbered,pursuant,concave,syriac,electrode,dispersal,henan,bialystok,walsall,crystalline,puebla,janata,illumination,tianjin,enslaved,coloration,championed,defamation,grille,johor,rejoin,caspian,fatally,planck,workings,appointing,institutionalized,wessex,modernized,exemplified,regatta,jacobite,parochial,programmers,blending,eruptions,insurrection,regression,indices,sited,dentistry,mobilized,furnishings,levant,primaries,ardent,nagasaki,conqueror,dorchester,opined,heartland,amman,mortally,wellesley,bowlers,outputs,coveted,orthography,immersion,disrepair,disadvantaged,curate,childless,condensed,codice_1,remodeled,resultant,bolsheviks,superfamily,saxons,
2010s,contractual,rivalries,malacca,oaxaca,magnate,vertebrae,quezon,olympiad,yucatan,tyres,macro,specialization,commendation,caliphate,gunnery,exiles,excerpts,fraudulent,adjustable,aramaic,interceptor,drumming,standardization,reciprocal,adolescents,federalist,aeronautics,favorably,enforcing,reintroduced,zhejiang,refining,biplane,banknotes,accordion,intersect,illustrating,summits,classmate,militias,biomass,massacres,epidemiology,reworked,wrestlemania,nantes,auditory,taxon,elliptical,chemotherapy,asserting,avoids,proficient,airmen,yellowstone,multicultural,alloys,utilization,seniority,kuyavian,huntsville,orthogonal,bloomington,cultivars,casimir,internment,repulsed,impedance,revolving,fermentation,parana,shutout,partnering,empowered,islamabad,polled,classify,amphibians,greyish,obedience,
4x100,projectile,khyber,halfback,relational,d'ivoire,synonyms,endeavour,padma,customized,mastery,defenceman,berber,purge,interestingly,covent,promulgated,restricting,condemnation,hillsborough,walkers,privateer,intra,captaincy,naturalized,huffington,detecting,hinted,migrating,bayou,counterattack,anatomical,foraging,unsafe,swiftly,outdated,paraguayan,attire,masjid,endeavors,jerseys,triassic,quechua,growers,axial,accumulate,wastewater,cognition,fungal,animator,pagoda,kochi,uniformly,antibody,yerevan,hypotheses,combatants,italianate,draining,fragmentation,snowfall,formative,inversion,kitchener,identifier,additive,lucha,selects,ashland,cambrian,racetrack,trapping,congenital,primates,wavelengths,expansions,yeomanry,harcourt,wealthiest,awaited,punta,intervening,aggressively,vichy,piloted,midtown,tailored,heyday,metadata,guadalcanal,inorganic,hadith,pulses,francais,tangent,scandals,erroneously,tractors,pigment,constabulary,jiangsu,landfill,merton,basalt,astor,forbade,debuts,collisions,exchequer,stadion,roofed,flavour,sculptors,conservancy,dissemination,electrically,undeveloped,existent,surpassing,pentecostal,manifested,amend,formula_14,superhuman,barges,tunis,analytics,argyll,liquids,mechanized,domes,mansions,himalayan,indexing,reuters,nonlinear,purification,exiting,timbers,triangles,decommissioning,departmental,causal,fonts,americana,sept.,seasonally,incomes,razavi,sheds,memorabilia,rotational,terre,sutra,protege,yarmouth,grandmaster,annum,looted,imperialism,variability,liquidation,baptised,isotope,showcasing,milling,rationale,hammersmith,austen,streamlined,acknowledging,contentious,qaleh,breadth,turing,referees,feral,toulon,unofficially,identifiable,standout,labeling,dissatisfaction,jurgen,angrily,featherweight,cantons,constrained,dominates,standalone,relinquished,theologians,markedly,italics,downed,nitrate,likened,gules,craftsman,singaporean,pixels,mandela,moray,parity,departement,antigen,academically,burgh,brahma,arranges,wounding,triathlon,nouveau,vanuatu,banded,acknowledges,unearthed,stemming,authentication,byzantines,converge,nepali,commonplace,deteriorating,recalling,palette,mathematicians,greenish,pictorial,ahmedabad,rouen,validation,u.s.a.,'best,malvern,archers,converter,undergoes,fluorescent,logistical,notification,transvaal,illicit,symphonies,stabilization,worsened,fukuoka,decrees,enthusiast,seychelles,blogger,louvre,dignitaries,burundi,wreckage,signage,pinyin,bursts,federer,polarization,urbana,lazio,schism,nietzsche,venerable,administers,seton,kilograms,invariably,kathmandu,farmed,disqualification,earldom,appropriated,fluctuations,kermanshah,deployments,deformation,wheelbase,maratha,psalm,bytes,methyl,engravings,skirmish,fayette,vaccines,ideally,astrology,breweries,botanic,opposes,harmonies,irregularities,contended,gaulle,prowess,constants,aground,filipinos,fresco,ochreous,jaipur,willamette,quercus,eastwards,mortars,champaign,braille,reforming,horned,hunan,spacious,agitation,draught,specialties,flourishing,greensboro,necessitated,swedes,elemental,whorls,hugely,structurally,plurality,synthesizers,embassies,assad,contradictory,inference,discontent,recreated,inspectors,unicef,commuters,embryo,modifying,stints,numerals,communicated,boosted,trumpeter,brightly,adherence,remade,leases,restrained,eucalyptus,dwellers,planar,grooves,gainesville,daimler,anzac,szczecin,cornerback,prized,peking,mauritania,khalifa,motorized,lodging,instrumentalist,fortresses,cervical,formula_15,passerine,sectarian,researches,apprenticed,reliefs,disclose,gliding,repairing,queue,kyushu,literate,canoeing,sacrament,separatist,calabria,parkland,flowed,investigates,statistically,visionary,commits,dragoons,scrolls,premieres,revisited,subdued,censored,patterned,elective,outlawed,orphaned,leyland,richly,fujian,miniatures,heresy,plaques,countered,nonfiction,exponent,moravia,dispersion,marylebone,midwestern,enclave,ithaca,federated,electronically,handheld,microscopy,tolls,arrivals,climbers,continual,cossacks,moselle,deserts,ubiquitous,gables,forecasts,deforestation,vertebrates,flanking,drilled,superstructure,inspected,consultative,bypassed,ballast,subsidy,socioeconomic,relic,grenada,journalistic,administering,accommodated,collapses,appropriation,reclassified,foreword,porte,assimilated,observance,fragmented,arundel,thuringia,gonzaga,shenzhen,shipyards,sectional,ayrshire,sloping,dependencies,promenade,ecuadorian,mangrove,constructs,goalscorer,heroism,iteration,transistor,omnibus,hampstead,cochin,overshadowed,chieftain,scalar,finishers,ghanaian,abnormalities,monoplane,encyclopaedia,characterize,travancore,baronetage,bearers,biking,distributes,paving,christened,inspections,banco,humber,corinth,quadratic,albanians,lineages,majored,roadside,inaccessible,inclination,darmstadt,fianna,epilepsy,propellers,papacy,montagu,bhutto,sugarcane,optimized,pilasters,contend,batsmen,brabant,housemates,sligo,ascot,aquinas,supervisory,accorded,gerais,echoed,nunavut,conservatoire,carniola,quartermaster,gminas,impeachment,aquitaine,reformers,quarterfinal,karlsruhe,accelerator,coeducational,archduke,gelechiidae,seaplane,dissident,frenchman,palau,depots,hardcover,aachen,darreh,denominational,groningen,parcels,reluctance,drafts,elliptic,counters,decreed,airship,devotional,contradiction,formula_16,undergraduates,qualitative,guatemalan,slavs,southland,blackhawks,detrimental,abolish,chechen,manifestations,arthritis,perch,fated,hebei,peshawar,palin,immensely,havre,totalling,rampant,ferns,concourse,triples,elites,olympian,larva,herds,lipid,karabakh,distal,monotypic,vojvodina,batavia,multiplied,spacing,spellings,pedestrians,parchment,glossy,industrialization,dehydrogenase,patriotism,abolitionist,mentoring,elizabethan,figurative,dysfunction,abyss,constantin,middletown,stigma,mondays,gambia,gaius,israelites,renounced,nepalese,overcoming,buren,sulphur,divergence,predation,looting,iberia,futuristic,shelved,anthropological,innsbruck,escalated,clermont,entrepreneurial,benchmark,mechanically,detachments,populist,apocalyptic,exited,embryonic,stanza,readership,chiba,landlords,expansive,boniface,therapies,perpetrators,whitehall,kassel,masts,carriageway,clinch,pathogens,mazandaran,undesirable,teutonic,miocene,nagpur,juris,cantata,compile,diffuse,dynastic,reopening,comptroller,o'neal,flourish,electing,scientifically,departs,welded,modal,cosmology,fukushima,libertadores,chang'an,asean,generalization,localization,afrikaans,cricketers,accompanies,emigrants,esoteric,southwards,shutdown,prequel,fittings,innate,wrongly,equitable,dictionaries,senatorial,bipolar,flashbacks,semitism,walkway,lyrically,legality,sorbonne,vigorously,durga,samoan,karel,interchanges,patna,decider,registering,electrodes,anarchists,excursion,overthrown,gilan,recited,michelangelo,advertiser,kinship,taboo,cessation,formula_17,premiers,traversed,madurai,poorest,torneo,exerted,replicate,spelt,sporadically,horde,landscaping,razed,hindered,esperanto,manchuria,propellant,jalan,baha'is,sikkim,linguists,pandit,racially,ligands,dowry,francophone,escarpment,behest,magdeburg,mainstay,villiers,yangtze,grupo,conspirators,martyrdom,noticeably,lexical,kazakh,unrestricted,utilised,sired,inhabits,proofs,joseon,pliny,minted,buddhists,cultivate,interconnected,reuse,viability,australasian,derelict,resolving,overlooks,menon,stewardship,playwrights,thwarted,filmfare,disarmament,protections,bundles,sidelined,hypothesized,singer/songwriter,forage,netted,chancery,townshend,restructured,quotation,hyperbolic,succumbed,parliaments,shenandoah,apical,kibbutz,storeys,pastors,lettering,ukrainians,hardships,chihuahua,avail,aisles,taluka,antisemitism,assent,ventured,banksia,seamen,hospice,faroe,fearful,woreda,outfield,chlorine,transformer,tatar,panoramic,pendulum,haarlem,styria,cornice,importing,catalyzes,subunits,enamel,bakersfield,realignment,sorties,subordinates,deanery,townland,gunmen,tutelage,evaluations,allahabad,thrace,veneto,mennonite,sharia,subgenus,satisfies,puritan,unequal,gastrointestinal,ordinances,bacterium,horticulture,argonauts,adjectives,arable,duets,visualization,woolwich,revamped,euroleague,thorax,completes,originality,vasco,freighter,sardar,oratory,sects,extremes,signatories,exporting,arisen,exacerbated,departures,saipan,furlongs,d'italia,goring,dakar,conquests,docked,offshoot,okrug,referencing,disperse,netting,summed,rewritten,articulation,humanoid,spindle,competitiveness,preventive,facades,westinghouse,wycombe,synthase,emulate,fostering,abdel,hexagonal,myriad,caters,arjun,dismay,axiom,psychotherapy,colloquial,complemented,martinique,fractures,culmination,erstwhile,atrium,electronica,anarchism,nadal,montpellier,algebras,submitting,adopts,stemmed,overcame,internacional,asymmetric,gallipoli,gliders,flushing,extermination,hartlepool,tesla,interwar,patriarchal,hitherto,ganges,combatant,marred,philology,glastonbury,reversible,isthmus,undermined,southwark,gateshead,andalusia,remedies,hastily,optimum,smartphone,evade,patrolled,beheaded,dopamine,waivers,ugandan,gujarati,densities,predicting,intestinal,tentative,interstellar,kolonia,soloists,penetrated,rebellions,qeshlaq,prospered,colegio,deficits,konigsberg,deficient,accessing,relays,kurds,politburo,codified,incarnations,occupancy,cossack,metaphysical,deprivation,chopra,piccadilly,formula_18,makeshift,protestantism,alaskan,frontiers,faiths,tendon,dunkirk,durability,autobots,bonuses,coinciding,emails,gunboat,stucco,magma,neutrons,vizier,subscriptions,visuals,envisaged,carpets,smoky,schema,parliamentarian,immersed,domesticated,parishioners,flinders,diminutive,mahabharata,ballarat,falmouth,vacancies,gilded,twigs,mastering,clerics,dalmatia,islington,slogans,compressor,iconography,congolese,sanction,blends,bulgarians,moderator,outflow,textures,safeguard,trafalgar,tramways,skopje,colonialism,chimneys,jazeera,organisers,denoting,motivations,ganga,longstanding,deficiencies,gwynedd,palladium,holistic,fascia,preachers,embargo,sidings,busan,ignited,artificially,clearwater,cemented,northerly,salim,equivalents,crustaceans,oberliga,quadrangle,historiography,romanians,vaults,fiercely,incidental,peacetime,tonal,bhopal,oskar,radha,pesticides,timeslot,westerly,cathedrals,roadways,aldershot,connectors,brahmins,paler,aqueous,gustave,chromatic,linkage,lothian,specialises,aggregation,tributes,insurgent,enact,hampden,ghulam,federations,instigated,lyceum,fredrik,chairmanship,floated,consequent,antagonists,intimidation,patriarchate,warbler,heraldry,entrenched,expectancy,habitation,partitions,widest,launchers,nascent,ethos,wurzburg,lycee,chittagong,mahatma,merseyside,asteroids,yokosuka,cooperatives,quorum,redistricting,bureaucratic,yachts,deploying,rustic,phonology,chorale,cellist,stochastic,crucifixion,surmounted,confucian,portfolios,geothermal,crested,calibre,tropics,deferred,nasir,iqbal,persistence,essayist,chengdu,aborigines,fayetteville,bastion,interchangeable,burlesque,kilmarnock,specificity,tankers,colonels,fijian,quotations,enquiry,quito,palmerston,delle,multidisciplinary,polynesian,iodine,antennae,emphasised,manganese,baptists,galilee,jutland,latent,excursions,skepticism,tectonic,precursors,negligible,musique,misuse,vitoria,expressly,veneration,sulawesi,footed,mubarak,chongqing,chemically,midday,ravaged,facets,varma,yeovil,ethnographic,discounted,physicists,attache,disbanding,essen,shogunate,cooperated,waikato,realising,motherwell,pharmacology,sulfide,inward,expatriate,devoid,cultivar,monde,andean,groupings,goran,unaffected,moldovan,postdoctoral,coleophora,delegated,pronoun,conductivity,coleridge,disapproval,reappeared,microbial,campground,olsztyn,fostered,vaccination,rabbinical,champlain,milestones,viewership,caterpillar,effected,eupithecia,financier,inferred,uzbek,bundled,bandar,balochistan,mysticism,biosphere,holotype,symbolizes,lovecraft,photons,abkhazia,swaziland,subgroups,measurable,falkirk,valparaiso,ashok,discriminatory,rarity,tabernacle,flyweight,jalisco,westernmost,antiquarian,extracellular,margrave,colspan=
9,midsummer,digestive,reversing,burgeoning,substitutes,medallist,khrushchev,guerre,folio,detonated,partido,plentiful,aggregator,medallion,infiltration,shaded,santander,fared,auctioned,permian,ramakrishna,andorra,mentors,diffraction,bukit,potentials,translucent,feminists,tiers,protracted,coburg,wreath,guelph,adventurer,he/she,vertebrate,pipelines,celsius,outbreaks,australasia,deccan,garibaldi,unionists,buildup,biochemical,reconstruct,boulders,stringent,barbed,wording,furnaces,pests,befriends,organises,popes,rizal,tentacles,cadre,tallahassee,punishments,occidental,formatted,mitigation,rulings,rubens,cascades,inducing,choctaw,volta,synagogues,movable,altarpiece,mitigate,practise,intermittently,encountering,memberships,earns,signify,retractable,amounting,pragmatic,wilfrid,dissenting,divergent,kanji,reconstituted,devonian,constitutions,levied,hendrik,starch,costal,honduran,ditches,polygon,eindhoven,superstars,salient,argus,punitive,purana,alluvial,flaps,inefficient,retracted,advantageous,quang,andersson,danville,binghamton,symbolize,conclave,shaanxi,silica,interpersonal,adept,frans,pavilions,lubbock,equip,sunken,limburg,activates,prosecutions,corinthian,venerated,shootings,retreats,parapet,orissa,riviere,animations,parodied,offline,metaphysics,bluffs,plume,piety,fruition,subsidized,steeplechase,shanxi,eurasia,angled,forecasting,suffragan,ashram,larval,labyrinth,chronicler,summaries,trailed,merges,thunderstorms,filtered,formula_19,advertisers,alpes,informatics,parti,constituting,undisputed,certifications,javascript,molten,sclerosis,rumoured,boulogne,hmong,lewes,breslau,notts,bantu,ducal,messengers,radars,nightclubs,bantamweight,carnatic,kaunas,fraternal,triggering,controversially,londonderry,visas,scarcity,offaly,uprisings,repelled,corinthians,pretext,kuomintang,kielce,empties,matriculated,pneumatic,expos,agile,treatises,midpoint,prehistory,oncology,subsets,hydra,hypertension,axioms,wabash,reiterated,swapped,achieves,premio,ageing,overture,curricula,challengers,subic,selangor,liners,frontline,shutter,validated,normalized,entertainers,molluscs,maharaj,allegation,youngstown,synth,thoroughfare,regionally,pillai,transcontinental,pedagogical,riemann,colonia,easternmost,tentatively,profiled,herefordshire,nativity,meuse,nucleotide,inhibits,huntingdon,throughput,recorders,conceding,domed,homeowners,centric,gabled,canoes,fringes,breeder,subtitled,fluoride,haplogroup,zionism,izmir,phylogeny,kharkiv,romanticism,adhesion,usaaf,delegations,lorestan,whalers,biathlon,vaulted,mathematically,pesos,skirmishes,heisman,kalamazoo,gesellschaft,launceston,interacts,quadruple,kowloon,psychoanalysis,toothed,ideologies,navigational,valence,induces,lesotho,frieze,rigging,undercarriage,explorations,spoof,eucharist,profitability,virtuoso,recitals,subterranean,sizeable,herodotus,subscriber,huxley,pivot,forewing,warring,boleslaw,bharatiya,suffixes,trois,percussionist,downturn,garrisons,philosophies,chants,mersin,mentored,dramatist,guilds,frameworks,thermodynamic,venomous,mehmed,assembling,rabbinic,hegemony,replicas,enlargement,claimant,retitled,utica,dumfries,metis,deter,assortment,tubing,afflicted,weavers,rupture,ornamentation,transept,salvaged,upkeep,callsign,rajput,stevenage,trimmed,intracellular,synchronization,consular,unfavorable,royalists,goldwyn,fasting,hussars,doppler,obscurity,currencies,amiens,acorn,tagore,townsville,gaussian,migrations,porta,anjou,graphite,seaport,monographs,gladiators,metrics,calligraphy,sculptural,swietokrzyskie,tolombeh,eredivisie,shoals,queries,carts,exempted,fiberglass,mirrored,bazar,progeny,formalized,mukherjee,professed,amazon.com,cathode,moreton,removable,mountaineers,nagano,transplantation,augustinian,steeply,epilogue,adapter,decisively,accelerating,mediaeval,substituting,tasman,devonshire,litres,enhancements,himmler,nephews,bypassing,imperfect,argentinian,reims,integrates,sochi,ascii,licences,niches,surgeries,fables,versatility,indra,footpath,afonso,crore,evaporation,encodes,shelling,conformity,simplify,updating,quotient,overt,firmware,umpires,architectures,eocene,conservatism,secretion,embroidery,f.c..,tuvalu,mosaics,shipwreck,prefectural,cohort,grievances,garnering,centerpiece,apoptosis,djibouti,bethesda,formula_20,shonen,richland,justinian,dormitories,meteorite,reliably,obtains,pedagogy,hardness,cupola,manifolds,amplification,steamers,familial,dumbarton,jerzy,genital,maidstone,salinity,grumman,signifies,presbytery,meteorology,procured,aegis,streamed,deletion,nuestra,mountaineering,accords,neuronal,khanate,grenoble,axles,dispatches,tokens,turku,auctions,propositions,planters,proclaiming,recommissioned,stravinsky,obverse,bombarded,waged,saviour,massacred,reformist,purportedly,resettlement,ravenna,embroiled,minden,revitalization,hikers,bridging,torpedoed,depletion,nizam,affectionately,latitudes,lubeck,spore,polymerase,aarhus,nazism,
101st,buyout,galerie,diets,overflow,motivational,renown,brevet,deriving,melee,goddesses,demolish,amplified,tamworth,retake,brokerage,beneficiaries,henceforth,reorganised,silhouette,browsers,pollutants,peron,lichfield,encircled,defends,bulge,dubbing,flamenco,coimbatore,refinement,enshrined,grizzlies,capacitor,usefulness,evansville,interscholastic,rhodesian,bulletins,diamondbacks,rockers,platted,medalists,formosa,transporter,slabs,guadeloupe,disparate,concertos,violins,regaining,mandible,untitled,agnostic,issuance,hamiltonian,brampton,srpska,homology,downgraded,florentine,epitaph,kanye,rallying,analysed,grandstand,infinitely,antitrust,plundered,modernity,colspan=
3|total,amphitheatre,doric,motorists,yemeni,carnivorous,probabilities,prelate,struts,scrapping,bydgoszcz,pancreatic,signings,predicts,compendium,ombudsman,apertura,appoints,rebbe,stereotypical,valladolid,clustered,touted,plywood,inertial,kettering,curving,d'honneur,housewives,grenadier,vandals,barbarossa,necked,waltham,reputedly,jharkhand,cistercian,pursues,viscosity,organiser,cloister,islet,stardom,moorish,himachal,strives,scripps,staggered,blasts,westwards,millimeters,angolan,hubei,agility,admirals,mordellistena,coincides,platte,vehicular,cordillera,riffs,schoolteacher,canaan,acoustics,tinged,reinforcing,concentrates,daleks,monza,selectively,musik,polynesia,exporter,reviving,macclesfield,bunkers,ballets,manors,caudal,microbiology,primes,unbroken,outcry,flocks,pakhtunkhwa,abelian,toowoomba,luminous,mould,appraisal,leuven,experimentally,interoperability,hideout,perak,specifying,knighthood,vasily,excerpt,computerized,niels,networked,byzantium,reaffirmed,geographer,obscured,fraternities,mixtures,allusion,accra,lengthened,inquest,panhandle,pigments,revolts,bluetooth,conjugate,overtaken,foray,coils,breech,streaks,impressionist,mendelssohn,intermediary,panned,suggestive,nevis,upazila,rotunda,mersey,linnaeus,anecdotes,gorbachev,viennese,exhaustive,moldavia,arcades,irrespective,orator,diminishing,predictive,cohesion,polarized,montage,avian,alienation,conus,jaffna,urbanization,seawater,extremity,editorials,scrolling,dreyfus,traverses,topographic,gunboats,extratropical,normans,correspondents,recognises,millennia,filtration,ammonium,voicing,complied,prefixes,diplomas,figurines,weakly,gated,oscillator,lucerne,embroidered,outpatient,airframe,fractional,disobedience,quarterbacks,formula_21,shinto,chiapas,epistle,leakage,pacifist,avignon,penrith,renders,mantua,screenplays,gustaf,tesco,alphabetically,rations,discharges,headland,tapestry,manipur,boolean,mediator,ebenezer,subchannel,fable,bestselling,ateneo,trademarks,recurrence,dwarfs,britannica,signifying,vikram,mediate,condensation,censuses,verbandsgemeinde,cartesian,sprang,surat,britons,chelmsford,courtenay,statistic,retina,abortions,liabilities,closures,mississauga,skyscrapers,saginaw,compounded,aristocrat,msnbc,stavanger,septa,interpretive,hinder,visibly,seeding,shutouts,irregularly,quebecois,footbridge,hydroxide,implicitly,lieutenants,simplex,persuades,midshipman,heterogeneous,officiated,crackdown,lends,tartu,altars,fractions,dissidents,tapered,modernisation,scripting,blazon,aquaculture,thermodynamics,sistan,hasidic,bellator,pavia,propagated,theorized,bedouin,transnational,mekong,chronicled,declarations,kickstarter,quotas,runtime,duquesne,broadened,clarendon,brownsville,saturation,tatars,electorates,malayan,replicated,observable,amphitheater,endorsements,referral,allentown,mormons,pantomime,eliminates,typeface,allegorical,varna,conduction,evoke,interviewer,subordinated,uyghur,landscaped,conventionally,ascend,edifice,postulated,hanja,whitewater,embarking,musicologist,tagalog,frontage,paratroopers,hydrocarbons,transliterated,nicolae,viewpoints,surrealist,asheville,falklands,hacienda,glide,opting,zimbabwean,discal,mortgages,nicaraguan,yadav,ghosh,abstracted,castilian,compositional,cartilage,intergovernmental,forfeited,importation,rapping,artes,republika,narayana,condominium,frisian,bradman,duality,marche,extremist,phosphorylation,genomes,allusions,valencian,habeas,ironworks,multiplex,harpsichord,emigrate,alternated,breda,waffen,smartphones,familiarity,regionalliga,herbaceous,piping,dilapidated,carboniferous,xviii,critiques,carcinoma,sagar,chippewa,postmodern,neapolitan,excludes,notoriously,distillation,tungsten,richness,installments,monoxide,chand,privatisation,molded,maths,projectiles,luoyang,epirus,lemma,concentric,incline,erroneous,sideline,gazetted,leopards,fibres,renovate,corrugated,unilateral,repatriation,orchestration,saeed,rockingham,loughborough,formula_22,bandleader,appellation,openness,nanotechnology,massively,tonnage,dunfermline,exposes,moored,ridership,motte,eurobasket,majoring,feats,silla,laterally,playlist,downwards,methodologies,eastbourne,daimyo,cellulose,leyton,norwalk,oblong,hibernian,opaque,insular,allegory,camogie,inactivation,favoring,masterpieces,rinpoche,serotonin,portrayals,waverley,airliner,longford,minimalist,outsourcing,excise,meyrick,qasim,organisational,synaptic,farmington,gorges,scunthorpe,zoned,tohoku,librarians,davao,decor,theatrically,brentwood,pomona,acquires,planter,capacitors,synchronous,skateboarding,coatings,turbocharged,ephraim,capitulation,scoreboard,hebrides,ensues,cereals,ailing,counterpoint,duplication,antisemitic,clique,aichi,oppressive,transcendental,incursions,rename,renumbering,powys,vestry,bitterly,neurology,supplanted,affine,susceptibility,orbiter,activating,overlaps,ecoregion,raman,canoer,darfur,microorganisms,precipitated,protruding,torun,anthropologists,rennes,kangaroos,parliamentarians,edits,littoral,archived,begum,rensselaer,microphones,ypres,empower,etruscan,wisden,montfort,calibration,isomorphic,rioting,kingship,verbally,smyrna,cohesive,canyons,fredericksburg,rahul,relativistic,micropolitan,maroons,industrialized,henchmen,uplift,earthworks,mahdi,disparity,cultured,transliteration,spiny,fragmentary,extinguished,atypical,inventors,biosynthesis,heralded,curacao,anomalies,aeroplane,surya,mangalore,maastricht,ashkenazi,fusiliers,hangzhou,emitting,monmouthshire,schwarzenegger,ramayana,peptides,thiruvananthapuram,alkali,coimbra,budding,reasoned,epithelial,harbors,rudimentary,classically,parque,ealing,crusades,rotations,riparian,pygmy,inertia,revolted,microprocessor,calendars,solvents,kriegsmarine,accademia,cheshmeh,yoruba,ardabil,mitra,genomic,notables,propagate,narrates,univision,outposts,polio,birkenhead,urinary,crocodiles,pectoral,barrymore,deadliest,rupees,chaim,protons,comical,astrophysics,unifying,formula_23,vassals,cortical,audubon,pedals,tenders,resorted,geophysical,lenders,recognising,tackling,lanarkshire,doctrinal,annan,combating,guangxi,estimating,selectors,tribunals,chambered,inhabiting,exemptions,curtailed,abbasid,kandahar,boron,bissau,
150th,codenamed,wearer,whorl,adhered,subversive,famer,smelting,inserting,mogadishu,zoologist,mosul,stumps,almanac,olympiacos,stamens,participatory,cults,honeycomb,geologists,dividend,recursive,skiers,reprint,pandemic,liber,percentages,adversely,stoppage,chieftains,tubingen,southerly,overcrowding,unorganized,hangars,fulfil,hails,cantilever,woodbridge,pinus,wiesbaden,fertilization,fluorescence,enhances,plenary,troublesome,episodic,thrissur,kickboxing,allele,staffing,garda,televisions,philatelic,spacetime,bullpen,oxides,leninist,enrolling,inventive,truro,compatriot,ruskin,normative,assay,gotha,murad,illawarra,gendarmerie,strasse,mazraeh,rebounded,fanfare,liaoning,rembrandt,iranians,emirate,governs,latency,waterfowl,chairmen,katowice,aristocrats,eclipsed,sentient,sonatas,interplay,sacking,decepticons,dynamical,arbitrarily,resonant,petar,velocities,alludes,wastes,prefectures,belleville,sensibility,salvadoran,consolidating,medicaid,trainees,vivekananda,molar,porous,upload,youngster,infused,doctorates,wuhan,annihilation,enthusiastically,gamespot,kanpur,accumulating,monorail,operetta,tiling,sapporo,finns,calvinist,hydrocarbon,sparrows,orienteering,cornelis,minster,vuelta,plebiscite,embraces,panchayats,focussed,remediation,brahman,olfactory,reestablished,uniqueness,northumbria,rwandan,predominately,abode,ghats,balances,californian,uptake,bruges,inert,westerns,reprints,cairn,yarra,resurfaced,audible,rossini,regensburg,italiana,fleshy,irrigated,alerts,yahya,varanasi,marginalized,expatriates,cantonment,normandie,sahitya,directives,rounder,hulls,fictionalized,constables,inserts,hipped,potosi,navies,biologists,canteen,husbandry,augment,fortnight,assamese,kampala,o'keefe,paleolithic,bluish,promontory,consecutively,striving,niall,reuniting,dipole,friendlies,disapproved,thrived,netflix,liberian,dielectric,medway,strategist,sankt,pickups,hitters,encode,rerouted,claimants,anglesey,partitioned,cavan,flutes,reared,repainted,armaments,bowed,thoracic,balliol,piero,chaplains,dehestan,sender,junkers,sindhi,sickle,dividends,metallurgy,honorific,berths,namco,springboard,resettled,gansu,copyrighted,criticizes,utopian,bendigo,ovarian,binomial,spaceflight,oratorio,proprietors,supergroup,duplicated,foreground,strongholds,revolved,optimize,layouts,westland,hurler,anthropomorphic,excelsior,merchandising,reeds,vetoed,cryptography,hollyoaks,monash,flooring,ionian,resilience,johnstown,resolves,lawmakers,alegre,wildcards,intolerance,subculture,selector,slums,formulate,bayonet,istvan,restitution,interchangeably,awakens,rostock,serpentine,oscillation,reichstag,phenotype,recessed,piotr,annotated,preparedness,consultations,clausura,preferential,euthanasia,genoese,outcrops,freemasonry,geometrical,genesee,islets,prometheus,panamanian,thunderbolt,terraced,stara,shipwrecks,futebol,faroese,sharqi,aldermen,zeitung,unify,formula_24,humanism,syntactic,earthen,blyth,taxed,rescinded,suleiman,cymru,dwindled,vitality,superieure,resupply,adolphe,ardennes,rajiv,profiling,olympique,gestation,interfaith,milosevic,tagline,funerary,druze,silvery,plough,shrubland,relaunch,disband,nunatak,minimizing,excessively,waned,attaching,luminosity,bugle,encampment,electrostatic,minesweeper,dubrovnik,rufous,greenock,hochschule,assyrians,extracting,malnutrition,priya,attainment,anhui,connotations,predicate,seabirds,deduced,pseudonyms,gopal,plovdiv,refineries,imitated,kwazulu,terracotta,tenets,discourses,brandeis,whigs,dominions,pulmonate,landslides,tutors,determinant,richelieu,farmstead,tubercles,technicolor,hegel,redundancy,greenpeace,shortening,mules,distilled,xxiii,fundamentalist,acrylic,outbuildings,lighted,corals,signaled,transistors,cavite,austerity,
76ers,exposures,dionysius,outlining,commutative,permissible,knowledgeable,howrah,assemblage,inhibited,crewmen,mbit/s,pyramidal,aberdeenshire,bering,rotates,atheism,howitzer,saone,lancet,fermented,contradicted,materiel,ofsted,numeric,uniformity,josephus,nazarene,kuwaiti,noblemen,pediment,emergent,campaigner,akademi,murcia,perugia,gallen,allsvenskan,finned,cavities,matriculation,rosters,twickenham,signatory,propel,readable,contends,artisan,flamboyant,reggio,italo,fumbles,widescreen,rectangle,centimetres,collaborates,envoys,rijeka,phonological,thinly,refractive,civilisation,reductase,cognate,dalhousie,monticello,lighthouses,jitsu,luneburg,socialite,fermi,collectible,optioned,marquee,jokingly,architecturally,kabir,concubine,nationalisation,watercolor,wicklow,acharya,pooja,leibniz,rajendra,nationalized,stalemate,bloggers,glutamate,uplands,shivaji,carolingian,bucuresti,dasht,reappears,muscat,functionally,formulations,hinged,hainan,catechism,autosomal,incremental,asahi,coeur,diversification,multilateral,fewest,recombination,finisher,harrogate,hangul,feasts,photovoltaic,paget,liquidity,alluded,incubation,applauded,choruses,malagasy,hispanics,bequest,underparts,cassava,kazimierz,gastric,eradication,mowtowr,tyrosine,archbishopric,e9e9e9,unproductive,uxbridge,hydrolysis,harbours,officio,deterministic,devonport,kanagawa,breaches,freetown,rhinoceros,chandigarh,janos,sanatorium,liberator,inequalities,agonist,hydrophobic,constructors,nagorno,snowboarding,welcomes,subscribed,iloilo,resuming,catalysts,stallions,jawaharlal,harriers,definitively,roughriders,hertford,inhibiting,elgar,randomized,incumbents,episcopate,rainforests,yangon,improperly,kemal,interpreters,diverged,uttarakhand,umayyad,phnom,panathinaikos,shabbat,diode,jiangxi,forbidding,nozzle,artistry,licensee,processions,staffs,decimated,expressionism,shingle,palsy,ontology,mahayana,maribor,sunil,hostels,edwardian,jetty,freehold,overthrew,eukaryotic,schuylkill,rawalpindi,sheath,recessive,ferenc,mandibles,berlusconi,confessor,convergent,ababa,slugging,rentals,sephardic,equivalently,collagen,markov,dynamically,hailing,depressions,sprawling,fairgrounds,indistinguishable,plutarch,pressurized,banff,coldest,braunschweig,mackintosh,sociedad,wittgenstein,tromso,airbase,lecturers,subtitle,attaches,purified,contemplated,dreamworks,telephony,prophetic,rockland,aylesbury,biscay,coherence,aleksandar,judoka,pageants,theses,homelessness,luthor,sitcoms,hinterland,fifths,derwent,privateers,enigmatic,nationalistic,instructs,superimposed,conformation,tricycle,dusan,attributable,unbeknownst,laptops,etching,archbishops,ayatollah,cranial,gharbi,interprets,lackawanna,abingdon,saltwater,tories,lender,minaj,ancillary,ranching,pembrokeshire,topographical,plagiarism,murong,marque,chameleon,assertions,infiltrated,guildhall,reverence,schenectady,formula_25,kollam,notary,mexicana,initiates,abdication,basra,theorems,ionization,dismantling,eared,censors,budgetary,numeral,verlag,excommunicated,distinguishable,quarried,cagliari,hindustan,symbolizing,watertown,descartes,relayed,enclosures,militarily,sault,devolved,dalian,djokovic,filaments,staunton,tumour,curia,villainous,decentralized,galapagos,moncton,quartets,onscreen,necropolis,brasileiro,multipurpose,alamos,comarca,jorgen,concise,mercia,saitama,billiards,entomologist,montserrat,lindbergh,commuting,lethbridge,phoenician,deviations,anaerobic,denouncing,redoubt,fachhochschule,principalities,negros,announcers,seconded,parrots,konami,revivals,approving,devotee,riyadh,overtook,morecambe,lichen,expressionist,waterline,silverstone,geffen,sternites,aspiration,behavioural,grenville,tripura,mediums,genders,pyotr,charlottesville,sacraments,programmable,ps100,shackleton,garonne,sumerian,surpass,authorizing,interlocking,lagoons,voiceless,advert,steeple,boycotted,alouettes,yosef,oxidative,sassanid,benefiting,sayyid,nauru,predetermined,idealism,maxillary,polymerization,semesters,munchen,conor,outfitted,clapham,progenitor,gheorghe,observational,recognitions,numerically,colonized,hazrat,indore,contaminants,fatality,eradicate,assyria,convocation,cameos,skillful,skoda,corfu,confucius,overtly,ramadan,wollongong,placements,d.c..,permutation,contemporaneous,voltages,elegans,universitat,samar,plunder,dwindling,neuter,antonin,sinhala,campania,solidified,stanzas,fibrous,marburg,modernize,sorcery,deutscher,florets,thakur,disruptive,infielder,disintegration,internazionale,vicariate,effigy,tripartite,corrective,klamath,environs,leavenworth,sandhurst,workmen,compagnie,hoseynabad,strabo,palisades,ordovician,sigurd,grandsons,defection,viacom,sinhalese,innovator,uncontrolled,slavonic,indexes,refrigeration,aircrew,superbike,resumption,neustadt,confrontations,arras,hindenburg,ripon,embedding,isomorphism,dwarves,matchup,unison,lofty,argos,louth,constitutionally,transitive,newington,facelift,degeneration,perceptual,aviators,enclosing,igneous,symbolically,academician,constitutionality,iso/iec,sacrificial,maturation,apprentices,enzymology,naturalistic,hajji,arthropods,abbess,vistula,scuttled,gradients,pentathlon,etudes,freedmen,melaleuca,thrice,conductive,sackville,franciscans,stricter,golds,kites,worshiped,monsignor,trios,orally,tiered,primacy,bodywork,castleford,epidemics,alveolar,chapelle,chemists,hillsboro,soulful,warlords,ngati,huguenot,diurnal,remarking,luger,motorways,gauss,jahan,cutoff,proximal,bandai,catchphrase,jonubi,ossetia,codename,codice_2,throated,itinerant,chechnya,riverfront,leela,evoked,entailed,zamboanga,rejoining,circuitry,haymarket,khartoum,feuds,braced,miyazaki,mirren,lubusz,caricature,buttresses,attrition,characterizes,widnes,evanston,materialism,contradictions,marist,midrash,gainsborough,ulithi,turkmen,vidya,escuela,patrician,inspirations,reagent,premierships,humanistic,euphrates,transitioning,belfry,zedong,adaption,kaliningrad,lobos,epics,waiver,coniferous,polydor,inductee,refitted,moraine,unsatisfactory,worsening,polygamy,rajya,nested,subgenre,broadside,stampeders,lingua,incheon,pretender,peloton,persuading,excitation,multan,predates,tonne,brackish,autoimmune,insulated,podcasts,iraqis,bodybuilding,condominiums,midlothian,delft,debtor,asymmetrical,lycaenidae,forcefully,pathogenic,tamaulipas,andaman,intravenous,advancements,senegalese,chronologically,realigned,inquirer,eusebius,dekalb,additives,shortlist,goldwater,hindustani,auditing,caterpillars,pesticide,nakhon,ingestion,lansdowne,traditionalist,northland,thunderbirds,josip,nominating,locale,ventricular,animators,verandah,epistles,surveyors,anthems,dredd,upheaval,passaic,anatolian,svalbard,associative,floodplain,taranaki,estuaries,irreducible,beginners,hammerstein,allocate,coursework,secreted,counteract,handwritten,foundational,passover,discoverer,decoding,wares,bourgeoisie,playgrounds,nazionale,abbreviations,seanad,golan,mishra,godavari,rebranding,attendances,backstory,interrupts,lettered,hasbro,ultralight,hormozgan,armee,moderne,subdue,disuse,improvisational,enrolment,persists,moderated,carinthia,hatchback,inhibitory,capitalized,anatoly,abstracts,albemarle,bergamo,insolvency,sentai,cellars,walloon,joked,kashmiri,dirac,materialized,renomination,homologous,gusts,eighteens,centrifugal,storied,baluchestan,formula_26,poincare,vettel,infuriated,gauges,streetcars,vedanta,stately,liquidated,goguryeo,swifts,accountancy,levee,acadian,hydropower,eustace,comintern,allotment,designating,torsion,molding,irritation,aerobic,halen,concerted,plantings,garrisoned,gramophone,cytoplasm,onslaught,requisitioned,relieving,genitive,centrist,jeong,espanola,dissolving,chatterjee,sparking,connaught,varese,arjuna,carpathian,empowering,meteorologist,decathlon,opioid,hohenzollern,fenced,ibiza,avionics,footscray,scrum,discounts,filament,directories,a.f.c,stiffness,quaternary,adventurers,transmits,harmonious,taizong,radiating,germantown,ejection,projectors,gaseous,nahuatl,vidyalaya,nightlife,redefined,refuted,destitute,arista,potters,disseminated,distanced,jamboree,kaohsiung,tilted,lakeshore,grained,inflicting,kreis,novelists,descendents,mezzanine,recast,fatah,deregulation,ac/dc,australis,kohgiluyeh,boreal,goths,authoring,intoxicated,nonpartisan,theodosius,pyongyang,shree,boyhood,sanfl,plenipotentiary,photosynthesis,presidium,sinaloa,honshu,texan,avenida,transmembrane,malays,acropolis,catalunya,vases,inconsistencies,methodists,quell,suisse,banat,simcoe,cercle,zealanders,discredited,equine,sages,parthian,fascists,interpolation,classifying,spinoff,yehuda,cruised,gypsum,foaled,wallachia,saraswati,imperialist,seabed,footnotes,nakajima,locales,schoolmaster,drosophila,bridgehead,immanuel,courtier,bookseller,niccolo,stylistically,portmanteau,superleague,konkani,millimetres,arboreal,thanjavur,emulation,sounders,decompression,commoners,infusion,methodological,osage,rococo,anchoring,bayreuth,formula_27,abstracting,symbolized,bayonne,electrolyte,rowed,corvettes,traversing,editorship,sampler,presidio,curzon,adirondack,swahili,rearing,bladed,lemur,pashtun,behaviours,bottling,zaire,recognisable,systematics,leeward,formulae,subdistricts,smithfield,vijaya,buoyancy,boosting,cantonal,rishi,airflow,kamakura,adana,emblems,aquifer,clustering,husayn,woolly,wineries,montessori,turntable,exponentially,caverns,espoused,pianists,vorpommern,vicenza,latterly,o'rourke,williamstown,generale,kosice,duisburg,poirot,marshy,mismanagement,mandalay,dagenham,universes,chiral,radiated,stewards,vegan,crankshaft,kyrgyz,amphibian,cymbals,infrequently,offenbach,environmentalist,repatriated,permutations,midshipmen,loudoun,refereed,bamberg,ornamented,nitric,selim,translational,dorsum,annunciation,gippsland,reflector,informational,regia,reactionary,ahmet,weathering,erlewine,legalized,berne,occupant,divas,manifests,analyzes,disproportionate,mitochondria,totalitarian,paulista,interscope,anarcho,correlate,brookfield,elongate,brunel,ordinal,precincts,volatility,equaliser,hittite,somaliland,ticketing,monochrome,ubuntu,chhattisgarh,titleholder,ranches,referendums,blooms,accommodates,merthyr,religiously,ryukyu,tumultuous,checkpoints,anode,mi'kmaq,cannonball,punctuation,remodelled,assassinations,criminology,alternates,yonge,pixar,namibian,piraeus,trondelag,hautes,lifeboats,shoal,atelier,vehemently,sadat,postcode,jainism,lycoming,undisturbed,lutherans,genomics,popmatters,tabriz,isthmian,notched,autistic,horsham,mites,conseil,bloomsbury,seung,cybertron,idris,overhauled,disbandment,idealized,goldfields,worshippers,lobbyist,ailments,paganism,herbarium,athenians,messerschmitt,faraday,entangled,'olya,untreated,criticising,howitzers,parvati,lobed,debussy,atonement,tadeusz,permeability,mueang,sepals,degli,optionally,fuelled,follies,asterisk,pristina,lewiston,congested,overpass,affixed,pleads,telecasts,stanislaus,cryptographic,friesland,hamstring,selkirk,antisubmarine,inundated,overlay,aggregates,fleur,trolleybus,sagan,ibsen,inductees,beltway,tiled,ladders,cadbury,laplace,ascetic,micronesia,conveying,bellingham,cleft,batches,usaid,conjugation,macedon,assisi,reappointed,brine,jinnah,prairies,screenwriting,oxidized,despatches,linearly,fertilizers,brazilians,absorbs,wagga,modernised,scorsese,ashraf,charlestown,esque,habitable,nizhny,lettres,tuscaloosa,esplanade,coalitions,carbohydrates,legate,vermilion,standardised,galleria,psychoanalytic,rearrangement,substation,competency,nationalised,reshuffle,reconstructions,mehdi,bougainville,receivership,contraception,enlistment,conducive,aberystwyth,solicitors,dismisses,fibrosis,montclair,homeowner,surrealism,s.h.i.e.l.d,peregrine,compilers,
1790s,parentage,palmas,rzeszow,worldview,eased,svenska,housemate,bundestag,originator,enlisting,outwards,reciprocity,formula_28,carbohydrate,democratically,firefighting,romagna,acknowledgement,khomeini,carbide,quests,vedas,characteristically,guwahati,brixton,unintended,brothels,parietal,namur,sherbrooke,moldavian,baruch,milieu,undulating,laurier,entre,dijon,ethylene,abilene,heracles,paralleling,ceres,dundalk,falun,auspicious,chisinau,polarity,foreclosure,templates,ojibwe,punic,eriksson,biden,bachchan,glaciation,spitfires,norsk,nonviolent,heidegger,algonquin,capacitance,cassettes,balconies,alleles,airdate,conveys,replays,classifies,infrequent,amine,cuttings,rarer,woking,olomouc,amritsar,rockabilly,illyrian,maoist,poignant,tempore,stalinist,segmented,bandmate,mollusc,muhammed,totalled,byrds,tendered,endogenous,kottayam,aisne,oxidase,overhears,illustrators,verve,commercialization,purplish,directv,moulded,lyttelton,baptismal,captors,saracens,georgios,shorten,polity,grids,fitzwilliam,sculls,impurities,confederations,akhtar,intangible,oscillations,parabolic,harlequin,maulana,ovate,tanzanian,singularity,confiscation,qazvin,speyer,phonemes,overgrown,vicarage,gurion,undocumented,niigata,thrones,preamble,stave,interment,liiga,ataturk,aphrodite,groupe,indentured,habsburgs,caption,utilitarian,ozark,slovenes,reproductions,plasticity,serbo,dulwich,castel,barbuda,salons,feuding,lenape,wikileaks,swamy,breuning,shedding,afield,superficially,operationally,lamented,okanagan,hamadan,accolade,furthering,adolphus,fyodor,abridged,cartoonists,pinkish,suharto,cytochrome,methylation,debit,colspan=
9|,refine,taoist,signalled,herding,leaved,bayan,fatherland,rampart,sequenced,negation,storyteller,occupiers,barnabas,pelicans,nadir,conscripted,railcars,prerequisite,furthered,columba,carolinas,markup,gwalior,franche,chaco,eglinton,ramparts,rangoon,metabolites,pollination,croat,televisa,holyoke,testimonial,setlist,safavid,sendai,georgians,shakespearean,galleys,regenerative,krzysztof,overtones,estado,barbary,cherbourg,obispo,sayings,composites,sainsbury,deliberation,cosmological,mahalleh,embellished,ascap,biala,pancras,calumet,grands,canvases,antigens,marianas,defenseman,approximated,seedlings,soren,stele,nuncio,immunology,testimonies,glossary,recollections,suitability,tampere,venous,cohomology,methanol,echoing,ivanovich,warmly,sterilization,imran,multiplying,whitechapel,undersea,xuanzong,tacitus,bayesian,roundhouse,correlations,rioters,molds,fiorentina,bandmates,mezzo,thani,guerilla,
200th,premiums,tamils,deepwater,chimpanzees,tribesmen,selwyn,globo,turnovers,punctuated,erode,nouvelle,banbury,exponents,abolishing,helical,maimonides,endothelial,goteborg,infield,encroachment,cottonwood,mazowiecki,parable,saarbrucken,reliever,epistemology,artistes,enrich,rationing,formula_29,palmyra,subfamilies,kauai,zoran,fieldwork,arousal,creditor,friuli,celts,comoros,equated,escalation,negev,tallied,inductive,anion,netanyahu,mesoamerican,lepidoptera,aspirated,remit,westmorland,italic,crosse,vaclav,fuego,owain,balmain,venetians,ethnicities,deflected,ticino,apulia,austere,flycatcher,reprising,repressive,hauptbahnhof,subtype,ophthalmology,summarizes,eniwetok,colonisation,subspace,nymphalidae,earmarked,tempe,burnet,crests,abbots,norwegians,enlarge,ashoka,frankfort,livorno,malware,renters,singly,iliad,moresby,rookies,gustavus,affirming,alleges,legume,chekhov,studded,abdicated,suzhou,isidore,townsite,repayment,quintus,yankovic,amorphous,constructor,narrowing,industrialists,tanganyika,capitalization,connective,mughals,rarities,aerodynamics,worthing,antalya,diagnostics,shaftesbury,thracian,obstetrics,benghazi,multiplier,orbitals,livonia,roscommon,intensify,ravel,oaths,overseer,locomotion,necessities,chickasaw,strathclyde,treviso,erfurt,aortic,contemplation,accrington,markazi,predeceased,hippocampus,whitecaps,assemblyman,incursion,ethnography,extraliga,reproducing,directorship,benzene,byway,stupa,taxable,scottsdale,onondaga,favourably,countermeasures,lithuanians,thatched,deflection,tarsus,consuls,annuity,paralleled,contextual,anglian,klang,hoisted,multilingual,enacting,samaj,taoiseach,carthaginian,apologised,hydrology,entrant,seamless,inflorescences,mugabe,westerners,seminaries,wintering,penzance,mitre,sergeants,unoccupied,delimitation,discriminate,upriver,abortive,nihon,bessarabia,calcareous,buffaloes,patil,daegu,streamline,berks,chaparral,laity,conceptions,typified,kiribati,threaded,mattel,eccentricity,signified,patagonia,slavonia,certifying,adnan,astley,sedition,minimally,enumerated,nikos,goalless,walid,narendra,causa,missoula,coolant,dalek,outcrop,hybridization,schoolchildren,peasantry,afghans,confucianism,shahr,gallic,tajik,kierkegaard,sauvignon,commissar,patriarchs,tuskegee,prussians,laois,ricans,talmudic,officiating,aesthetically,baloch,antiochus,separatists,suzerainty,arafat,shading,u.s.c,chancellors,inc..,toolkit,nepenthes,erebidae,solicited,pratap,kabbalah,alchemist,caltech,darjeeling,biopic,spillway,kaiserslautern,nijmegen,bolstered,neath,pahlavi,eugenics,bureaus,retook,northfield,instantaneous,deerfield,humankind,selectivity,putative,boarders,cornhuskers,marathas,raikkonen,aliabad,mangroves,garages,gulch,karzai,poitiers,chernobyl,thane,alexios,belgrano,scion,solubility,urbanized,executable,guizhou,nucleic,tripled,equalled,harare,houseguests,potency,ghazi,repeater,overarching,regrouped,broward,ragtime,d'art,nandi,regalia,campsites,mamluk,plating,wirral,presumption,zenit,archivist,emmerdale,decepticon,carabidae,kagoshima,franconia,guarani,formalism,diagonally,submarginal,denys,walkways,punts,metrolink,hydrographic,droplets,upperside,martyred,hummingbird,antebellum,curiously,mufti,friary,chabad,czechs,shaykh,reactivity,berklee,turbonilla,tongan,sultans,woodville,unlicensed,enmity,dominicans,operculum,quarrying,watercolour,catalyzed,gatwick,'what,mesozoic,auditors,shizuoka,footballing,haldane,telemundo,appended,deducted,disseminate,o'shea,pskov,abrasive,entente,gauteng,calicut,lemurs,elasticity,suffused,scopula,staining,upholding,excesses,shostakovich,loanwords,naidu,championnat,chromatography,boasting,goaltenders,engulfed,salah,kilogram,morristown,shingles,shi'a,labourer,renditions,frantisek,jekyll,zonal,nanda,sheriffs,eigenvalues,divisione,endorsing,ushered,auvergne,cadres,repentance,freemasons,utilising,laureates,diocletian,semiconductors,o'grady,vladivostok,sarkozy,trackage,masculinity,hydroxyl,mervyn,muskets,speculations,gridiron,opportunistic,mascots,aleutian,fillies,sewerage,excommunication,borrowers,capillary,trending,sydenham,synthpop,rajah,cagayan,deportes,kedah,faure,extremism,michoacan,levski,culminates,occitan,bioinformatics,unknowingly,inciting,emulated,footpaths,piacenza,dreadnought,viceroyalty,oceanographic,scouted,combinatorial,ornithologist,cannibalism,mujahideen,independiente,cilicia,hindwing,minimized,odeon,gyorgy,rubles,purchaser,collieries,kickers,interurban,coiled,lynchburg,respondent,plzen,detractors,etchings,centering,intensification,tomography,ranjit,warblers,retelling,reinstatement,cauchy,modulus,redirected,evaluates,beginner,kalateh,perforated,manoeuvre,scrimmage,internships,megawatts,mottled,haakon,tunbridge,kalyan,summarised,sukarno,quetta,canonized,henryk,agglomeration,coahuila,diluted,chiropractic,yogyakarta,talladega,sheik,cation,halting,reprisals,sulfuric,musharraf,sympathizers,publicised,arles,lectionary,fracturing,startups,sangha,latrobe,rideau,ligaments,blockading,cremona,lichens,fabaceae,modulated,evocative,embodies,battersea,indistinct,altai,subsystem,acidity,somatic,formula_30,tariq,rationality,sortie,ashlar,pokal,cytoplasmic,valour,bangla,displacing,hijacking,spectrometry,westmeath,weill,charing,goias,revolvers,individualized,tenured,nawaz,piquet,chanted,discard,bernd,phalanx,reworking,unilaterally,subclass,yitzhak,piloting,circumvent,disregarded,semicircular,viscous,tibetans,endeavours,retaliated,cretan,vienne,workhouse,sufficiency,aurangzeb,legalization,lipids,expanse,eintracht,sanjak,megas,
125th,bahraini,yakima,eukaryotes,thwart,affirmation,peloponnese,retailing,carbonyl,chairwoman,macedonians,dentate,rockaway,correctness,wealthier,metamorphic,aragonese,fermanagh,pituitary,schrodinger,evokes,spoiler,chariots,akita,genitalia,combe,confectionery,desegregation,experiential,commodores,persepolis,viejo,restorations,virtualization,hispania,printmaking,stipend,yisrael,theravada,expended,radium,tweeted,polygonal,lippe,charente,leveraged,cutaneous,fallacy,fragrant,bypasses,elaborately,rigidity,majid,majorca,kongo,plasmodium,skits,audiovisual,eerste,staircases,prompts,coulthard,northwestward,riverdale,beatrix,copyrights,prudential,communicates,mated,obscenity,asynchronous,analyse,hansa,searchlight,farnborough,patras,asquith,qarah,contours,fumbled,pasteur,redistributed,almeria,sanctuaries,jewry,israelite,clinicians,koblenz,bookshop,affective,goulburn,panelist,sikorsky,cobham,mimics,ringed,portraiture,probabilistic,girolamo,intelligible,andalusian,jalal,athenaeum,eritrean,auxiliaries,pittsburg,devolution,sangam,isolating,anglers,cronulla,annihilated,kidderminster,synthesize,popularised,theophilus,bandstand,innumerable,chagrin,retroactively,weser,multiples,birdlife,goryeo,pawnee,grosser,grappling,tactile,ahmadinejad,turboprop,erdogan,matchday,proletarian,adhering,complements,austronesian,adverts,luminaries,archeology,impressionism,conifer,sodomy,interracial,platoons,lessen,postings,pejorative,registrations,cookery,persecutions,microbes,audits,idiosyncratic,subsp,suspensions,restricts,colouring,ratify,instrumentals,nucleotides,sulla,posits,bibliotheque,diameters,oceanography,instigation,subsumed,submachine,acceptor,legation,borrows,sedge,discriminated,loaves,insurers,highgate,detectable,abandons,kilns,sportscaster,harwich,iterations,preakness,arduous,tensile,prabhu,shortwave,philologist,shareholding,vegetative,complexities,councilors,distinctively,revitalize,automaton,amassing,montreux,khanh,surabaya,nurnberg,pernambuco,cuisines,charterhouse,firsts,tercera,inhabitant,homophobia,naturalism,einar,powerplant,coruna,entertainments,whedon,rajputs,raton,democracies,arunachal,oeuvre,wallonia,jeddah,trolleybuses,evangelism,vosges,kiowa,minimise,encirclement,undertakes,emigrant,beacons,deepened,grammars,publius,preeminent,seyyed,repechage,crafting,headingley,osteopathic,lithography,hotly,bligh,inshore,betrothed,olympians,formula_31,dissociation,trivandrum,arran,petrovic,stettin,disembarked,simplification,bronzes,philo,acrobatic,jonsson,conjectured,supercharged,kanto,detects,cheeses,correlates,harmonics,lifecycle,sudamericana,reservists,decayed,elitserien,parametric,
113th,dusky,hogarth,modulo,symbiotic,monopolies,discontinuation,converges,southerners,tucuman,eclipses,enclaves,emits,famicom,caricatures,artistically,levelled,mussels,erecting,mouthparts,cunard,octaves,crucible,guardia,unusable,lagrangian,droughts,ephemeral,pashto,canis,tapering,sasebo,silurian,metallurgical,outscored,evolves,reissues,sedentary,homotopy,greyhawk,reagents,inheriting,onshore,tilting,rebuffed,reusable,naturalists,basingstoke,insofar,offensives,dravidian,curators,planks,rajan,isoforms,flagstaff,preside,globular,egalitarian,linkages,biographers,goalscorers,molybdenum,centralised,nordland,jurists,ellesmere,rosberg,hideyoshi,restructure,biases,borrower,scathing,redress,tunnelling,workflow,magnates,mahendra,dissenters,plethora,transcriptions,handicrafts,keyword,xi'an,petrograd,unser,prokofiev,
90deg,madan,bataan,maronite,kearny,carmarthen,termini,consulates,disallowed,rockville,bowery,fanzine,docklands,bests,prohibitions,yeltsin,selassie,naturalization,realisation,dispensary,tribeca,abdulaziz,pocahontas,stagnation,pamplona,cuneiform,propagating,subsurface,christgau,epithelium,schwerin,lynching,routledge,hanseatic,upanishad,glebe,yugoslavian,complicity,endowments,girona,mynetworktv,entomology,plinth,ba'ath,supercup,torus,akkadian,salted,englewood,commandery,belgaum,prefixed,colorless,dartford,enthroned,caesarea,nominative,sandown,safeguards,hulled,formula_32,leamington,dieppe,spearhead,generalizations,demarcation,llanelli,masque,brickwork,recounting,sufism,strikingly,petrochemical,onslow,monologues,emigrating,anderlecht,sturt,hossein,sakhalin,subduction,novices,deptford,zanjan,airstrikes,coalfield,reintroduction,timbaland,hornby,messianic,stinging,universalist,situational,radiocarbon,strongman,rowling,saloons,traffickers,overran,fribourg,cambrai,gravesend,discretionary,finitely,archetype,assessor,pilipinas,exhumed,invocation,interacted,digitized,timisoara,smelter,teton,sexism,precepts,srinagar,pilsudski,carmelite,hanau,scoreline,hernando,trekking,blogging,fanbase,wielded,vesicles,nationalization,banja,rafts,motoring,luang,takeda,girder,stimulates,histone,sunda,nanoparticles,attains,jumpers,catalogued,alluding,pontus,ancients,examiners,shinkansen,ribbentrop,reimbursement,pharmacological,ramat,stringed,imposes,cheaply,transplanted,taiping,mizoram,looms,wallabies,sideman,kootenay,encased,sportsnet,revolutionized,tangier,benthic,runic,pakistanis,heatseekers,shyam,mishnah,presbyterians,stadt,sutras,straddles,zoroastrian,infer,fueling,gymnasts,ofcom,gunfight,journeyman,tracklist,oshawa,ps500,pa'in,mackinac,xiongnu,mississippian,breckinridge,freemason,bight,autoroute,liberalization,distantly,thrillers,solomons,presumptive,romanization,anecdotal,bohemians,unpaved,milder,concurred,spinners,alphabets,strenuous,rivieres,kerrang,mistreatment,dismounted,intensively,carlist,dancehall,shunting,pluralism,trafficked,brokered,bonaventure,bromide,neckar,designates,malian,reverses,sotheby,sorghum,serine,environmentalists,languedoc,consulship,metering,bankstown,handlers,militiamen,conforming,regularity,pondicherry,armin,capsized,consejo,capitalists,drogheda,granular,purged,acadians,endocrine,intramural,elicit,terns,orientations,miklos,omitting,apocryphal,slapstick,brecon,pliocene,affords,typography,emigre,tsarist,tomasz,beset,nishi,necessitating,encyclical,roleplaying,journeyed,inflow,sprints,progressives,novosibirsk,cameroonian,ephesus,speckled,kinshasa,freiherr,burnaby,dalmatian,torrential,rigor,renegades,bhakti,nurburgring,cosimo,convincingly,reverting,visayas,lewisham,charlottetown,charadriiformesfamily,transferable,jodhpur,converters,deepening,camshaft,underdeveloped,protease,polonia,uterine,quantify,tobruk,dealerships,narasimha,fortran,inactivity,
1780s,victors,categorised,naxos,workstation,skink,sardinian,chalice,precede,dammed,sondheim,phineas,tutored,sourcing,uncompromising,placer,tyneside,courtiers,proclaims,pharmacies,hyogo,booksellers,sengoku,kursk,spectrometer,countywide,wielkopolski,bobsleigh,shetty,llywelyn,consistory,heretics,guinean,cliches,individualism,monolithic,imams,usability,bursa,deliberations,railings,torchwood,inconsistency,balearic,stabilizer,demonstrator,facet,radioactivity,outboard,educates,d'oyly,heretical,handover,jurisdictional,shockwave,hispaniola,conceptually,routers,unaffiliated,trentino,formula_33,cypriots,intervenes,neuchatel,formulating,maggiore,delisted,alcohols,thessaly,potable,estimator,suborder,fluency,mimicry,clergymen,infrastructures,rivals.com,baroda,subplot,majlis,plano,clinching,connotation,carinae,savile,intercultural,transcriptional,sandstones,ailerons,annotations,impresario,heinkel,scriptural,intermodal,astrological,ribbed,northeastward,posited,boers,utilise,kalmar,phylum,breakwater,skype,textured,guideline,azeri,rimini,massed,subsidence,anomalous,wolfsburg,polyphonic,accrediting,vodacom,kirov,captaining,kelantan,logie,fervent,eamon,taper,bundeswehr,disproportionately,divination,slobodan,pundits,hispano,kinetics,reunites,makati,ceasing,statistician,amending,chiltern,eparchy,riverine,melanoma,narragansett,pagans,raged,toppled,breaching,zadar,holby,dacian,ochre,velodrome,disparities,amphoe,sedans,webpage,williamsport,lachlan,groton,baring,swastika,heliport,unwillingness,razorbacks,exhibitors,foodstuffs,impacting,tithe,appendages,dermot,subtypes,nurseries,balinese,simulating,stary,remakes,mundi,chautauqua,geologically,stockade,hakka,dilute,kalimantan,pahang,overlapped,fredericton,baha'u'llah,jahangir,damping,benefactors,shomali,triumphal,cieszyn,paradigms,shielded,reggaeton,maharishi,zambian,shearing,golestan,mirroring,partitioning,flyover,songbook,incandescent,merrimack,huguenots,sangeet,vulnerabilities,trademarked,drydock,tantric,honoris,queenstown,labelling,iterative,enlists,statesmen,anglicans,herge,qinghai,burgundian,islami,delineated,zhuge,aggregated,banknote,qatari,suitably,tapestries,asymptotic,charleroi,majorities,pyramidellidae,leanings,climactic,tahir,ramsar,suppressor,revisionist,trawler,ernakulam,penicillium,categorization,slits,entitlement,collegium,earths,benefice,pinochet,puritans,loudspeaker,stockhausen,eurocup,roskilde,alois,jaroslav,rhondda,boutiques,vigor,neurotransmitter,ansar,malden,ferdinando,sported,relented,intercession,camberwell,wettest,thunderbolts,positional,oriel,cloverleaf,penalized,shoshone,rajkumar,completeness,sharjah,chromosomal,belgians,woolen,ultrasonic,sequentially,boleyn,mordella,microsystems,initiator,elachista,mineralogy,rhododendron,integrals,compostela,hamza,sawmills,stadio,berlioz,maidens,stonework,yachting,tappeh,myocardial,laborer,workstations,costumed,nicaea,lanark,roundtable,mashhad,nablus,algonquian,stuyvesant,sarkar,heroines,diwan,laments,intonation,intrigues,almaty,feuded,grandes,algarve,rehabilitate,macrophages,cruciate,dismayed,heuristic,eliezer,kozhikode,covalent,finalised,dimorphism,yaroslavl,overtaking,leverkusen,middlebury,feeders,brookings,speculates,insoluble,lodgings,jozsef,cysteine,shenyang,habilitation,spurious,brainchild,mtdna,comique,albedo,recife,partick,broadening,shahi,orientated,himalaya,swabia,palme,mennonites,spokeswoman,conscripts,sepulchre,chartres,eurozone,scaffold,invertebrate,parishad,bagan,heian,watercolors,basse,supercomputer,commences,tarragona,plainfield,arthurian,functor,identically,murex,chronicling,pressings,burrowing,histoire,guayaquil,goalkeeping,differentiable,warburg,machining,aeneas,kanawha,holocene,ramesses,reprisal,qingdao,avatars,turkestan,cantatas,besieging,repudiated,teamsters,equipping,hydride,ahmadiyya,euston,bottleneck,computations,terengganu,kalinga,stela,rediscovery,'this,azhar,stylised,karelia,polyethylene,kansai,motorised,lounges,normalization,calculators,
1700s,goalkeepers,unfolded,commissary,cubism,vignettes,multiverse,heaters,briton,sparingly,childcare,thorium,plock,riksdag,eunuchs,catalysis,limassol,perce,uncensored,whitlam,ulmus,unites,mesopotamian,refraction,biodiesel,forza,fulda,unseated,mountbatten,shahrak,selenium,osijek,mimicking,antimicrobial,axons,simulcasting,donizetti,swabian,sportsmen,hafiz,neared,heraclius,locates,evaded,subcarpathian,bhubaneswar,negeri,jagannath,thaksin,aydin,oromo,lateran,goldsmiths,multiculturalism,cilia,mihai,evangelists,lorient,qajar,polygons,vinod,mechanised,anglophone,prefabricated,mosses,supervillain,airliners,biofuels,iodide,innovators,valais,wilberforce,logarithm,intelligentsia,dissipation,sanctioning,duchies,aymara,porches,simulators,mostar,telepathic,coaxial,caithness,burghs,fourths,stratification,joaquim,scribes,meteorites,monarchist,germination,vries,desiring,replenishment,istria,winemaking,tammany,troupes,hetman,lanceolate,pelagic,triptych,primeira,scant,outbound,hyphae,denser,bentham,basie,normale,executes,ladislaus,kontinental,herat,cruiserweight,activision,customization,manoeuvres,inglewood,northwood,waveform,investiture,inpatient,alignments,kiryat,rabat,archimedes,ustad,monsanto,archetypal,kirkby,sikhism,correspondingly,catskill,overlaid,petrels,widowers,unicameral,federalists,metalcore,gamerankings,mussel,formula_34,lymphocytes,cystic,southgate,vestiges,immortals,kalam,strove,amazons,pocono,sociologists,sopwith,adheres,laurens,caregivers,inspecting,transylvanian,rebroadcast,rhenish,miserables,pyrams,blois,newtonian,carapace,redshirt,gotland,nazir,unilever,distortions,linebackers,federalism,mombasa,lumen,bernoulli,favouring,aligarh,denounce,steamboats,dnieper,stratigraphic,synths,bernese,umass,icebreaker,guanajuato,heisenberg,boldly,diodes,ladakh,dogmatic,scriptwriter,maritimes,battlestar,symposia,adaptable,toluca,bhavan,nanking,ieyasu,picardy,soybean,adalbert,brompton,deutsches,brezhnev,glandular,laotian,hispanicized,ibadan,personification,dalit,yamuna,regio,dispensed,yamagata,zweibrucken,revising,fandom,stances,participle,flavours,khitan,vertebral,crores,mayaguez,dispensation,guntur,undefined,harpercollins,unionism,meena,leveling,philippa,refractory,telstra,judea,attenuation,pylons,elaboration,elegy,edging,gracillariidae,residencies,absentia,reflexive,deportations,dichotomy,stoves,sanremo,shimon,menachem,corneal,conifers,mordellidae,facsimile,diagnoses,cowper,citta,viticulture,divisive,riverview,foals,mystics,polyhedron,plazas,airspeed,redgrave,motherland,impede,multiplicity,barrichello,airships,pharmacists,harvester,clays,payloads,differentiating,popularize,caesars,tunneling,stagnant,circadian,indemnity,sensibilities,musicology,prefects,serfs,metra,lillehammer,carmarthenshire,kiosks,welland,barbican,alkyl,tillandsia,gatherers,asociacion,showings,bharati,brandywine,subversion,scalable,pfizer,dawla,barium,dardanelles,nsdap,konig,ayutthaya,hodgkin,sedimentation,completions,purchasers,sponsorships,maximizing,banked,taoism,minot,enrolls,fructose,aspired,capuchin,outages,artois,carrollton,totality,osceola,pawtucket,fontainebleau,converged,queretaro,competencies,botha,allotments,sheaf,shastri,obliquely,banding,catharines,outwardly,monchengladbach,driest,contemplative,cassini,ranga,pundit,kenilworth,tiananmen,disulfide,formula_35,townlands,codice_3,looping,caravans,rachmaninoff,segmentation,fluorine,anglicised,gnostic,dessau,discern,reconfigured,altrincham,rebounding,battlecruiser,ramblers,
1770s,convective,triomphe,miyagi,mourners,instagram,aloft,breastfeeding,courtyards,folkestone,changsha,kumamoto,saarland,grayish,provisionally,appomattox,uncial,classicism,mahindra,elapsed,supremes,monophyletic,cautioned,formula_36,noblewoman,kernels,sucre,swaps,bengaluru,grenfell,epicenter,rockhampton,worshipful,licentiate,metaphorical,malankara,amputated,wattle,palawan,tankobon,nobunaga,polyhedra,transduction,jilin,syrians,affinities,fluently,emanating,anglicized,sportscar,botanists,altona,dravida,chorley,allocations,kunming,luanda,premiering,outlived,mesoamerica,lingual,dissipating,impairments,attenborough,balustrade,emulator,bakhsh,cladding,increments,ascents,workington,qal'eh,winless,categorical,petrel,emphasise,dormer,toros,hijackers,telescopic,solidly,jankovic,cession,gurus,madoff,newry,subsystems,northside,talib,englishmen,farnese,holographic,electives,argonne,scrivener,predated,brugge,nauvoo,catalyses,soared,siddeley,graphically,powerlifting,funicular,sungai,coercive,fusing,uncertainties,locos,acetic,diverge,wedgwood,dressings,tiebreaker,didactic,vyacheslav,acreage,interplanetary,battlecruisers,sunbury,alkaloids,hairpin,automata,wielkie,interdiction,plugins,monkees,nudibranch,esporte,approximations,disabling,powering,characterisation,ecologically,martinsville,termen,perpetuated,lufthansa,ascendancy,motherboard,bolshoi,athanasius,prunus,dilution,invests,nonzero,mendocino,charan,banque,shaheed,counterculture,unita,voivode,hospitalization,vapour,supermarine,resistor,steppes,osnabruck,intermediates,benzodiazepines,sunnyside,privatized,geopolitical,ponta,beersheba,kievan,embody,theoretic,sangh,cartographer,blige,rotors,thruway,battlefields,discernible,demobilized,broodmare,colouration,sagas,policymakers,serialization,augmentation,hoare,frankfurter,transnistria,kinases,detachable,generational,converging,antiaircraft,khaki,bimonthly,coadjutor,arkhangelsk,kannur,buffers,livonian,northwich,enveloped,cysts,yokozuna,herne,beeching,enron,virginian,woollen,excepting,competitively,outtakes,recombinant,hillcrest,clearances,pathe,cumbersome,brasov,u.s.a,likud,christiania,cruciform,hierarchies,wandsworth,lupin,resins,voiceover,sitar,electrochemical,mediacorp,typhus,grenadiers,hepatic,pompeii,weightlifter,bosniak,oxidoreductase,undersecretary,rescuers,ranji,seleucid,analysing,exegesis,tenancy,toure,kristiansand,
110th,carillon,minesweepers,poitou,acceded,palladian,redevelop,naismith,rifled,proletariat,shojo,hackensack,harvests,endpoint,kuban,rosenborg,stonehenge,authorisation,jacobean,revocation,compatriots,colliding,undetermined,okayama,acknowledgment,angelou,fresnel,chahar,ethereal,mg/kg,emmet,mobilised,unfavourable,cultura,characterizing,parsonage,skeptics,expressways,rabaul,medea,guardsmen,visakhapatnam,caddo,homophobic,elmwood,encircling,coexistence,contending,seljuk,mycologist,infertility,moliere,insolvent,covenants,underpass,holme,landesliga,workplaces,delinquency,methamphetamine,contrived,tableau,tithes,overlying,usurped,contingents,spares,oligocene,molde,beatification,mordechai,balloting,pampanga,navigators,flowered,debutant,codec,orogeny,newsletters,solon,ambivalent,ubisoft,archdeaconry,harpers,kirkus,jabal,castings,kazhagam,sylhet,yuwen,barnstaple,amidships,causative,isuzu,watchtower,granules,canaveral,remuneration,insurer,payout,horizonte,integrative,attributing,kiwis,skanderbeg,asymmetry,gannett,urbanism,disassembled,unaltered,precluded,melodifestivalen,ascends,plugin,gurkha,bisons,stakeholder,industrialisation,abbotsford,sextet,bustling,uptempo,slavia,choreographers,midwives,haram,javed,gazetteer,subsection,natively,weighting,lysine,meera,redbridge,muchmusic,abruzzo,adjoins,unsustainable,foresters,kbit/s,cosmopterigidae,secularism,poetics,causality,phonograph,estudiantes,ceausescu,universitario,adjoint,applicability,gastropods,nagaland,kentish,mechelen,atalanta,woodpeckers,lombards,gatineau,romansh,avraham,acetylcholine,perturbation,galois,wenceslaus,fuzhou,meandering,dendritic,sacristy,accented,katha,therapeutics,perceives,unskilled,greenhouses,analogues,chaldean,timbre,sloped,volodymyr,sadiq,maghreb,monogram,rearguard,caucuses,mures,metabolite,uyezd,determinism,theosophical,corbet,gaels,disruptions,bicameral,ribosomal,wolseley,clarksville,watersheds,tarsi,radon,milanese,discontinuous,aristotelian,whistleblower,representational,hashim,modestly,localised,atrial,hazara,ravana,troyes,appointees,rubus,morningside,amity,aberdare,ganglia,wests,zbigniew,aerobatic,depopulated,corsican,introspective,twinning,hardtop,shallower,cataract,mesolithic,emblematic,graced,lubrication,republicanism,voronezh,bastions,meissen,irkutsk,oboes,hokkien,sprites,tenet,individualist,capitulated,oakville,dysentery,orientalist,hillsides,keywords,elicited,incised,lagging,apoel,lengthening,attractiveness,marauders,sportswriter,decentralization,boltzmann,contradicts,draftsman,precipitate,solihull,norske,consorts,hauptmann,riflemen,adventists,syndromes,demolishing,customize,continuo,peripherals,seamlessly,linguistically,bhushan,orphanages,paraul,lessened,devanagari,quarto,responders,patronymic,riemannian,altoona,canonization,honouring,geodetic,exemplifies,republica,enzymatic,porters,fairmount,pampa,sufferers,kamchatka,conjugated,coachella,uthman,repositories,copious,headteacher,awami,phoneme,homomorphism,franconian,moorland,davos,quantified,kamloops,quarks,mayoralty,weald,peacekeepers,valerian,particulate,insiders,perthshire,caches,guimaraes,piped,grenadines,kosciuszko,trombonist,artemisia,covariance,intertidal,soybeans,beatified,ellipse,fruiting,deafness,dnipropetrovsk,accrued,zealous,mandala,causation,junius,kilowatt,bakeries,montpelier,airdrie,rectified,bungalows,toleration,debian,pylon,trotskyist,posteriorly,two-and-a-half,herbivorous,islamists,poetical,donne,wodehouse,frome,allium,assimilate,phonemic,minaret,unprofitable,darpa,untenable,leaflet,bitcoin,zahir,thresholds,argentino,jacopo,bespoke,stratified,wellbeing,shiite,basaltic,timberwolves,secrete,taunts,marathons,isomers,carre,consecrators,penobscot,pitcairn,sakha,crosstown,inclusions,impassable,fenders,indre,uscgc,jordi,retinue,logarithmic,pilgrimages,railcar,cashel,blackrock,macroscopic,aligning,tabla,trestle,certify,ronson,palps,dissolves,thickened,silicate,taman,walsingham,hausa,lowestoft,rondo,oleksandr,cuyahoga,retardation,countering,cricketing,holborn,identifiers,hells,geophysics,infighting,sculpting,balaji,webbed,irradiation,runestone,trusses,oriya,sojourn,forfeiture,colonize,exclaimed,eucharistic,lackluster,glazing,northridge,gutenberg,stipulates,macroeconomic,priori,outermost,annular,udinese,insulating,headliner,godel,polytope,megalithic,salix,sharapova,derided,muskegon,braintree,plateaus,confers,autocratic,isomer,interstitial,stamping,omits,kirtland,hatchery,evidences,intifada,
111th,podgorica,capua,motivating,nuneaton,jakub,korsakov,amitabh,mundial,monrovia,gluten,predictor,marshalling,d'orleans,levers,touchscreen,brantford,fricative,banishment,descendent,antagonism,ludovico,loudspeakers,formula_37,livelihoods,manassas,steamships,dewsbury,uppermost,humayun,lures,pinnacles,dependents,lecce,clumps,observatories,paleozoic,dedicating,samiti,draughtsman,gauls,incite,infringing,nepean,pythagorean,convents,triumvirate,seigneur,gaiman,vagrant,fossa,byproduct,serrated,renfrewshire,sheltering,achaemenid,dukedom,catchers,sampdoria,platelet,bielefeld,fluctuating,phenomenology,strikeout,ethnology,prospectors,woodworking,tatra,wildfires,meditations,agrippa,fortescue,qureshi,wojciech,methyltransferase,accusative,saatchi,amerindian,volcanism,zeeland,toyama,vladimirovich,allege,polygram,redox,budgeted,advisories,nematode,chipset,starscream,tonbridge,hardening,shales,accompanist,paraded,phonographic,whitefish,sportive,audiobook,kalisz,hibernation,latif,duels,ps200,coxeter,nayak,safeguarding,cantabria,minesweeping,zeiss,dunams,catholicos,sawtooth,ontological,nicobar,bridgend,unclassified,intrinsically,hanoverian,rabbitohs,kenseth,alcalde,northumbrian,raritan,septuagint,presse,sevres,origen,dandenong,peachtree,intersected,impeded,usages,hippodrome,novara,trajectories,customarily,yardage,inflected,yanow,kalan,taverns,liguria,librettist,intermarriage,
1760s,courant,gambier,infanta,ptolemaic,ukulele,haganah,sceptical,manchukuo,plexus,implantation,hilal,intersex,efficiencies,arbroath,hagerstown,adelphi,diario,marais,matti,lifes,coining,modalities,divya,bletchley,conserving,ivorian,mithridates,generative,strikeforce,laymen,toponymy,pogrom,satya,meticulously,agios,dufferin,yaakov,fortnightly,cargoes,deterrence,prefrontal,przemysl,mitterrand,commemorations,chatsworth,gurdwara,abuja,chakraborty,badajoz,geometries,artiste,diatonic,ganglion,presides,marymount,nanak,cytokines,feudalism,storks,rowers,widens,politico,evangelicals,assailants,pittsfield,allowable,bijapur,telenovelas,dichomeris,glenelg,herbivores,keita,inked,radom,fundraisers,constantius,boheme,portability,komnenos,crystallography,derrida,moderates,tavistock,fateh,spacex,disjoint,bristles,commercialized,interwoven,empirically,regius,bulacan,newsday,showa,radicalism,yarrow,pleura,sayed,structuring,cotes,reminiscences,acetyl,edicts,escalators,aomori,encapsulated,legacies,bunbury,placings,fearsome,postscript,powerfully,keighley,hildesheim,amicus,crevices,deserters,benelux,aurangabad,freeware,ioannis,carpathians,chirac,seceded,prepaid,landlocked,naturalised,yanukovych,soundscan,blotch,phenotypic,determinants,twente,dictatorial,giessen,composes,recherche,pathophysiology,inventories,ayurveda,elevating,gravestone,degeneres,vilayet,popularizing,spartanburg,bloemfontein,previewed,renunciation,genotype,ogilvy,tracery,blacklisted,emissaries,diploid,disclosures,tupolev,shinjuku,antecedents,pennine,braganza,bhattacharya,countable,spectroscopic,ingolstadt,theseus,corroborated,compounding,thrombosis,extremadura,medallions,hasanabad,lambton,perpetuity,glycol,besancon,palaiologos,pandey,caicos,antecedent,stratum,laserdisc,novitiate,crowdfunding,palatal,sorceress,dassault,toughness,celle,cezanne,vientiane,tioga,hander,crossbar,gisborne,cursor,inspectorate,serif,praia,sphingidae,nameplate,psalter,ivanovic,sitka,equalised,mutineers,sergius,outgrowth,creationism,haredi,rhizomes,predominate,undertakings,vulgate,hydrothermal,abbeville,geodesic,kampung,physiotherapy,unauthorised,asteraceae,conservationist,minoan,supersport,mohammadabad,cranbrook,mentorship,legitimately,marshland,datuk,louvain,potawatomi,carnivores,levies,lyell,hymnal,regionals,tinto,shikoku,conformal,wanganui,beira,lleida,standstill,deloitte,formula_40,corbusier,chancellery,mixtapes,airtime,muhlenberg,formula_39,bracts,thrashers,prodigious,gironde,chickamauga,uyghurs,substitutions,pescara,batangas,gregarious,gijon,paleo,mathura,pumas,proportionally,hawkesbury,yucca,kristiania,funimation,fluted,eloquence,mohun,aftermarket,chroniclers,futurist,nonconformist,branko,mannerisms,lesnar,opengl,altos,retainers,ashfield,shelbourne,sulaiman,divisie,gwent,locarno,lieder,minkowski,bivalve,redeployed,cartography,seaway,bookings,decays,ostend,antiquaries,pathogenesis,formula_38,chrysalis,esperance,valli,motogp,homelands,bridged,bloor,ghazal,vulgaris,baekje,prospector,calculates,debtors,hesperiidae,titian,returner,landgrave,frontenac,kelowna,pregame,castelo,caius,canoeist,watercolours,winterthur,superintendents,dissonance,dubstep,adorn,matic,salih,hillel,swordsman,flavoured,emitter,assays,monongahela,deeded,brazzaville,sufferings,babylonia,fecal,umbria,astrologer,gentrification,frescos,phasing,zielona,ecozone,candido,manoj,quadrilateral,gyula,falsetto,prewar,puntland,infinitive,contraceptive,bakhtiari,ohrid,socialization,tailplane,evoking,havelock,macapagal,plundering,
104th,keynesian,templars,phrasing,morphologically,czestochowa,humorously,catawba,burgas,chiswick,ellipsoid,kodansha,inwards,gautama,katanga,orthopaedic,heilongjiang,sieges,outsourced,subterminal,vijayawada,hares,oration,leitrim,ravines,manawatu,cryogenic,tracklisting,about.com,ambedkar,degenerated,hastened,venturing,lobbyists,shekhar,typefaces,northcote,rugen,'good,ornithology,asexual,hemispheres,unsupported,glyphs,spoleto,epigenetic,musicianship,donington,diogo,kangxi,bisected,polymorphism,megawatt,salta,embossed,cheetahs,cruzeiro,unhcr,aristide,rayleigh,maturing,indonesians,noire,llano,ffffff,camus,purges,annales,convair,apostasy,algol,phage,apaches,marketers,aldehyde,pompidou,kharkov,forgeries,praetorian,divested,retrospectively,gornji,scutellum,bitumen,pausanias,magnification,imitations,nyasaland,geographers,floodlights,athlone,hippolyte,expositions,clarinetist,razak,neutrinos,rotax,sheykh,plush,interconnect,andalus,cladogram,rudyard,resonator,granby,blackfriars,placido,windscreen,sahel,minamoto,haida,cations,emden,blackheath,thematically,blacklist,pawel,disseminating,academical,undamaged,raytheon,harsher,powhatan,ramachandran,saddles,paderborn,capping,zahra,prospecting,glycine,chromatin,profane,banska,helmand,okinawan,dislocation,oscillators,insectivorous,foyle,gilgit,autonomic,tuareg,sluice,pollinated,multiplexed,granary,narcissus,ranchi,staines,nitra,goalscoring,midwifery,pensioners,algorithmic,meetinghouse,biblioteca,besar,narva,angkor,predate,lohan,cyclical,detainee,occipital,eventing,faisalabad,dartmoor,kublai,courtly,resigns,radii,megachilidae,cartels,shortfall,xhosa,unregistered,benchmarks,dystopian,bulkhead,ponsonby,jovanovic,accumulates,papuan,bhutanese,intuitively,gotaland,headliners,recursion,dejan,novellas,diphthongs,imbued,withstood,analgesic,amplify,powertrain,programing,maidan,alstom,affirms,eradicated,summerslam,videogame,molla,severing,foundered,gallium,atmospheres,desalination,shmuel,howmeh,catolica,bossier,reconstructing,isolates,lyase,tweets,unconnected,tidewater,divisible,cohorts,orebro,presov,furnishing,folklorist,simplifying,centrale,notations,factorization,monarchies,deepen,macomb,facilitation,hennepin,declassified,redrawn,microprocessors,preliminaries,enlarging,timeframe,deutschen,shipbuilders,patiala,ferrous,aquariums,genealogies,vieux,unrecognized,bridgwater,tetrahedral,thule,resignations,gondwana,registries,agder,dataset,felled,parva,analyzer,worsen,coleraine,columella,blockaded,polytechnique,reassembled,reentry,narvik,greys,nigra,knockouts,bofors,gniezno,slotted,hamasaki,ferrers,conferring,thirdly,domestication,photojournalist,universality,preclude,ponting,halved,thereupon,photosynthetic,ostrava,mismatch,pangasinan,intermediaries,abolitionists,transited,headings,ustase,radiological,interconnection,dabrowa,invariants,honorius,preferentially,chantilly,marysville,dialectical,antioquia,abstained,gogol,dirichlet,muricidae,symmetries,reproduces,brazos,fatwa,bacillus,ketone,paribas,chowk,multiplicative,dermatitis,mamluks,devotes,adenosine,newbery,meditative,minefields,inflection,oxfam,conwy,bystrica,imprints,pandavas,infinitesimal,conurbation,amphetamine,reestablish,furth,edessa,injustices,frankston,serjeant,
4x200,khazar,sihanouk,longchamp,stags,pogroms,coups,upperparts,endpoints,infringed,nuanced,summing,humorist,pacification,ciaran,jamaat,anteriorly,roddick,springboks,faceted,hypoxia,rigorously,cleves,fatimid,ayurvedic,tabled,ratna,senhora,maricopa,seibu,gauguin,holomorphic,campgrounds,amboy,coordinators,ponderosa,casemates,ouachita,nanaimo,mindoro,zealander,rimsky,cluny,tomaszow,meghalaya,caetano,tilak,roussillon,landtag,gravitation,dystrophy,cephalopods,trombones,glens,killarney,denominated,anthropogenic,pssas,roubaix,carcasses,montmorency,neotropical,communicative,rabindranath,ordinated,separable,overriding,surged,sagebrush,conciliation,codice_4,durrani,phosphatase,qadir,votive,revitalized,taiyuan,tyrannosaurus,graze,slovaks,nematodes,environmentalism,blockhouse,illiteracy,schengen,ecotourism,alternation,conic,wields,hounslow,blackfoot,kwame,ambulatory,volhynia,hordaland,croton,piedras,rohit,drava,conceptualized,birla,illustrative,gurgaon,barisal,tutsi,dezong,nasional,polje,chanson,clarinets,krasnoyarsk,aleksandrovich,cosmonaut,d'este,palliative,midseason,silencing,wardens,durer,girders,salamanders,torrington,supersonics,lauda,farid,circumnavigation,embankments,funnels,bajnoksag,lorries,cappadocia,jains,warringah,retirees,burgesses,equalization,cusco,ganesan,algal,amazonian,lineups,allocating,conquerors,usurper,mnemonic,predating,brahmaputra,ahmadabad,maidenhead,numismatic,subregion,encamped,reciprocating,freebsd,irgun,tortoises,governorates,zionists,airfoil,collated,ajmer,fiennes,etymological,polemic,chadian,clerestory,nordiques,fluctuated,calvados,oxidizing,trailhead,massena,quarrels,dordogne,tirunelveli,pyruvate,pulsed,athabasca,sylar,appointee,serer,japonica,andronikos,conferencing,nicolaus,chemin,ascertained,incited,woodbine,helices,hospitalised,emplacements,to/from,orchestre,tyrannical,pannonia,methodism,pop/rock,shibuya,berbers,despot,seaward,westpac,separator,perpignan,alamein,judeo,publicize,quantization,ethniki,gracilis,menlo,offside,oscillating,unregulated,succumbing,finnmark,metrical,suleyman,raith,sovereigns,bundesstrasse,kartli,fiduciary,darshan,foramen,curler,concubines,calvinism,larouche,bukhara,sophomores,mohanlal,lutheranism,monomer,eamonn,'black,uncontested,immersive,tutorials,beachhead,bindings,permeable,postulates,comite,transformative,indiscriminate,hofstra,associacao,amarna,dermatology,lapland,aosta,babur,unambiguous,formatting,schoolboys,gwangju,superconducting,replayed,adherent,aureus,compressors,forcible,spitsbergen,boulevards,budgeting,nossa,annandale,perumal,interregnum,sassoon,kwajalein,greenbrier,caldas,triangulation,flavius,increment,shakhtar,nullified,pinfall,nomen,microfinance,depreciation,cubist,steeper,splendour,gruppe,everyman,chasers,campaigners,bridle,modality,percussive,darkly,capes,velar,picton,triennial,factional,padang,toponym,betterment,norepinephrine,
112th,estuarine,diemen,warehousing,morphism,ideologically,pairings,immunization,crassus,exporters,sefer,flocked,bulbous,deseret,booms,calcite,bohol,elven,groot,pulau,citigroup,wyeth,modernizing,layering,pastiche,complies,printmaker,condenser,theropod,cassino,oxyrhynchus,akademie,trainings,lowercase,coxae,parte,chetniks,pentagonal,keselowski,monocoque,morsi,reticulum,meiosis,clapboard,recoveries,tinge,an/fps,revista,sidon,livre,epidermis,conglomerates,kampong,congruent,harlequins,tergum,simplifies,epidemiological,underwriting,tcp/ip,exclusivity,multidimensional,mysql,columbine,ecologist,hayat,sicilies,levees,handset,aesop,usenet,pacquiao,archiving,alexandrian,compensatory,broadsheet,annotation,bahamian,d'affaires,interludes,phraya,shamans,marmara,customizable,immortalized,ambushes,chlorophyll,diesels,emulsion,rheumatoid,voluminous,screenwriters,tailoring,sedis,runcorn,democratization,bushehr,anacostia,constanta,antiquary,sixtus,radiate,advaita,antimony,acumen,barristers,reichsbahn,ronstadt,symbolist,pasig,cursive,secessionist,afrikaner,munnetra,inversely,adsorption,syllabic,moltke,idioms,midline,olimpico,diphosphate,cautions,radziwill,mobilisation,copelatus,trawlers,unicron,bhaskar,financiers,minimalism,derailment,marxists,oireachtas,abdicate,eigenvalue,zafar,vytautas,ganguly,chelyabinsk,telluride,subordination,ferried,dived,vendee,pictish,dimitrov,expiry,carnation,cayley,magnitudes,lismore,gretna,sandwiched,unmasked,sandomierz,swarthmore,tetra,nanyang,pevsner,dehradun,mormonism,rashi,complying,seaplanes,ningbo,cooperates,strathcona,mornington,mestizo,yulia,edgbaston,palisade,ethno,polytopes,espirito,tymoshenko,pronunciations,paradoxical,taichung,chipmunks,erhard,maximise,accretion,kanda,`abdu'l,narrowest,umpiring,mycenaean,divisor,geneticist,ceredigion,barque,hobbyists,equates,auxerre,spinose,cheil,sweetwater,guano,carboxylic,archiv,tannery,cormorant,agonists,fundacion,anbar,tunku,hindrance,meerut,concordat,secunderabad,kachin,achievable,murfreesboro,comprehensively,forges,broadest,synchronised,speciation,scapa,aliyev,conmebol,tirelessly,subjugated,pillaged,udaipur,defensively,lakhs,stateless,haasan,headlamps,patterning,podiums,polyphony,mcmurdo,mujer,vocally,storeyed,mucosa,multivariate,scopus,minimizes,formalised,certiorari,bourges,populate,overhanging,gaiety,unreserved,borromeo,woolworths,isotopic,bashar,purify,vertebra,medan,juxtaposition,earthwork,elongation,chaudhary,schematic,piast,steeped,nanotubes,fouls,achaea,legionnaires,abdur,qmjhl,embraer,hardback,centerville,ilocos,slovan,whitehorse,mauritian,moulding,mapuche,donned,provisioning,gazprom,jonesboro,audley,lightest,calyx,coldwater,trigonometric,petroglyphs,psychoanalyst,congregate,zambezi,fissure,supervises,bexley,etobicoke,wairarapa,tectonics,emphasises,formula_41,debugging,linfield,spatially,ionizing,ungulates,orinoco,clades,erlangen,news/talk,vols.,ceara,yakovlev,finsbury,entanglement,fieldhouse,graphene,intensifying,grigory,keyong,zacatecas,ninian,allgemeine,keswick,societa,snorri,femininity,najib,monoclonal,guyanese,postulate,huntly,abbeys,machinist,yunus,emphasising,ishaq,urmia,bremerton,pretenders,lumiere,thoroughfares,chikara,dramatized,metathorax,taiko,transcendence,wycliffe,retrieves,umpired,steuben,racehorses,taylors,kuznetsov,montezuma,precambrian,canopies,gaozong,propodeum,disestablished,retroactive,shoreham,rhizome,doubleheader,clinician,diwali,quartzite,shabaab,agassiz,despatched,stormwater,luxemburg,callao,universidade,courland,skane,glyph,dormers,witwatersrand,curacy,qualcomm,nansen,entablature,lauper,hausdorff,lusaka,ruthenian,
360deg,cityscape,douai,vaishnava,spars,vaulting,rationalist,gygax,sequestration,typology,pollinates,accelerators,leben,colonials,cenotaph,imparted,carthaginians,equaled,rostrum,gobind,bodhisattva,oberst,bicycling,arabi,sangre,biophysics,hainaut,vernal,lunenburg,apportioned,finches,lajos,nenad,repackaged,zayed,nikephoros,r.e.m,swaminarayan,gestalt,unplaced,crags,grohl,sialkot,unsaturated,gwinnett,linemen,forays,palakkad,writs,instrumentalists,aircrews,badged,terrapins,
180deg,oneness,commissariat,changi,pupation,circumscribed,contador,isotropic,administrated,fiefs,nimes,intrusions,minoru,geschichte,nadph,tainan,changchun,carbondale,frisia,swapo,evesham,hawai'i,encyclopedic,transporters,dysplasia,formula_42,onsite,jindal,guetta,judgements,narbonne,permissions,paleogene,rationalism,vilna,isometric,subtracted,chattahoochee,lamina,missa,greville,pervez,lattices,persistently,crystallization,timbered,hawaiians,fouling,interrelated,masood,ripening,stasi,gamal,visigothic,warlike,cybernetics,tanjung,forfar,cybernetic,karelian,brooklands,belfort,greifswald,campeche,inexplicably,refereeing,understory,uninterested,prius,collegiately,sefid,sarsfield,categorize,biannual,elsevier,eisteddfod,declension,autonoma,procuring,misrepresentation,novelization,bibliographic,shamanism,vestments,potash,eastleigh,ionized,turan,lavishly,scilly,balanchine,importers,parlance,'that,kanyakumari,synods,mieszko,crossovers,serfdom,conformational,legislated,exclave,heathland,sadar,differentiates,propositional,konstantinos,photoshop,manche,vellore,appalachia,orestes,taiga,exchanger,grozny,invalidated,baffin,spezia,staunchly,eisenach,robustness,virtuosity,ciphers,inlets,bolagh,understandings,bosniaks,parser,typhoons,sinan,luzerne,webcomic,subtraction,jhelum,businessweek,ceske,refrained,firebox,mitigated,helmholtz,dilip,eslamabad,metalwork,lucan,apportionment,provident,gdynia,schooners,casement,danse,hajjiabad,benazir,buttress,anthracite,newsreel,wollaston,dispatching,cadastral,riverboat,provincetown,nantwich,missal,irreverent,juxtaposed,darya,ennobled,electropop,stereoscopic,maneuverability,laban,luhansk,udine,collectibles,haulage,holyrood,materially,supercharger,gorizia,shkoder,townhouses,pilate,layoffs,folkloric,dialectic,exuberant,matures,malla,ceuta,citizenry,crewed,couplet,stopover,transposition,tradesmen,antioxidant,amines,utterance,grahame,landless,isere,diction,appellant,satirist,urbino,intertoto,subiaco,antonescu,nehemiah,ubiquitin,emcee,stourbridge,fencers,
103rd,wranglers,monteverdi,watertight,expounded,xiamen,manmohan,pirie,threefold,antidepressant,sheboygan,grieg,cancerous,diverging,bernini,polychrome,fundamentalism,bihari,critiqued,cholas,villers,tendulkar,dafydd,vastra,fringed,evangelization,episcopalian,maliki,sana'a,ashburton,trianon,allegany,heptathlon,insufficiently,panelists,pharrell,hexham,amharic,fertilized,plumes,cistern,stratigraphy,akershus,catalans,karoo,rupee,minuteman,quantification,wigmore,leutnant,metanotum,weeknights,iridescent,extrasolar,brechin,deuterium,kuching,lyricism,astrakhan,brookhaven,euphorbia,hradec,bhagat,vardar,aylmer,positron,amygdala,speculators,unaccompanied,debrecen,slurry,windhoek,disaffected,rapporteur,mellitus,blockers,fronds,yatra,sportsperson,precession,physiologist,weeknight,pidgin,pharma,condemns,standardize,zetian,tibor,glycoprotein,emporia,cormorants,amalie,accesses,leonhard,denbighshire,roald,
116th,will.i.am,symbiosis,privatised,meanders,chemnitz,jabalpur,shing,secede,ludvig,krajina,homegrown,snippets,sasanian,euripides,peder,cimarron,streaked,graubunden,kilimanjaro,mbeki,middleware,flensburg,bukovina,lindwall,marsalis,profited,abkhaz,polis,camouflaged,amyloid,morgantown,ovoid,bodleian,morte,quashed,gamelan,juventud,natchitoches,storyboard,freeview,enumeration,cielo,preludes,bulawayo,
1600s,olympiads,multicast,faunal,asura,reinforces,puranas,ziegfeld,handicraft,seamount,kheil,noche,hallmarks,dermal,colorectal,encircle,hessen,umbilicus,sunnis,leste,unwin,disclosing,superfund,montmartre,refuelling,subprime,kolhapur,etiology,bismuth,laissez,vibrational,mazar,alcoa,rumsfeld,recurve,ticonderoga,lionsgate,onlookers,homesteads,filesystem,barometric,kingswood,biofuel,belleza,moshav,occidentalis,asymptomatic,northeasterly,leveson,huygens,numan,kingsway,primogeniture,toyotomi,yazoo,limpets,greenbelt,booed,concurrence,dihedral,ventrites,raipur,sibiu,plotters,kitab,
109th,trackbed,skilful,berthed,effendi,fairing,sephardi,mikhailovich,lockyer,wadham,invertible,paperbacks,alphabetic,deuteronomy,constitutive,leathery,greyhounds,estoril,beechcraft,poblacion,cossidae,excreted,flamingos,singha,olmec,neurotransmitters,ascoli,nkrumah,forerunners,dualism,disenchanted,benefitted,centrum,undesignated,noida,o'donoghue,collages,egrets,egmont,wuppertal,cleave,montgomerie,pseudomonas,srinivasa,lymphatic,stadia,resold,minima,evacuees,consumerism,ronde,biochemist,automorphism,hollows,smuts,improvisations,vespasian,bream,pimlico,eglin,colne,melancholic,berhad,ousting,saale,notaulices,ouest,hunslet,tiberias,abdomina,ramsgate,stanislas,donbass,pontefract,sucrose,halts,drammen,chelm,l'arc,taming,trolleys,konin,incertae,licensees,scythian,giorgos,dative,tanglewood,farmlands,o'keeffe,caesium,romsdal,amstrad,corte,oglethorpe,huntingdonshire,magnetization,adapts,zamosc,shooto,cuttack,centrepiece,storehouse,winehouse,morbidity,woodcuts,ryazan,buddleja,buoyant,bodmin,estero,austral,verifiable,periyar,christendom,curtail,shura,kaifeng,cotswold,invariance,seafaring,gorica,androgen,usman,seabird,forecourt,pekka,juridical,audacious,yasser,cacti,qianlong,polemical,d'amore,espanyol,distrito,cartographers,pacifism,serpents,backa,nucleophilic,overturning,duplicates,marksman,oriente,vuitton,oberleutnant,gielgud,gesta,swinburne,transfiguration,
1750s,retaken,celje,fredrikstad,asuka,cropping,mansard,donates,blacksmiths,vijayanagara,anuradhapura,germinate,betis,foreshore,jalandhar,bayonets,devaluation,frazione,ablaze,abidjan,approvals,homeostasis,corollary,auden,superfast,redcliffe,luxembourgish,datum,geraldton,printings,ludhiana,honoree,synchrotron,invercargill,hurriedly,
108th,three-and-a-half,colonist,bexar,limousin,bessemer,ossetian,nunataks,buddhas,rebuked,thais,tilburg,verdicts,interleukin,unproven,dordrecht,solent,acclamation,muammar,dahomey,operettas,
4x400,arrears,negotiators,whitehaven,apparitions,armoury,psychoactive,worshipers,sculptured,elphinstone,airshow,kjell,o'callaghan,shrank,professorships,predominance,subhash,coulomb,sekolah,retrofitted,samos,overthrowing,vibrato,resistors,palearctic,datasets,doordarshan,subcutaneous,compiles,immorality,patchwork,trinidadian,glycogen,pronged,zohar,visigoths,freres,akram,justo,agora,intakes,craiova,playwriting,bukhari,militarism,iwate,petitioners,harun,wisla,inefficiency,vendome,ledges,schopenhauer,kashi,entombed,assesses,tenn.,noumea,baguio,carex,o'donovan,filings,hillsdale,conjectures,blotches,annuals,lindisfarne,negated,vivek,angouleme,trincomalee,cofactor,verkhovna,backfield,twofold,automaker,rudra,freighters,darul,gharana,busway,formula_43,plattsburgh,portuguesa,showrunner,roadmap,valenciennes,erdos,biafra,spiritualism,transactional,modifies,carne,
107th,cocos,gcses,tiverton,radiotherapy,meadowlands,gunma,srebrenica,foxtel,authenticated,enslavement,classicist,klaipeda,minstrels,searchable,infantrymen,incitement,shiga,nadp+,urals,guilders,banquets,exteriors,counterattacks,visualized,diacritics,patrimony,svensson,transepts,prizren,telegraphy,najaf,emblazoned,coupes,effluent,ragam,omani,greensburg,taino,flintshire,cd/dvd,lobbies,narrating,cacao,seafarers,bicolor,collaboratively,suraj,floodlit,sacral,puppetry,tlingit,malwa,login,motionless,thien,overseers,vihar,golem,specializations,bathhouse,priming,overdubs,winningest,archetypes,uniao,acland,creamery,slovakian,lithographs,maryborough,confidently,excavating,stillborn,ramallah,audiencia,alava,ternary,hermits,rostam,bauxite,gawain,lothair,captions,gulfstream,timelines,receded,mediating,petain,bastia,rudbar,bidders,disclaimer,shrews,tailings,trilobites,yuriy,jamil,demotion,gynecology,rajinikanth,madrigals,ghazni,flycatchers,vitebsk,bizet,computationally,kashgar,refinements,frankford,heralds,europe/africa,levante,disordered,sandringham,queues,ransacked,trebizond,verdes,comedie,primitives,figurine,organists,culminate,gosport,coagulation,ferrying,hoyas,polyurethane,prohibitive,midfielders,ligase,progesterone,defectors,sweetened,backcountry,diodorus,waterside,nieuport,khwaja,jurong,decried,gorkha,ismaili,
300th,octahedral,kindergartens,paseo,codification,notifications,disregarding,risque,reconquista,shortland,atolls,texarkana,perceval,d'etudes,kanal,herbicides,tikva,nuova,gatherer,dissented,soweto,dexterity,enver,bacharach,placekicker,carnivals,automate,maynooth,symplectic,chetnik,militaire,upanishads,distributive,strafing,championing,moiety,miliband,blackadder,enforceable,maung,dimer,stadtbahn,diverges,obstructions,coleophoridae,disposals,shamrocks,aural,banca,bahru,coxed,grierson,vanadium,watermill,radiative,ecoregions,berets,hariri,bicarbonate,evacuations,mallee,nairn,rushden,loggia,slupsk,satisfactorily,milliseconds,cariboo,reine,cyclo,pigmentation,postmodernism,aqueducts,vasari,bourgogne,dilemmas,liquefied,fluminense,alloa,ibaraki,tenements,kumasi,humerus,raghu,labours,putsch,soundcloud,bodybuilder,rakyat,domitian,pesaro,translocation,sembilan,homeric,enforcers,tombstones,lectureship,rotorua,salamis,nikolaos,inferences,superfortress,lithgow,surmised,undercard,tarnow,barisan,stingrays,federacion,coldstream,haverford,ornithological,heerenveen,eleazar,jyoti,murali,bamako,riverbed,subsidised,theban,conspicuously,vistas,conservatorium,madrasa,kingfishers,arnulf,credential,syndicalist,sheathed,discontinuity,prisms,tsushima,coastlines,escapees,vitis,optimizing,megapixel,overground,embattled,halide,sprinters,buoys,mpumalanga,peculiarities,
106th,roamed,menezes,macao,prelates,papyri,freemen,dissertations,irishmen,pooled,sverre,reconquest,conveyance,subjectivity,asturian,circassian,formula_45,comdr,thickets,unstressed,monro,passively,harmonium,moveable,dinar,carlsson,elysees,chairing,b'nai,confusingly,kaoru,convolution,godolphin,facilitator,saxophones,eelam,jebel,copulation,anions,livres,licensure,pontypridd,arakan,controllable,alessandria,propelling,stellenbosch,tiber,wolka,liberators,yarns,d'azur,tsinghua,semnan,amhara,ablation,melies,tonality,historique,beeston,kahne,intricately,sonoran,robespierre,gyrus,boycotts,defaulted,infill,maranhao,emigres,framingham,paraiba,wilhelmshaven,tritium,skyway,labial,supplementation,possessor,underserved,motets,maldivian,marrakech,quays,wikimedia,turbojet,demobilization,petrarch,encroaching,sloops,masted,karbala,corvallis,agribusiness,seaford,stenosis,hieronymus,irani,superdraft,baronies,cortisol,notability,veena,pontic,cyclin,archeologists,newham,culled,concurring,aeolian,manorial,shouldered,fords,philanthropists,
105th,siddharth,gotthard,halim,rajshahi,jurchen,detritus,practicable,earthenware,discarding,travelogue,neuromuscular,elkhart,raeder,zygmunt,metastasis,internees,
102nd,vigour,upmarket,summarizing,subjunctive,offsets,elizabethtown,udupi,pardubice,repeaters,instituting,archaea,substandard,technische,linga,anatomist,flourishes,velika,tenochtitlan,evangelistic,fitchburg,springbok,cascading,hydrostatic,avars,occasioned,filipina,perceiving,shimbun,africanus,consternation,tsing,optically,beitar,
45deg,abutments,roseville,monomers,huelva,lotteries,hypothalamus,internationalist,electromechanical,hummingbirds,fibreglass,salaried,dramatists,uncovers,invokes,earners,excretion,gelding,ancien,aeronautica,haverhill,stour,ittihad,abramoff,yakov,ayodhya,accelerates,industrially,aeroplanes,deleterious,dwelt,belvoir,harpalus,atpase,maluku,alasdair,proportionality,taran,epistemological,interferometer,polypeptide,adjudged,villager,metastatic,marshalls,madhavan,archduchess,weizmann,kalgoorlie,balan,predefined,sessile,sagaing,brevity,insecticide,psychosocial,africana,steelworks,aether,aquifers,belem,mineiro,almagro,radiators,cenozoic,solute,turbocharger,invicta,guested,buccaneer,idolatry,unmatched,paducah,sinestro,dispossessed,conforms,responsiveness,cyanobacteria,flautist,procurator,complementing,semifinalist,rechargeable,permafrost,cytokine,refuges,boomed,gelderland,franchised,jinan,burnie,doubtless,randomness,colspan=
12,angra,ginebra,famers,nuestro,declarative,roughness,lauenburg,motile,rekha,issuer,piney,interceptors,napoca,gipsy,formulaic,formula_44,viswanathan,ebrahim,thessalonica,galeria,muskogee,unsold,html5,taito,mobutu,icann,carnarvon,fairtrade,morphisms,upsilon,nozzles,fabius,meander,murugan,strontium,episcopacy,sandinista,parasol,attenuated,bhima,primeval,panay,ordinator,negara,osteoporosis,glossop,ebook,paradoxically,grevillea,modoc,equating,phonetically,legumes,covariant,dorje,quatre,bruxelles,pyroclastic,shipbuilder,zhaozong,obscuring,sveriges,tremolo,extensible,barrack,multnomah,hakon,chaharmahal,parsing,volumetric,astrophysical,glottal,combinatorics,freestanding,encoder,paralysed,cavalrymen,taboos,heilbronn,orientalis,lockport,marvels,ozawa,dispositions,waders,incurring,saltire,modulate,papilio,phenol,intermedia,rappahannock,plasmid,fortify,phenotypes,transiting,correspondences,leaguer,larnaca,incompatibility,mcenroe,deeming,endeavoured,aboriginals,helmed,salar,arginine,werke,ferrand,expropriated,delimited,couplets,phoenicians,petioles,ouster,anschluss,protectionist,plessis,urchins,orquesta,castleton,juniata,bittorrent,fulani,donji,mykola,rosemont,chandos,scepticism,signer,chalukya,wicketkeeper,coquitlam,programmatic,o'brian,carteret,urology,steelhead,paleocene,konkan,bettered,venkatesh,surfacing,longitudinally,centurions,popularization,yazid,douro,widths,premios,leonards,gristmill,fallujah,arezzo,leftists,ecliptic,glycerol,inaction,disenfranchised,acrimonious,depositing,parashah,cockatoo,marechal,bolzano,chios,cablevision,impartiality,pouches,thickly,equities,bentinck,emotive,boson,ashdown,conquistadors,parsi,conservationists,reductive,newlands,centerline,ornithologists,waveguide,nicene,philological,hemel,setanta,masala,aphids,convening,casco,matrilineal,chalcedon,orthographic,hythe,replete,damming,bolivarian,admixture,embarks,borderlands,conformed,nagarjuna,blenny,chaitanya,suwon,shigeru,tatarstan,lingayen,rejoins,grodno,merovingian,hardwicke,puducherry,prototyping,laxmi,upheavals,headquarter,pollinators,bromine,transom,plantagenet,arbuthnot,chidambaram,woburn,osamu,panelling,coauthored,zhongshu,hyaline,omissions,aspergillus,offensively,electrolytic,woodcut,sodom,intensities,clydebank,piotrkow,supplementing,quipped,focke,harbinger,positivism,parklands,wolfenbuttel,cauca,tryptophan,taunus,curragh,tsonga,remand,obscura,ashikaga,eltham,forelimbs,analogs,trnava,observances,kailash,antithesis,ayumi,abyssinia,dorsally,tralee,pursuers,misadventures,padova,perot,mahadev,tarim,granth,licenced,compania,patuxent,baronial,korda,cochabamba,codices,karna,memorialized,semaphore,playlists,mandibular,halal,sivaji,scherzinger,stralsund,foundries,ribosome,mindfulness,nikolayevich,paraphyletic,newsreader,catalyze,ioannina,thalamus,gbit/s,paymaster,sarab,
500th,replenished,gamepro,cracow,formula_46,gascony,reburied,lessing,easement,transposed,meurthe,satires,proviso,balthasar,unbound,cuckoos,durbar,louisbourg,cowes,wholesalers,manet,narita,xiaoping,mohamad,illusory,cathal,reuptake,alkaloid,tahrir,mmorpg,underlies,anglicanism,repton,aharon,exogenous,buchenwald,indigent,odostomia,milled,santorum,toungoo,nevsky,steyr,urbanisation,darkseid,subsonic,canaanite,akiva,eglise,dentition,mediators,cirencester,peloponnesian,malmesbury,durres,oerlikon,tabulated,saens,canaria,ischemic,esterhazy,ringling,centralization,walthamstow,nalanda,lignite,takht,leninism,expiring,circe,phytoplankton,promulgation,integrable,breeches,aalto,menominee,borgo,scythians,skrull,galleon,reinvestment,raglan,reachable,liberec,airframes,electrolysis,geospatial,rubiaceae,interdependence,symmetrically,simulcasts,keenly,mauna,adipose,zaidi,fairport,vestibular,actuators,monochromatic,literatures,congestive,sacramental,atholl,skytrain,tycho,tunings,jamia,catharina,modifier,methuen,tapings,infiltrating,colima,grafting,tauranga,halides,pontificate,phonetics,koper,hafez,grooved,kintetsu,extrajudicial,linkoping,cyberpunk,repetitions,laurentian,parnu,bretton,darko,sverdlovsk,foreshadowed,akhenaten,rehnquist,gosford,coverts,pragmatism,broadleaf,ethiopians,instated,mediates,sodra,opulent,descriptor,enugu,shimla,leesburg,officership,giffard,refectory,lusitania,cybermen,fiume,corus,tydfil,lawrenceville,ocala,leviticus,burghers,ataxia,richthofen,amicably,acoustical,watling,inquired,tiempo,multiracial,parallelism,trenchard,tokyopop,germanium,usisl,philharmonia,shapur,jacobites,latinized,sophocles,remittances,o'farrell,adder,dimitrios,peshwa,dimitar,orlov,outstretched,musume,satish,dimensionless,serialised,baptisms,pagasa,antiviral,
1740s,quine,arapaho,bombardments,stratosphere,ophthalmic,injunctions,carbonated,nonviolence,asante,creoles,sybra,boilermakers,abington,bipartite,permissive,cardinality,anheuser,carcinogenic,hohenlohe,surinam,szeged,infanticide,generically,floorball,'white,automakers,cerebellar,homozygous,remoteness,effortlessly,allude,'great,headmasters,minting,manchurian,kinabalu,wemyss,seditious,widgets,marbled,almshouses,bards,subgenres,tetsuya,faulting,kickboxer,gaulish,hoseyn,malton,fluvial,questionnaires,mondale,downplayed,traditionalists,vercelli,sumatran,landfills,gamesradar,exerts,franciszek,unlawfully,huesca,diderot,libertarians,professorial,laane,piecemeal,conidae,taiji,curatorial,perturbations,abstractions,szlachta,watercraft,mullah,zoroastrianism,segmental,khabarovsk,rectors,affordability,scuola,diffused,stena,cyclonic,workpiece,romford,'little,jhansi,stalag,zhongshan,skipton,maracaibo,bernadotte,thanet,groening,waterville,encloses,sahrawi,nuffield,moorings,chantry,annenberg,islay,marchers,tenses,wahid,siegen,furstenberg,basques,resuscitation,seminarians,tympanum,gentiles,vegetarianism,tufted,venkata,fantastical,pterophoridae,machined,superposition,glabrous,kaveri,chicane,executors,phyllonorycter,bidirectional,jasta,undertones,touristic,majapahit,navratilova,unpopularity,barbadian,tinian,webcast,hurdler,rigidly,jarrah,staphylococcus,igniting,irrawaddy,stabilised,airstrike,ragas,wakayama,energetically,ekstraklasa,minibus,largemouth,cultivators,leveraging,waitangi,carnaval,weaves,turntables,heydrich,sextus,excavate,govind,ignaz,pedagogue,uriah,borrowings,gemstones,infractions,mycobacterium,batavian,massing,praetor,subalpine,massoud,passers,geostationary,jalil,trainsets,barbus,impair,budejovice,denbigh,pertain,historicity,fortaleza,nederlandse,lamenting,masterchef,doubs,gemara,conductance,ploiesti,cetaceans,courthouses,bhagavad,mihailovic,occlusion,bremerhaven,bulwark,morava,kaine,drapery,maputo,conquistador,kaduna,famagusta,first-past-the-post,erudite,galton,undated,tangential,filho,dismembered,dashes,criterium,darwen,metabolized,blurring,everard,randwick,mohave,impurity,acuity,ansbach,chievo,surcharge,plantain,algoma,porosity,zirconium,selva,sevenoaks,venizelos,gwynne,golgi,imparting,separatism,courtesan,idiopathic,gravestones,hydroelectricity,babar,orford,purposeful,acutely,shard,ridgewood,viterbo,manohar,expropriation,placenames,brevis,cosine,unranked,richfield,newnham,recoverable,flightless,dispersing,clearfield,abu'l,stranraer,kempe,streamlining,goswami,epidermal,pieta,conciliatory,distilleries,electrophoresis,bonne,tiago,curiosities,candidature,picnicking,perihelion,lintel,povoa,gullies,configure,excision,facies,signers,
1730s,insufficiency,semiotics,streatham,deactivation,entomological,skippers,albacete,parodying,escherichia,honorees,singaporeans,counterterrorism,tiruchirappalli,omnivorous,metropole,globalisation,athol,unbounded,codice_5,landforms,classifier,farmhouses,reaffirming,reparation,yomiuri,technologists,mitte,medica,viewable,steampunk,konya,kshatriya,repelling,edgewater,lamiinae,devas,potteries,llandaff,engendered,submits,virulence,uplifted,educationist,metropolitans,frontrunner,dunstable,forecastle,frets,methodius,exmouth,linnean,bouchet,repulsion,computable,equalling,liceo,tephritidae,agave,hydrological,azarenka,fairground,l'homme,enforces,xinhua,cinematographers,cooperstown,sa'id,paiute,christianization,tempos,chippenham,insulator,kotor,stereotyped,dello,cours,hisham,d'souza,eliminations,supercars,passau,rebrand,natures,coote,persephone,rededicated,cleaved,plenum,blistering,indiscriminately,cleese,safed,recursively,compacted,revues,hydration,shillong,echelons,garhwal,pedimented,grower,zwolle,wildflower,annexing,methionine,petah,valens,famitsu,petiole,specialities,nestorian,shahin,tokaido,shearwater,barberini,kinsmen,experimenter,alumnae,cloisters,alumina,pritzker,hardiness,soundgarden,julich,ps300,watercourse,cementing,wordplay,olivet,demesne,chasseurs,amide,zapotec,gaozu,porphyry,absorbers,indium,analogies,devotions,engravers,limestones,catapulted,surry,brickworks,gotra,rodham,landline,paleontologists,shankara,islip,raucous,trollope,arpad,embarkation,morphemes,recites,picardie,nakhchivan,tolerances,formula_47,khorramabad,nichiren,adrianople,kirkuk,assemblages,collider,bikaner,bushfires,roofline,coverings,reredos,bibliotheca,mantras,accentuated,commedia,rashtriya,fluctuation,serhiy,referential,fittipaldi,vesicle,geeta,iraklis,immediacy,chulalongkorn,hunsruck,bingen,dreadnoughts,stonemason,meenakshi,lebesgue,undergrowth,baltistan,paradoxes,parlement,articled,tiflis,dixieland,meriden,tejano,underdogs,barnstable,exemplify,venter,tropes,wielka,kankakee,iskandar,zilina,pharyngeal,spotify,materialised,picts,atlantique,theodoric,prepositions,paramilitaries,pinellas,attlee,actuated,piedmontese,grayling,thucydides,multifaceted,unedited,autonomously,universelle,utricularia,mooted,preto,incubated,underlie,brasenose,nootka,bushland,sensu,benzodiazepine,esteghlal,seagoing,amenhotep,azusa,sappers,culpeper,smokeless,thoroughbreds,dargah,gorda,alumna,mankato,zdroj,deleting,culvert,formula_49,punting,wushu,hindering,immunoglobulin,standardisation,birger,oilfield,quadrangular,ulama,recruiters,netanya,
1630s,communaute,istituto,maciej,pathan,meher,vikas,characterizations,playmaker,interagency,intercepts,assembles,horthy,introspection,narada,matra,testes,radnicki,estonians,csiro,instar,mitford,adrenergic,crewmembers,haaretz,wasatch,lisburn,rangefinder,ordre,condensate,reforestation,corregidor,spvgg,modulator,mannerist,faulted,aspires,maktoum,squarepants,aethelred,piezoelectric,mulatto,dacre,progressions,jagiellonian,norge,samaria,sukhoi,effingham,coxless,hermetic,humanists,centrality,litters,stirlingshire,beaconsfield,sundanese,geometrically,caretakers,habitually,bandra,pashtuns,bradenton,arequipa,laminar,brickyard,hitchin,sustains,shipboard,ploughing,trechus,wheelers,bracketed,ilyushin,subotica,d'hondt,reappearance,bridgestone,intermarried,fulfilment,aphasia,birkbeck,transformational,strathmore,hornbill,millstone,lacan,voids,solothurn,gymnasiums,laconia,viaducts,peduncle,teachta,edgware,shinty,supernovae,wilfried,exclaim,parthia,mithun,flashpoint,moksha,cumbia,metternich,avalanches,militancy,motorist,rivadavia,chancellorsville,federals,gendered,bounding,footy,gauri,caliphs,lingam,watchmaker,unrecorded,riverina,unmodified,seafloor,droit,pfalz,chrysostom,gigabit,overlordship,besiege,espn2,oswestry,anachronistic,ballymena,reactivation,duchovny,ghani,abacetus,duller,legio,watercourses,nord-pas-de-calais,leiber,optometry,swarms,installer,sancti,adverbs,iheartmedia,meiningen,zeljko,kakheti,notional,circuses,patrilineal,acrobatics,infrastructural,sheva,oregonian,adjudication,aamir,wloclawek,overfishing,obstructive,subtracting,aurobindo,archeologist,newgate,'cause,secularization,tehsils,abscess,fingal,janacek,elkhorn,trims,kraftwerk,mandating,irregulars,faintly,congregationalist,sveti,kasai,mishaps,kennebec,provincially,durkheim,scotties,aicte,rapperswil,imphal,surrenders,morphs,nineveh,hoxha,cotabato,thuringian,metalworking,retold,shogakukan,anthers,proteasome,tippeligaen,disengagement,mockumentary,palatial,erupts,flume,corrientes,masthead,jaroslaw,rereleased,bharti,labors,distilling,tusks,varzim,refounded,enniskillen,melkite,semifinalists,vadodara,bermudian,capstone,grasse,origination,populus,alesi,arrondissements,semigroup,verein,opossum,messrs.,portadown,bulbul,tirupati,mulhouse,tetrahedron,roethlisberger,nonverbal,connexion,warangal,deprecated,gneiss,octet,vukovar,hesketh,chambre,despatch,claes,kargil,hideo,gravelly,tyndale,aquileia,tuners,defensible,tutte,theotokos,constructivist,ouvrage,dukla,polisario,monasticism,proscribed,commutation,testers,nipissing,codon,mesto,olivine,concomitant,exoskeleton,purports,coromandel,eyalet,dissension,hippocrates,purebred,yaounde,composting,oecophoridae,procopius,o'day,angiogenesis,sheerness,intelligencer,articular,felixstowe,aegon,endocrinology,trabzon,licinius,pagodas,zooplankton,hooghly,satie,drifters,sarthe,mercian,neuilly,tumours,canal+,scheldt,inclinations,counteroffensive,roadrunners,tuzla,shoreditch,surigao,predicates,carnot,algeciras,militaries,generalize,bulkheads,gawler,pollutant,celta,rundgren,microrna,gewog,olimpija,placental,lubelski,roxburgh,discerned,verano,kikuchi,musicale,l'enfant,ferocity,dimorphic,antigonus,erzurum,prebendary,recitative,discworld,cyrenaica,stigmella,totnes,sutta,pachuca,ulsan,downton,landshut,castellan,pleural,siedlce,siecle,catamaran,cottbus,utilises,trophic,freeholders,holyhead,u.s.s,chansons,responder,waziristan,suzuka,birding,shogi,asker,acetone,beautification,cytotoxic,dixit,hunterdon,cobblestone,formula_48,kossuth,devizes,sokoto,interlaced,shuttered,kilowatts,assiniboine,isaak,salto,alderney,sugarloaf,franchising,aggressiveness,toponyms,plaintext,antimatter,henin,equidistant,salivary,bilingualism,mountings,obligate,extirpated,irenaeus,misused,pastoralists,aftab,immigrating,warping,tyrolean,seaforth,teesside,soundwave,oligarchy,stelae,pairwise,iupac,tezuka,posht,orchestrations,landmass,ironstone,gallia,hjalmar,carmelites,strafford,elmhurst,palladio,fragility,teleplay,gruffudd,karoly,yerba,potok,espoo,inductance,macaque,nonprofits,pareto,rock'n'roll,spiritualist,shadowed,skateboarder,utterances,generality,congruence,prostrate,deterred,yellowknife,albarn,maldon,battlements,mohsen,insecticides,khulna,avellino,menstruation,glutathione,springdale,parlophone,confraternity,korps,countrywide,bosphorus,preexisting,damodar,astride,alexandrovich,sprinting,crystallized,botev,leaching,interstates,veers,angevin,undaunted,yevgeni,nishapur,northerners,alkmaar,bethnal,grocers,sepia,tornus,exemplar,trobe,charcot,gyeonggi,larne,tournai,lorain,voided,genji,enactments,maxilla,adiabatic,eifel,nazim,transducer,thelonious,pyrite,deportiva,dialectal,bengt,rosettes,labem,sergeyevich,synoptic,conservator,statuette,biweekly,adhesives,bifurcation,rajapaksa,mammootty,republique,yusef,waseda,marshfield,yekaterinburg,minnelli,fundy,fenian,matchups,dungannon,supremacist,panelled,drenthe,iyengar,fibula,narmada,homeport,oceanside,precept,antibacterial,altarpieces,swath,ospreys,lillooet,legnica,lossless,formula_50,galvatron,iorga,stormont,rsfsr,loggers,kutno,phenomenological,medallists,cuatro,soissons,homeopathy,bituminous,injures,syndicates,typesetting,displacements,dethroned,makassar,lucchese,abergavenny,targu,alborz,akb48,boldface,gastronomy,sacra,amenity,accumulator,myrtaceae,cornices,mourinho,denunciation,oxbow,diddley,aargau,arbitrage,bedchamber,gruffydd,zamindar,klagenfurt,caernarfon,slowdown,stansted,abrasion,tamaki,suetonius,dukakis,individualistic,ventrally,hotham,perestroika,ketones,fertilisation,sobriquet,couplings,renderings,misidentified,rundfunk,sarcastically,braniff,concours,dismissals,elegantly,modifiers,crediting,combos,crucially,seafront,lieut,ischemia,manchus,derivations,proteases,aristophanes,adenauer,porting,hezekiah,sante,trulli,hornblower,foreshadowing,ypsilanti,dharwad,khani,hohenstaufen,distillers,cosmodrome,intracranial,turki,salesian,gorzow,jihlava,yushchenko,leichhardt,venables,cassia,eurogamer,airtel,curative,bestsellers,timeform,sortied,grandview,massillon,ceding,pilbara,chillicothe,heredity,elblag,rogaland,ronne,millennial,batley,overuse,bharata,fille,campbelltown,abeyance,counterclockwise,
250cc,neurodegenerative,consigned,electromagnetism,sunnah,saheb,exons,coxswain,gleaned,bassoons,worksop,prismatic,immigrate,pickets,takeo,bobsledder,stosur,fujimori,merchantmen,stiftung,forli,endorses,taskforce,thermally,atman,gurps,floodplains,enthalpy,extrinsic,setubal,kennesaw,grandis,scalability,durations,showrooms,prithvi,outro,overruns,andalucia,amanita,abitur,hipper,mozambican,sustainment,arsene,chesham,palaeolithic,reportage,criminality,knowsley,haploid,atacama,shueisha,ridgefield,astern,getafe,lineal,timorese,restyled,hollies,agincourt,unter,justly,tannins,mataram,industrialised,tarnovo,mumtaz,mustapha,stretton,synthetase,condita,allround,putra,stjepan,troughs,aechmea,specialisation,wearable,kadokawa,uralic,aeros,messiaen,existentialism,jeweller,effigies,gametes,fjordane,cochlear,interdependent,demonstrative,unstructured,emplacement,famines,spindles,amplitudes,actuator,tantalum,psilocybe,apnea,monogatari,expulsions,seleucus,tsuen,hospitaller,kronstadt,eclipsing,olympiakos,clann,canadensis,inverter,helio,egyptologist,squamous,resonate,munir,histology,torbay,khans,jcpenney,veterinarians,aintree,microscopes,colonised,reflectors,phosphorylated,pristimantis,tulare,corvinus,multiplexing,midweek,demosthenes,transjordan,ecija,tengku,vlachs,anamorphic,counterweight,radnor,trinitarian,armidale,maugham,njsiaa,futurism,stairways,avicenna,montebello,bridgetown,wenatchee,lyonnais,amass,surinamese,streptococcus,m*a*s*h,hydrogenation,frazioni,proscenium,kalat,pennsylvanian,huracan,tallying,kralove,nucleolar,phrygian,seaports,hyacinthe,ignace,donning,instalment,regnal,fonds,prawn,carell,folktales,goaltending,bracknell,vmware,patriarchy,mitsui,kragujevac,pythagoras,soult,thapa,disproved,suwalki,secures,somoza,l'ecole,divizia,chroma,herders,technologist,deduces,maasai,rampur,paraphrase,raimi,imaged,magsaysay,ivano,turmeric,formula_51,subcommittees,axillary,ionosphere,organically,indented,refurbishing,pequot,violinists,bearn,colle,contralto,silverton,mechanization,etruscans,wittelsbach,pasir,redshirted,marrakesh,scarp,plein,wafers,qareh,teotihuacan,frobenius,sinensis,rehoboth,bundaberg,newbridge,hydrodynamic,traore,abubakar,adjusts,storytellers,dynamos,verbandsliga,concertmaster,exxonmobil,appreciable,sieradz,marchioness,chaplaincy,rechristened,cunxu,overpopulation,apolitical,sequencer,beaked,nemanja,binaries,intendant,absorber,filamentous,indebtedness,nusra,nashik,reprises,psychedelia,abwehr,ligurian,isoform,resistive,pillaging,mahathir,reformatory,lusatia,allerton,ajaccio,tepals,maturin,njcaa,abyssinian,objector,fissures,sinuous,ecclesiastic,dalits,caching,deckers,phosphates,wurlitzer,navigated,trofeo,berea,purefoods,solway,unlockable,grammys,kostroma,vocalizations,basilan,rebuke,abbasi,douala,helsingborg,ambon,bakar,runestones,cenel,tomislav,pigmented,northgate,excised,seconda,kirke,determinations,dedicates,vilas,pueblos,reversion,unexploded,overprinted,ekiti,deauville,masato,anaesthesia,endoplasmic,transponders,aguascalientes,hindley,celluloid,affording,bayeux,piaget,rickshaws,eishockey,camarines,zamalek,undersides,hardwoods,hermitian,mutinied,monotone,blackmails,affixes,jpmorgan,habermas,mitrovica,paleontological,polystyrene,thana,manas,conformist,turbofan,decomposes,logano,castration,metamorphoses,patroness,herbicide,mikolaj,rapprochement,macroeconomics,barranquilla,matsudaira,lintels,femina,hijab,spotsylvania,morpheme,bitola,baluchistan,kurukshetra,otway,extrusion,waukesha,menswear,helder,trung,bingley,protester,boars,overhang,differentials,exarchate,hejaz,kumara,unjustified,timings,sharpness,nuovo,taisho,sundar,etc..,jehan,unquestionably,muscovy,daltrey,canute,paneled,amedeo,metroplex,elaborates,telus,tetrapods,dragonflies,epithets,saffir,parthenon,lucrezia,refitting,pentateuch,hanshin,montparnasse,lumberjacks,sanhedrin,erectile,odors,greenstone,resurgent,leszek,amory,substituents,prototypical,viewfinder,monck,universiteit,joffre,revives,chatillon,seedling,scherzo,manukau,ashdod,gympie,homolog,stalwarts,ruinous,weibo,tochigi,wallenberg,gayatri,munda,satyagraha,storefronts,heterogeneity,tollway,sportswriters,binocular,gendarmes,ladysmith,tikal,ortsgemeinde,ja'far,osmotic,linlithgow,bramley,telecoms,pugin,repose,rupaul,sieur,meniscus,garmisch,reintroduce,
400th,shoten,poniatowski,drome,kazakhstani,changeover,astronautics,husserl,herzl,hypertext,katakana,polybius,antananarivo,seong,breguet,reliquary,utada,aggregating,liangshan,sivan,tonawanda,audiobooks,shankill,coulee,phenolic,brockton,bookmakers,handsets,boaters,wylde,commonality,mappings,silhouettes,pennines,maurya,pratchett,singularities,eschewed,pretensions,vitreous,ibero,totalitarianism,poulenc,lingered,directx,seasoning,deputation,interdict,illyria,feedstock,counterbalance,muzik,buganda,parachuted,violist,homogeneity,comix,fjords,corsairs,punted,verandahs,equilateral,laoghaire,magyars,
117th,alesund,televoting,mayotte,eateries,refurbish,nswrl,yukio,caragiale,zetas,dispel,codecs,inoperable,outperformed,rejuvenation,elstree,modernise,contributory,pictou,tewkesbury,chechens,ashina,psionic,refutation,medico,overdubbed,nebulae,sandefjord,personages,eccellenza,businessperson,placename,abenaki,perryville,threshing,reshaped,arecibo,burslem,colspan=
3|turnout,rebadged,lumia,erinsborough,interactivity,bitmap,indefatigable,theosophy,excitatory,gleizes,edsel,bermondsey,korce,saarinen,wazir,diyarbakir,cofounder,liberalisation,onsen,nighthawks,siting,retirements,semyon,d'histoire,
114th,redditch,venetia,praha,'round,valdosta,hieroglyphic,postmedial,edirne,miscellany,savona,cockpits,minimization,coupler,jacksonian,appeasement,argentines,saurashtra,arkwright,hesiod,folios,fitzalan,publica,rivaled,civitas,beermen,constructivism,ribeira,zeitschrift,solanum,todos,deformities,chilliwack,verdean,meagre,bishoprics,gujrat,yangzhou,reentered,inboard,mythologies,virtus,unsurprisingly,rusticated,museu,symbolise,proportionate,thesaban,symbian,aeneid,mitotic,veliki,compressive,cisterns,abies,winemaker,massenet,bertolt,ahmednagar,triplemania,armorial,administracion,tenures,smokehouse,hashtag,fuerza,regattas,gennady,kanazawa,mahmudabad,crustal,asaph,valentinian,ilaiyaraaja,honeyeater,trapezoidal,cooperatively,unambiguously,mastodon,inhospitable,harnesses,riverton,renewables,djurgardens,haitians,airings,humanoids,boatswain,shijiazhuang,faints,veera,punjabis,steepest,narain,karlovy,serre,sulcus,collectives,
1500m,arion,subarctic,liberally,apollonius,ostia,droplet,headstones,norra,robusta,maquis,veronese,imola,primers,luminance,escadrille,mizuki,irreconcilable,stalybridge,temur,paraffin,stuccoed,parthians,counsels,fundamentalists,vivendi,polymath,sugababes,mikko,yonne,fermions,vestfold,pastoralist,kigali,unseeded,glarus,cusps,amasya,northwesterly,minorca,astragalus,verney,trevelyan,antipathy,wollstonecraft,bivalves,boulez,royle,divisao,quranic,bareilly,coronal,deviates,lulea,erectus,petronas,chandan,proxies,aeroflot,postsynaptic,memoriam,moyne,gounod,kuznetsova,pallava,ordinating,reigate,'first,lewisburg,exploitative,danby,academica,bailiwick,brahe,injective,stipulations,aeschylus,computes,gulden,hydroxylase,liveries,somalis,underpinnings,muscovite,kongsberg,domus,overlain,shareware,variegated,jalalabad,agence,ciphertext,insectivores,dengeki,menuhin,cladistic,baerum,betrothal,tokushima,wavelet,expansionist,pottsville,siyuan,prerequisites,carpi,nemzeti,nazar,trialled,eliminator,irrorated,homeward,redwoods,undeterred,strayed,lutyens,multicellular,aurelian,notated,lordships,alsatian,idents,foggia,garros,chalukyas,lillestrom,podlaski,pessimism,hsien,demilitarized,whitewashed,willesden,kirkcaldy,sanctorum,lamia,relaying,escondido,paediatric,contemplates,demarcated,bluestone,betula,penarol,capitalise,kreuznach,kenora,
115th,hold'em,reichswehr,vaucluse,m.i.a,windings,boys/girls,cajon,hisar,predictably,flemington,ysgol,mimicked,clivina,grahamstown,ionia,glyndebourne,patrese,aquaria,sleaford,dayal,sportscenter,malappuram,m.b.a.,manoa,carbines,solvable,designator,ramanujan,linearity,academicians,sayid,lancastrian,factorial,strindberg,vashem,delos,comyn,condensing,superdome,merited,kabaddi,intransitive,bideford,neuroimaging,duopoly,scorecards,ziggler,heriot,boyars,virology,marblehead,microtubules,westphalian,anticipates,hingham,searchers,harpist,rapides,morricone,convalescent,mises,nitride,metrorail,matterhorn,bicol,drivetrain,marketer,snippet,winemakers,muban,scavengers,halberstadt,herkimer,peten,laborious,stora,montgomeryshire,booklist,shamir,herault,eurostar,anhydrous,spacewalk,ecclesia,calliostoma,highschool,d'oro,suffusion,imparts,overlords,tagus,rectifier,counterinsurgency,ministered,eilean,milecastle,contre,micromollusk,okhotsk,bartoli,matroid,hasidim,thirunal,terme,tarlac,lashkar,presque,thameslink,flyby,troopship,renouncing,fatih,messrs,vexillum,bagration,magnetite,bornholm,androgynous,vehement,tourette,philosophic,gianfranco,tuileries,codice_6,radially,flexion,hants,reprocessing,setae,burne,palaeographically,infantryman,shorebirds,tamarind,moderna,threading,militaristic,crohn,norrkoping,
125cc,stadtholder,troms,klezmer,alphanumeric,brome,emmanuelle,tiwari,alchemical,formula_52,onassis,bleriot,bipedal,colourless,hermeneutics,hosni,precipitating,turnstiles,hallucinogenic,panhellenic,wyandotte,elucidated,chita,ehime,generalised,hydrophilic,biota,niobium,rnzaf,gandhara,longueuil,logics,sheeting,bielsko,cuvier,kagyu,trefoil,docent,pancrase,stalinism,postures,encephalopathy,monckton,imbalances,epochs,leaguers,anzio,diminishes,pataki,nitrite,amuro,nabil,maybach,l'aquila,babbler,bacolod,thutmose,evora,gaudi,breakage,recur,preservative,
60deg,mendip,functionaries,columnar,maccabiah,chert,verden,bromsgrove,clijsters,dengue,pastorate,phuoc,principia,viareggio,kharagpur,scharnhorst,anyang,bosons,l'art,criticises,ennio,semarang,brownian,mirabilis,asperger,calibers,typographical,cartooning,minos,disembark,supranational,undescribed,etymologically,alappuzha,vilhelm,lanao,pakenham,bhagavata,rakoczi,clearings,astrologers,manitowoc,bunuel,acetylene,scheduler,defamatory,trabzonspor,leaded,scioto,pentathlete,abrahamic,minigames,aldehydes,peerages,legionary,
1640s,masterworks,loudness,bryansk,likeable,genocidal,vegetated,towpath,declination,pyrrhus,divinely,vocations,rosebery,associazione,loaders,biswas,oeste,tilings,xianzong,bhojpuri,annuities,relatedness,idolator,psers,constriction,chuvash,choristers,hanafi,fielders,grammarian,orpheum,asylums,millbrook,gyatso,geldof,stabilise,tableaux,diarist,kalahari,panini,cowdenbeath,melanin,
4x100m,resonances,pinar,atherosclerosis,sheringham,castlereagh,aoyama,larks,pantograph,protrude,natak,gustafsson,moribund,cerevisiae,cleanly,polymeric,holkar,cosmonauts,underpinning,lithosphere,firuzabad,languished,mingled,citrate,spadina,lavas,daejeon,fibrillation,porgy,pineville,ps1000,cobbled,emamzadeh,mukhtar,dampers,indelible,salonika,nanoscale,treblinka,eilat,purporting,fluctuate,mesic,hagiography,cutscenes,fondation,barrens,comically,accrue,ibrox,makerere,defections,'there,hollandia,skene,grosseto,reddit,objectors,inoculation,rowdies,playfair,calligrapher,namor,sibenik,abbottabad,propellants,hydraulically,chloroplasts,tablelands,tecnico,schist,klasse,shirvan,bashkortostan,bullfighting,north/south,polski,hanns,woodblock,kilmore,ejecta,ignacy,nanchang,danubian,commendations,snohomish,samaritans,argumentation,vasconcelos,hedgehogs,vajrayana,barents,kulkarni,kumbakonam,identifications,hillingdon,weirs,nayanar,beauvoir,messe,divisors,atlantiques,broods,affluence,tegucigalpa,unsuited,autodesk,akash,princeps,culprits,kingstown,unassuming,goole,visayan,asceticism,blagojevich,irises,paphos,unsound,maurier,pontchartrain,desertification,sinfonietta,latins,especial,limpet,valerenga,glial,brainstem,mitral,parables,sauropod,judean,iskcon,sarcoma,venlo,justifications,zhuhai,blavatsky,alleviated,usafe,steppenwolf,inversions,janko,chagall,secretory,basildon,saguenay,pergamon,hemispherical,harmonized,reloading,franjo,domaine,extravagance,relativism,metamorphosed,labuan,baloncesto,gmail,byproducts,calvinists,counterattacked,vitus,bubonic,
120th,strachey,ritually,brookwood,selectable,savinja,incontinence,meltwater,jinja,
1720s,brahmi,morgenthau,sheaves,sleeved,stratovolcano,wielki,utilisation,avoca,fluxus,panzergrenadier,philately,deflation,podlaska,prerogatives,kuroda,theophile,zhongzong,gascoyne,magus,takao,arundell,fylde,merdeka,prithviraj,venkateswara,liepaja,daigo,dreamland,reflux,sunnyvale,coalfields,seacrest,soldering,flexor,structuralism,alnwick,outweighed,unaired,mangeshkar,batons,glaad,banshees,irradiated,organelles,biathlete,cabling,chairlift,lollapalooza,newsnight,capacitive,succumbs,flatly,miramichi,burwood,comedienne,charteris,biotic,workspace,aficionados,sokolka,chatelet,o'shaughnessy,prosthesis,neoliberal,refloated,oppland,hatchlings,econometrics,loess,thieu,androids,appalachians,jenin,pterostichinae,downsized,foils,chipsets,stencil,danza,narrate,maginot,yemenite,bisects,crustacean,prescriptive,melodious,alleviation,empowers,hansson,autodromo,obasanjo,osmosis,daugava,rheumatism,moraes,leucine,etymologies,chepstow,delaunay,bramall,bajaj,flavoring,approximates,marsupials,incisive,microcomputer,tactically,waals,wilno,fisichella,ursus,hindmarsh,mazarin,lomza,xenophobia,lawlessness,annecy,wingers,gornja,gnaeus,superieur,tlaxcala,clasps,symbolises,slats,rightist,effector,blighted,permanence,divan,progenitors,kunsthalle,anointing,excelling,coenzyme,indoctrination,dnipro,landholdings,adriaan,liturgies,cartan,ethmia,attributions,sanctus,trichy,chronicon,tancred,affinis,kampuchea,gantry,pontypool,membered,distrusted,fissile,dairies,hyposmocoma,craigie,adarsh,martinsburg,taxiway,
30deg,geraint,vellum,bencher,khatami,formula_53,zemun,teruel,endeavored,palmares,pavements,u.s..,internationalization,satirized,carers,attainable,wraparound,muang,parkersburg,extinctions,birkenfeld,wildstorm,payers,cohabitation,unitas,culloden,capitalizing,clwyd,daoist,campinas,emmylou,orchidaceae,halakha,orientales,fealty,domnall,chiefdom,nigerians,ladislav,dniester,avowed,ergonomics,newsmagazine,kitsch,cantilevered,benchmarking,remarriage,alekhine,coldfield,taupo,almirante,substations,apprenticeships,seljuq,levelling,eponym,symbolising,salyut,opioids,underscore,ethnologue,mohegan,marikina,libro,bassano,parse,semantically,disjointed,dugdale,padraig,tulsi,modulating,xfinity,headlands,mstislav,earthworms,bourchier,lgbtq,embellishments,pennants,rowntree,betel,motet,mulla,catenary,washoe,mordaunt,dorking,colmar,girardeau,glentoran,grammatically,samad,recreations,technion,staccato,mikoyan,spoilers,lyndhurst,victimization,chertsey,belafonte,tondo,tonsberg,narrators,subcultures,malformations,edina,augmenting,attests,euphemia,cabriolet,disguising,
1650s,navarrese,demoralized,cardiomyopathy,welwyn,wallachian,smoothness,planktonic,voles,issuers,sardasht,survivability,cuauhtemoc,thetis,extruded,signet,raghavan,lombok,eliyahu,crankcase,dissonant,stolberg,trencin,desktops,bursary,collectivization,charlottenburg,triathlete,curvilinear,involuntarily,mired,wausau,invades,sundaram,deletions,bootstrap,abellio,axiomatic,noguchi,setups,malawian,visalia,materialist,kartuzy,wenzong,plotline,yeshivas,parganas,tunica,citric,conspecific,idlib,superlative,reoccupied,blagoevgrad,masterton,immunological,hatta,courbet,vortices,swallowtail,delves,haridwar,diptera,boneh,bahawalpur,angering,mardin,equipments,deployable,guanine,normality,rimmed,artisanal,boxset,chandrasekhar,jools,chenar,tanakh,carcassonne,belatedly,millville,anorthosis,reintegration,velde,surfactant,kanaan,busoni,glyphipterix,personas,fullness,rheims,tisza,stabilizers,bharathi,joost,spinola,mouldings,perching,esztergom,afzal,apostate,lustre,s.league,motorboat,monotheistic,armature,barat,asistencia,bloomsburg,hippocampal,fictionalised,defaults,broch,hexadecimal,lusignan,ryanair,boccaccio,breisgau,southbank,bskyb,adjoined,neurobiology,aforesaid,sadhu,langue,headship,wozniacki,hangings,regulus,prioritized,dynamism,allier,hannity,shimin,antoninus,gymnopilus,caledon,preponderance,melayu,electrodynamics,syncopated,ibises,krosno,mechanistic,morpeth,harbored,albini,monotheism,'real,hyperactivity,haveli,writer/director,minato,nimoy,caerphilly,chitral,amirabad,fanshawe,l'oreal,lorde,mukti,authoritarianism,valuing,spyware,hanbury,restarting,stato,embed,suiza,empiricism,stabilisation,stari,castlemaine,orbis,manufactory,mauritanian,shoji,taoyuan,prokaryotes,oromia,ambiguities,embodying,slims,frente,innovate,ojibwa,powdery,gaeltacht,argentinos,quatermass,detergents,fijians,adaptor,tokai,chileans,bulgars,oxidoreductases,bezirksliga,conceicao,myosin,nellore,
500cc,supercomputers,approximating,glyndwr,polypropylene,haugesund,cockerell,tudman,ashbourne,hindemith,bloodlines,rigveda,etruria,romanos,steyn,oradea,deceleration,manhunter,laryngeal,fraudulently,janez,wendover,haplotype,janaki,naoki,belizean,mellencamp,cartographic,sadhana,tricolour,pseudoscience,satara,bytow,s.p.a.,jagdgeschwader,arcot,omagh,sverdrup,masterplan,surtees,apocrypha,ahvaz,d'amato,socratic,leumit,unnumbered,nandini,witold,marsupial,coalesced,interpolated,gimnasia,karadzic,keratin,mamoru,aldeburgh,speculator,escapement,irfan,kashyap,satyajit,haddington,solver,rothko,ashkelon,kickapoo,yeomen,superbly,bloodiest,greenlandic,lithic,autofocus,yardbirds,poona,keble,javan,sufis,expandable,tumblr,ursuline,swimwear,winwood,counsellors,aberrations,marginalised,befriending,workouts,predestination,varietal,siddhartha,dunkeld,judaic,esquimalt,shabab,ajith,telefonica,stargard,hoysala,radhakrishnan,sinusoidal,strada,hiragana,cebuano,monoid,independencia,floodwaters,mildura,mudflats,ottokar,translit,radix,wigner,philosophically,tephritid,synthesizing,castletown,installs,stirner,resettle,bushfire,choirmaster,kabbalistic,shirazi,lightship,rebus,colonizers,centrifuge,leonean,kristofferson,thymus,clackamas,ratnam,rothesay,municipally,centralia,thurrock,gulfport,bilinear,desirability,merite,psoriasis,macaw,erigeron,consignment,mudstone,distorting,karlheinz,ramen,tailwheel,vitor,reinsurance,edifices,superannuation,dormancy,contagion,cobden,rendezvoused,prokaryotic,deliberative,patricians,feigned,degrades,starlings,sopot,viticultural,beaverton,overflowed,convener,garlands,michiel,ternopil,naturelle,biplanes,bagot,gamespy,ventspils,disembodied,flattening,profesional,londoners,arusha,scapular,forestall,pyridine,ulema,eurodance,aruna,callus,periodontal,coetzee,immobilized,o'meara,maharani,katipunan,reactants,zainab,microgravity,saintes,britpop,carrefour,constrain,adversarial,firebirds,brahmo,kashima,simca,surety,surpluses,superconductivity,gipuzkoa,cumans,tocantins,obtainable,humberside,roosting,'king,formula_54,minelayer,bessel,sulayman,cycled,biomarkers,annealing,shusha,barda,cassation,djing,polemics,tuple,directorates,indomitable,obsolescence,wilhelmine,pembina,bojan,tambo,dioecious,pensioner,magnificat,
1660s,estrellas,southeasterly,immunodeficiency,railhead,surreptitiously,codeine,encores,religiosity,tempera,camberley,efendi,boardings,malleable,hagia,input/output,lucasfilm,ujjain,polymorphisms,creationist,berners,mickiewicz,irvington,linkedin,endures,kinect,munition,apologetics,fairlie,predicated,reprinting,ethnographer,variances,levantine,mariinsky,jadid,jarrow,asia/oceania,trinamool,waveforms,bisexuality,preselection,pupae,buckethead,hieroglyph,lyricists,marionette,dunbartonshire,restorer,monarchical,pazar,kickoffs,cabildo,savannas,gliese,dench,spoonbills,novelette,diliman,hypersensitivity,authorising,montefiore,mladen,qu'appelle,theistic,maruti,laterite,conestoga,saare,californica,proboscis,carrickfergus,imprecise,hadassah,baghdadi,jolgeh,deshmukh,amusements,heliopolis,berle,adaptability,partenkirchen,separations,baikonur,cardamom,southeastward,southfield,muzaffar,adequacy,metropolitana,rajkot,kiyoshi,metrobus,evictions,reconciles,librarianship,upsurge,knightley,badakhshan,proliferated,spirituals,burghley,electroacoustic,professing,featurette,reformists,skylab,descriptors,oddity,greyfriars,injects,salmond,lanzhou,dauntless,subgenera,underpowered,transpose,mahinda,gatos,aerobatics,seaworld,blocs,waratahs,joris,giggs,perfusion,koszalin,mieczyslaw,ayyubid,ecologists,modernists,sant'angelo,quicktime,him/her,staves,sanyo,melaka,acrocercops,qigong,iterated,generalizes,recuperation,vihara,circassians,psychical,chavo,memoires,infiltrates,notaries,pelecaniformesfamily,strident,chivalric,pierrepont,alleviating,broadsides,centipede,b.tech,reinterpreted,sudetenland,hussite,covenanters,radhika,ironclads,gainsbourg,testis,penarth,plantar,azadegan,beano,espn.com,leominster,autobiographies,nbcuniversal,eliade,khamenei,montferrat,undistinguished,ethnological,wenlock,fricatives,polymorphic,biome,joule,sheaths,astrophysicist,salve,neoclassicism,lovat,downwind,belisarius,forma,usurpation,freie,depopulation,backbench,ascenso,'high,aagpbl,gdanski,zalman,mouvement,encapsulation,bolshevism,statny,voyageurs,hywel,vizcaya,mazra'eh,narthex,azerbaijanis,cerebrospinal,mauretania,fantail,clearinghouse,bolingbroke,pequeno,ansett,remixing,microtubule,wrens,jawahar,palembang,gambian,hillsong,fingerboard,repurposed,sundry,incipient,veolia,theologically,ulaanbaatar,atsushi,foundling,resistivity,myeloma,factbook,mazowiecka,diacritic,urumqi,clontarf,provokes,intelsat,professes,materialise,portobello,benedictines,panionios,introverted,reacquired,bridport,mammary,kripke,oratorios,vlore,stoning,woredas,unreported,antti,togolese,fanzines,heuristics,conservatories,carburetors,clitheroe,cofounded,formula_57,erupting,quinnipiac,bootle,ghostface,sittings,aspinall,sealift,transferase,boldklub,siskiyou,predominated,francophonie,ferruginous,castrum,neogene,sakya,madama,precipitous,'love,posix,bithynia,uttara,avestan,thrushes,seiji,memorably,septimius,libri,cibernetico,hyperinflation,dissuaded,cuddalore,peculiarity,vaslui,grojec,albumin,thurles,casks,fasteners,fluidity,buble,casals,terek,gnosticism,cognates,ulnar,radwanska,babylonians,majuro,oxidizer,excavators,rhythmically,liffey,gorakhpur,eurydice,underscored,arborea,lumumba,tuber,catholique,grama,galilei,scrope,centreville,jacobin,bequests,ardeche,polygamous,montauban,terai,weatherboard,readability,attainder,acraea,transversely,rivets,winterbottom,reassures,bacteriology,vriesea,chera,andesite,dedications,homogenous,reconquered,bandon,forrestal,ukiyo,gurdjieff,tethys,sparc,muscogee,grebes,belchatow,mansa,blantyre,palliser,sokolow,fibroblasts,exmoor,misaki,soundscapes,housatonic,middelburg,convenor,leyla,antipope,histidine,okeechobee,alkenes,sombre,alkene,rubik,macaques,calabar,trophee,pinchot,'free,frusciante,chemins,falaise,vasteras,gripped,schwarzenberg,cumann,kanchipuram,acoustically,silverbacks,fangio,inset,plympton,kuril,vaccinations,recep,theropods,axils,stavropol,encroached,apoptotic,papandreou,wailers,moonstone,assizes,micrometers,hornchurch,truncation,annapurna,egyptologists,rheumatic,promiscuity,satiric,fleche,caloptilia,anisotropy,quaternions,gruppo,viscounts,awardees,aftershocks,sigint,concordance,oblasts,gaumont,stent,commissars,kesteven,hydroxy,vijayanagar,belorussian,fabricius,watermark,tearfully,mamet,leukaemia,sorkh,milepost,tattooing,vosta,abbasids,uncompleted,hedong,woodwinds,extinguishing,malus,multiplexes,francoist,pathet,responsa,bassists,'most,postsecondary,ossory,grampian,saakashvili,alito,strasberg,impressionistic,volador,gelatinous,vignette,underwing,campanian,abbasabad,albertville,hopefuls,nieuwe,taxiways,reconvened,recumbent,pathologists,unionized,faversham,asymptotically,romulo,culling,donja,constricted,annesley,duomo,enschede,lovech,sharpshooter,lansky,dhamma,papillae,alanine,mowat,delius,wrest,mcluhan,podkarpackie,imitators,bilaspur,stunting,pommel,casemate,handicaps,nagas,testaments,hemings,necessitate,rearward,locative,cilla,klitschko,lindau,merion,consequential,antic,soong,copula,berthing,chevrons,rostral,sympathizer,budokan,ranulf,beria,stilt,replying,conflated,alcibiades,painstaking,yamanashi,calif.,arvid,ctesiphon,xizong,rajas,caxton,downbeat,resurfacing,rudders,miscegenation,deathmatch,foregoing,arthropod,attestation,karts,reapportionment,harnessing,eastlake,schola,dosing,postcolonial,imtiaz,formula_55,insulators,gunung,accumulations,pampas,llewelyn,bahnhof,cytosol,grosjean,teaneck,briarcliff,arsenio,canara,elaborating,passchendaele,searchlights,holywell,mohandas,preventable,gehry,mestizos,ustinov,cliched,'national,heidfeld,tertullian,jihadist,tourer,miletus,semicircle,outclassed,bouillon,cardinalate,clarifies,dakshina,bilayer,pandyan,unrwa,chandragupta,formula_56,portola,sukumaran,lactation,islamia,heikki,couplers,misappropriation,catshark,montt,ploughs,carib,stator,leaderboard,kenrick,dendrites,scape,tillamook,molesworth,mussorgsky,melanesia,restated,troon,glycoside,truckee,headwater,mashup,sectoral,gangwon,docudrama,skirting,psychopathology,dramatised,ostroleka,infestations,thabo,depolarization,wideroe,eisenbahn,thomond,kumaon,upendra,foreland,acronyms,yaqui,retaking,raphaelite,specie,dupage,villars,lucasarts,chloroplast,werribee,balsa,ascribe,havant,flava,khawaja,tyumen,subtract,interrogators,reshaping,buzzcocks,eesti,campanile,potemkin,apertures,snowboarder,registrars,handbooks,boyar,contaminant,depositors,proximate,jeunesse,zagora,pronouncements,mists,nihilism,deified,margraviate,pietersen,moderators,amalfi,adjectival,copepods,magnetosphere,pallets,clemenceau,castra,perforation,granitic,troilus,grzegorz,luthier,dockyards,antofagasta,ffestiniog,subroutine,afterword,waterwheel,druce,nitin,undifferentiated,emacs,readmitted,barneveld,tapers,hittites,infomercials,infirm,braathens,heligoland,carpark,geomagnetic,musculoskeletal,nigerien,machinima,harmonize,repealing,indecency,muskoka,verite,steubenville,suffixed,cytoskeleton,surpasses,harmonia,imereti,ventricles,heterozygous,envisions,otsego,ecoles,warrnambool,burgenland,seria,rawat,capistrano,welby,kirin,enrollments,caricom,dragonlance,schaffhausen,expanses,photojournalism,brienne,etude,referent,jamtland,schemas,xianbei,cleburne,bicester,maritima,shorelines,diagonals,bjelke,nonpublic,aliasing,m.f.a,ovals,maitreya,skirmishing,grothendieck,sukhothai,angiotensin,bridlington,durgapur,contras,gakuen,skagit,rabbinate,tsunamis,haphazard,tyldesley,microcontroller,discourages,hialeah,compressing,septimus,larvik,condoleezza,psilocybin,protectionism,songbirds,clandestinely,selectmen,wargame,cinemascope,khazars,agronomy,melzer,latifah,cherokees,recesses,assemblymen,basescu,banaras,bioavailability,subchannels,adenine,o'kelly,prabhakar,leonese,dimethyl,testimonials,geoffroy,oxidant,universiti,gheorghiu,bohdan,reversals,zamorin,herbivore,jarre,sebastiao,infanterie,dolmen,teddington,radomsko,spaceships,cuzco,recapitulation,mahoning,bainimarama,myelin,aykroyd,decals,tokelau,nalgonda,rajasthani,
121st,quelled,tambov,illyrians,homilies,illuminations,hypertrophy,grodzisk,inundation,incapacity,equilibria,combats,elihu,steinitz,berengar,gowda,canwest,khosrau,maculata,houten,kandinsky,onside,leatherhead,heritable,belvidere,federative,chukchi,serling,eruptive,patan,entitlements,suffragette,evolutions,migrates,demobilisation,athleticism,trope,sarpsborg,kensal,translink,squamish,concertgebouw,energon,timestamp,competences,zalgiris,serviceman,codice_7,spoofing,assange,mahadevan,skien,suceava,augustan,revisionism,unconvincing,hollande,drina,gottlob,lippi,broglie,darkening,tilapia,eagerness,nacht,kolmogorov,photometric,leeuwarden,jrotc,haemorrhage,almanack,cavalli,repudiation,galactose,zwickau,cetinje,houbraken,heavyweights,gabonese,ordinals,noticias,museveni,steric,charaxes,amjad,resection,joinville,leczyca,anastasius,purbeck,subtribe,dalles,leadoff,monoamine,jettisoned,kaori,anthologized,alfreton,indic,bayezid,tottori,colonizing,assassinating,unchanging,eusebian,d'estaing,tsingtao,toshio,transferases,peronist,metrology,equus,mirpur,libertarianism,kovil,indole,'green,abstention,quantitatively,icebreakers,tribals,mainstays,dryandra,eyewear,nilgiri,chrysanthemum,inositol,frenetic,merchantman,hesar,physiotherapist,transceiver,dancefloor,rankine,neisse,marginalization,lengthen,unaided,rework,pageantry,savio,striated,funen,witton,illuminates,frass,hydrolases,akali,bistrita,copywriter,firings,handballer,tachinidae,dmytro,coalesce,neretva,menem,moraines,coatbridge,crossrail,spoofed,drosera,ripen,protour,kikuyu,boleslav,edwardes,troubadours,haplogroups,wrasse,educationalist,sroda,khaneh,dagbladet,apennines,neuroscientist,deplored,terje,maccabees,daventry,spaceport,lessening,ducats,singer/guitarist,chambersburg,yeong,configurable,ceremonially,unrelenting,caffe,graaf,denizens,kingsport,ingush,panhard,synthesised,tumulus,homeschooled,bozorg,idiomatic,thanhouser,queensway,radek,hippolytus,inking,banovina,peacocks,piaui,handsworth,pantomimes,abalone,thera,kurzweil,bandura,augustinians,bocelli,ferrol,jiroft,quadrature,contravention,saussure,rectification,agrippina,angelis,matanzas,nidaros,palestrina,latium,coriolis,clostridium,ordain,uttering,lanchester,proteolytic,ayacucho,merseburg,holbein,sambalpur,algebraically,inchon,ostfold,savoia,calatrava,lahiri,judgeship,ammonite,masaryk,meyerbeer,hemorrhagic,superspeedway,ningxia,panicles,encircles,khmelnytsky,profusion,esher,babol,inflationary,anhydride,gaspe,mossy,periodicity,nacion,meteorologists,mahjong,interventional,sarin,moult,enderby,modell,palgrave,warners,montcalm,siddha,functionalism,rilke,politicized,broadmoor,kunste,orden,brasileira,araneta,eroticism,colquhoun,mamba,blacktown,tubercle,seagrass,manoel,camphor,neoregelia,llandudno,annexe,enplanements,kamien,plovers,statisticians,iturbide,madrasah,nontrivial,publican,landholders,manama,uninhabitable,revivalist,trunkline,friendliness,gurudwara,rocketry,unido,tripos,besant,braque,evolutionarily,abkhazian,staffel,ratzinger,brockville,bohemond,intercut,djurgarden,utilitarianism,deploys,sastri,absolutism,subhas,asghar,fictions,sepinwall,proportionately,titleholders,thereon,foursquare,machinegun,knightsbridge,siauliai,aqaba,gearboxes,castaways,weakens,phallic,strzelce,buoyed,ruthenia,pharynx,intractable,neptunes,koine,leakey,netherlandish,preempted,vinay,terracing,instigating,alluvium,prosthetics,vorarlberg,politiques,joinery,reduplication,nebuchadnezzar,lenticular,banka,seaborne,pattinson,helpline,aleph,beckenham,californians,namgyal,franziska,aphid,branagh,transcribe,appropriateness,surakarta,takings,propagates,juraj,b0d3fb,brera,arrayed,tailback,falsehood,hazleton,prosody,egyptology,pinnate,tableware,ratan,camperdown,ethnologist,tabari,classifiers,biogas,
126th,kabila,arbitron,apuestas,membranous,kincardine,oceana,glories,natick,populism,synonymy,ghalib,mobiles,motherboards,stationers,germinal,patronised,formula_58,gaborone,torts,jeezy,interleague,novaya,batticaloa,offshoots,wilbraham,filename,nswrfl,'well,trilobite,pythons,optimally,scientologists,rhesus,pilsen,backdrops,batang,unionville,hermanos,shrikes,fareham,outlawing,discontinuing,boisterous,shamokin,scanty,southwestward,exchangers,unexpired,mewar,h.m.s,saldanha,pawan,condorcet,turbidity,donau,indulgences,coincident,cliques,weeklies,bardhaman,violators,kenai,caspase,xperia,kunal,fistula,epistemic,cammell,nephi,disestablishment,rotator,germaniawerft,pyaar,chequered,jigme,perlis,anisotropic,popstars,kapil,appendices,berat,defecting,shacks,wrangel,panchayath,gorna,suckling,aerosols,sponheim,talal,borehole,encodings,enlai,subduing,agong,nadar,kitsap,syrmia,majumdar,pichilemu,charleville,embryology,booting,literati,abutting,basalts,jussi,repubblica,hertogenbosch,digitization,relents,hillfort,wiesenthal,kirche,bhagwan,bactrian,oases,phyla,neutralizing,helsing,ebooks,spearheading,margarine,'golden,phosphor,picea,stimulants,outliers,timescale,gynaecology,integrator,skyrocketed,bridgnorth,senecio,ramachandra,suffragist,arrowheads,aswan,inadvertent,microelectronics,
118th,sofer,kubica,melanesian,tuanku,balkh,vyborg,crystallographic,initiators,metamorphism,ginzburg,looters,unimproved,finistere,newburyport,norges,immunities,franchisees,asterism,kortrijk,camorra,komsomol,fleurs,draughts,patagonian,voracious,artin,collaborationist,revolucion,revitalizing,xaver,purifying,antipsychotic,disjunct,pompeius,dreamwave,juvenal,beinn,adiyaman,antitank,allama,boletus,melanogaster,dumitru,caproni,aligns,athabaskan,stobart,phallus,veikkausliiga,hornsey,buffering,bourbons,dobruja,marga,borax,electrics,gangnam,motorcyclist,whidbey,draconian,lodger,galilean,sanctification,imitates,boldness,underboss,wheatland,cantabrian,terceira,maumee,redefining,uppercase,ostroda,characterise,universalism,equalized,syndicalism,haringey,masovia,deleuze,funkadelic,conceals,thuan,minsky,pluralistic,ludendorff,beekeeping,bonfires,endoscopic,abuts,prebend,jonkoping,amami,tribunes,yup'ik,awadh,gasification,pforzheim,reforma,antiwar,vaishnavism,maryville,inextricably,margrethe,empresa,neutrophils,sanctified,ponca,elachistidae,curiae,quartier,mannar,hyperplasia,wimax,busing,neologism,florins,underrepresented,digitised,nieuw,cooch,howards,frege,hughie,plied,swale,kapellmeister,vajpayee,quadrupled,aeronautique,dushanbe,custos,saltillo,kisan,tigray,manaus,epigrams,shamanic,peppered,frosts,promotion/relegation,concedes,zwingli,charentes,whangarei,hyung,spring/summer,sobre,eretz,initialization,sawai,ephemera,grandfathered,arnaldo,customised,permeated,parapets,growths,visegrad,estudios,altamont,provincia,apologises,stoppard,carburettor,rifts,kinematic,zhengzhou,eschatology,prakrit,folate,yvelines,scapula,stupas,rishon,reconfiguration,flutist,
1680s,apostolate,proudhon,lakshman,articulating,stortford,faithfull,bitterns,upwelling,qur'anic,lidar,interferometry,waterlogged,koirala,ditton,wavefunction,fazal,babbage,antioxidants,lemberg,deadlocked,tolled,ramapo,mathematica,leiria,topologies,khali,photonic,balti,
1080p,corrects,recommenced,polyglot,friezes,tiebreak,copacabana,cholmondeley,armband,abolishment,sheamus,buttes,glycolysis,cataloged,warrenton,sassari,kishan,foodservice,cryptanalysis,holmenkollen,cosplay,machi,yousuf,mangal,allying,fertiliser,otomi,charlevoix,metallurg,parisians,bottlenose,oakleigh,debug,cidade,accede,ligation,madhava,pillboxes,gatefold,aveyron,sorin,thirsk,immemorial,menelik,mehra,domingos,underpinned,fleshed,harshness,diphthong,crestwood,miskolc,dupri,pyrausta,muskingum,tuoba,prodi,incidences,waynesboro,marquesas,heydar,artesian,calinescu,nucleation,funders,covalently,compaction,derbies,seaters,sodor,tabular,amadou,peckinpah,o'halloran,zechariah,libyans,kartik,daihatsu,chandran,erzhu,heresies,superheated,yarder,dorde,tanjore,abusers,xuanwu,juniperus,moesia,trusteeship,birdwatching,beatz,moorcock,harbhajan,sanga,choreographic,photonics,boylston,amalgamate,prawns,electrifying,sarath,inaccurately,exclaims,powerpoint,chaining,cpusa,adulterous,saccharomyces,glogow,vfl/afl,syncretic,simla,persisting,functors,allosteric,euphorbiaceae,juryo,mlada,moana,gabala,thornycroft,kumanovo,ostrovsky,sitio,tutankhamun,sauropods,kardzhali,reinterpretation,sulpice,rosyth,originators,halesowen,delineation,asesoria,abatement,gardai,elytra,taillights,overlays,monsoons,sandpipers,ingmar,henrico,inaccuracy,irwell,arenabowl,elche,pressburg,signalman,interviewees,sinkhole,pendle,ecommerce,cellos,nebria,organometallic,surrealistic,propagandist,interlaken,canandaigua,aerials,coutinho,pascagoula,tonopah,letterkenny,gropius,carbons,hammocks,childe,polities,hosiery,donitz,suppresses,diaghilev,stroudsburg,bagram,pistoia,regenerating,unitarians,takeaway,offstage,vidin,glorification,bakunin,yavapai,lutzow,sabercats,witney,abrogated,gorlitz,validating,dodecahedron,stubbornly,telenor,glaxosmithkline,solapur,undesired,jellicoe,dramatization,four-and-a-half,seawall,waterpark,artaxerxes,vocalization,typographic,byung,sachsenhausen,shepparton,kissimmee,konnan,belsen,dhawan,khurd,mutagenesis,vejle,perrot,estradiol,formula_60,saros,chiloe,misiones,lamprey,terrains,speke,miasto,eigenvectors,haydock,reservist,corticosteroids,savitri,shinawatra,developmentally,yehudi,berates,janissaries,recapturing,rancheria,subplots,gresley,nikkatsu,oryol,cosmas,boavista,formula_59,playfully,subsections,commentated,kathakali,dorid,vilaine,seepage,hylidae,keiji,kazakhs,triphosphate,
1620s,supersede,monarchists,falla,miyako,notching,bhumibol,polarizing,secularized,shingled,bronislaw,lockerbie,soleyman,bundesbahn,latakia,redoubts,boult,inwardly,invents,ondrej,minangkabau,newquay,permanente,alhaji,madhav,malini,ellice,bookmaker,mankiewicz,etihad,o'dea,interrogative,mikawa,wallsend,canisius,bluesy,vitruvius,noord,ratifying,mixtec,gujranwala,subprefecture,keelung,goiania,nyssa,shi'ite,semitone,ch'uan,computerised,pertuan,catapults,nepomuk,shruti,millstones,buskerud,acolytes,tredegar,sarum,armia,dell'arte,devises,custodians,upturned,gallaudet,disembarking,thrashed,sagrada,myeon,undeclared,qumran,gaiden,tepco,janesville,showground,condense,chalon,unstaffed,pasay,undemocratic,hauts,viridis,uninjured,escutcheon,gymkhana,petaling,hammam,dislocations,tallaght,rerum,shias,indios,guaranty,simplicial,benares,benediction,tajiri,prolifically,huawei,onerous,grantee,ferencvaros,otranto,carbonates,conceit,digipak,qadri,masterclasses,swamiji,cradock,plunket,helmsman,
119th,salutes,tippecanoe,murshidabad,intelligibility,mittal,diversifying,bidar,asansol,crowdsourcing,rovere,karakoram,grindcore,skylights,tulagi,furrows,ligne,stuka,sumer,subgraph,amata,regionalist,bulkeley,teletext,glorify,readied,lexicographer,sabadell,predictability,quilmes,phenylalanine,bandaranaike,pyrmont,marksmen,quisling,viscountess,sociopolitical,afoul,pediments,swazi,martyrology,nullify,panagiotis,superconductors,veldenz,jujuy,l'isle,hematopoietic,shafi,subsea,hattiesburg,jyvaskyla,kebir,myeloid,landmine,derecho,amerindians,birkenau,scriabin,milhaud,mucosal,nikaya,freikorps,theoretician,proconsul,o'hanlon,clerked,bactria,houma,macular,topologically,shrubby,aryeh,ghazali,afferent,magalhaes,moduli,ashtabula,vidarbha,securitate,ludwigsburg,adoor,varun,shuja,khatun,chengde,bushels,lascelles,professionnelle,elfman,rangpur,unpowered,citytv,chojnice,quaternion,stokowski,aschaffenburg,commutes,subramaniam,methylene,satrap,gharb,namesakes,rathore,helier,gestational,heraklion,colliers,giannis,pastureland,evocation,krefeld,mahadeva,churchmen,egret,yilmaz,galeazzo,pudukkottai,artigas,generalitat,mudslides,frescoed,enfeoffed,aphorisms,melilla,montaigne,gauliga,parkdale,mauboy,linings,prema,sapir,xylophone,kushan,rockne,sequoyah,vasyl,rectilinear,vidyasagar,microcosm,san'a,carcinogen,thicknesses,aleut,farcical,moderating,detested,hegemonic,instalments,vauban,verwaltungsgemeinschaft,picayune,razorback,magellanic,moluccas,pankhurst,exportation,waldegrave,sufferer,bayswater,
1up.com,rearmament,orangutans,varazdin,b.o.b,elucidate,harlingen,erudition,brankovic,lapis,slipway,urraca,shinde,unwell,elwes,euboea,colwyn,srivijaya,grandstands,hortons,generalleutnant,fluxes,peterhead,gandhian,reals,alauddin,maximized,fairhaven,endow,ciechanow,perforations,darters,panellist,manmade,litigants,exhibitor,tirol,caracalla,conformance,hotelier,stabaek,hearths,borac,frisians,ident,veliko,emulators,schoharie,uzbeks,samarra,prestwick,wadia,universita,tanah,bucculatrix,predominates,genotypes,denounces,roadsides,ganassi,keokuk,philatelist,tomic,ingots,conduits,samplers,abdus,johar,allegories,timaru,wolfpacks,secunda,smeaton,sportivo,inverting,contraindications,whisperer,moradabad,calamities,bakufu,soundscape,smallholders,nadeem,crossroad,xenophobic,zakir,nationalliga,glazes,retroflex,schwyz,moroder,rubra,quraysh,theodoros,endemol,infidels,km/hr,repositioned,portraitist,lluis,answerable,arges,mindedness,coarser,eyewall,teleported,scolds,uppland,vibraphone,ricoh,isenburg,bricklayer,cuttlefish,abstentions,communicable,cephalopod,stockyards,balto,kinston,armbar,bandini,elphaba,maxims,bedouins,sachsen,friedkin,tractate,pamir,ivanovo,mohini,kovalainen,nambiar,melvyn,orthonormal,matsuyama,cuernavaca,veloso,overstated,streamer,dravid,informers,analyte,sympathized,streetscape,gosta,thomasville,grigore,futuna,depleting,whelks,kiedis,armadale,earner,wynyard,dothan,animating,tridentine,sabri,immovable,rivoli,ariege,parley,clinker,circulates,junagadh,fraunhofer,congregants,
180th,buducnost,formula_62,olmert,dedekind,karnak,bayernliga,mazes,sandpiper,ecclestone,yuvan,smallmouth,decolonization,lemmy,adjudicated,retiro,legia,benue,posit,acidification,wahab,taconic,floatplane,perchlorate,atria,wisbech,divestment,dallara,phrygia,palustris,cybersecurity,rebates,facie,mineralogical,substituent,proteges,fowey,mayenne,smoothbore,cherwell,schwarzschild,junin,murrumbidgee,smalltalk,d'orsay,emirati,calaveras,titusville,theremin,vikramaditya,wampanoag,burra,plaines,onegin,emboldened,whampoa,langa,soderbergh,arnaz,sowerby,arendal,godunov,pathanamthitta,damselfly,bestowing,eurosport,iconoclasm,outfitters,acquiesced,badawi,hypotension,ebbsfleet,annulus,sohrab,thenceforth,chagatai,necessitates,aulus,oddities,toynbee,uniontown,innervation,populaire,indivisible,rossellini,minuet,cyrene,gyeongju,chania,cichlids,harrods,
1690s,plunges,abdullahi,gurkhas,homebuilt,sortable,bangui,rediff,incrementally,demetrios,medaille,sportif,svend,guttenberg,tubules,carthusian,pleiades,torii,hoppus,phenyl,hanno,conyngham,teschen,cronenberg,wordless,melatonin,distinctiveness,autos,freising,xuanzang,dunwich,satanism,sweyn,predrag,contractually,pavlovic,malaysians,micrometres,expertly,pannonian,abstaining,capensis,southwesterly,catchphrases,commercialize,frankivsk,normanton,hibernate,verso,deportees,dubliners,codice_8,condors,zagros,glosses,leadville,conscript,morrisons,usury,ossian,oulton,vaccinium,civet,ayman,codrington,hadron,nanometers,geochemistry,extractor,grigori,tyrrhenian,neocollyris,drooping,falsification,werft,courtauld,brigantine,orhan,chapultepec,supercopa,federalized,praga,havering,encampments,infallibility,sardis,pawar,undirected,reconstructionist,ardrossan,varuna,pastimes,archdiocesan,fledging,shenhua,molise,secondarily,stagnated,replicates,ciencias,duryodhana,marauding,ruislip,ilyich,intermixed,ravenswood,shimazu,mycorrhizal,icosahedral,consents,dunblane,follicular,pekin,suffield,muromachi,kinsale,gauche,businesspeople,thereto,watauga,exaltation,chelmno,gorse,proliferate,drainages,burdwan,kangra,transducers,inductor,duvalier,maguindanao,moslem,uncaf,givenchy,plantarum,liturgics,telegraphs,lukashenko,chenango,andante,novae,ironwood,faubourg,torme,chinensis,ambala,pietermaritzburg,virginians,landform,bottlenecks,o'driscoll,darbhanga,baptistery,ameer,needlework,naperville,auditoriums,mullingar,starrer,animatronic,topsoil,madura,cannock,vernet,santurce,catocala,ozeki,pontevedra,multichannel,sundsvall,strategists,medio,
135th,halil,afridi,trelawny,caloric,ghraib,allendale,hameed,ludwigshafen,spurned,pavlo,palmar,strafed,catamarca,aveiro,harmonization,surah,predictors,solvay,mande,omnipresent,parenthesis,echolocation,equaling,experimenters,acyclic,lithographic,sepoys,katarzyna,sridevi,impoundment,khosrow,caesarean,nacogdoches,rockdale,lawmaker,caucasians,bahman,miyan,rubric,exuberance,bombastic,ductile,snowdonia,inlays,pinyon,anemones,hurries,hospitallers,tayyip,pulleys,treme,photovoltaics,testbed,polonium,ryszard,osgoode,profiting,ironwork,unsurpassed,nepticulidae,makai,lumbini,preclassic,clarksburg,egremont,videography,rehabilitating,ponty,sardonic,geotechnical,khurasan,solzhenitsyn,henna,phoenicia,rhyolite,chateaux,retorted,tomar,deflections,repressions,harborough,renan,brumbies,vandross,storia,vodou,clerkenwell,decking,universo,salon.com,imprisoning,sudwest,ghaziabad,subscribing,pisgah,sukhumi,econometric,clearest,pindar,yildirim,iulia,atlases,cements,remaster,dugouts,collapsible,resurrecting,batik,unreliability,thiers,conjunctions,colophon,marcher,placeholder,flagella,wolds,kibaki,viviparous,twelver,screenshots,aroostook,khadr,iconographic,itasca,jaume,basti,propounded,varro,be'er,jeevan,exacted,shrublands,creditable,brocade,boras,bittern,oneonta,attentional,herzliya,comprehensible,lakeville,discards,caxias,frankland,camerata,satoru,matlab,commutator,interprovincial,yorkville,benefices,nizami,edwardsville,amigaos,cannabinoid,indianola,amateurliga,pernicious,ubiquity,anarchic,novelties,precondition,zardari,symington,sargodha,headphone,thermopylae,mashonaland,zindagi,thalberg,loewe,surfactants,dobro,crocodilians,samhita,diatoms,haileybury,berwickshire,supercritical,sofie,snorna,slatina,intramolecular,agung,osteoarthritis,obstetric,teochew,vakhtang,connemara,deformations,diadem,ferruccio,mainichi,qualitatively,refrigerant,rerecorded,methylated,karmapa,krasinski,restatement,rouvas,cubitt,seacoast,schwarzkopf,homonymous,shipowner,thiamine,approachable,xiahou,
160th,ecumenism,polistes,internazionali,fouad,berar,biogeography,texting,inadequately,'when,
4kids,hymenoptera,emplaced,cognomen,bellefonte,supplant,michaelmas,uriel,tafsir,morazan,schweinfurt,chorister,ps400,nscaa,petipa,resolutely,ouagadougou,mascarene,supercell,konstanz,bagrat,harmonix,bergson,shrimps,resonators,veneta,camas,mynydd,rumford,generalmajor,khayyam,web.com,pappus,halfdan,tanana,suomen,yutaka,bibliographical,traian,silat,noailles,contrapuntal,agaricus,'special,minibuses,
1670s,obadiah,deepa,rorschach,malolos,lymington,valuations,imperials,caballeros,ambroise,judicature,elegiac,sedaka,shewa,checksum,gosforth,legionaries,corneille,microregion,friedrichshafen,antonis,surnamed,mycelium,cantus,educations,topmost,outfitting,ivica,nankai,gouda,anthemic,iosif,supercontinent,antifungal,belarusians,mudaliar,mohawks,caversham,glaciated,basemen,stevan,clonmel,loughton,deventer,positivist,manipuri,tensors,panipat,changeup,impermeable,dubbo,elfsborg,maritimo,regimens,bikram,bromeliad,substratum,norodom,gaultier,queanbeyan,pompeo,redacted,eurocopter,mothballed,centaurs,borno,copra,bemidji,'home,sopron,neuquen,passo,cineplex,alexandrov,wysokie,mammoths,yossi,sarcophagi,congreve,petkovic,extraneous,waterbirds,slurs,indias,phaeton,discontented,prefaced,abhay,prescot,interoperable,nordisk,bicyclists,validly,sejong,litovsk,zanesville,kapitanleutnant,kerch,changeable,mcclatchy,celebi,attesting,maccoll,sepahan,wayans,veined,gaudens,markt,dansk,soane,quantized,petersham,forebears,nayarit,frenzied,queuing,bygone,viggo,ludwik,tanka,hanssen,brythonic,cornhill,primorsky,stockpiles,conceptualization,lampeter,hinsdale,mesoderm,bielsk,rosenheim,ultron,joffrey,stanwyck,khagan,tiraspol,pavelic,ascendant,empoli,metatarsal,descentralizado,masada,ligier,huseyin,ramadi,waratah,tampines,ruthenium,statoil,mladost,liger,grecian,multiparty,digraph,maglev,reconsideration,radiography,cartilaginous,taizu,wintered,anabaptist,peterhouse,shoghi,assessors,numerator,paulet,painstakingly,halakhic,rocroi,motorcycling,gimel,kryptonian,emmeline,cheeked,drawdown,lelouch,dacians,brahmana,reminiscence,disinfection,optimizations,golders,extensor,tsugaru,tolling,liman,gulzar,unconvinced,crataegus,oppositional,dvina,pyrolysis,mandan,alexius,prion,stressors,loomed,moated,dhivehi,recyclable,relict,nestlings,sarandon,kosovar,solvers,czeslaw,kenta,maneuverable,middens,berkhamsted,comilla,folkways,loxton,beziers,batumi,petrochemicals,optimised,sirjan,rabindra,musicality,rationalisation,drillers,subspaces,'live,bbwaa,outfielders,tsung,danske,vandalised,norristown,striae,kanata,gastroenterology,steadfastly,equalising,bootlegging,mannerheim,notodontidae,lagoa,commentating,peninsulas,chishti,seismology,modigliani,preceptor,canonically,awardee,boyaca,hsinchu,stiffened,nacelle,bogor,dryness,unobstructed,yaqub,scindia,peeters,irritant,ammonites,ferromagnetic,speechwriter,oxygenated,walesa,millais,canarian,faience,calvinistic,discriminant,rasht,inker,annexes,howth,allocates,conditionally,roused,regionalism,regionalbahn,functionary,nitrates,bicentenary,recreates,saboteurs,koshi,plasmids,thinned,
124th,plainview,kardashian,neuville,victorians,radiates,
127th,vieques,schoolmates,petru,tokusatsu,keying,sunaina,flamethrower,'bout,demersal,hosokawa,corelli,omniscient,o'doherty,niksic,reflectivity,transdev,cavour,metronome,temporally,gabba,nsaids,geert,mayport,hematite,boeotia,vaudreuil,torshavn,sailplane,mineralogist,eskisehir,practises,gallifrey,takumi,unease,slipstream,hedmark,paulinus,ailsa,wielkopolska,filmworks,adamantly,vinaya,facelifted,franchisee,augustana,toppling,velvety,crispa,stonington,histological,genealogist,tactician,tebow,betjeman,nyingma,overwinter,oberoi,rampal,overwinters,petaluma,lactarius,stanmore,balikpapan,vasant,inclines,laminate,munshi,sociedade,rabbah,septal,boyband,ingrained,faltering,inhumans,nhtsa,affix,l'ordre,kazuki,rossendale,mysims,latvians,slaveholders,basilicata,neuburg,assize,manzanillo,scrobipalpa,formula_61,belgique,pterosaurs,privateering,vaasa,veria,northport,pressurised,hobbyist,austerlitz,sahih,bhadra,siliguri,bistrica,bursaries,wynton,corot,lepidus,lully,libor,libera,olusegun,choline,mannerism,lymphocyte,chagos,duxbury,parasitism,ecowas,morotai,cancion,coniston,aggrieved,sputnikmusic,parle,ammonian,civilisations,malformation,cattaraugus,skyhawks,d'arc,demerara,bronfman,midwinter,piscataway,jogaila,threonine,matins,kohlberg,hubli,pentatonic,camillus,nigam,potro,unchained,chauvel,orangeville,cistercians,redeployment,xanthi,manju,carabinieri,pakeha,nikolaevich,kantakouzenos,sesquicentennial,gunships,symbolised,teramo,ballo,crusading,l'oeil,bharatpur,lazier,gabrovo,hysteresis,rothbard,chaumont,roundel,ma'mun,sudhir,queried,newts,shimane,presynaptic,playfield,taxonomists,sensitivities,freleng,burkinabe,orfeo,autovia,proselytizing,bhangra,pasok,jujutsu,heung,pivoting,hominid,commending,formula_64,epworth,christianized,oresund,hantuchova,rajputana,hilversum,masoretic,dayak,bakri,assen,magog,macromolecules,waheed,qaida,spassky,rumped,protrudes,preminger,misogyny,glencairn,salafi,lacunae,grilles,racemes,areva,alighieri,inari,epitomized,photoshoot,one-of-a-kind,tring,muralist,tincture,backwaters,weaned,yeasts,analytically,smaland,caltrans,vysocina,jamuna,mauthausen,
175th,nouvelles,censoring,reggina,christology,gilad,amplifying,mehmood,johnsons,redirects,eastgate,sacrum,meteoric,riverbanks,guidebooks,ascribes,scoparia,iconoclastic,telegraphic,chine,merah,mistico,lectern,sheung,aethelstan,capablanca,anant,uspto,albatrosses,mymensingh,antiretroviral,clonal,coorg,vaillant,liquidator,gigas,yokai,eradicating,motorcyclists,waitakere,tandon,nears,montenegrins,
250th,tatsuya,yassin,atheistic,syncretism,nahum,berisha,transcended,owensboro,lakshmana,abteilung,unadorned,nyack,overflows,harrisonburg,complainant,uematsu,frictional,worsens,sangguniang,abutment,bulwer,sarma,apollinaire,shippers,lycia,alentejo,porpoises,optus,trawling,augustow,blackwall,workbench,westmount,leaped,sikandar,conveniences,stornoway,culverts,zoroastrians,hristo,ansgar,assistive,reassert,fanned,compasses,delgada,maisons,arima,plonsk,verlaine,starstruck,rakhine,befell,spirally,wyclef,expend,colloquium,formula_63,albertus,bellarmine,handedness,holon,introns,movimiento,profitably,lohengrin,discoverers,awash,erste,pharisees,dwarka,oghuz,hashing,heterodox,uloom,vladikavkaz,linesman,rehired,nucleophile,germanicus,gulshan,songz,bayerische,paralympian,crumlin,enjoined,khanum,prahran,penitent,amersfoort,saranac,semisimple,vagrants,compositing,tualatin,oxalate,lavra,ironi,ilkeston,umpqua,calum,stretford,zakat,guelders,hydrazine,birkin,spurring,modularity,aspartate,sodermanland,hopital,bellary,legazpi,clasico,cadfael,hypersonic,volleys,pharmacokinetics,carotene,orientale,pausini,bataille,lunga,retailed,m.phil,mazowieckie,vijayan,rawal,sublimation,promissory,estimators,ploughed,conflagration,penda,segregationist,otley,amputee,coauthor,sopra,pellew,wreckers,tollywood,circumscription,permittivity,strabane,landward,articulates,beaverbrook,rutherglen,coterminous,whistleblowers,colloidal,surbiton,atlante,oswiecim,bhasa,lampooned,chanter,saarc,landkreis,tribulation,tolerates,daiichi,hatun,cowries,dyschirius,abercromby,attock,aldwych,inflows,absolutist,l'histoire,committeeman,vanbrugh,headstock,westbourne,appenzell,hoxton,oculus,westfalen,roundabouts,nickelback,trovatore,quenching,summarises,conservators,transmutation,talleyrand,barzani,unwillingly,axonal,'blue,opining,enveloping,fidesz,rafah,colborne,flickr,lozenge,dulcimer,ndebele,swaraj,oxidize,gonville,resonated,gilani,superiore,endeared,janakpur,shepperton,solidifying,memoranda,sochaux,kurnool,rewari,emirs,kooning,bruford,unavailability,kayseri,judicious,negating,pterosaur,cytosolic,chernihiv,variational,sabretooth,seawolves,devalued,nanded,adverb,volunteerism,sealers,nemours,smederevo,kashubian,bartin,animax,vicomte,polotsk,polder,archiepiscopal,acceptability,quidditch,tussock,seminaire,immolation,belge,coves,wellingborough,khaganate,mckellen,nayaka,brega,kabhi,pontoons,bascule,newsreels,injectors,cobol,weblog,diplo,biggar,wheatbelt,erythrocytes,pedra,showgrounds,bogdanovich,eclecticism,toluene,elegies,formalize,andromedae,airworthiness,springville,mainframes,overexpression,magadha,bijelo,emlyn,glutamine,accenture,uhuru,metairie,arabidopsis,patanjali,peruvians,berezovsky,accion,astrolabe,jayanti,earnestly,sausalito,recurved,
1500s,ramla,incineration,galleons,laplacian,shiki,smethwick,isomerase,dordevic,janow,jeffersonville,internationalism,penciled,styrene,ashur,nucleoside,peristome,horsemanship,sedges,bachata,medes,kristallnacht,schneerson,reflectance,invalided,strutt,draupadi,destino,partridges,tejas,quadrennial,aurel,halych,ethnomusicology,autonomist,radyo,rifting,shi'ar,crvena,telefilm,zawahiri,plana,sultanates,theodorus,subcontractors,pavle,seneschal,teleports,chernivtsi,buccal,brattleboro,stankovic,safar,dunhuang,electrocution,chastised,ergonomic,midsomer,
130th,zomba,nongovernmental,escapist,localize,xuzhou,kyrie,carinthian,karlovac,nisan,kramnik,pilipino,digitisation,khasi,andronicus,highwayman,maior,misspelling,sebastopol,socon,rhaetian,archimandrite,partway,positivity,otaku,dingoes,tarski,geopolitics,disciplinarian,zulfikar,kenzo,globose,electrophilic,modele,storekeeper,pohang,wheldon,washers,interconnecting,digraphs,intrastate,campy,helvetic,frontispiece,ferrocarril,anambra,petraeus,midrib,endometrial,dwarfism,mauryan,endocytosis,brigs,percussionists,furtherance,synergistic,apocynaceae,krona,berthier,circumvented,casal,siltstone,precast,ethnikos,realists,geodesy,zarzuela,greenback,tripathi,persevered,interments,neutralization,olbermann,departements,supercomputing,demobilised,cassavetes,dunder,ministering,veszprem,barbarism,'world,pieve,apologist,frentzen,sulfides,firewalls,pronotum,staatsoper,hachette,makhachkala,oberland,phonon,yoshihiro,instars,purnima,winslet,mutsu,ergative,sajid,nizamuddin,paraphrased,ardeidae,kodagu,monooxygenase,skirmishers,sportiva,o'byrne,mykolaiv,ophir,prieta,gyllenhaal,kantian,leche,copan,herero,ps250,gelsenkirchen,shalit,sammarinese,chetwynd,wftda,travertine,warta,sigmaringen,concerti,namespace,ostergotland,biomarker,universals,collegio,embarcadero,wimborne,fiddlers,likening,ransomed,stifled,unabated,kalakaua,khanty,gongs,goodrem,countermeasure,publicizing,geomorphology,swedenborg,undefended,catastrophes,diverts,storyboards,amesbury,contactless,placentia,festivity,authorise,terrane,thallium,stradivarius,antonine,consortia,estimations,consecrate,supergiant,belichick,pendants,butyl,groza,univac,afire,kavala,studi,teletoon,paucity,gonbad,koninklijke,
128th,stoichiometric,multimodal,facundo,anatomic,melamine,creuse,altan,brigands,mcguinty,blomfield,tsvangirai,protrusion,lurgan,warminster,tenzin,russellville,discursive,definable,scotrail,lignin,reincorporated,o'dell,outperform,redland,multicolored,evaporates,dimitrie,limbic,patapsco,interlingua,surrogacy,cutty,potrero,masud,cahiers,jintao,ardashir,centaurus,plagiarized,minehead,musings,statuettes,logarithms,seaview,prohibitively,downforce,rivington,tomorrowland,microbiologist,ferric,morag,capsid,kucinich,clairvaux,demotic,seamanship,cicada,painterly,cromarty,carbonic,tupou,oconee,tehuantepec,typecast,anstruther,internalized,underwriters,tetrahedra,flagrant,quakes,pathologies,ulrik,nahal,tarquini,dongguan,parnassus,ryoko,senussi,seleucia,airasia,einer,sashes,d'amico,matriculating,arabesque,honved,biophysical,hardinge,kherson,mommsen,diels,icbms,reshape,brasiliensis,palmach,netaji,oblate,functionalities,grigor,blacksburg,recoilless,melanchthon,reales,astrodome,handcrafted,memes,theorizes,isma'il,aarti,pirin,maatschappij,stabilizes,honiara,ashbury,copts,rootes,defensed,queiroz,mantegna,galesburg,coraciiformesfamily,cabrillo,tokio,antipsychotics,kanon,
173rd,apollonia,finial,lydian,hadamard,rangi,dowlatabad,monolingual,platformer,subclasses,chiranjeevi,mirabeau,newsgroup,idmanyurdu,kambojas,walkover,zamoyski,generalist,khedive,flanges,knowle,bande,
157th,alleyn,reaffirm,pininfarina,zuckerberg,hakodate,
131st,aditi,bellinzona,vaulter,planking,boscombe,colombians,lysis,toppers,metered,nahyan,queensryche,minho,nagercoil,firebrand,foundress,bycatch,mendota,freeform,antena,capitalisation,martinus,overijssel,purists,interventionist,zgierz,burgundians,hippolyta,trompe,umatilla,moroccans,dictionnaire,hydrography,changers,chota,rimouski,aniline,bylaw,grandnephew,neamt,lemnos,connoisseurs,tractive,rearrangements,fetishism,finnic,apalachicola,landowning,calligraphic,circumpolar,mansfeld,legible,orientalism,tannhauser,blamey,maximization,noinclude,blackbirds,angara,ostersund,pancreatitis,glabra,acleris,juried,jungian,triumphantly,singlet,plasmas,synesthesia,yellowhead,unleashes,choiseul,quanzhong,brookville,kaskaskia,igcse,skatepark,jatin,jewellers,scaritinae,techcrunch,tellurium,lachaise,azuma,codeshare,dimensionality,unidirectional,scolaire,macdill,camshafts,unassisted,verband,kahlo,eliya,prelature,chiefdoms,saddleback,sockers,iommi,coloratura,llangollen,biosciences,harshest,maithili,k'iche,plical,multifunctional,andreu,tuskers,confounding,sambre,quarterdeck,ascetics,berdych,transversal,tuolumne,sagami,petrobras,brecker,menxia,instilling,stipulating,korra,oscillate,deadpan,v/line,pyrotechnic,stoneware,prelims,intracoastal,retraining,ilija,berwyn,encrypt,achievers,zulfiqar,glycoproteins,khatib,farmsteads,occultist,saman,fionn,derulo,khilji,obrenovic,argosy,toowong,dementieva,sociocultural,iconostasis,craigslist,festschrift,taifa,intercalated,tanjong,penticton,sharad,marxian,extrapolation,guises,wettin,prabang,exclaiming,kosta,famas,conakry,wanderings,'aliabad,macleay,exoplanet,bancorp,besiegers,surmounting,checkerboard,rajab,vliet,tarek,operable,wargaming,haldimand,fukuyama,uesugi,aggregations,erbil,brachiopods,tokyu,anglais,unfavorably,ujpest,escorial,armagnac,nagara,funafuti,ridgeline,cocking,o'gorman,compactness,retardant,krajowa,barua,coking,bestows,thampi,chicagoland,variably,o'loughlin,minnows,schwa,shaukat,polycarbonate,chlorinated,godalming,gramercy,delved,banqueting,enlil,sarada,prasanna,domhnall,decadal,regressive,lipoprotein,collectable,surendra,zaporizhia,cycliste,suchet,offsetting,formula_65,pudong,d'arte,blyton,quonset,osmania,tientsin,manorama,proteomics,bille,jalpaiguri,pertwee,barnegat,inventiveness,gollancz,euthanized,henricus,shortfalls,wuxia,chlorides,cerrado,polyvinyl,folktale,straddled,bioengineering,eschewing,greendale,recharged,olave,ceylonese,autocephalous,peacebuilding,wrights,guyed,rosamund,abitibi,bannockburn,gerontology,scutari,souness,seagram,codice_9,'open,xhtml,taguig,purposed,darbar,orthopedics,unpopulated,kisumu,tarrytown,feodor,polyhedral,monadnock,gottorp,priam,redesigning,gasworks,elfin,urquiza,homologation,filipovic,bohun,manningham,gornik,soundness,shorea,lanus,gelder,darke,sandgate,criticality,paranaense,
153rd,vieja,lithograph,trapezoid,tiebreakers,convalescence,yan'an,actuaries,balad,altimeter,thermoelectric,trailblazer,previn,tenryu,ancaster,endoscopy,nicolet,discloses,fracking,plaine,salado,americanism,placards,absurdist,propylene,breccia,jirga,documenta,ismailis,
161st,brentano,dallas/fort,embellishment,calipers,subscribes,mahavidyalaya,wednesbury,barnstormers,miwok,schembechler,minigame,unterberger,dopaminergic,inacio,nizamabad,overridden,monotype,cavernous,stichting,sassafras,sotho,argentinean,myrrh,rapidity,flatts,gowrie,dejected,kasaragod,cyprinidae,interlinked,arcseconds,degeneracy,infamously,incubate,substructure,trigeminal,sectarianism,marshlands,hooliganism,hurlers,isolationist,urania,burrard,switchover,lecco,wilts,interrogator,strived,ballooning,volterra,raciborz,relegating,gilding,cybele,dolomites,parachutist,lochaber,orators,raeburn,backend,benaud,rallycross,facings,banga,nuclides,defencemen,futurity,emitters,yadkin,eudonia,zambales,manasseh,sirte,meshes,peculiarly,mcminnville,roundly,boban,decrypt,icelanders,sanam,chelan,jovian,grudgingly,penalised,subscript,gambrinus,poaceae,infringements,maleficent,runciman,
148th,supersymmetry,granites,liskeard,eliciting,involution,hallstatt,kitzbuhel,shankly,sandhills,inefficiencies,yishuv,psychotropic,nightjars,wavell,sangamon,vaikundar,choshu,retrospectives,pitesti,gigantea,hashemi,bosna,gakuin,siochana,arrangers,baronetcies,narayani,temecula,creston,koscierzyna,autochthonous,wyandot,anniston,igreja,mobilise,buzau,dunster,musselburgh,wenzhou,khattak,detoxification,decarboxylase,manlius,campbells,coleoptera,copyist,sympathisers,suisun,eminescu,defensor,transshipment,thurgau,somerton,fluctuates,ambika,weierstrass,lukow,giambattista,volcanics,romanticized,innovated,matabeleland,scotiabank,garwolin,purine,d'auvergne,borderland,maozhen,pricewaterhousecoopers,testator,pallium,scout.com,mv/pi,nazca,curacies,upjohn,sarasvati,monegasque,ketrzyn,malory,spikelets,biomechanics,haciendas,rapped,dwarfed,stews,nijinsky,subjection,matsu,perceptible,schwarzburg,midsection,entertains,circuitous,epiphytic,wonsan,alpini,bluefield,sloths,transportable,braunfels,dictum,szczecinek,jukka,wielun,wejherowo,hucknall,grameen,duodenum,ribose,deshpande,shahar,nexstar,injurious,dereham,lithographer,dhoni,structuralist,progreso,deschutes,christus,pulteney,quoins,yitzchak,gyeongsang,breviary,makkah,chiyoda,jutting,vineland,angiosperms,necrotic,novelisation,redistribute,tirumala,
140th,featureless,mafic,rivaling,toyline,
2/
1st,martius,saalfeld,monthan,texian,kathak,melodramas,mithila,regierungsbezirk,
509th,fermenting,schoolmate,virtuosic,briain,kokoda,heliocentric,handpicked,kilwinning,sonically,dinars,kasim,parkways,bogdanov,luxembourgian,halland,avesta,bardic,daugavpils,excavator,qwest,frustrate,physiographic,majoris,'ndrangheta,unrestrained,firmness,montalban,abundances,preservationists,adare,executioners,guardsman,bonnaroo,neglects,nazrul,pro12,hoorn,abercorn,refuting,kabud,cationic,parapsychology,troposphere,venezuelans,malignancy,khoja,unhindered,accordionist,medak,visby,ejercito,laparoscopic,dinas,umayyads,valmiki,o'dowd,saplings,stranding,incisions,illusionist,avocets,buccleuch,amazonia,fourfold,turboprops,roosts,priscus,turnstile,areal,certifies,pocklington,spoofs,viseu,commonalities,dabrowka,annam,homesteaders,daredevils,mondrian,negotiates,fiestas,perennials,maximizes,lubavitch,ravindra,scrapers,finials,kintyre,violas,snoqualmie,wilders,openbsd,mlawa,peritoneal,devarajan,congke,leszno,mercurial,fakir,joannes,bognor,overloading,unbuilt,gurung,scuttle,temperaments,bautzen,jardim,tradesman,visitations,barbet,sagamore,graaff,forecasters,wilsons,assis,l'air,shariah,sochaczew,russa,dirge,biliary,neuve,heartbreakers,strathearn,jacobian,overgrazing,edrich,anticline,parathyroid,petula,lepanto,decius,channelled,parvathi,puppeteers,communicators,francorchamps,kahane,longus,panjang,intron,traite,xxvii,matsuri,amrit,katyn,disheartened,cacak,omonia,alexandrine,partaking,wrangling,adjuvant,haskovo,tendrils,greensand,lammermoor,otherworld,volusia,stabling,one-and-a-half,bresson,zapatista,eotvos,ps150,webisodes,stepchildren,microarray,braganca,quanta,dolne,superoxide,bellona,delineate,ratha,lindenwood,bruhl,cingulate,tallies,bickerton,helgi,bevin,takoma,tsukuba,statuses,changeling,alister,bytom,dibrugarh,magnesia,duplicating,outlier,abated,goncalo,strelitz,shikai,mardan,musculature,ascomycota,springhill,tumuli,gabaa,odenwald,reformatted,autocracy,theresienstadt,suplex,chattopadhyay,mencken,congratulatory,weatherfield,systema,solemnity,projekt,quanzhou,kreuzberg,postbellum,nobuo,mediaworks,finisterre,matchplay,bangladeshis,kothen,oocyte,hovered,aromas,afshar,browed,teases,chorlton,arshad,cesaro,backbencher,iquique,vulcans,padmini,unabridged,cyclase,despotic,kirilenko,achaean,queensberry,debre,octahedron,iphigenia,curbing,karimnagar,sagarmatha,smelters,surrealists,sanada,shrestha,turridae,leasehold,jiedushi,eurythmics,appropriating,correze,thimphu,amery,musicomh,cyborgs,sandwell,pushcart,retorts,ameliorate,deteriorates,stojanovic,spline,entrenchments,bourse,chancellorship,pasolini,lendl,personage,reformulated,pubescens,loiret,metalurh,reinvention,nonhuman,eilema,tarsal,complutense,magne,broadview,metrodome,outtake,stouffville,seinen,bataillon,phosphoric,ostensible,opatow,aristides,beefheart,glorifying,banten,romsey,seamounts,fushimi,prophylaxis,sibylla,ranjith,goslar,balustrades,georgiev,caird,lafitte,peano,canso,bankura,halfpenny,segregate,caisson,bizerte,jamshedpur,euromaidan,philosophie,ridged,cheerfully,reclassification,aemilius,visionaries,samoans,wokingham,chemung,wolof,unbranched,cinerea,bhosle,ourense,immortalised,cornerstones,sourcebook,khufu,archimedean,universitatea,intermolecular,fiscally,suffices,metacomet,adjudicator,stablemate,specks,glace,inowroclaw,patristic,muharram,agitating,ashot,neurologic,didcot,gamla,ilves,putouts,siraj,laski,coaling,diarmuid,ratnagiri,rotulorum,liquefaction,morbihan,harel,aftershock,gruiformesfamily,bonnier,falconiformesfamily,adorns,wikis,maastrichtian,stauffenberg,bishopsgate,fakhr,sevenfold,ponders,quantifying,castiel,opacity,depredations,lenten,gravitated,o'mahony,modulates,inuktitut,paston,kayfabe,vagus,legalised,balked,arianism,tendering,sivas,birthdate,awlaki,khvajeh,shahab,samtgemeinde,bridgeton,amalgamations,biogenesis,recharging,tsukasa,mythbusters,chamfered,enthronement,freelancers,maharana,constantia,sutil,messines,monkton,okanogan,reinvigorated,apoplexy,tanahashi,neues,valiants,harappan,russes,carding,volkoff,funchal,statehouse,imitative,intrepidity,mellotron,samaras,turkana,besting,longitudes,exarch,diarrhoea,transcending,zvonareva,darna,ramblin,disconnection,
137th,refocused,diarmait,agricole,ba'athist,turenne,contrabass,communis,daviess,fatimids,frosinone,fittingly,polyphyletic,qanat,theocratic,preclinical,abacha,toorak,marketplaces,conidia,seiya,contraindicated,retford,bundesautobahn,rebuilds,climatology,seaworthy,starfighter,qamar,categoria,malai,hellinsia,newstead,airworthy,catenin,avonmouth,arrhythmias,ayyavazhi,downgrade,ashburnham,ejector,kinematics,petworth,rspca,filmation,accipitridae,chhatrapati,g/mol,bacau,agama,ringtone,yudhoyono,orchestrator,arbitrators,
138th,powerplants,cumbernauld,alderley,misamis,hawai`i,cuando,meistriliiga,jermyn,alans,pedigrees,ottavio,approbation,omnium,purulia,prioress,rheinland,lymphoid,lutsk,oscilloscope,ballina,iliac,motorbikes,modernising,uffizi,phylloxera,kalevala,bengalis,amravati,syntheses,interviewers,inflectional,outflank,maryhill,unhurt,profiler,nacelles,heseltine,personalised,guarda,herpetologist,airpark,pigot,margaretha,dinos,peleliu,breakbeat,kastamonu,shaivism,delamere,kingsville,epigram,khlong,phospholipids,journeying,lietuvos,congregated,deviance,celebes,subsoil,stroma,kvitova,lubricating,layoff,alagoas,olafur,doron,interuniversity,raycom,agonopterix,uzice,nanna,springvale,raimundo,wrested,pupal,talat,skinheads,vestige,unpainted,handan,odawara,ammar,attendee,lapped,myotis,gusty,ciconiiformesfamily,traversal,subfield,vitaphone,prensa,hasidism,inwood,carstairs,kropotkin,turgenev,dobra,remittance,purim,tannin,adige,tabulation,lethality,pacha,micronesian,dhruva,defensemen,tibeto,siculus,radioisotope,sodertalje,phitsanulok,euphonium,oxytocin,overhangs,skinks,fabrica,reinterred,emulates,bioscience,paragliding,raekwon,perigee,plausibility,frolunda,erroll,aznar,vyasa,albinus,trevally,confederacion,terse,sixtieth,
1530s,kendriya,skateboarders,frontieres,muawiyah,easements,shehu,conservatively,keystones,kasem,brutalist,peekskill,cowry,orcas,syllabary,paltz,elisabetta,denticles,hampering,dolni,eidos,aarau,lermontov,yankton,shahbaz,barrages,kongsvinger,reestablishment,acetyltransferase,zulia,mrnas,slingsby,eucalypt,efficacious,weybridge,gradation,cinematheque,malthus,bampton,coexisted,cisse,hamdi,cupertino,saumarez,chionodes,libertine,formers,sakharov,pseudonymous,vol
.1,mcduck,gopalakrishnan,amberley,jorhat,grandmasters,rudiments,dwindle,param,bukidnon,menander,americanus,multipliers,pulawy,homoerotic,pillbox,cd+dvd,epigraph,aleksandrow,extrapolated,horseshoes,contemporain,angiography,hasselt,shawinigan,memorization,legitimized,cyclades,outsold,rodolphe,kelis,powerball,dijkstra,analyzers,incompressible,sambar,orangeburg,osten,reauthorization,adamawa,sphagnum,hypermarket,millipedes,zoroaster,madea,ossuary,murrayfield,pronominal,gautham,resellers,ethers,quarrelled,dolna,stragglers,asami,tangut,passos,educacion,sharaf,texel,berio,bethpage,bezalel,marfa,noronha,
36ers,genteel,avram,shilton,compensates,sweetener,reinstalled,disables,noether,
1590s,balakrishnan,kotaro,northallerton,cataclysm,gholam,cancellara,schiphol,commends,longinus,albinism,gemayel,hamamatsu,volos,islamism,sidereal,pecuniary,diggings,townsquare,neosho,lushan,chittoor,akhil,disputation,desiccation,cambodians,thwarting,deliberated,ellipsis,bahini,susumu,separators,kohneh,plebeians,kultur,ogaden,pissarro,trypeta,latur,liaodong,vetting,datong,sohail,alchemists,lengthwise,unevenly,masterly,microcontrollers,occupier,deviating,farringdon,baccalaureat,theocracy,chebyshev,archivists,jayaram,ineffectiveness,scandinavians,jacobins,encomienda,nambu,g/cm3,catesby,paavo,heeded,rhodium,idealised,
10deg,infective,mecyclothorax,halevy,sheared,minbari,audax,lusatian,rebuffs,hitfix,fastener,subjugate,tarun,binet,compuserve,synthesiser,keisuke,amalric,ligatures,tadashi,ignazio,abramovich,groundnut,otomo,maeve,mortlake,ostrogoths,antillean,todor,recto,millimetre,espousing,inaugurate,paracetamol,galvanic,harpalinae,jedrzejow,reassessment,langlands,civita,mikan,stikine,bijar,imamate,istana,kaiserliche,erastus,federale,cytosine,expansionism,hommes,norrland,smriti,snapdragon,gulab,taleb,lossy,khattab,urbanised,sesto,rekord,diffuser,desam,morganatic,silting,pacts,extender,beauharnais,purley,bouches,halfpipe,discontinuities,houthi,farmville,animism,horni,saadi,interpretative,blockades,symeon,biogeographic,transcaucasian,jetties,landrieu,astrocytes,conjunto,stumpings,weevils,geysers,redux,arching,romanus,tazeh,marcellinus,casein,opava,misrata,anare,sattar,declarer,dreux,oporto,venta,vallis,icosahedron,cortona,lachine,mohammedan,sandnes,zynga,clarin,diomedes,tsuyoshi,pribram,gulbarga,chartist,superettan,boscawen,altus,subang,gating,epistolary,vizianagaram,ogdensburg,panna,thyssen,tarkovsky,dzogchen,biograph,seremban,unscientific,nightjar,legco,deism,n.w.a,sudha,siskel,sassou,flintlock,jovial,montbeliard,pallida,formula_66,tranquillity,nisei,adornment,'people,yamhill,hockeyallsvenskan,adopters,appian,lowicz,haplotypes,succinctly,starogard,presidencies,kheyrabad,sobibor,kinesiology,cowichan,militum,cromwellian,leiningen,ps1.5,concourses,dalarna,goldfield,brzeg,faeces,aquarii,matchless,harvesters,
181st,numismatics,korfball,sectioned,transpires,facultative,brandishing,kieron,forages,menai,glutinous,debarge,heathfield,
1580s,malang,photoelectric,froome,semiotic,alwar,grammophon,chiaroscuro,mentalist,maramures,flacco,liquors,aleutians,marvell,sutlej,patnaik,qassam,flintoff,bayfield,haeckel,sueno,avicii,exoplanets,hoshi,annibale,vojislav,honeycombs,celebrant,rendsburg,veblen,quails,
141st,carronades,savar,narrations,jeeva,ontologies,hedonistic,marinette,godot,munna,bessarabian,outrigger,thame,gravels,hoshino,falsifying,stereochemistry,nacionalista,medially,radula,ejecting,conservatorio,odile,ceiba,jaina,essonne,isometry,allophones,recidivism,iveco,ganda,grammarians,jagan,signposted,uncompressed,facilitators,constancy,ditko,propulsive,impaling,interbank,botolph,amlaib,intergroup,sorbus,cheka,debye,praca,adorning,presbyteries,dormition,strategos,qarase,pentecostals,beehives,hashemite,goldust,euronext,egress,arpanet,soames,jurchens,slovenska,copse,kazim,appraisals,marischal,mineola,sharada,caricaturist,sturluson,galba,faizabad,overwintering,grete,uyezds,didsbury,libreville,ablett,microstructure,anadolu,belenenses,elocution,cloaks,timeslots,halden,rashidun,displaces,sympatric,germanus,tuples,ceska,equalize,disassembly,krautrock,babangida,memel,deild,gopala,hematology,underclass,sangli,wawrinka,assur,toshack,refrains,nicotinic,bhagalpur,badami,racetracks,pocatello,walgreens,nazarbayev,occultation,spinnaker,geneon,josias,hydrolyzed,dzong,corregimiento,waistcoat,thermoplastic,soldered,anticancer,lactobacillus,shafi'i,carabus,adjournment,schlumberger,triceratops,despotate,mendicant,krishnamurti,bahasa,earthworm,lavoisier,noetherian,kalki,fervently,bhawan,saanich,coquille,gannet,motagua,kennels,mineralization,fitzherbert,svein,bifurcated,hairdressing,felis,abounded,dimers,fervour,hebdo,bluffton,aetna,corydon,clevedon,carneiro,subjectively,deutz,gastropoda,overshot,concatenation,varman,carolla,maharshi,mujib,inelastic,riverhead,initialized,safavids,rohini,caguas,bulges,fotbollforbund,hefei,spithead,westville,maronites,lytham,americo,gediminas,stephanus,chalcolithic,hijra,gnu/linux,predilection,rulership,sterility,haidar,scarlatti,saprissa,sviatoslav,pointedly,sunroof,guarantor,thevar,airstrips,pultusk,sture,
129th,divinities,daizong,dolichoderus,cobourg,maoists,swordsmanship,uprated,bohme,tashi,largs,chandi,bluebeard,householders,richardsonian,drepanidae,antigonish,elbasan,occultism,marca,hypergeometric,oirat,stiglitz,ignites,dzungar,miquelon,pritam,d'automne,ulidiid,niamey,vallecano,fondo,billiton,incumbencies,raceme,chambery,cadell,barenaked,kagame,summerside,haussmann,hatshepsut,apothecaries,criollo,feint,nasals,timurid,feltham,plotinus,oxygenation,marginata,officinalis,salat,participations,ising,downe,izumo,unguided,pretence,coursed,haruna,viscountcy,mainstage,justicia,powiat,takara,capitoline,implacable,farben,stopford,cosmopterix,tuberous,kronecker,galatians,kweli,dogmas,exhorted,trebinje,skanda,newlyn,ablative,basidia,bhiwani,encroachments,stranglers,regrouping,tubal,shoestring,wawel,anionic,mesenchymal,creationists,pyrophosphate,moshi,despotism,powerbook,fatehpur,rupiah,segre,ternate,jessore,b.i.g,shevardnadze,abounds,gliwice,densest,memoria,suborbital,vietcong,ratepayers,karunanidhi,toolbar,descents,rhymney,exhortation,zahedan,carcinomas,hyperbaric,botvinnik,billets,neuropsychological,tigranes,hoards,chater,biennially,thistles,scotus,wataru,flotillas,hungama,monopolistic,payouts,vetch,generalissimo,caries,naumburg,piran,blizzards,escalates,reactant,shinya,theorize,rizzoli,transitway,ecclesiae,streptomyces,cantal,nisibis,superconductor,unworkable,thallus,roehampton,scheckter,viceroys,makuuchi,ilkley,superseding,takuya,klodzko,borbon,raspberries,operand,w.a.k.o,sarabande,factionalism,egalitarianism,temasek,torbat,unscripted,jorma,westerner,perfective,vrije,underlain,goldfrapp,blaenau,jomon,barthes,drivetime,bassa,bannock,umaga,fengxiang,zulus,sreenivasan,farces,codice_10,freeholder,poddebice,imperialists,deregulated,wingtip,o'hagan,pillared,overtone,hofstadter,
149th,kitano,saybrook,standardizing,aldgate,staveley,o'flaherty,hundredths,steerable,soltan,empted,cruyff,intramuros,taluks,cotonou,marae,karur,figueres,barwon,lucullus,niobe,zemlya,lathes,homeported,chaux,amyotrophic,opines,exemplars,bhamo,homomorphisms,gauleiter,ladin,mafiosi,airdrieonians,b/soul,decal,transcaucasia,solti,defecation,deaconess,numidia,sampradaya,normalised,wingless,schwaben,alnus,cinerama,yakutsk,ketchikan,orvieto,unearned,monferrato,rotem,aacsb,loong,decoders,skerries,cardiothoracic,repositioning,pimpernel,yohannan,tenebrionoidea,nargis,nouvel,costliest,interdenominational,noize,redirecting,zither,morcha,radiometric,frequenting,irtysh,gbagbo,chakri,litvinenko,infotainment,ravensbruck,harith,corbels,maegashira,jousting,natan,novus,falcao,minis,railed,decile,rauma,ramaswamy,cavitation,paranaque,berchtesgaden,reanimated,schomberg,polysaccharides,exclusionary,cleon,anurag,ravaging,dhanush,mitchells,granule,contemptuous,keisei,rolleston,atlantean,yorkist,daraa,wapping,micrometer,keeneland,comparably,baranja,oranje,schlafli,yogic,dinajpur,unimpressive,masashi,recreativo,alemannic,petersfield,naoko,vasudeva,autosport,rajat,marella,busko,wethersfield,ssris,soulcalibur,kobani,wildland,rookery,hoffenheim,kauri,aliphatic,balaclava,ferrite,publicise,victorias,theism,quimper,chapbook,functionalist,roadbed,ulyanovsk,cupen,purpurea,calthorpe,teofilo,mousavi,cochlea,linotype,detmold,ellerslie,gakkai,telkom,southsea,subcontractor,inguinal,philatelists,zeebrugge,piave,trochidae,dempo,spoilt,saharanpur,mihrab,parasympathetic,barbarous,chartering,antiqua,katsina,bugis,categorizes,altstadt,kandyan,pambansa,overpasses,miters,assimilating,finlandia,uneconomic,am/fm,harpsichordist,dresdner,luminescence,authentically,overpowers,magmatic,cliftonville,oilfields,skirted,berthe,cuman,oakham,frelimo,glockenspiel,confection,saxophonists,piaseczno,multilevel,antipater,levying,maltreatment,velho,opoczno,harburg,pedophilia,unfunded,palettes,plasterwork,breve,dharmendra,auchinleck,nonesuch,blackmun,libretti,rabbani,
145th,hasselbeck,kinnock,malate,vanden,cloverdale,ashgabat,nares,radians,steelworkers,sabor,possums,catterick,hemispheric,ostra,outpaced,dungeness,almshouse,penryn,texians,
1000m,franchitti,incumbency,texcoco,newar,tramcars,toroidal,meitetsu,spellbound,agronomist,vinifera,riata,bunko,pinas,ba'al,github,vasilyevich,obsolescent,geodesics,ancestries,tujue,capitalised,unassigned,throng,unpaired,psychometric,skegness,exothermic,buffered,kristiansund,tongued,berenger,basho,alitalia,prolongation,archaeologically,fractionation,cyprinid,echinoderms,agriculturally,justiciar,sonam,ilium,baits,danceable,grazer,ardahan,grassed,preemption,glassworks,hasina,ugric,umbra,wahhabi,vannes,tinnitus,capitaine,tikrit,lisieux,scree,hormuz,despenser,jagiellon,maisonneuve,gandaki,santarem,basilicas,lancing,landskrona,weilburg,fireside,elysian,isleworth,krishnamurthy,filton,cynon,tecmo,subcostal,scalars,triglycerides,hyperplane,farmingdale,unione,meydan,pilings,mercosur,reactivate,akiba,fecundity,jatra,natsume,zarqawi,preta,masao,presbyter,oakenfold,rhodri,ferran,ruizong,cloyne,nelvana,epiphanius,borde,scutes,strictures,troughton,whitestone,sholom,toyah,shingon,kutuzov,abelard,passant,lipno,cafeterias,residuals,anabaptists,paratransit,criollos,pleven,radiata,destabilizing,hadiths,bazaars,mannose,taiyo,crookes,welbeck,baoding,archelaus,nguesso,alberni,wingtips,herts,viasat,lankans,evreux,wigram,fassbinder,ryuichi,storting,reducible,olesnica,znojmo,hyannis,theophanes,flatiron,mustering,rajahmundry,kadir,wayang,prome,lethargy,zubin,illegality,conall,dramedy,beerbohm,hipparchus,ziarat,ryuji,shugo,glenorchy,microarchitecture,morne,lewinsky,cauvery,battenberg,hyksos,wayanad,hamilcar,buhari,brazo,bratianu,solms,aksaray,elamite,chilcotin,bloodstock,sagara,dolny,reunified,umlaut,proteaceae,camborne,calabrian,dhanbad,vaxjo,cookware,potez,rediffusion,semitones,lamentations,allgau,guernica,suntory,pleated,stationing,urgell,gannets,bertelsmann,entryway,raphitomidae,acetaldehyde,nephrology,categorizing,beiyang,permeate,tourney,geosciences,khana,masayuki,crucis,universitaria,slaskie,khaimah,finno,advani,astonishingly,tubulin,vampiric,jeolla,sociale,cleethorpes,badri,muridae,suzong,debater,decimation,kenyans,mutualism,pontifex,middlemen,insee,halevi,lamentation,psychopathy,brassey,wenders,kavya,parabellum,prolactin,inescapable,apses,malignancies,rinzai,stigmatized,menahem,comox,ateliers,welshpool,setif,centimetre,truthfulness,downfield,drusus,woden,glycosylation,emanated,agulhas,dalkeith,jazira,nucky,unifil,jobim,operon,oryzomys,heroically,seances,supernumerary,backhouse,hashanah,tatler,imago,invert,hayato,clockmaker,kingsmill,swiecie,analogously,golconda,poste,tacitly,decentralised,ge'ez,diplomatically,fossiliferous,linseed,mahavira,pedestals,archpriest,byelection,domiciled,jeffersonian,bombus,winegrowing,waukegan,uncultivated,haverfordwest,saumur,communally,disbursed,cleeve,zeljeznicar,speciosa,vacationers,sigur,vaishali,zlatko,iftikhar,cropland,transkei,incompleteness,bohra,subantarctic,slieve,physiologic,similis,klerk,replanted,'right,chafee,reproducible,bayburt,regicide,muzaffarpur,plurals,hanyu,orthologs,diouf,assailed,kamui,tarik,dodecanese,gorne,on/off,
179th,shimoga,granaries,carlists,valar,tripolitania,sherds,simmern,dissociated,isambard,polytechnical,yuvraj,brabazon,antisense,pubmed,glans,minutely,masaaki,raghavendra,savoury,podcasting,tachi,bienville,gongsun,ridgely,deform,yuichi,binders,canna,carcetti,llobregat,implored,berri,njegos,intermingled,offload,athenry,motherhouse,corpora,kakinada,dannebrog,imperio,prefaces,musicologists,aerospatiale,shirai,nagapattinam,servius,cristoforo,pomfret,reviled,entebbe,stane,east/west,thermometers,matriarchal,siglo,bodil,legionnaire,ze'ev,theorizing,sangeetha,horticulturist,uncountable,lookalike,anoxic,ionospheric,genealogists,chicopee,imprinting,popish,crematoria,diamondback,cyathea,hanzhong,cameramen,halogaland,naklo,waclaw,storehouses,flexed,comuni,frits,glauca,nilgiris,compresses,nainital,continuations,albay,hypoxic,samajwadi,dunkerque,nanticoke,sarwar,interchanged,jubal,corba,jalgaon,derleth,deathstroke,magny,vinnytsia,hyphenated,rimfire,sawan,boehner,disrepute,normalize,aromanian,dualistic,approximant,chama,karimabad,barnacles,sanok,stipends,dyfed,rijksmuseum,reverberation,suncorp,fungicides,reverie,spectrograph,stereophonic,niazi,ordos,alcan,karaite,lautrec,tableland,lamellar,rieti,langmuir,russula,webern,tweaks,hawick,southerner,morphy,naturalisation,enantiomer,michinoku,barbettes,relieves,carburettors,redruth,oblates,vocabularies,mogilev,bagmati,galium,reasserted,extolled,symon,eurosceptic,inflections,tirtha,recompense,oruro,roping,gouverneur,pared,yayoi,watermills,retooled,leukocytes,jubilant,mazhar,nicolau,manheim,touraine,bedser,hambledon,kohat,powerhouses,tlemcen,reuven,sympathetically,afrikaners,interes,handcrafts,etcher,baddeley,wodonga,amaury,
155th,vulgarity,pompadour,automorphisms,
1540s,oppositions,prekmurje,deryni,fortifying,arcuate,mahila,bocage,uther,nozze,slashes,atlantica,hadid,rhizomatous,azeris,'with,osmena,lewisville,innervated,bandmaster,outcropping,parallelogram,dominicana,twang,ingushetia,extensional,ladino,sastry,zinoviev,relatable,nobilis,cbeebies,hitless,eulima,sporangia,synge,longlisted,criminalized,penitential,weyden,tubule,volyn,priestesses,glenbrook,kibbutzim,windshaft,canadair,falange,zsolt,bonheur,meine,archangels,safeguarded,jamaicans,malarial,teasers,badging,merseyrail,operands,pulsars,gauchos,biotin,bambara,necaxa,egmond,tillage,coppi,anxiolytic,preah,mausoleums,plautus,feroz,debunked,
187th,belediyespor,mujibur,wantage,carboxyl,chettiar,murnau,vagueness,racemic,backstretch,courtland,municipio,palpatine,dezful,hyperbola,sreekumar,chalons,altay,arapahoe,tudors,sapieha,quilon,burdensome,kanya,xxviii,recension,generis,siphuncle,repressor,bitrate,mandals,midhurst,dioxin,democratique,upholds,rodez,cinematographic,epoque,jinping,rabelais,zhytomyr,glenview,rebooted,khalidi,reticulata,
122nd,monnaie,passersby,ghazals,europaea,lippmann,earthbound,tadic,andorran,artvin,angelicum,banksy,epicentre,resemblances,shuttled,rathaus,bernt,stonemasons,balochi,siang,tynemouth,cygni,biosynthetic,precipitates,sharecroppers,d'annunzio,softbank,shiji,apeldoorn,polycyclic,wenceslas,wuchang,samnites,tamarack,silmarillion,madinah,palaeontology,kirchberg,sculpin,rohtak,aquabats,oviparous,thynne,caney,blimps,minimalistic,whatcom,palatalization,bardstown,direct3d,paramagnetic,kamboja,khash,globemaster,lengua,matej,chernigov,swanage,arsenals,cascadia,cundinamarca,tusculum,leavers,organics,warplanes,'three,exertions,arminius,gandharva,inquires,comercio,kuopio,chabahar,plotlines,mersenne,anquetil,paralytic,buckminster,ambit,acrolophus,quantifiers,clacton,ciliary,ansaldo,fergana,egoism,thracians,chicoutimi,northbrook,analgesia,brotherhoods,hunza,adriaen,fluoridation,snowfalls,soundboard,fangoria,cannibalistic,orthogonius,chukotka,dindigul,manzoni,chainz,macromedia,beltline,muruga,schistura,provable,litex,initio,pneumoniae,infosys,cerium,boonton,cannonballs,d'une,solvency,mandurah,houthis,dolmens,apologists,radioisotopes,blaxploitation,poroshenko,stawell,coosa,maximilien,tempelhof,espouse,declaratory,hambro,xalapa,outmoded,mihiel,benefitting,desirous,archeparchy,repopulated,telescoping,captor,mackaye,disparaged,ramanathan,crowne,tumbled,technetium,silted,chedi,nievre,hyeon,cartoonish,interlock,infocom,rediff.com,dioramas,timekeeping,concertina,kutaisi,cesky,lubomirski,unapologetic,epigraphic,stalactites,sneha,biofilm,falconry,miraflores,catena,'outstanding,prospekt,apotheosis,o'odham,pacemakers,arabica,gandhinagar,reminisces,iroquoian,ornette,tilling,neoliberalism,chameleons,pandava,prefontaine,haiyan,gneisenau,utama,bando,reconstitution,azaria,canola,paratroops,ayckbourn,manistee,stourton,manifestos,lympne,denouement,tractatus,rakim,bellflower,nanometer,sassanids,turlough,presbyterianism,varmland,
20deg,phool,nyerere,almohad,manipal,vlaanderen,quickness,removals,makow,circumflex,eatery,morane,fondazione,alkylation,unenforceable,galliano,silkworm,junior/senior,abducts,phlox,konskie,lofoten,buuren,glyphosate,faired,naturae,cobbles,taher,skrulls,dostoevsky,walkout,wagnerian,orbited,methodically,denzil,sarat,extraterritorial,kohima,d'armor,brinsley,rostropovich,fengtian,comitatus,aravind,moche,wrangell,giscard,vantaa,viljandi,hakoah,seabees,muscatine,ballade,camanachd,sothern,mullioned,durad,margraves,maven,arete,chandni,garifuna,
142nd,reading/literature,thickest,intensifies,trygve,khaldun,perinatal,asana,powerline,acetylation,nureyev,omiya,montesquieu,riverwalk,marly,correlating,intermountain,bulgar,hammerheads,underscores,wiretapping,quatrain,ruisseau,newsagent,tuticorin,polygyny,hemsworth,partisanship,banna,istrian,evaporator".split(","),
45759 female_names:"mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,athena,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lettie,samatha,oralia,matilde,larissa,vesta,renita,delois,shanda,phillis,lorri,erlinda,cathrine,barb,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kesha,jeana,danelle,charline,chanel,valorie,dortha,cristal,sunny,leone,leilani,gerri,debi,andra,keshia,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,lyndsey,janina,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,yetta,verona,thomasina,sibyl,shannan,mechelle,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,chun,arcelia,zenobia,sharen,sharee,lavinia,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nakisha,maira,loreen,kizzy,fallon,christene,bobbye,ying,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,risa,rikki,particia,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yolande,vivien,vernetta,trudi,pearle,patrina,ossie,nicolle,loyce,letty,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,elodia,dorine,brunilda,brigid,ashli,ardella,twana,tarah,shavon,serina,rayna,ramonita,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jeni,gracia,glady,farah,enola,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,vivan,terresa,tanna,sudie,signe,salena,ronni,rebbecca,myrtie,malika,maida,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,ling,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,waneta,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,alita,yulanda,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,deedee,conception,clora,cherilyn,calandra,armandina,anisa,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kimi,keila,katelynn,jone,joane,jayna,janella,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,ming,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,eufemia,emely,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,xuan,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yajaira,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,xiao,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,shan,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","),surnames:"smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,black,daniels,palmer,mills,nichols,grant,knight,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,harvey,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,wolf,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,wiggins,mathews,mcclain,fischer,wall,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,duke,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,beach,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,villa,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,ivey,locke,haines,snell,hoskins,byrne,arias,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,waddell,ramey,cates,pollock,cummins,messer,heller,funk,cornett,palacios,galindo,cano,hathaway,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,gleason,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,dodge,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,tilley,schaffer,knutson,fenton,doran,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,huang,fagan,ezell,edmondson,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,stockton,stearns,lofton,coats,cavazos,beavers,barrios,tang,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,hudgins,gaskins,duckworth,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,kang,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cheng,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,bales,stepp,holm,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,bobo,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,stuckey,stine,porterfield,pauley,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,ricci,plunkett,pannell,ness,leger,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,conover,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,zhang,valerio,tellez,steffen,shumate,sauls,ripley,kemper,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,petrie,nowlin,navarrete,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tong,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,pape,null,mulkey,lightner,langer,hillard,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,danforth,cushing,cress,creed,cazares,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,pagano,mink,luker,leathers,joslin,hartzell,gambrell,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,boardman,alcaraz,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,mahler,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,caton,brunelle,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,eady,desmarais,decosta,dansby,cisco,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,valverde,valdivia,troupe,thrower,swindell,suttles,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,fick,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,wert,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pilgrim,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,rimmer,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,parmer,parke,pare,papa,palmieri,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,valente,turnbow,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,litchfield,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,silvas,shults,schexnayder,saez,rodas,rager,pulver,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,pepe,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hazard,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hatter,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,witmer,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,noles,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lollar,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,bobb,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,albino,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,boman,bohannan,beem,barre,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,amburgey,yeary,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,hunsicker,hornbuckle,holtzclaw,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,artrip,andujar,alkire,alder,zukowski,zuckerman,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,lirette,lesperance,lefkowitz,ledger,lauzon,lachapelle,klassen,keough,kempton,kaelin,jeffords,hsieh,hoyer,horwitz,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,bauder,barreras,aubuchon,anzalone,adamo,zerbe,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,nowakowski,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,licata,leonhardt,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hiebert,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mossman,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,kanter,houchin,hosley,hosler,hollon,holleman,heitman,haggins,gwaltney,goulding,gorden,geraci,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,monteith,milstead,milliner,mellen,mccardle,liptak,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,fuson,feldmann,everly,dyess,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,lamphere,laforge,jourdan,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,ehrhardt,eggen,dusek,durrant,dubay,dones,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,bodie,blosser,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wiebe,waguespack,vasser,upham,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,styron,stahlman,staab,skiba,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,kunze,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,grondin,grissett,greenawalt,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,birkholz,berardi,benda,behnke,barter,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,rogge,rettig,renwick,reidy,reider,redfield,premo,parente,paolucci,palmquist,ohler,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,letson,lechuga,lazenby,lauria,larimore,krupp,krupa,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,restrepo,ralls,ragusa,quiroga,papenfuss,oropeza,okane,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,linehan,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,kennett,kellett,kangas,janzen,hutter,huling,hofmeister,hewes,harjo,habib,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,orona,oberle,nocera,navas,nault,mullings,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leaks,lamarre,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hessler,hermanson,hepworth,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,berthiaume,beahm,batres,basnight,backes,axtell,atterberry,alvares,alegria,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,simkins,shuey,shaul,servin,serio,serafin,salguero,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,mcveigh,mcgrady,mcgaughey,mccurley,marchan,manske,lusby,linde,likens,licon,leroux,lemaire,legette,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,goodner,ginsburg,gerth,gerner,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,craine,chesnut,casady,carstens,carrick,carino,carignan,canchola,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabatini,ronan,rodiguez,riggleman,richins,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chivers,caudillo,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette".split(","),
45760 us_tv_and_film:"you,i,to,that,it,me,what,this,know,i'm,no,have,my,don't,just,not,do,be,your,we,it's,so,but,all,well,oh,about,right,you're,get,here,out,going,like,yeah,if,can,up,want,think,that's,now,go,him,how,got,did,why,see,come,good,really,look,will,okay,back,can't,mean,tell,i'll,hey,he's,could,didn't,yes,something,because,say,take,way,little,make,need,gonna,never,we're,too,she's,i've,sure,our,sorry,what's,let,thing,maybe,down,man,very,there's,should,anything,said,much,any,even,off,please,doing,thank,give,thought,help,talk,god,still,wait,find,nothing,again,things,let's,doesn't,call,told,great,better,ever,night,away,believe,feel,everything,you've,fine,last,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,talking,guess,care,bad,mom,remember,getting,we'll,together,dad,leave,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,course,might,mind,every,enough,try,hell,came,someone,you'll,whole,yourself,idea,ask,must,coming,looking,woman,room,knew,tonight,real,son,hope,went,hmm,happy,pretty,saw,girl,sir,friend,already,saying,next,job,problem,minute,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,probably,happen,we've,hurt,boy,dead,gotta,alone,excuse,start,kill,hard,you'd,today,car,ready,without,wants,hold,wanna,yet,seen,deal,once,gone,morning,supposed,friends,head,stuff,worry,live,truth,face,forget,true,cause,soon,knows,telling,wife,who's,chance,run,move,anyone,person,bye,somebody,heart,miss,making,meet,anyway,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,anymore,least,aren't,working,makes,taking,means,brother,hate,ago,says,beautiful,gave,fact,crazy,sit,afraid,important,rest,fun,kid,word,watch,glad,everyone,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,break,promise,door,close,hand,easy,question,tried,far,walk,needs,mine,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,waiting,dinner,funny,husband,almost,pay,answer,cool,eyes,news,child,shouldn't,yours,moment,sleep,read,where's,sounds,sonny,pick,sometimes,bed,date,plan,hours,lose,hands,serious,shit,behind,inside,ahead,week,wonderful,fight,past,cut,quite,he'll,sick,it'll,eat,nobody,goes,save,seems,finally,lives,worried,upset,carly,met,brought,seem,sort,safe,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,parents,drink,absolutely,how's,daddy,sweet,alive,sense,meant,happens,bet,blood,ain't,kidding,lie,meeting,dear,seeing,sound,fault,ten,buy,hour,speak,lady,jen,thinks,christmas,outside,hang,possible,worse,mistake,ooh,handle,spend,totally,giving,here's,marriage,realize,unless,sex,send,needed,scared,picture,talked,ass,hundred,changed,completely,explain,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,marry,drop,cannot,dream,protect,twenty,surprise,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,hasn't,worth,sheridan,amazing,expect,swear,piece,busy,happening,movie,we'd,catch,perhaps,step,fall,watching,kept,darling,dog,honor,moving,till,admit,problems,murder,he'd,evil,definitely,feels,honest,eye,broke,missed,longer,dollars,tired,evening,starting,entire,trip,niles,suppose,calm,imagine,fair,caught,blame,sitting,favor,apartment,terrible,clean,learn,frasier,relax,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,mouth,pregnant,ring,careful,shall,dude,ride,figured,wear,shoot,stick,follow,angry,write,stopped,ran,standing,forgive,jail,wearing,ladies,kinda,lunch,cristian,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,count,boyfriend,proud,agree,birthday,they've,share,offer,hurry,feet,wondering,decision,ones,finish,voice,herself,would've,mess,deserve,evidence,cute,dress,interesting,hotel,enjoy,quiet,concerned,staying,beat,sweetie,mention,clothes,fell,neither,mmm,fix,respect,prison,attention,holding,calls,surprised,bar,keeping,gift,hadn't,putting,dark,owe,ice,helping,normal,aunt,lawyer,apart,plans,jax,girlfriend,floor,whether,everything's,box,judge,upstairs,sake,mommy,possibly,worst,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,difference,store,she'd,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,join,card,crime,gentlemen,willing,window,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,bother,seriously,cell,knowing,broken,advice,somehow,paid,losing,push,helped,killing,boss,liked,innocent,rules,learned,thirty,risk,letting,speaking,ridiculous,afternoon,apologize,nervous,charge,patient,boat,how'd,hide,detective,planning,huge,breakfast,horrible,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,visit,could've,c'mon,letter,decide,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,hearing,kitchen,ma'am,should've,realized,kick,grab,discuss,fifty,reading,idiot,suddenly,agent,destroy,bucks,shoes,peace,arms,demon,livvie,consider,papers,incredible,witch,drunk,attorney,tells,knock,ways,gives,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,outta,weekend,matters,gosh,opportunity,impossible,waste,pretend,jump,eating,proof,slept,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,divorce,begin,ourselves,closer,ruin,smile,laugh,treat,fear,what'd,otherwise,excited,mail,hiding,stole,pacey,noticed,fired,excellent,bringing,bottom,note,sudden,bathroom,honestly,sing,foot,remind,charges,witness,finding,tree,dare,hardly,that'll,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,reach,dirty,choose,emergency,dropped,butt,credit,obvious,locked,loving,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,crap,crying,belong,partner,trick,pressure,dressed,taste,neck,nurse,raise,lots,carry,whoever,drinking,they'd,breaking,file,lock,wine,spot,paying,assume,asleep,turning,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,freak,movies,folks,cream,wild,truly,desk,convince,client,threw,hurts,spending,answers,shirt,chair,rough,doin,sees,ought,empty,wind,aware,dealing,pack,tight,hurting,guest,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,bottle,beyond,whenever,pool,opinion,starts,jerk,secrets,falling,necessary,barely,dancing,tests,copy,cousin,ahem,twelve,tess,skin,fifteen,speech,orders,complicated,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,someplace,screw,everywhere,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,whoo,hole,memories,o'clock,teeth,ruined,bite,stenbeck,liar,showing,cards,desperate,search,pathetic,spoke,scare,marah,afford,settle,stayed,checking,hired,heads,concern,blew,alcazar,champagne,connection,tickets,happiness,saving,kissing,hated,personally,suggest,prepared,onto,downstairs,ticket,it'd,loose,holy,duty,convinced,throwing,kissed,legs,loud,saturday,babies,where'd,warning,miracle,carrying,blind,ugly,shopping,hates,sight,bride,coat,clearly,celebrate,brilliant,wanting,forrester,lips,custody,screwed,buying,toast,thoughts,reality,lexie,attitude,advantage,grandfather,sami,grandma,someday,roof,marrying,powerful,grown,grandmother,fake,must've,ideas,exciting,familiar,bomb,bout,harmony,schedule,capable,practically,correct,clue,forgotten,appointment,deserves,threat,bloody,lonely,shame,jacket,hook,scary,investigation,invite,shooting,lesson,criminal,victim,funeral,considering,burning,strength,harder,sisters,pushed,shock,pushing,heat,chocolate,miserable,corinthos,nightmare,brings,zander,crash,chances,sending,recognize,healthy,boring,feed,engaged,headed,treated,knife,drag,badly,hire,paint,pardon,behavior,closet,warn,gorgeous,milk,survive,ends,dump,rent,remembered,thanksgiving,rain,revenge,prefer,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,stood,affair,ours,depends,protecting,jury,brave,fingers,murdered,explanation,picking,blah,stronger,handsome,unbelievable,anytime,shake,oakdale,wherever,pulling,facts,waited,lousy,circumstances,disappointed,weak,trusted,license,nothin,trash,understanding,slip,sounded,awake,friendship,stomach,weapon,threatened,mystery,vegas,understood,basically,switch,frankly,cheap,lifetime,deny,clock,garbage,why'd,tear,ears,indeed,changing,singing,tiny,decent,avoid,messed,filled,touched,disappear,exact,pills,kicked,harm,fortune,pretending,insurance,fancy,drove,cared,belongs,nights,lorelai,lift,timing,guarantee,chest,woke,burned,watched,heading,selfish,drinks,doll,committed,elevator,freeze,noise,wasting,ceremony,uncomfortable,staring,files,bike,stress,permission,thrown,possibility,borrow,fabulous,doors,screaming,bone,xander,what're,meal,apology,anger,honeymoon,bail,parking,fixed,wash,stolen,sensitive,stealing,photo,chose,lets,comfort,worrying,pocket,mateo,bleeding,shoulder,ignore,talent,tied,garage,dies,demons,dumped,witches,rude,crack,bothering,radar,soft,meantime,gimme,kinds,fate,concentrate,throat,prom,messages,intend,ashamed,somethin,manage,guilt,interrupt,guts,tongue,shoe,basement,sentence,purse,glasses,cabin,universe,repeat,mirror,wound,travers,tall,engagement,therapy,emotional,jeez,decisions,soup,thrilled,stake,chef,moves,extremely,moments,expensive,counting,shots,kidnapped,cleaning,shift,plate,impressed,smells,trapped,aidan,knocked,charming,attractive,argue,puts,whip,embarrassed,package,hitting,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,terribly,friendly,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,disaster,bars,crossed,trap,talks,eggs,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,reputation,presents,chat,suffer,argument,talkin,crowd,homework,coincidence,cancel,pride,solve,hopefully,pounds,pine,mate,illegal,generous,outfit,maid,bath,punch,freaked,begging,recall,enjoying,prepare,wheel,defend,signs,painful,yourselves,maris,that'd,suspicious,cooking,button,warned,sixty,pity,yelling,awhile,confidence,offering,pleased,panic,hers,gettin,refuse,grandpa,testify,choices,cruel,mental,gentleman,coma,cutting,proteus,guests,expert,benefit,faces,jumped,toilet,sneak,halloween,privacy,smoking,reminds,twins,swing,solid,options,commitment,crush,ambulance,wallet,gang,eleven,option,laundry,assure,stays,skip,fail,discussion,clinic,betrayed,sticking,bored,mansion,soda,sheriff,suite,handled,busted,load,happier,studying,romance,procedure,commit,assignment,suicide,minds,swim,yell,llanview,chasing,proper,believes,humor,hopes,lawyers,giant,latest,escaped,parent,tricks,insist,dropping,cheer,medication,flesh,routine,sandwich,handed,false,beating,warrant,awfully,odds,treating,thin,suggesting,fever,sweat,silent,clever,sweater,mall,sharing,assuming,judgment,goodnight,divorced,surely,steps,confess,math,listened,comin,answered,vulnerable,bless,dreaming,chip,zero,pissed,nate,kills,tears,knees,chill,brains,unusual,packed,dreamed,cure,lookin,grave,cheating,breaks,locker,gifts,awkward,thursday,joking,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,delicious,closing,vampires,wore,tail,secure,salad,murderer,spit,offense,dust,conscience,bread,answering,lame,invitation,grief,smiling,pregnancy,prisoner,delivery,guards,virus,shrink,freezing,wreck,massimo,wire,technically,blown,anxious,cave,holidays,cleared,wishes,caring,candles,bound,charm,pulse,jumping,jokes,boom,occasion,silence,nonsense,frightened,slipped,dimera,blowing,relationships,kidnapping,spin,tool,roxy,packing,blaming,wrap,obsessed,fruit,torture,personality,there'll,fairy,necessarily,seventy,print,motel,underwear,grams,exhausted,believing,freaking,carefully,trace,touching,messing,recovery,intention,consequences,belt,sacrifice,courage,enjoyed,attracted,remove,testimony,intense,heal,defending,unfair,relieved,loyal,slowly,buzz,alcohol,surprises,psychiatrist,plain,attic,who'd,uniform,terrified,cleaned,zach,threaten,fella,enemies,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,badge,naturally,frozen,sakes,appropriate,trunk,dunno,costume,sixteen,impressive,kicking,junk,grabbed,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,surveillance,admire,questioning,dragged,barn,deeply,wrapped,wasted,tense,hoped,fellas,roommate,mortal,fascinating,stops,arrangements,agenda,literally,propose,honesty,underneath,sauce,promises,lecture,eighty,torn,shocked,backup,differently,ninety,deck,biological,pheebs,ease,creep,waitress,telephone,ripped,raising,scratch,rings,prints,thee,arguing,ephram,asks,oops,diner,annoying,taggert,sergeant,blast,towel,clown,habit,creature,bermuda,snap,react,paranoid,handling,eaten,therapist,comment,sink,reporter,nurses,beats,priority,interrupting,warehouse,loyalty,inspector,pleasant,excuses,threats,guessing,tend,praying,motive,unconscious,mysterious,unhappy,tone,switched,rappaport,sookie,neighbor,loaded,swore,piss,balance,toss,misery,thief,squeeze,lobby,goa'uld,geez,exercise,forth,booked,sandburg,poker,eighteen,d'you,bury,everyday,digging,creepy,wondered,liver,hmmm,magical,fits,discussed,moral,helpful,searching,flew,depressed,aisle,cris,amen,vows,neighbors,darn,cents,arrange,annulment,useless,adventure,resist,fourteen,celebrating,inch,debt,violent,sand,teal'c,celebration,reminded,phones,paperwork,emotions,stubborn,pound,tension,stroke,steady,overnight,chips,beef,suits,boxes,cassadine,collect,tragedy,spoil,realm,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,perspective,climb,punishment,finest,springfield,hint,furniture,blanket,twist,proceed,fries,worries,niece,gloves,soap,signature,disappoint,crawl,convicted,flip,counsel,doubts,crimes,accusing,shaking,remembering,hallway,halfway,bothered,madam,gather,cameras,blackmail,symptoms,rope,ordinary,imagined,cigarette,supportive,explosion,trauma,ouch,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,drawer,phony,interfere,catching,bargain,tragic,respond,punish,penthouse,thou,rach,ohhh,insult,bugs,beside,begged,absolute,strictly,socks,senses,sneaking,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,bitter,adorable,y'all,tested,suggestion,jewelry,alike,jacks,distracted,shelter,lessons,constable,circus,audition,tune,shoulders,mask,helpless,feeding,explains,sucked,robbery,objection,behave,valuable,shadows,courtroom,confusing,talented,smarter,mistaken,customer,bizarre,scaring,motherfucker,alert,vecchio,reverend,foolish,compliment,bastards,worker,wheelchair,protective,gentle,reverse,picnic,knee,cage,wives,wednesday,voices,toes,stink,scares,pour,cheated,slide,ruining,filling,exit,cottage,upside,proves,parked,diary,complaining,confessed,pipe,merely,massage,chop,spill,prayer,betray,waiter,scam,rats,fraud,brush,tables,sympathy,pill,filthy,seventeen,employee,bracelet,pays,fairly,deeper,arrive,tracking,spite,shed,recommend,oughta,nanny,menu,diet,corn,roses,patch,dime,devastated,subtle,bullets,beans,pile,confirm,strings,parade,borrowed,toys,straighten,steak,premonition,planted,honored,exam,convenient,traveling,laying,insisted,dish,aitoro,kindly,grandson,donor,temper,teenager,proven,mothers,denial,backwards,tent,swell,noon,happiest,drives,thinkin,spirits,potion,holes,fence,whatsoever,rehearsal,overheard,lemme,hostage,bench,tryin,taxi,shove,moron,impress,needle,intelligent,instant,disagree,stinks,rianna,recover,groom,gesture,constantly,bartender,suspects,sealed,legally,hears,dresses,sheet,psychic,teenage,knocking,judging,accidentally,waking,rumor,manners,homeless,hollow,desperately,tapes,referring,item,genoa,gear,majesty,cried,tons,spells,instinct,quote,motorcycle,convincing,fashioned,aids,accomplished,grip,bump,upsetting,needing,invisible,forgiveness,feds,compare,bothers,tooth,inviting,earn,compromise,cocktail,tramp,jabot,intimate,dignity,dealt,souls,informed,gods,dressing,cigarettes,alistair,leak,fond,corky,seduce,liquor,fingerprints,enchantment,butters,stuffed,stavros,emotionally,transplant,tips,oxygen,nicely,lunatic,drill,complain,announcement,unfortunate,slap,prayers,plug,opens,oath,o'neill,mutual,yacht,remembers,fried,extraordinary,bait,warton,sworn,stare,safely,reunion,burst,might've,dive,aboard,expose,buddies,trusting,booze,sweep,sore,scudder,properly,parole,ditch,canceled,speaks,glow,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,pancakes,harsh,flattered,ahhh,troubles,fights,favourite,eats,rage,undercover,spoiled,sloane,shine,destroying,deliberately,conspiracy,thoughtful,sandwiches,plates,nails,miracles,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,forgiven,bent,maciver,involve,dragging,cooked,pointing,foul,dull,beneath,heels,faking,deaf,stunt,jealousy,hopeless,fears,cuts,scenario,necklace,crashed,accuse,restraining,homicide,helicopter,firing,safer,auction,videotape,tore,reservations,pops,appetite,wounds,vanquish,ironic,fathers,excitement,anyhow,tearing,sends,rape,laughed,belly,dealer,cooperate,accomplish,wakes,spotted,sorts,reservation,ashes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,investigating,inappropriate,lipstick,lawn,compassion,cafeteria,scarf,precisely,obsession,loses,lighten,infection,granddaughter,explode,balcony,this'll,spying,publicity,depend,cracked,conscious,ally,absurd,vicious,invented,forbid,directions,defendant,bare,announce,screwing,salesman,robbed,leap,lakeview,insanity,reveal,possibilities,kidnap,gown,chairs,wishing,setup,punished,criminals,regrets,raped,quarters,lamp,dentist,anyways,anonymous,semester,risks,owes,lungs,explaining,delicate,tricked,eager,doomed,adoption,stab,sickness,scum,floating,envelope,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,stabbed,remarkable,brat,privilege,passionate,nerves,lawsuit,kidney,disturbed,cozy,tire,shirts,oven,ordering,delay,risky,monsters,honorable,grounded,closest,breakdown,bald,abandon,scar,collar,worthless,sucking,enormous,disturbing,disturb,distract,deals,conclusions,vodka,dishes,crawling,briefcase,wiped,whistle,sits,roast,rented,pigs,flirting,deposit,bottles,topic,riot,overreacting,logical,hostile,embarrass,casual,beacon,amusing,altar,claus,survival,skirt,shave,porch,ghosts,favors,drops,dizzy,chili,advise,strikes,rehab,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,cigar,weakness,ranch,practicing,examine,cranes,bribe,sail,prescription,hush,fragile,forensics,expense,drugged,cows,bells,visitor,suitcase,sorta,scan,manticore,insecure,imagining,hardest,clerk,wrist,what'll,starters,silk,pump,pale,nicer,haul,flies,boot,thumb,there'd,how're,elders,quietly,pulls,idiots,erase,denying,ankle,amnesia,accepting,heartbeat,devane,confront,minus,legitimate,fixing,arrogant,tuna,supper,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,snack,rational,minded,guessed,weddings,tumor,humiliated,aspirin,spray,picks,eyed,drowning,contacts,ritual,perfume,hiring,hating,docks,creatures,visions,thanking,thankful,sock,nineteen,fork,throws,teenagers,stressed,slice,rolls,plead,ladder,kicks,detectives,assured,tellin,shallow,responsibilities,repay,howdy,girlfriends,deadly,comforting,ceiling,verdict,insensitive,spilled,respected,messy,interrupted,halliwell,blond,bleed,wardrobe,takin,murders,backs,underestimate,justify,harmless,frustrated,fold,enzo,communicate,bugging,arson,whack,salary,rumors,obligation,liking,dearest,congratulate,vengeance,rack,puzzle,fires,courtesy,caller,blamed,tops,quiz,prep,curiosity,circles,barbecue,sunnydale,spinning,psychotic,cough,accusations,resent,laughs,freshman,envy,drown,bartlet,asses,sofa,poster,highness,dock,apologies,theirs,stat,stall,realizes,psych,mmmm,fools,understandable,treats,succeed,stir,relaxed,makin,gratitude,faithful,accent,witter,wandering,locate,inevitable,gretel,deed,crushed,controlling,smelled,robe,gossip,gambling,cosmetics,accidents,surprising,stiff,sincere,rushed,refrigerator,preparing,nightmares,mijo,ignoring,hunch,fireworks,drowned,brass,whispering,sophisticated,luggage,hike,explore,emotion,crashing,contacted,complications,shining,rolled,righteous,reconsider,goody,geek,frightening,ethics,creeps,courthouse,camping,affection,smythe,haircut,essay,baked,apologized,vibe,respects,receipt,mami,hats,destructive,adore,adopt,tracked,shorts,reminding,dough,creations,cabot,barrel,snuck,slight,reporters,pressing,magnificent,madame,lazy,glorious,fiancee,bits,visitation,sane,kindness,shoulda,rescued,mattress,lounge,lifted,importantly,glove,enterprises,disappointment,condo,beings,admitting,yelled,waving,spoon,screech,satisfaction,reads,nailed,worm,tick,resting,marvelous,fuss,cortlandt,chased,pockets,luckily,lilith,filing,conversations,consideration,consciousness,worlds,innocence,forehead,aggressive,trailer,slam,quitting,inform,delighted,daylight,danced,confidential,aunts,washing,tossed,spectra,marrow,lined,implying,hatred,grill,corpse,clues,sober,offended,morgue,infected,humanity,distraction,cart,wired,violation,promising,harassment,glue,d'angelo,cursed,brutal,warlocks,wagon,unpleasant,proving,priorities,mustn't,lease,flame,disappearance,depressing,thrill,sitter,ribs,flush,earrings,deadline,corporal,collapsed,update,snapped,smack,melt,figuring,delusional,coulda,burnt,tender,sperm,realise,pork,popped,interrogation,esteem,choosing,undo,pres,prayed,plague,manipulate,insulting,detention,delightful,coffeehouse,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,monsieur,faint,bake,distress,correctly,complaint,blocked,tortured,risking,pointless,handing,dumping,cups,alibi,struggling,shiny,risked,mummy,mint,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,rode,puppet,modeling,memo,irresponsible,humiliation,hiya,freakin,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,pledge,panicked,nursery,louder,jeans,investigator,homecoming,frustrating,buys,busting,buff,sleeve,irony,dope,declare,autopsy,workin,torch,prick,limb,hysterical,goddamnit,fetch,dimension,crowded,clip,climbing,bonding,woah,trusts,negotiate,lethal,iced,fantasies,deeds,bore,babysitter,questioned,outrageous,kiriakis,insulted,grudge,driveway,deserted,definite,beep,wires,suggestions,searched,owed,lend,drunken,demanding,costanza,conviction,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,meals,invitations,haunted,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,manny,fist,spectacular,hostages,heroin,havin,habits,encouraging,consult,burgers,boyfriends,bailed,baggage,watches,troubled,torturing,teasing,sweetest,qualities,postpone,overwhelmed,malkovich,impulse,classy,charging,amazed,policeman,hypocrite,humiliate,hideous,d'ya,costumes,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shrimp,shouting,pressed,nooo,grieving,gladly,fling,eliminate,cereal,aaah,sonofabitch,paralyzed,lotta,locks,guaranteed,dummy,despise,dental,briefing,bluff,batteries,whatta,sounding,servants,presume,handwriting,fainted,dried,allright,acknowledge,whacked,toxic,reliable,quicker,overwhelming,lining,harassing,fatal,endless,dolls,convict,whatcha,unlikely,shutting,positively,overcome,goddam,essence,dose,diagnosis,cured,bully,ahold,yearbook,tempting,shelf,prosecution,pouring,possessed,greedy,wonders,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,evidently,contempt,compromised,cans,weekends,urge,theft,suing,shipment,scissors,responding,proposition,noises,matching,hormones,hail,grandchildren,gently,smashed,sexually,sentimental,nicest,manipulated,intern,handcuffs,framed,errands,entertaining,crib,carriage,barge,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,headaches,float,embrace,corners,whining,sweating,skipped,mountie,motives,listens,cristobel,cleaner,cheerleader,balsom,unnecessary,stunning,scent,quartermaines,pose,montega,loosen,info,hottest,haunt,gracious,forgiving,errand,cakes,blames,abortion,sketch,shifts,plotting,perimeter,pals,mere,mattered,lonigan,interference,eyewitness,enthusiasm,diapers,strongest,shaken,punched,portal,catches,backyard,terrorists,sabotage,organs,needy,cuff,civilization,woof,who'll,prank,obnoxious,mates,hereby,gabby,faked,cellar,whitelighter,void,strangle,sour,muffins,interfering,demonic,clearing,boutique,barrington,terrace,smoked,righty,quack,petey,pact,knot,ketchup,disappearing,cordy,uptight,ticking,terrifying,tease,swamp,secretly,rejection,reflection,realizing,rays,mentally,marone,doubted,deception,congressman,cheesy,toto,stalling,scoop,ribbon,immune,expects,destined,bets,bathing,appreciation,accomplice,wander,shoved,sewer,scroll,retire,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,whoops,volunteered,talents,stinking,remotely,garlic,decency,cord,beds,altogether,uniforms,tremendous,popping,outa,observe,lung,hangs,feelin,dudes,donation,disguise,curb,bites,antique,toothbrush,realistic,predict,landlord,hourglass,hesitate,consolation,babbling,tipped,stranded,smartest,repeating,puke,psst,paycheck,overreacted,macho,juvenile,grocery,freshen,disposal,cuffs,caffeine,vanished,unfinished,ripping,pinch,flattering,expenses,dinners,colleague,ciao,belthazor,attorneys,woulda,whereabouts,waitin,truce,tripped,tasted,steer,poisoning,manipulative,immature,husbands,heel,granddad,delivering,condoms,addict,trashed,raining,pasta,needles,leaning,detector,coolest,batch,appointments,almighty,vegetables,spark,perfection,pains,momma,mole,meow,hairs,getaway,cracking,compliments,behold,verge,tougher,timer,tapped,taped,specialty,snooping,shoots,rendezvous,pentagon,leverage,jeopardize,janitor,grandparents,forbidden,clueless,bidding,ungrateful,unacceptable,tutor,serum,scuse,pajamas,mouths,lure,irrational,doom,cries,beautifully,arresting,approaching,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,jumps,inventory,darlin,committing,banging,asap,worms,violated,vent,traumatic,traced,sweaty,shaft,overboard,insight,healed,grasp,experiencing,crappy,crab,chunk,awww,stain,shack,reacted,pronounce,poured,moms,marriages,jabez,handful,flipped,fireplace,embarrassment,disappears,concussion,bruises,brakes,twisting,swept,summon,splitting,sloppy,settling,reschedule,notch,hooray,grabbing,exquisite,disrespect,thornhart,straw,slapped,shipped,shattered,ruthless,refill,payroll,numb,mourning,manly,hunk,entertain,drift,dreadful,doorstep,confirmation,chops,appreciates,vague,tires,stressful,stashed,stash,sensed,preoccupied,predictable,noticing,madly,gunshot,dozens,dork,confuse,cleaners,charade,chalk,cappuccino,bouquet,amulet,addiction,who've,warming,unlock,satisfy,sacrificed,relaxing,lone,blocking,blend,blankets,addicted,yuck,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,caution,backpack,agreeing,whale,taller,supervisor,sacrifices,phew,ounce,irrelevant,gran,felon,favorites,farther,fade,erased,easiest,convenience,compassionate,cane,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,immunity,hassle,goddamned,frighten,dearly,cease,ambition,wage,unstable,salvage,richer,refusing,raging,pumping,pressuring,mortals,lowlife,intimidated,intentionally,inspire,forgave,devotion,despicable,deciding,dash,comfy,breach,bark,aaaah,switching,swallowed,stove,screamed,scars,russians,pounding,poof,pipes,pawn,legit,invest,farewell,curtains,civilized,caviar,boost,token,superstition,supernatural,sadness,recorder,psyched,motivated,microwave,hallelujah,fraternity,dryer,cocoa,chewing,acceptable,unbelievably,smiled,smelling,simpler,respectable,remarks,khasinau,indication,gutter,grabs,fulfill,flashlight,ellenor,blooded,blink,blessings,beware,uhhh,turf,swings,slips,shovel,shocking,puff,mirrors,locking,heartless,fras,childish,cardiac,utterly,tuscany,ticked,stunned,statesville,sadly,purely,kiddin,jerks,hitch,flirt,fare,equals,dismiss,christening,casket,c'mere,breakup,biting,antibiotics,accusation,abducted,witchcraft,thread,runnin,punching,paramedics,newest,murdering,masks,lawndale,initials,grampa,choking,charms,careless,bushes,buns,bummed,shred,saves,saddle,rethink,regards,precinct,persuade,meds,manipulating,llanfair,leash,hearted,guarantees,fucks,disgrace,deposition,bookstore,boil,vitals,veil,trespassing,sidewalk,sensible,punishing,overtime,optimistic,obsessing,notify,mornin,jeopardy,jaffa,injection,hilarious,desires,confide,cautious,yada,where're,vindictive,vial,teeny,stroll,sittin,scrub,rebuild,posters,ordeal,nuns,intimacy,inheritance,exploded,donate,distracting,despair,crackers,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,platter,napkin,misplaced,merchandise,loony,jinx,heroic,frankenstein,ambitious,syrup,solitary,resemblance,reacting,premature,lavery,flashes,cheque,awright,acquainted,wrapping,untie,salute,realised,priceless,partying,lightly,lifting,kasnoff,insisting,glowing,generator,explosives,cutie,confronted,buts,blouse,ballistic,antidote,analyze,allowance,adjourned,unto,understatement,tucked,touchy,subconscious,screws,sarge,roommates,rambaldi,offend,nerd,knives,irresistible,incapable,hostility,goddammit,fuse,frat,curfew,blackmailed,walkin,starve,sleigh,sarcastic,recess,rebound,pinned,parlor,outfits,livin,heartache,haired,fundraiser,doorman,discreet,dilucca,cracks,considerate,climbed,catering,apophis,zoey,urine,strung,stitches,sordid,sark,protector,phoned,pets,hostess,flaw,flavor,deveraux,consumed,confidentiality,bourbon,straightened,specials,spaghetti,prettier,powerless,playin,playground,paranoia,instantly,havoc,exaggerating,eavesdropping,doughnuts,diversion,deepest,cutest,comb,bela,behaving,anyplace,accessory,workout,translate,stuffing,speeding,slime,royalty,polls,marital,lurking,lottery,imaginary,greetings,fairwinds,elegant,elbow,credibility,credentials,claws,chopped,bridal,bedside,babysitting,witty,unforgivable,underworld,tempt,tabs,sophomore,selfless,secrecy,restless,okey,movin,metaphor,messes,meltdown,lecter,incoming,gasoline,diefenbaker,buckle,admired,adjustment,warmth,throats,seduced,queer,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,wedded,verbal,unpredictable,tuned,stoop,slides,sinking,rigged,plumbing,lingerie,hankey,greed,everwood,elope,dresser,chauffeur,bulletin,bugged,bouncing,temptation,strangest,slammed,sarcasm,pending,packages,orderly,obsessive,murderers,meteor,inconvenience,glimpse,froze,execute,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,testifying,syringe,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,nutty,mentioning,mend,inspiring,impulsive,housekeeper,foam,fingernails,conditioning,baking,whine,thug,starved,sniffing,sedative,programmed,picket,paged,hound,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,choo,assignments,ants,vile,unreasonable,tossing,thanked,steals,souvenir,scratched,psychopath,outs,obstruction,obey,lump,insists,harass,gloat,filth,edgy,didn,coroner,confessing,bruise,betraying,bailing,appealing,adebisi,wrath,wandered,waist,vain,traps,stepfather,poking,obligated,heavenly,dilemma,crazed,contagious,coaster,cheering,bundle,vomit,thingy,speeches,robbing,raft,pumped,pillows,peep,packs,neglected,m'kay,loneliness,intrude,helluva,gardener,forresters,drooling,betcha,vase,supermarket,squat,spitting,rhyme,relieve,receipts,racket,pictured,pause,overdue,motivation,morgendorffer,kidnapper,insect,horns,feminine,eyeballs,dumps,disappointing,crock,convertible,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,suspense,summoned,spiders,reiber,raving,pushy,postponed,ohhhh,noooo,mold,laughter,incompetent,hugging,groceries,drip,communicating,auntie,adios,wraps,wiser,willingly,weirdest,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,prophecy,ledge,justified,insults,hateful,handles,doorway,chatting,buyer,buckaroo,bedrooms,askin,ammo,tutoring,subpoena,scratching,privileges,pager,mart,intriguing,idiotic,grape,enlighten,corrupt,brunch,bridesmaid,barking,applause,acquaintance,wretched,superficial,soak,smoothly,sensing,restraint,posing,pleading,payoff,oprah,nemo,morals,loaf,jumpy,ignorant,herbal,hangin,germs,generosity,flashing,doughnut,clumsy,chocolates,captive,behaved,apologise,vanity,stumbled,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,knots,interviewing,humour,grind,greasy,goons,drastic,coop,comparing,cocky,clearer,bruised,brag,bind,worthwhile,whoop,vanquishing,tabloids,sprung,spotlight,sentencing,racist,provoke,pining,overly,locket,imply,impatient,hovering,hotter,fest,endure,dots,doren,debts,crawled,chained,brit,breaths,weirdo,warmed,wand,troubling,tok'ra,strapped,soaked,skipping,scrambled,rattle,profound,musta,mocking,misunderstand,limousine,kacl,hustle,forensic,enthusiastic,duct,drawers,devastating,conquer,clarify,chores,cheerleaders,cheaper,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,teller,strangled,scheming,ropes,rescuing,rave,postcard,o'reily,morphine,lotion,lads,kidneys,judgement,itch,indefinitely,grenade,glamorous,genetically,freud,discretion,delusions,crate,competent,bakery,argh,ahhhh,wedge,wager,unfit,tripping,torment,superhero,stirring,spinal,sorority,seminar,scenery,rabble,pneumonia,perks,override,ooooh,mija,manslaughter,mailed,lime,lettuce,intimidate,guarded,grieve,grad,frustration,doorbell,chinatown,authentic,arraignment,annulled,allergies,wanta,verify,vegetarian,tighter,telegram,stalk,spared,shoo,satisfying,saddam,requesting,pens,overprotective,obstacles,notified,nasedo,grandchild,genuinely,flushed,fluids,floss,escaping,ditched,cramp,corny,bunk,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,sniff,shakes,salsa,retrieve,reassuring,pumps,neurotic,negotiating,needn't,monitors,millionaire,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,doubting,decaf,biopsy,whiz,voluntarily,ventilator,unpack,unload,toad,spooked,snitch,schillinger,reassure,persuasive,mystical,mysteries,matrimony,mails,jock,headline,explanations,dispatch,curly,cupid,condolences,comrade,cassadines,bulb,bragging,awaits,assaulted,ambush,adolescent,abort,yank,whit,vaguely,undermine,tying,swamped,stabbing,slippers,slash,sincerely,sigh,setback,secondly,rotting,precaution,pcpd,melting,liaison,hots,hooking,headlines,haha,ganz,fury,felicity,fangs,encouragement,earring,dreidel,dory,donut,dictate,decorating,cocktails,bumps,blueberry,believable,backfired,backfire,apron,adjusting,vous,vouch,vitamins,ummm,tattoos,slimy,sibling,shhhh,renting,peculiar,parasite,paddington,marries,mailbox,magically,lovebirds,knocks,informant,exits,drazen,distractions,disconnected,dinosaurs,dashwood,crooked,conveniently,wink,warped,underestimated,tacky,shoving,seizure,reset,pushes,opener,mornings,mash,invent,indulge,horribly,hallucinating,festive,eyebrows,enjoys,desperation,dealers,darkest,daph,boragora,belts,bagel,authorization,auditions,agitated,wishful,wimp,vanish,unbearable,tonic,suffice,suction,slaying,safest,rocking,relive,puttin,prettiest,noisy,newlyweds,nauseous,misguided,mildly,midst,liable,judgmental,indy,hunted,givin,fascinated,elephants,dislike,deluded,decorate,crummy,contractions,carve,bottled,bonded,bahamas,unavailable,twenties,trustworthy,surgeons,stupidity,skies,remorse,preferably,pies,nausea,napkins,mule,mourn,melted,mashed,inherit,greatness,golly,excused,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,chooses,checkup,boredom,bandages,alarms,windshield,who're,whaddya,transparent,surprisingly,sunglasses,slit,roar,reade,prognosis,probe,pitiful,persistent,peas,nosy,nagging,morons,masterpiece,martinis,limbo,liars,irritating,inclined,hump,hoynes,fiasco,eatin,cubans,concentrating,colorful,clam,cider,brochure,barto,bargaining,wiggle,welcoming,weighing,vanquished,stains,sooo,snacks,smear,sire,resentment,psychologist,pint,overhear,morality,landingham,kisser,hoot,holling,handshake,grilled,formality,elevators,depths,confirms,boathouse,accidental,westbridge,wacko,ulterior,thugs,thighs,tangled,stirred,snag,sling,sleaze,rumour,ripe,remarried,puddle,pins,perceptive,miraculous,longing,lockup,librarian,impressions,immoral,hypothetically,guarding,gourmet,gabe,faxed,extortion,downright,digest,cranberry,bygones,buzzing,burying,bikes,weary,taping,takeout,sweeping,stepmother,stale,senor,seaborn,pros,pepperoni,newborn,ludicrous,injected,geeks,forged,faults,drue,dire,dief,desi,deceiving,caterer,calmed,budge,ankles,vending,typing,tribbiani,there're,squared,snowing,shades,sexist,rewrite,regretted,raises,picky,orphan,mural,misjudged,miscarriage,memorize,leaking,jitters,invade,interruption,illegally,handicapped,glitch,gittes,finer,distraught,dispose,dishonest,digs,dads,cruelty,circling,canceling,butterflies,belongings,barbrady,amusement,alias,zombies,where've,unborn,swearing,stables,squeezed,sensational,resisting,radioactive,questionable,privileged,portofino,owning,overlook,orson,oddly,interrogate,imperative,impeccable,hurtful,hors,heap,graders,glance,disgust,devious,destruct,crazier,countdown,chump,cheeseburger,burglar,berries,ballroom,assumptions,annoyed,allergy,admirer,admirable,activate,underpants,twit,tack,strokes,stool,sham,scrap,retarded,resourceful,remarkably,refresh,pressured,precautions,pointy,nightclub,mustache,maui,lace,hunh,hubby,flare,dont,dokey,dangerously,crushing,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,amazingly,alas,what've,toilets,tacos,stairwell,spirited,sewing,rubbed,punches,protects,nuisance,motherfuckers,mingle,kynaston,knack,kinkle,impose,gullible,godmother,funniest,friggin,folding,fashions,eater,dysfunctional,drool,dripping,ditto,cruising,criticize,conceive,clone,cedars,caliber,brighter,blinded,birthdays,banquet,anticipate,annoy,whim,whichever,volatile,veto,vested,shroud,rests,reindeer,quarantine,pleases,painless,orphans,orphanage,offence,obliged,negotiation,narcotics,mistletoe,meddling,manifest,lookit,lilah,intrigued,injustice,homicidal,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,cheerful,buyers,brownies,beverage,basics,arvin,weighs,upsets,unethical,swollen,sweaters,stupidest,sensation,scalpel,props,prescribed,pompous,objections,mushrooms,mulwray,manipulation,lured,internship,insignificant,inmate,incentive,fulfilled,disagreement,crypt,cornered,copied,brightest,beethoven,attendant,amaze,yogurt,wyndemere,vocabulary,tulsa,tactic,stuffy,respirator,pretends,polygraph,pennies,ordinarily,olives,necks,morally,martyr,leftovers,joints,hopping,homey,hints,heartbroken,forge,florist,firsthand,fiend,dandy,crippled,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,wiring,wench,weaknesses,volunteering,violating,unlocked,tummy,surrogate,subid,stray,startle,specifics,slowing,scoot,robbers,rightful,richest,qfxmjrie,puffs,pierced,pencils,paralysis,makeover,luncheon,linksynergy,jerky,jacuzzi,hitched,hangover,fracture,flock,firemen,disgusted,darned,clams,borrowing,banged,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,retro,quits,pegged,painfully,paging,omelet,memorized,lawfully,jackets,intercept,ingredient,grownup,glued,fulfilling,enchanted,delusion,daring,compelling,carton,bridesmaids,bribed,boiling,bathrooms,bandage,awaiting,assign,arrogance,antiques,ainsley,turkeys,trashing,stockings,stalked,stabilized,skates,sedated,robes,respecting,psyche,presumptuous,prejudice,paragraph,mocha,mints,mating,mantan,lorne,loads,listener,itinerary,hepatitis,heave,guesses,fading,examining,dumbest,dishwasher,deceive,cunning,cripple,convictions,confided,compulsive,compromising,burglary,bumpy,brainwashed,benes,arnie,affirmative,adrenaline,adamant,watchin,waitresses,transgenic,toughest,tainted,surround,stormed,spree,spilling,spectacle,soaking,shreds,sewers,severed,scarce,scamming,scalp,rewind,rehearsing,pretentious,potions,overrated,obstacle,nerds,meems,mcmurphy,maternity,maneuver,loathe,fertility,eloping,ecstatic,ecstasy,divorcing,dignan,costing,clubhouse,clocks,candid,bursting,breather,braces,bending,arsonist,adored,absorb,valiant,uphold,unarmed,topolsky,thrilling,thigh,terminate,sustain,spaceship,snore,sneeze,smuggling,salty,quaint,patronize,patio,morbid,mamma,kettle,joyous,invincible,interpret,insecurities,impulses,illusions,holed,exploit,drivin,defenseless,dedicate,cradle,coupon,countless,conjure,cardboard,booking,backseat,accomplishment,wordsworth,wisely,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,scumbag,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,prospects,pronto,posse,polling,pedestal,palms,muddy,morty,microscope,merci,lecturing,inject,incriminate,hygiene,grapefruit,gazebo,funnier,cuter,bossy,booby,aides,zende,winthrop,warrants,valentines,undressed,underage,truthfully,tampered,suffers,speechless,sparkling,sidelines,shrek,railing,puberty,pesky,outrage,outdoors,motions,moods,lunches,litter,kidnappers,itching,intuition,imitation,humility,hassling,gallons,drugstore,dosage,disrupt,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,circumstantial,chimney,blinking,biscuits,admiring,weeping,triad,trashy,soothing,slumber,slayers,skirts,siren,shindig,sentiment,rosco,riddance,quaid,purity,proceeding,pretzels,panicking,mckechnie,lovin,leaked,intruding,impersonating,ignorance,hamburgers,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,deceived,creeping,craziest,corpses,conned,coincidences,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,zillion,watergate,wallpaper,telesave,sympathize,sweeter,startin,spades,sodas,snowed,sleepover,signor,seein,retainer,restroom,rested,repercussions,reliving,reconcile,prevail,preaching,overreact,o'neil,noose,moustache,manicure,maids,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,exhausting,everytime,disregard,cling,chevron,chaperone,blinding,bitty,beads,battling,badgering,anticipation,upstanding,unprofessional,unhealthy,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,shooters,senseless,rewarding,propane,preposterous,pigeons,pastry,overhearing,obscene,negotiable,loner,jogging,itchy,insinuating,insides,hospitality,hormone,hearst,forthcoming,fists,fifties,etiquette,endings,destroys,despises,deprived,cuddy,crust,cloak,circumstance,chewed,casserole,bidder,bearer,artoo,applaud,appalling,vowed,virgins,vigilante,undone,throttle,testosterone,tailor,symptom,swoop,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,refund,reclaim,raoul,puzzles,purposely,punks,prosecuted,plaid,picturing,pickin,parasites,mysteriously,multiply,mascara,jukebox,interruptions,gunfire,furnace,elbows,duplicate,drapes,deliberate,decoy,cryptic,coupla,condemn,complicate,colossal,clerks,clarity,brushed,banished,argon,alarmed,worships,versa,uncanny,technicality,sundae,stumble,stripping,shuts,schmuck,satin,saliva,robber,relentless,reconnect,recipes,rearrange,rainy,psychiatrists,policemen,plunge,plugged,patched,overload,o'malley,mindless,menus,lullaby,lotte,leavin,killin,karinsky,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,dread,degrassi,dealings,dangers,cushion,bowel,barged,abide,abandoning,wonderfully,wait'll,violate,suicidal,stayin,sorted,slamming,sketchy,shoplifting,raiser,quizmaster,prefers,needless,motherhood,momentarily,migraine,lifts,leukemia,leftover,keepin,hinks,hellhole,gowns,goodies,gallon,futures,entertained,eighties,conspiring,cheery,benign,apiece,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unidentified,trivial,transcripts,textbook,supervise,superstitious,stricken,stimulating,spielberg,slices,shelves,scratches,sabotaged,retrieval,repressed,rejecting,quickie,ponies,peeking,outraged,o'connell,moping,moaning,mausoleum,licked,kovich,klutz,interrogating,interfered,insulin,infested,incompetence,hyper,horrified,handedly,gekko,fraid,fractured,examiner,eloped,disoriented,dashing,crashdown,courier,cockroach,chipped,brushing,bombed,bolts,baths,baptized,astronaut,assurance,anemia,abuela,abiding,withholding,weave,wearin,weaker,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,scram,roasted,roaming,riviera,respectfully,repulsive,psychiatry,provoked,penitentiary,painkillers,ninotchka,mitzvah,milligrams,midge,marshmallows,looky,lapse,kubelik,intellect,improvise,implant,goa'ulds,giddy,geniuses,fruitcake,footing,fightin,drinkin,doork,detour,cuddle,crashes,combo,colonnade,cheats,cetera,bailiff,auditioning,assed,amused,alienate,aiding,aching,unwanted,topless,tongues,tiniest,superiors,soften,sheldrake,rawley,raisins,presses,plaster,nessa,narrowed,minions,merciful,lawsuits,intimidating,infirmary,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foolproof,folder,flattery,fingertips,exterminator,explodes,eccentric,dodging,disguised,crave,constructive,concealed,compartment,chute,chinpokomon,bodily,astronauts,alimony,accustomed,abdominal,wrinkle,wallow,valium,untrue,uncover,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,talker,succubus,smarts,sliding,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ratted,rationally,provenance,phonse,perky,pedal,overdose,nasal,nanites,mushy,movers,missus,midterm,merits,melodramatic,manure,knitting,invading,interpol,incapacitated,hotline,hauling,gunpoint,grail,ganza,framing,flannel,faded,eavesdrop,desserts,calories,breathtaking,bleak,blacked,batter,aggravated,yanked,wigand,whoah,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stared,slapping,sincerity,siding,shenanigans,shacking,sappy,samaritan,poorer,politely,paste,oysters,overruled,nightcap,mosquito,millimeter,merrier,manhood,lucked,kilos,ignition,hauled,harmed,goodwill,freshmen,fenmore,fasten,farce,exploding,erratic,drunks,ditching,d'artagnan,cramped,contacting,closets,clientele,chimp,bargained,arranging,anesthesia,amuse,altering,afternoons,accountable,abetting,wolek,waved,uneasy,toddy,tattooed,spauldings,sliced,sirens,schibetta,scatter,rinse,remedy,redemption,pleasures,optimism,oblige,mmmmm,masked,malicious,mailing,kosher,kiddies,judas,isolate,insecurity,incidentally,heals,headlights,growl,grilling,glazed,flunk,floats,fiery,fairness,exercising,excellency,disclosure,cupboard,counterfeit,condescending,conclusive,clicked,cleans,cholesterol,cashed,broccoli,brats,blueprints,blindfold,billing,attach,appalled,alrighty,wynant,unsolved,unreliable,toots,tighten,sweatshirt,steinbrenner,steamy,spouse,sonogram,slots,sleepless,shines,retaliate,rephrase,redeem,rambling,quilt,quarrel,prying,proverbial,priced,prescribe,prepped,pranks,possessive,plaintiff,pediatrics,overlooked,outcast,nightgown,mumbo,mediocre,mademoiselle,lunchtime,lifesaver,leaned,lambs,interns,hounding,hellmouth,hahaha,goner,ghoul,gardening,frenzy,foyer,extras,exaggerate,everlasting,enlightened,dialed,devote,deceitful,d'oeuvres,cosmetic,contaminated,conspired,conning,cavern,carving,butting,boiled,blurry,babysit,ascension,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,vacations,upfront,unresolved,tampering,stockholders,snaps,sleepwalking,shrunk,sermon,seduction,scams,revolve,phenomenal,patrolling,paranormal,ounces,omigod,nightfall,lashing,innocents,infierno,incision,humming,haunts,gloss,gloating,frannie,fetal,feeny,entrapment,discomfort,detonator,dependable,concede,complication,commotion,commence,chulak,caucasian,casually,brainer,bolie,ballpark,anwar,analyzing,accommodations,youse,wring,wallowing,transgenics,thrive,tedious,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,shattering,shabby,seams,scrawny,revoked,residue,reeks,recite,ranting,quoting,predicament,plugs,pinpoint,petrified,pathological,passports,oughtta,nighter,navigate,kippie,intrigue,intentional,insufferable,hunky,how've,horrifying,hearty,hamptons,grazie,funerals,forks,fetched,excruciating,enjoyable,endanger,dumber,drying,diabolical,crossword,corry,comprehend,clipped,classmates,candlelight,brutally,brutality,boarded,bathrobe,authorize,assemble,aerobics,wholesome,whiff,vermin,trophies,trait,tragically,toying,testy,tasteful,stocked,spinach,sipping,sidetracked,scrubbing,scraping,sanctity,robberies,ridin,retribution,refrain,realities,radiant,protesting,projector,plutonium,payin,parting,o'reilly,nooooo,motherfucking,measly,manic,lalita,juggling,jerking,intro,inevitably,hypnosis,huddle,horrendous,hobbies,heartfelt,harlin,hairdresser,gonorrhea,fussing,furtwangler,fleeting,flawless,flashed,fetus,eulogy,distinctly,disrespectful,denies,crossbow,cregg,crabs,cowardly,contraction,contingency,confirming,condone,coffins,cleansing,cheesecake,certainty,cages,c'est,briefed,bravest,bosom,boils,binoculars,bachelorette,appetizer,ambushed,alerted,woozy,withhold,vulgar,utmost,unleashed,unholy,unhappiness,unconditional,typewriter,typed,twists,supermodel,subpoenaed,stringing,skeptical,schoolgirl,romantically,rocked,revoir,reopen,puncture,preach,polished,planetarium,penicillin,peacefully,nurturing,more'n,mmhmm,midgets,marklar,lodged,lifeline,jellyfish,infiltrate,hutch,horseback,heist,gents,frickin,freezes,forfeit,flakes,flair,fathered,eternally,epiphany,disgruntled,discouraged,delinquent,decipher,danvers,cubes,credible,coping,chills,cherished,catastrophe,bombshell,birthright,billionaire,ample,affections,admiration,abbotts,whatnot,watering,vinegar,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,timeless,thump,thermometer,theoretically,tapping,tagged,swung,stares,spiked,solves,smuggle,scarier,saucer,quitter,prudent,powdered,poked,pointers,peril,penetrate,penance,opium,nudge,nostrils,neurological,mockery,mobster,medically,loudly,insights,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,gloom,freshly,francs,flunked,flawed,emptiness,drugging,dozer,derevko,deprive,deodorant,cryin,crocodile,coloring,colder,cognac,clocked,clippings,charades,chanting,certifiable,caterers,brute,brochures,botched,blinders,bitchin,banter,woken,ulcer,tread,thankfully,swine,swimsuit,swans,stressing,steaming,stamped,stabilize,squirm,snooze,shuffle,shredded,seafood,scratchy,savor,sadistic,rhetorical,revlon,realist,prosecuting,prophecies,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,muster,meningitis,matron,lockers,letterman,legged,indictment,hypnotized,housekeeping,hopelessly,hallucinations,grader,goldilocks,girly,flask,envelopes,downside,doves,dissolve,discourage,disapprove,diabetic,deliveries,decorator,crossfire,criminally,containment,comrades,complimentary,chatter,catchy,cashier,cartel,caribou,cardiologist,brawl,booted,barbershop,aryan,angst,administer,zellie,wreak,whistles,vandalism,vamps,uterus,upstate,unstoppable,understudy,tristin,transcript,tranquilizer,toxins,tonsils,stempel,spotting,spectator,spatula,softer,snotty,slinging,showered,sexiest,sensual,sadder,rimbaud,restrain,resilient,remission,reinstate,rehash,recollection,rabies,popsicle,plausible,pediatric,patronizing,ostrich,ortolani,oooooh,omelette,mistrial,marseilles,loophole,laughin,kevvy,irritated,infidelity,hypothermia,horrific,groupie,grinding,graceful,goodspeed,gestures,frantic,extradition,echelon,disks,dawnie,dared,damsel,curled,collateral,collage,chant,calculating,bumping,bribes,boardwalk,blinds,blindly,bleeds,bickering,beasts,backside,avenge,apprehended,anguish,abusing,youthful,yells,yanking,whomever,when'd,vomiting,vengeful,unpacking,unfamiliar,undying,tumble,trolls,treacherous,tipping,tantrum,tanked,summons,straps,stomped,stinkin,stings,staked,squirrels,sprinkles,speculate,sorting,skinned,sicko,sicker,shootin,shatter,seeya,schnapps,s'posed,ronee,respectful,regroup,regretting,reeling,reckoned,ramifications,puddy,projections,preschool,plissken,platonic,permalash,outdone,outburst,mutants,mugging,misfortune,miserably,miraculously,medications,margaritas,manpower,lovemaking,logically,leeches,latrine,kneel,inflict,impostor,hypocrisy,hippies,heterosexual,heightened,hecuba,healer,gunned,grooming,groin,gooey,gloomy,frying,friendships,fredo,firepower,fathom,exhaustion,evils,endeavor,eggnog,dreaded,d'arcy,crotch,coughing,coronary,cookin,consummate,congrats,companionship,caved,caspar,bulletproof,brilliance,breakin,brash,blasting,aloud,airtight,advising,advertise,adultery,aches,wronged,upbeat,trillion,thingies,tending,tarts,surreal,specs,specialize,spade,shrew,shaping,selves,schoolwork,roomie,recuperating,rabid,quart,provocative,proudly,pretenses,prenatal,pharmaceuticals,pacing,overworked,originals,nicotine,murderous,mileage,mayonnaise,massages,losin,interrogated,injunction,impartial,homing,heartbreaker,hacks,glands,giver,fraizh,flips,flaunt,englishman,electrocuted,dusting,ducking,drifted,donating,cylon,crutches,crates,cowards,comfortably,chummy,chitchat,childbirth,businesswoman,brood,blatant,bethy,barring,bagged,awakened,asbestos,airplanes,worshipped,winnings,why're,visualize,unprotected,unleash,trays,thicker,therapists,takeoff,streisand,storeroom,stethoscope,stacked,spiteful,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,ruptured,roaring,receptionist,recap,raditch,radiator,pushover,plastered,pharmacist,perverse,perpetrator,ornament,ointment,nineties,napping,nannies,mousse,moors,momentary,misunderstandings,manipulator,malfunction,laced,kivar,kickin,infuriating,impressionable,holdup,hires,hesitated,headphones,hammering,groundwork,grotesque,graces,gauze,gangsters,frivolous,freeing,fours,forwarding,ferrars,faulty,fantasizing,extracurricular,empathy,divorces,detonate,depraved,demeaning,deadlines,dalai,cursing,cufflink,crows,coupons,comforted,claustrophobic,casinos,camped,busboy,bluth,bennetts,baskets,attacker,aplastic,angrier,affectionate,zapped,wormhole,weaken,unrealistic,unravel,unimportant,unforgettable,twain,suspend,superbowl,stutter,stewardess,stepson,standin,spandex,souvenirs,sociopath,skeletons,shivering,sexier,selfishness,scrapbook,ritalin,ribbons,reunite,remarry,relaxation,rattling,rapist,psychosis,prepping,poses,pleasing,pisses,piling,persecuted,padded,operatives,negotiator,natty,menopause,mennihan,martimmys,loyalties,laynie,lando,justifies,intimately,inexperienced,impotent,immortality,horrors,hooky,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,ferragamo,feeble,eyesight,explosions,experimenting,enchanting,doubtful,dizziness,dismantle,detectors,deserving,defective,dangling,dancin,crumble,creamed,cramping,conceal,clockwork,chrissakes,chrissake,chopping,cabinets,brooding,bonfire,blurt,bloated,blackmailer,beforehand,bathed,bathe,barcode,banish,badges,babble,await,attentive,aroused,antibodies,animosity,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vigilant,upbringing,unselfish,uncles,trendy,trajectory,striped,stamina,stalled,staking,stacks,spoils,snuff,snooty,snide,shrinking,senora,secretaries,scoundrel,saline,salads,rundown,riddles,relapse,recommending,raspberry,plight,pecan,pantry,overslept,ornaments,niner,negligent,negligence,nailing,mucho,mouthed,monstrous,malpractice,lowly,loitering,logged,lingering,lettin,lattes,kamal,juror,jillefsky,jacked,irritate,intrusion,insatiable,infect,impromptu,icing,hmmmm,hefty,gasket,frightens,flapping,firstborn,faucet,estranged,envious,dopey,doesn,disposition,disposable,disappointments,dipped,dignified,deceit,dealership,deadbeat,curses,coven,counselors,concierge,clutches,casbah,callous,cahoots,brotherly,britches,brides,bethie,beige,autographed,attendants,attaboy,astonishing,appreciative,antibiotic,aneurysm,afterlife,affidavit,zoning,whats,whaddaya,vasectomy,unsuspecting,toula,topanga,tonio,toasted,tiring,terrorized,tenderness,tailing,sweats,suffocated,sucky,subconsciously,starvin,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,seventies,sedate,scented,sandals,rollers,retraction,resigning,recuperate,receptive,racketeering,queasy,provoking,priors,prerogative,premed,pinched,pendant,outsiders,orbing,opportunist,olanov,neurologist,nanobot,mommies,molested,misread,mannered,laundromat,intercom,inspect,insanely,infatuation,indulgent,indiscretion,inconsiderate,hurrah,howling,herpes,hasta,harassed,hanukkah,groveling,groosalug,gander,galactica,futile,fridays,flier,fixes,exploiting,exorcism,evasive,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,disobeyed,disneyland,disable,dehydrated,contemplating,coconuts,cockroaches,clogged,chilling,chaperon,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bluepoint,appetizers,appendix,antics,anointed,analogy,almonds,yammering,winch,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,travesty,transfusion,trainee,towelie,tiresome,straightening,staggering,sonar,socializing,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,ridiculously,ridicule,rents,reconciled,radios,publicist,pubes,prune,prude,precrime,postponing,pluck,perish,peppermint,peeled,overdo,nutshell,nostalgic,mulan,mouthing,mistook,meddle,maybourne,martimmy,lobotomy,livelihood,lippman,likeness,kindest,kaffee,jocks,jerked,jeopardizing,jazzed,insured,inquisition,inhale,ingenious,holier,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,goofing,godson,glare,finesse,figuratively,ferrie,endangerment,dreading,dozed,dorky,dmitri,divert,discredit,dialing,cufflinks,crutch,craps,corrupted,cocoon,cleavage,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,ballistics,astute,arroway,adventurous,adoptive,addicts,addictive,yadda,whitelighters,wematanye,weeds,wedlock,wallets,vulnerability,vroom,vents,upped,unsettling,unharmed,trippin,trifle,tracing,tormenting,thats,syphilis,subtext,stickin,spices,sores,smacked,slumming,sinks,signore,shitting,shameful,shacked,septic,seedy,righteousness,relish,rectify,ravishing,quickest,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,outnumbered,oregano,offender,nukes,nosed,nighty,nifty,mounties,motivate,moons,misinterpreted,mercenary,mentality,marsellus,lupus,lumbar,lovesick,lobsters,leaky,laundering,latch,jafar,instinctively,inspires,indoors,incarcerated,hundredth,handkerchief,gynecologist,guittierez,groundhog,grinning,goodbyes,geese,fullest,eyelashes,eyelash,enquirer,endlessly,elusive,disarm,detest,deluding,dangle,cotillion,corsage,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,cheeseburgers,chardonnay,celery,campfire,calming,burritos,brundle,broflovski,brighten,borderline,blinked,bling,beauties,bauers,battered,articulate,alienated,ahhhhh,agamemnon,accountants,y'see,wrongful,wrapper,workaholic,winnebago,whispered,warts,vacate,unworthy,unanswered,tonane,tolerated,throwin,throbbing,thrills,thorns,thereof,there've,tarot,sunscreen,stretcher,stereotype,soggy,sobbing,sizable,sightings,shucks,shrapnel,sever,senile,seaboard,scorned,saver,rebellious,rained,putty,prenup,pores,pinching,pertinent,peeping,paints,ovulating,opposites,occult,nutcracker,nutcase,newsstand,newfound,mocked,midterms,marshmallow,marbury,maclaren,leans,krudski,knowingly,keycard,junkies,juilliard,jolinar,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,incubator,illustrious,hunsecker,houseguest,homosexuals,homeroom,hernia,harming,handgun,hallways,hallucination,gunshots,groupies,groggy,goiter,gingerbread,giggling,frigging,fledged,fedex,fairies,exchanging,exaggeration,esteemed,enlist,drags,dispense,disloyal,disconnect,desks,dentists,delacroix,degenerate,daydreaming,cushions,cuddly,corroborate,complexion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,benefactor,ballgame,baiting,backstabbing,artifact,airspace,adversary,actin,accuses,accelerant,abundantly,abstinence,zissou,zandt,yapping,witchy,willows,whadaya,vilandra,veiled,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,toasting,tingling,tents,tempered,sulking,stunk,sponges,spills,softly,snipers,scourge,rooftop,riana,revolting,revisit,refreshments,redecorating,recapture,raysy,pretense,prejudiced,precogs,pouting,poofs,pimple,piles,pediatrician,padre,packets,paces,orvelle,oblivious,objectivity,nighttime,nervosa,mexicans,meurice,melts,matchmaker,maeby,lugosi,lipnik,leprechaun,kissy,kafka,introductions,intestines,inspirational,insightful,inseparable,injections,inadvertently,hussy,huckabees,hittin,hemorrhaging,headin,haystack,hallowed,grudges,granilith,grandkids,grading,gracefully,godsend,gobbles,fragrance,fliers,finchley,farts,eyewitnesses,expendable,existential,dorms,delaying,degrading,deduction,darlings,danes,cylons,counsellor,contraire,consciously,conjuring,congratulating,cokes,buffay,brooch,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,aptitude,amish,amazes,abomination,worldly,whispers,whadda,wayward,wailing,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,trite,transvestite,toupee,timid,timers,terrorizing,swana,stumped,strolling,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,spits,spins,soaps,sentiments,scramble,scone,rooftops,retract,reflexes,rawdon,ragged,quirky,quantico,psychologically,prodigal,pounce,potty,pleasantries,pints,petting,perceive,onstage,notwithstanding,nibble,newmans,neutralize,mutilated,millionaires,mayflower,masquerade,mangy,macreedy,lunatics,lovable,locating,limping,lasagna,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,incantation,hysteria,hypnotize,humping,happenin,griet,grasping,glorified,ganging,g'night,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fainting,eyebrow,exonerated,ether,electrician,egotistical,earthly,dusted,dignify,detonation,debrief,dazzling,dan'l,damnedest,daisies,crushes,crucify,contraband,confronting,collapsing,cocked,clicks,cliche,circled,chandelier,carburetor,callers,broads,breathes,bloodshed,blindsided,blabbing,bialystock,bashing,ballerina,aviva,arteries,anomaly,airstrip,agonizing,adjourn,aaaaa,yearning,wrecker,witnessing,whence,warhead,unsure,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,toddler,tiptoe,threesome,thirties,thermostat,swipe,surgically,subtlety,stung,stumbling,stubs,stride,strangling,sprayed,socket,smuggled,showering,shhhhh,sabotaging,rumson,rounding,risotto,repairman,rehearsed,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,prowl,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,peeked,peddle,panting,overweight,overrun,outing,outgrown,obsess,nursed,nodding,negativity,negatives,musketeers,mugger,motorcade,merrily,matured,masquerading,marvellous,maniacs,lovey,louse,linger,lilies,lawful,kudos,knuckle,juices,judgments,itches,intolerable,intermission,inept,incarceration,implication,imaginative,huckleberry,holster,heartburn,gunna,groomed,graciously,fulfillment,fugitives,forsaking,forgives,foreseeable,flavors,flares,fixation,fickle,fantasize,famished,fades,expiration,exclamation,erasing,eiffel,eerie,earful,duped,dulles,dissing,dissect,dispenser,dilated,detergent,desdemona,debriefing,damper,curing,crispina,crackpot,courting,cordial,conflicted,comprehension,commie,cleanup,chiropractor,charmer,chariot,cauldron,catatonic,bullied,buckets,brilliantly,breathed,booths,boardroom,blowout,blindness,blazing,biologically,bibles,biased,beseech,barbaric,balraj,audacity,anticipating,alcoholics,airhead,agendas,admittedly,absolution,youre,yippee,wittlesey,withheld,willful,whammy,weakest,washes,virtuous,videotapes,vials,unplugged,unpacked,unfairly,turbulence,tumbling,tricking,tremendously,traitors,torches,tinga,thyroid,teased,tawdry,taker,sympathies,swiped,sundaes,suave,strut,stepdad,spewing,spasm,socialize,slither,simulator,shutters,shrewd,shocks,semantics,schizophrenic,scans,savages,rya'c,runny,ruckus,royally,roadblocks,rewriting,revoke,repent,redecorate,recovers,recourse,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,problemo,praises,pouch,postcards,pooped,poised,piled,phoney,phobia,patching,parenthood,pardner,oozing,ohhhhh,numbing,nostril,nosey,neatly,nappa,nameless,mortuary,moronic,modesty,midwife,mcclane,matuka,maitre,lumps,lucid,loosened,loins,lawnmower,lamotta,kroehner,jinxy,jessep,jamming,jailhouse,jacking,intruders,inhuman,infatuated,indigestion,implore,implanted,hormonal,hoboken,hillbilly,heartwarming,headway,hatched,hartmans,harping,grapevine,gnome,forties,flyin,flirted,fingernail,exhilarating,enjoyment,embark,dumper,dubious,drell,docking,disillusioned,dishonor,disbarred,dicey,custodial,counterproductive,corned,cords,contemplate,concur,conceivable,cobblepot,chickened,checkout,carpe,cap'n,campers,buyin,bullies,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,beeped,bearable,autographs,alarming,wretch,wimps,widower,whirlwind,whirl,warms,vandelay,unveiling,undoing,unbecoming,turnaround,touche,togetherness,tickles,ticker,teensy,taunt,sweethearts,stitched,standpoint,staffers,spotless,soothe,smothered,sickening,shouted,shepherds,shawl,seriousness,schooled,schoolboy,s'mores,roped,reminders,raggedy,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,ohmigod,nosing,nicked,neanderthal,mosquitoes,mortified,milky,messin,mecha,markinson,marivellas,mannequin,manderley,madder,macready,lookie,locusts,lifetimes,lanna,lakhi,kholi,impersonate,hyperdrive,horrid,hopin,hogging,hearsay,harpy,harboring,hairdo,hafta,grasshopper,gobble,gatehouse,foosball,floozy,fished,firewood,finalize,felons,euphemism,entourage,elitist,elegance,drokken,drier,dredge,dossier,diseased,diarrhea,diagnose,despised,defuse,d'amour,contesting,conserve,conscientious,conjured,collars,clogs,chenille,chatty,chamomile,casing,calculator,brittle,breached,blurted,birthing,bikinis,astounding,assaulting,aroma,appliance,antsy,amnio,alienating,aliases,adolescence,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,unwelcome,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,ticks,tangible,tagging,swallowing,superheroes,studs,strep,stowed,stomping,steffy,sprain,spouting,sponsoring,sneezing,smeared,slink,shakin,sewed,seatbelt,scariest,scammed,sanctimonious,roasting,rightly,retinal,rethinking,resented,reruns,remover,racks,purest,progressing,presidente,preeclampsia,postponement,portals,poppa,pliers,pinning,pelvic,pampered,padding,overjoyed,ooooo,one'll,octavius,nonono,nicknames,neurosurgeon,narrows,misled,mislead,mishap,milltown,milking,meticulous,mediocrity,meatballs,machete,lurch,layin,knockin,khruschev,jurors,jumpin,jugular,jeweler,intellectually,inquiries,indulging,indestructible,indebted,imitate,ignores,hyperventilating,hyenas,hurrying,hermano,hellish,heheh,harshly,handout,grunemann,glances,giveaway,getup,gerome,furthest,frosting,frail,forwarded,forceful,flavored,flammable,flaky,fingered,fatherly,ethic,embezzlement,duffel,dotted,distressed,disobey,disappearances,dinky,diminish,diaphragm,deuces,creme,courteous,comforts,coerced,clots,clarification,chunks,chickie,chases,chaperoning,cartons,caper,calves,caged,bustin,bulging,bringin,boomhauer,blowin,blindfolded,biscotti,ballplayer,bagging,auster,assurances,aschen,arraigned,anonymity,alters,albatross,agreeable,adoring,abduct,wolfi,weirded,watchers,washroom,warheads,vincennes,urgency,understandably,uncomplicated,uhhhh,twitching,treadmill,thermos,tenorman,tangle,talkative,swarm,surrendering,summoning,strive,stilts,stickers,squashed,spraying,sparring,soaring,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,sharper,shamed,sadist,rydell,rusik,roulette,resumes,respiration,recount,reacts,purgatory,princesses,presentable,ponytail,plotted,pinot,pigtails,phillippe,peddling,paroled,orbed,offends,o'hara,moonlit,minefield,metaphors,malignant,mainframe,magicks,maggots,maclaine,loathing,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jakov,invoke,infantile,inadmissible,horoscope,hinting,hideaway,hesitating,heddy,heckles,hairline,gripe,gratifying,governess,goebbels,freddo,foresee,fascination,exemplary,executioner,etcetera,escorts,endearing,eaters,earplugs,draped,disrupting,disagrees,dimes,devastate,detain,depositions,delicacy,darklighter,cynicism,cyanide,cutters,cronus,continuance,conquering,confiding,compartments,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,buttle,burdened,bruenell,broomstick,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,bellboy,beaucoup,barkeep,awaken,astray,assailant,appease,aphrodisiac,alleys,yesss,wrecks,woodpecker,wondrous,wimpy,willpower,wheeling,weepy,waxing,waive,videotaped,veritable,untouched,unlisted,unfounded,unforeseen,twinge,triggers,traipsing,toxin,tombstone,thumping,therein,testicles,telephones,tarmac,talby,tackled,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,snipe,snagged,skimming,siddown,showroom,shovels,shotguns,shoelaces,shitload,shellfish,sharpest,shadowy,seizing,scrounge,scapegoat,sayonara,saddled,rummaging,roomful,renounce,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,practising,pours,poolhouse,poltergeist,pocketbook,plainly,picnics,pesto,pawing,passageway,partied,oneself,numero,nostalgia,nitwit,neuro,mixer,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,ingested,indignation,inconceivable,imposition,impersonal,imbecile,huddled,housewarming,horizons,homicides,hiccups,hearse,hardened,gushing,gushie,greased,goddamit,freelancer,forging,fondue,flustered,flung,flinch,flicker,fixin,festivus,fertilizer,farted,faggots,exonerate,evict,enormously,encrypted,emdash,embracing,duress,dupres,dowser,doormat,disfigured,disciplined,dibbs,depository,deathbed,dazzled,cuttin,cures,crowding,crepe,crammed,copycat,contradict,confidant,condemning,conceited,commute,comatose,clapping,circumference,chuppah,chore,choksondik,chestnuts,briault,bottomless,bonnet,blokes,berluti,beret,beggars,bankroll,bania,athos,arsenic,apperantly,ahhhhhh,afloat,accents,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,wisest,wipes,wield,whyn't,weirdos,wednesdays,vicksburg,upchuck,untraceable,unsupervised,unpleasantness,unhook,unconscionable,uncalled,trappings,tragedies,townie,thurgood,things'll,thine,tetanus,terrorize,temptations,tanning,tampons,swarming,straitjacket,steroid,startling,starry,squander,speculating,sollozzo,sneaked,slugs,skedaddle,sinker,silky,shortcomings,sellin,seasoned,scrubbed,screwup,scrapes,scarves,sandbox,salesmen,rooming,romances,revere,reproach,reprieve,rearranging,ravine,rationalize,raffle,punchy,psychobabble,provocation,profoundly,prescriptions,preferable,polishing,poached,pledges,pirelli,perverts,oversized,overdressed,outdid,nuptials,nefarious,mouthpiece,motels,mopping,mongrel,missin,metaphorically,mertin,memos,melodrama,melancholy,measles,meaner,mantel,maneuvering,mailroom,luring,listenin,lifeless,licks,levon,legwork,kneecaps,kippur,kiddie,kaput,justifiable,insistent,insidious,innuendo,innit,indecent,imaginable,horseshit,hemorrhoid,hella,healthiest,haywire,hamsters,hairbrush,grouchy,grisly,gratuitous,glutton,glimmer,gibberish,ghastly,gentler,generously,geeky,fuhrer,fronting,foolin,faxes,faceless,extinguisher,expel,etched,endangering,ducked,dodgeball,dives,dislocated,discrepancy,devour,derail,dementia,daycare,cynic,crumbling,cowardice,covet,cornwallis,corkscrew,cookbook,commandments,coincidental,cobwebs,clouded,clogging,clicking,clasp,chopsticks,chefs,chaps,cashing,carat,calmer,brazen,brainwashing,bradys,bowing,boned,bloodsucking,bleachers,bleached,bedpan,bearded,barrenger,bachelors,awwww,assures,assigning,asparagus,apprehend,anecdote,amoral,aggravation,afoot,acquaintances,accommodating,yakking,worshipping,wladek,willya,willies,wigged,whoosh,whisked,watered,warpath,volts,violates,valuables,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,tubby,trolling,toxicology,tormented,toothache,tingly,timmiihh,thursdays,thoreau,terrifies,temperamental,telegrams,talkie,takers,symbiote,swirl,suffocate,stupider,strapping,steckler,springing,someway,sleepyhead,sledgehammer,slant,slams,showgirl,shoveling,shmoopy,sharkbait,shan't,scrambling,schematics,sandeman,sabbatical,rummy,reykjavik,revert,responsive,rescheduled,requisition,relinquish,rejoice,reckoning,recant,rebadow,reassurance,rattlesnake,ramble,primed,pricey,prance,pothole,pocus,persist,perpetrated,pekar,peeling,pastime,parmesan,pacemaker,overdrive,ominous,observant,nothings,noooooo,nonexistent,nodded,nieces,neglecting,nauseating,mutated,musket,mumbling,mowing,mouthful,mooseport,monologue,mistrust,meetin,masseuse,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,liberating,lhasa,leniency,leering,laughable,lashes,lasagne,laceration,korben,katan,kalen,jittery,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,impolite,humbly,heroics,heigh,guillotine,guesthouse,grounding,grips,gossiping,goatee,gnomes,gellar,frutt,frobisher,freudian,foolishness,flagged,femme,fatso,fatherhood,fantasized,fairest,faintest,eyelids,extravagant,extraterrestrial,extraordinarily,escalator,elevate,drivel,dissed,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,convene,congresswoman,concocted,compromises,comprende,comma,coleslaw,clothed,clinically,chickenshit,checkin,cesspool,caskets,calzone,brothel,boomerang,bodega,blasphemy,bitsy,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,arrhythmia,arousing,arbitrator,antagonize,angling,anesthetic,altercation,aggressor,adversity,acathla,aaahhh,wreaking,workup,wonderin,wither,wielding,what'm,what'cha,waxed,vibrating,veterinarian,venting,vasey,valor,validate,upholstery,untied,unscathed,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,treatable,treasured,tranquility,townspeople,torso,tomei,tipsy,tinsel,tidings,thirtieth,tantrums,tamper,talky,swayed,swapping,suitor,stylist,stirs,standoff,sprinklers,sparkly,snobby,snatcher,smoother,sleepin,shrug,shoebox,sheesh,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,roadblock,riverbank,ridiculed,resentful,repellent,recreate,reconvene,rebuttal,realmedia,quizzes,questionnaire,punctured,pucker,prolong,professionalism,pleasantly,pigsty,penniless,paychecks,patiently,parading,overactive,ovaries,orderlies,oracles,oiled,offending,nudie,neonatal,neighborly,moops,moonlighting,mobilize,mmmmmm,milkshake,menial,meats,mayan,maxed,mangled,magua,lunacy,luckier,liters,lansbury,kooky,knowin,jeopardized,inkling,inhalation,inflated,infecting,incense,inbound,impractical,impenetrable,idealistic,i'mma,hypocrites,hurtin,humbled,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,genitals,gazillion,gammy,gamesphere,fugue,footwear,folly,flashlights,fives,filet,extenuating,estrogen,entails,embezzled,eloquent,egomaniac,ducts,drowsy,drones,doree,donovon,disguises,diggin,deserting,depriving,defying,deductible,decorum,decked,daylights,daybreak,dashboard,damnation,cuddling,crunching,crickets,crazies,councilman,coughed,conundrum,complimented,cohaagen,clutching,clued,clader,cheques,checkpoint,chats,channeling,ceases,carasco,capisce,cantaloupe,cancelling,campsite,burglars,breakfasts,bra'tac,blueprint,bleedin,blabbed,beneficiary,basing,avert,atone,arlyn,approves,apothecary,antiseptic,aleikuum,advisement,zadir,wobbly,withnail,whattaya,whacking,wedged,wanders,vaginal,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,treading,tranquilizers,toontown,thunk,suture,suppressing,strays,stonewall,stogie,stepdaughter,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sombrero,solemnly,softened,snobs,snippy,snare,smoothing,slump,slimeball,slaving,silently,shiller,shakedown,sensations,scrying,scrumptious,screamin,saucy,santoses,roundup,roughed,rosary,robechaux,retrospect,rescind,reprehensible,repel,remodeling,reconsidering,reciprocate,railroaded,psychics,promos,prob'ly,pristine,printout,priestess,prenuptial,precedes,pouty,phoning,peppy,pariah,parched,panes,overloaded,overdoing,nymphs,nother,notebooks,nearing,nearer,monstrosity,milady,mieke,mephesto,medicated,marshals,manilow,mammogram,m'lady,lotsa,loopy,lesion,lenient,learner,laszlo,kross,kinks,jinxed,involuntary,insubordination,ingrate,inflatable,incarnate,inane,hypoglycemia,huntin,humongous,hoodlum,honking,hemorrhage,helpin,hathor,hatching,grotto,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,flutter,flagpole,fetching,fatter,faithfully,exert,evasion,escalate,enticing,enchantress,elopement,drills,downtime,downloading,dorks,doorways,divulge,dissociative,disgraceful,disconcerting,deteriorate,destinies,depressive,dented,denim,decruz,decidedly,deactivate,daydreams,curls,culprit,cruelest,crippling,cranberries,corvis,copped,commend,coastguard,cloning,cirque,churning,chock,chivalry,catalogues,cartwheels,carols,canister,buttered,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,bores,badmouthing,autopilot,ascertain,aorta,ampata,allenby,accosted,absolve,aborted,aaagh,aaaaaah,yonder,yellin,wyndham,wrongdoing,woodsboro,wigging,wasteland,warranty,waltzed,walnuts,vividly,veggie,unnecessarily,unloaded,unicorns,understated,unclean,umbrellas,twirling,turpentine,tupperware,triage,treehouse,tidbit,tickled,threes,thousandth,thingie,terminally,teething,tassel,talkies,swoon,switchboard,swerved,suspiciously,subsequentlyne,subscribe,strudel,stroking,strictest,stensland,starin,stannart,squirming,squealing,sorely,softie,snookums,sniveling,smidge,sloth,skulking,simian,sightseeing,siamese,shudder,shoppers,sharpen,shannen,semtex,secondhand,seance,scowl,scorn,safekeeping,russe,rummage,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,rerun,reputations,rekall,refreshment,reenactment,recluse,ravioli,raves,raking,purses,punishable,punchline,puked,prosky,previews,poughkeepsie,poppins,polluted,placenta,pissy,petulant,perseverance,pears,pawns,pastries,partake,panky,palate,overzealous,orchids,obstructing,objectively,obituaries,obedient,nothingness,musty,motherly,mooning,momentous,mistaking,minutemen,milos,microchip,meself,merciless,menelaus,mazel,masturbate,mahogany,lysistrata,lillienfield,likable,liberate,leveled,letdown,larynx,lardass,lainey,lagged,klorel,kidnappings,keyed,karmic,jeebies,irate,invulnerable,intrusive,insemination,inquire,injecting,informative,informants,impure,impasse,imbalance,illiterate,hurled,hunts,hematoma,headstrong,handmade,handiwork,growling,gorky,getcha,gesundheit,gazing,galley,foolishly,fondness,floris,ferocious,feathered,fateful,fancies,fakes,faker,expire,ever'body,essentials,eskimos,enlightening,enchilada,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,doable,dislikes,dishonesty,disengage,discouraging,derailed,deformed,deflect,defer,deactivated,crips,constellations,congressmen,complimenting,clubbing,clawing,chromium,chimes,chews,cheatin,chaste,cellblock,caving,catered,catacombs,calamari,bucking,brulee,brits,brisk,breezes,bounces,boudoir,binks,better'n,bellied,behrani,behaves,bedding,balmy,badmouth,backers,avenging,aromatherapy,armpit,armoire,anythin,anonymously,anniversaries,aftershave,affliction,adrift,admissible,adieu,acquittal,yucky,yearn,whitter,whirlpool,wendigo,watchdog,wannabes,wakey,vomited,voicemail,valedictorian,uttered,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,turnoff,trampled,tramell,toads,timbuktu,throwback,thimble,tasteless,tarantula,tamale,takeovers,swish,supposing,streaking,stargher,stanzi,stabs,squeamish,splattered,spiritually,spilt,speciality,smacking,skywire,skips,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,shamelessly,serafine,sentimentality,seasick,schemer,scandalous,sainted,riedenschneider,rhyming,revel,retractor,retards,resurrect,remiss,reminiscing,remanded,reiben,regains,refuel,refresher,redoing,redheaded,reassured,rearranged,rapport,qumar,prowling,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,phlegm,perfected,pancreas,paley,ovary,outbursts,oppressed,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,millionth,migraines,midler,manicurist,mandelbaum,manageable,malfunctioned,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,komako,klute,kennel,justifying,irreversible,inventing,intergalactic,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,hyena,humperdinck,hubba,housework,hoffa,hither,hissy,hippy,hijacked,heparin,hellooo,hearth,hassles,hairstyle,hahahaha,hadda,guys'll,gutted,gulls,gritty,grievous,graft,gossamer,gooder,gambled,gadgets,fundamentals,frustrations,frolicking,frock,frilly,foreseen,footloose,fondly,flirtation,flinched,flatten,farthest,exposer,evading,escrow,empathize,embryos,embodiment,ellsberg,ebola,dulcinea,dreamin,drawbacks,doting,doose,doofy,disturbs,disorderly,disgusts,detox,denominator,demeanor,deliriously,decode,debauchery,croissant,cravings,cranked,coworkers,councilor,confuses,confiscate,confines,conduit,compress,combed,clouding,clamps,cinch,chinnery,celebratory,catalogs,carpenters,carnal,canin,bundys,bulldozer,buggers,bueller,brainy,booming,bookstores,bloodbath,bittersweet,bellhop,beeping,beanstalk,beady,baudelaire,bartenders,bargains,averted,armadillo,appreciating,appraised,antlers,aloof,allowances,alleyway,affleck,abject,zilch,youore,xanax,wrenching,wouldn,witted,wicca,whorehouse,whooo,whips,vouchers,victimized,vicodin,untested,unsolicited,unfocused,unfettered,unfeeling,unexplainable,understaffed,underbelly,tutorial,tryst,trampoline,towering,tirade,thieving,thang,swimmin,swayzak,suspecting,superstitions,stubbornness,streamers,strattman,stonewalling,stiffs,stacking,spout,splice,sonrisa,smarmy,slows,slicing,sisterly,shrill,shined,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,salieri,rustling,roxbury,rewire,revved,retriever,reputable,remodel,reins,reincarnation,rance,rafters,rackets,quail,pumbaa,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,pleasurable,pizzeria,pimps,penmanship,penchant,pelvis,overturn,overstepped,overcoat,ovens,outsmart,outed,ooohh,oncologist,omission,offhand,odour,nyazian,notarized,nobody'll,nightie,navel,nabbed,mystique,mover,mortician,morose,moratorium,mockingbird,mobsters,mingling,methinks,messengered,merde,masochist,martouf,martians,marinara,manray,majorly,magnifying,mackerel,lurid,lugging,lonnegan,loathsome,llantano,liberace,leprosy,latinos,lanterns,lamest,laferette,kraut,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,inconvenienced,inanimate,improbable,implode,hydrant,hustling,hustled,huevos,how'm,hooey,hoods,honcho,hinge,hijack,heimlich,hamunaptra,haladki,haiku,haggle,gutsy,grunting,grueling,gribbs,greevy,grandstanding,godparents,glows,glistening,gimmick,gaping,fraiser,formalities,foreigner,folders,foggy,fitty,fiends,fe'nos,favours,eyeing,extort,expedite,escalating,epinephrine,entitles,entice,eminence,eights,earthlings,eagerly,dunville,dugout,doublemeat,doling,dispensing,dispatcher,discoloration,diners,diddly,dictates,diazepam,derogatory,delights,defies,decoder,dealio,danson,cutthroat,crumbles,croissants,crematorium,craftsmanship,could'a,cordless,cools,conked,confine,concealing,complicates,communique,cockamamie,coasters,clobbered,clipping,clipboard,clemenza,cleanser,circumcision,chanukah,certainaly,cellmate,cancels,cadmium,buzzed,bumstead,bucko,browsing,broth,braver,boggling,bobbing,blurred,birkhead,benet,belvedere,bellies,begrudge,beckworth,banky,baldness,baggy,babysitters,aversion,astonished,assorted,appetites,angina,amiss,ambulances,alibis,airway,admires,adhesive,yoyou,xxxxxx,wreaked,wracking,woooo,wooing,wised,wilshire,wedgie,waging,violets,vincey,uplifting,untrustworthy,unmitigated,uneventful,undressing,underprivileged,unburden,umbilical,tweaking,turquoise,treachery,tosses,torching,toothpick,toasts,thickens,tereza,tenacious,teldar,taint,swill,sweatin,subtly,subdural,streep,stopwatch,stockholder,stillwater,stalkers,squished,squeegee,splinters,spliced,splat,spied,spackle,sophistication,snapshots,smite,sluggish,slithered,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,settin,sentinels,selfishly,scarcely,sangria,sanctum,sahjhan,rustle,roving,rousing,rosomorf,riddled,responsibly,renoir,remoray,remedial,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramelle,quivering,pyjamas,psychos,provocations,prouder,protestors,prodded,proctologist,primordial,pricks,prickly,precedents,pentangeli,pathetically,parka,parakeet,panicky,overthruster,outsmarted,orthopedic,oncoming,offing,nutritious,nuthouse,nourishment,nibbling,newlywed,narcissist,mutilation,mundane,mummies,mumble,mowed,morvern,mortem,mopes,molasses,misplace,miscommunication,miney,midlife,menacing,memorizing,massaging,masking,magnets,luxuries,lounging,lothario,liposuction,lidocaine,libbets,levitate,leeway,launcelot,larek,lackeys,kumbaya,kryptonite,knapsack,keyhole,katarangura,juiced,jakey,ironclad,invoice,intertwined,interlude,interferes,injure,infernal,indeedy,incur,incorrigible,incantations,impediment,igloo,hysterectomy,hounded,hollering,hindsight,heebie,havesham,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,firecrackers,figger,fetuses,fates,eyeliner,extremities,extradited,expires,exceedingly,evaporate,erupt,epileptic,entrails,emporium,egregious,eggshells,easing,duwayne,droll,dreyfuss,dovey,doubly,doozy,donkeys,donde,distrust,distressing,disintegrate,discreetly,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cushy,cupcakes,cuffed,croupier,croak,crapped,coursing,coolers,contaminate,consummated,construed,condos,concoction,compulsion,commish,coercion,clemency,clairvoyant,circulate,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,burdon,bullshitting,brewed,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleep,bleeder,blackouts,bisque,billboards,beatings,bayberry,bashed,bamboozled,balding,baklava,baffled,backfires,babak,awkwardness,attest,attachments,apologizes,anyhoo,antiquated,alcante,advisable,aahhh,aaahh,zatarc,yearbooks,wuddya,wringing,womanhood,witless,winging,whatsa,wetting,waterproof,wastin,vogelman,vocation,vindicated,vigilance,vicariously,venza,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,tweaked,turnips,trinkets,toughen,toting,topside,terrors,terrify,technologically,tarnish,tagliati,szpilman,surly,supple,summation,suckin,stepmom,squeaking,splashmore,souffle,solitaire,solicitation,solarium,smokers,slugged,slobbering,skylight,skimpy,sinuses,silenced,sideburns,shrinkage,shoddy,shhhhhh,shelled,shareef,shangri,seuss,serenade,scuffle,scoff,scanners,sauerkraut,sardines,sarcophagus,salvy,rusted,russells,rowboat,rolfsky,ringside,respectability,reparations,renegotiate,reminisce,reimburse,regimen,raincoat,quibble,puzzled,purposefully,pubic,proofing,prescribing,prelim,poisons,poaching,personalized,personable,peroxide,pentonville,payphone,payoffs,paleontology,overflowing,oompa,oddest,objecting,o'hare,o'daniel,notches,nobody'd,nightstand,neutralized,nervousness,nerdy,needlessly,naquadah,nappy,nantucket,nambla,mountaineer,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minivan,milligram,milkshakes,metamorphosis,medics,mattresses,mathesar,matchbook,matata,marys,malucci,magilla,lymphoma,lowers,lordy,linens,lindenmeyer,limelight,leapt,laxative,lather,lapel,lamppost,laguardia,kindling,kegger,kawalsky,juries,jokin,jesminder,interning,innermost,injun,infallible,industrious,indulgence,incinerator,impossibility,impart,illuminate,iguanas,hypnotic,hyped,hospitable,hoses,homemaker,hirschmuller,helpers,headset,guardianship,guapo,grubby,granola,granddaddy,goren,goblet,gluttony,globes,giorno,getter,geritol,gassed,gaggle,foxhole,fouled,foretold,floorboards,flippers,flaked,fireflies,feedings,fashionably,farragut,fallback,facials,exterminate,excites,everything'll,evenin,ethically,ensue,enema,empath,eluded,eloquently,eject,edema,dumpling,droppings,dolled,distasteful,disputing,displeasure,disdain,deterrent,dehydration,defied,decomposing,dawned,dailies,custodian,crusts,crucifix,crowning,crier,crept,craze,crawls,couldn,correcting,corkmaster,copperfield,cooties,contraption,consumes,conspire,consenting,consented,conquers,congeniality,complains,communicator,commendable,collide,coladas,colada,clout,clooney,classifieds,clammy,civility,cirrhosis,chink,catskills,carvers,carpool,carelessness,cardio,carbs,capades,butabi,busmalis,burping,burdens,bunks,buncha,bulldozers,browse,brockovich,breakthroughs,bravado,boogety,blossoms,blooming,bloodsucker,blight,betterton,betrayer,belittle,beeps,bawling,barts,bartending,bankbooks,babish,atropine,assertive,armbrust,anyanka,annoyance,anemic,anago,airwaves,aimlessly,aaargh,aaand,yoghurt,writhing,workable,winking,winded,widen,whooping,whiter,whatya,wazoo,voila,virile,vests,vestibule,versed,vanishes,urkel,uproot,unwarranted,unscheduled,unparalleled,undergrad,tweedle,turtleneck,turban,trickery,transponder,toyed,townhouse,thyself,thunderstorm,thinning,thawed,tether,technicalities,tau'ri,tarnished,taffeta,tacked,systolic,swerve,sweepstakes,swabs,suspenders,superwoman,sunsets,succulent,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,spicoli,sparing,soulless,sonnets,sockets,snatching,smothering,slush,sloman,slashing,sitters,simpleton,sighs,sidra,sickens,shunned,shrunken,showbiz,shopped,shimmering,shagging,semblance,segue,sedation,scuzzlebutt,scumbags,screwin,scoundrels,scarsdale,scabs,saucers,saintly,saddened,runaways,runaround,rheya,resenting,rehashing,rehabilitated,regrettable,refreshed,redial,reconnecting,ravenous,raping,rafting,quandary,pylea,putrid,puffing,psychopathic,prunes,probate,prayin,pomegranate,plummeting,planing,plagues,pinata,pithy,perversion,personals,perched,peeps,peckish,pavarotti,pajama,packin,pacifier,overstepping,okama,obstetrician,nutso,nuance,normalcy,nonnegotiable,nomak,ninny,nines,nicey,newsflash,neutered,nether,negligee,necrosis,navigating,narcissistic,mylie,muses,momento,moisturizer,moderation,misinformed,misconception,minnifield,mikkos,methodical,mebbe,meager,maybes,matchmaking,masry,markovic,malakai,luzhin,lusting,lumberjack,loopholes,loaning,lightening,leotard,launder,lamaze,kubla,kneeling,kibosh,jumpsuit,joliet,jogger,janover,jakovasaurs,irreparable,innocently,inigo,infomercial,inexplicable,indispensable,impregnated,impossibly,imitating,hunches,hummus,houmfort,hothead,hostiles,hooves,hooligans,homos,homie,hisself,heyyy,hesitant,hangout,handsomest,handouts,hairless,gwennie,guzzling,guinevere,grungy,goading,glaring,gavel,gardino,gangrene,fruitful,friendlier,freckle,freakish,forthright,forearm,footnote,flops,fixer,firecracker,finito,figgered,fezzik,fastened,farfetched,fanciful,familiarize,faire,fahrenheit,extravaganza,exploratory,explanatory,everglades,eunuch,estas,escapade,erasers,emptying,embarassing,dweeb,dutiful,dumplings,dries,drafty,dollhouse,dismissing,disgraced,discrepancies,disbelief,disagreeing,digestion,didnt,deviled,deviated,demerol,delectable,decaying,decadent,dears,dateless,d'algout,cultivating,cryto,crumpled,crumbled,cronies,crease,craves,cozying,corduroy,congratulated,confidante,compressions,complicating,compadre,coerce,classier,chums,chumash,chivalrous,chinpoko,charred,chafing,celibacy,carted,carryin,carpeting,carotid,cannibals,candor,butterscotch,busts,busier,bullcrap,buggin,brookside,brodski,brassiere,brainwash,brainiac,botrelle,bonbon,boatload,blimey,blaring,blackness,bipartisan,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,bedpans,bassinet,basking,barzini,barnyard,barfed,backups,audited,asinine,asalaam,arouse,applejack,annoys,anchovies,ampule,alameida,aggravate,adage,accomplices,yokel,y'ever,wringer,witwer,withdrawals,windward,willfully,whorfin,whimsical,whimpering,weddin,weathered,warmest,wanton,volant,visceral,vindication,veggies,urinate,uproar,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,turnin,tuatha,tropez,trellis,toppings,tootin,toodle,tinkering,thrives,thespis,theatrics,thatherton,tempers,tavington,tartar,tampon,swelled,sutures,sustenance,sunflowers,sublet,stubbins,strutting,strewn,stowaway,stoic,sternin,stabilizing,spiraling,spinster,speedometer,speakeasy,soooo,soiled,sneakin,smithereens,smelt,smacks,slaughterhouse,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,shouts,shorted,shoelace,sheeit,shards,shackled,sequestered,selmak,seduces,seclusion,seamstress,seabeas,scoops,scooped,scavenger,satch,s'more,rudeness,romancing,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,repaid,renewing,relaxes,rekindle,regrettably,regenerate,reels,reciting,reappear,readin,ratting,rapes,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,procrastinating,proactive,priss,postmortem,pompoms,poise,pickings,perfectionist,peretti,people'll,pecking,patrolman,paralegal,paragraphs,paparazzi,pankot,pampering,overstep,overpower,outweigh,omnipotent,odious,nuwanda,nurtured,newsroom,neeson,needlepoint,necklaces,neato,muggers,muffler,mousy,mourned,mosey,mopey,mongolians,moldy,misinterpret,minibar,microfilm,mendola,mended,melissande,masturbating,masbath,manipulates,maimed,mailboxes,magnetism,m'lord,m'honey,lymph,lunge,lovelier,lefferts,leezak,ledgers,larraby,laloosh,kundun,kozinski,knockoff,kissin,kiosk,kennedys,kellman,karlo,kaleidoscope,jeffy,jaywalking,instructing,infraction,informer,infarction,impulsively,impressing,impersonated,impeach,idiocy,hyperbole,hurray,humped,huhuh,hsing,hordes,hoodlums,honky,hitchhiker,hideously,heaving,heathcliff,headgear,headboard,hazing,harem,handprint,hairspray,gutiurrez,goosebumps,gondola,glitches,gasping,frolic,freeways,frayed,fortitude,forgetful,forefathers,fonder,foiled,foaming,flossing,flailing,fitzgeralds,firehouse,finders,fiftieth,fellah,fawning,farquaad,faraway,fancied,extremists,exorcist,exhale,ethros,entrust,ennui,energized,encephalitis,embezzling,elster,elixir,electrolytes,duplex,dryers,drexl,dredging,drawback,don'ts,dobisch,divorcee,disrespected,disprove,disobeying,disinfectant,dingy,digress,dieting,dictating,devoured,devise,detonators,desist,deserter,derriere,deron,deceptive,debilitating,deathwok,daffodils,curtsy,cursory,cuppa,cumin,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,contentment,consensual,compost,cluett,cleverly,cleansed,cleanliness,chopec,chomp,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,catchin,caress,camcorder,calorie,cackling,bystanders,buttoned,buttering,butted,buries,burgel,buffoon,brogna,bragged,boutros,bogeyman,blurting,blurb,blowup,bloodhound,blissful,birthmark,bigot,bestest,belted,belligerent,beggin,befall,beeswax,beatnik,beaming,barricade,baggoli,badness,awoke,artsy,artful,aroun,armpits,arming,annihilate,anise,angiogram,anaesthetic,amorous,ambiance,alligators,adoration,admittance,adama,abydos,zonked,zhivago,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,whoopie,wholeheartedly,whimper,which'll,wheelchairs,what'ya,warranted,wallop,wading,wacked,virginal,vermouth,vermeil,verger,ventriss,veneer,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unlocks,ungodly,undue,uncooperative,uncontrollably,unbeatable,twitchy,tumbler,truest,triumphs,triplicate,tribbey,tortures,tongaree,tightening,thorazine,theres,testifies,teenaged,tearful,taxing,taldor,syllabus,swoops,swingin,suspending,sunburn,stuttering,stupor,strides,strategize,strangulation,stooped,stipulation,stingy,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,spasms,spaniard,softener,sodding,soapbox,smoldering,smithbauer,skittish,sifting,sickest,sicilians,shuffling,shrivel,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schenkman,sawing,savin,satine,sapiens,salvaging,salmonella,sacrilege,rumpus,ruffle,roughing,rotted,rondall,ridding,rickshaw,rialto,rhinestone,restrooms,reroute,requisite,repress,rednecks,redeeming,rayed,ravell,raked,raincheck,raffi,racked,pushin,profess,prodding,procure,presuming,preppy,prednisone,potted,posttraumatic,poorhouse,podiatrist,plowed,pledging,playroom,plait,placate,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,pellets,peeved,peerless,payable,pauses,pathologist,pagliacci,overwrought,overreaction,overqualified,overheated,outcasts,otherworldly,opinionated,oodles,oftentimes,occured,obstinate,nutritionist,numbness,nubile,nooooooo,nobodies,nepotism,neanderthals,mushu,mucus,mothering,mothballs,monogrammed,molesting,misspoke,misspelled,misconstrued,miscalculated,minimums,mince,mildew,mighta,middleman,mementos,mellowed,mayol,mauled,massaged,marmalade,mardi,makings,lundegaard,lovingly,loudest,lotto,loosing,loompa,looming,longs,loathes,littlest,littering,lifelike,legalities,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,karras,jungles,jockeys,iranoff,invoices,invigorating,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infestation,individuality,indeterminate,incomprehensible,inadequacy,impropriety,importer,imaginations,illuminating,ignite,hysterics,hypodermic,hyperventilate,hyperactive,humoring,honeymooning,honed,hoist,hoarding,hitching,hiker,hightail,hemoglobin,hell'd,heinie,growin,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabbing,futon,fulla,frightful,freshener,fortuitous,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,feverish,favell,fattest,fattening,fallow,extraordinaire,evacuating,errant,envied,enchant,enamored,egocentric,dussander,dunwitty,dullest,dropout,dredged,dorsia,doornail,donot,dongs,dogged,dodgy,ditty,dishonorable,discriminating,discontinue,dings,dilly,dictation,dialysis,delly,delightfully,daryll,dandruff,cruddy,croquet,cringe,crimp,credo,crackling,courtside,counteroffer,counterfeiting,corrupting,copping,conveyor,contusions,contusion,conspirator,consoling,connoisseur,confetti,composure,compel,colic,coddle,cocksuckers,coattails,cloned,claustrophobia,clamoring,churn,chugga,chirping,chasin,chapped,chalkboard,centimeter,caymans,catheter,casings,caprica,capelli,cannolis,cannoli,camogli,camembert,butchers,butchered,busboys,bureaucrats,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,biocyte,betrays,bested,beryllium,beheading,beggar,begbie,beamed,bastille,barstool,barricades,barbecues,barbecued,bandwagon,backfiring,bacarra,avenged,autopsies,aunties,associating,artichoke,arrowhead,appendage,apostrophe,antacid,ansel,annul,amuses,amped,amicable,amberg,alluring,adversaries,admirers,adlai,acupuncture,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,wrinkly,wracked,withered,winks,windmills,whopping,wendle,weigart,waterworks,waterbed,watchful,wantin,wagging,waaah,vying,ventricle,varnish,vacuumed,unreachable,unprovoked,unmistakable,unfriendly,unfolding,underpaid,uncuff,unappealing,unabomber,typhoid,tuxedos,tushie,turds,tumnus,troubadour,trinium,treaters,treads,transpired,transgression,tought,thready,thins,thinners,techs,teary,tattaglia,tassels,tarzana,tanking,tablecloths,synchronize,symptomatic,sycophant,swimmingly,sweatshop,surfboard,superpowers,sunroom,sunblock,sugarplum,stupidly,strumpet,strapless,stooping,stools,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spectacularly,sorbet,socked,sociable,snubbed,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,slouch,slingshot,slaved,skimmed,sisterhood,silliest,sidarthur,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scagnetti,sawchuk,saugus,sasquatch,sandbag,saltines,s'pose,roston,rostle,riveting,ristle,rifling,revulsion,reverently,retrograde,restful,resents,reptilian,reorganize,renovating,reiterate,reinvent,reinmar,reibers,reechard,recuse,reconciling,recognizance,reclaiming,recitation,recieved,rebate,reacquainted,rascals,railly,quintuplets,quahog,pygmies,puzzling,punctuality,prosthetic,proms,probie,preys,preserver,preppie,poachers,plummet,plumbers,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,physique,pessimistic,persecute,perjure,percentile,pentothal,pensky,penises,peini,pazzi,pastels,parlour,paperweight,pamper,pained,overwhelm,overalls,outrank,outpouring,outhouse,outage,ouija,obstructed,obsessions,obeying,obese,o'riley,o'higgins,nosebleeds,norad,noooooooo,nononono,nonchalant,nippy,neurosis,nekhorvich,necronomicon,naquada,n'est,mystik,mystified,mumps,muddle,mothership,moped,monumentally,monogamous,mondesi,misogynistic,misinterpreting,mindlock,mending,megaphone,meeny,medicating,meanie,masseur,markstrom,marklars,margueritas,manifesting,maharajah,lukewarm,loveliest,loran,lizardo,liquored,lipped,lingers,limey,lemkin,leisurely,lathe,latched,lapping,ladle,krevlorneswath,kosygin,khakis,kenaru,keats,kaitlan,julliard,jollies,jaundice,jargon,jackals,invisibility,insipid,inflamed,inferiority,inexperience,incinerated,incinerate,incendiary,incan,inbred,implicating,impersonator,hunks,horsing,hooded,hippopotamus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,headstone,hayloft,harbucks,handguns,hallucinate,haldol,haggling,gynaecologist,gulag,guilder,guaranteeing,groundskeeper,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,gentlemanly,gelatin,gawking,ganged,fukes,fromby,frenchmen,foursome,forsley,forbids,footwork,foothold,floater,flinging,flicking,fittest,fistfight,fireballs,fillings,fiddling,fennyman,felonious,felonies,feces,favoritism,fatten,fanatics,faceman,excusing,excepted,entwined,entree,ensconced,eladio,ehrlichman,easterland,dueling,dribbling,drape,downtrodden,doused,dosed,dorleen,dokie,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,diperna,dined,diligent,dicaprio,depress,decoded,debatable,dealey,darsh,damsels,damning,dad'll,d'oeuvre,curlers,curie,cubed,crikey,crepes,countrymen,cornfield,coppers,copilot,copier,cooing,conspiracies,consigliere,condoning,commoner,commies,combust,comas,colds,clawed,clamped,choosy,chomping,chimps,chigorin,chianti,cheep,checkups,cheaters,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,candlesticks,canasta,cain't,burro,burnin,bunking,bumming,bullwinkle,brummel,brooms,brews,breathin,braslow,bracing,botulism,boorish,bloodless,blayne,blatantly,blankie,bedbugs,becuase,barmaid,bared,baracus,banal,bakes,backpacks,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,arnon,apprehension,applauding,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,alerting,afterthought,affront,affirm,actuality,abysmal,absentee,yeller,yakushova,wuzzy,wriggle,worrier,woogyman,womanizer,windpipe,windbag,willin,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,waaay,vouched,viznick,ventriloquist,vendettas,veils,vayhue,vamanos,vadimus,upstage,uppity,unsaid,unlocking,unintentionally,undetected,undecided,uncaring,unbearably,tween,tryout,trotting,trini,trimmings,trickier,treatin,treadstone,trashcan,transcendent,tramps,townsfolk,torturous,torrid,toothpicks,tolerable,tireless,tiptoeing,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,these'll,thatos,testicular,teriyaki,tenors,tenacity,tellers,telemetry,tarragon,switchblade,swicker,swells,sweatshirts,swatches,surging,supremely,sump'n,succumb,subsidize,stumbles,stuffs,stoppin,stipulate,stenographer,steamroll,stasis,stagger,squandered,splint,splendidly,splashy,splashing,specter,sorcerers,somewheres,somber,snuggled,snowmobile,sniffed,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,siree,siphoning,singed,sincerest,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,sheetrock,shawshank,shamu,sha're,servitude,sequins,seascape,scrapings,scoured,scorching,sandpaper,saluting,salud,ruffled,roughnecks,rougher,rosslyn,rosses,roost,roomy,romping,revolutionize,reprimanded,refute,refrigerated,reeled,redundancies,rectal,recklessly,receding,reassignment,reapers,readout,ration,raring,ramblings,raccoons,quarantined,purging,punters,psychically,premarital,pregnancies,predisposed,precautionary,pollute,podunk,plums,plaything,pixilated,pitting,piranhas,pieced,piddles,pickled,photogenic,phosphorous,pffft,pestilence,pessimist,perspiration,perps,penticoff,passageways,pardons,panics,pancamo,paleontologist,overwhelms,overstating,overpaid,overdid,outlive,orthodontist,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,nymph,novocaine,noooooooooo,nipping,nilly,nightstick,negate,neatness,natured,narcotic,narcissism,namun,nakatomi,murky,muchacho,mouthwash,motzah,morsel,morph,morlocks,mooch,moloch,molest,mohra,modus,modicum,mockolate,misdemeanors,miscalculation,middies,meringue,mercilessly,meditating,mayakovsky,maximillian,marlee,markovski,maniacal,maneuvered,magnificence,maddening,lutze,lunged,lovelies,lorry,loosening,lookee,littered,lilac,lightened,laces,kurzon,kurtzweil,kind've,kimono,kenji,kembu,keanu,kazuo,jonesing,jilted,jiggling,jewelers,jewbilee,jacqnoud,jacksons,ivories,insurmountable,innocuous,innkeeper,infantery,indulged,indescribable,incoherent,impervious,impertinent,imperfections,hunnert,huffy,horsies,horseradish,hollowed,hogwash,hockley,hissing,hiromitsu,hidin,hereafter,helpmann,hehehe,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,grossly,grope,grocer,grits,gripping,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,gairwyn,futterman,futility,fumigated,fruitless,friendless,freon,foregone,forego,floored,flighty,flapjacks,fizzled,ficus,festering,farbman,fabricate,eyghon,extricate,exalted,eventful,esophagus,enterprising,entail,endor,emphatically,embarrasses,electroshock,easel,duffle,drumsticks,dissection,dissected,disposing,disparaging,disorientation,disintegrated,disarming,devoting,dessaline,deprecating,deplorable,delve,degenerative,deduct,decomposed,deathly,dearie,daunting,dankova,cyclotron,cyberspace,cutbacks,culpable,cuddled,crumpets,cruelly,crouching,cranium,cramming,cowering,couric,cordesh,conversational,conclusively,clung,clotting,cleanest,chipping,chimpanzee,chests,cheapen,chainsaws,censure,catapult,caravaggio,carats,captivating,calrissian,butlers,busybody,bussing,bunion,bulimic,budging,brung,browbeat,brokenhearted,brecher,breakdowns,bracebridge,boning,blowhard,blisters,blackboard,bigotry,bialy,bhamra,bended,begat,battering,baste,basquiat,barricaded,barometer,balled,baited,badenweiler,backhand,ascenscion,argumentative,appendicitis,apparition,anxiously,antagonistic,angora,anacott,amniotic,ambience,alonna,aleck,akashic,ageless,abouts,aawwww,aaaaarrrrrrggghhh,aaaaaa,zendi,yuppies,yodel,y'hear,wrangle,wombosi,wittle,withstanding,wisecracks,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weakling,warfarin,waponis,wampum,wadn't,vorash,vizzini,virtucon,viridiana,veracity,ventilated,varicose,varcon,vandalized,vamos,vamoose,vaccinated,vacationing,usted,urinal,uppers,unwittingly,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unbreakable,unadvisedly,udall,tynacorp,tuxes,tussle,turati,tunic,tsavo,trussed,troublemakers,trollop,tremors,transsexual,transfusions,toothbrushes,toned,toddlers,tinted,tightened,thundering,thorpey,this'd,thespian,thaddius,tenuous,tenths,tenement,telethon,teleprompter,teaspoon,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,talcum,tacks,swivel,swaying,superpower,summarize,sumbitch,sultry,suburbia,styrofoam,stylings,strolls,strobe,stockpile,stewardesses,sterilized,sterilize,stealin,stakeouts,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,sparklers,spareribs,sowing,sororities,sonovabitch,solicit,softy,softness,softening,snuggling,snatchers,snarling,snarky,snacking,smears,slumped,slowest,slithering,sleazebag,slayed,slaughtering,skidded,skated,sivapathasundaram,sissies,silliness,silences,sidecar,sicced,shylock,shtick,shrugged,shriek,shoves,should'a,shortcake,shockingly,shirking,shaves,shatner,sharpener,shapely,shafted,sexless,septum,selflessness,seabea,scuff,screwball,scoping,scooch,scolding,schnitzel,schemed,scalper,santy,sankara,sanest,salesperson,sakulos,safehouse,sabers,runes,rumblings,rumbling,ruijven,ringers,righto,rhinestones,retrieving,reneging,remodelling,relentlessly,regurgitate,refills,reeking,reclusive,recklessness,recanted,ranchers,rafer,quaking,quacks,prophesied,propensity,profusely,problema,prided,prays,postmark,popsicles,poodles,pollyanna,polaroids,pokes,poconos,pocketful,plunging,plugging,pleeease,platters,pitied,pinetti,piercings,phooey,phonies,pestering,periscope,pentagram,pelts,patronized,paramour,paralyze,parachutes,pales,paella,paducci,owatta,overdone,overcrowded,overcompensating,ostracized,ordinate,optometrist,operandi,omens,okayed,oedipal,nuttier,nuptial,nunheim,noxious,nourish,notepad,nitroglycerin,nibblet,neuroses,nanosecond,nabbit,mythic,munchkins,multimillion,mulroney,mucous,muchas,mountaintop,morlin,mongorians,moneybags,mom'll,molto,mixup,misgivings,mindset,michalchuk,mesmerized,merman,mensa,meaty,mbwun,materialize,materialistic,masterminded,marginally,mapuhe,malfunctioning,magnify,macnamara,macinerney,machinations,macadamia,lysol,lurks,lovelorn,lopsided,locator,litback,litany,linea,limousines,limes,lighters,liebkind,levity,levelheaded,letterhead,lesabre,leron,lepers,lefts,leftenant,laziness,layaway,laughlan,lascivious,laryngitis,lapsed,landok,laminated,kurten,kobol,knucklehead,knowed,knotted,kirkeby,kinsa,karnovsky,jolla,jimson,jettison,jeric,jawed,jankis,janitors,jango,jalopy,jailbreak,jackers,jackasses,invalidate,intercepting,intercede,insinuations,infertile,impetuous,impaled,immerse,immaterial,imbeciles,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hurtling,hurried,hunchback,hullo,horsting,hoooo,homeboys,hollandaise,hoity,hijinks,hesitates,herrero,herndorff,helplessly,heeyy,heathen,hearin,headband,harrassment,harpies,halstrom,hahahahaha,hacer,grumbling,grimlocks,grift,greets,grandmothers,grander,grafts,gordievsky,gondorff,godorsky,glscripts,gaudy,gardeners,gainful,fuses,fukienese,frizzy,freshness,freshening,fraught,frantically,foxbooks,fortieth,forked,foibles,flunkies,fleece,flatbed,fisted,firefight,fingerpaint,filibuster,fhloston,fenceline,femur,fatigues,fanucci,fantastically,familiars,falafel,fabulously,eyesore,expedient,ewwww,eviscerated,erogenous,epidural,enchante,embarassed,embarass,embalming,elude,elspeth,electrocute,eigth,eggshell,echinacea,eases,earpiece,earlobe,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,dorma,doily,divvy,diverting,dissuade,disrespecting,displace,disorganized,disgustingly,discord,disapproving,diligence,didja,diced,devouring,detach,destructing,desolate,demerits,delude,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cussing,cryss,cripes,cretins,crackerjack,cower,coveting,couriers,countermission,cotswolds,convertibles,conversationalist,consorting,consoled,consarn,confides,confidentially,commited,commiserate,comme,comforter,comeuppance,combative,comanches,colosseum,colling,coexist,coaxing,cliffside,chutes,chucked,chokes,childlike,childhoods,chickening,chenowith,charmingly,changin,catsup,captioning,capsize,cappucino,capiche,candlewell,cakewalk,cagey,caddie,buxley,bumbling,bulky,buggered,brussel,brunettes,brumby,brotha,bronck,brisket,bridegroom,braided,bovary,bookkeeper,bluster,bloodline,blissfully,blase,billionaires,bicker,berrisford,bereft,berating,berate,bendy,belive,belated,beikoku,beens,bedspread,bawdy,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,awkwardly,auras,attuned,atheists,astaire,assuredly,arrivederci,appetit,appendectomy,apologetic,antihistamine,anesthesiologist,amulets,albie,alarmist,aiight,adstream,admirably,acquaint,abound,abominable,aaaaaaah,zekes,zatunica,wussy,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whisker,whims,whatiya,whadya,weirdly,weenies,waunt,washout,wanto,waning,victimless,verdad,veranda,vandaley,vancomycin,valise,vaguest,upshot,unzip,unwashed,untrained,unstuck,unprincipled,unmentionables,unjustly,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,tyndareus,turncoat,turlock,tulle,tryouts,trouper,triplette,trepkos,tremor,treeger,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,thumbprint,thankless,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tarred,tambourine,talentless,swooped,switcheroo,swirly,sweatpants,sunstroke,suitors,sugarcoat,subways,subterfuge,subservient,subletting,stunningly,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stifle,stealer,squeezes,squatter,squarely,sprouted,spool,spindly,speedos,soups,soundly,soulmates,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,skulk,skivvies,skewered,skewer,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,sharpened,shapeshifter,shadowing,shadoe,selectman,sefelt,seared,scrounging,scribbling,scooping,scintillating,schmoozing,scallops,sapphires,sanitarium,sanded,safes,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rewrote,revamp,retaliatory,reprimand,replicators,replaceable,remedied,relinquishing,rejoicing,reincarnated,reimbursed,reevaluate,redid,redefine,recreating,reconnected,rebelling,reassign,rearview,rayne,ravings,ratso,rambunctious,radiologist,quiver,quiero,queef,qualms,pyrotechnics,pulsating,psychosomatic,proverb,promiscuous,profanity,prioritize,preying,predisposition,precocious,precludes,prattling,prankster,povich,potting,postpartum,porridge,polluting,plowing,pistachio,pissin,pickpocket,physicals,peruse,pertains,personified,personalize,perjured,perfecting,pepys,pepperdine,pembry,peering,peels,pedophile,patties,passkey,paratrooper,paraphernalia,paralyzing,pandering,paltry,palpable,pagers,pachyderm,overstay,overestimated,overbite,outwit,outgrow,outbid,ooops,oomph,oohhh,oldie,obliterate,objectionable,nygma,notting,noches,nitty,nighters,newsstands,newborns,neurosurgery,nauseated,nastiest,narcolepsy,mutilate,muscled,murmur,mulva,mulling,mukada,muffled,morgues,moonbeams,monogamy,molester,molestation,molars,moans,misprint,mismatched,mirth,mindful,mimosas,millander,mescaline,menstrual,menage,mellowing,medevac,meddlesome,matey,manicures,malevolent,madmen,macaroons,lydell,lycra,lunchroom,lunching,lozenges,looped,litigious,liquidate,linoleum,lingk,limitless,limber,lilacs,ligature,liftoff,lemmiwinks,leggo,learnin,lazarre,lawyered,lactose,knelt,kenosha,kemosabe,jussy,junky,jordy,jimmies,jeriko,jakovasaur,issacs,isabela,irresponsibility,ironed,intoxication,insinuated,inherits,ingest,ingenue,inflexible,inflame,inevitability,inedible,inducement,indignant,indictments,indefensible,incomparable,incommunicado,improvising,impounded,illogical,ignoramus,hydrochloric,hydrate,hungover,humorless,humiliations,hugest,hoverdrone,hovel,hmmph,hitchhike,hibernating,henchman,helloooo,heirlooms,heartsick,headdress,hatches,harebrained,hapless,hanen,handsomer,hallows,habitual,guten,gummy,guiltier,guidebook,gstaad,gruff,griss,grieved,grata,gorignak,goosed,goofed,glowed,glitz,glimpses,glancing,gilmores,gianelli,geraniums,garroway,gangbusters,gamblers,galls,fuddy,frumpy,frowning,frothy,fro'tak,frere,fragrances,forgettin,follicles,flowery,flophouse,floatin,flirts,flings,flatfoot,fingerprinting,fingerprinted,fingering,finald,fillet,fianc,femoral,federales,fawkes,fascinates,farfel,fambly,falsified,fabricating,exterminators,expectant,excusez,excrement,excercises,evian,etins,esophageal,equivalency,equate,equalizer,entrees,enquire,endearment,empathetic,emailed,eggroll,earmuffs,dyslexic,duper,duesouth,drunker,druggie,dreadfully,dramatics,dragline,downplay,downers,dominatrix,doers,docket,docile,diversify,distracts,disloyalty,disinterested,discharging,disagreeable,dirtier,dinghy,dimwitted,dimoxinil,dimmy,diatribe,devising,deviate,detriment,desertion,depressants,depravity,deniability,delinquents,defiled,deepcore,deductive,decimate,deadbolt,dauthuille,dastardly,daiquiris,daggers,dachau,curiouser,curdled,cucamonga,cruller,cruces,crosswalk,crinkle,crescendo,cremate,counseled,couches,cornea,corday,copernicus,contrition,contemptible,constipated,conjoined,confounded,condescend,concoct,conch,compensating,committment,commandeered,comely,coddled,cockfight,cluttered,clunky,clownfish,cloaked,clenched,cleanin,civilised,circumcised,cimmeria,cilantro,chutzpah,chucking,chiseled,chicka,chattering,cervix,carrey,carpal,carnations,cappuccinos,candied,calluses,calisthenics,bushy,burners,budington,buchanans,brimming,braids,boycotting,bouncers,botticelli,botherin,bookkeeping,bogyman,bogged,bloodthirsty,blintzes,blanky,binturong,billable,bigboote,bewildered,betas,bequeath,behoove,befriend,bedpost,bedded,baudelaires,barreled,barboni,barbeque,bangin,baltus,bailout,backstabber,baccarat,awning,augie,arguillo,archway,apricots,apologising,annyong,anchorman,amenable,amazement,allspice,alannis,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,adrenal,acidosis,achoo,accessorizing,accentuate,abrasions,abductor,aaaahhh,aaaaaaaa,aaaaaaa,zeroing,zelner,zeldy,yevgeny,yeska,yellows,yeesh,yeahh,yamuri,wouldn't've,workmanship,woodsman,winnin,winked,wildness,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,westerburg,weeding,watermelons,washboard,waltzes,wafting,voulez,voluptuous,vitone,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,vasculitis,valets,upholstered,unwavering,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unglued,unequivocal,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,tugging,triads,trespasses,treehorn,traviata,trappers,transplants,trannie,tramping,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,thruster,thoughtfulness,thornwood,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surges,supermodels,superhighway,sunup,sun'll,sulfa,sugarless,sufficed,subside,strolled,stringy,strengthens,straightest,straightens,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stepladder,stepbrother,steers,steelheads,steakhouse,stathis,stankylecartmankennymr,standoffish,stalwart,squirted,spritz,sprig,sprawl,spousal,sphincter,spenders,spearmint,spatter,spangled,southey,soured,sonuvabitch,somethng,snuffed,sniffs,smokescreen,smilin,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skanks,sixed,siphoned,siphon,simpering,sigfried,sidearm,siddons,sickie,shuteye,shuffleboard,shrubberies,shrouded,showmanship,shouldn't've,shoplift,shiatsu,sentries,sentance,sensuality,seething,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schoolers,schmucks,scepters,scaly,scalps,scaffolding,sauces,sartorius,santen,salivating,sainthood,saget,saddens,rygalski,rusting,ruination,rueland,rudabaga,rottweiler,roofies,romantics,rollerblading,roldy,roadshow,rickets,rible,rheza,revisiting,retentive,resurface,restores,respite,resounding,resorting,resists,repulse,repressing,repaying,reneged,refunds,rediscover,redecorated,reconstructive,recommitted,recollect,receptacle,reassess,reanimation,realtors,razinin,rationalization,ratatouille,rashum,rasczak,rancheros,rampler,quizzing,quips,quartered,purring,pummeling,puede,proximo,prospectus,pronouncing,prolonging,procreation,proclamations,principled,prides,preoccupation,prego,precog,prattle,pounced,potshots,potpourri,porque,pomegranates,polenta,plying,pluie,plesac,playmates,plantains,pillowcase,piddle,pickers,photocopied,philistine,perpetuate,perpetually,perilous,pawned,pausing,pauper,parter,parlez,parlay,pally,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,outweighs,outings,ottos,orrin,orifice,orangutan,oopsy,ooooooooh,oooooo,ooohhhh,ocular,obstruct,obscenely,o'dwyer,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,nestled,nearsighted,ne'er,nastier,narco,nakedness,muted,mummified,mudda,mozzarella,moxica,motivator,motility,mothafucka,mortmain,mortgaged,mores,mongers,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mineshaft,millaney,microwaves,metzenbaum,mccovey,masterful,masochistic,marliston,marijawana,manya,mantumbi,malarkey,magnifique,madrona,madox,machida,m'hidi,lullabies,loveliness,lotions,looka,lompoc,litterbug,litigator,lithe,liquorice,linds,limericks,lightbulb,lewises,letch,lemec,layover,lavatory,laurels,lateness,laparotomy,laboring,kuato,kroff,krispy,krauts,knuckleheads,kitschy,kippers,kimbrow,keypad,keepsake,kebab,karloff,junket,judgemental,jointed,jezzie,jetting,jeeze,jeeter,jeesus,jeebs,janeane,jails,jackhammer,ixnay,irritates,irritability,irrevocable,irrefutable,irked,invoking,intricacies,interferon,intents,insubordinate,instructive,instinctive,inquisitive,inlay,injuns,inebriated,indignity,indecisive,incisors,incacha,inalienable,impresses,impregnate,impregnable,implosion,idolizes,hypothyroidism,hypoglycemic,huseni,humvee,huddling,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hikita,hikes,hightailed,hieroglyphics,heretofore,herbalist,hehey,hedriks,heartstrings,headmistress,headlight,hardheaded,happend,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,groan,greenbacks,gravedigger,grating,grasshoppers,grandiose,grandest,grafted,gooood,goood,gooks,godsakes,goaded,glamorama,giveth,gingham,ghostbusters,germane,georgy,gazzo,gazelles,gargle,garbled,galgenstein,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frighteningly,freebies,freakishly,forewarned,foreclose,forearms,fordson,fonics,flushes,flitting,flemmer,flabby,fishbowl,fidgeting,fevers,feigning,faxing,fatigued,fathoms,fatherless,fancier,fanatical,factored,eyelid,eyeglasses,expresso,expletive,expectin,excruciatingly,evidentiary,ever'thing,eurotrash,eubie,estrangement,erlich,epitome,entrap,enclose,emphysema,embers,emasculating,eighths,eardrum,dyslexia,duplicitous,dumpty,dumbledore,dufus,duddy,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,douggie,douchebag,dostoyevsky,doodling,don'tcha,domineering,doings,dogcatcher,doctoring,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,disavowed,dippy,diorama,dimmed,dilate,digitalis,diggory,dicing,diagnosing,devola,desolation,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,decrepit,deciphered,dawdle,dauphine,daresay,dangles,dampen,damndest,cucumbers,cucaracha,cryogenically,croaks,croaked,criticise,crisper,creepiest,creams,crackle,crackin,covertly,counterintelligence,corrosive,cordially,cops'll,convulsions,convoluted,conversing,conga,confrontational,confab,condolence,condiments,complicit,compiegne,commodus,comings,cometh,collusion,collared,cockeyed,clobber,clemonds,clarithromycin,cienega,christmasy,christmassy,chloroform,chippie,chested,cheeco,checklist,chauvinist,chandlers,chambermaid,chakras,cellophane,caveat,cataloguing,cartmanland,carples,carny,carded,caramels,cappy,caped,canvassing,callback,calibrated,calamine,buttermilk,butterfingers,bunsen,bulimia,bukatari,buildin,budged,brobich,bringer,brendell,brawling,bratty,braised,boyish,boundless,botch,boosh,bookies,bonbons,bodes,bobunk,bluntly,blossoming,bloomers,bloodstains,bloodhounds,blech,biter,biometric,bioethics,bijan,bigoted,bicep,bereaved,bellowing,belching,beholden,beached,batmobile,barcodes,barch,barbecuing,bandanna,backwater,backtrack,backdraft,augustino,atrophy,atrocity,atley,atchoo,asthmatic,assoc,armchair,arachnids,aptly,appetizing,antisocial,antagonizing,anorexia,anini,andersons,anagram,amputation,alleluia,airlock,aimless,agonized,agitate,aggravating,aerosol,acing,accomplishing,accidently,abuser,abstain,abnormally,aberration,aaaaahh,zlotys,zesty,zerzura,zapruder,zantopia,yelburton,yeess,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolchek,wishin,wiseguys,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,wherefore,wharvey,welts,wellstone,wedges,wavered,watchit,wastebasket,wango,waken,waitressed,wacquiem,vrykolaka,voula,vitally,visualizing,viciousness,vespers,vertes,verily,vegetarians,vater,vaporize,vannacutt,vallens,ussher,urinating,upping,unwitting,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undeserving,undermines,undergarments,unconcerned,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tribulations,tremont,tremoille,transcends,trafficker,touchin,tomfoolery,tinkered,tinfoil,tightrope,thousan,thoracotomy,thesaurus,thawing,thatta,tessio,temps,taxidermist,tator,tachycardia,t'akaya,swelco,sweetbreads,swatting,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,streetwalker,strategizing,straining,straightaway,stoli,stiffer,stickup,stens,steamroller,steadwell,steadfast,stateroom,stans,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spirals,speedboat,spectacles,speakerphone,southglen,souse,soundproof,soothsayer,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,snifter,sniffin,snickering,sneer,snarl,smila,slinking,slanted,slanderous,slammin,skimp,skilosh,siteid,sirloin,singe,sighing,sidekicks,sicken,showstopper,shoplifter,shimokawa,sherborne,shavadai,sharpshooters,sharking,shagged,shaddup,senorita,sesterces,sensuous,seahaven,scullery,scorcher,schotzie,schnoz,schmooze,schlep,schizo,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandstorm,sandalwood,salutations,sagman,s'okay,rsvp'd,rousted,rootin,romper,romanovs,rollercoaster,rolfie,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revoking,reverts,retrofit,retort,retinas,respirations,reprobate,replaying,repaint,renquist,renege,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,recriminations,rechecked,reassemble,rears,reamed,reacquaint,rayanne,ravish,rathole,raspail,rarest,rapists,rants,racketeer,quittin,quitters,quintessential,queremos,quellek,quelle,quasimodo,pyromaniac,puttanesca,puritanical,purer,puree,pungent,pummel,puedo,psychotherapist,prosecutorial,prosciutto,propositioning,procrastination,probationary,primping,preventative,prevails,preservatives,preachy,praetorians,practicality,powders,potus,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plummeted,plucking,plimpton,playthings,plastique,plainclothes,pinpointed,pinkus,pinks,pigskin,piffle,pictionary,piccata,photocopy,phobias,perignon,perfumes,pecks,pecked,patently,passable,parasailing,paramus,papier,paintbrush,pacer,paaiint,overtures,overthink,overstayed,overrule,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,orchestrate,oppress,opposable,oooohh,oomupwah,okeydokey,okaaay,ohashi,of'em,obscenities,oakie,o'gar,nurection,nostradamus,norther,norcom,nooch,nonsensical,nipped,nimbala,nervously,neckline,nebbleman,narwhal,nametag,n'n't,mycenae,muzak,muumuu,mumbled,mulvehill,muggings,muffet,mouthy,motivates,motaba,moocher,mongi,moley,moisturize,mohair,mocky,mmkay,mistuh,missis,misdeeds,mincemeat,miggs,miffed,methadone,messieur,menopausal,menagerie,mcgillicuddy,mayflowers,matrimonial,matick,masai,marzipan,maplewood,manzelle,mannequins,manhole,manhandle,malfunctions,madwoman,machiavelli,lynley,lynched,lurconis,lujack,lubricant,looove,loons,loofah,lonelyhearts,lollipops,lineswoman,lifers,lexter,lepner,lemony,leggy,leafy,leadeth,lazerus,lazare,lawford,languishing,lagoda,ladman,kundera,krinkle,krendler,kreigel,kowolski,knockdown,knifed,kneed,kneecap,kids'll,kennie,kenmore,keeled,kazootie,katzenmoyer,kasdan,karak,kapowski,kakistos,julyan,jockstrap,jobless,jiggly,jaunt,jarring,jabbering,irrigate,irrevocably,irrationally,ironies,invitro,intimated,intently,intentioned,intelligently,instill,instigator,instep,inopportune,innuendoes,inflate,infects,infamy,indiscretions,indiscreet,indio,indignities,indict,indecision,inconspicuous,inappropriately,impunity,impudent,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,idealist,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hunched,huffed,hubris,hubbub,hovercraft,houngan,hosed,horoscopes,hopelessness,hoodwinked,honorably,honeysuckle,homegirl,holiest,hippity,hildie,hieroglyphs,hexton,herein,heckle,heaping,healthilizer,headfirst,hatsue,harlot,hardwired,halothane,hairstyles,haagen,haaaaa,gutting,gummi,groundless,groaning,gristle,grills,graynamore,grabbin,goodes,goggle,glittering,glint,gleaming,glassy,girth,gimbal,giblets,gellers,geezers,geeze,garshaw,gargantuan,garfunkel,gangway,gandarium,gamut,galoshes,gallivanting,gainfully,gachnar,fusionlips,fusilli,furiously,frugal,fricking,frederika,freckling,frauds,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,fondling,fondled,fondle,folksy,fluttering,fluffing,floundering,flirtatious,flexing,flatterer,flaring,fixating,finchy,figurehead,fiendish,fertilize,ferment,fending,fellahs,feelers,fascinate,fantabulous,falsify,fallopian,faithless,fairer,fainter,failings,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,expelling,exorbitant,exhilarated,exertion,exerting,excercise,everbody,evaporated,escargot,escapee,erases,epizootics,epithelials,ephrum,entanglements,enslave,engrossed,emphatic,emeralds,ember,emancipated,elevates,ejaculate,effeminate,eccentricities,easygoing,earshot,dunks,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,donowitz,dominoes,diversions,distended,dissipate,disraeli,disqualify,disowned,dishwashing,disciplining,discerning,disappoints,dinged,digested,dicking,detonating,despising,depressor,depose,deport,dents,defused,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,deafening,dawning,dater,darkened,dappy,dallying,dagon,czechoslovakians,cuticles,cuteness,cupboards,culottes,cruisin,crosshairs,cronyn,criminalistics,creatively,creaming,crapping,cranny,cowed,contradicting,constipation,confining,confidences,conceiving,conceivably,concealment,compulsively,complainin,complacent,compels,communing,commode,comming,commensurate,columnists,colonoscopy,colchicine,coddling,clump,clubbed,clowning,cliffhanger,clang,cissy,choosers,choker,chiffon,channeled,chalet,cellmates,cathartic,caseload,carjack,canvass,canisters,candlestick,candlelit,camry,calzones,calitri,caldy,byline,butterball,bustier,burlap,bureaucrat,buffoons,buenas,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brays,brassieres,boysenberry,bowline,boooo,boonies,booklets,bookish,boogeyman,boogey,bogas,boardinghouse,bluuch,blundering,bluer,blowed,blotchy,blossomed,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,birdson,bings,bfmid,bfast,bettin,berkshires,benjamins,benevolence,benched,benatar,bellybutton,belabor,behooves,beddy,beaujolais,beattle,baxworth,baseless,barfing,bannish,bankrolled,banek,ballsy,ballpoint,baffling,badder,badda,bactine,backgammon,baako,aztreonam,authoritah,auctioning,arachtoids,apropos,aprons,apprised,apprehensive,anythng,antivenin,antichrist,anorexic,anoint,anguished,angioplasty,angio,amply,ampicillin,amphetamines,alternator,alcove,alabaster,airlifted,agrabah,affidavits,admonished,admonish,addled,addendum,accuser,accompli,absurdity,absolved,abrusso,abreast,aboot,abductions,abducting,aback,ababwa,aaahhhh,zorin,zinthar,zinfandel,zillions,zephyrs,zatarcs,zacks,youuu,yokels,yardstick,yammer,y'understand,wynette,wrung,wreaths,wowed,wouldn'ta,worming,wormed,workday,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,wenus,weirdoes,weaning,watusi,waponi,waistband,wackos,vouching,votre,vivica,viveca,vivant,vivacious,visor,visitin,visage,vicrum,vetted,ventriloquism,venison,varnsen,vaporized,vapid,vanstock,uuuuh,ushering,urologist,urination,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,uninsured,uninspired,unicycle,unhooked,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,understan,undershirt,underlings,underline,undercurrent,uncivilized,uncharacteristic,umpteenth,uglies,tuney,trumps,truckasaurus,trubshaw,trouser,tringle,trifling,trickster,trespassers,trespasser,traumas,trattoria,trashes,transgressions,trampling,tp'ed,toxoplasmosis,tounge,tortillas,topsy,topple,topnotch,tonsil,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,threepio,thoughtfully,thorkel,thommo,thing'll,thefts,that've,thanksgivings,tetherball,testikov,terraforming,tepid,tendonitis,tenboom,telex,teenybopper,tattered,tattaglias,tanneke,tailspin,tablecloth,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swaddling,swackhammer,svetkoff,supossed,superdad,sumptuous,sugary,sugai,subvert,substantiate,submersible,sublimating,subjugation,stymied,strychnine,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,steerage,steena,statuary,starlets,staggeringly,ssshhh,squaw,spurt,spungeon,spritzer,sprightly,sprays,sportswear,spoonful,splittin,splitsville,speedily,specialise,spastic,sparrin,souvlaki,southie,sourpuss,soupy,soundstage,soothes,somebody'd,softest,sociopathic,socialized,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,sloshed,sleight,skyrocket,skied,skewed,sixpence,sipowicz,singling,simulates,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shifu,shelve,shelbyville,sheepskin,sharpens,shaquille,shanshu,servings,sequined,seizes,seashells,scrambler,scopes,schnauzer,schmo,schizoid,scampered,savagely,saudis,santas,sandovals,sanding,saleswoman,sagging,s'cuse,rutting,ruthlessly,runneth,ruffians,rubes,rosalita,rollerblades,rohypnol,roasts,roadies,ritten,rippling,ripples,rigoletto,richardo,rethought,reshoot,reserving,reseda,rescuer,reread,requisitions,repute,reprogram,replenish,repetitious,reorganizing,reinventing,reinvented,reheat,refrigerators,reenter,recruiter,recliner,rawdy,rashes,rajeski,raison,raisers,rages,quinine,questscape,queller,pygmalion,pushers,pusan,purview,pumpin,pubescent,prudes,provolone,propriety,propped,procrastinate,processional,preyed,pretrial,portent,pooling,poofy,polloi,policia,poacher,pluses,pleasuring,platitudes,plateaued,plaguing,pittance,pinheads,pincushion,pimply,pimped,piggyback,piecing,phillipe,philipse,philby,pharaohs,petyr,petitioner,peshtigo,pesaram,persnickety,perpetrate,percolating,pepto,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,paltrow,palamon,padlock,paddling,oversleep,overheating,overdosed,overcharge,overblown,outrageously,ornery,opportune,oooooooooh,oohhhh,ohhhhhh,ogres,odorless,obliterated,nyong,nymphomaniac,ntozake,novocain,nough,nonnie,nonissue,nodules,nightmarish,nightline,niceties,newsman,needra,nedry,necking,navour,nauseam,nauls,narim,namath,nagged,naboo,n'sync,myslexia,mutator,mustafi,musketeer,murtaugh,murderess,munching,mumsy,muley,mouseville,mortifying,morgendorffers,moola,montel,mongoloid,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,millgate,mettle,metricconverter,meteors,menorah,mengele,melding,meanness,mcgruff,mcarnold,matzoh,matted,mastectomy,massager,marveling,marooned,marmaduke,marick,manhandled,manatees,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeovers,maiming,machismo,lumpectomy,lumbering,lucci,lording,lorca,lookouts,loogie,loners,loathed,lissen,lighthearted,lifer,lickin,lewen,levitation,lestercorp,lessee,lentils,legislate,legalizing,lederhosen,lawmen,lasskopf,lardner,lambeau,lamagra,ladonn,lactic,lacquer,labatier,krabappel,kooks,knickknacks,klutzy,kleynach,klendathu,kinross,kinkaid,kind'a,ketch,kesher,karikos,karenina,kanamits,junshi,jumbled,joust,jotted,jobson,jingling,jigalong,jerries,jellies,jeeps,javna,irresistable,internist,intercranial,inseminated,inquisitor,infuriate,inflating,infidelities,incessantly,incensed,incase,incapacitate,inasmuch,inaccuracies,imploding,impeding,impediments,immaturity,illegible,iditarod,icicles,ibuprofen,i'i'm,hymie,hydrolase,hunker,humps,humons,humidor,humdinger,humbling,huggin,huffing,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honks,honeymooners,homily,homeopathic,hitchhikers,hissed,hillnigger,hexavalent,hewwo,hershe,hermey,hergott,henny,hennigans,henhouse,hemolytic,helipad,heifer,hebrews,hebbing,heaved,headlock,harrowing,harnessed,hangovers,handi,handbasket,halfrek,hacene,gyges,guys're,gundersons,gumption,gruntmaster,grubs,grossie,groped,grins,greaseball,gravesite,gratuity,granma,grandfathers,grandbaby,gradski,gracing,gossips,gooble,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glares,givers,ginza,gimmie,gimmee,gennero,gemme,gazpacho,gazed,gassy,gargling,gandhiji,galvanized,gallbladder,gaaah,furtive,fumigation,fucka,fronkonsteen,frills,freezin,freewald,freeloader,frailty,forger,foolhardy,fondest,fomin,followin,follicle,flotation,flopping,floodgates,flogged,flicked,flenders,fleabag,fixings,fixable,fistful,firewater,firelight,fingerbang,finalizing,fillin,filipov,fiderer,felling,feldberg,feign,faunia,fatale,farkus,fallible,faithfulness,factoring,eyeful,extramarital,exterminated,exhume,exasperated,eviscerate,estoy,esmerelda,escapades,epoxy,enticed,enthused,entendre,engrossing,endorphins,emptive,emmys,eminently,embezzler,embarressed,embarrassingly,embalmed,eludes,eling,elated,eirie,egotitis,effecting,eerily,eecom,eczema,earthy,earlobes,eally,dyeing,dwells,duvet,duncans,dulcet,droves,droppin,drools,drey'auc,downriver,domesticity,dollop,doesnt,dobler,divulged,diversionary,distancing,dispensers,disorienting,disneyworld,dismissive,disingenuous,disheveled,disfiguring,dinning,dimming,diligently,dilettante,dilation,dickensian,diaphragms,devastatingly,destabilize,desecrate,deposing,deniece,demony,delving,delicates,deigned,defraud,deflower,defibrillator,defiantly,defenceless,defacing,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,darwinism,darnit,darks,danke,danieljackson,dangled,cytoxan,cutout,cutlery,curveball,curfews,cummerbund,crunches,crouched,crisps,cripples,crilly,cribs,crewman,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crackheads,coworker,couldn't've,corwins,coriander,copiously,convenes,contraceptives,contingencies,contaminating,conniption,condiment,concocting,comprehending,complacency,commendatore,comebacks,com'on,collarbone,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,closeted,cloistered,cleve,cleats,clarifying,clapped,cinnabar,chunnel,chumps,cholinesterase,choirboy,chocolatey,chlamydia,chigliak,cheesie,chauvinistic,chasm,chartreuse,charo,charnier,chapil,chalked,chadway,certifiably,cellulite,celled,cavalcade,cataloging,castrated,cassio,cashews,cartouche,carnivore,carcinogens,capulet,captivated,capt'n,cancellations,campin,callate,callar,caffeinated,cadavers,cacophony,cackle,buzzes,buttoning,busload,burglaries,burbs,buona,bunions,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,briefings,brewskies,breathalyzer,breakups,bratwurst,brania,braiding,brags,braggin,bradywood,bottomed,bossa,bordello,bookshelf,boogida,bondsman,bolder,boggles,bludgeoned,blowtorch,blotter,blips,blemish,bleaching,blainetologists,blading,blabbermouth,birdseed,bimmel,biloxi,biggly,bianchinni,betadine,berenson,belus,belloq,begets,befitting,beepers,beelzebub,beefed,bedridden,bedevere,beckons,beaded,baubles,bauble,battleground,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,bagman,baffles,backroom,babysat,baboons,averse,audiotape,auctioneer,atten,atcha,astonishment,arugula,arroz,antihistamines,annoyances,anesthesiology,anatomically,anachronism,amiable,amaretto,allahu,alight,aimin,ailment,afterglow,affronte,advil,adrenals,actualization,acrost,ached,accursed,accoutrements,absconded,aboveboard,abetted,aargh,aaaahh,zuwicky,zolda,ziploc,zakamatak,youve,yippie,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,y'mean,y'are,wuthering,wreaks,worrisome,workiiing,wooooooo,wonky,womanizing,wolodarsky,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,windthorne,windsurfing,windermere,wiggled,wiggen,whwhat,whodunit,whoaaa,whittling,whitesnake,whereof,wheezing,wheeze,whatd'ya,whataya,whammo,whackin,wellll,weightless,weevil,wedgies,webbing,weasly,wayside,waxes,waturi,washy,washrooms,wandell,waitaminute,waddya,waaaah,vornac,vishnoor,virulent,vindictiveness,vinceres,villier,vigeous,vestigial,ventilate,vented,venereal,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,urethra,upstaged,uploading,unwrapping,unwieldy,untapped,unsatisfied,unquenchable,unnerved,unmentionable,unlovable,unknowns,uninformed,unimpressed,unhappily,unguarded,unexplored,undergarment,undeniably,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,ululd,uhhhm,tweeze,tutsami,tushy,tuscarora,turkle,turghan,turbinium,tubers,trucoat,troxa,tropicana,triquetra,trimmers,triceps,trespassed,traya,traumatizing,transvestites,trainors,tradin,trackers,townies,tourelles,toucha,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tizzy,tippers,timmi,thwap,thusly,ththe,thrusts,throwers,throwed,throughway,thickening,thermonuclear,thelwall,thataway,terrifically,tendons,teleportation,telepathically,telekinetic,teetering,teaspoons,tarantulas,tapas,tanned,tangling,tamales,tailors,tahitian,tactful,tachy,tablespoon,syrah,synchronicity,synch,synapses,swooning,switchman,swimsuits,sweltering,sweetly,suvolte,suslov,surfed,supposition,suppertime,supervillains,superfluous,superego,sunspots,sunning,sunless,sundress,suckah,succotash,sublevel,subbasement,studious,striping,strenuously,straights,stonewalled,stillness,stilettos,stevesy,steno,steenwyck,stargates,stammering,staedert,squiggly,squiggle,squashing,squaring,spreadsheet,spramp,spotters,sporto,spooking,splendido,spittin,spirulina,spiky,spate,spartacus,spacerun,soonest,something'll,someth,somepin,someone'll,sofas,soberly,sobered,snowmen,snowbank,snowballing,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,slumlord,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skeptic,sitarides,sistah,sipped,sindell,simpletons,simony,silkwood,silks,silken,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,sheeny,shapetype,shaming,shallows,shackle,shabbily,shabbas,seppuku,senility,semite,semiautomatic,selznick,secretarial,sebacio,scuzzy,scummy,scrutinized,scrunchie,scribbled,scotches,scolded,scissor,schlub,scavenging,scarin,scarfing,scallions,scald,savour,savored,saute,sarcoidosis,sandbar,saluted,salish,saith,sailboats,sagittarius,sacre,saccharine,sacamano,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotisserie,rootie,roofy,roofie,romanticize,rittle,ristorante,rippin,rinsing,ringin,rincess,rickety,reveling,retest,retaliating,restorative,reston,restaurateur,reshoots,resetting,resentments,reprogramming,repossess,repartee,renzo,remore,remitting,remeber,relaxants,rejuvenate,rejections,regenerated,refocus,referrals,reeno,recycles,recrimination,reclining,recanting,reattach,reassigning,razgul,raved,rattlesnakes,rattles,rashly,raquetball,ransack,raisinettes,raheem,radisson,radishes,raban,quoth,qumari,quints,quilts,quilting,quien,quarreled,purty,purblind,punchbowl,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protectin,propping,proportioned,prophylactic,proofed,prompter,procreate,proclivities,prioritizing,prinze,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,pralines,pragmatist,powerbar,pottie,pottersville,potsie,potholes,posses,posies,portkey,porterhouse,pornographers,poring,poppycock,poppers,pomponi,pokin,poitier,podiatry,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pistachios,pirated,pinochle,pineapples,pinafore,pimples,piggly,piddling,picon,pickpockets,picchu,physiologically,physic,phobic,philandering,phenomenally,pheasants,pewter,petticoat,petronis,petitioning,perturbed,perpetuating,permutat,perishable,perimeters,perfumed,percocet,per'sus,pepperjack,penalize,pelting,pellet,peignoir,pedicures,peckers,pecans,pawning,paulsson,pattycake,patrolmen,patois,pathos,pasted,parishioner,parcheesi,parachuting,papayas,pantaloons,palpitations,palantine,paintballing,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlast,outlander,out've,orphey,orchestrating,openers,ooooooo,okies,ohhhhhhhhh,ohhhhhhhh,ogling,offbeat,obsessively,obeyed,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuances,nourishing,nosedive,norbu,nomlies,nomine,nixed,nihilist,nightshift,newmeat,neglectful,neediness,needin,naphthalene,nanocytes,nanite,naivete,n'yeah,mystifying,myhnegon,mutating,musing,mulled,muggy,muerto,muckraker,muchachos,mountainside,motherless,mosquitos,morphed,mopped,moodoo,moncho,mollem,moisturiser,mohicans,mocks,mistresses,misspent,misinterpretation,miscarry,minuses,mindee,mimes,millisecond,milked,mightn't,mightier,mierzwiak,microchips,meyerling,mesmerizing,mershaw,meecrob,medicate,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,matzah,matriarch,masturbated,masselin,martialed,marlboros,marksmanship,marinate,marchin,manicured,malnourished,malign,majorek,magnon,magnificently,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lydells,lusts,lucite,lubricants,lopper,lopped,loneliest,lonelier,lomez,lojack,loath,liquefy,lippy,limps,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,leotards,leanin,laxatives,lavished,latka,lanyard,lanky,landmines,lameness,laddies,lacerated,labored,l'amour,kreskin,kovitch,kournikova,kootchy,konoss,knknow,knickety,knackety,kmart,klicks,kiwanis,kissable,kindergartners,kilter,kidnet,kid'll,kicky,kickbacks,kickback,kholokov,kewpie,kendo,katra,kareoke,kafelnikov,kabob,junjun,jumba,julep,jordie,jondy,jolson,jenoff,jawbone,janitorial,janiro,ipecac,invigorated,intruded,intros,intravenously,interruptus,interrogations,interject,interfacing,interestin,insuring,instilled,insensitivity,inscrutable,inroads,innards,inlaid,injector,ingratitude,infuriates,infra,infliction,indelicate,incubators,incrimination,inconveniencing,inconsolable,incestuous,incas,incarcerate,inbreeding,impudence,impressionists,impeached,impassioned,imipenem,idling,idiosyncrasies,icebergs,hypotensive,hydrochloride,hushed,humus,humph,hummm,hulking,hubcaps,hubald,howya,howbout,how'll,housebroken,hotwire,hotspots,hotheaded,horrace,hopsfield,honto,honkin,honeymoons,homewrecker,hombres,hollers,hollerin,hoedown,hoboes,hobbling,hobble,hoarse,hinky,highlighters,hexes,heru'ur,hernias,heppleman,hell're,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,hayseed,haveo,hauls,hasten,harridan,harpoons,hardens,harcesis,harbouring,hangouts,halkein,haleh,halberstam,hairnet,hairdressers,hacky,haaaa,h'yah,gusta,gushy,gurgling,guilted,gruel,grudging,grrrrrr,grosses,groomsmen,griping,gravest,gratified,grated,goulash,goopy,goona,goodly,godliness,godawful,godamn,glycerin,glutes,glowy,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gilbey,gigglepuss,ghora,gestating,gelato,geishas,gearshift,gayness,gasped,gaslighting,garretts,garba,gablyczyck,g'head,fumigating,fumbling,fudged,fuckwad,fuck're,fuchsia,fretting,freshest,frenchies,freezers,fredrica,fraziers,fraidy,foxholes,fourty,fossilized,forsake,forfeits,foreclosed,foreal,footsies,florists,flopped,floorshow,floorboard,flinching,flecks,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fiver,fitzy,fishsticks,finetti,finelli,finagle,filko,fieldstone,fibber,ferrini,feedin,feasting,favore,fathering,farrouhk,farmin,fairytale,fairservice,factoid,facedown,fabled,eyeballin,extortionist,exquisitely,expedited,exorcise,existentialist,execs,exculpatory,exacerbate,everthing,eventuality,evander,euphoric,euphemisms,estamos,erred,entitle,enquiries,enormity,enfants,endive,encyclopedias,emulating,embittered,effortless,ectopic,ecirc,easely,earphones,earmarks,dweller,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,druthers,druggist,drossos,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dozing,dotes,dorkface,doorknobs,doohickey,donnatella,doncha,domicile,dokos,dobermans,dizzying,divola,ditsy,distaste,disservice,dislodged,dislodge,disinherit,disinformation,discounting,dinka,dimly,digesting,diello,diddling,dictatorships,dictators,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,derris,deplore,deplete,demure,demolitions,demean,delish,delbruck,delaford,degaulle,deftly,deformity,deflate,definatly,defector,decrypted,decontamination,decapitate,decanter,dardis,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechoslovakian,cymbal,cyberdyne,cutoffs,cuticle,curvaceous,curiousity,crowing,crowed,croutons,cropped,criminy,crescentis,crashers,cranwell,coverin,courtrooms,countenance,cosmically,cosign,corroboration,coroners,cornflakes,copperpot,copperhead,copacetic,coordsize,convulsing,consults,conjures,congenial,concealer,compactor,commercialism,cokey,cognizant,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clods,clocking,clings,clavicle,classless,clashing,clanking,clanging,clamping,civvies,citywide,circulatory,circuited,chronisters,chromic,choos,chloroformed,chillun,cheesed,chatterbox,chaperoned,channukah,cerebellum,centerpieces,centerfold,ceecee,ccedil,cavorting,cavemen,cauterized,cauldwell,catting,caterine,cassiopeia,carves,cartwheel,carpeted,carob,caressing,carelessly,careening,capricious,capitalistic,capillaries,candidly,camaraderie,callously,calfskin,caddies,buttholes,busywork,busses,burps,burgomeister,bunkhouse,bungchow,bugler,buffets,buffed,brutish,brusque,bronchitis,bromden,brolly,broached,brewskis,brewin,brean,breadwinner,brana,bountiful,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bombosity,bolting,boilerplate,bluey,blowback,blouses,bloodsuckers,bloodstained,bloat,bleeth,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,biltmore,bilked,big'uns,bidet,besotted,bernheim,benegas,bendiga,belushi,bellboys,belittling,behinds,begone,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,bathes,batak,baser,baseballs,barbella,bankrolling,bandaged,baerly,backlog,backin,babying,azkaban,awwwww,aviary,authorizes,austero,aunty,attics,atreus,astounded,astonish,artemus,arses,arintero,appraiser,apathetic,anybody'd,anxieties,anticlimactic,antar,anglos,angleman,anesthetist,androscoggin,andolini,andale,amway,amuck,amniocentesis,amnesiac,americano,amara,alvah,altruism,alternapalooza,alphabetize,alpaca,allus,allergist,alexandros,alaikum,akimbo,agoraphobia,agides,aggrhh,aftertaste,adoptions,adjuster,addictions,adamantium,activator,accomplishes,aberrant,aaaaargh,aaaaaaaaaaaaa,a'ight,zzzzzzz,zucchini,zookeeper,zirconia,zippers,zequiel,zellary,zeitgeist,zanuck,zagat,you'n,ylang,yes'm,yenta,yecchh,yecch,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,worshiping,wormy,wormtail,wormholes,woosh,wollsten,wolfing,woefully,wobbling,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whistled,whist,whinny,wheelies,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whacks,wewell,wetsuit,welluh,weeps,waylander,wavin,wassail,wasnt,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vorhees,voldemort,vivre,vittles,vindaloo,videogames,vichyssoise,vicarious,vesuvius,verguenza,ven't,velveteen,velour,velociraptor,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,vacuums,usurp,usernum,us'll,urinals,unyielding,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unpretentious,unnerstand,unmade,unimpeachable,unfashionable,underwrite,underlining,underling,underestimates,underappreciated,uncouth,uncork,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,ughuh,typewriters,twitches,twitched,twirly,twinkling,twinges,twiddling,turners,turnabout,tumblin,tryed,trowel,trousseau,trivialize,trifles,tribianni,trenchcoat,trembled,traumatize,transitory,transients,transfuse,transcribing,tranq,trampy,traipsed,trainin,trachea,traceable,touristy,toughie,toscanini,tortola,tortilla,torreon,toreador,tommorrow,tollbooth,tollans,toidy,togas,tofurkey,toddling,toddies,toasties,toadstool,to've,tingles,timin,timey,timetables,tightest,thuggee,thrusting,thrombus,throes,thrifty,thornharts,thinnest,thicket,thetas,thesulac,tethered,testaburger,tersenadine,terrif,terdlington,tepui,temping,tector,taxidermy,tastebuds,tartlets,tartabull,tar'd,tantamount,tangy,tangles,tamer,tabula,tabletops,tabithia,szechwan,synthedyne,svenjolly,svengali,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,superstore,supercilious,suntac,sunburned,summercliff,sullied,sugared,suckle,subtleties,substantiated,subsides,subliminal,subhuman,strowman,stroked,stroganoff,streetlight,straying,strainer,straighter,straightener,stoplight,stirrups,stewing,stereotyping,stepmommy,stephano,stashing,starshine,stairwells,squatsie,squandering,squalid,squabbling,squab,sprinkling,spreader,spongy,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,spearchucker,spatulas,southtown,soused,soshi,sorter,sorrowful,sooth,some'in,soliloquy,soiree,sodomized,sobriki,soaping,snows,snowcone,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smarten,smallish,slushy,slurring,sluman,slithers,slippin,sleuthing,sleeveless,skinless,skillfully,sketchbook,skagnetti,sista,sinning,singularly,sinewy,silverlake,siguto,signorina,sieve,sidearms,shying,shunning,shtud,shrieks,shorting,shortbread,shopkeepers,shmancy,shizzit,shitheads,shitfaced,shipmates,shiftless,shelving,shedlow,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,serviceable,sepsis,senores,sendin,semis,semanski,selflessly,seinfelds,seers,seeps,seductress,secaucus,sealant,scuttling,scusa,scrunched,scissorhands,schreber,schmancy,scamps,scalloped,savoir,savagery,sarong,sarnia,santangel,samool,sallow,salino,safecracker,sadism,sacrilegious,sabrini,sabath,s'aright,ruttheimer,rudest,rubbery,rousting,rotarian,roslin,roomed,romari,romanica,rolltop,rolfski,rockettes,roared,ringleader,riffing,ribcage,rewired,retrial,reting,resuscitated,restock,resale,reprogrammed,replicant,repentant,repellant,repays,repainting,renegotiating,rendez,remem,relived,relinquishes,relearn,relaxant,rekindling,rehydrate,refueled,refreshingly,refilling,reexamine,reeseman,redness,redeemable,redcoats,rectangles,recoup,reciprocated,reassessing,realy,realer,reachin,re'kali,rawlston,ravages,rappaports,ramoray,ramming,raindrops,rahesh,radials,racists,rabartu,quiches,quench,quarreling,quaintly,quadrants,putumayo,put'em,purifier,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,pterodactyl,psychodrama,psats,protestations,protectee,prosaic,propositioned,proclivity,probed,printouts,prevision,pressers,preset,preposition,preempt,preemie,preconceptions,prancan,powerpuff,potties,potpie,poseur,porthole,poops,pooping,pomade,polyps,polymerized,politeness,polisher,polack,pocketknife,poatia,plebeian,playgroup,platonically,platitude,plastering,plasmapheresis,plaids,placemats,pizzazz,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pileup,pilates,pigmen,pieeee,phrased,photocopies,phoebes,philistines,philanderer,pheromone,phasers,pfeffernuesse,pervs,perspire,personify,perservere,perplexed,perpetrating,perkiness,perjurer,periodontist,perfunctory,perdido,percodan,pentameter,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,paxcow,paused,patted,parkishoff,parkers,pardoning,paraplegic,paraphrasing,paperers,papered,pangs,paneling,palooza,palmed,palmdale,palatable,pacify,pacified,owwwww,oversexed,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outmaneuver,outfoxed,oughtn't,ostentatious,oshun,orthopedist,or'derves,ophthalmologist,operagirl,oozes,oooooooh,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrical,obeys,obeah,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,nourished,nonspecific,noing,noinch,nohoho,nobler,nitwits,newsprint,newspaperman,newscaster,neuropathy,netherworld,neediest,navasky,narcissists,napped,nafta,mache,mykonos,mutilating,mutherfucker,mutha,mutates,mutate,musn't,murchy,multitasking,mujeeb,mudslinging,muckraking,mousetrap,mourns,mournful,motherf,mostro,morphing,morphate,moralistic,moochy,mooching,monotonous,monopolize,monocle,molehill,moland,mofet,mockup,mobilizing,mmmmmmm,mitzvahs,mistreating,misstep,misjudge,misinformation,misdirected,miscarriages,miniskirt,mindwarped,minced,milquetoast,miguelito,mightily,midstream,midriff,mideast,microbe,methuselah,mesdames,mescal,men'll,memma,megaton,megara,megalomaniac,meeee,medulla,medivac,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,mateys,marshack,markles,marketable,mansiere,manservant,manse,manhandling,mallomars,malcontent,malaise,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,machu,macado,m'boy,m'appelle,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,loincloth,lofts,lodgers,lobbing,loaner,livered,liqueur,ligourin,lifesaving,lifeguards,lifeblood,liaisons,let'em,lesbianism,lence,lemonlyman,legitimize,leadin,lazars,lazarro,lawyering,laugher,laudanum,latrines,lations,laters,lapels,lakefront,lahit,lafortunata,lachrymose,l'italien,kwaini,kruczynski,kramerica,kowtow,kovinsky,korsekov,kopek,knowakowski,knievel,knacks,kiowas,killington,kickball,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,karajan,kamerev,kaggs,jujyfruit,jostled,jonestown,jokey,joists,jocko,jimmied,jiggled,jests,jenzen,jenko,jellyman,jedediah,jealitosis,jaunty,jarmel,jankle,jagoff,jagielski,jackrabbits,jabbing,jabberjaw,izzat,irresponsibly,irrepressible,irregularity,irredeemable,inuvik,intuitions,intubated,intimates,interminable,interloper,intercostal,instyle,instigate,instantaneously,ining,ingrown,ingesting,infusing,infringe,infinitum,infact,inequities,indubitably,indisputable,indescribably,indentation,indefinable,incontrovertible,inconsequential,incompletes,incoherently,inclement,incidentals,inarticulate,inadequacies,imprudent,improprieties,imprison,imprinted,impressively,impostors,importante,imperious,impale,immodest,immobile,imbedded,imbecilic,illegals,idn't,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,hotbed,hosing,hosers,horsehair,homebody,homebake,holing,holies,hoisting,hogwallop,hocks,hobbits,hoaxes,hmmmmm,hisses,hippest,hillbillies,hilarity,heurh,herniated,hermaphrodite,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heeey,hedda,heartbeats,heaped,healers,headstart,headsets,headlong,hawkland,havta,haulin,harvey'll,hanta,hansom,hangnail,handstand,handrail,handoff,hallucinogen,hallor,halitosis,haberdashery,gypped,guy'll,gumbel,guerillas,guava,guardrail,grunther,grunick,groppi,groomer,grodin,gripes,grinds,grifters,gretch,greevey,greasing,graveyards,grandkid,grainy,gouging,gooney,googly,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,glues,gloriously,glengarry,glassware,glamor,gimmicks,giggly,giambetti,ghoulish,ghettos,ghali,gether,geriatrics,gerbils,geosynchronous,georgio,gente,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,gantu,gangy,gangly,gangland,galling,gadda,furrowed,funnies,funkytown,fugimotto,fudging,fuckeen,frustrates,froufrou,froot,fromberge,frizzies,fritters,frightfully,friendliest,freeloading,freelancing,freakazoid,fraternization,framers,fornication,fornicating,forethought,footstool,foisting,focussing,focking,flurries,fluffed,flintstones,fledermaus,flayed,flawlessly,flatters,flashbang,flapped,fishies,firmer,fireproof,firebug,fingerpainting,finessed,findin,financials,finality,fillets,fiercest,fiefdom,fibbing,fervor,fentanyl,fenelon,fedorchuk,feckless,feathering,faucets,farewells,fantasyland,fanaticism,faltered,faggy,faberge,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,excels,exasperating,exacting,everybody'd,evasions,espressos,esmail,errrr,erratically,eroding,ernswiler,epcot,enthralled,ensenada,enriching,enrage,enhancer,endear,encrusted,encino,empathic,embezzle,emanates,electricians,eking,egomaniacal,egging,effacing,ectoplasm,eavesdropped,dummkopf,dugray,duchaisne,drunkard,drudge,droop,droids,drips,dripped,dribbles,drazens,downy,downsize,downpour,dosages,doppelganger,dopes,doohicky,dontcha,doneghy,divining,divest,diuretics,diuretic,distrustful,disrupts,dismemberment,dismember,disinfect,disillusionment,disheartening,discourteous,discotheque,discolored,dirtiest,diphtheria,dinks,dimpled,didya,dickwad,diatribes,diathesis,diabetics,deviants,detonates,detests,detestable,detaining,despondent,desecration,derision,derailing,deputized,depressors,dependant,dentures,denominators,demur,demonology,delts,dellarte,delacour,deflated,defib,defaced,decorators,deaqon,davola,datin,darwinian,darklighters,dandelions,dampened,damaskinos,dalrimple,d'peshu,d'hoffryn,d'astier,cynics,cutesy,cutaway,curmudgeon,curdle,culpability,cuisinart,cuffing,crypts,cryptid,crunched,crumblers,crudely,crosscheck,croon,crissake,crevasse,creswood,creepo,creases,creased,creaky,cranks,crabgrass,coveralls,couple'a,coughs,coslaw,corporeal,cornucopia,cornering,corks,cordoned,coolly,coolin,cookbooks,contrite,contented,constrictor,confound,confit,confiscating,condoned,conditioners,concussions,comprendo,comers,combustible,combusted,collingswood,coldness,coitus,codicil,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleanses,claymores,clammed,chugging,chronically,christsakes,choque,chompers,chiseling,chirpy,chirp,chinks,chingachgook,chickenpox,chickadee,chewin,chessboard,chargin,chanteuse,chandeliers,chamdo,chagrined,chaff,certs,certainties,cerreno,cerebrum,censured,cemetary,caterwauling,cataclysmic,casitas,cased,carvel,carting,carrear,carolling,carolers,carnie,cardiogram,carbuncle,capulets,canines,candaules,canape,caldecott,calamitous,cadillacs,cachet,cabeza,cabdriver,buzzards,butai,businesswomen,bungled,bumpkins,bummers,bulldoze,buffybot,bubut,bubbies,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,briskly,briefcases,bricked,breezing,breeher,breakable,breadstick,bravenet,braved,brandies,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boutonniere,bossed,bosomy,borans,boosts,bookshelves,bookends,boneless,bombarding,bollo,boinked,boink,bluest,bluebells,bloodshot,blockhead,blockbusters,blithely,blather,blankly,bladders,blackbeard,bitte,bippy,biogenetics,bilge,bigglesworth,bicuspids,beususe,betaseron,besmirch,bernece,bereavement,bentonville,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,behrle,beginnin,begining,beenie,beefs,beechwood,becau,beaverhausen,beakers,bazillion,baudouin,barrytown,barringtons,barneys,barbs,barbers,barbatus,bankrupted,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,automatics,authenticate,aught,aubyn,attired,attagirl,atrophied,asystole,astroturf,assertiveness,artichokes,arquillians,aright,archenemy,appraise,appeased,antin,anspaugh,anesthetics,anaphylactic,amscray,ambivalence,amalio,alriiight,alphabetized,alpena,alouette,allora,alliteration,allenwood,allegiances,algerians,alcerro,alastor,ahaha,agitators,aforethought,advertises,admonition,adirondacks,adenoids,acupuncturist,acula,actuarial,activators,actionable,achingly,accusers,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","),
45761 male_names:"james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,sammy,kristopher,levi,marcos,gustavo,jake,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,benedict,mose,hong,isreal,garret,fausto,arlen,zack,modesto,francesco,manual,gaylord,gaston,filiberto,deangelo,michale,granville,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,hosea,shad,santo,rudolf,rolf,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,elden,darell,broderick,alonso".split(",")},module.exports=frequency_lists;
45763 },{}],
4:[function(require,module,exports){
45764 var feedback,matching,scoring,time,time_estimates,zxcvbn;matching=require("./matching"),scoring=require("./scoring"),time_estimates=require("./time_estimates"),feedback=require("./feedback"),time=function(){return(new Date).getTime()},zxcvbn=function(e,t){var i,n,c,s,a,r,m,o,u,g,_;for(null==t&&(t=[]),g=time(),u=[],c=
0,s=t.length;c
<s;c++)i=t[c],
"string"!=(m=typeof i)&&
"number"!==m&&
"boolean"!==m||u.push(i.toString().toLowerCase());matching.set_user_input_dictionary(u),a=matching.omnimatch(e),o=scoring.most_guessable_match_sequence(e,a),o.calc_time=time()-g,n=time_estimates.estimate_attack_times(o.guesses);for(r in n)_=n[r],o[r]=_;return o.feedback=feedback.get_feedback(o.score,o.sequence),o},module.exports=zxcvbn;
45766 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45767 var DATE_MAX_YEAR,DATE_MIN_YEAR,DATE_SPLITS,GRAPHS,L33T_TABLE,RANKED_DICTIONARIES,REGEXEN,adjacency_graphs,build_ranked_dict,frequency_lists,lst,matching,name,scoring;frequency_lists=require(
"./frequency_lists"),adjacency_graphs=require(
"./adjacency_graphs"),scoring=require(
"./scoring"),build_ranked_dict=function(e){var t,n,r,i,a;for(i={},t=
1,r=
0,n=e.length;r
<n;r++)a=e[r],i[a]=t,t+=
1;return i},RANKED_DICTIONARIES={};for(name in frequency_lists)lst=frequency_lists[name],RANKED_DICTIONARIES[name]=build_ranked_dict(lst);GRAPHS={qwerty:adjacency_graphs.qwerty,dvorak:adjacency_graphs.dvorak,keypad:adjacency_graphs.keypad,mac_keypad:adjacency_graphs.mac_keypad},L33T_TABLE={a:[
"4",
"@"],b:[
"8"],c:[
"(",
"{",
"[",
"<"],e:[
"3"],g:[
"6",
"9"],i:[
"1",
"!",
"|"],l:[
"1",
"|",
"7"],o:[
"0"],s:[
"$",
"5"],t:[
"+",
"7"],x:[
"%"],z:[
"2"]},REGEXEN={recent_year:/
19\d\d|
200\d|
201\d/g},DATE_MAX_YEAR=
2050,DATE_MIN_YEAR=
1e3,DATE_SPLITS={
4:[[
1,
2],[
2,
3]],
5:[[
1,
3],[
2,
3]],
6:[[
1,
2],[
2,
4],[
4,
5]],
7:[[
1,
3],[
2,
3],[
4,
5],[
4,
6]],
8:[[
2,
4],[
4,
6]]},matching={empty:function(e){var t;return
0===function(){var n;n=[];for(t in e)n.push(t);return n}().length},extend:function(e,t){return e.push.apply(e,t)},translate:function(e,t){var n;return function(){var r,i,a,s;for(a=e.split(
""),s=[],i=
0,r=a.length;i
<r;i++)n=a[i],s.push(t[n]||n);return s}().join(
"")},mod:function(e,t){return(e%t+t)%t},sorted:function(e){return e.sort(function(e,t){return e.i-t.i||e.j-t.j})},omnimatch:function(e){var t,n,r,i,a;for(i=[],r=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match],a=
0,t=r.length;a
<t;a++)n=r[a],this.extend(i,n.call(this,e));return this.sorted(i)},dictionary_match:function(e,t){var n,r,i,a,s,o,h,u,c,l,_,f,d,p;null==t&&(t=RANKED_DICTIONARIES),s=[],a=e.length,u=e.toLowerCase();for(n in t)for(l=t[n],r=o=
0,_=a;
0<=_?o
<_:o>_;r=
0<=_?++o:--o)for(i=h=f=r,d=a;f<=d?h
<d:h>d;i=f<=d?++h:--h)u.slice(r,+i+
1||
9e9)in l&&(p=u.slice(r,+i+
1||
9e9),c=l[p],s.push({pattern:"dictionary",i:r,j:i,token:e.slice(r,+i+
1||
9e9),matched_word:p,rank:c,dictionary_name:n,reversed:!
1,l33t:!
1}));return this.sorted(s)},reverse_dictionary_match:function(e,t){var n,r,i,a,s,o;for(null==t&&(t=RANKED_DICTIONARIES),o=e.split("").reverse().join(""),i=this.dictionary_match(o,t),a=
0,n=i.length;a
<n;a++)r=i[a],r.token=r.token.split(
"").reverse().join(
""),r.reversed=!
0,s=[e.length-
1-r.j,e.length-
1-r.i],r.i=s[
0],r.j=s[
1];return this.sorted(i)},set_user_input_dictionary:function(e){return RANKED_DICTIONARIES.user_inputs=build_ranked_dict(e.slice())},relevant_l33t_subtable:function(e,t){var n,r,i,a,s,o,h,u,c,l;for(s={},o=e.split(
""),a=
0,r=o.length;a
<r;a++)n=o[a],s[n]=!
0;l={};for(i in t)c=t[i],h=function(){var e,t,n;for(n=[],t=
0,e=c.length;t
<e;t++)u=c[t],u in s&&n.push(u);return n}(),h.length
>0&&(l[i]=h);return l},enumerate_l33t_subs:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;a=function(){var t;t=[];for(i in e)t.push(i);return t}(),p=[[]],n=function(e){var t,n,r,a,s,o,h,u;for(n=[],s={},o=
0,a=e.length;o
<a;o++)h=e[o],t=function(){var e,t,n;for(n=[],u=t=
0,e=h.length;t
<e;u=++t)i=h[u],n.push([i,u]);return n}(),t.sort(),r=function(){var e,n,r;for(r=[],u=n=
0,e=t.length;n
<e;u=++n)i=t[u],r.push(i+
","+u);return r}().join(
"-"),r in s||(s[r]=!
0,n.push(h));return n},r=function(t){var i,a,s,o,h,u,c,l,_,f,d,g,m,A,E,y;if(t.length){for(a=t[
0],m=t.slice(
1),c=[],d=e[a],l=
0,h=d.length;l
<h;l++)for(o=d[l],_=
0,u=p.length;_
<u;_++){for(A=p[_],i=-
1,s=f=
0,g=A.length;
0<=g?f
<g:f>g;s=
0<=g?++f:--f)if(A[s][
0]===o){i=s;break}i===-
1?(y=A.concat([[o,a]]),c.push(y)):(E=A.slice(
0),E.splice(i,
1),E.push([o,a]),c.push(A),c.push(E))}return p=n(c),r(m)}},r(a),d=[];for(u=
0,o=p.length;u
<o;u++){for(_=p[u],f={},c=
0,h=_.length;c
<h;c++)l=_[c],s=l[
0],t=l[
1],f[s]=t;d.push(f)}return d},l33t_match:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A;for(null==t&&(t=RANKED_DICTIONARIES),null==n&&(n=L33T_TABLE),u=[],_=this.enumerate_l33t_subs(this.relevant_l33t_subtable(e,n)),c=
0,a=_.length;c
<a&&(d=_[c],!this.empty(d));c++)for(g=this.translate(e,d),f=this.dictionary_match(g,t),l=
0,s=f.length;l
<s;l++)if(o=f[l],m=e.slice(o.i,+o.j+
1||
9e9),m.toLowerCase()!==o.matched_word){h={};for(p in d)r=d[p],m.indexOf(p)!==-
1&&(h[p]=r);o.l33t=!
0,o.token=m,o.sub=h,o.sub_display=function(){var e;e=[];for(i in h)A=h[i],e.push(i+
" -> "+A);return e}().join(
", "),u.push(o)}return this.sorted(u.filter(function(e){return e.token.length
>1}))},spatial_match:function(e,t){var n,r,i;null==t&&(t=GRAPHS),i=[];for(r in t)n=t[r],this.extend(i,this.spatial_match_helper(e,n,r));return this.sorted(i)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:
"ZXCVBNM<>?]/,spatial_match_helper:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m;for(f=[],u=0;u<e.length-1;)for(c=u+1,l=null,m=0,g="qwerty
"!==n&&"dvorak
"!==n||!this.SHIFTED_RX.exec(e.charAt(u))?0:1;;){if(p=e.charAt(c-1),o=!1,h=-1,s=-1,i=t[p]||[],c<e.length)for(a=e.charAt(c),d=0,_=i.length;d<_;d++)if(r=i[d],s+=1,r&&r.indexOf(a)!==-1){o=!0,h=s,1===r.indexOf(a)&&(g+=1),l!==h&&(m+=1,l=h);break}if(!o){c-u>2&&f.push({pattern:"spatial
",i:u,j:c-1,token:e.slice(u,c),graph:n,turns:m,shifted_count:g}),u=c;break}c+=1}return f},repeat_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;for(d=[],a=/(.+)\1+/g,c=/(.+?)\1+/g,l=/^(.+?)\1+$/,u=0;u<e.length&&(a.lastIndex=c.lastIndex=u,s=a.exec(e),_=c.exec(e),null!=s);)s[0].length>_[0].length?(f=s,i=l.exec(f[0])[1]):(f=_,i=f[1]),p=[f.index,f.index+f[0].length-1],o=p[0],h=p[1],t=scoring.most_guessable_match_sequence(i,this.omnimatch(i)),r=t.sequence,n=t.guesses,d.push({pattern:"repeat",i:o,j:h,token:f[
0],base_token:i,base_guesses:n,base_matches:r,repeat_count:f[
0].length/i.length}),u=h+
1;return d},MAX_DELTA:
5,sequence_match:function(e){var t,n,r,i,a,s,o,h,u;if(
1===e.length)return[];for(u=function(t){return function(n,r,i){var a,s,o,u;if((r-n
>1||
1===Math.abs(i))&&
0<(a=Math.abs(i))&&a<=t.MAX_DELTA)return u=e.slice(n,+r+
1||
9e9),/^[a-z]+$/.test(u)?(
s=
"lower",o=
26):/^[A-Z]+$/.test(u)?(
s=
"upper",o=
26):/^\d+$/.test(u)?(
s=
"digits",o=
10):(
s=
"unicode",o=
26),h.push({pattern:
"sequence",i:n,j:r,token:e.slice(n,+r+
1||
9e9),sequence_name:s,sequence_space:o,ascending:i
>0})}}(this),h=[],n=
0,a=null,i=s=
1,o=e.length;
1<=o?s
<o:s>o;i=
1<=o?++s:--s)t=e.charCodeAt(i)-e.charCodeAt(i-
1),null==a&&(a=t),t!==a&&(r=i-
1,u(n,r,a),n=r,a=t);return u(n,e.length-
1,a),h},regex_match:function(e,t){var n,r,i,a;null==t&&(t=REGEXEN),n=[];for(name in t)for(r=t[name],r.lastIndex=
0;i=r.exec(e);)a=i[
0],n.push({pattern:"regex",token:a,i:i.index,j:i.index+i[
0].length-
1,regex_name:name,regex_match:i});return this.sorted(n)},date_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A,E,y,v,I,R,T,D,k,x,j,b,N,S,q,L,M;for(_=[],f=/^\d{
4,
8}$/,d=/^(\d{
1,
4})([\s\/\\_.-])(\d{
1,
2})\
2(\d{
1,
4})$/,s=m=
0,v=e.length-
4;
0<=v?m<=v:m
>=v;s=
0<=v?++m:--m)for(o=A=I=s+
3,R=s+
7;(I<=R?A<=R:A
>=R)&&!(o
>=e.length);o=I<=R?++A:--A)if(M=e.slice(s,+o+
1||
9e9),f.exec(M)){for(r=[],T=DATE_SPLITS[M.length],E=
0,c=T.length;E
<c;E++)D=T[E],h=D[
0],u=D[
1],a=this.map_ints_to_dmy([parseInt(M.slice(
0,h)),parseInt(M.slice(h,u)),parseInt(M.slice(u))]),null!=a&&r.push(a);if(r.length
>0){for(t=r[
0],p=function(e){return Math.abs(e.year-scoring.REFERENCE_YEAR)},g=p(r[
0]),k=r.slice(
1),y=
0,l=k.length;y
<l;y++)n=k[y],i=p(n),i
<g&&(x=[n,i],t=x[
0],g=x[
1]);_.push({pattern:
"date",token:M,i:s,j:o,separator:
"",year:t.year,month:t.month,day:t.day})}}for(s=q=
0,j=e.length-
6;
0<=j?q<=j:q
>=j;s=
0<=j?++q:--q)for(o=L=b=s+
5,N=s+
9;(b<=N?L<=N:L
>=N)&&!(o
>=e.length);o=b<=N?++L:--L)M=e.slice(s,+o+
1||
9e9),S=d.exec(M),null!=S&&(a=this.map_ints_to_dmy([parseInt(S[
1]),parseInt(S[
3]),parseInt(S[
4])]),null!=a&&_.push({pattern:"date",token:M,i:s,j:o,separator:S[
2],year:a.year,month:a.month,day:a.day}));return this.sorted(_.filter(function(e){var t,n,r,i;for(t=!
1,i=
0,n=_.length;i
<n;i++)if(r=_[i],e!==r&&r.i<=e.i&&r.j
>=e.j){t=!
0;break}return!t}))},map_ints_to_dmy:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g;if(!(e[
1]
>31||e[
1]<=
0)){for(o=
0,h=
0,p=
0,s=
0,r=e.length;s
<r;s++){if(n=e[s],
99<n&&n
<DATE_MIN_YEAR||n
>DATE_MAX_YEAR)return;n
>31&&(h+=
1),n
>12&&(o+=
1),n<=
0&&(p+=
1)}if(!(h
>=
2||
3===o||p
>=
2)){for(c=[[e[
2],e.slice(
0,
2)],[e[
0],e.slice(
1,
3)]],u=
0,i=c.length;u
<i;u++)if(_=c[u],g=_[
0],d=_[
1],DATE_MIN_YEAR<=g&&g<=DATE_MAX_YEAR)return t=this.map_ints_to_dm(d),null!=t?{year:g,month:t.month,day:t.day}:void
0;for(l=
0,a=c.length;l
<a;l++)if(f=c[l],g=f[
0],d=f[
1],t=this.map_ints_to_dm(d),null!=t)return g=this.two_to_four_digit_year(g),{year:g,month:t.month,day:t.day}}}},map_ints_to_dm:function(e){var t,n,r,i,a,s;for(a=[e,e.slice().reverse()],i=
0,n=a.length;i
<n;i++)if(s=a[i],t=s[
0],r=s[
1],
1<=t&&t<=
31&&
1<=r&&r<=
12)return{day:t,month:r}},two_to_four_digit_year:function(e){return e
>99?e:e
>50?e+
1900:e+
2e3}},module.exports=matching;
45769 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45770 var BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs,calc_average_degree,k,scoring,v;adjacency_graphs=require(
"./adjacency_graphs"),calc_average_degree=function(e){var t,r,n,s,a,u;t=
0;for(n in e)a=e[n],t+=function(){var e,t,r;for(r=[],t=
0,e=a.length;t
<e;t++)s=a[t],s&&r.push(s);return r}().length;return t/=function(){var t;t=[];for(r in e)u=e[r],t.push(r);return t}().length},BRUTEFORCE_CARDINALITY=
10,MIN_GUESSES_BEFORE_GROWING_SEQUENCE=
1e4,MIN_SUBMATCH_GUESSES_SINGLE_CHAR=
10,MIN_SUBMATCH_GUESSES_MULTI_CHAR=
50,scoring={nCk:function(e,t){var r,n,s,a;if(t
>e)return
0;if(
0===t)return
1;for(s=
1,r=n=
1,a=t;
1<=a?n<=a:n
>=a;r=
1<=a?++n:--n)s*=e,s/=r,e-=
1;return s},log10:function(e){return Math.log(e)/Math.log(
10)},log2:function(e){return Math.log(e)/Math.log(
2)},factorial:function(e){var t,r,n,s;if(e
<2)return
1;for(t=
1,r=n=
2,s=e;
2<=s?n<=s:n
>=s;r=
2<=s?++n:--n)t*=r;return t},most_guessable_match_sequence:function(e,t,r){var n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S,R,v,I,M,N,C,U,T;for(null==r&&(r=!
1),l=e.length,f=function(){var e,t,r;for(r=[],n=e=
0,t=l;
0<=t?e
<t:e>t;n=
0<=t?++e:--e)r.push([]);return r}(),p=
0,_=t.length;p
<_;p++)c=t[p],f[c.j].push(c);for(v=
0,o=f.length;v
<o;v++)E=f[v],E.sort(function(e,t){return e.i-t.i});for(A={m:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),pi:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),g:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}()},U=function(t){return function(n,s){var a,u,i,_,o,h;_=n.j,o=t.estimate_guesses(n,e),s
>1&&(o*=A.pi[n.i-
1][s-
1]),i=t.factorial(s)*o,r||(i+=Math.pow(MIN_GUESSES_BEFORE_GROWING_SEQUENCE,s-
1)),h=A.g[_];for(u in h)if(a=h[u],!(u
>s)&&a<=i)return;return A.g[_][s]=i,A.m[_][s]=n,A.pi[_][s]=o}}(this),s=function(e){return function(e){var t,r,n,s,a,u;for(c=g(
0,e),U(c,
1),a=[],t=u=
1,s=e;
1<=s?u<=s:u
>=s;t=
1<=s?++u:--u)c=g(t,e),a.push(function(){var e,s;e=A.m[t-
1],s=[];for(r in e)n=e[r],r=parseInt(r),"bruteforce"!==n.pattern&&s.push(U(c,r+
1));return s}());return a}}(this),g=function(t){return function(t,r){return{pattern:"bruteforce",token:e.slice(t,+r+
1||
9e9),i:t,j:r}}}(this),C=function(e){return function(e){var t,r,n,s,a,u,i;u=[],s=e-
1,a=void
0,n=
1/
0,i=A.g[s];for(r in i)t=i[r],t
<n&&(a=r,n=t);for(;s
>=
0;)c=A.m[s][a],u.unshift(c),s=c.i-
1,a--;return u}}(this),u=N=
0,I=l;
0<=I?N
<I:N>I;u=
0<=I?++N:--N){for(M=f[u],T=
0,h=M.length;T
<h;T++)if(c=M[T],c.i
>0)for(i in A.m[c.i-
1])i=parseInt(i),U(c,i+
1);else U(c,
1);s(u)}return R=C(l),S=R.length,a=
0===e.length?
1:A.g[l-
1][S],{password:e,guesses:a,guesses_log10:this.log10(a),sequence:R}},estimate_guesses:function(e,t){var r,n,s;return null!=e.guesses?e.guesses:(s=
1,e.token.length
<t.length&&(s=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR:MIN_SUBMATCH_GUESSES_MULTI_CHAR),r={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses},n=r[e.pattern].call(this,e),e.guesses=Math.max(n,s),e.guesses_log10=this.log10(e.guesses),e.guesses)},bruteforce_guesses:function(e){var t,r;return t=Math.pow(BRUTEFORCE_CARDINALITY,e.token.length),r=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR+
1:MIN_SUBMATCH_GUESSES_MULTI_CHAR+
1,Math.max(t,r)},repeat_guesses:function(e){return e.base_guesses*e.repeat_count},sequence_guesses:function(e){var t,r;return r=e.token.charAt(
0),
t=
"a"===r||
"A"===r||
"z"===r||
"Z"===r||
"0"===r||
"1"===r||
"9"===r?
4:r.match(/\d/)?
10:
26,e.ascending||(t*=
2),t*e.token.length},MIN_YEAR_SPACE:
20,REFERENCE_YEAR:
2016,regex_guesses:function(e){var t,r;if(t={alpha_lower:
26,alpha_upper:
26,alpha:
52,alphanumeric:
62,digits:
10,symbols:
33},e.regex_name in t)return Math.pow(t[e.regex_name],e.token.length);switch(e.regex_name){case
"recent_year":return r=Math.abs(parseInt(e.regex_match[
0])-this.REFERENCE_YEAR),r=Math.max(r,this.MIN_YEAR_SPACE)}},date_guesses:function(e){var t,r;return r=Math.max(Math.abs(e.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t=
365*r,e.separator&&(t*=
4),t},KEYBOARD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.qwerty),KEYPAD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.keypad),KEYBOARD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.qwerty,t=[];for(k in e)v=e[k],t.push(k);return t}().length,KEYPAD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.keypad,t=[];for(k in e)v=e[k],t.push(k);return t}().length,spatial_guesses:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S;for(
"qwerty"===(E=e.graph)||
"dvorak"===E?(l=this.KEYBOARD_STARTING_POSITIONS,s=this.KEYBOARD_AVERAGE_DEGREE):(l=this.KEYPAD_STARTING_POSITIONS,s=this.KEYPAD_AVERAGE_DEGREE),a=
0,t=e.token.length,A=e.turns,u=_=
2,c=t;
2<=c?_<=c:_
>=c;u=
2<=c?++_:--_)for(o=Math.min(A,u-
1),i=h=
1,g=o;
1<=g?h<=g:h
>=g;i=
1<=g?++h:--h)a+=this.nCk(u-
1,i-
1)*l*Math.pow(s,i);if(e.shifted_count)if(r=e.shifted_count,n=e.token.length-e.shifted_count,
0===r||
0===n)a*=
2;else{for(p=
0,u=S=
1,f=Math.min(r,n);
1<=f?S<=f:S
>=f;u=
1<=f?++S:--S)p+=this.nCk(r+n,u);a*=p}return a},dictionary_guesses:function(e){var t;return e.base_guesses=e.rank,e.uppercase_variations=this.uppercase_variations(e),e.l33t_variations=this.l33t_variations(e),t=e.reversed&&
2||
1,e.base_guesses*e.uppercase_variations*e.l33t_variations*t},START_UPPER:/^[A-Z][^A-Z]+$/,END_UPPER:/^[^A-Z]+[A-Z]$/,ALL_UPPER:/^[^a-z]+$/,ALL_LOWER:/^[^A-Z]+$/,uppercase_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c;if(c=e.token,c.match(this.ALL_LOWER)||c.toLowerCase()===c)return
1;for(_=[this.START_UPPER,this.END_UPPER,this.ALL_UPPER],u=
0,a=_.length;u
<a;u++)if(h=_[u],c.match(h))return
2;for(r=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[A-Z]/)&&s.push(n);return s}().length,t=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[a-z]/)&&s.push(n);return s}().length,E=
0,s=i=
1,o=Math.min(r,t);
1<=o?i<=o:i
>=o;s=
1<=o?++i:--i)E+=this.nCk(r+t,s);return E},l33t_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g;if(!e.l33t)return
1;g=
1,o=e.sub;for(E in o)if(c=o[E],s=e.token.toLowerCase().split(""),t=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===E&&r.push(n);return r}().length,r=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===c&&r.push(n);return r}().length,
0===t||
0===r)g*=
2;else{for(i=Math.min(r,t),_=
0,a=u=
1,h=i;
1<=h?u<=h:u
>=h;a=
1<=h?++u:--u)_+=this.nCk(r+t,a);g*=_}return g}},module.exports=scoring;
45772 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45773 var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o;n={online_throttling_100_per_hour:e/(
100/
3600),online_no_throttling_10_per_second:e/
10,offline_slow_hashing_1e4_per_second:e/
1e4,offline_fast_hashing_1e10_per_second:e/
1e10},t={};for(s in n)o=n[s],t[s]=this.display_time(o);return{crack_times_seconds:n,crack_times_display:t,score:this.guesses_to_score(e)}},guesses_to_score:function(e){var t;return t=
5,e
<1e3+t?
0:e
<1e6+t?
1:e
<1e8+t?
2:e
<1e10+t?
3:
4},display_time:function(e){var t,n,s,o,_,r,i,a,u,c;return i=
60,r=
60*i,s=
24*r,a=
31*s,c=
12*a,n=
100*c,u=e
<1?[null,
"less than a second"]:e
<i?(t=Math.round(e),[t,t+
" second"]):e
<r?(t=Math.round(e/i),[t,t+
" minute"]):e
<s?(t=Math.round(e/r),[t,t+
" hour"]):e
<a?(t=Math.round(e/s),[t,t+
" day"]):e
<c?(t=Math.round(e/a),[t,t+
" month"]):e
<n?(t=Math.round(e/c),[t,t+
" year"]):[null,
"centuries"],o=u[
0],_=u[
1],null!=o&&
1!==o&&(_+=
"s"),_}},module.exports=time_estimates;
45777 //# sourceMappingURL=zxcvbn.js.map
45780 * Detects entropy from a string.
45787 * hexadecimal [
0-
9A-F]
45788 * card [A2-
9TJQK][CDHS]
45790 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45791 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45795 window.Entropy = new (function() {
45797 var TWO = new BigInteger(
2);
45799 // matchers returns an array of the matched events for each type of entropy.
45801 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45802 // matchers.binary("a10") returns ["
1", "
0"]
45803 // matchers.hex("a10") returns ["a", "
1", "
0"]
45805 binary: function(str) {
45806 return str.match(/[
0-
1]/gi) || [];
45808 base6: function(str) {
45809 return str.match(/[
0-
5]/gi) || [];
45811 dice: function(str) {
45812 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45814 base10: function(str) {
45815 return str.match(/[
0-
9]/gi) || [];
45817 hex: function(str) {
45818 return str.match(/[
0-
9A-F]/gi) || [];
45820 card: function(str) {
45821 // Format is NumberSuit, eg
45822 // AH ace of hearts
45823 //
8C eight of clubs
45824 // TD ten of diamonds
45825 // JS jack of spades
45826 // QH queen of hearts
45827 // KC king of clubs
45828 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45832 // Convert array of cards from ["ac", "
4d", "ks"]
45833 // to numbers between
0 and
51 [
0,
16,
51]
45834 function convertCardsToInts(cards) {
45836 var values = "a23456789tjqk";
45837 var suits = "cdhs";
45838 for (var i=
0; i
<cards.length; i++) {
45839 var card = cards[i].toLowerCase();
45840 var value = card[
0];
45841 var suit = card[
1];
45842 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45848 this.fromString = function(rawEntropyStr) {
45849 // Find type of entropy being used (binary, hex, dice etc)
45850 var base = getBase(rawEntropyStr);
45851 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45852 // This is done by changing all
6s to
0s
45853 if (base.str ==
"dice") {
45856 for (var i=
0; i
<base.parts.length; i++) {
45857 var c = base.parts[i];
45858 if (
"12345".indexOf(c)
> -
1) {
45859 newParts[i] = base.parts[i];
45860 newInts[i] = base.ints[i];
45867 base.str = "base
6 (dice)";
45868 base.ints = newInts;
45869 base.parts = newParts;
45870 base.matcher = matchers.base6;
45872 // Detect empty entropy
45873 if (base.parts.length ==
0) {
45881 // Convert base.ints to BigInteger.
45882 // Due to using unusual bases, eg cards of base52, this is not as simple as
45883 // using BigInteger.parse()
45884 var entropyInt = BigInteger.ZERO;
45885 for (var i=base.ints.length-
1; i
>=
0; i--) {
45886 var thisInt = BigInteger.parse(base.ints[i]);
45887 var power = (base.ints.length -
1) - i;
45888 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45889 entropyInt = entropyInt.add(additionalEntropy);
45891 // Convert entropy to binary
45892 var entropyBin = entropyInt.toString(
2);
45893 // If the first integer is small, it must be padded with zeros.
45894 // Otherwise the chance of the first bit being
1 is
100%, which is
45895 // obviously incorrect.
45896 // This is not perfect for non-
2^n bases.
45897 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45898 while (entropyBin.length < expectedBits) {
45899 entropyBin = "
0" + entropyBin;
45901 // Calculate the number of bits per event
45902 var bitsPerEvent = Math.log2(base.asInt);
45903 // Cards binary must be handled differently, since they're not replaced
45904 if (base.asInt ==
52) {
45905 var cardEntropy = processCardEntropy(base.parts);
45906 entropyBin = cardEntropy.binaryStr;
45907 bitsPerEvent = cardEntropy.bitsPerEvent;
45909 // Supply a 'filtered' entropy string for display purposes
45910 var entropyClean = base.parts.join("");
45911 var entropyHtml = base.parts.join("");
45912 if (base.asInt ==
52) {
45913 entropyClean = base.parts.join(" ").toUpperCase();
45914 entropyClean = entropyClean.replace(/C/g, "\u2663");
45915 entropyClean = entropyClean.replace(/D/g, "\u2666");
45916 entropyClean = entropyClean.replace(/H/g, "\u2665");
45917 entropyClean = entropyClean.replace(/S/g, "\u2660");
45918 entropyHtml = base.parts.join(" ").toUpperCase();
45919 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45920 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45921 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45922 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45924 // Return the result
45926 binaryStr: entropyBin,
45927 cleanStr: entropyClean,
45928 cleanHtml: entropyHtml,
45929 bitsPerEvent: bitsPerEvent,
45935 function getSortedDeck() {
45937 var suits = "CDHS
";
45938 var values = "A23456789TJQK
";
45939 for (var i=0; i<suits.length; i++) {
45940 for (var j=0; j<values.length; j++) {
45941 s.push(values[j]+suits[i]);
45947 function getBase(str) {
45948 // Need to get the lowest base for the supplied entropy.
45949 // This prevents interpreting, say, dice rolls as hexadecimal.
45950 var binaryMatches = matchers.binary(str);
45951 var hexMatches = matchers.hex(str);
45952 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45953 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45954 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45957 parts: binaryMatches,
45958 matcher: matchers.binary,
45963 var cardMatches = matchers.card(str);
45964 if (cardMatches.length >= hexMatches.length / 2) {
45965 var ints = convertCardsToInts(cardMatches);
45968 parts: cardMatches,
45969 matcher: matchers.card,
45974 var diceMatches = matchers.dice(str);
45975 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45976 var ints = diceMatches.map(function(i) { return parseInt(i) });
45979 parts: diceMatches,
45980 matcher: matchers.dice,
45985 var base6Matches = matchers.base6(str);
45986 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45987 var ints = base6Matches.map(function(i) { return parseInt(i) });
45990 parts: base6Matches,
45991 matcher: matchers.base6,
45996 var base10Matches = matchers.base10(str);
45997 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45998 var ints = base10Matches.map(function(i) { return parseInt(i) });
46001 parts: base10Matches,
46002 matcher: matchers.base10,
46007 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
46011 matcher: matchers.hex,
46013 str:
"hexadecimal",
46017 // Assume cards are NOT replaced.
46018 // Additional entropy decreases as more cards are used. This means
46019 // total possible entropy is measured using n!, not base^n.
46020 // eg the second last card can be only one of two, not one of fifty two
46021 // so the added entropy for that card is only one bit at most
46022 function processCardEntropy(cards) {
46023 // Track how many instances of each card have been used, and thus
46024 // how many decks are in use.
46025 var cardCounts = {};
46026 var numberOfDecks =
0;
46027 // Work out number of decks by max(duplicates)
46028 for (var i=
0; i
<cards.length; i++) {
46029 // Get the card that was drawn
46030 var cardLower = cards[i];
46031 var card = cardLower.toUpperCase();
46032 // Initialize the count for this card if needed
46033 if (!(card in cardCounts)) {
46034 cardCounts[card] =
0;
46036 cardCounts[card] +=
1;
46037 // See if this is max(duplicates)
46038 if (cardCounts[card]
> numberOfDecks) {
46039 numberOfDecks = cardCounts[card];
46042 // Work out the total number of bits for this many decks
46043 // See http://crypto.stackexchange.com/q/
41886
46044 var gainedBits =
0;
46045 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
46046 // which becomes infinity for numberOfDecks
> 4
46047 for (var i=
1; i<=
52*numberOfDecks; i++) {
46048 gainedBits = gainedBits + Math.log2(i);
46050 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
46051 var maxBits = gainedBits - lostBits;
46052 // Convert the drawn cards to a binary representation.
46053 // The exact technique for doing this is unclear.
46055 // http://crypto.stackexchange.com/a/
41896
46056 //
"I even doubt that this is well defined (only the average entropy
46057 // is, I believe)."
46059 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
46060 //
"The binary representation can be the first log(permutations,2) bits
46061 // of the sha-2 hash of the normalized deck string."
46063 // In this specific implementation, the first N bits of the hash of the
46064 // normalized cards string is being used. Uppercase, no spaces; eg
46065 // sha256(
"AH8DQSTC2H")
46066 var totalCards = numberOfDecks *
52;
46067 var percentUsed = cards.length / totalCards;
46068 // Calculate the average number of bits of entropy for the number of
46070 var numberOfBits = Math.floor(maxBits * percentUsed);
46071 // Create a normalized string of the selected cards
46072 var normalizedCards = cards.join(
"").toUpperCase();
46073 // Convert to binary using the SHA256 hash of the normalized cards.
46074 // If the number of bits is more than
256, multiple hashes
46075 // are used until the required number of bits is reached.
46076 var entropyBin =
"";
46077 var iterations =
0;
46078 while (entropyBin.length < numberOfBits) {
46079 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
46080 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
46081 for (var i=
0; i
<hashHex.length; i++) {
46082 var decimal = parseInt(hashHex[i],
16);
46083 var binary = decimal.toString(
2);
46084 while (binary.length <
4) {
46085 binary =
"0" + binary;
46087 entropyBin = entropyBin + binary;
46089 iterations = iterations +
1;
46091 // Truncate to the appropriate number of bits.
46092 entropyBin = entropyBin.substring(
0, numberOfBits);
46093 // Get the number of bits per event
46094 bitsPerEvent = maxBits / totalCards;
46096 binaryStr: entropyBin,
46097 bitsPerEvent: bitsPerEvent,
46101 // Polyfill for Math.log2
46102 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
46103 Math.log2 = Math.log2 || function(x) {
46104 // The polyfill isn't good enough because of the poor accuracy of
46106 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
46107 // So instead use the BigInteger library to get it right.
46108 return BigInteger.log(x) / BigInteger.log(
2);
46111 // Depends on BigInteger
46112 function factorial(n) {
46116 f = BigInteger.ONE;
46117 for (var i=
1; i<=n; i++) {
46118 f = f.multiply(new BigInteger(i));
46125 <script>(function() {
46127 // mnemonics is populated as required by getLanguage
46128 var mnemonics = { "english": new Mnemonic("english") };
46129 var mnemonic = mnemonics["english"];
46131 var bip32RootKey = null;
46132 var bip32ExtendedKey = null;
46133 var network = bitcoinjs.bitcoin.networks.bitcoin;
46134 var addressRowTemplate = $("#address-row-template");
46136 var showIndex = true;
46137 var showAddress = true;
46138 var showPubKey = true;
46139 var showPrivKey = true;
46140 var showQr = false;
46141 var litecoinUseLtub = false;
46143 var entropyChangeTimeoutEvent = null;
46144 var phraseChangeTimeoutEvent = null;
46145 var rootKeyChangedTimeoutEvent = null;
46147 var generationProcesses = [];
46150 DOM.network = $(".network");
46151 DOM.bip32Client = $("#bip32-client");
46152 DOM.phraseNetwork = $("#network-phrase");
46153 DOM.useEntropy = $(".use-entropy");
46154 DOM.entropyContainer = $(".entropy-container");
46155 DOM.entropy = $(".entropy");
46156 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46157 DOM.entropyType = DOM.entropyContainer.find(".type");
46158 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46159 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46160 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46161 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46162 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46163 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46164 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46165 DOM.phrase = $(".phrase");
46166 DOM.passphrase = $(".passphrase");
46167 DOM.generateContainer = $(".generate-container");
46168 DOM.generate = $(".generate");
46169 DOM.seed = $(".seed");
46170 DOM.rootKey = $(".root-key");
46171 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46172 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46173 DOM.extendedPrivKey = $(".extended-priv-key");
46174 DOM.extendedPubKey = $(".extended-pub-key");
46175 DOM.bip32tab = $("#bip32-tab");
46176 DOM.bip44tab = $("#bip44-tab");
46177 DOM.bip49tab = $("#bip49-tab");
46178 DOM.bip32panel = $("#bip32");
46179 DOM.bip44panel = $("#bip44");
46180 DOM.bip49panel = $("#bip49");
46181 DOM.bip32path = $("#bip32-path");
46182 DOM.bip44path = $("#bip44-path");
46183 DOM.bip44purpose = $("#bip44 .purpose");
46184 DOM.bip44coin = $("#bip44 .coin");
46185 DOM.bip44account = $("#bip44 .account");
46186 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46187 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46188 DOM.bip44change = $("#bip44 .change");
46189 DOM.bip49unavailable = $("#bip49 .unavailable");
46190 DOM.bip49available = $("#bip49 .available");
46191 DOM.bip49path = $("#bip49-path");
46192 DOM.bip49purpose = $("#bip49 .purpose");
46193 DOM.bip49coin = $("#bip49 .coin");
46194 DOM.bip49account = $("#bip49 .account");
46195 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46196 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46197 DOM.bip49change = $("#bip49 .change");
46198 DOM.generatedStrength = $(".generate-container .strength");
46199 DOM.hardenedAddresses = $(".hardened-addresses");
46200 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
46201 DOM.addresses = $(".addresses");
46202 DOM.rowsToAdd = $(".rows-to-add");
46203 DOM.more = $(".more");
46204 DOM.feedback = $(".feedback");
46205 DOM.tab = $(".derivation-type a");
46206 DOM.indexToggle = $(".index-toggle");
46207 DOM.addressToggle = $(".address-toggle");
46208 DOM.publicKeyToggle = $(".public-key-toggle");
46209 DOM.privateKeyToggle = $(".private-key-toggle");
46210 DOM.languages = $(".languages a");
46211 DOM.qrContainer = $(".qr-container");
46212 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46213 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46214 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46215 DOM.showQrEls = $("[data-show-qr]");
46219 DOM.network.on("change", networkChanged);
46220 DOM.bip32Client.on("change", bip32ClientChanged);
46221 DOM.useEntropy.on("change", setEntropyVisibility);
46222 DOM.entropy.on("input", delayedEntropyChanged);
46223 DOM.entropyMnemonicLength.on("change", entropyChanged);
46224 DOM.phrase.on("input", delayedPhraseChanged);
46225 DOM.passphrase.on("input", delayedPhraseChanged);
46226 DOM.generate.on("click", generateClicked);
46227 DOM.more.on("click", showMore);
46228 DOM.rootKey.on("input", delayedRootKeyChanged);
46229 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46230 DOM.bip32path.on("input", calcForDerivationPath);
46231 DOM.bip44account.on("input", calcForDerivationPath);
46232 DOM.bip44change.on("input", calcForDerivationPath);
46233 DOM.bip49account.on("input", calcForDerivationPath);
46234 DOM.bip49change.on("input", calcForDerivationPath);
46235 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46236 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46237 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46238 DOM.indexToggle.on("click", toggleIndexes);
46239 DOM.addressToggle.on("click", toggleAddresses);
46240 DOM.publicKeyToggle.on("click", togglePublicKeys);
46241 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46242 DOM.languages.on("click", languageChanged);
46243 setQrEvents(DOM.showQrEls);
46246 hideValidationError();
46247 populateNetworkSelect();
46248 populateClientSelect();
46253 function networkChanged(e) {
46254 clearDerivedKeys();
46255 clearAddressesList();
46256 DOM.litecoinLtubContainer.addClass("hidden");
46257 var networkIndex = e.target.value;
46258 var network = networks[networkIndex];
46259 network.onSelect();
46260 if (network.p2wpkhNestedInP2shAvailable) {
46261 showP2wpkhNestedInP2shAvailable();
46264 showP2wpkhNestedInP2shUnavailable();
46266 if (seed != null) {
46274 function bip32ClientChanged(e) {
46275 var clientIndex = DOM.bip32Client.val();
46276 if (clientIndex == "custom") {
46277 DOM.bip32path.prop("readonly", false);
46280 DOM.bip32path.prop("readonly", true);
46281 clients[clientIndex].onSelect();
46282 if (seed != null) {
46291 function setEntropyVisibility() {
46292 if (isUsingOwnEntropy()) {
46293 DOM.entropyContainer.removeClass("hidden");
46294 DOM.generateContainer.addClass("hidden");
46295 DOM.phrase.prop("readonly", true);
46296 DOM.entropy.focus();
46300 DOM.entropyContainer.addClass("hidden");
46301 DOM.generateContainer.removeClass("hidden");
46302 DOM.phrase.prop("readonly", false);
46307 function delayedPhraseChanged() {
46308 hideValidationError();
46310 bip32RootKey = null;
46311 bip32ExtendedKey = null;
46312 clearAddressesList();
46314 if (phraseChangeTimeoutEvent != null) {
46315 clearTimeout(phraseChangeTimeoutEvent);
46317 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46320 function phraseChanged() {
46322 setMnemonicLanguage();
46323 // Get the mnemonic phrase
46324 var phrase = DOM.phrase.val();
46325 var errorText = findPhraseErrors(phrase);
46327 showValidationError(errorText);
46330 // Calculate and display
46331 var passphrase = DOM.passphrase.val();
46332 calcBip32RootKeyFromSeed(phrase, passphrase);
46333 calcForDerivationPath();
46336 function delayedEntropyChanged() {
46337 hideValidationError();
46339 if (entropyChangeTimeoutEvent != null) {
46340 clearTimeout(entropyChangeTimeoutEvent);
46342 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46345 function entropyChanged() {
46346 // If blank entropy, clear mnemonic, addresses, errors
46347 if (DOM.entropy.val().trim().length ==
0) {
46349 clearEntropyFeedback();
46350 DOM.phrase.val("");
46351 showValidationError("Blank entropy");
46354 // Get the current phrase to detect changes
46355 var phrase = DOM.phrase.val();
46356 // Set the phrase from the entropy
46357 setMnemonicFromEntropy();
46358 // Recalc addresses if the phrase has changed
46359 var newPhrase = DOM.phrase.val();
46360 if (newPhrase != phrase) {
46361 if (newPhrase.length ==
0) {
46373 function delayedRootKeyChanged() {
46374 // Warn if there is an existing mnemonic or passphrase.
46375 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46376 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46377 DOM.rootKey.val(bip32RootKey);
46381 hideValidationError();
46383 // Clear existing mnemonic and passphrase
46384 DOM.phrase.val(
"");
46385 DOM.passphrase.val(
"");
46387 if (rootKeyChangedTimeoutEvent != null) {
46388 clearTimeout(rootKeyChangedTimeoutEvent);
46390 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46393 function rootKeyChanged() {
46395 hideValidationError();
46396 var rootKeyBase58 = DOM.rootKey.val();
46397 var errorText = validateRootKey(rootKeyBase58);
46399 showValidationError(errorText);
46402 // Calculate and display
46403 calcBip32RootKeyFromBase58(rootKeyBase58);
46404 calcForDerivationPath();
46407 function litecoinUseLtubChanged() {
46408 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46409 if (litecoinUseLtub) {
46410 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46413 network = bitcoinjs.bitcoin.networks.litecoin;
46418 function calcForDerivationPath() {
46419 clearDerivedKeys();
46420 clearAddressesList();
46422 // Don't show bip49 if it's selected but network doesn't support it
46423 if (bip49TabSelected() && !networkHasBip49()) {
46426 // Get the derivation path
46427 var derivationPath = getDerivationPath();
46428 var errorText = findDerivationPathErrors(derivationPath);
46430 showValidationError(errorText);
46433 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46434 if (bip44TabSelected()) {
46435 displayBip44Info();
46437 if (bip49TabSelected()) {
46438 displayBip49Info();
46440 displayBip32Info();
46443 function generateClicked() {
46444 if (isUsingOwnEntropy()) {
46449 setTimeout(function() {
46450 setMnemonicLanguage();
46451 var phrase = generateRandomPhrase();
46459 function languageChanged() {
46460 setTimeout(function() {
46461 setMnemonicLanguage();
46462 if (DOM.phrase.val().length
> 0) {
46463 var newPhrase = convertPhraseToNewLanguage();
46464 DOM.phrase.val(newPhrase);
46468 DOM.generate.trigger(
"click");
46473 function toggleIndexes() {
46474 showIndex = !showIndex;
46475 $(
"td.index span").toggleClass(
"invisible");
46478 function toggleAddresses() {
46479 showAddress = !showAddress;
46480 $(
"td.address span").toggleClass(
"invisible");
46483 function togglePublicKeys() {
46484 showPubKey = !showPubKey;
46485 $(
"td.pubkey span").toggleClass(
"invisible");
46488 function togglePrivateKeys() {
46489 showPrivKey = !showPrivKey;
46490 $(
"td.privkey span").toggleClass(
"invisible");
46495 function generateRandomPhrase() {
46496 if (!hasStrongRandom()) {
46497 var errorText =
"This browser does not support strong randomness";
46498 showValidationError(errorText);
46501 var numWords = parseInt(DOM.generatedStrength.val());
46502 var strength = numWords /
3 *
32;
46503 var words = mnemonic.generate(strength);
46504 DOM.phrase.val(words);
46508 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46509 seed = mnemonic.toSeed(phrase, passphrase);
46510 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46513 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46514 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46517 function calcBip32ExtendedKey(path) {
46518 // Check there's a root key to derive from
46519 if (!bip32RootKey) {
46520 return bip32RootKey;
46522 var extendedKey = bip32RootKey;
46523 // Derive the key from the path
46524 var pathBits = path.split(
"/");
46525 for (var i=
0; i
<pathBits.length; i++) {
46526 var bit = pathBits[i];
46527 var index = parseInt(bit);
46528 if (isNaN(index)) {
46531 var hardened = bit[bit.length-
1] ==
"'";
46532 var isPriv = !(extendedKey.isNeutered());
46533 var invalidDerivationPath = hardened && !isPriv;
46534 if (invalidDerivationPath) {
46535 extendedKey = null;
46537 else if (hardened) {
46538 extendedKey = extendedKey.deriveHardened(index);
46541 extendedKey = extendedKey.derive(index);
46547 function showValidationError(errorText) {
46553 function hideValidationError() {
46559 function findPhraseErrors(phrase) {
46560 // Preprocess the words
46561 phrase = mnemonic.normalizeString(phrase);
46562 var words = phraseToWordArray(phrase);
46563 // Detect blank phrase
46564 if (words.length ==
0) {
46565 return
"Blank mnemonic";
46568 for (var i=
0; i
<words.length; i++) {
46569 var word = words[i];
46570 var language = getLanguage();
46571 if (WORDLISTS[language].indexOf(word) == -
1) {
46572 console.log(
"Finding closest match to " + word);
46573 var nearestWord = findNearestWord(word);
46574 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46577 // Check the words are valid
46578 var properPhrase = wordArrayToPhrase(words);
46579 var isValid = mnemonic.check(properPhrase);
46581 return
"Invalid mnemonic";
46586 function validateRootKey(rootKeyBase58) {
46588 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46591 return
"Invalid root key";
46596 function getDerivationPath() {
46597 if (bip44TabSelected()) {
46598 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46599 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46600 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46601 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46603 path += purpose +
"'/";
46604 path += coin +
"'/";
46605 path += account +
"'/";
46607 DOM.bip44path.val(path);
46608 var derivationPath = DOM.bip44path.val();
46609 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46610 return derivationPath;
46612 if (bip49TabSelected()) {
46613 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46614 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46615 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46616 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46618 path += purpose +
"'/";
46619 path += coin +
"'/";
46620 path += account +
"'/";
46622 DOM.bip49path.val(path);
46623 var derivationPath = DOM.bip49path.val();
46624 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46625 return derivationPath;
46627 else if (bip32TabSelected()) {
46628 var derivationPath = DOM.bip32path.val();
46629 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46630 return derivationPath;
46633 console.log(
"Unknown derivation path");
46637 function findDerivationPathErrors(path) {
46638 // TODO is not perfect but is better than nothing
46640 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46642 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46643 var maxDepth =
255; // TODO verify this!!
46644 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46645 if (path[
0] !=
"m") {
46646 return
"First character must be 'm'";
46648 if (path.length
> 1) {
46649 if (path[
1] !=
"/") {
46650 return
"Separator must be '/'";
46652 var indexes = path.split(
"/");
46653 if (indexes.length
> maxDepth) {
46654 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46656 for (var depth =
1; depth
<indexes.length; depth++) {
46657 var index = indexes[depth];
46658 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46659 if (invalidChars.length
> 0) {
46660 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46662 var indexValue = parseInt(index.replace(
"'",
""));
46663 if (isNaN(depth)) {
46664 return
"Invalid number at depth " + depth;
46666 if (indexValue
> maxIndexValue) {
46667 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46671 // Check root key exists or else derivation path is useless!
46672 if (!bip32RootKey) {
46673 return "No root key";
46675 // Check no hardened derivation path when using xpub keys
46676 var hardenedPath = path.indexOf("'")
> -
1;
46677 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46678 var hardened = hardenedPath || hardenedAddresses;
46679 var isXpubkey = bip32RootKey.isNeutered();
46680 if (hardened && isXpubkey) {
46681 return "Hardened derivation path is invalid with xpub key";
46686 function displayBip44Info() {
46687 // Get the derivation path for the account
46688 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46689 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46690 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46692 path += purpose + "'/";
46693 path += coin + "'/";
46694 path += account + "'/";
46695 // Calculate the account extended keys
46696 var accountExtendedKey = calcBip32ExtendedKey(path);
46697 var accountXprv = accountExtendedKey.toBase58();
46698 var accountXpub = accountExtendedKey.neutered().toBase58();
46699 // Display the extended keys
46700 DOM.bip44accountXprv.val(accountXprv);
46701 DOM.bip44accountXpub.val(accountXpub);
46704 function displayBip49Info() {
46705 // Get the derivation path for the account
46706 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46707 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46708 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46710 path += purpose + "'/";
46711 path += coin + "'/";
46712 path += account + "'/";
46713 // Calculate the account extended keys
46714 var accountExtendedKey = calcBip32ExtendedKey(path);
46715 var accountXprv = accountExtendedKey.toBase58();
46716 var accountXpub = accountExtendedKey.neutered().toBase58();
46717 // Display the extended keys
46718 DOM.bip49accountXprv.val(accountXprv);
46719 DOM.bip49accountXpub.val(accountXpub);
46722 function displayBip32Info() {
46724 DOM.seed.val(seed);
46725 var rootKey = bip32RootKey.toBase58();
46726 DOM.rootKey.val(rootKey);
46727 var xprvkeyB58 = "NA";
46728 if (!bip32ExtendedKey.isNeutered()) {
46729 xprvkeyB58 = bip32ExtendedKey.toBase58();
46731 var extendedPrivKey = xprvkeyB58;
46732 DOM.extendedPrivKey.val(extendedPrivKey);
46733 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46734 DOM.extendedPubKey.val(extendedPubKey);
46735 // Display the addresses and privkeys
46736 clearAddressesList();
46737 displayAddresses(
0,
20);
46740 function displayAddresses(start, total) {
46741 generationProcesses.push(new (function() {
46745 this.stop = function() {
46746 for (var i=
0; i
<rows.length; i++) {
46747 rows[i].shouldGenerate = false;
46752 for (var i=
0; i
<total; i++) {
46753 var index = i + start;
46754 var isLast = i == total -
1;
46755 rows.push(new TableRow(index, isLast));
46761 function TableRow(index, isLast) {
46764 this.shouldGenerate = true;
46765 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46766 var isP2wpkhNestedInP2sh = bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46767 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46773 function calculateValues() {
46774 setTimeout(function() {
46775 if (!self.shouldGenerate) {
46779 if (useHardenedAddresses) {
46780 key = bip32ExtendedKey.deriveHardened(index);
46783 key = bip32ExtendedKey.derive(index);
46785 var address = key.getAddress().toString();
46786 var privkey =
"NA";
46787 if (!key.isNeutered()) {
46788 privkey = key.keyPair.toWIF(network);
46790 var pubkey = key.getPublicKeyBuffer().toString('hex');
46791 var indexText = getDerivationPath() +
"/" + index;
46792 if (useHardenedAddresses) {
46793 indexText = indexText +
"'";
46795 // Ethereum values are different
46796 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46797 var privKeyBuffer = key.keyPair.d.toBuffer();
46798 privkey = privKeyBuffer.toString('hex');
46799 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46800 var hexAddress = addressBuffer.toString('hex');
46801 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46802 address = ethUtil.addHexPrefix(checksumAddress);
46803 privkey = ethUtil.addHexPrefix(privkey);
46804 pubkey = ethUtil.addHexPrefix(pubkey);
46806 // Ripple values are different
46807 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46808 privkey = convertRipplePriv(privkey);
46809 address = convertRippleAdrr(address);
46811 // BIP49 addresses are different
46812 if (isP2wpkhNestedInP2sh) {
46813 if (!p2wpkhNestedInP2shAvailable) {
46816 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46817 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46818 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46819 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46820 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46822 addAddressToList(indexText, address, pubkey, privkey);
46833 function showMore() {
46834 var start = DOM.addresses.children().length;
46835 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46836 if (isNaN(rowsToAdd)) {
46838 DOM.rowsToAdd.val(
"20");
46840 if (rowsToAdd
> 200) {
46841 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46842 msg +=
"Do you want to continue?";
46843 if (!confirm(msg)) {
46847 displayAddresses(start, rowsToAdd);
46850 function clearDisplay() {
46851 clearAddressesList();
46853 hideValidationError();
46856 function clearAddressesList() {
46857 DOM.addresses.empty();
46861 function stopGenerating() {
46862 while (generationProcesses.length
> 0) {
46863 var generation = generationProcesses.shift();
46868 function clearKeys() {
46870 clearDerivedKeys();
46873 function clearRootKey() {
46874 DOM.rootKey.val(
"");
46877 function clearDerivedKeys() {
46878 DOM.extendedPrivKey.val(
"");
46879 DOM.extendedPubKey.val(
"");
46880 DOM.bip44accountXprv.val(
"");
46881 DOM.bip44accountXpub.val(
"");
46884 function addAddressToList(indexText, address, pubkey, privkey) {
46885 var row = $(addressRowTemplate.html());
46887 var indexCell = row.find(
".index span");
46888 var addressCell = row.find(
".address span");
46889 var pubkeyCell = row.find(
".pubkey span");
46890 var privkeyCell = row.find(
".privkey span");
46892 indexCell.text(indexText);
46893 addressCell.text(address);
46894 pubkeyCell.text(pubkey);
46895 privkeyCell.text(privkey);
46898 indexCell.addClass(
"invisible");
46900 if (!showAddress) {
46901 addressCell.addClass(
"invisible");
46904 pubkeyCell.addClass(
"invisible");
46906 if (!showPrivKey) {
46907 privkeyCell.addClass(
"invisible");
46909 DOM.addresses.append(row);
46910 var rowShowQrEls = row.find(
"[data-show-qr]");
46911 setQrEvents(rowShowQrEls);
46914 function hasStrongRandom() {
46915 return 'crypto' in window && window['crypto'] !== null;
46918 function disableForms() {
46919 $(
"form").on(
"submit", function(e) {
46920 e.preventDefault();
46924 function parseIntNoNaN(val, defaultVal) {
46925 var v = parseInt(val);
46932 function showPending() {
46934 .text(
"Calculating...")
46938 function findNearestWord(word) {
46939 var language = getLanguage();
46940 var words = WORDLISTS[language];
46941 var minDistance =
99;
46942 var closestWord = words[
0];
46943 for (var i=
0; i
<words.length; i++) {
46944 var comparedTo = words[i];
46945 if (comparedTo.indexOf(word) ==
0) {
46948 var distance = Levenshtein.get(word, comparedTo);
46949 if (distance < minDistance) {
46950 closestWord = comparedTo;
46951 minDistance = distance;
46954 return closestWord;
46957 function hidePending() {
46963 function populateNetworkSelect() {
46964 for (var i=
0; i
<networks.length; i++) {
46965 var network = networks[i];
46966 var option = $(
"<option>");
46967 option.attr(
"value", i);
46968 option.text(network.name);
46969 if (network.name ==
"BTC - Bitcoin") {
46970 option.prop(
"selected", true);
46972 DOM.phraseNetwork.append(option);
46976 function populateClientSelect() {
46977 for (var i=
0; i
<clients.length; i++) {
46978 var client = clients[i];
46979 var option = $(
"<option>");
46980 option.attr(
"value", i);
46981 option.text(client.name);
46982 DOM.bip32Client.append(option);
46986 function getLanguage() {
46987 var defaultLanguage =
"english";
46988 // Try to get from existing phrase
46989 var language = getLanguageFromPhrase();
46990 // Try to get from url if not from phrase
46991 if (language.length ==
0) {
46992 language = getLanguageFromUrl();
46994 // Default to English if no other option
46995 if (language.length ==
0) {
46996 language = defaultLanguage;
47001 function getLanguageFromPhrase(phrase) {
47002 // Check if how many words from existing phrase match a language.
47005 phrase = DOM.phrase.val();
47007 if (phrase.length
> 0) {
47008 var words = phraseToWordArray(phrase);
47009 var languageMatches = {};
47010 for (l in WORDLISTS) {
47011 // Track how many words match in this language
47012 languageMatches[l] =
0;
47013 for (var i=
0; i
<words.length; i++) {
47014 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
47015 if (wordInLanguage) {
47016 languageMatches[l]++;
47019 // Find languages with most word matches.
47020 // This is made difficult due to commonalities between Chinese
47021 // simplified vs traditional.
47022 var mostMatches =
0;
47023 var mostMatchedLanguages = [];
47024 for (var l in languageMatches) {
47025 var numMatches = languageMatches[l];
47026 if (numMatches
> mostMatches) {
47027 mostMatches = numMatches;
47028 mostMatchedLanguages = [l];
47030 else if (numMatches == mostMatches) {
47031 mostMatchedLanguages.push(l);
47035 if (mostMatchedLanguages.length
> 0) {
47036 // Use first language and warn if multiple detected
47037 language = mostMatchedLanguages[
0];
47038 if (mostMatchedLanguages.length
> 1) {
47039 console.warn(
"Multiple possible languages");
47040 console.warn(mostMatchedLanguages);
47047 function getLanguageFromUrl() {
47048 for (var language in WORDLISTS) {
47049 if (window.location.hash.indexOf(language)
> -
1) {
47056 function setMnemonicLanguage() {
47057 var language = getLanguage();
47058 // Load the bip39 mnemonic generator for this language if required
47059 if (!(language in mnemonics)) {
47060 mnemonics[language] = new Mnemonic(language);
47062 mnemonic = mnemonics[language];
47065 function convertPhraseToNewLanguage() {
47066 var oldLanguage = getLanguageFromPhrase();
47067 var newLanguage = getLanguageFromUrl();
47068 var oldPhrase = DOM.phrase.val();
47069 var oldWords = phraseToWordArray(oldPhrase);
47071 for (var i=
0; i
<oldWords.length; i++) {
47072 var oldWord = oldWords[i];
47073 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47074 var newWord = WORDLISTS[newLanguage][index];
47075 newWords.push(newWord);
47077 newPhrase = wordArrayToPhrase(newWords);
47081 // TODO look at jsbip39 - mnemonic.splitWords
47082 function phraseToWordArray(phrase) {
47083 var words = phrase.split(/\s/g);
47085 for (var i=
0; i
<words.length; i++) {
47086 var word = words[i];
47087 if (word.length
> 0) {
47088 noBlanks.push(word);
47094 // TODO look at jsbip39 - mnemonic.joinWords
47095 function wordArrayToPhrase(words) {
47096 var phrase = words.join(
" ");
47097 var language = getLanguageFromPhrase(phrase);
47098 if (language ==
"japanese") {
47099 phrase = words.join(
"\u3000");
47104 function isUsingOwnEntropy() {
47105 return DOM.useEntropy.prop(
"checked");
47108 function setMnemonicFromEntropy() {
47109 clearEntropyFeedback();
47110 // Get entropy value
47111 var entropyStr = DOM.entropy.val();
47112 // Work out minimum base for entropy
47113 var entropy = Entropy.fromString(entropyStr);
47114 if (entropy.binaryStr.length ==
0) {
47117 // Show entropy details
47118 showEntropyFeedback(entropy);
47119 // Use entropy hash if not using raw entropy
47120 var bits = entropy.binaryStr;
47121 var mnemonicLength = DOM.entropyMnemonicLength.val();
47122 if (mnemonicLength !=
"raw") {
47123 // Get bits by hashing entropy with SHA256
47124 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47125 var hex = sjcl.codec.hex.fromBits(hash);
47126 bits = BigInteger.parse(hex,
16).toString(
2);
47127 while (bits.length %
256 !=
0) {
47130 // Truncate hash to suit number of words
47131 mnemonicLength = parseInt(mnemonicLength);
47132 var numberOfBits =
32 * mnemonicLength /
3;
47133 bits = bits.substring(
0, numberOfBits);
47135 // Discard trailing entropy
47136 var bitsToUse = Math.floor(bits.length /
32) *
32;
47137 var start = bits.length - bitsToUse;
47138 var binaryStr = bits.substring(start);
47139 // Convert entropy string to numeric array
47140 var entropyArr = [];
47141 for (var i=
0; i
<binaryStr.length /
8; i++) {
47142 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47143 var entropyByte = parseInt(byteAsBits,
2);
47144 entropyArr.push(entropyByte)
47146 // Convert entropy array to mnemonic
47147 var phrase = mnemonic.toMnemonic(entropyArr);
47148 // Set the mnemonic in the UI
47149 DOM.phrase.val(phrase);
47152 function clearEntropyFeedback() {
47153 DOM.entropyCrackTime.text(
"...");
47154 DOM.entropyType.text(
"");
47155 DOM.entropyWordCount.text(
"0");
47156 DOM.entropyEventCount.text(
"0");
47157 DOM.entropyBitsPerEvent.text(
"0");
47158 DOM.entropyBits.text(
"0");
47159 DOM.entropyFiltered.html(
" ");
47160 DOM.entropyBinary.html(
" ");
47163 function showEntropyFeedback(entropy) {
47164 var numberOfBits = entropy.binaryStr.length;
47165 var timeToCrack =
"unknown";
47167 var z = zxcvbn(entropy.base.parts.join(
""));
47168 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47169 if (z.feedback.warning !=
"") {
47170 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47174 console.log(
"Error detecting entropy strength with zxcvbn:");
47177 var entropyTypeStr = getEntropyTypeStr(entropy);
47178 var wordCount = Math.floor(numberOfBits /
32) *
3;
47179 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47180 DOM.entropyFiltered.html(entropy.cleanHtml);
47181 DOM.entropyType.text(entropyTypeStr);
47182 DOM.entropyCrackTime.text(timeToCrack);
47183 DOM.entropyEventCount.text(entropy.base.ints.length);
47184 DOM.entropyBits.text(numberOfBits);
47185 DOM.entropyWordCount.text(wordCount);
47186 DOM.entropyBinary.text(entropy.binaryStr);
47187 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47190 function getEntropyTypeStr(entropy) {
47191 var typeStr = entropy.base.str;
47192 // Add some detail if these are cards
47193 if (entropy.base.asInt ==
52) {
47194 var cardDetail = []; // array of message strings
47195 // Detect duplicates
47197 var dupeTracker = {};
47198 for (var i=
0; i
<entropy.base.parts.length; i++) {
47199 var card = entropy.base.parts[i];
47200 var cardUpper = card.toUpperCase();
47201 if (cardUpper in dupeTracker) {
47204 dupeTracker[cardUpper] = true;
47206 if (dupes.length
> 0) {
47207 var dupeWord =
"duplicates";
47208 if (dupes.length ==
1) {
47209 dupeWord =
"duplicate";
47211 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47212 if (dupes.length
> 3) {
47215 cardDetail.push(msg);
47217 // Detect full deck
47218 var uniqueCards = [];
47219 for (var uniqueCard in dupeTracker) {
47220 uniqueCards.push(uniqueCard);
47222 if (uniqueCards.length ==
52) {
47223 cardDetail.unshift(
"full deck");
47225 // Detect missing cards
47226 var values =
"A23456789TJQK";
47227 var suits =
"CDHS";
47228 var missingCards = [];
47229 for (var i=
0; i
<suits.length; i++) {
47230 for (var j=
0; j
<values.length; j++) {
47231 var card = values[j] + suits[i];
47232 if (!(card in dupeTracker)) {
47233 missingCards.push(card);
47237 // Display missing cards if six or less, ie clearly going for full deck
47238 if (missingCards.length
> 0 && missingCards.length <=
6) {
47239 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47240 if (missingCards.length
> 3) {
47243 cardDetail.push(msg);
47245 // Add card details to typeStr
47246 if (cardDetail.length
> 0) {
47247 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47253 function setQrEvents(els) {
47254 els.on(
"mouseenter", createQr);
47255 els.on(
"mouseleave", destroyQr);
47256 els.on(
"click", toggleQr);
47259 function createQr(e) {
47260 var content = e.target.textContent || e.target.value;
47263 DOM.qrImage.qrcode({width: size, height: size, text: content});
47265 DOM.qrHider.addClass(
"hidden");
47268 DOM.qrHider.removeClass(
"hidden");
47270 DOM.qrContainer.removeClass(
"hidden");
47274 function destroyQr() {
47275 DOM.qrImage.text(
"");
47276 DOM.qrContainer.addClass(
"hidden");
47279 function toggleQr() {
47281 DOM.qrHider.toggleClass(
"hidden");
47282 DOM.qrHint.toggleClass(
"hidden");
47285 function bip44TabSelected() {
47286 return DOM.bip44tab.hasClass(
"active");
47289 function bip32TabSelected() {
47290 return DOM.bip32tab.hasClass(
"active");
47293 function useP2wpkhNestedInP2sh() {
47294 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47297 function networkHasBip49() {
47298 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47301 function bip49TabSelected() {
47302 return DOM.bip49tab.hasClass(
"active");
47305 function setHdCoin(coinValue) {
47306 DOM.bip44coin.val(coinValue);
47307 DOM.bip49coin.val(coinValue);
47310 function showP2wpkhNestedInP2shAvailable() {
47311 DOM.bip49unavailable.addClass(
"hidden");
47312 DOM.bip49available.removeClass(
"hidden");
47313 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47316 function showP2wpkhNestedInP2shUnavailable() {
47317 DOM.bip49available.addClass(
"hidden");
47318 DOM.bip49unavailable.removeClass(
"hidden");
47319 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47320 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47325 name:
"BCH - Bitcoin Cash",
47326 p2wpkhNestedInP2shAvailable: false,
47327 onSelect: function() {
47328 network = bitcoinjs.bitcoin.networks.bitcoin;
47333 name:
"BTC - Bitcoin",
47334 p2wpkhNestedInP2shAvailable: true,
47335 onSelect: function() {
47336 network = bitcoinjs.bitcoin.networks.bitcoin;
47341 name:
"BTC - Bitcoin Testnet",
47342 p2wpkhNestedInP2shAvailable: true,
47343 onSelect: function() {
47344 network = bitcoinjs.bitcoin.networks.testnet;
47349 name:
"CLAM - Clams",
47350 p2wpkhNestedInP2shAvailable: false,
47351 onSelect: function() {
47352 network = bitcoinjs.bitcoin.networks.clam;
47357 name:
"CRW - Crown",
47358 p2wpkhNestedInP2shAvailable: false,
47359 onSelect: function() {
47360 network = bitcoinjs.bitcoin.networks.crown;
47365 name:
"DASH - Dash",
47366 p2wpkhNestedInP2shAvailable: false,
47367 onSelect: function() {
47368 network = bitcoinjs.bitcoin.networks.dash;
47373 name:
"DASH - Dash Testnet",
47374 p2wpkhNestedInP2shAvailable: false,
47375 onSelect: function() {
47376 network = bitcoinjs.bitcoin.networks.dashtn;
47381 name:
"DOGE - Dogecoin",
47382 p2wpkhNestedInP2shAvailable: false,
47383 onSelect: function() {
47384 network = bitcoinjs.bitcoin.networks.dogecoin;
47389 name:
"ETH - Ethereum",
47390 p2wpkhNestedInP2shAvailable: false,
47391 onSelect: function() {
47392 network = bitcoinjs.bitcoin.networks.bitcoin;
47397 name:
"GAME - GameCredits",
47398 p2wpkhNestedInP2shAvailable: false,
47399 onSelect: function() {
47400 network = bitcoinjs.bitcoin.networks.game;
47405 name:
"JBS - Jumbucks",
47406 p2wpkhNestedInP2shAvailable: false,
47407 onSelect: function() {
47408 network = bitcoinjs.bitcoin.networks.jumbucks;
47413 name:
"LTC - Litecoin",
47414 p2wpkhNestedInP2shAvailable: false,
47415 onSelect: function() {
47416 network = bitcoinjs.bitcoin.networks.litecoin;
47418 DOM.litecoinLtubContainer.removeClass(
"hidden");
47422 name:
"MAZA - Maza",
47423 p2wpkhNestedInP2shAvailable: false,
47424 onSelect: function() {
47425 network = bitcoinjs.bitcoin.networks.maza;
47431 name:
"NMC - Namecoin",
47432 p2wpkhNestedInP2shAvailable: false,
47433 onSelect: function() {
47434 network = bitcoinjs.bitcoin.networks.namecoin;
47439 name:
"PIVX - PIVX",
47440 p2wpkhNestedInP2shAvailable: false,
47441 onSelect: function() {
47442 network = bitcoinjs.bitcoin.networks.pivx;
47447 name:
"PIVX - PIVX Testnet",
47448 p2wpkhNestedInP2shAvailable: false,
47449 onSelect: function() {
47450 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47455 name:
"PPC - Peercoin",
47456 p2wpkhNestedInP2shAvailable: false,
47457 onSelect: function() {
47458 network = bitcoinjs.bitcoin.networks.peercoin;
47463 name:
"SDC - ShadowCash",
47464 p2wpkhNestedInP2shAvailable: false,
47465 onSelect: function() {
47466 network = bitcoinjs.bitcoin.networks.shadow;
47471 name:
"SDC - ShadowCash Testnet",
47472 p2wpkhNestedInP2shAvailable: false,
47473 onSelect: function() {
47474 network = bitcoinjs.bitcoin.networks.shadowtn;
47479 name:
"SLM - Slimcoin",
47480 p2wpkhNestedInP2shAvailable: false,
47481 onSelect: function() {
47482 network = bitcoinjs.bitcoin.networks.slimcoin;
47487 name:
"SLM - Slimcoin Testnet",
47488 p2wpkhNestedInP2shAvailable: false,
47489 onSelect: function() {
47490 network = bitcoinjs.bitcoin.networks.slimcointn;
47495 name:
"VIA - Viacoin",
47496 p2wpkhNestedInP2shAvailable: false,
47497 onSelect: function() {
47498 network = bitcoinjs.bitcoin.networks.viacoin;
47503 name:
"VIA - Viacoin Testnet",
47504 p2wpkhNestedInP2shAvailable: false,
47505 onSelect: function() {
47506 network = bitcoinjs.bitcoin.networks.viacointestnet;
47511 name:
"XMY - Myriadcoin",
47512 p2wpkhNestedInP2shAvailable: false,
47513 onSelect: function() {
47514 network = bitcoinjs.bitcoin.networks.myriadcoin;
47519 name:
"XRP - Ripple",
47520 p2wpkhNestedInP2shAvailable: false,
47521 onSelect: function() {
47522 network = bitcoinjs.bitcoin.networks.bitcoin;
47530 name:
"Bitcoin Core",
47531 onSelect: function() {
47532 DOM.bip32path.val(
"m/0'/0'");
47533 DOM.hardenedAddresses.prop('checked', true);
47537 name:
"blockchain.info",
47538 onSelect: function() {
47539 DOM.bip32path.val(
"m/44'/0'/0'");
47540 DOM.hardenedAddresses.prop('checked', false);
47544 name:
"MultiBit HD",
47545 onSelect: function() {
47546 DOM.bip32path.val(
"m/0'/0");
47547 DOM.hardenedAddresses.prop('checked', false);