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>BIP49
<span class=
"small" data-translate
>Derivation scheme for P2WPKH-nested-in-P2SH based accounts
</span></h3>
641 <p data-translate-html
>
643 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">official BIP49 spec
</a>
645 <h3 data-translate
>Private Keys
</h3>
647 <span data-translate-html
>
649 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
651 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
653 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
655 <span data-translate-html
>
656 Entropy values must be sourced from a
657 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
659 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
660 <span data-translate-html
>
661 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
662 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
663 random enough for the needs of this tool.
667 <strong><span data-translate
>Do not store entropy.
</span></strong>
670 <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>
671 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
672 <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>
675 <span data-translate-html
>
676 The random mnemonic generator on this page uses a
677 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
679 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
680 <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>
681 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
684 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
686 <h3 data-translate
>License
</h3>
688 <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.
691 <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>
698 <div class=
"col-md-12">
700 <h2 data-translate
>Offline Usage
</h2>
703 You can use this tool without having to be online.
706 In your browser, select file save-as, and save this page
710 Double-click that file to open it in a browser
711 on any offline computer.
714 <span data-translate
>Alternatively, download the file from the repository
</span>
716 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
725 <div class=
"col-md-12">
727 <h2 data-translate
>This project is
100% open-source code
</h2>
730 <span data-translate
>Get the source code from the repository
</span>
732 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
733 https://github.com/iancoleman/bip39
737 <h3 data-translate
>Libraries
</h3>
740 <span>BitcoinJS -
</span>
741 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
742 https://github.com/bitcoinjs/bitcoinjs-lib
747 <span>jsBIP39 -
</span>
748 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
749 https://github.com/iancoleman/jsbip39
755 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
756 https://github.com/bitwiseshiftleft/sjcl
761 <span>jQuery -
</span>
762 <a href=
"https://jquery.com/" target=
"_blank">
768 <span>Twitter Bootstrap -
</span>
769 <a href=
"http://getbootstrap.com/" target=
"_blank">
770 http://getbootstrap.com/
779 <div class=
"qr-container hidden">
780 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
781 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
782 <div class=
"qr-hider hidden">
783 <div class=
"qr-image"></div>
784 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
788 <div class=
"feedback-container">
789 <div class=
"feedback">Loading...
</div>
792 <script type=
"text/template" id=
"address-row-template">
794 <td class=
"index"><span></span></td>
795 <td class=
"address"><span data-show-qr
></span></td>
796 <td class=
"pubkey"><span data-show-qr
></span></td>
797 <td class=
"privkey"><span data-show-qr
></span></td>
801 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
802 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
803 // but is not required in any modern browsers.
804 // For more information, see
805 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
807 //----------------------------------------------------------------------
809 // ECMAScript
2015 Polyfills
811 //----------------------------------------------------------------------
816 // Set this to always override native implementations, for testing
817 // the polyfill in browsers with partial/full ES2015 support.
818 var OVERRIDE_NATIVE_FOR_TESTING = false;
820 var undefined = (void
0); // Paranoia
825 return o === global ? undefined : o;
828 function hook(o, p, f) {
830 console.assert(typeof op === 'function', 'Hooking a non-function');
832 var o = strict(this);
833 var r = f.apply(o, arguments);
834 return r !== undefined ? r : op.apply(o, arguments);
838 function isSymbol(s) {
839 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
842 function getPropertyDescriptor(target, name) {
843 var desc = Object.getOwnPropertyDescriptor(target, name);
844 var proto = Object.getPrototypeOf(target);
845 while (!desc && proto) {
846 desc = Object.getOwnPropertyDescriptor(proto, name);
847 proto = Object.getPrototypeOf(proto);
852 var enqueue = (function(nativePromise, nativeSetImmediate) {
854 return function(job) { nativePromise.resolve().then(function() { job(); }); };
855 if (nativeSetImmediate)
856 return function(job) { nativeSetImmediate(job); };
857 return function(job) { setTimeout(job,
0); };
858 }(global['Promise'], global['setImmediate']));
860 function define(o, p, v, override) {
861 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
864 if (typeof v === 'function') {
865 // Sanity check that functions are appropriately named (where possible)
866 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
867 Object.defineProperty(o, p, {
874 Object.defineProperty(o, p, {
883 function set_internal(o, p, v) {
884 Object.defineProperty(o, p, {
892 // Snapshot intrinsic functions
893 var $isNaN = global.isNaN,
894 $parseInt = global.parseInt,
895 $parseFloat = global.parseFloat;
898 LOG10E = Math.LOG10E,
908 random = Math.random,
911 var orig_match = String.prototype.match,
912 orig_replace = String.prototype.replace,
913 orig_search = String.prototype.search,
914 orig_split = String.prototype.split;
916 // These are used for implementing the polyfills, but not exported.
918 // Inspired by https://gist.github.com/
1638059
920 function EphemeronTable() {
921 var secretKey = ObjectCreate(null);
923 function conceal(o) {
924 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
925 Object.defineProperty(o, 'valueOf', {
926 value: (function(secretKey) {
927 return function (k) {
928 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
939 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
940 return v === o ? null : v;
945 secretKey = ObjectCreate(null);
947 remove: function(key) {
948 var secrets = reveal(key);
949 if (secrets && HasOwnProperty(secrets, 'value')) {
950 delete secrets.value;
955 get: function(key, defaultValue) {
956 var secrets = reveal(key);
957 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
960 var secrets = reveal(key);
961 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
963 set: function(key, value) {
964 var secrets = reveal(key) || conceal(key);
965 secrets.value = value;
970 var empty = Object.create(null);
972 //----------------------------------------------------------------------
975 // http://www.ecma-international.org/ecma-
262/
6.0/
977 //----------------------------------------------------------------------
979 // ---------------------------------------
980 //
19.4 Symbol Objects
981 // ---------------------------------------
983 // NOTE: Symbols are defined here - out of spec order - since we need the
984 // properties and prototype to be populated for other polyfills.
986 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
990 var secret = Object.create(null);
992 symbolForKey = function(k) {
996 var GlobalSymbolRegistry = [];
998 function unique(bits) {
999 return Array(bits +
1).join('x').replace(/x/g, function() {
1000 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
1004 //
19.4.1 The Symbol Constructor
1005 //
19.4.1.1 Symbol ( description=undefined )
1006 function Symbol(description) {
1007 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1008 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1010 var descString = description === undefined ? undefined : String(description);
1012 set_internal(this, '[[SymbolData]]', unique(
128));
1013 set_internal(this, '[[Description]]', descString);
1015 symbolMap[this] = this;
1019 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1020 global.Symbol = Symbol;
1022 //
19.4.2 Properties of the Symbol Constructor
1024 //
19.4.2.1 Symbol.for (key)
1025 define(Symbol, 'for', function for_(key) {
1026 var stringKey = String(key);
1027 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1028 var e = GlobalSymbolRegistry[i];
1029 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1031 var newSymbol = Symbol(key);
1032 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1036 //
19.4.2.2 Symbol.hasInstance
1037 //
19.4.2.3 Symbol.isConcatSpreadable
1039 //
19.4.2.4 Symbol.iterator
1040 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1042 //
19.4.2.5 Symbol.keyFor (sym)
1043 define(Symbol, 'keyFor', function keyFor(sym) {
1044 if (!(sym instanceof Symbol)) throw TypeError();
1045 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1046 var e = GlobalSymbolRegistry[i];
1047 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1052 //
19.4.2.6 Symbol.match
1053 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1055 //
19.4.2.7 Symbol.prototype
1057 //
19.4.2.8 Symbol.replace
1058 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1060 //
19.4.2.9 Symbol.search
1061 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1063 //
19.4.2.10 Symbol.species
1065 //
19.4.2.11 Symbol.search
1066 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1068 //
19.4.2.12 Symbol.toPrimitive
1070 //
19.4.2.13 Symbol.toStringTag
1071 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1073 //
19.4.2.14 Symbol.unscopables
1075 //
19.4.3 Properties of the Symbol Prototype Object
1076 //
19.4.3.1 Symbol.prototype.constructor
1078 //
19.4.3.2 Symbol.prototype.toString ( )
1079 Object.defineProperty(Symbol.prototype, 'toString', {
1080 value: function toString() {
1081 var s = strict(this);
1082 var desc = s['[[Description]]'];
1083 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1085 configurable: true, writeable: true, enumerable: false });
1087 //
19.4.3.3 Symbol.prototype.valueOf ( )
1088 Object.defineProperty(Symbol.prototype, 'valueOf', {
1089 value: function valueOf() {
1090 // To prevent automatic string conversion:
1093 // Spec has approximately the following:
1094 //var s = strict(this);
1095 //if (Type(s) === 'symbol') return s;
1096 //if (Type(s) !== 'object') throw TypeError();
1097 //if (!('[[SymbolData]]' in s)) throw TypeError();
1098 //return s['[[SymbolData]]'];
1100 configurable: true, writeable: true, enumerable: false });
1102 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1103 // (Done later to polyfill partial implementations)
1105 //
19.4.4 Properties of Symbol Instances
1108 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1110 // Defined here so that other prototypes can reference it
1111 //
25.1.2 The %IteratorPrototype% Object
1112 var $IteratorPrototype$ = {};
1114 //----------------------------------------
1115 //
6 ECMAScript Data Types and Values
1116 //----------------------------------------
1118 //
6.1 ECMAScript Language Types
1120 // "Type(x)" is used as shorthand for "the type of x"...
1123 case 'undefined': return 'undefined';
1124 case 'boolean': return 'boolean';
1125 case 'number': return 'number';
1126 case 'string': return 'string';
1127 case 'symbol': return 'symbol';
1129 if (v === null) return 'null';
1130 if (v instanceof global.Symbol) return 'symbol';
1135 //
6.1.5.1 Well-Known Symbols
1136 var $$iterator = global.Symbol.iterator,
1137 $$match = global.Symbol.match,
1138 $$replace = global.Symbol.replace,
1139 $$search = global.Symbol.search,
1140 $$split = global.Symbol.split,
1141 $$toStringTag = global.Symbol.toStringTag;
1143 //----------------------------------------
1144 //
7 Abstract Operations
1145 //----------------------------------------
1147 //----------------------------------------
1148 //
7.1 Type Conversion
1149 //----------------------------------------
1151 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1152 // just use valueOf()
1154 //
7.1.2 ToBoolean ( argument )
1155 // just use Boolean()
1157 //
7.1.3 ToNumber ( argument )
1158 // just use Number()
1160 //
7.1.4 ToInteger ( argument )
1161 function ToInteger(n) {
1163 if ($isNaN(n)) return
0;
1164 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1165 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1168 //
7.1.5 ToInt32 ( argument )
1169 function ToInt32(v) { return v
>> 0; }
1171 //
7.1.6 ToUint32 ( argument )
1172 function ToUint32(v) { return v
>>> 0; }
1174 //
7.1.7 ToInt16 ( argument )
1175 function ToInt16(v) { return (v <<
16)
>> 16; }
1177 //
7.1.8 ToUint16 ( argument )
1178 function ToUint16(v) { return v &
0xFFFF; }
1180 //
7.1.9 ToInt8 ( argument )
1181 function ToInt8(v) { return (v <<
24)
>> 24; }
1183 //
7.1.10 ToUint8 ( argument )
1184 function ToUint8(v) { return v &
0xFF; }
1186 //
7.1.11 ToUint8Clamp ( argument )
1187 function ToUint8Clamp(argument) {
1188 var number = Number(argument);
1189 if ($isNaN(number)) return
0;
1190 if (number <=
0) return
0;
1191 if (number
>=
255) return
255;
1192 var f = floor(number);
1193 if ((f +
0.5) < number) return f +
1;
1194 if (number < (f +
0.5)) return f;
1195 if (f %
2) return f +
1;
1199 //
7.1.12 ToString ( argument )
1200 // just use String()
1202 //
7.1.13 ToObject ( argument )
1203 function ToObject(v) {
1204 if (v === null || v === undefined) throw TypeError();
1208 //
7.1.14 ToPropertyKey ( argument )
1209 function ToPropertyKey(v) {
1213 //
7.1.15 ToLength ( argument )
1214 function ToLength(v) {
1215 var len = ToInteger(v);
1216 if (len <=
0) return
0;
1217 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1218 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1221 //
7.1.16 CanonicalNumericIndexString ( argument )
1223 //----------------------------------------
1224 //
7.2 Testing and Comparison Operations
1225 //----------------------------------------
1227 //
7.2.1 RequireObjectCoercible ( argument )
1228 //
7.2.2 IsArray ( argument )
1230 //
7.2.3 IsCallable ( argument )
1231 function IsCallable(o) { return typeof o === 'function'; }
1233 //
7.2.4 IsConstructor ( argument )
1234 function IsConstructor(o) {
1235 // Hacks for Safari
7 TypedArray XXXConstructor objects
1236 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1237 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1238 // TODO: Can this be improved on?
1239 return typeof o === 'function';
1242 //
7.2.5 IsExtensible (O)
1243 //
7.2.6 IsInteger ( argument )
1245 //
7.2.7 IsPropertyKey ( argument )
1246 function IsPropertyKey(argument) {
1247 if (Type(argument) === 'string') return true;
1248 if (Type(argument) === 'symbol') return true;
1252 //
7.2.8 IsRegExp ( argument )
1253 //
7.2.5 IsConstructor ( argument )
1255 //
7.2.9 SameValue(x, y)
1256 function SameValue(x, y) {
1257 if (typeof x !== typeof y) return false;
1262 if (x !== x && y !== y) return true;
1263 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1273 //
7.2.10 SameValueZero(x, y)
1274 function SameValueZero(x, y) {
1275 if (typeof x !== typeof y) return false;
1280 if (x !== x && y !== y) return true;
1290 //----------------------------------------
1291 //
7.3 Operations on Objects
1292 //----------------------------------------
1295 // - just use o.p or o[p]
1297 //
7.3.2 GetV (V, P)
1298 function GetV(v, p) {
1299 var o = ToObject(v);
1303 //
7.3.3 Set (O, P, V, Throw)
1304 // - just use o.p = v or o[p] = v
1309 //
7.3.9 GetMethod (O, P)
1310 function GetMethod(o, p) {
1311 var func = GetV(o, p);
1312 if (func === undefined || func === null) return undefined;
1313 if (!IsCallable(func)) throw TypeError();
1317 //
7.3.10 HasProperty (O, P)
1318 function HasProperty(o, p) {
1320 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1321 if (Type(o) !== 'object') return false;
1322 o = Object.getPrototypeOf(o);
1327 //
7.3.11 HasOwnProperty (O, P)
1328 function HasOwnProperty(o, p) {
1329 return Object.prototype.hasOwnProperty.call(o, p);
1332 //----------------------------------------
1333 //
7.4 Operations on Iterator Objects
1334 //----------------------------------------
1336 //
7.4.1 GetIterator ( obj, method )
1337 function GetIterator(obj, method) {
1338 if (arguments.length <
2)
1339 method = GetMethod(obj, $$iterator);
1340 var iterator = method.call(obj);
1341 if (Type(iterator) !== 'object') throw TypeError();
1345 //
7.4.2 IteratorNext ( iterator, value )
1346 function IteratorNext(iterator, value) {
1347 if (arguments.length <
2)
1348 var result = iterator.next();
1350 result = iterator.next(value);
1351 if (Type(result) !== 'object') throw TypeError();
1355 //
7.4.3 IteratorComplete ( iterResult )
1356 function IteratorComplete(iterResult) {
1357 console.assert(Type(iterResult) === 'object');
1358 return Boolean(iterResult.done);
1361 //
7.4.4 IteratorValue ( iterResult )
1362 function IteratorValue(iterResult) {
1363 console.assert(Type(iterResult) === 'object');
1364 return iterResult.value;
1367 //
7.4.5 IteratorStep ( iterator )
1368 function IteratorStep( iterator, value ) {
1369 var result = IteratorNext(iterator, value);
1370 var done = result['done'];
1371 if (Boolean(done) === true) return false;
1375 //
7.4.6 IteratorClose( iterator, completion )
1376 function IteratorClose( iterator, completion ) {
1377 console.assert(Type(iterator) === 'object');
1378 var _return = GetMethod(iterator, 'return');
1379 if (_return === undefined) return completion;
1381 var innerResult = _return[iterator]();
1383 // TODO: If completion.[[type]] is throw, return completion
1386 if (Type(innerResult) !== 'object') throw TypeError();
1390 //
7.4.7 CreateIterResultObject (value, done)
1391 function CreateIterResultObject(value, done) {
1392 console.assert(Type(done) === 'boolean');
1394 obj["value"] = value;
1399 //
7.4.8 CreateListIterator (list)
1400 //
7.4.8.1 ListIterator next( )
1401 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1402 //
7.4.9.1 CompoundIterator next( )
1404 //----------------------------------------
1405 //
8 Executable Code and Execution Contexts
1406 //----------------------------------------
1408 //----------------------------------------
1409 //
8.4 Jobs and Job Queues
1410 //----------------------------------------
1412 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1413 function EnqueueJob(queueName, job, args) {
1414 var fn = function() { job.apply(undefined, args); };
1418 //
8.4.2 NextJob result
1419 function NextJob(result) {
1423 //----------------------------------------
1424 //
9 Ordinary and Exotic Objects Behaviors
1425 //----------------------------------------
1427 //
9.1.11 [[Enumerate]] ()
1428 function Enumerate(obj) {
1430 if (Object(obj) !== obj) return e;
1431 var visited = new Set;
1432 while (obj !== null) {
1433 Object.getOwnPropertyNames(obj).forEach(function(name) {
1434 if (!visited.has(name)) {
1435 var desc = Object.getOwnPropertyDescriptor(obj, name);
1438 if (desc.enumerable) e.push(name);
1442 obj = Object.getPrototypeOf(obj);
1444 return e[$$iterator]();
1447 //
9.1.12 [[OwnPropertyKeys]] ( )
1448 function OwnPropertyKeys(o) {
1449 return Object.getOwnPropertyNames(o);
1452 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1453 function ObjectCreate(proto, internalSlotsList) {
1454 return Object.create(proto, internalSlotsList);
1457 // ---------------------------------------
1458 //
19 Fundamental Objects
1459 // ---------------------------------------
1461 // ---------------------------------------
1462 //
19.1 Object Objects
1463 // ---------------------------------------
1465 //
19.1.1 The Object Constructor
1466 //
19.1.1.1 Object ( [ value ] )
1467 //
19.1.2 Properties of the Object Constructor
1468 //
19.1.2.1 Object.assign ( target, ...sources )
1471 function assign(target, /*...*/sources) {
1472 var to = ToObject(target);
1473 if (arguments.length <
2) return to;
1475 var sourcesIndex =
1;
1476 while (sourcesIndex < arguments.length) {
1477 var nextSource = arguments[sourcesIndex++];
1478 if (nextSource === undefined || nextSource === null) {
1481 var from = ToObject(nextSource);
1482 keys = OwnPropertyKeys(from);
1484 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1485 var nextKey = keys[keysIndex];
1486 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1487 if (desc !== undefined && desc.enumerable) {
1488 var propValue = from[nextKey];
1489 to[nextKey] = propValue;
1496 //
19.1.2.2 Object.create ( O [ , Properties ] )
1497 //
19.1.2.3 Object.defineProperties ( O, Properties )
1498 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1499 //
19.1.2.5 Object.freeze ( O )
1500 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1503 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1504 $getOwnPropertyNames = Object.getOwnPropertyNames,
1505 $keys = Object.keys,
1506 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1508 function isStringKey(k) { return !symbolForKey(k); }
1510 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1512 Object, 'getOwnPropertyNames',
1513 function getOwnPropertyNames(o) {
1514 if (Object.prototype.toString.call(o) === '[object Window]') {
1515 // Workaround for cross-realm calling by IE itself.
1516 // https://github.com/inexorabletash/polyfill/issues/
96
1518 return $getOwnPropertyNames(o).filter(isStringKey);
1520 return $window_names.slice();
1523 return $getOwnPropertyNames(o).filter(isStringKey);
1526 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1528 Object, 'getOwnPropertySymbols',
1529 function getOwnPropertySymbols(o) {
1530 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1533 //
19.1.2.14 Object.keys ( O )
1537 return $keys(o).filter(isStringKey);
1541 //
19.1.2.9 Object.getPrototypeOf ( O )
1542 //
19.1.2.10 Object.is ( value1, value2 )
1545 function is(value1, value2) {
1546 return SameValue(value1, value2);
1549 //
19.1.2.11 Object.isExtensible ( O )
1550 //
19.1.2.12 Object.isFrozen ( O )
1551 //
19.1.2.13 Object.isSealed ( O )
1553 //
19.1.2.14 Object.keys ( O )
1556 //
19.1.2.15 Object.preventExtensions ( O )
1557 //
19.1.2.16 Object.prototype
1558 //
19.1.2.17 Object.seal ( O )
1560 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1562 Object, 'setPrototypeOf',
1563 function setPrototypeOf(o, proto) {
1564 if (Type(o) !== 'object') throw TypeError();
1565 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1566 o.__proto__ = proto;
1571 //
19.1.3 Properties of the Object Prototype Object
1572 //
19.1.3.1 Object.prototype.constructor
1573 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1574 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1575 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1576 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1577 //
19.1.3.6 Object.prototype.toString ( )
1578 hook(Object.prototype, 'toString',
1580 var o = strict(this);
1581 if (o === Object(o) && $$toStringTag in o) {
1582 return '[object ' + o[$$toStringTag] + ']';
1587 //
19.1.3.7 Object.prototype.valueOf ( )
1588 //
19.1.4 Properties of Object Instances
1590 // ---------------------------------------
1591 //
19.2 Function Objects
1592 // ---------------------------------------
1594 //
19.2.1 The Function Constructor
1595 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1596 //
19.2.2 Properties of the Function Constructor
1597 //
19.2.2.1 Function.length
1598 //
19.2.2.2 Function.prototype
1599 //
19.2.3 Properties of the Function Prototype Object
1600 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1601 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1602 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1603 //
19.2.3.4 Function.prototype.constructor
1604 //
19.2.3.5 Function.prototype.toString ( )
1605 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1606 //
19.2.4 Function Instances
1609 //
19.2.4.3 prototype
1611 // (No polyfillable changes from ES5)
1613 // ---------------------------------------
1614 //
19.3 Boolean Objects
1615 // ---------------------------------------
1617 //
19.3.1 The Boolean Constructor
1618 //
19.3.1.1 Boolean ( value )
1619 //
19.3.2 Properties of the Boolean Constructor
1620 //
19.3.2.1 Boolean.prototype
1621 //
19.3.3 Properties of the Boolean Prototype Object
1622 //
19.3.3.1 Boolean.prototype.constructor
1623 //
19.3.3.2 Boolean.prototype.toString ( )
1624 //
19.3.3.3 Boolean.prototype.valueOf ( )
1625 //
19.3.4 Properties of Boolean Instances
1627 // (No polyfillable changes from ES5)
1629 // ---------------------------------------
1630 //
19.4 Symbol Objects
1631 // ---------------------------------------
1633 // Moved earlier in this script, so that other polyfills can depend on them.
1635 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1636 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1638 // ---------------------------------------
1639 //
19.5 Error Objects
1640 // ---------------------------------------
1642 //
19.5.1 The Error Constructor
1643 //
19.5.1.1 Error ( message )
1644 //
19.5.1.2 new Error( ...argumentsList )
1645 //
19.5.2 Properties of the Error Constructor
1646 //
19.5.2.1 Error.prototype
1647 //
19.5.3 Properties of the Error Prototype Object
1648 //
19.5.3.1 Error.prototype.constructor
1649 //
19.5.3.2 Error.prototype.message
1650 //
19.5.3.3 Error.prototype.name
1651 //
19.5.3.4 Error.prototype.toString ( )
1652 //
19.5.4 Properties of Error Instances
1653 //
19.5.5 Native Error Types Used in This Standard
1654 //
19.5.5.1 EvalError
1655 //
19.5.5.2 RangeError
1656 //
19.5.5.3 ReferenceError
1657 //
19.5.5.4 SyntaxError
1658 //
19.5.5.5 TypeError
1659 //
19.5.5.6 URIError
1660 //
19.5.6 NativeError Object Structure
1661 //
19.5.6.1 NativeError Constructors
1662 //
19.5.6.1.1 NativeError ( message )
1663 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1664 //
19.5.6.2 Properties of the NativeError Constructors
1665 //
19.5.6.2.1 NativeError.prototype
1666 //
19.5.6.3 Properties of the NativeError Prototype Objects
1667 //
19.5.6.4 Properties of NativeError Instances
1669 // (No polyfillable changes from ES5)
1671 // ---------------------------------------
1672 //
20 Numbers and Dates
1673 // ---------------------------------------
1675 // ---------------------------------------
1676 //
20.1 Number Objects
1677 // ---------------------------------------
1679 //
20.1.1 The Number Constructor
1680 //
20.1.1.1 Number ( [ value ] )
1681 //
20.1.1.2 new Number ( ...argumentsList )
1682 //
20.1.2 Properties of the Number Constructor
1684 //
20.1.2.1 Number.EPSILON
1689 for (next =
1;
1 + next !==
1; next = next /
2)
1694 //
20.1.2.2 Number.isFinite ( number )
1697 function isFinite(number) {
1698 if (Type(number) !== 'number') return false;
1699 if (number !== number || number === +Infinity || number === -Infinity) return false;
1703 //
20.1.2.3 Number.isInteger ( number )
1705 Number, 'isInteger',
1706 function isInteger(number) {
1707 if (Type(number) !== 'number') return false;
1708 if (number !== number || number === +Infinity || number === -Infinity) return false;
1709 var integer = ToInteger(number);
1710 if (integer !== number) return false;
1714 //
20.1.2.4 Number.isNaN ( number )
1717 function isNaN(number) {
1718 if (Type(number) !== 'number') return false;
1719 if (number !== number) return true;
1723 //
20.1.2.5 Number.isSafeInteger ( number )
1725 Number, 'isSafeInteger',
1726 function isSafeInteger(number) {
1727 if (Type(number) !== 'number') return false;
1728 if (number !== number || number === +Infinity || number === -Infinity) return false;
1729 var integer = ToInteger(number);
1730 if (integer !== number) return false;
1731 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1736 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1738 Number, 'MAX_SAFE_INTEGER',
1739 9007199254740991); //
2^
53-
1
1741 //
20.1.2.7 Number.MAX_VALUE
1743 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1745 Number, 'MIN_SAFE_INTEGER',
1746 -
9007199254740991); // -
2^
53+
1
1748 //
20.1.2.9 Number.MIN_VALUE
1749 //
20.1.2.10 Number.NaN
1750 //
20.1.2.11 Number.NEGATIVE_INFINITY
1752 //
20.1.2.12 Number.parseFloat ( string )
1753 define(Number, 'parseFloat', $parseFloat);
1755 //
20.1.2.13 Number.parseInt ( string, radix )
1756 define(Number, 'parseInt', $parseInt);
1758 //
20.1.2.14 Number.POSITIVE_INFINITY
1759 //
20.1.2.15 Number.prototype
1761 //
20.1.3 Properties of the Number Prototype Object
1762 //
20.1.3.1 Number.prototype.constructor
1763 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1764 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1765 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1766 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1767 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1768 //
20.1.3.7 Number.prototype.valueOf ( )
1769 //
20.1.4 Properties of Number Instances
1771 // ---------------------------------------
1772 //
20.2 The Math Object
1773 // ---------------------------------------
1775 //
20.2.1 Value Properties of the Math Object
1777 //
20.2.1.2 Math.LN10
1778 //
20.2.1.3 Math.LN2
1779 //
20.2.1.4 Math.LOG10E
1780 //
20.2.1.5 Math.LOG2E
1782 //
20.2.1.7 Math.SQRT1_2
1783 //
20.2.1.8 Math.SQRT2
1785 //
20.2.1.9 Math [ @@toStringTag ]
1786 define(Math, $$toStringTag, 'Math');
1788 //
20.2.2 Function Properties of the Math Object
1789 //
20.2.2.1 Math.abs ( x )
1790 //
20.2.2.2 Math.acos ( x )
1792 //
20.2.2.3 Math.acosh(x)
1797 return log(x + sqrt(x * x -
1));
1800 //
20.2.2.4 Math.asin ( x )
1802 //
20.2.2.5 Math.asinh( x )
1807 if (SameValue(x, -
0)) {
1810 var s = sqrt(x * x +
1);
1811 return (s === -x) ? log(
0) : log(x + s);
1814 //
20.2.2.6 Math.atan ( x )
1816 //
20.2.2.7 Math.atanh( x )
1821 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1824 //
20.2.2.8 Math.atan2 ( y, x )
1826 //
20.2.2.9 Math.cbrt ( x )
1834 var r = pow(abs(x),
1/
3);
1836 return r + (r * (t-r) / (
2*r + t));
1839 //
20.2.2.10 Math.ceil ( x )
1841 //
20.2.2.11 Math.clz32 ( x )
1846 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1847 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1850 return x &
0xff000000 ? clz8(x
>> 24) :
1851 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1852 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1857 //
20.2.2.12 Math.cos ( x )
1859 //
20.2.2.13 Math.cosh ( x )
1864 return (pow(E, x) + pow(E, -x)) /
2;
1867 //
20.2.2.14 Math.exp ( x )
1869 //
20.2.2.15 Math.expm1 ( x )
1874 // from: http://www.johndcook.com/cpp_log1p.html
1875 if (SameValue(x, -
0)) {
1877 } else if (abs(x) <
1e-5) {
1878 return x +
0.5 * x * x; // two terms of Taylor expansion
1884 //
20.2.2.16 Math.floor ( x )
1886 //
20.2.2.17 Math.fround ( x )
1889 function fround(x) {
1893 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1896 return (new Float32Array([x]))[
0];
1899 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1904 var m =
0, sawNaN = false;
1905 for (var i =
0; i < arguments.length; ++i) {
1906 var n = abs(Number(arguments[i]));
1907 if (n === Infinity) return n;
1908 if (n !== n) sawNaN = true;
1912 if (sawNaN) return NaN;
1913 if (m ===
0) return +
0;
1915 for (i =
0; i < values.length; ++i) {
1916 var r = values[i] / m;
1919 return m * sqrt(sum);
1922 //
20.2.2.19 Math.imul ( x, y )
1925 function imul(x, y) {
1926 var a = ToUint32(x);
1927 var b = ToUint32(y);
1928 // (slow but accurate)
1929 var ah = (a
>>> 16) &
0xffff;
1930 var al = a &
0xffff;
1931 var bh = (b
>>> 16) &
0xffff;
1932 var bl = b &
0xffff;
1933 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1934 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1937 //
20.2.2.20 Math.log ( x )
1939 //
20.2.2.21 Math.log1p ( x )
1944 // from: http://www.johndcook.com/cpp_expm1.html
1947 } else if (SameValue(x, -
0)) {
1949 } else if (abs(x)
> 1e-4) {
1952 return (-
0.5 * x +
1) * x;
1956 //
20.2.2.22 Math.log10 ( x )
1961 return log(x) * LOG10E;
1964 //
20.2.2.23 Math.log2 ( x )
1969 return log(x) * LOG2E;
1972 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1973 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1974 //
20.2.2.26 Math.pow ( x, y )
1975 //
20.2.2.27 Math.random ( )
1976 //
20.2.2.28 Math.round ( x )
1978 //
20.2.2.29 Math.sign(x)
1983 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1986 //
20.2.2.30 Math.sin ( x )
1988 //
20.2.2.31 Math.sinh( x )
1993 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1996 //
20.2.2.32 Math.sqrt ( x )
1997 //
20.2.2.33 Math.tan ( x )
1999 //
20.2.2.34 Math.tanh ( x )
2004 var n = pow(E,
2 * x) -
1,
2005 d = pow(E,
2 * x) +
1;
2006 if (SameValue(x, -
0))
2008 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2011 //
20.2.2.35 Math.trunc ( x )
2016 return $isNaN(x) ? NaN :
2017 x <
0 ? ceil(x) : floor(x);
2020 // ---------------------------------------
2021 //
20.3 Date Objects
2022 // ---------------------------------------
2024 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2025 //
20.3.1.1 Time Values and Time Range
2026 //
20.3.1.2 Day Number and Time within Day
2027 //
20.3.1.3 Year Number
2028 //
20.3.1.4 Month Number
2029 //
20.3.1.5 Date Number
2030 //
20.3.1.6 Week Day
2031 //
20.3.1.7 Local Time Zone Adjustment
2032 //
20.3.1.8 Daylight Saving Time Adjustment
2033 //
20.3.1.9 Local Time
2034 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2035 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2036 //
20.3.1.12 MakeDay (year, month, date)
2037 //
20.3.1.13 MakeDate (day, time)
2038 //
20.3.1.14 TimeClip (time)
2039 //
20.3.1.15 Date Time String Format
2040 //
20.3.1.15.1 Extended years
2041 //
20.3.2 The Date Constructor
2042 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2043 //
20.3.2.2 Date ( value )
2044 //
20.3.2.3 Date ( )
2045 //
20.3.3 Properties of the Date Constructor
2046 //
20.3.3.1 Date.now ( )
2047 //
20.3.3.2 Date.parse (string)
2048 //
20.3.3.3 Date.prototype
2049 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2050 //
20.3.4 Properties of the Date Prototype Object
2051 //
20.3.4.1 Date.prototype.constructor
2052 //
20.3.4.2 Date.prototype.getDate ( )
2053 //
20.3.4.3 Date.prototype.getDay ( )
2054 //
20.3.4.4 Date.prototype.getFullYear ( )
2055 //
20.3.4.5 Date.prototype.getHours ( )
2056 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2057 //
20.3.4.7 Date.prototype.getMinutes ( )
2058 //
20.3.4.8 Date.prototype.getMonth ( )
2059 //
20.3.4.9 Date.prototype.getSeconds ( )
2060 //
20.3.4.10 Date.prototype.getTime ( )
2061 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2062 //
20.3.4.12 Date.prototype.getUTCDate ( )
2063 //
20.3.4.13 Date.prototype.getUTCDay ( )
2064 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2065 //
20.3.4.15 Date.prototype.getUTCHours ( )
2066 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2067 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2068 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2069 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2070 //
20.3.4.20 Date.prototype.setDate ( date )
2071 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2072 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2073 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2074 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2075 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2076 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2077 //
20.3.4.27 Date.prototype.setTime ( time )
2078 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2079 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2080 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2081 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2082 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2083 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2084 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2085 //
20.3.4.35 Date.prototype.toDateString ( )
2086 //
20.3.4.36 Date.prototype.toISOString ( )
2087 //
20.3.4.37 Date.prototype.toJSON ( key )
2088 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2089 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2090 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2091 //
20.3.4.41 Date.prototype.toString ( )
2092 //
20.3.4.42 Date.prototype.toTimeString ( )
2093 //
20.3.4.43 Date.prototype.toUTCString ( )
2094 //
20.3.4.44 Date.prototype.valueOf ( )
2095 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2096 //
20.3.5 Properties of Date Instances
2098 // (No polyfillable changes from ES5)
2100 // ---------------------------------------
2101 //
21 Text Processing
2102 // ---------------------------------------
2104 var string_regexp_dispatch = (function() {
2105 var faux = {}, secret = Symbol();
2106 faux[Symbol.match] = function() { return secret; };
2107 return (
"").match(faux) === secret;
2110 //
21.1 String Objects
2111 //
21.1.1 The String Constructor
2112 //
21.1.1.1 String ( value )
2113 //
21.1.2 Properties of the String Constructor
2114 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2116 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2118 String, 'fromCodePoint',
2119 function fromCodePoint(/*...codePoints*/) {
2120 var codePoints = arguments,
2121 length = codePoints.length,
2124 while (nextIndex < length) {
2125 var next = codePoints[nextIndex];
2126 var nextCP = Number(next);
2127 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2128 nextCP <
0 || nextCP
> 0x10FFFF) {
2129 throw RangeError('Invalid code point ' + nextCP);
2131 if (nextCP <
0x10000) {
2132 elements.push(String.fromCharCode(nextCP));
2135 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2136 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2140 return elements.join('');
2143 //
21.1.2.3 String.prototype
2145 //
21.1.2.4 String.raw ( template , ...substitutions )
2148 function raw(template /*, ...substitutions*/) {
2149 var substitutions = [].slice.call(arguments,
1);
2151 var cooked = Object(template);
2152 var rawValue = cooked['raw'];
2153 var raw = Object(rawValue);
2154 var len = raw['length'];
2155 var literalSegments = ToLength(len);
2156 if (literalSegments <=
0) return '';
2157 var stringElements = [];
2160 var next = raw[nextIndex];
2161 var nextSeg = String(next);
2162 stringElements.push(nextSeg);
2163 if (nextIndex +
1 === literalSegments)
2164 return stringElements.join('');
2165 next = substitutions[nextIndex];
2166 var nextSub = String(next);
2167 stringElements.push(nextSub);
2168 nextIndex = nextIndex +
1;
2172 // See https://githib.com/inexorabletash/uate for a more useful version.
2174 //
21.1.3 Properties of the String Prototype Object
2175 //
21.1.3.1 String.prototype.charAt ( pos )
2176 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2178 //
21.1.3.3 String.prototype.codePointAt ( pos )
2180 String.prototype, 'codePointAt',
2181 function codePointAt(pos) {
2182 var o = strict(this);
2184 var position = ToInteger(pos);
2185 var size = s.length;
2186 if (position <
0 || position
>= size) return undefined;
2187 var first = s.charCodeAt(position);
2188 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2189 var second = s.charCodeAt(position +
1);
2190 if (second <
0xDC00 || second
> 0xDFFF) return first;
2191 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2194 //
21.1.3.4 String.prototype.concat ( ...args )
2195 //
21.1.3.5 String.prototype.constructor
2197 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2199 String.prototype, 'endsWith',
2200 function endsWith(searchString) {
2201 var endPosition = arguments[
1];
2203 var o = strict(this);
2205 var searchStr = String(searchString);
2207 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2208 var end = min(max(pos,
0), len);
2209 var searchLength = searchStr.length;
2210 var start = end - searchLength;
2211 if (start <
0) return false;
2212 if (s.substring(start, start + searchLength) === searchStr) return true;
2216 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2218 String.prototype, 'includes',
2219 function includes(searchString) {
2220 var position = arguments[
1];
2222 var o = strict(this);
2224 var searchStr = String(searchString);
2225 var pos = ToInteger(position);
2227 var start = min(max(pos,
0), len);
2228 return s.indexOf(searchStr, start) !== -
1;
2231 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2232 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2233 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2234 //
21.1.3.11 String.prototype.match ( regexp )
2236 String.prototype, 'match',
2237 function match(regexp) {
2238 var o = strict(this);
2240 if (HasProperty(regexp, $$match)) var rx = regexp;
2241 else rx = new RegExp(regexp);
2242 return rx[$$match](s);
2243 }, !string_regexp_dispatch);
2245 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2247 // Not practical due to table sizes; if needed, pull in:
2248 // https://github.com/walling/unorm/
2250 //
21.1.3.13 String.prototype.repeat ( count )
2252 String.prototype, 'repeat',
2253 function repeat(count) {
2254 var o = strict(this);
2256 var n = ToInteger(count);
2257 if (n <
0) throw RangeError();
2258 if (n === Infinity) throw RangeError();
2259 var t = new Array(n +
1).join(s);
2263 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2265 String.prototype, 'replace',
2266 function replace(searchValue, replaceValue) {
2267 var o = strict(this);
2268 if (HasProperty(searchValue, $$replace))
2269 return searchValue[$$replace](o, replaceValue);
2270 return orig_replace.call(o, searchValue, replaceValue);
2271 }, !string_regexp_dispatch);
2273 //
21.1.3.15 String.prototype.search ( regexp )
2275 String.prototype, 'search',
2276 function search(regexp) {
2277 var o = strict(this);
2278 var string = String(o);
2279 if (HasProperty(regexp, $$search)) var rx = regexp;
2280 else rx = new RegExp(regexp);
2281 return rx[$$search](string);
2282 }, !string_regexp_dispatch);
2284 //
21.1.3.16 String.prototype.slice ( start, end )
2285 //
21.1.3.17 String.prototype.split ( separator, limit )
2287 String.prototype, 'split',
2288 function split(separator, limit) {
2289 var o = strict(this);
2290 if (HasProperty(separator, $$split))
2291 return separator[$$split](o, limit);
2292 return orig_split.call(o, separator, limit);
2293 }, !string_regexp_dispatch);
2295 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2297 String.prototype, 'startsWith',
2298 function startsWith(searchString) {
2299 var position = arguments[
1];
2301 var o = strict(this);
2303 var searchStr = String(searchString);
2304 var pos = ToInteger(position);
2306 var start = min(max(pos,
0), len);
2307 var searchLength = searchStr.length;
2308 if (searchLength + start
> len) return false;
2309 if (s.substring(start, start + searchLength) === searchStr) return true;
2313 //
21.1.3.19 String.prototype.substring ( start, end )
2314 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2315 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2316 //
21.1.3.22 String.prototype.toLowerCase ( )
2317 //
21.1.3.23 String.prototype.toString ( )
2318 //
21.1.3.24 String.prototype.toUpperCase ( )
2319 //
21.1.3.25 String.prototype.trim ( )
2320 //
21.1.3.26 String.prototype.valueOf ( )
2322 //
21.1.3.27 String.prototype [ @@iterator ]( )
2324 String.prototype, $$iterator,
2325 function entries() {
2326 return CreateStringIterator(this, 'value');
2329 //
21.1.4 Properties of String Instances
2332 //
21.1.5 String Iterator Objects
2334 function StringIterator() {}
2336 //
21.1.5.1 CreateStringIterator Abstract Operation
2337 function CreateStringIterator(string, kind) {
2338 var s = String(string);
2339 var iterator = new StringIterator;
2340 set_internal(iterator, '[[IteratedString]]', s);
2341 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2342 set_internal(iterator, '[[StringIterationKind]]', kind);
2346 //
21.1.5.2 The %StringIteratorPrototype% Object
2347 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2348 StringIterator.prototype = $StringIteratorPrototype$;
2350 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2352 $StringIteratorPrototype$, 'next',
2354 var o = ToObject(this);
2355 var s = String(o['[[IteratedString]]']),
2356 index = o['[[StringIteratorNextIndex]]'],
2359 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2360 return CreateIterResultObject(undefined, true);
2362 var cp = s.codePointAt(index);
2363 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2364 return CreateIterResultObject(String.fromCodePoint(cp), false);
2367 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2368 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2370 //
21.1.5.3 Properties of String Iterator Instances
2372 // ---------------------------------------
2373 //
21.2 RegExp (Regular Expression) Objects
2374 // ---------------------------------------
2377 //
21.2.2 Pattern Semantics
2378 //
21.2.2.1 Notation
2380 //
21.2.2.3 Disjunction
2381 //
21.2.2.4 Alternative
2383 //
21.2.2.6 Assertion
2384 //
21.2.2.7 Quantifier
2386 //
21.2.2.9 AtomEscape
2387 //
21.2.2.10 CharacterEscape
2388 //
21.2.2.11 DecimalEscape
2389 //
21.2.2.12 CharacterClassEscape
2390 //
21.2.2.13 CharacterClass
2391 //
21.2.2.14 ClassRanges
2392 //
21.2.2.15 NonemptyClassRanges
2393 //
21.2.2.16 NonemptyClassRangesNoDash
2394 //
21.2.2.17 ClassAtom
2395 //
21.2.2.18 ClassAtomNoDash
2396 //
21.2.2.19 ClassEscape
2397 //
21.2.3 The RegExp Constructor
2398 //
21.2.3.1 RegExp ( pattern, flags )
2399 //
21.2.3.2 new RegExp( ...argumentsList )
2400 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2401 //
21.2.4 Properties of the RegExp Constructor
2402 //
21.2.4.1 RegExp.prototype
2403 //
21.2.5 Properties of the RegExp Prototype Object
2404 //
21.2.5.1 RegExp.prototype.constructor
2405 //
21.2.5.2 RegExp.prototype.exec ( string )
2407 //
21.2.5.3 get RegExp.prototype.flags
2408 if (!('flags' in RegExp.prototype)) {
2409 Object.defineProperty(
2410 RegExp.prototype, 'flags', {
2412 var s = String(this);
2413 return s.substring(s.lastIndexOf('/') +
1);
2418 //
21.2.5.4 get RegExp.prototype.global
2419 //
21.2.5.5 get RegExp.prototype.ignoreCase
2421 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2422 define(RegExp.prototype, $$match, function(string) {
2423 var o = strict(this);
2424 return orig_match.call(string, o);
2427 //
21.2.5.7 get RegExp.prototype.multiline
2429 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2430 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2431 var o = strict(this);
2432 return orig_replace.call(string, o, replaceValue);
2435 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2436 define(RegExp.prototype, $$search, function(string) {
2437 var o = strict(this);
2438 return orig_search.call(string, o);
2441 //
21.2.5.10 get RegExp.prototype.source
2443 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2444 define(RegExp.prototype, $$split, function(string, limit) {
2445 var o = strict(this);
2446 return orig_split.call(string, o, limit);
2449 //
21.2.5.12 get RegExp.prototype.sticky
2450 //
21.2.5.13 RegExp.prototype.test( S )
2451 //
21.2.5.14 RegExp.prototype.toString ( )
2452 //
21.2.5.15 get RegExp.prototype.unicode
2454 //
21.2.6 Properties of RegExp Instances
2455 //
21.2.6.1 lastIndex
2457 // (No polyfillable changes from ES5)
2459 // ---------------------------------------
2460 //
22 Indexed Collections
2461 // ---------------------------------------
2463 // ---------------------------------------
2464 //
22.1 Array Objects
2465 // ---------------------------------------
2467 //
22.1.1 The Array Constructor
2468 //
22.1.1.1 Array ( )
2469 //
22.1.1.2 Array (len)
2470 //
22.1.1.3 Array (...items )
2472 //
22.1.2 Properties of the Array Constructor
2474 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2477 function from(items) {
2478 var mapfn = arguments[
1];
2479 var thisArg = arguments[
2];
2481 var c = strict(this);
2482 if (mapfn === undefined) {
2483 var mapping = false;
2485 if (!IsCallable(mapfn)) throw TypeError();
2489 var usingIterator = GetMethod(items, $$iterator);
2490 if (usingIterator !== undefined) {
2491 if (IsConstructor(c)) {
2496 var iterator = GetIterator(items, usingIterator);
2499 var next = IteratorStep(iterator);
2500 if (next === false) {
2504 var nextValue = IteratorValue(next);
2506 var mappedValue = mapfn.call(t, nextValue);
2508 mappedValue = nextValue;
2513 var arrayLike = ToObject(items);
2514 var lenValue = arrayLike.length;
2515 var len = ToLength(lenValue);
2516 if (IsConstructor(c)) {
2523 var kValue = arrayLike[k];
2525 mappedValue = mapfn.call(t, kValue, k);
2527 mappedValue = kValue;
2535 //
22.1.2.2 Array.isArray ( arg )
2537 //
22.1.2.3 Array.of ( ...items )
2541 var items = arguments;
2543 var lenValue = items.length;
2544 var len = ToUint32(lenValue);
2545 var c = strict(this), a;
2546 if (IsConstructor(c)) {
2561 //
22.1.2.4 Array.prototype
2562 //
22.1.2.5 get Array [ @@species ]
2563 //
22.1.3 Properties of the Array Prototype Object
2564 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2565 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2566 //
22.1.3.2 Array.prototype.constructor
2567 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2569 Array.prototype, 'copyWithin',
2570 function copyWithin(target, start/*, end*/) {
2571 var end = arguments[
2];
2573 var o = ToObject(this);
2574 var lenVal = o.length;
2575 var len = ToLength(lenVal);
2577 var relativeTarget = ToInteger(target);
2579 if (relativeTarget <
0)
2580 to = max(len + relativeTarget,
0);
2582 to = min(relativeTarget, len);
2583 var relativeStart = ToInteger(start);
2585 if (relativeStart <
0)
2586 from = max(len + relativeStart,
0);
2588 from = min(relativeStart, len);
2590 if (end === undefined)
2593 relativeEnd = ToInteger(end);
2595 if (relativeEnd <
0)
2596 final = max(len + relativeEnd,
0);
2598 final = min(relativeEnd, len);
2599 var count = min(final - from, len - to);
2601 if (from < to && to < from + count) {
2603 from = from + count -
1;
2604 to = to + count -
1;
2609 var fromKey = String(from);
2610 var toKey = String(to);
2611 var fromPresent = HasProperty(o, fromKey);
2613 var fromVal = o[fromKey];
2618 from = from + direction;
2619 to = to + direction;
2625 //
22.1.3.4 Array.prototype.entries ( )
2626 var nativeArrayIteratorMethods =
2627 ('entries' in Array.prototype && 'next' in [].entries());
2630 Array.prototype, 'entries',
2631 function entries() {
2632 return CreateArrayIterator(this, 'key+value');
2633 }, !nativeArrayIteratorMethods);
2635 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2637 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2639 Array.prototype, 'fill',
2640 function fill(value/*, start, end*/) {
2641 var start = arguments[
1],
2644 var o = ToObject(this);
2645 var lenVal = o.length;
2646 var len = ToLength(lenVal);
2648 var relativeStart = ToInteger(start);
2650 if (relativeStart <
0)
2651 k = max((len + relativeStart),
0);
2653 k = min(relativeStart, len);
2655 if (end === undefined)
2658 relativeEnd = ToInteger(end);
2660 if (relativeEnd <
0)
2661 final = max((len + relativeEnd),
0);
2663 final = min(relativeEnd, len);
2672 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2674 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2676 Array.prototype, 'find',
2677 function find(predicate) {
2678 var o = ToObject(this);
2679 var lenValue = o.length;
2680 var len = ToInteger(lenValue);
2681 if (!IsCallable(predicate)) throw TypeError();
2682 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2686 var kPresent = HasProperty(o, pk);
2689 var testResult = predicate.call(t, kValue, k, o);
2690 if (Boolean(testResult)) {
2699 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2701 Array.prototype, 'findIndex',
2702 function findIndex(predicate) {
2703 var o = ToObject(this);
2704 var lenValue = o.length;
2705 var len = ToLength(lenValue);
2706 if (!IsCallable(predicate)) throw TypeError();
2707 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2711 var kPresent = HasProperty(o, pk);
2714 var testResult = predicate.call(t, kValue, k, o);
2715 if (Boolean(testResult)) {
2724 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2725 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2726 //
22.1.3.12 Array.prototype.join (separator)
2728 //
22.1.3.13 Array.prototype.keys ( )
2730 Array.prototype, 'keys',
2732 return CreateArrayIterator(this, 'key');
2733 }, !nativeArrayIteratorMethods);
2735 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2736 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2737 //
22.1.3.16 Array.prototype.pop ( )
2738 //
22.1.3.17 Array.prototype.push ( ...items )
2739 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2740 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2741 //
22.1.3.20 Array.prototype.reverse ( )
2742 //
22.1.3.21 Array.prototype.shift ( )
2743 //
22.1.3.22 Array.prototype.slice (start, end)
2744 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2745 //
22.1.3.24 Array.prototype.sort (comparefn)
2746 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2747 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2748 //
22.1.3.27 Array.prototype.toString ( )
2749 //
22.1.3.28 Array.prototype.unshift ( ...items )
2751 //
22.1.3.29 Array.prototype.values ( )
2753 Array.prototype, 'values',
2755 return CreateArrayIterator(this, 'value');
2756 }, !nativeArrayIteratorMethods);
2758 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2760 Array.prototype, $$iterator,
2761 Array.prototype.values
2764 //
22.1.3.31 Array.prototype [ @@unscopables ]
2765 //
22.1.4 Properties of Array Instances
2768 //
22.1.5 Array Iterator Objects
2769 function ArrayIterator() {}
2771 //
22.1.5.1 CreateArrayIterator Abstract Operation
2772 function CreateArrayIterator(array, kind) {
2773 var o = ToObject(array);
2774 var iterator = new ArrayIterator;
2775 set_internal(iterator, '[[IteratedObject]]', o);
2776 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2777 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2781 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2782 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2783 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2785 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2787 $ArrayIteratorPrototype$, 'next',
2789 var o = strict(this);
2790 if (Type(o) !== 'object') throw TypeError();
2791 var a = o['[[IteratedObject]]'],
2792 index = o['[[ArrayIteratorNextIndex]]'],
2793 itemKind = o['[[ArrayIterationKind]]'],
2794 lenValue = a.length,
2795 len = ToUint32(lenValue),
2798 if (itemKind.indexOf('sparse') !== -
1) {
2800 while (!found && index < len) {
2801 elementKey = String(index);
2802 found = HasProperty(a, elementKey);
2809 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2810 return CreateIterResultObject(undefined, true);
2813 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2814 if (itemKind.indexOf('value') !== -
1)
2815 elementValue = a[elementKey];
2816 if (itemKind.indexOf('key+value') !== -
1)
2817 return CreateIterResultObject([elementKey, elementValue], false);
2818 if (itemKind.indexOf('key') !== -
1)
2819 return CreateIterResultObject(elementKey, false);
2820 if (itemKind === 'value')
2821 return CreateIterResultObject(elementValue, false);
2822 throw Error('Internal error');
2825 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2826 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2828 //
22.1.5.3 Properties of Array Iterator Instances
2831 // ---------------------------------------
2832 //
22.2 TypedArray Objects
2833 // ---------------------------------------
2835 // See typedarray.js for TypedArray polyfill
2837 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2838 'Int16Array', 'Uint16Array',
2839 'Int32Array', 'Uint32Array',
2840 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2841 if (!($TypedArrayName$ in global))
2843 var $TypedArray$ = global[$TypedArrayName$];
2845 //
22.2.1 The %TypedArray% Intrinsic Object
2846 //
22.2.1.1 %TypedArray% ( length )
2847 //
22.2.1.2 %TypedArray% ( typedArray )
2848 //
22.2.1.3 %TypedArray% ( object )
2849 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2850 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2851 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2853 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2855 $TypedArray$, 'from',
2856 function from(source) {
2857 var mapfn = arguments[
1];
2858 var thisArg = arguments[
2];
2860 var c = strict(this);
2861 if (!IsConstructor(c)) throw TypeError();
2862 if (mapfn === undefined) {
2863 var mapping = false;
2865 if (IsCallable(mapfn)) throw TypeError();
2869 var usingIterator = GetMethod(source, $$iterator);
2870 if (usingIterator !== undefined) {
2871 var iterator = GetIterator(source, usingIterator);
2874 while (next !== false) {
2875 next = IteratorStep(iterator);
2876 if (next !== false) {
2877 var nextValue = IteratorValue(next);
2878 values.push(nextValue);
2881 var len = values.length;
2882 var newObj = new c(len);
2885 var kValue = values.shift();
2887 var mappedValue = mapfn.call(t, kValue);
2889 mappedValue = kValue;
2891 newObj[k] = mappedValue;
2894 console.assert(values.length ===
0);
2897 var arrayLike = ToObject(source);
2898 var lenValue = arrayLike.length;
2899 len = ToLength(lenValue);
2900 newObj = new c(len);
2903 kValue = arrayLike[k];
2905 mappedValue = mapfn.call(t, kValue, k);
2907 mappedValue = kValue;
2909 newObj[k] = mappedValue;
2915 //
22.2.2.2 %TypedArray%.of ( ...items )
2919 var items = arguments;
2921 var len = items.length;
2922 var c = strict(this);
2923 var newObj = new c(len);
2926 newObj[k] = items[k];
2932 //
22.2.2.3 %TypedArray%.prototype
2933 //
22.2.2.4 get %TypedArray% [ @@species ]
2934 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2935 //
22.2.3.1 get %TypedArray%.prototype.buffer
2936 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2937 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2938 //
22.2.3.4 %TypedArray%.prototype.constructor
2940 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2941 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2943 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2944 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2946 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2947 define($TypedArray$.prototype, 'every', Array.prototype.every);
2949 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2951 $TypedArray$.prototype, 'fill',
2952 //Array.prototype.fill // Doesn't work in Safari
7
2953 function fill(value/*, start, end*/) {
2954 var start = arguments[
1],
2957 var o = ToObject(this);
2958 var lenVal = o.length;
2959 var len = ToLength(lenVal);
2961 var relativeStart = ToInteger(start);
2963 if (relativeStart <
0) k = max((len + relativeStart),
0);
2964 else k = min(relativeStart, len);
2966 if (end === undefined) relativeEnd = len;
2967 else relativeEnd = ToInteger(end);
2969 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2970 else final = min(relativeEnd, len);
2979 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2981 $TypedArray$.prototype, 'filter',
2982 function filter(callbackfn) {
2983 var thisArg = arguments[
1];
2985 var o = ToObject(this);
2986 var lenVal = o.length;
2987 var len = ToLength(lenVal);
2988 if (!IsCallable(callbackfn)) throw TypeError();
2990 var c = o.constructor;
2996 var selected = callbackfn.call(t, kValue, k, o);
3003 var a = new c(captured);
3005 for (var i =
0; i < kept.length; ++i) {
3013 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3014 define($TypedArray$.prototype, 'find', Array.prototype.find);
3016 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3017 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3019 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3020 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3022 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3023 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3025 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3026 define($TypedArray$.prototype, 'join', Array.prototype.join);
3028 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3029 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3031 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3032 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3034 //
22.2.3.17 get %TypedArray%.prototype.length
3036 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3038 $TypedArray$.prototype, 'map',
3039 function map(callbackfn) {
3040 var thisArg = arguments[
1];
3042 var o = ToObject(this);
3043 var lenValue = o.length;
3044 var len = ToLength(lenValue);
3045 if (!IsCallable(callbackfn)) throw TypeError();
3048 var c = o.constructor;
3049 if (IsConstructor(c))
3051 if (a === undefined)
3055 var kPresent = HasProperty(o, k);
3058 var mappedValue = callbackfn.call(t, kValue, k, o);
3066 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3067 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3069 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3070 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3072 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3073 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3075 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3076 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3077 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3079 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3081 $TypedArray$.prototype, 'slice',
3082 function slice(start, end) {
3083 var o = ToObject(this);
3084 var lenVal = o.length;
3085 var len = ToLength(lenVal);
3086 var relativeStart = ToInteger(start);
3087 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3088 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3089 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3090 var count = final - k;
3091 var c = o.constructor;
3092 if (IsConstructor(c)) {
3093 var a = new c(count);
3107 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3108 define($TypedArray$.prototype, 'some', Array.prototype.some);
3110 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3112 $TypedArray$.prototype, 'sort',
3114 var comparefn = arguments[
0];
3116 function sortCompare(x, y) {
3117 console.assert(Type(x) === 'number' && Type(y) === 'number');
3118 if (x !== x && y !== y) return +
0;
3119 if (x !== x) return
1;
3120 if (y !== y) return -
1;
3121 if (comparefn !== undefined) {
3122 return comparefn(x, y);
3124 if (x < y) return -
1;
3125 if (x
> y) return
1;
3128 return Array.prototype.sort.call(this, sortCompare);
3131 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3132 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3133 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3135 //
22.2.3.29 %TypedArray%.prototype.values ( )
3136 define($TypedArray$.prototype, 'values', Array.prototype.values);
3138 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3140 $TypedArray$.prototype, $$iterator,
3141 $TypedArray$.prototype.values
3144 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3145 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3147 //
22.2.4 The TypedArray Constructors
3148 //
22.2.4.1TypedArray( ... argumentsList)
3149 //
22.2.5 Properties of the TypedArray Constructors
3150 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3151 //
22.2.5.2 TypedArray.prototype
3152 //
22.2.6 Properties of TypedArray Prototype Objects
3153 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3154 //
22.2.6.2 TypedArray.prototype.constructor
3155 //
22.2.7 Properties of TypedArray Instances
3158 // ---------------------------------------
3159 //
23 Keyed Collection
3160 // ---------------------------------------
3162 // ---------------------------------------
3164 // ---------------------------------------
3167 //
23.1.1 The Map Constructor
3169 //
23.1.1.1 Map ( [ iterable ] )
3171 function Map(/*iterable*/) {
3172 var map = strict(this);
3173 var iterable = arguments[
0];
3175 if (Type(map) !== 'object') throw TypeError();
3176 if ('[[MapData]]' in map) throw TypeError();
3178 if (iterable !== undefined) {
3179 var adder = map['set'];
3180 if (!IsCallable(adder)) throw TypeError();
3181 var iter = GetIterator(ToObject(iterable));
3183 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3184 if (iter === undefined) return map;
3186 var next = IteratorStep(iter);
3189 var nextItem = IteratorValue(next);
3190 if (Type(nextItem) !== 'object') throw TypeError();
3191 var k = nextItem[
0];
3192 var v = nextItem[
1];
3193 adder.call(map, k, v);
3199 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3200 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3201 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3202 (new global.Map([['a',
1]]).size !==
1))
3206 function MapDataIndexOf(mapData, key) {
3208 if (key === key) return mapData.keys.indexOf(key);
3209 // Slow case for NaN
3210 for (i =
0; i < mapData.keys.length; i +=
1)
3211 if (SameValueZero(mapData.keys[i], key)) return i;
3215 //
23.1.1.2 new Map ( ... argumentsList )
3216 //
23.1.2 Properties of the Map Constructor
3217 //
23.1.2.1 Map.prototype
3218 var $MapPrototype$ = {};
3219 Map.prototype = $MapPrototype$;
3221 //
23.1.2.2 get Map [ @@species ]
3223 //
23.1.3 Properties of the Map Prototype Object
3224 //
23.1.3.1 Map.prototype.clear ()
3226 Map.prototype, 'clear',
3228 var m = strict(this);
3229 if (Type(m) !== 'object') throw TypeError();
3230 if (!('[[MapData]]' in m)) throw TypeError();
3231 if (m['[[MapData]]'] === undefined) throw TypeError();
3232 var entries = m['[[MapData]]'];
3233 entries.keys.length =
0;
3234 entries.values.length =
0;
3238 //
23.1.3.2 Map.prototype.constructor
3240 //
23.1.3.3 Map.prototype.delete ( key )
3242 Map.prototype, 'delete',
3243 function delete_(key) {
3244 var m = strict(this);
3245 if (Type(m) !== 'object') throw TypeError();
3246 if (!('[[MapData]]' in m)) throw TypeError();
3247 if (m['[[MapData]]'] === undefined) throw TypeError();
3248 var entries = m['[[MapData]]'];
3249 var i = MapDataIndexOf(entries, key);
3250 if (i <
0) return false;
3251 entries.keys[i] = empty;
3252 entries.values[i] = empty;
3256 //
23.1.3.4 Map.prototype.entries ( )
3258 Map.prototype, 'entries',
3259 function entries() {
3260 var m = strict(this);
3261 if (Type(m) !== 'object') throw TypeError();
3262 return CreateMapIterator(m, 'key+value');
3265 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3267 Map.prototype, 'forEach',
3268 function forEach(callbackfn /*, thisArg*/) {
3269 var thisArg = arguments[
1];
3271 var m = strict(this);
3272 if (Type(m) !== 'object') throw TypeError();
3273 if (!('[[MapData]]' in m)) throw TypeError();
3274 if (m['[[MapData]]'] === undefined) throw TypeError();
3275 var entries = m['[[MapData]]'];
3277 if (!IsCallable(callbackfn)) {
3278 throw TypeError('First argument to forEach is not callable.');
3280 for (var i =
0; i < entries.keys.length; ++i) {
3281 if (entries.keys[i] !== empty) {
3282 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3288 //
23.1.3.6 Map.prototype.get ( key )
3290 Map.prototype, 'get',
3292 var m = strict(this);
3293 if (Type(m) !== 'object') throw TypeError();
3294 if (!('[[MapData]]' in m)) throw TypeError();
3295 if (m['[[MapData]]'] === undefined) throw TypeError();
3296 var entries = m['[[MapData]]'];
3297 var i = MapDataIndexOf(entries, key);
3298 if (i
>=
0) return entries.values[i];
3302 //
23.1.3.7 Map.prototype.has ( key )
3304 Map.prototype, 'has',
3306 var m = strict(this);
3307 if (Type(m) !== 'object') throw TypeError();
3308 if (!('[[MapData]]' in m)) throw TypeError();
3309 if (m['[[MapData]]'] === undefined) throw TypeError();
3310 var entries = m['[[MapData]]'];
3311 if (MapDataIndexOf(entries, key)
>=
0) return true;
3315 //
23.1.3.8 Map.prototype.keys ( )
3317 Map.prototype, 'keys',
3319 var m = strict(this);
3320 if (Type(m) !== 'object') throw TypeError();
3321 return CreateMapIterator(m, 'key');
3324 //
23.1.3.9 Map.prototype.set ( key , value )
3326 Map.prototype, 'set',
3327 function set(key, value) {
3328 var m = strict(this);
3329 if (Type(m) !== 'object') throw TypeError();
3330 if (!('[[MapData]]' in m)) throw TypeError();
3331 if (m['[[MapData]]'] === undefined) throw TypeError();
3332 var entries = m['[[MapData]]'];
3333 var i = MapDataIndexOf(entries, key);
3334 if (i <
0) i = entries.keys.length;
3335 if (SameValue(key, -
0)) key =
0;
3336 entries.keys[i] = key;
3337 entries.values[i] = value;
3341 //
23.1.3.10 get Map.prototype.size
3342 Object.defineProperty(
3343 Map.prototype, 'size', {
3345 var m = strict(this);
3346 if (Type(m) !== 'object') throw TypeError();
3347 if (!('[[MapData]]' in m)) throw TypeError();
3348 if (m['[[MapData]]'] === undefined) throw TypeError();
3349 var entries = m['[[MapData]]'];
3351 for (var i =
0; i < entries.keys.length; ++i) {
3352 if (entries.keys[i] !== empty)
3359 //
23.1.3.11 Map.prototype.values ( )
3361 Map.prototype, 'values',
3363 var m = strict(this);
3364 if (Type(m) !== 'object') throw TypeError();
3365 return CreateMapIterator(m, 'value');
3368 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3370 Map.prototype, $$iterator,
3372 var m = strict(this);
3373 if (Type(m) !== 'object') throw TypeError();
3374 return CreateMapIterator(m, 'key+value');
3377 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3378 define(global.Map.prototype, $$toStringTag, 'Map');
3380 //
23.1.4 Properties of Map Instances
3381 //
23.1.5 Map Iterator Objects
3384 function MapIterator() {}
3386 //
23.1.5.1 CreateMapIterator Abstract Operation
3387 function CreateMapIterator(map, kind) {
3388 if (Type(map) !== 'object') throw TypeError();
3389 if (!('[[MapData]]' in map)) throw TypeError();
3390 if (map['[[MapData]]'] === undefined) throw TypeError();
3391 var iterator = new MapIterator;
3392 set_internal(iterator, '[[Map]]', map);
3393 set_internal(iterator, '[[MapNextIndex]]',
0);
3394 set_internal(iterator, '[[MapIterationKind]]', kind);
3398 //
23.1.5.2 The %MapIteratorPrototype% Object
3399 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3400 MapIterator.prototype = $MapIteratorPrototype$;
3402 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3404 $MapIteratorPrototype$, 'next',
3406 var o = strict(this);
3407 if (Type(o) !== 'object') throw TypeError();
3408 var m = o['[[Map]]'],
3409 index = o['[[MapNextIndex]]'],
3410 itemKind = o['[[MapIterationKind]]'],
3411 entries = m['[[MapData]]'];
3412 while (index < entries.keys.length) {
3413 var e = {key: entries.keys[index], value: entries.values[index]};
3415 set_internal(o, '[[MapNextIndex]]', index);
3416 if (e.key !== empty) {
3417 if (itemKind === 'key') {
3418 return CreateIterResultObject(e.key, false);
3419 } else if (itemKind === 'value') {
3420 return CreateIterResultObject(e.value, false);
3422 return CreateIterResultObject([e.key, e.value], false);
3426 return CreateIterResultObject(undefined, true);
3429 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3430 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3432 //
23.1.5.3 Properties of Map Iterator Instances
3435 // ---------------------------------------
3437 // ---------------------------------------
3440 //
23.2.1 The Set Constructor
3441 //
23.2.1.1 Set ( [ iterable ] )
3444 function Set(/*iterable*/) {
3445 var set = strict(this);
3446 var iterable = arguments[
0];
3448 if (Type(set) !== 'object') throw TypeError();
3449 if ('[[SetData]]' in set) throw TypeError();
3451 if (iterable !== undefined) {
3452 var adder = set['add'];
3453 if (!IsCallable(adder)) throw TypeError();
3454 var iter = GetIterator(ToObject(iterable));
3456 set_internal(set, '[[SetData]]', []);
3457 if (iter === undefined) return set;
3459 var next = IteratorStep(iter);
3462 var nextValue = IteratorValue(next);
3463 adder.call(set, nextValue);
3469 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3470 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3471 (new global.Set([
1]).size !==
1))
3474 function SetDataIndexOf(setData, key) {
3477 return setData.indexOf(key);
3478 // Slow case for NaN
3479 for (i =
0; i < setData.length; i +=
1)
3480 if (SameValueZero(setData[i], key)) return i;
3484 //
23.2.1.2 new Set ( ...argumentsList )
3485 //
23.2.2 Properties of the Set Constructor
3487 //
23.2.2.1 Set.prototype
3488 var $SetPrototype$ = {};
3489 Set.prototype = $SetPrototype$;
3491 //
23.2.2.2 get Set [ @@species ]
3492 //
23.2.3 Properties of the Set Prototype Object
3494 //
23.2.3.1 Set.prototype.add (value )
3496 Set.prototype, 'add',
3497 function add(value) {
3498 var s = strict(this);
3499 if (Type(s) !== 'object') throw TypeError();
3500 if (!('[[SetData]]' in s)) throw TypeError();
3501 if (s['[[SetData]]'] === undefined) throw TypeError();
3502 if (SameValue(value, -
0)) value =
0;
3503 var entries = s['[[SetData]]'];
3504 var i = SetDataIndexOf(entries, value);
3505 if (i <
0) i = s['[[SetData]]'].length;
3506 s['[[SetData]]'][i] = value;
3511 //
23.2.3.2 Set.prototype.clear ()
3513 Set.prototype, 'clear',
3515 var s = strict(this);
3516 if (Type(s) !== 'object') throw TypeError();
3517 if (!('[[SetData]]' in s)) throw TypeError();
3518 if (s['[[SetData]]'] === undefined) throw TypeError();
3519 var entries = s['[[SetData]]'];
3524 //
23.2.3.3 Set.prototype.constructor
3525 //
23.2.3.4 Set.prototype.delete ( value )
3527 Set.prototype, 'delete',
3528 function delete_(value) {
3529 var s = strict(this);
3530 if (Type(s) !== 'object') throw TypeError();
3531 if (!('[[SetData]]' in s)) throw TypeError();
3532 if (s['[[SetData]]'] === undefined) throw TypeError();
3533 var entries = s['[[SetData]]'];
3534 var i = SetDataIndexOf(entries, value);
3535 if (i <
0) return false;
3540 //
23.2.3.5 Set.prototype.entries ( )
3542 Set.prototype, 'entries',
3543 function entries() {
3544 var s = strict(this);
3545 if (Type(s) !== 'object') throw TypeError();
3546 return CreateSetIterator(s, 'key+value');
3549 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3551 Set.prototype, 'forEach',
3552 function forEach(callbackfn/*, thisArg*/) {
3553 var thisArg = arguments[
1];
3555 var s = strict(this);
3556 if (Type(s) !== 'object') throw TypeError();
3557 if (!('[[SetData]]' in s)) throw TypeError();
3558 if (s['[[SetData]]'] === undefined) throw TypeError();
3559 var entries = s['[[SetData]]'];
3561 if (!IsCallable(callbackfn)) {
3562 throw TypeError('First argument to forEach is not callable.');
3564 for (var i =
0; i < entries.length; ++i) {
3565 if (entries[i] !== empty) {
3566 callbackfn.call(thisArg, entries[i], entries[i], s);
3571 //
23.2.3.7 Set.prototype.has ( value )
3573 Set.prototype, 'has',
3575 var s = strict(this);
3576 if (Type(s) !== 'object') throw TypeError();
3577 if (!('[[SetData]]' in s)) throw TypeError();
3578 if (s['[[SetData]]'] === undefined) throw TypeError();
3579 var entries = s['[[SetData]]'];
3580 return SetDataIndexOf(entries, key) !== -
1;
3583 //
23.2.3.8 Set.prototype.keys ( )
3584 // See Set.prototype.values
3586 //
23.2.3.9 get Set.prototype.size
3587 Object.defineProperty(
3588 Set.prototype, 'size', {
3590 var s = strict(this);
3591 if (Type(s) !== 'object') throw TypeError();
3592 if (!('[[SetData]]' in s)) throw TypeError();
3593 if (s['[[SetData]]'] === undefined) throw TypeError();
3594 var entries = s['[[SetData]]'];
3596 for (var i =
0; i < entries.length; ++i) {
3597 if (entries[i] !== empty)
3604 //
23.2.3.10 Set.prototype.values ( )
3606 Set.prototype, 'values',
3608 var s = strict(this);
3609 if (Type(s) !== 'object') throw TypeError();
3610 return CreateSetIterator(s, 'value');
3612 // NOTE: function name is still 'values':
3613 Set.prototype.keys = Set.prototype.values;
3615 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3617 Set.prototype, $$iterator,
3619 var s = strict(this);
3620 if (Type(s) !== 'object') throw TypeError();
3621 return CreateSetIterator(s);
3624 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3625 define(global.Set.prototype, $$toStringTag, 'Set');
3627 //
23.2.4 Properties of Set Instances
3628 //
23.2.5 Set Iterator Objects
3630 function SetIterator() {}
3632 //
23.2.5.1 CreateSetIterator Abstract Operation
3633 function CreateSetIterator(set, kind) {
3634 if (Type(set) !== 'object') throw TypeError();
3635 if (!('[[SetData]]' in set)) throw TypeError();
3636 if (set['[[SetData]]'] === undefined) throw TypeError();
3637 var iterator = new SetIterator;
3638 set_internal(iterator, '[[IteratedSet]]', set);
3639 set_internal(iterator, '[[SetNextIndex]]',
0);
3640 set_internal(iterator, '[[SetIterationKind]]', kind);
3644 //
23.2.5.2 The %SetIteratorPrototype% Object
3645 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3646 SetIterator.prototype = $SetIteratorPrototype$;
3648 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3650 $SetIteratorPrototype$, 'next',
3652 var o = strict(this);
3653 if (Type(o) !== 'object') throw TypeError();
3654 var s = o['[[IteratedSet]]'],
3655 index = o['[[SetNextIndex]]'],
3656 itemKind = o['[[SetIterationKind]]'],
3657 entries = s['[[SetData]]'];
3658 while (index < entries.length) {
3659 var e = entries[index];
3661 set_internal(o, '[[SetNextIndex]]', index);
3663 if (itemKind === 'key+value')
3664 return CreateIterResultObject([e, e], false);
3665 return CreateIterResultObject(e, false);
3668 return CreateIterResultObject(undefined, true);
3671 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3672 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3674 //
23.2.5.3 Properties of Set Iterator Instances
3678 // ---------------------------------------
3679 //
23.3 WeakMap Objects
3680 // ---------------------------------------
3683 //
23.3.1 The WeakMap Constructor
3684 //
23.3.1.1 WeakMap ( [ iterable ] )
3686 function WeakMap(/*iterable*/) {
3687 var map = strict(this);
3688 var iterable = arguments[
0];
3690 if (Type(map) !== 'object') throw TypeError();
3691 if ('[[WeakMapData]]' in map) throw TypeError();
3693 if (iterable !== undefined) {
3694 var adder = map['set'];
3695 if (!IsCallable(adder)) throw TypeError();
3696 var iter = GetIterator(ToObject(iterable));
3698 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3699 if (iter === undefined) return map;
3701 var next = IteratorStep(iter);
3704 var nextValue = IteratorValue(next);
3705 if (Type(nextValue) !== 'object') throw TypeError();
3706 var k = nextValue[
0];
3707 var v = nextValue[
1];
3708 adder.call(map, k, v);
3714 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3715 global.WeakMap = WeakMap;
3717 //
23.3.2 Properties of the WeakMap Constructor
3718 //
23.3.2.1 WeakMap.prototype
3719 var $WeakMapPrototype$ = {};
3720 WeakMap.prototype = $WeakMapPrototype$;
3724 //
23.3.2.2 WeakMap[ @@create ] ( )
3725 //
23.3.3 Properties of the WeakMap Prototype Object
3727 //
23.3.3.1 WeakMap.prototype.constructor
3729 //
23.3.3.2 WeakMap.prototype.delete ( key )
3731 WeakMap.prototype, 'delete',
3732 function delete_(key) {
3733 var M = strict(this);
3734 if (Type(M) !== 'object') throw TypeError();
3735 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3736 if (Type(key) !== 'object') throw TypeError('Expected object');
3737 return M['[[WeakMapData]]'].remove(key);
3740 //
23.3.3.3 WeakMap.prototype.get ( key )
3742 WeakMap.prototype, 'get',
3743 function get(key, defaultValue) {
3744 var M = strict(this);
3745 if (Type(M) !== 'object') throw TypeError();
3746 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3747 if (Type(key) !== 'object') throw TypeError('Expected object');
3748 return M['[[WeakMapData]]'].get(key, defaultValue);
3751 //
23.3.3.4 WeakMap.prototype.has ( key )
3753 WeakMap.prototype, 'has',
3755 var M = strict(this);
3756 if (Type(M) !== 'object') throw TypeError();
3757 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3758 if (Type(key) !== 'object') throw TypeError('Expected object');
3759 return M['[[WeakMapData]]'].has(key);
3762 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3764 WeakMap.prototype, 'set',
3765 function set(key, value) {
3766 var M = strict(this);
3767 if (Type(M) !== 'object') throw TypeError();
3768 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3769 if (Type(key) !== 'object') throw TypeError('Expected object');
3770 M['[[WeakMapData]]'].set(key, value);
3774 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3775 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3777 //
23.3.4 Properties of WeakMap Instances
3779 // Polyfills for incomplete native implementations:
3781 var wm = new global.WeakMap();
3782 var orig = global.WeakMap.prototype.set;
3783 define(global.WeakMap.prototype, 'set', function set() {
3784 orig.apply(this, arguments);
3786 }, wm.set({},
0) !== wm);
3790 // ---------------------------------------
3791 //
23.4 WeakSet Objects
3792 // ---------------------------------------
3795 //
23.4.1 The WeakSet Constructor
3796 //
23.4.1.1 WeakSet ( [ iterable ] )
3798 function WeakSet(/*iterable*/) {
3799 var set = strict(this);
3800 var iterable = arguments[
0];
3802 if (Type(set) !== 'object') throw TypeError();
3803 if ('[[WeakSetData]]' in set) throw TypeError();
3805 if (iterable !== undefined) {
3806 var adder = set['add'];
3807 if (!IsCallable(adder)) throw TypeError();
3808 var iter = GetIterator(ToObject(iterable));
3810 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3811 if (iter === undefined) return set;
3813 var next = IteratorStep(iter);
3816 var nextValue = IteratorValue(next);
3817 adder.call(set, nextValue);
3823 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3824 global.WeakSet = WeakSet;
3826 //
23.4.2 Properties of the WeakSet Constructor
3827 //
23.4.2.1 WeakSet.prototype
3828 var $WeakSetPrototype$ = {};
3829 WeakSet.prototype = $WeakSetPrototype$;
3831 //
23.4.3 Properties of the WeakSet Prototype Object
3832 //
23.4.3.1 WeakSet.prototype.add (value )
3834 WeakSet.prototype, 'add',
3835 function add(value) {
3836 var S = strict(this);
3837 if (Type(S) !== 'object') throw TypeError();
3838 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3839 if (Type(value) !== 'object') throw TypeError('Expected object');
3840 S['[[WeakSetData]]'].set(value, true);
3844 //
23.4.3.2 WeakSet.prototype.constructor
3845 //
23.4.3.3 WeakSet.prototype.delete ( value )
3847 WeakSet.prototype, 'delete',
3848 function delete_(value) {
3849 var S = strict(this);
3850 if (Type(S) !== 'object') throw TypeError();
3851 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3852 if (Type(value) !== 'object') throw TypeError('Expected object');
3853 return S['[[WeakSetData]]'].remove(value);
3856 //
23.4.3.4 WeakSet.prototype.has ( value )
3858 WeakSet.prototype, 'has',
3860 var S = strict(this);
3861 if (Type(S) !== 'object') throw TypeError();
3862 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3863 if (Type(key) !== 'object') throw TypeError('Expected object');
3864 return S['[[WeakSetData]]'].has(key);
3867 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3868 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3870 //
23.4.4 Properties of WeakSet Instances
3872 // Polyfills for incomplete native implementations:
3874 var ws = new global.WeakSet();
3875 var orig = global.WeakSet.prototype.add;
3876 define(global.WeakSet.prototype, 'add', function add() {
3877 orig.apply(this, arguments);
3879 }, ws.add({}) !== ws);
3883 // ---------------------------------------
3884 //
24 Structured Data
3885 // ---------------------------------------
3887 // ---------------------------------------
3888 //
24.1 ArrayBuffer Objects
3889 // ---------------------------------------
3891 // See typedarray.js for TypedArray polyfill
3894 if (!('ArrayBuffer' in global))
3897 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3898 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3899 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3900 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3901 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3902 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3903 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3904 //
24.1.2 The ArrayBuffer Constructor
3905 //
24.1.2.1 ArrayBuffer( length )
3906 //
24.1.3 Properties of the ArrayBuffer Constructor
3908 //
24.1.3.1 ArrayBuffer.isView ( arg )
3910 ArrayBuffer, 'isView',
3911 function isView(arg) {
3912 if (Type(arg) !== 'object') return false;
3913 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3917 //
24.1.3.2 ArrayBuffer.prototype
3918 //
24.1.3.3 get ArrayBuffer [ @@species ]
3919 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3920 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3921 //
24.1.4.2 ArrayBuffer.prototype.constructor
3922 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3924 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3925 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3927 //
24.1.5 Properties of the ArrayBuffer Instances
3930 // ---------------------------------------
3931 //
24.2 DataView Objects
3932 // ---------------------------------------
3934 // See typedarray.js for TypedArray polyfill
3937 if (!('DataView' in global))
3940 //
24.2.1 Abstract Operations For DataView Objects
3941 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3942 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3943 //
24.2.2 The DataView Constructor
3944 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3945 //
24.2.3 Properties of the DataView Constructor
3946 //
24.2.3.1 DataView.prototype
3947 //
24.2.4 Properties of the DataView Prototype Object
3948 //
24.2.4.1 get DataView.prototype.buffer
3949 //
24.2.4.2 get DataView.prototype.byteLength
3950 //
24.2.4.3 get DataView.prototype.byteOffset
3951 //
24.2.4.4 DataView.prototype.constructor
3952 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3953 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3954 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3955 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3956 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3957 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3958 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3959 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3960 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3961 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3962 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3963 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3964 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3965 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3966 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3967 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3969 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3970 define(DataView.prototype, $$toStringTag, 'DataView');
3972 //
24.2.5 Properties of DataView Instances
3975 // ---------------------------------------
3976 //
24.3 The JSON Object
3977 // ---------------------------------------
3979 //
24.3.1 JSON.parse ( text [ , reviver ] )
3980 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3981 //
24.3.3 JSON [ @@toStringTag ]
3982 define(JSON, $$toStringTag, 'JSON');
3984 // ---------------------------------------
3986 // ---------------------------------------
3988 //
25.1.1 Common Iteration Interfaces
3989 //
25.1.1.1 The Iterable Interface
3990 //
25.1.1.2 The Iterator Interface
3991 //
25.1.1.3 The IteratorResult Interface
3993 //
25.1.2 The %IteratorPrototype% Object
3994 // Defined earlier, so other prototypes can reference it.
3995 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3996 define($IteratorPrototype$, $$iterator, function() {
4001 // ---------------------------------------
4002 //
25.4 Promise Objects
4003 // ---------------------------------------
4006 //
25.4 Promise Objects
4008 //
25.4.1 Promise Abstract Operations
4010 //
25.4.1.1 PromiseCapability Records
4011 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4013 function IfAbruptRejectPromise(value, capability) {
4014 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4015 return capability['[[Promise]]'];
4018 //
25.4.1.2 PromiseReaction Records
4020 //
25.4.1.3 CreateResolvingFunctions ( promise )
4022 function CreateResolvingFunctions(promise) {
4023 var alreadyResolved = {'[[value]]': false};
4024 var resolve = PromiseResolveFunction();
4025 set_internal(resolve, '[[Promise]]', promise);
4026 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4027 var reject = PromiseRejectFunction();
4028 set_internal(reject, '[[Promise]]', promise);
4029 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4030 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4033 //
25.4.1.3.1 Promise Reject Functions
4035 function PromiseRejectFunction() {
4036 var F = function(reason) {
4037 console.assert(Type(F['[[Promise]]']) === 'object');
4038 var promise = F['[[Promise]]'];
4039 var alreadyResolved = F['[[AlreadyResolved]]'];
4040 if (alreadyResolved['[[value]]']) return undefined;
4041 set_internal(alreadyResolved, '[[value]]', true);
4042 return RejectPromise(promise, reason);
4047 //
25.4.1.3.2 Promise Resolve Functions
4049 function PromiseResolveFunction() {
4050 var F = function(resolution) {
4051 console.assert(Type(F['[[Promise]]']) === 'object');
4052 var promise = F['[[Promise]]'];
4053 var alreadyResolved = F['[[AlreadyResolved]]'];
4054 if (alreadyResolved['[[value]]']) return undefined;
4055 set_internal(alreadyResolved, '[[value]]', true);
4057 if (SameValue(resolution, promise)) {
4058 var selfResolutionError = TypeError();
4059 return RejectPromise(promise, selfResolutionError);
4061 if (Type(resolution) !== 'object')
4062 return FulfillPromise(promise, resolution);
4064 var then = resolution['then'];
4066 return RejectPromise(promise, then);
4068 if (!IsCallable(then))
4069 return FulfillPromise(promise, resolution);
4070 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4076 //
25.4.1.4 FulfillPromise ( promise, value )
4078 function FulfillPromise(promise, value) {
4079 console.assert(promise['[[PromiseState]]'] === 'pending');
4080 var reactions = promise['[[PromiseFulfillReactions]]'];
4081 set_internal(promise, '[[PromiseResult]]', value);
4082 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4083 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4084 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4085 return TriggerPromiseReactions(reactions, value);
4088 //
25.4.1.5 NewPromiseCapability ( C )
4090 function NewPromiseCapability(c) {
4091 // To keep Promise hermetic, this doesn't look much like the spec.
4092 return CreatePromiseCapabilityRecord(undefined, c);
4095 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4097 function CreatePromiseCapabilityRecord(promise, constructor) {
4098 // To keep Promise hermetic, this doesn't look much like the spec.
4099 console.assert(IsConstructor(constructor));
4100 var promiseCapability = {};
4101 set_internal(promiseCapability, '[[Promise]]', promise);
4102 set_internal(promiseCapability, '[[Resolve]]', undefined);
4103 set_internal(promiseCapability, '[[Reject]]', undefined);
4104 var executor = GetCapabilitiesExecutor();
4105 set_internal(executor, '[[Capability]]', promiseCapability);
4107 // NOTE: Differs from spec; object is constructed here
4108 var constructorResult = promise = new constructor(executor);
4109 set_internal(promiseCapability, '[[Promise]]', promise);
4111 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4112 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4113 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4114 return promiseCapability;
4117 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4119 function GetCapabilitiesExecutor() {
4120 var F = function(resolve, reject) {
4121 console.assert(F['[[Capability]]']);
4122 var promiseCapability = F['[[Capability]]'];
4123 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4124 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4125 set_internal(promiseCapability, '[[Resolve]]', resolve);
4126 set_internal(promiseCapability, '[[Reject]]', reject);
4132 //
25.4.1.6 IsPromise ( x )
4134 function IsPromise(x) {
4135 if (Type(x) !== 'object') return false;
4136 if (!('[[PromiseState]]' in x)) return false;
4137 if (x['[[PromiseState]]'] === undefined) return false;
4141 //
25.4.1.7 RejectPromise ( promise, reason )
4143 function RejectPromise(promise, reason) {
4144 console.assert(promise['[[PromiseState]]'] === 'pending');
4145 var reactions = promise['[[PromiseRejectReactions]]'];
4146 set_internal(promise, '[[PromiseResult]]', reason);
4147 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4148 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4149 set_internal(promise, '[[PromiseState]]', 'rejected');
4150 return TriggerPromiseReactions(reactions, reason);
4153 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4155 function TriggerPromiseReactions(reactions, argument) {
4156 for (var i =
0, len = reactions.length; i < len; ++i)
4157 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4161 //
25.4.2 Promise Jobs
4163 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4165 function PromiseReactionJob(reaction, argument) {
4166 var promiseCapability = reaction['[[Capabilities]]'];
4167 var handler = reaction['[[Handler]]'];
4168 var handlerResult, status;
4170 if (handler === 'Identity') handlerResult = argument;
4171 else if (handler === 'Thrower') throw argument;
4172 else handlerResult = handler.call(undefined, argument);
4173 } catch (handlerResult) {
4174 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4175 NextJob(status); return;
4177 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4181 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4183 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4184 // SPEC BUG: promise vs. promiseToResolve
4185 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4187 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4188 resolvingFunctions['[[Reject]]']);
4189 } catch (thenCallResult) {
4190 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4191 NextJob(status); return;
4193 NextJob(thenCallResult);
4196 //
25.4.3 The Promise Constructor
4198 //
25.4.3.1 Promise ( executor )
4200 function Promise(executor) {
4201 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4202 Object.defineProperty(this, '[[PromiseState]]', config);
4203 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4204 Object.defineProperty(this, '[[PromiseResult]]', config);
4205 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4206 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4209 if (Type(promise) !== 'object') throw new TypeError();
4210 if (!('[[PromiseState]]' in promise)) throw TypeError();
4211 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4212 if (!IsCallable(executor)) throw TypeError();
4214 set_internal(promise, '[[PromiseConstructor]]', Promise);
4216 return InitializePromise(promise, executor);
4219 //
25.4.3.1.1 InitializePromise ( promise, executor )
4221 function InitializePromise(promise, executor) {
4222 console.assert('[[PromiseState]]' in promise);
4223 console.assert(IsCallable(executor));
4224 set_internal(promise, '[[PromiseState]]', 'pending');
4225 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4226 set_internal(promise, '[[PromiseRejectReactions]]', []);
4227 var resolvingFunctions = CreateResolvingFunctions(promise);
4229 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4230 resolvingFunctions['[[Reject]]']);
4231 } catch (completion) {
4232 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4237 //
25.4.4 Properties of the Promise Constructor
4238 //
25.4.4.1 Promise.all ( iterable )
4240 define(Promise, 'all', function all(iterable) {
4241 var c = strict(this);
4242 var promiseCapability = NewPromiseCapability(c);
4244 var iterator = GetIterator(iterable);
4246 promiseCapability['[[Reject]]'].call(undefined, value);
4247 return promiseCapability['[[Promise]]'];
4250 var remainingElementsCount = { value:
1 };
4254 var next = IteratorStep(iterator);
4256 promiseCapability['[[Reject]]'].call(undefined, value);
4257 return promiseCapability['[[Promise]]'];
4260 remainingElementsCount.value -=
1;
4261 if (remainingElementsCount.value ===
0) {
4262 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4266 return promiseCapability['[[Promise]]'];
4269 var nextValue = IteratorValue(next);
4271 promiseCapability['[[Reject]]'].call(undefined, value);
4272 return promiseCapability['[[Promise]]'];
4275 var nextPromise = c.resolve(nextValue);
4277 promiseCapability['[[Reject]]'].call(undefined, value);
4278 return promiseCapability['[[Promise]]'];
4280 var resolveElement = PromiseAllResolveElementFunction();
4281 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4282 set_internal(resolveElement, '[[Index]]', index);
4283 set_internal(resolveElement, '[[Values]]', values);
4284 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4285 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4286 remainingElementsCount.value +=
1;
4288 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4290 promiseCapability['[[Reject]]'].call(undefined, value);
4291 return promiseCapability['[[Promise]]'];
4297 //
25.4.4.1.1 Promise.all Resolve Element Functions
4299 function PromiseAllResolveElementFunction() {
4300 var F = function(x) {
4301 var alreadyCalled = F['[[AlreadyCalled]]'];
4302 if (alreadyCalled.value) return undefined;
4303 alreadyCalled.value = true;
4304 var index = F['[[Index]]'];
4305 var values = F['[[Values]]'];
4306 var promiseCapability = F['[[Capabilities]]'];
4307 var remainingElementsCount = F['[[RemainingElements]]'];
4311 promiseCapability['[[Reject]]'].call(undefined, result);
4312 return promiseCapability['[[Promise]]'];
4314 remainingElementsCount.value -=
1;
4315 if (remainingElementsCount.value ===
0)
4316 return promiseCapability['[[Resolve]]'].call(undefined, values);
4322 //
25.4.4.2 Promise.prototype
4324 Promise.prototype = {};
4326 //
25.4.4.3 Promise.race ( iterable )
4328 define(Promise, 'race', function race(iterable) {
4329 var c = strict(this);
4330 var promiseCapability = NewPromiseCapability(c);
4332 var iterator = GetIterator(iterable);
4334 promiseCapability['[[Reject]]'].call(undefined, value);
4335 return promiseCapability['[[Promise]]'];
4339 var next = IteratorStep(iterator);
4341 promiseCapability['[[Reject]]'].call(undefined, value);
4342 return promiseCapability['[[Promise]]'];
4344 if (!next) return promiseCapability['[[Promise]]'];
4346 var nextValue = IteratorValue(next);
4348 promiseCapability['[[Reject]]'].call(undefined, value);
4349 return promiseCapability['[[Promise]]'];
4352 var nextPromise = c.resolve(nextValue);
4354 promiseCapability['[[Reject]]'].call(undefined, value);
4355 return promiseCapability['[[Promise]]'];
4358 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4360 promiseCapability['[[Reject]]'].call(undefined, value);
4361 return promiseCapability['[[Promise]]'];
4366 //
25.4.4.4 Promise.reject ( r )
4368 define(Promise, 'reject', function reject(r) {
4369 var c = strict(this);
4370 var promiseCapability = NewPromiseCapability(c);
4371 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4372 return promiseCapability['[[Promise]]'];
4375 //
25.4.4.5 Promise.resolve ( x )
4377 define(Promise, 'resolve', function resolve(x) {
4378 var c = strict(this);
4380 var constructor = x['[[PromiseConstructor]]'];
4381 if (SameValue(constructor, c)) return x;
4383 var promiseCapability = NewPromiseCapability(c);
4384 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4385 return promiseCapability['[[Promise]]'];
4388 //
25.4.4.6 Promise [ @@create ] ( )
4389 //
25.4.4.6.1 AllocatePromise ( constructor )
4390 //
25.4.5 Properties of the Promise Prototype Object
4391 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4393 define(Promise.prototype, 'catch', function catch_(onRejected) {
4395 return promise.then(undefined, onRejected);
4398 //
25.4.5.2 Promise.prototype.constructor
4400 Promise.prototype.constructor = Promise;
4402 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4404 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4406 if (!IsPromise(promise)) throw TypeError();
4407 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4408 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4409 var c = promise.constructor;
4410 var promiseCapability = NewPromiseCapability(c);
4411 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4412 '[[Handler]]': onFulfilled };
4413 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4414 '[[Handler]]': onRejected };
4415 if (promise['[[PromiseState]]'] === 'pending') {
4416 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4417 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4418 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4419 var value = promise['[[PromiseResult]]'];
4420 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4421 } else if (promise['[[PromiseState]]'] === 'rejected') {
4422 var reason = promise['[[PromiseResult]]'];
4423 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4425 return promiseCapability['[[Promise]]'];
4428 //
25.4.6 Properties of Promise Instances
4430 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4431 global.Promise = Promise;
4433 // Patch early Promise.cast vs. Promise.resolve implementations
4434 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4437 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4438 define(Promise.prototype, $$toStringTag, 'Promise');
4440 // ---------------------------------------
4442 // ---------------------------------------
4445 //
26.1 The Reflect Object
4446 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4447 global.Reflect = {};
4449 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4452 function apply(target, thisArgument, argumentsList) {
4453 if (!IsCallable(target)) throw TypeError();
4454 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4457 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4459 Reflect, 'construct',
4460 function construct(target, argumentsList) {
4461 return __cons(target, argumentsList);
4464 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4466 Reflect, 'defineProperty',
4467 function defineProperty(target, propertyKey, attributes) {
4469 Object.defineProperty(target, propertyKey, attributes);
4476 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4478 Reflect, 'deleteProperty',
4479 function deleteProperty(target,name) {
4481 delete target[name];
4482 return !HasOwnProperty(target, name);
4488 //
26.1.5 Reflect.enumerate ( target )
4490 Reflect, 'enumerate',
4491 function enumerate(target) {
4492 target = ToObject(target);
4493 var iterator = Enumerate(target);
4497 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4500 function get(target, name, receiver) {
4501 target = ToObject(target);
4502 name = String(name);
4503 receiver = (receiver === undefined) ? target : ToObject(receiver);
4504 var desc = getPropertyDescriptor(target, name);
4505 if (desc && 'get' in desc)
4506 return Function.prototype.call.call(desc['get'], receiver);
4507 return target[name];
4510 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4512 Reflect, 'getOwnPropertyDescriptor',
4513 Object.getOwnPropertyDescriptor);
4515 //
26.1.8 Reflect.getPrototypeOf ( target )
4517 Reflect, 'getPrototypeOf',
4518 Object.getPrototypeOf);
4520 //
26.1.9 Reflect.has ( target, propertyKey )
4523 function has(target,name) {
4524 return String(name) in ToObject(target);
4527 //
26.1.10 Reflect.isExtensible (target)
4529 Reflect, 'isExtensible',
4530 Object.isExtensible);
4532 //
26.1.11 Reflect.ownKeys ( target )
4535 function ownKeys(target) {
4536 var obj = ToObject(target);
4537 return Object.getOwnPropertyNames(obj);
4540 //
26.1.12 Reflect.preventExtensions ( target )
4542 Reflect, 'preventExtensions',
4543 function preventExtensions(target) {
4544 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4547 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4550 function set(target, name, value, receiver) {
4551 target = ToObject(target);
4552 name = String(name);
4553 receiver = (receiver === undefined) ? target : ToObject(receiver);
4554 var desc = getPropertyDescriptor(target, name);
4556 if (desc && 'set' in desc)
4557 Function.prototype.call.call(desc['set'], receiver, value);
4559 target[name] = value;
4566 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4568 Reflect, 'setPrototypeOf',
4569 function setPrototypeOf(target, proto) {
4571 target.__proto__ = proto;
4572 return Reflect.getPrototypeOf(target) === proto;
4580 // ---------------------------------------
4581 //
26.2 Proxy Objects
4582 // ---------------------------------------
4584 // Not polyfillable.
4588 // This helper is defined outside the main scope so that the use of
4589 // 'eval' does not taint the scope for minifiers.
4590 function __cons(t, a) {
4591 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4594 <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){
4597 exports.byteLength = byteLength
4598 exports.toByteArray = toByteArray
4599 exports.fromByteArray = fromByteArray
4603 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4605 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4606 for (var i =
0, len = code.length; i < len; ++i) {
4608 revLookup[code.charCodeAt(i)] = i
4611 revLookup['-'.charCodeAt(
0)] =
62
4612 revLookup['_'.charCodeAt(
0)] =
63
4614 function placeHoldersCount (b64) {
4615 var len = b64.length
4617 throw new Error('Invalid string. Length must be a multiple of
4')
4620 // the number of equal signs (place holders)
4621 // if there are two placeholders, than the two characters before it
4622 // represent one byte
4623 // if there is only one, then the three characters before it represent
2 bytes
4624 // this is just a cheap hack to not do indexOf twice
4625 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4628 function byteLength (b64) {
4629 // base64 is
4/
3 + up to two characters of the original data
4630 return b64.length *
3 /
4 - placeHoldersCount(b64)
4633 function toByteArray (b64) {
4634 var i, j, l, tmp, placeHolders, arr
4635 var len = b64.length
4636 placeHolders = placeHoldersCount(b64)
4638 arr = new Arr(len *
3 /
4 - placeHolders)
4640 // if there are placeholders, only get up to the last complete
4 chars
4641 l = placeHolders
> 0 ? len -
4 : len
4645 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4646 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4647 arr[L++] = (tmp
>> 16) &
0xFF
4648 arr[L++] = (tmp
>> 8) &
0xFF
4649 arr[L++] = tmp &
0xFF
4652 if (placeHolders ===
2) {
4653 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4654 arr[L++] = tmp &
0xFF
4655 } else if (placeHolders ===
1) {
4656 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4657 arr[L++] = (tmp
>> 8) &
0xFF
4658 arr[L++] = tmp &
0xFF
4664 function tripletToBase64 (num) {
4665 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4668 function encodeChunk (uint8, start, end) {
4671 for (var i = start; i < end; i +=
3) {
4672 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4673 output.push(tripletToBase64(tmp))
4675 return output.join('')
4678 function fromByteArray (uint8) {
4680 var len = uint8.length
4681 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4684 var maxChunkLength =
16383 // must be multiple of
3
4686 // go through the array every three bytes, we'll deal with trailing stuff later
4687 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4688 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4691 // pad the end with zeros, but make sure to not forget the extra bytes
4692 if (extraBytes ===
1) {
4693 tmp = uint8[len -
1]
4694 output += lookup[tmp
>> 2]
4695 output += lookup[(tmp <<
4) &
0x3F]
4697 } else if (extraBytes ===
2) {
4698 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4699 output += lookup[tmp
>> 10]
4700 output += lookup[(tmp
>> 4) &
0x3F]
4701 output += lookup[(tmp <<
2) &
0x3F]
4707 return parts.join('')
4710 },{}],
2:[function(require,module,exports){
4712 * The buffer module from node.js, for the browser.
4714 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4717 /* eslint-disable no-proto */
4721 var base64 = require('base64-js')
4722 var ieee754 = require('ieee754')
4724 exports.Buffer = Buffer
4725 exports.SlowBuffer = SlowBuffer
4726 exports.INSPECT_MAX_BYTES =
50
4728 var K_MAX_LENGTH =
0x7fffffff
4729 exports.kMaxLength = K_MAX_LENGTH
4732 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4733 * === true Use Uint8Array implementation (fastest)
4734 * === false Print warning and recommend using `buffer` v4.x which has an Object
4735 * implementation (most compatible, even IE6)
4737 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4738 * Opera
11.6+, iOS
4.2+.
4740 * We report that the browser does not support typed arrays if the are not subclassable
4741 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4742 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4743 * for __proto__ and has a buggy typed array implementation.
4745 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4747 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4748 typeof console.error === 'function') {
4750 'This browser lacks typed array (Uint8Array) support which is required by ' +
4751 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4755 function typedArraySupport () {
4756 // Can typed array instances can be augmented?
4758 var arr = new Uint8Array(
1)
4759 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4760 return arr.foo() ===
42
4766 function createBuffer (length) {
4767 if (length
> K_MAX_LENGTH) {
4768 throw new RangeError('Invalid typed array length')
4770 // Return an augmented `Uint8Array` instance
4771 var buf = new Uint8Array(length)
4772 buf.__proto__ = Buffer.prototype
4777 * The Buffer constructor returns instances of `Uint8Array` that have their
4778 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4779 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4780 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4781 * returns a single octet.
4783 * The `Uint8Array` prototype remains unmodified.
4786 function Buffer (arg, encodingOrOffset, length) {
4788 if (typeof arg === 'number') {
4789 if (typeof encodingOrOffset === 'string') {
4791 'If encoding is specified then the first argument must be a string'
4794 return allocUnsafe(arg)
4796 return from(arg, encodingOrOffset, length)
4799 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4800 if (typeof Symbol !== 'undefined' && Symbol.species &&
4801 Buffer[Symbol.species] === Buffer) {
4802 Object.defineProperty(Buffer, Symbol.species, {
4810 Buffer.poolSize =
8192 // not used by this implementation
4812 function from (value, encodingOrOffset, length) {
4813 if (typeof value === 'number') {
4814 throw new TypeError('"value" argument must not be a number')
4817 if (value instanceof ArrayBuffer) {
4818 return fromArrayBuffer(value, encodingOrOffset, length)
4821 if (typeof value === 'string') {
4822 return fromString(value, encodingOrOffset)
4825 return fromObject(value)
4829 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4830 * if value is a number.
4831 * Buffer.from(str[, encoding])
4832 * Buffer.from(array)
4833 * Buffer.from(buffer)
4834 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4836 Buffer.from = function (value, encodingOrOffset, length) {
4837 return from(value, encodingOrOffset, length)
4840 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4841 // https://github.com/feross/buffer/pull/
148
4842 Buffer.prototype.__proto__ = Uint8Array.prototype
4843 Buffer.__proto__ = Uint8Array
4845 function assertSize (size) {
4846 if (typeof size !== 'number') {
4847 throw new TypeError('"size" argument must be a number')
4848 } else if (size <
0) {
4849 throw new RangeError('"size" argument must not be negative')
4853 function alloc (size, fill, encoding) {
4856 return createBuffer(size)
4858 if (fill !== undefined) {
4859 // Only pay attention to encoding if it's a string. This
4860 // prevents accidentally sending in a number that would
4861 // be interpretted as a start offset.
4862 return typeof encoding === 'string'
4863 ? createBuffer(size).fill(fill, encoding)
4864 : createBuffer(size).fill(fill)
4866 return createBuffer(size)
4870 * Creates a new filled Buffer instance.
4871 * alloc(size[, fill[, encoding]])
4873 Buffer.alloc = function (size, fill, encoding) {
4874 return alloc(size, fill, encoding)
4877 function allocUnsafe (size) {
4879 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4883 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4885 Buffer.allocUnsafe = function (size) {
4886 return allocUnsafe(size)
4889 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4891 Buffer.allocUnsafeSlow = function (size) {
4892 return allocUnsafe(size)
4895 function fromString (string, encoding) {
4896 if (typeof encoding !== 'string' || encoding === '') {
4900 if (!Buffer.isEncoding(encoding)) {
4901 throw new TypeError('"encoding" must be a valid string encoding')
4904 var length = byteLength(string, encoding) |
0
4905 var buf = createBuffer(length)
4907 var actual = buf.write(string, encoding)
4909 if (actual !== length) {
4910 // Writing a hex string, for example, that contains invalid characters will
4911 // cause everything after the first invalid character to be ignored. (e.g.
4912 // 'abxxcd' will be treated as 'ab')
4913 buf = buf.slice(
0, actual)
4919 function fromArrayLike (array) {
4920 var length = array.length <
0 ?
0 : checked(array.length) |
0
4921 var buf = createBuffer(length)
4922 for (var i =
0; i < length; i +=
1) {
4923 buf[i] = array[i] &
255
4928 function fromArrayBuffer (array, byteOffset, length) {
4929 if (byteOffset <
0 || array.byteLength < byteOffset) {
4930 throw new RangeError('\'offset\' is out of bounds')
4933 if (array.byteLength < byteOffset + (length ||
0)) {
4934 throw new RangeError('\'length\' is out of bounds')
4938 if (byteOffset === undefined && length === undefined) {
4939 buf = new Uint8Array(array)
4940 } else if (length === undefined) {
4941 buf = new Uint8Array(array, byteOffset)
4943 buf = new Uint8Array(array, byteOffset, length)
4946 // Return an augmented `Uint8Array` instance
4947 buf.__proto__ = Buffer.prototype
4951 function fromObject (obj) {
4952 if (Buffer.isBuffer(obj)) {
4953 var len = checked(obj.length) |
0
4954 var buf = createBuffer(len)
4956 if (buf.length ===
0) {
4960 obj.copy(buf,
0,
0, len)
4965 if (isArrayBufferView(obj) || 'length' in obj) {
4966 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4967 return createBuffer(
0)
4969 return fromArrayLike(obj)
4972 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4973 return fromArrayLike(obj.data)
4977 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4980 function checked (length) {
4981 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4982 // length is NaN (which is otherwise coerced to zero.)
4983 if (length
>= K_MAX_LENGTH) {
4984 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4985 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4990 function SlowBuffer (length) {
4991 if (+length != length) { // eslint-disable-line eqeqeq
4994 return Buffer.alloc(+length)
4997 Buffer.isBuffer = function isBuffer (b) {
4998 return b != null && b._isBuffer === true
5001 Buffer.compare = function compare (a, b) {
5002 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5003 throw new TypeError('Arguments must be Buffers')
5006 if (a === b) return
0
5011 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5012 if (a[i] !== b[i]) {
5019 if (x < y) return -
1
5024 Buffer.isEncoding = function isEncoding (encoding) {
5025 switch (String(encoding).toLowerCase()) {
5043 Buffer.concat = function concat (list, length) {
5044 if (!Array.isArray(list)) {
5045 throw new TypeError('"list" argument must be an Array of Buffers')
5048 if (list.length ===
0) {
5049 return Buffer.alloc(
0)
5053 if (length === undefined) {
5055 for (i =
0; i < list.length; ++i) {
5056 length += list[i].length
5060 var buffer = Buffer.allocUnsafe(length)
5062 for (i =
0; i < list.length; ++i) {
5064 if (!Buffer.isBuffer(buf)) {
5065 throw new TypeError('"list" argument must be an Array of Buffers')
5067 buf.copy(buffer, pos)
5073 function byteLength (string, encoding) {
5074 if (Buffer.isBuffer(string)) {
5075 return string.length
5077 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5078 return string.byteLength
5080 if (typeof string !== 'string') {
5081 string = '' + string
5084 var len = string.length
5085 if (len ===
0) return
0
5087 // Use a for loop to avoid recursion
5088 var loweredCase = false
5098 return utf8ToBytes(string).length
5107 return base64ToBytes(string).length
5109 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5110 encoding = ('' + encoding).toLowerCase()
5115 Buffer.byteLength = byteLength
5117 function slowToString (encoding, start, end) {
5118 var loweredCase = false
5120 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5121 // property of a typed array.
5123 // This behaves neither like String nor Uint8Array in that we set start/end
5124 // to their upper/lower bounds if the value passed is out of range.
5125 // undefined is handled specially as per ECMA-
262 6th Edition,
5126 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5127 if (start === undefined || start <
0) {
5130 // Return early if start
> this.length. Done here to prevent potential uint32
5131 // coercion fail below.
5132 if (start
> this.length) {
5136 if (end === undefined || end
> this.length) {
5144 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5152 if (!encoding) encoding = 'utf8'
5157 return hexSlice(this, start, end)
5161 return utf8Slice(this, start, end)
5164 return asciiSlice(this, start, end)
5168 return latin1Slice(this, start, end)
5171 return base64Slice(this, start, end)
5177 return utf16leSlice(this, start, end)
5180 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5181 encoding = (encoding + '').toLowerCase()
5187 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5188 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5189 // reliably in a browserify context because there could be multiple different
5190 // copies of the 'buffer' package in use. This method works even for Buffer
5191 // instances that were created from another copy of the `buffer` package.
5192 // See: https://github.com/feross/buffer/issues/
154
5193 Buffer.prototype._isBuffer = true
5195 function swap (b, n, m) {
5201 Buffer.prototype.swap16 = function swap16 () {
5202 var len = this.length
5203 if (len %
2 !==
0) {
5204 throw new RangeError('Buffer size must be a multiple of
16-bits')
5206 for (var i =
0; i < len; i +=
2) {
5207 swap(this, i, i +
1)
5212 Buffer.prototype.swap32 = function swap32 () {
5213 var len = this.length
5214 if (len %
4 !==
0) {
5215 throw new RangeError('Buffer size must be a multiple of
32-bits')
5217 for (var i =
0; i < len; i +=
4) {
5218 swap(this, i, i +
3)
5219 swap(this, i +
1, i +
2)
5224 Buffer.prototype.swap64 = function swap64 () {
5225 var len = this.length
5226 if (len %
8 !==
0) {
5227 throw new RangeError('Buffer size must be a multiple of
64-bits')
5229 for (var i =
0; i < len; i +=
8) {
5230 swap(this, i, i +
7)
5231 swap(this, i +
1, i +
6)
5232 swap(this, i +
2, i +
5)
5233 swap(this, i +
3, i +
4)
5238 Buffer.prototype.toString = function toString () {
5239 var length = this.length
5240 if (length ===
0) return ''
5241 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5242 return slowToString.apply(this, arguments)
5245 Buffer.prototype.equals = function equals (b) {
5246 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5247 if (this === b) return true
5248 return Buffer.compare(this, b) ===
0
5251 Buffer.prototype.inspect = function inspect () {
5253 var max = exports.INSPECT_MAX_BYTES
5254 if (this.length
> 0) {
5255 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5256 if (this.length
> max) str += ' ... '
5258 return '
<Buffer ' + str + '
>'
5261 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5262 if (!Buffer.isBuffer(target)) {
5263 throw new TypeError('Argument must be a Buffer')
5266 if (start === undefined) {
5269 if (end === undefined) {
5270 end = target ? target.length :
0
5272 if (thisStart === undefined) {
5275 if (thisEnd === undefined) {
5276 thisEnd = this.length
5279 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5280 throw new RangeError('out of range index')
5283 if (thisStart
>= thisEnd && start
>= end) {
5286 if (thisStart
>= thisEnd) {
5298 if (this === target) return
0
5300 var x = thisEnd - thisStart
5302 var len = Math.min(x, y)
5304 var thisCopy = this.slice(thisStart, thisEnd)
5305 var targetCopy = target.slice(start, end)
5307 for (var i =
0; i < len; ++i) {
5308 if (thisCopy[i] !== targetCopy[i]) {
5315 if (x < y) return -
1
5320 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5321 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5324 // - buffer - a Buffer to search
5325 // - val - a string, Buffer, or number
5326 // - byteOffset - an index into `buffer`; will be clamped to an int32
5327 // - encoding - an optional encoding, relevant is val is a string
5328 // - dir - true for indexOf, false for lastIndexOf
5329 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5330 // Empty buffer means no match
5331 if (buffer.length ===
0) return -
1
5333 // Normalize byteOffset
5334 if (typeof byteOffset === 'string') {
5335 encoding = byteOffset
5337 } else if (byteOffset
> 0x7fffffff) {
5338 byteOffset =
0x7fffffff
5339 } else if (byteOffset < -
0x80000000) {
5340 byteOffset = -
0x80000000
5342 byteOffset = +byteOffset // Coerce to Number.
5343 if (numberIsNaN(byteOffset)) {
5344 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5345 byteOffset = dir ?
0 : (buffer.length -
1)
5348 // Normalize byteOffset: negative offsets start from the end of the buffer
5349 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5350 if (byteOffset
>= buffer.length) {
5352 else byteOffset = buffer.length -
1
5353 } else if (byteOffset <
0) {
5354 if (dir) byteOffset =
0
5359 if (typeof val === 'string') {
5360 val = Buffer.from(val, encoding)
5363 // Finally, search either indexOf (if dir is true) or lastIndexOf
5364 if (Buffer.isBuffer(val)) {
5365 // Special case: looking for empty string/buffer always fails
5366 if (val.length ===
0) {
5369 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5370 } else if (typeof val === 'number') {
5371 val = val &
0xFF // Search for a byte value [
0-
255]
5372 if (typeof Uint8Array.prototype.indexOf === 'function') {
5374 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5376 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5379 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5382 throw new TypeError('val must be string, number or Buffer')
5385 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5387 var arrLength = arr.length
5388 var valLength = val.length
5390 if (encoding !== undefined) {
5391 encoding = String(encoding).toLowerCase()
5392 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5393 encoding === 'utf16le' || encoding === 'utf-
16le') {
5394 if (arr.length <
2 || val.length <
2) {
5404 function read (buf, i) {
5405 if (indexSize ===
1) {
5408 return buf.readUInt16BE(i * indexSize)
5415 for (i = byteOffset; i < arrLength; i++) {
5416 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5417 if (foundIndex === -
1) foundIndex = i
5418 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5420 if (foundIndex !== -
1) i -= i - foundIndex
5425 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5426 for (i = byteOffset; i
>=
0; i--) {
5428 for (var j =
0; j < valLength; j++) {
5429 if (read(arr, i + j) !== read(val, j)) {
5441 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5442 return this.indexOf(val, byteOffset, encoding) !== -
1
5445 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5446 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5449 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5450 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5453 function hexWrite (buf, string, offset, length) {
5454 offset = Number(offset) ||
0
5455 var remaining = buf.length - offset
5459 length = Number(length)
5460 if (length
> remaining) {
5465 // must be an even number of digits
5466 var strLen = string.length
5467 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5469 if (length
> strLen /
2) {
5472 for (var i =
0; i < length; ++i) {
5473 var parsed = parseInt(string.substr(i *
2,
2),
16)
5474 if (numberIsNaN(parsed)) return i
5475 buf[offset + i] = parsed
5480 function utf8Write (buf, string, offset, length) {
5481 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5484 function asciiWrite (buf, string, offset, length) {
5485 return blitBuffer(asciiToBytes(string), buf, offset, length)
5488 function latin1Write (buf, string, offset, length) {
5489 return asciiWrite(buf, string, offset, length)
5492 function base64Write (buf, string, offset, length) {
5493 return blitBuffer(base64ToBytes(string), buf, offset, length)
5496 function ucs2Write (buf, string, offset, length) {
5497 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5500 Buffer.prototype.write = function write (string, offset, length, encoding) {
5501 // Buffer#write(string)
5502 if (offset === undefined) {
5504 length = this.length
5506 // Buffer#write(string, encoding)
5507 } else if (length === undefined && typeof offset === 'string') {
5509 length = this.length
5511 // Buffer#write(string, offset[, length][, encoding])
5512 } else if (isFinite(offset)) {
5513 offset = offset
>>> 0
5514 if (isFinite(length)) {
5515 length = length
>>> 0
5516 if (encoding === undefined) encoding = 'utf8'
5523 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5527 var remaining = this.length - offset
5528 if (length === undefined || length
> remaining) length = remaining
5530 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5531 throw new RangeError('Attempt to write outside buffer bounds')
5534 if (!encoding) encoding = 'utf8'
5536 var loweredCase = false
5540 return hexWrite(this, string, offset, length)
5544 return utf8Write(this, string, offset, length)
5547 return asciiWrite(this, string, offset, length)
5551 return latin1Write(this, string, offset, length)
5554 // Warning: maxLength not taken into account in base64Write
5555 return base64Write(this, string, offset, length)
5561 return ucs2Write(this, string, offset, length)
5564 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5565 encoding = ('' + encoding).toLowerCase()
5571 Buffer.prototype.toJSON = function toJSON () {
5574 data: Array.prototype.slice.call(this._arr || this,
0)
5578 function base64Slice (buf, start, end) {
5579 if (start ===
0 && end === buf.length) {
5580 return base64.fromByteArray(buf)
5582 return base64.fromByteArray(buf.slice(start, end))
5586 function utf8Slice (buf, start, end) {
5587 end = Math.min(buf.length, end)
5592 var firstByte = buf[i]
5593 var codePoint = null
5594 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5595 : (firstByte
> 0xDF) ?
3
5596 : (firstByte
> 0xBF) ?
2
5599 if (i + bytesPerSequence <= end) {
5600 var secondByte, thirdByte, fourthByte, tempCodePoint
5602 switch (bytesPerSequence) {
5604 if (firstByte <
0x80) {
5605 codePoint = firstByte
5609 secondByte = buf[i +
1]
5610 if ((secondByte &
0xC0) ===
0x80) {
5611 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5612 if (tempCodePoint
> 0x7F) {
5613 codePoint = tempCodePoint
5618 secondByte = buf[i +
1]
5619 thirdByte = buf[i +
2]
5620 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5621 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5622 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5623 codePoint = tempCodePoint
5628 secondByte = buf[i +
1]
5629 thirdByte = buf[i +
2]
5630 fourthByte = buf[i +
3]
5631 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5632 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5633 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5634 codePoint = tempCodePoint
5640 if (codePoint === null) {
5641 // we did not generate a valid codePoint so insert a
5642 // replacement char (U+FFFD) and advance only
1 byte
5644 bytesPerSequence =
1
5645 } else if (codePoint
> 0xFFFF) {
5646 // encode to utf16 (surrogate pair dance)
5647 codePoint -=
0x10000
5648 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5649 codePoint =
0xDC00 | codePoint &
0x3FF
5653 i += bytesPerSequence
5656 return decodeCodePointsArray(res)
5659 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5660 // the lowest limit is Chrome, with
0x10000 args.
5661 // We go
1 magnitude less, for safety
5662 var MAX_ARGUMENTS_LENGTH =
0x1000
5664 function decodeCodePointsArray (codePoints) {
5665 var len = codePoints.length
5666 if (len <= MAX_ARGUMENTS_LENGTH) {
5667 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5670 // Decode in chunks to avoid
"call stack size exceeded".
5674 res += String.fromCharCode.apply(
5676 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5682 function asciiSlice (buf, start, end) {
5684 end = Math.min(buf.length, end)
5686 for (var i = start; i < end; ++i) {
5687 ret += String.fromCharCode(buf[i] &
0x7F)
5692 function latin1Slice (buf, start, end) {
5694 end = Math.min(buf.length, end)
5696 for (var i = start; i < end; ++i) {
5697 ret += String.fromCharCode(buf[i])
5702 function hexSlice (buf, start, end) {
5703 var len = buf.length
5705 if (!start || start <
0) start =
0
5706 if (!end || end <
0 || end
> len) end = len
5709 for (var i = start; i < end; ++i) {
5710 out += toHex(buf[i])
5715 function utf16leSlice (buf, start, end) {
5716 var bytes = buf.slice(start, end)
5718 for (var i =
0; i < bytes.length; i +=
2) {
5719 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5724 Buffer.prototype.slice = function slice (start, end) {
5725 var len = this.length
5727 end = end === undefined ? len : ~~end
5731 if (start <
0) start =
0
5732 } else if (start
> len) {
5738 if (end <
0) end =
0
5739 } else if (end
> len) {
5743 if (end < start) end = start
5745 var newBuf = this.subarray(start, end)
5746 // Return an augmented `Uint8Array` instance
5747 newBuf.__proto__ = Buffer.prototype
5752 * Need to make sure that buffer isn't trying to write out of bounds.
5754 function checkOffset (offset, ext, length) {
5755 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5756 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5759 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5760 offset = offset
>>> 0
5761 byteLength = byteLength
>>> 0
5762 if (!noAssert) checkOffset(offset, byteLength, this.length)
5764 var val = this[offset]
5767 while (++i < byteLength && (mul *=
0x100)) {
5768 val += this[offset + i] * mul
5774 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5775 offset = offset
>>> 0
5776 byteLength = byteLength
>>> 0
5778 checkOffset(offset, byteLength, this.length)
5781 var val = this[offset + --byteLength]
5783 while (byteLength
> 0 && (mul *=
0x100)) {
5784 val += this[offset + --byteLength] * mul
5790 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5791 offset = offset
>>> 0
5792 if (!noAssert) checkOffset(offset,
1, this.length)
5796 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5797 offset = offset
>>> 0
5798 if (!noAssert) checkOffset(offset,
2, this.length)
5799 return this[offset] | (this[offset +
1] <<
8)
5802 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5803 offset = offset
>>> 0
5804 if (!noAssert) checkOffset(offset,
2, this.length)
5805 return (this[offset] <<
8) | this[offset +
1]
5808 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5809 offset = offset
>>> 0
5810 if (!noAssert) checkOffset(offset,
4, this.length)
5812 return ((this[offset]) |
5813 (this[offset +
1] <<
8) |
5814 (this[offset +
2] <<
16)) +
5815 (this[offset +
3] *
0x1000000)
5818 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5819 offset = offset
>>> 0
5820 if (!noAssert) checkOffset(offset,
4, this.length)
5822 return (this[offset] *
0x1000000) +
5823 ((this[offset +
1] <<
16) |
5824 (this[offset +
2] <<
8) |
5828 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5829 offset = offset
>>> 0
5830 byteLength = byteLength
>>> 0
5831 if (!noAssert) checkOffset(offset, byteLength, this.length)
5833 var val = this[offset]
5836 while (++i < byteLength && (mul *=
0x100)) {
5837 val += this[offset + i] * mul
5841 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5846 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5847 offset = offset
>>> 0
5848 byteLength = byteLength
>>> 0
5849 if (!noAssert) checkOffset(offset, byteLength, this.length)
5853 var val = this[offset + --i]
5854 while (i
> 0 && (mul *=
0x100)) {
5855 val += this[offset + --i] * mul
5859 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5864 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5865 offset = offset
>>> 0
5866 if (!noAssert) checkOffset(offset,
1, this.length)
5867 if (!(this[offset] &
0x80)) return (this[offset])
5868 return ((
0xff - this[offset] +
1) * -
1)
5871 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5872 offset = offset
>>> 0
5873 if (!noAssert) checkOffset(offset,
2, this.length)
5874 var val = this[offset] | (this[offset +
1] <<
8)
5875 return (val &
0x8000) ? val |
0xFFFF0000 : val
5878 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5879 offset = offset
>>> 0
5880 if (!noAssert) checkOffset(offset,
2, this.length)
5881 var val = this[offset +
1] | (this[offset] <<
8)
5882 return (val &
0x8000) ? val |
0xFFFF0000 : val
5885 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5886 offset = offset
>>> 0
5887 if (!noAssert) checkOffset(offset,
4, this.length)
5889 return (this[offset]) |
5890 (this[offset +
1] <<
8) |
5891 (this[offset +
2] <<
16) |
5892 (this[offset +
3] <<
24)
5895 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5896 offset = offset
>>> 0
5897 if (!noAssert) checkOffset(offset,
4, this.length)
5899 return (this[offset] <<
24) |
5900 (this[offset +
1] <<
16) |
5901 (this[offset +
2] <<
8) |
5905 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5906 offset = offset
>>> 0
5907 if (!noAssert) checkOffset(offset,
4, this.length)
5908 return ieee754.read(this, offset, true,
23,
4)
5911 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5912 offset = offset
>>> 0
5913 if (!noAssert) checkOffset(offset,
4, this.length)
5914 return ieee754.read(this, offset, false,
23,
4)
5917 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5918 offset = offset
>>> 0
5919 if (!noAssert) checkOffset(offset,
8, this.length)
5920 return ieee754.read(this, offset, true,
52,
8)
5923 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5924 offset = offset
>>> 0
5925 if (!noAssert) checkOffset(offset,
8, this.length)
5926 return ieee754.read(this, offset, false,
52,
8)
5929 function checkInt (buf, value, offset, ext, max, min) {
5930 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5931 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5932 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5935 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5937 offset = offset
>>> 0
5938 byteLength = byteLength
>>> 0
5940 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5941 checkInt(this, value, offset, byteLength, maxBytes,
0)
5946 this[offset] = value &
0xFF
5947 while (++i < byteLength && (mul *=
0x100)) {
5948 this[offset + i] = (value / mul) &
0xFF
5951 return offset + byteLength
5954 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5956 offset = offset
>>> 0
5957 byteLength = byteLength
>>> 0
5959 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5960 checkInt(this, value, offset, byteLength, maxBytes,
0)
5963 var i = byteLength -
1
5965 this[offset + i] = value &
0xFF
5966 while (--i
>=
0 && (mul *=
0x100)) {
5967 this[offset + i] = (value / mul) &
0xFF
5970 return offset + byteLength
5973 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5975 offset = offset
>>> 0
5976 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5977 this[offset] = (value &
0xff)
5981 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5983 offset = offset
>>> 0
5984 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5985 this[offset] = (value &
0xff)
5986 this[offset +
1] = (value
>>> 8)
5990 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5992 offset = offset
>>> 0
5993 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5994 this[offset] = (value
>>> 8)
5995 this[offset +
1] = (value &
0xff)
5999 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6001 offset = offset
>>> 0
6002 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6003 this[offset +
3] = (value
>>> 24)
6004 this[offset +
2] = (value
>>> 16)
6005 this[offset +
1] = (value
>>> 8)
6006 this[offset] = (value &
0xff)
6010 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6012 offset = offset
>>> 0
6013 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6014 this[offset] = (value
>>> 24)
6015 this[offset +
1] = (value
>>> 16)
6016 this[offset +
2] = (value
>>> 8)
6017 this[offset +
3] = (value &
0xff)
6021 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6023 offset = offset
>>> 0
6025 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6027 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6033 this[offset] = value &
0xFF
6034 while (++i < byteLength && (mul *=
0x100)) {
6035 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6038 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6041 return offset + byteLength
6044 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6046 offset = offset
>>> 0
6048 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6050 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6053 var i = byteLength -
1
6056 this[offset + i] = value &
0xFF
6057 while (--i
>=
0 && (mul *=
0x100)) {
6058 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6061 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6064 return offset + byteLength
6067 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6069 offset = offset
>>> 0
6070 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6071 if (value <
0) value =
0xff + value +
1
6072 this[offset] = (value &
0xff)
6076 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6078 offset = offset
>>> 0
6079 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6080 this[offset] = (value &
0xff)
6081 this[offset +
1] = (value
>>> 8)
6085 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6087 offset = offset
>>> 0
6088 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6089 this[offset] = (value
>>> 8)
6090 this[offset +
1] = (value &
0xff)
6094 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6096 offset = offset
>>> 0
6097 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6098 this[offset] = (value &
0xff)
6099 this[offset +
1] = (value
>>> 8)
6100 this[offset +
2] = (value
>>> 16)
6101 this[offset +
3] = (value
>>> 24)
6105 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6107 offset = offset
>>> 0
6108 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6109 if (value <
0) value =
0xffffffff + value +
1
6110 this[offset] = (value
>>> 24)
6111 this[offset +
1] = (value
>>> 16)
6112 this[offset +
2] = (value
>>> 8)
6113 this[offset +
3] = (value &
0xff)
6117 function checkIEEE754 (buf, value, offset, ext, max, min) {
6118 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6119 if (offset <
0) throw new RangeError('Index out of range')
6122 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6124 offset = offset
>>> 0
6126 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6128 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6132 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6133 return writeFloat(this, value, offset, true, noAssert)
6136 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6137 return writeFloat(this, value, offset, false, noAssert)
6140 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6142 offset = offset
>>> 0
6144 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6146 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6150 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6151 return writeDouble(this, value, offset, true, noAssert)
6154 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6155 return writeDouble(this, value, offset, false, noAssert)
6158 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6159 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6160 if (!start) start =
0
6161 if (!end && end !==
0) end = this.length
6162 if (targetStart
>= target.length) targetStart = target.length
6163 if (!targetStart) targetStart =
0
6164 if (end
> 0 && end < start) end = start
6166 // Copy
0 bytes; we're done
6167 if (end === start) return
0
6168 if (target.length ===
0 || this.length ===
0) return
0
6170 // Fatal error conditions
6171 if (targetStart <
0) {
6172 throw new RangeError('targetStart out of bounds')
6174 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6175 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6178 if (end
> this.length) end = this.length
6179 if (target.length - targetStart < end - start) {
6180 end = target.length - targetStart + start
6183 var len = end - start
6186 if (this === target && start < targetStart && targetStart < end) {
6187 // descending copy from end
6188 for (i = len -
1; i
>=
0; --i) {
6189 target[i + targetStart] = this[i + start]
6191 } else if (len <
1000) {
6192 // ascending copy from start
6193 for (i =
0; i < len; ++i) {
6194 target[i + targetStart] = this[i + start]
6197 Uint8Array.prototype.set.call(
6199 this.subarray(start, start + len),
6208 // buffer.fill(number[, offset[, end]])
6209 // buffer.fill(buffer[, offset[, end]])
6210 // buffer.fill(string[, offset[, end]][, encoding])
6211 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6212 // Handle string cases:
6213 if (typeof val === 'string') {
6214 if (typeof start === 'string') {
6218 } else if (typeof end === 'string') {
6222 if (val.length ===
1) {
6223 var code = val.charCodeAt(
0)
6228 if (encoding !== undefined && typeof encoding !== 'string') {
6229 throw new TypeError('encoding must be a string')
6231 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6232 throw new TypeError('Unknown encoding: ' + encoding)
6234 } else if (typeof val === 'number') {
6238 // Invalid ranges are not set to a default, so can range check early.
6239 if (start <
0 || this.length < start || this.length < end) {
6240 throw new RangeError('Out of range index')
6248 end = end === undefined ? this.length : end
>>> 0
6253 if (typeof val === 'number') {
6254 for (i = start; i < end; ++i) {
6258 var bytes = Buffer.isBuffer(val)
6260 : new Buffer(val, encoding)
6261 var len = bytes.length
6262 for (i =
0; i < end - start; ++i) {
6263 this[i + start] = bytes[i % len]
6273 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6275 function base64clean (str) {
6276 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6277 str = str.trim().replace(INVALID_BASE64_RE, '')
6278 // Node converts strings with length <
2 to ''
6279 if (str.length <
2) return ''
6280 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6281 while (str.length %
4 !==
0) {
6287 function toHex (n) {
6288 if (n <
16) return '
0' + n.toString(
16)
6289 return n.toString(
16)
6292 function utf8ToBytes (string, units) {
6293 units = units || Infinity
6295 var length = string.length
6296 var leadSurrogate = null
6299 for (var i =
0; i < length; ++i) {
6300 codePoint = string.charCodeAt(i)
6302 // is surrogate component
6303 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6304 // last char was a lead
6305 if (!leadSurrogate) {
6307 if (codePoint
> 0xDBFF) {
6309 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6311 } else if (i +
1 === length) {
6313 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6318 leadSurrogate = codePoint
6324 if (codePoint <
0xDC00) {
6325 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6326 leadSurrogate = codePoint
6330 // valid surrogate pair
6331 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6332 } else if (leadSurrogate) {
6333 // valid bmp char, but last char was a lead
6334 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6337 leadSurrogate = null
6340 if (codePoint <
0x80) {
6341 if ((units -=
1) <
0) break
6342 bytes.push(codePoint)
6343 } else if (codePoint <
0x800) {
6344 if ((units -=
2) <
0) break
6346 codePoint
>> 0x6 |
0xC0,
6347 codePoint &
0x3F |
0x80
6349 } else if (codePoint <
0x10000) {
6350 if ((units -=
3) <
0) break
6352 codePoint
>> 0xC |
0xE0,
6353 codePoint
>> 0x6 &
0x3F |
0x80,
6354 codePoint &
0x3F |
0x80
6356 } else if (codePoint <
0x110000) {
6357 if ((units -=
4) <
0) break
6359 codePoint
>> 0x12 |
0xF0,
6360 codePoint
>> 0xC &
0x3F |
0x80,
6361 codePoint
>> 0x6 &
0x3F |
0x80,
6362 codePoint &
0x3F |
0x80
6365 throw new Error('Invalid code point')
6372 function asciiToBytes (str) {
6374 for (var i =
0; i < str.length; ++i) {
6375 // Node's code seems to be doing this and not &
0x7F..
6376 byteArray.push(str.charCodeAt(i) &
0xFF)
6381 function utf16leToBytes (str, units) {
6384 for (var i =
0; i < str.length; ++i) {
6385 if ((units -=
2) <
0) break
6387 c = str.charCodeAt(i)
6397 function base64ToBytes (str) {
6398 return base64.toByteArray(base64clean(str))
6401 function blitBuffer (src, dst, offset, length) {
6402 for (var i =
0; i < length; ++i) {
6403 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6404 dst[i + offset] = src[i]
6409 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6410 function isArrayBufferView (obj) {
6411 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6414 function numberIsNaN (obj) {
6415 return obj !== obj // eslint-disable-line no-self-compare
6418 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6419 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6421 var eLen = nBytes *
8 - mLen -
1
6422 var eMax = (
1 << eLen) -
1
6423 var eBias = eMax
>> 1
6425 var i = isLE ? (nBytes -
1) :
0
6426 var d = isLE ? -
1 :
1
6427 var s = buffer[offset + i]
6431 e = s & ((
1 << (-nBits)) -
1)
6434 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6436 m = e & ((
1 << (-nBits)) -
1)
6439 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6443 } else if (e === eMax) {
6444 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6446 m = m + Math.pow(
2, mLen)
6449 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6452 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6454 var eLen = nBytes *
8 - mLen -
1
6455 var eMax = (
1 << eLen) -
1
6456 var eBias = eMax
>> 1
6457 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6458 var i = isLE ?
0 : (nBytes -
1)
6459 var d = isLE ?
1 : -
1
6460 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6462 value = Math.abs(value)
6464 if (isNaN(value) || value === Infinity) {
6465 m = isNaN(value) ?
1 :
0
6468 e = Math.floor(Math.log(value) / Math.LN2)
6469 if (value * (c = Math.pow(
2, -e)) <
1) {
6473 if (e + eBias
>=
1) {
6476 value += rt * Math.pow(
2,
1 - eBias)
6478 if (value * c
>=
2) {
6483 if (e + eBias
>= eMax) {
6486 } else if (e + eBias
>=
1) {
6487 m = (value * c -
1) * Math.pow(
2, mLen)
6490 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6495 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6499 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6501 buffer[offset + i - d] |= s *
128
6504 },{}],
4:[function(require,module,exports){
6505 window.basex = require('base-x')
6506 },{
"base-x":
5}],
5:[function(require,module,exports){
6508 // Forked from https://github.com/cryptocoinjs/bs58
6509 // Originally written by Mike Hearn for BitcoinJ
6510 // Copyright (c)
2011 Google Inc
6511 // Ported to JavaScript by Stefan Thomas
6512 // Merged Buffer refactorings from base58-native by Stephen Pair
6513 // Copyright (c)
2013 BitPay Inc
6515 var Buffer = require('safe-buffer').Buffer
6517 module.exports = function base (ALPHABET) {
6518 var ALPHABET_MAP = {}
6519 var BASE = ALPHABET.length
6520 var LEADER = ALPHABET.charAt(
0)
6522 // pre-compute lookup table
6523 for (var z =
0; z < ALPHABET.length; z++) {
6524 var x = ALPHABET.charAt(z)
6526 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6530 function encode (source) {
6531 if (source.length ===
0) return ''
6534 for (var i =
0; i < source.length; ++i) {
6535 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6536 carry += digits[j] <<
8
6537 digits[j] = carry % BASE
6538 carry = (carry / BASE) |
0
6542 digits.push(carry % BASE)
6543 carry = (carry / BASE) |
0
6549 // deal with leading zeros
6550 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6551 // convert digits to a string
6552 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6557 function decodeUnsafe (string) {
6558 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6561 for (var i =
0; i < string.length; i++) {
6562 var value = ALPHABET_MAP[string[i]]
6563 if (value === undefined) return
6565 for (var j =
0, carry = value; j < bytes.length; ++j) {
6566 carry += bytes[j] * BASE
6567 bytes[j] = carry &
0xff
6572 bytes.push(carry &
0xff)
6577 // deal with leading zeros
6578 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6582 return Buffer.from(bytes.reverse())
6585 function decode (string) {
6586 var buffer = decodeUnsafe(string)
6587 if (buffer) return buffer
6589 throw new Error('Non-base' + BASE + ' character')
6594 decodeUnsafe: decodeUnsafe,
6599 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6600 module.exports = require('buffer')
6602 },{"buffer":
2}]},{},[
4])(
4)
6604 <script>(function (root) {
6607 /***** unorm.js *****/
6610 * UnicodeNormalizer
1.0.0
6611 * Copyright (c)
2008 Matsuza
6612 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6613 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6617 var DEFAULT_FEATURE = [null,
0, {}];
6618 var CACHE_THRESHOLD =
10;
6619 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6620 var NCount = VCount * TCount; //
588
6621 var SCount = LCount * NCount; //
11172
6623 var UChar = function(cp, feature){
6624 this.codepoint = cp;
6625 this.feature = feature;
6630 var cacheCounter = [];
6631 for (var i =
0; i <=
0xFF; ++i){
6632 cacheCounter[i] =
0;
6635 function fromCache(next, cp, needFeature){
6636 var ret = cache[cp];
6638 ret = next(cp, needFeature);
6639 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6646 function fromData(next, cp, needFeature){
6647 var hash = cp &
0xFF00;
6648 var dunit = UChar.udata[hash] || {};
6650 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6652 function fromCpOnly(next, cp, needFeature){
6653 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6655 function fromRuleBasedJamo(next, cp, needFeature){
6657 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6658 return next(cp, needFeature);
6660 if(LBase <= cp && cp < LBase + LCount){
6662 var base = (cp - LBase) * VCount;
6663 for (j =
0; j < VCount; ++j){
6664 c[VBase + j] = SBase + TCount * (j + base);
6666 return new UChar(cp, [,,c]);
6669 var SIndex = cp - SBase;
6670 var TIndex = SIndex % TCount;
6673 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6675 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6677 for (j =
1; j < TCount; ++j){
6678 feature[
2][TBase + j] = cp + j;
6681 return new UChar(cp, feature);
6683 function fromCpFilter(next, cp, needFeature){
6684 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6687 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6689 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6690 return function (cp, needFeature) {
6691 return strategy(next, cp, needFeature);
6695 UChar.isHighSurrogate = function(cp){
6696 return cp
>=
0xD800 && cp <=
0xDBFF;
6698 UChar.isLowSurrogate = function(cp){
6699 return cp
>=
0xDC00 && cp <=
0xDFFF;
6702 UChar.prototype.prepFeature = function(){
6704 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6708 UChar.prototype.toString = function(){
6709 if(this.codepoint <
0x10000){
6710 return String.fromCharCode(this.codepoint);
6712 var x = this.codepoint -
0x10000;
6713 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6717 UChar.prototype.getDecomp = function(){
6719 return this.feature[
0] || null;
6722 UChar.prototype.isCompatibility = function(){
6724 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6726 UChar.prototype.isExclude = function(){
6728 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6730 UChar.prototype.getCanonicalClass = function(){
6732 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6734 UChar.prototype.getComposite = function(following){
6736 if(!this.feature[
2]){
6739 var cp = this.feature[
2][following.codepoint];
6740 return cp ? UChar.fromCharCode(cp) : null;
6743 var UCharIterator = function(str){
6747 UCharIterator.prototype.next = function(){
6748 if(!!this.str && this.cursor < this.str.length){
6749 var cp = this.str.charCodeAt(this.cursor++);
6751 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6752 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6755 return UChar.fromCharCode(cp);
6762 var RecursDecompIterator = function(it, cano){
6764 this.canonical = cano;
6768 RecursDecompIterator.prototype.next = function(){
6769 function recursiveDecomp(cano, uchar){
6770 var decomp = uchar.getDecomp();
6771 if(!!decomp && !(cano && uchar.isCompatibility())){
6773 for(var i =
0; i < decomp.length; ++i){
6774 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6775 ret = ret.concat(a);
6782 if(this.resBuf.length ===
0){
6783 var uchar = this.it.next();
6787 this.resBuf = recursiveDecomp(this.canonical, uchar);
6789 return this.resBuf.shift();
6792 var DecompIterator = function(it){
6797 DecompIterator.prototype.next = function(){
6799 if(this.resBuf.length ===
0){
6801 var uchar = this.it.next();
6805 cc = uchar.getCanonicalClass();
6806 var inspt = this.resBuf.length;
6808 for(; inspt
> 0; --inspt){
6809 var uchar2 = this.resBuf[inspt -
1];
6810 var cc2 = uchar2.getCanonicalClass();
6816 this.resBuf.splice(inspt,
0, uchar);
6819 return this.resBuf.shift();
6822 var CompIterator = function(it){
6826 this.lastClass = null;
6829 CompIterator.prototype.next = function(){
6830 while(this.resBuf.length ===
0){
6831 var uchar = this.it.next();
6833 this.resBuf = this.procBuf;
6837 if(this.procBuf.length ===
0){
6838 this.lastClass = uchar.getCanonicalClass();
6839 this.procBuf.push(uchar);
6841 var starter = this.procBuf[
0];
6842 var composite = starter.getComposite(uchar);
6843 var cc = uchar.getCanonicalClass();
6844 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6845 this.procBuf[
0] = composite;
6848 this.resBuf = this.procBuf;
6851 this.lastClass = cc;
6852 this.procBuf.push(uchar);
6856 return this.resBuf.shift();
6859 var createIterator = function(mode, str){
6862 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6864 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6866 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6868 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6870 throw mode +
" is invalid";
6872 var normalize = function(mode, str){
6873 var it = createIterator(mode, str);
6876 while(!!(uchar = it.next())){
6877 ret += uchar.toString();
6884 return normalize(
"NFD", str);
6888 return normalize(
"NFKD", str);
6892 return normalize(
"NFC", str);
6896 return normalize(
"NFKC", str);
6901 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]]},
6902 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]},
6903 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]},
6904 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]},
6905 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]]},
6906 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]},
6907 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]},
6908 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]},
6909 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]},
6910 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]},
6911 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]},
6912 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]},
6913 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]},
6914 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]]},
6915 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]},
6916 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]},
6917 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]},
6918 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]},
6919 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6920 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]},
6921 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6922 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6923 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6924 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6926 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6927 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]},
6928 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]},
6929 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]},
6930 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]},
6931 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]]},
6932 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}]},
6933 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]},
6934 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}]},
6935 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]]},
6936 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6937 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]},
6938 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]},
6939 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6940 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]},
6941 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6942 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]},
6943 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]},
6944 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]},
6945 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]},
6946 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]},
6947 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6948 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6949 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]},
6950 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6951 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]},
6952 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6953 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6954 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6955 48128:{
113822:[,
1]},
6956 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]},
6957 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6958 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]},
6959 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]},
6960 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]},
6961 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]},
6962 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6963 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]},
6964 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]},
6965 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]},
6966 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]]},
6967 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]]},
6968 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]]},
6969 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]},
6970 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]},
6971 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]},
6972 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]},
6973 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]}
6977 /***** Module to export */
6985 /*globals module:true,define:true*/
6988 if (typeof module ===
"object") {
6989 module.exports = unorm;
6992 } else if (typeof define ===
"function" && define.amd) {
6993 define(
"unorm", function () {
7002 /***** Export as shim for String::normalize method *****/
7004 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7006 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7007 When the normalize method is called with one argument form, the following steps are taken:
7009 1. Let O be CheckObjectCoercible(this value).
7010 2. Let S be ToString(O).
7011 3. ReturnIfAbrupt(S).
7012 4. If form is not provided or undefined let form be
"NFC".
7013 5. Let f be ToString(form).
7014 6. ReturnIfAbrupt(f).
7015 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7016 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.
7019 The length property of the normalize method is
0.
7021 *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.
7023 unorm.shimApplied = false;
7025 if (!String.prototype.normalize) {
7026 String.prototype.normalize = function(form) {
7027 var str =
"" + this;
7028 form = form === undefined ?
"NFC" : form;
7030 if (form ===
"NFC") {
7031 return unorm.nfc(str);
7032 } else if (form ===
"NFD") {
7033 return unorm.nfd(str);
7034 } else if (form ===
"NFKC") {
7035 return unorm.nfkc(str);
7036 } else if (form ===
"NFKD") {
7037 return unorm.nfkd(str);
7039 throw new RangeError(
"Invalid normalization form: " + form);
7043 unorm.shimApplied = true;
7047 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7048 !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)
7049 },_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))
7050 },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});
7053 * Bootstrap v3.2.0 (http://getbootstrap.com)
7054 * Copyright 2011-2014 Twitter, Inc.
7055 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7057 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>
7058 <script>(function() {
7062 * Extend an Object with another Object's properties.
7064 * The source objects are specified as additional arguments.
7066 * @param dst Object the object to extend.
7068 * @return Object the final object.
7070 var _extend = function(dst) {
7071 var sources = Array.prototype.slice.call(arguments,
1);
7072 for (var i=
0; i
<sources.length; ++i) {
7073 var src = sources[i];
7074 for (var p in src) {
7075 if (src.hasOwnProperty(p)) dst[p] = src[p];
7083 * Defer execution of given function.
7084 * @param {Function} func
7086 var _defer = function(func) {
7087 if (typeof setImmediate === 'function') {
7088 return setImmediate(func);
7090 return setTimeout(func,
0);
7095 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7099 * Calculate levenshtein distance of the two strings.
7101 * @param str1 String the first string.
7102 * @param str2 String the second string.
7103 * @return Integer the levenshtein distance (
0 and above).
7105 get: function(str1, str2) {
7107 if (str1 === str2) return
0;
7108 if (str1.length ===
0) return str2.length;
7109 if (str2.length ===
0) return str1.length;
7112 var prevRow = new Array(str2.length +
1),
7113 curCol, nextCol, i, j, tmp;
7115 // initialise previous row
7116 for (i=
0; i
<prevRow.length; ++i) {
7120 // calculate current row distance from previous row
7121 for (i=
0; i
<str1.length; ++i) {
7124 for (j=
0; j
<str2.length; ++j) {
7128 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7131 if (nextCol
> tmp) {
7135 tmp = prevRow[j +
1] +
1;
7136 if (nextCol
> tmp) {
7140 // copy current col value into previous (in preparation for next iteration)
7141 prevRow[j] = curCol;
7144 // copy last col value into previous (in preparation for next iteration)
7145 prevRow[j] = nextCol;
7152 * Asynchronously calculate levenshtein distance of the two strings.
7154 * @param str1 String the first string.
7155 * @param str2 String the second string.
7156 * @param cb Function callback function with signature: function(Error err, int distance)
7157 * @param [options] Object additional options.
7158 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7160 getAsync: function(str1, str2, cb, options) {
7161 options = _extend({}, {
7166 if (str1 === str2) return cb(null,
0);
7167 if (str1.length ===
0) return cb(null, str2.length);
7168 if (str2.length ===
0) return cb(null, str1.length);
7171 var prevRow = new Array(str2.length +
1),
7174 startTime, currentTime;
7176 // initialise previous row
7177 for (i=
0; i
<prevRow.length; ++i) {
7185 var __calculate = function() {
7187 startTime = new Date().valueOf();
7188 currentTime = startTime;
7190 // keep going until one second has elapsed
7191 while (currentTime - startTime <
1000) {
7192 // reached end of current row?
7193 if (str2.length <= (++j)) {
7194 // copy current into previous (in preparation for next iteration)
7195 prevRow[j] = nextCol;
7197 // if already done all chars
7198 if (str1.length <= (++i)) {
7199 return cb(null, nextCol);
7201 // else if we have more left to do
7212 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7215 if (nextCol
> tmp) {
7219 tmp = prevRow[j +
1] +
1;
7220 if (nextCol
> tmp) {
7224 // copy current into previous (in preparation for next iteration)
7225 prevRow[j] = curCol;
7228 currentTime = new Date().valueOf();
7231 // send a progress update?
7232 if (null !== options.progress) {
7234 options.progress.call(null, (i *
100.0/ str1.length));
7236 return cb('Progress callback: ' + err.toString());
7241 _defer(__calculate);
7250 if (typeof define !== "undefined" && define !== null && define.amd) {
7256 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7257 module.exports = Levenshtein;
7260 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7261 self.Levenshtein = Levenshtein;
7263 // browser main thread
7264 else if (typeof window !== "undefined" && window !== null) {
7265 window.Levenshtein = Levenshtein;
7270 <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},
7271 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;
7272 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-
7273 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]=
7274 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},
7275 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=
7276 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-
7277 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,
7278 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=
7279 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&&
7280 (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,
7281 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)-
7282 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:"+
7283 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:"+
7284 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+
7285 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),
7286 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>
7287 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],
7288 [
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,
7289 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,
7290 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,
7291 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,
7292 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,
7293 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*
7294 (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,
7295 correctLevel:
3,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),
7296 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",
7297 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7299 <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){
7303 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7307 * The buffer module from node.js, for the browser.
7309 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7312 function compare(a, b) {
7320 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7321 if (a[i] !== b[i]) {
7336 function isBuffer(b) {
7337 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7338 return global.Buffer.isBuffer(b);
7340 return !!(b != null && b._isBuffer);
7343 // based on node assert, original notice:
7345 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7347 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7349 // Originally from narwhal.js (http://narwhaljs.org)
7350 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7352 // Permission is hereby granted, free of charge, to any person obtaining a copy
7353 // of this software and associated documentation files (the 'Software'), to
7354 // deal in the Software without restriction, including without limitation the
7355 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7356 // sell copies of the Software, and to permit persons to whom the Software is
7357 // furnished to do so, subject to the following conditions:
7359 // The above copyright notice and this permission notice shall be included in
7360 // all copies or substantial portions of the Software.
7362 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7363 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7364 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7365 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7366 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7367 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7369 var util = require('util/');
7370 var hasOwn = Object.prototype.hasOwnProperty;
7371 var pSlice = Array.prototype.slice;
7372 var functionsHaveNames = (function () {
7373 return function foo() {}.name === 'foo';
7375 function pToString (obj) {
7376 return Object.prototype.toString.call(obj);
7378 function isView(arrbuf) {
7379 if (isBuffer(arrbuf)) {
7382 if (typeof global.ArrayBuffer !== 'function') {
7385 if (typeof ArrayBuffer.isView === 'function') {
7386 return ArrayBuffer.isView(arrbuf);
7391 if (arrbuf instanceof DataView) {
7394 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7399 //
1. The assert module provides functions that throw
7400 // AssertionError's when particular conditions are not met. The
7401 // assert module must conform to the following interface.
7403 var assert = module.exports = ok;
7405 //
2. The AssertionError is defined in assert.
7406 // new assert.AssertionError({ message: message,
7408 // expected: expected })
7410 var regex = /\s*function\s+([^\(\s]*)\s*/;
7411 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7412 function getName(func) {
7413 if (!util.isFunction(func)) {
7416 if (functionsHaveNames) {
7419 var str = func.toString();
7420 var match = str.match(regex);
7421 return match && match[
1];
7423 assert.AssertionError = function AssertionError(options) {
7424 this.name = 'AssertionError';
7425 this.actual = options.actual;
7426 this.expected = options.expected;
7427 this.operator = options.operator;
7428 if (options.message) {
7429 this.message = options.message;
7430 this.generatedMessage = false;
7432 this.message = getMessage(this);
7433 this.generatedMessage = true;
7435 var stackStartFunction = options.stackStartFunction || fail;
7436 if (Error.captureStackTrace) {
7437 Error.captureStackTrace(this, stackStartFunction);
7439 // non v8 browsers so we can have a stacktrace
7440 var err = new Error();
7442 var out = err.stack;
7444 // try to strip useless frames
7445 var fn_name = getName(stackStartFunction);
7446 var idx = out.indexOf('\n' + fn_name);
7448 // once we have located the function frame
7449 // we need to strip out everything before it (and its line)
7450 var next_line = out.indexOf('\n', idx +
1);
7451 out = out.substring(next_line +
1);
7459 // assert.AssertionError instanceof Error
7460 util.inherits(assert.AssertionError, Error);
7462 function truncate(s, n) {
7463 if (typeof s === 'string') {
7464 return s.length < n ? s : s.slice(
0, n);
7469 function inspect(something) {
7470 if (functionsHaveNames || !util.isFunction(something)) {
7471 return util.inspect(something);
7473 var rawname = getName(something);
7474 var name = rawname ? ': ' + rawname : '';
7475 return '[Function' + name + ']';
7477 function getMessage(self) {
7478 return truncate(inspect(self.actual),
128) + ' ' +
7479 self.operator + ' ' +
7480 truncate(inspect(self.expected),
128);
7483 // At present only the three keys mentioned above are used and
7484 // understood by the spec. Implementations or sub modules can pass
7485 // other keys to the AssertionError's constructor - they will be
7488 //
3. All of the following functions must throw an AssertionError
7489 // when a corresponding condition is not met, with a message that
7490 // may be undefined if not provided. All assertion methods provide
7491 // both the actual and expected values to the assertion error for
7492 // display purposes.
7494 function fail(actual, expected, message, operator, stackStartFunction) {
7495 throw new assert.AssertionError({
7500 stackStartFunction: stackStartFunction
7504 // EXTENSION! allows for well behaved errors defined elsewhere.
7507 //
4. Pure assertion tests whether a value is truthy, as determined
7509 // assert.ok(guard, message_opt);
7510 // This statement is equivalent to assert.equal(true, !!guard,
7511 // message_opt);. To test strictly for the value true, use
7512 // assert.strictEqual(true, guard, message_opt);.
7514 function ok(value, message) {
7515 if (!value) fail(value, true, message, '==', assert.ok);
7519 //
5. The equality assertion tests shallow, coercive equality with
7521 // assert.equal(actual, expected, message_opt);
7523 assert.equal = function equal(actual, expected, message) {
7524 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7527 //
6. The non-equality assertion tests for whether two objects are not equal
7528 // with != assert.notEqual(actual, expected, message_opt);
7530 assert.notEqual = function notEqual(actual, expected, message) {
7531 if (actual == expected) {
7532 fail(actual, expected, message, '!=', assert.notEqual);
7536 //
7. The equivalence assertion tests a deep equality relation.
7537 // assert.deepEqual(actual, expected, message_opt);
7539 assert.deepEqual = function deepEqual(actual, expected, message) {
7540 if (!_deepEqual(actual, expected, false)) {
7541 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7545 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7546 if (!_deepEqual(actual, expected, true)) {
7547 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7551 function _deepEqual(actual, expected, strict, memos) {
7552 //
7.1. All identical values are equivalent, as determined by ===.
7553 if (actual === expected) {
7555 } else if (isBuffer(actual) && isBuffer(expected)) {
7556 return compare(actual, expected) ===
0;
7558 //
7.2. If the expected value is a Date object, the actual value is
7559 // equivalent if it is also a Date object that refers to the same time.
7560 } else if (util.isDate(actual) && util.isDate(expected)) {
7561 return actual.getTime() === expected.getTime();
7563 //
7.3 If the expected value is a RegExp object, the actual value is
7564 // equivalent if it is also a RegExp object with the same source and
7565 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7566 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7567 return actual.source === expected.source &&
7568 actual.global === expected.global &&
7569 actual.multiline === expected.multiline &&
7570 actual.lastIndex === expected.lastIndex &&
7571 actual.ignoreCase === expected.ignoreCase;
7573 //
7.4. Other pairs that do not both pass typeof value == 'object',
7574 // equivalence is determined by ==.
7575 } else if ((actual === null || typeof actual !== 'object') &&
7576 (expected === null || typeof expected !== 'object')) {
7577 return strict ? actual === expected : actual == expected;
7579 // If both values are instances of typed arrays, wrap their underlying
7580 // ArrayBuffers in a Buffer each to increase performance
7581 // This optimization requires the arrays to have the same type as checked by
7582 // Object.prototype.toString (aka pToString). Never perform binary
7583 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7584 // bit patterns are not identical.
7585 } else if (isView(actual) && isView(expected) &&
7586 pToString(actual) === pToString(expected) &&
7587 !(actual instanceof Float32Array ||
7588 actual instanceof Float64Array)) {
7589 return compare(new Uint8Array(actual.buffer),
7590 new Uint8Array(expected.buffer)) ===
0;
7592 //
7.5 For all other Object pairs, including Array objects, equivalence is
7593 // determined by having the same number of owned properties (as verified
7594 // with Object.prototype.hasOwnProperty.call), the same set of keys
7595 // (although not necessarily the same order), equivalent values for every
7596 // corresponding key, and an identical 'prototype' property. Note: this
7597 // accounts for both named and indexed properties on Arrays.
7598 } else if (isBuffer(actual) !== isBuffer(expected)) {
7601 memos = memos || {actual: [], expected: []};
7603 var actualIndex = memos.actual.indexOf(actual);
7604 if (actualIndex !== -
1) {
7605 if (actualIndex === memos.expected.indexOf(expected)) {
7610 memos.actual.push(actual);
7611 memos.expected.push(expected);
7613 return objEquiv(actual, expected, strict, memos);
7617 function isArguments(object) {
7618 return Object.prototype.toString.call(object) == '[object Arguments]';
7621 function objEquiv(a, b, strict, actualVisitedObjects) {
7622 if (a === null || a === undefined || b === null || b === undefined)
7624 // if one is a primitive, the other must be same
7625 if (util.isPrimitive(a) || util.isPrimitive(b))
7627 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7629 var aIsArgs = isArguments(a);
7630 var bIsArgs = isArguments(b);
7631 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7636 return _deepEqual(a, b, strict);
7638 var ka = objectKeys(a);
7639 var kb = objectKeys(b);
7641 // having the same number of owned properties (keys incorporates
7643 if (ka.length !== kb.length)
7645 //the same set of keys (although not necessarily the same order),
7649 for (i = ka.length -
1; i
>=
0; i--) {
7650 if (ka[i] !== kb[i])
7653 //equivalent values for every corresponding key, and
7654 //~~~possibly expensive deep test
7655 for (i = ka.length -
1; i
>=
0; i--) {
7657 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7663 //
8. The non-equivalence assertion tests for any deep inequality.
7664 // assert.notDeepEqual(actual, expected, message_opt);
7666 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7667 if (_deepEqual(actual, expected, false)) {
7668 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7672 assert.notDeepStrictEqual = notDeepStrictEqual;
7673 function notDeepStrictEqual(actual, expected, message) {
7674 if (_deepEqual(actual, expected, true)) {
7675 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7680 //
9. The strict equality assertion tests strict equality, as determined by ===.
7681 // assert.strictEqual(actual, expected, message_opt);
7683 assert.strictEqual = function strictEqual(actual, expected, message) {
7684 if (actual !== expected) {
7685 fail(actual, expected, message, '===', assert.strictEqual);
7689 //
10. The strict non-equality assertion tests for strict inequality, as
7690 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7692 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7693 if (actual === expected) {
7694 fail(actual, expected, message, '!==', assert.notStrictEqual);
7698 function expectedException(actual, expected) {
7699 if (!actual || !expected) {
7703 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7704 return expected.test(actual);
7708 if (actual instanceof expected) {
7712 // Ignore. The instanceof check doesn't work for arrow functions.
7715 if (Error.isPrototypeOf(expected)) {
7719 return expected.call({}, actual) === true;
7722 function _tryBlock(block) {
7732 function _throws(shouldThrow, block, expected, message) {
7735 if (typeof block !== 'function') {
7736 throw new TypeError('"block" argument must be a function');
7739 if (typeof expected === 'string') {
7744 actual = _tryBlock(block);
7746 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7747 (message ? ' ' + message : '.');
7749 if (shouldThrow && !actual) {
7750 fail(actual, expected, 'Missing expected exception' + message);
7753 var userProvidedMessage = typeof message === 'string';
7754 var isUnwantedException = !shouldThrow && util.isError(actual);
7755 var isUnexpectedException = !shouldThrow && actual && !expected;
7757 if ((isUnwantedException &&
7758 userProvidedMessage &&
7759 expectedException(actual, expected)) ||
7760 isUnexpectedException) {
7761 fail(actual, expected, 'Got unwanted exception' + message);
7764 if ((shouldThrow && actual && expected &&
7765 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7770 //
11. Expected to throw an error:
7771 // assert.throws(block, Error_opt, message_opt);
7773 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7774 _throws(true, block, error, message);
7777 // EXTENSION! This is annoying to write outside this module.
7778 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7779 _throws(false, block, error, message);
7782 assert.ifError = function(err) { if (err) throw err; };
7784 var objectKeys = Object.keys || function (obj) {
7786 for (var key in obj) {
7787 if (hasOwn.call(obj, key)) keys.push(key);
7792 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7793 },{"util/":
32}],
2:[function(require,module,exports){
7796 exports.byteLength = byteLength
7797 exports.toByteArray = toByteArray
7798 exports.fromByteArray = fromByteArray
7802 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7804 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7805 for (var i =
0, len = code.length; i < len; ++i) {
7807 revLookup[code.charCodeAt(i)] = i
7810 revLookup['-'.charCodeAt(
0)] =
62
7811 revLookup['_'.charCodeAt(
0)] =
63
7813 function placeHoldersCount (b64) {
7814 var len = b64.length
7816 throw new Error('Invalid string. Length must be a multiple of
4')
7819 // the number of equal signs (place holders)
7820 // if there are two placeholders, than the two characters before it
7821 // represent one byte
7822 // if there is only one, then the three characters before it represent
2 bytes
7823 // this is just a cheap hack to not do indexOf twice
7824 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7827 function byteLength (b64) {
7828 // base64 is
4/
3 + up to two characters of the original data
7829 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7832 function toByteArray (b64) {
7833 var i, l, tmp, placeHolders, arr
7834 var len = b64.length
7835 placeHolders = placeHoldersCount(b64)
7837 arr = new Arr((len *
3 /
4) - placeHolders)
7839 // if there are placeholders, only get up to the last complete
4 chars
7840 l = placeHolders
> 0 ? len -
4 : len
7844 for (i =
0; i < l; i +=
4) {
7845 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7846 arr[L++] = (tmp
>> 16) &
0xFF
7847 arr[L++] = (tmp
>> 8) &
0xFF
7848 arr[L++] = tmp &
0xFF
7851 if (placeHolders ===
2) {
7852 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7853 arr[L++] = tmp &
0xFF
7854 } else if (placeHolders ===
1) {
7855 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7856 arr[L++] = (tmp
>> 8) &
0xFF
7857 arr[L++] = tmp &
0xFF
7863 function tripletToBase64 (num) {
7864 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7867 function encodeChunk (uint8, start, end) {
7870 for (var i = start; i < end; i +=
3) {
7871 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7872 output.push(tripletToBase64(tmp))
7874 return output.join('')
7877 function fromByteArray (uint8) {
7879 var len = uint8.length
7880 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7883 var maxChunkLength =
16383 // must be multiple of
3
7885 // go through the array every three bytes, we'll deal with trailing stuff later
7886 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7887 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7890 // pad the end with zeros, but make sure to not forget the extra bytes
7891 if (extraBytes ===
1) {
7892 tmp = uint8[len -
1]
7893 output += lookup[tmp
>> 2]
7894 output += lookup[(tmp <<
4) &
0x3F]
7896 } else if (extraBytes ===
2) {
7897 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7898 output += lookup[tmp
>> 10]
7899 output += lookup[(tmp
>> 4) &
0x3F]
7900 output += lookup[(tmp <<
2) &
0x3F]
7906 return parts.join('')
7909 },{}],
3:[function(require,module,exports){
7911 },{}],
4:[function(require,module,exports){
7913 * The buffer module from node.js, for the browser.
7915 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7918 /* eslint-disable no-proto */
7922 var base64 = require('base64-js')
7923 var ieee754 = require('ieee754')
7925 exports.Buffer = Buffer
7926 exports.SlowBuffer = SlowBuffer
7927 exports.INSPECT_MAX_BYTES =
50
7929 var K_MAX_LENGTH =
0x7fffffff
7930 exports.kMaxLength = K_MAX_LENGTH
7933 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7934 * === true Use Uint8Array implementation (fastest)
7935 * === false Print warning and recommend using `buffer` v4.x which has an Object
7936 * implementation (most compatible, even IE6)
7938 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7939 * Opera
11.6+, iOS
4.2+.
7941 * We report that the browser does not support typed arrays if the are not subclassable
7942 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7943 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7944 * for __proto__ and has a buggy typed array implementation.
7946 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7948 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7949 typeof console.error === 'function') {
7951 'This browser lacks typed array (Uint8Array) support which is required by ' +
7952 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7956 function typedArraySupport () {
7957 // Can typed array instances can be augmented?
7959 var arr = new Uint8Array(
1)
7960 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7961 return arr.foo() ===
42
7967 function createBuffer (length) {
7968 if (length
> K_MAX_LENGTH) {
7969 throw new RangeError('Invalid typed array length')
7971 // Return an augmented `Uint8Array` instance
7972 var buf = new Uint8Array(length)
7973 buf.__proto__ = Buffer.prototype
7978 * The Buffer constructor returns instances of `Uint8Array` that have their
7979 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
7980 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
7981 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
7982 * returns a single octet.
7984 * The `Uint8Array` prototype remains unmodified.
7987 function Buffer (arg, encodingOrOffset, length) {
7989 if (typeof arg === 'number') {
7990 if (typeof encodingOrOffset === 'string') {
7992 'If encoding is specified then the first argument must be a string'
7995 return allocUnsafe(arg)
7997 return from(arg, encodingOrOffset, length)
8000 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
8001 if (typeof Symbol !== 'undefined' && Symbol.species &&
8002 Buffer[Symbol.species] === Buffer) {
8003 Object.defineProperty(Buffer, Symbol.species, {
8011 Buffer.poolSize =
8192 // not used by this implementation
8013 function from (value, encodingOrOffset, length) {
8014 if (typeof value === 'number') {
8015 throw new TypeError('"value" argument must not be a number')
8018 if (value instanceof ArrayBuffer) {
8019 return fromArrayBuffer(value, encodingOrOffset, length)
8022 if (typeof value === 'string') {
8023 return fromString(value, encodingOrOffset)
8026 return fromObject(value)
8030 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8031 * if value is a number.
8032 * Buffer.from(str[, encoding])
8033 * Buffer.from(array)
8034 * Buffer.from(buffer)
8035 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8037 Buffer.from = function (value, encodingOrOffset, length) {
8038 return from(value, encodingOrOffset, length)
8041 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8042 // https://github.com/feross/buffer/pull/
148
8043 Buffer.prototype.__proto__ = Uint8Array.prototype
8044 Buffer.__proto__ = Uint8Array
8046 function assertSize (size) {
8047 if (typeof size !== 'number') {
8048 throw new TypeError('"size" argument must be a number')
8049 } else if (size <
0) {
8050 throw new RangeError('"size" argument must not be negative')
8054 function alloc (size, fill, encoding) {
8057 return createBuffer(size)
8059 if (fill !== undefined) {
8060 // Only pay attention to encoding if it's a string. This
8061 // prevents accidentally sending in a number that would
8062 // be interpretted as a start offset.
8063 return typeof encoding === 'string'
8064 ? createBuffer(size).fill(fill, encoding)
8065 : createBuffer(size).fill(fill)
8067 return createBuffer(size)
8071 * Creates a new filled Buffer instance.
8072 * alloc(size[, fill[, encoding]])
8074 Buffer.alloc = function (size, fill, encoding) {
8075 return alloc(size, fill, encoding)
8078 function allocUnsafe (size) {
8080 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8084 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8086 Buffer.allocUnsafe = function (size) {
8087 return allocUnsafe(size)
8090 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8092 Buffer.allocUnsafeSlow = function (size) {
8093 return allocUnsafe(size)
8096 function fromString (string, encoding) {
8097 if (typeof encoding !== 'string' || encoding === '') {
8101 if (!Buffer.isEncoding(encoding)) {
8102 throw new TypeError('"encoding" must be a valid string encoding')
8105 var length = byteLength(string, encoding) |
0
8106 var buf = createBuffer(length)
8108 var actual = buf.write(string, encoding)
8110 if (actual !== length) {
8111 // Writing a hex string, for example, that contains invalid characters will
8112 // cause everything after the first invalid character to be ignored. (e.g.
8113 // 'abxxcd' will be treated as 'ab')
8114 buf = buf.slice(
0, actual)
8120 function fromArrayLike (array) {
8121 var length = array.length <
0 ?
0 : checked(array.length) |
0
8122 var buf = createBuffer(length)
8123 for (var i =
0; i < length; i +=
1) {
8124 buf[i] = array[i] &
255
8129 function fromArrayBuffer (array, byteOffset, length) {
8130 if (byteOffset <
0 || array.byteLength < byteOffset) {
8131 throw new RangeError('\'offset\' is out of bounds')
8134 if (array.byteLength < byteOffset + (length ||
0)) {
8135 throw new RangeError('\'length\' is out of bounds')
8139 if (byteOffset === undefined && length === undefined) {
8140 buf = new Uint8Array(array)
8141 } else if (length === undefined) {
8142 buf = new Uint8Array(array, byteOffset)
8144 buf = new Uint8Array(array, byteOffset, length)
8147 // Return an augmented `Uint8Array` instance
8148 buf.__proto__ = Buffer.prototype
8152 function fromObject (obj) {
8153 if (Buffer.isBuffer(obj)) {
8154 var len = checked(obj.length) |
0
8155 var buf = createBuffer(len)
8157 if (buf.length ===
0) {
8161 obj.copy(buf,
0,
0, len)
8166 if (isArrayBufferView(obj) || 'length' in obj) {
8167 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8168 return createBuffer(
0)
8170 return fromArrayLike(obj)
8173 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8174 return fromArrayLike(obj.data)
8178 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8181 function checked (length) {
8182 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8183 // length is NaN (which is otherwise coerced to zero.)
8184 if (length
>= K_MAX_LENGTH) {
8185 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8186 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8191 function SlowBuffer (length) {
8192 if (+length != length) { // eslint-disable-line eqeqeq
8195 return Buffer.alloc(+length)
8198 Buffer.isBuffer = function isBuffer (b) {
8199 return b != null && b._isBuffer === true
8202 Buffer.compare = function compare (a, b) {
8203 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8204 throw new TypeError('Arguments must be Buffers')
8207 if (a === b) return
0
8212 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8213 if (a[i] !== b[i]) {
8220 if (x < y) return -
1
8225 Buffer.isEncoding = function isEncoding (encoding) {
8226 switch (String(encoding).toLowerCase()) {
8244 Buffer.concat = function concat (list, length) {
8245 if (!Array.isArray(list)) {
8246 throw new TypeError('"list" argument must be an Array of Buffers')
8249 if (list.length ===
0) {
8250 return Buffer.alloc(
0)
8254 if (length === undefined) {
8256 for (i =
0; i < list.length; ++i) {
8257 length += list[i].length
8261 var buffer = Buffer.allocUnsafe(length)
8263 for (i =
0; i < list.length; ++i) {
8265 if (!Buffer.isBuffer(buf)) {
8266 throw new TypeError('"list" argument must be an Array of Buffers')
8268 buf.copy(buffer, pos)
8274 function byteLength (string, encoding) {
8275 if (Buffer.isBuffer(string)) {
8276 return string.length
8278 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8279 return string.byteLength
8281 if (typeof string !== 'string') {
8282 string = '' + string
8285 var len = string.length
8286 if (len ===
0) return
0
8288 // Use a for loop to avoid recursion
8289 var loweredCase = false
8299 return utf8ToBytes(string).length
8308 return base64ToBytes(string).length
8310 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8311 encoding = ('' + encoding).toLowerCase()
8316 Buffer.byteLength = byteLength
8318 function slowToString (encoding, start, end) {
8319 var loweredCase = false
8321 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8322 // property of a typed array.
8324 // This behaves neither like String nor Uint8Array in that we set start/end
8325 // to their upper/lower bounds if the value passed is out of range.
8326 // undefined is handled specially as per ECMA-
262 6th Edition,
8327 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8328 if (start === undefined || start <
0) {
8331 // Return early if start
> this.length. Done here to prevent potential uint32
8332 // coercion fail below.
8333 if (start
> this.length) {
8337 if (end === undefined || end
> this.length) {
8345 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8353 if (!encoding) encoding = 'utf8'
8358 return hexSlice(this, start, end)
8362 return utf8Slice(this, start, end)
8365 return asciiSlice(this, start, end)
8369 return latin1Slice(this, start, end)
8372 return base64Slice(this, start, end)
8378 return utf16leSlice(this, start, end)
8381 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8382 encoding = (encoding + '').toLowerCase()
8388 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8389 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8390 // reliably in a browserify context because there could be multiple different
8391 // copies of the 'buffer' package in use. This method works even for Buffer
8392 // instances that were created from another copy of the `buffer` package.
8393 // See: https://github.com/feross/buffer/issues/
154
8394 Buffer.prototype._isBuffer = true
8396 function swap (b, n, m) {
8402 Buffer.prototype.swap16 = function swap16 () {
8403 var len = this.length
8404 if (len %
2 !==
0) {
8405 throw new RangeError('Buffer size must be a multiple of
16-bits')
8407 for (var i =
0; i < len; i +=
2) {
8408 swap(this, i, i +
1)
8413 Buffer.prototype.swap32 = function swap32 () {
8414 var len = this.length
8415 if (len %
4 !==
0) {
8416 throw new RangeError('Buffer size must be a multiple of
32-bits')
8418 for (var i =
0; i < len; i +=
4) {
8419 swap(this, i, i +
3)
8420 swap(this, i +
1, i +
2)
8425 Buffer.prototype.swap64 = function swap64 () {
8426 var len = this.length
8427 if (len %
8 !==
0) {
8428 throw new RangeError('Buffer size must be a multiple of
64-bits')
8430 for (var i =
0; i < len; i +=
8) {
8431 swap(this, i, i +
7)
8432 swap(this, i +
1, i +
6)
8433 swap(this, i +
2, i +
5)
8434 swap(this, i +
3, i +
4)
8439 Buffer.prototype.toString = function toString () {
8440 var length = this.length
8441 if (length ===
0) return ''
8442 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8443 return slowToString.apply(this, arguments)
8446 Buffer.prototype.equals = function equals (b) {
8447 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8448 if (this === b) return true
8449 return Buffer.compare(this, b) ===
0
8452 Buffer.prototype.inspect = function inspect () {
8454 var max = exports.INSPECT_MAX_BYTES
8455 if (this.length
> 0) {
8456 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8457 if (this.length
> max) str += ' ... '
8459 return '
<Buffer ' + str + '
>'
8462 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8463 if (!Buffer.isBuffer(target)) {
8464 throw new TypeError('Argument must be a Buffer')
8467 if (start === undefined) {
8470 if (end === undefined) {
8471 end = target ? target.length :
0
8473 if (thisStart === undefined) {
8476 if (thisEnd === undefined) {
8477 thisEnd = this.length
8480 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8481 throw new RangeError('out of range index')
8484 if (thisStart
>= thisEnd && start
>= end) {
8487 if (thisStart
>= thisEnd) {
8499 if (this === target) return
0
8501 var x = thisEnd - thisStart
8503 var len = Math.min(x, y)
8505 var thisCopy = this.slice(thisStart, thisEnd)
8506 var targetCopy = target.slice(start, end)
8508 for (var i =
0; i < len; ++i) {
8509 if (thisCopy[i] !== targetCopy[i]) {
8516 if (x < y) return -
1
8521 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8522 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8525 // - buffer - a Buffer to search
8526 // - val - a string, Buffer, or number
8527 // - byteOffset - an index into `buffer`; will be clamped to an int32
8528 // - encoding - an optional encoding, relevant is val is a string
8529 // - dir - true for indexOf, false for lastIndexOf
8530 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8531 // Empty buffer means no match
8532 if (buffer.length ===
0) return -
1
8534 // Normalize byteOffset
8535 if (typeof byteOffset === 'string') {
8536 encoding = byteOffset
8538 } else if (byteOffset
> 0x7fffffff) {
8539 byteOffset =
0x7fffffff
8540 } else if (byteOffset < -
0x80000000) {
8541 byteOffset = -
0x80000000
8543 byteOffset = +byteOffset // Coerce to Number.
8544 if (numberIsNaN(byteOffset)) {
8545 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8546 byteOffset = dir ?
0 : (buffer.length -
1)
8549 // Normalize byteOffset: negative offsets start from the end of the buffer
8550 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8551 if (byteOffset
>= buffer.length) {
8553 else byteOffset = buffer.length -
1
8554 } else if (byteOffset <
0) {
8555 if (dir) byteOffset =
0
8560 if (typeof val === 'string') {
8561 val = Buffer.from(val, encoding)
8564 // Finally, search either indexOf (if dir is true) or lastIndexOf
8565 if (Buffer.isBuffer(val)) {
8566 // Special case: looking for empty string/buffer always fails
8567 if (val.length ===
0) {
8570 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8571 } else if (typeof val === 'number') {
8572 val = val &
0xFF // Search for a byte value [
0-
255]
8573 if (typeof Uint8Array.prototype.indexOf === 'function') {
8575 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8577 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8580 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8583 throw new TypeError('val must be string, number or Buffer')
8586 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8588 var arrLength = arr.length
8589 var valLength = val.length
8591 if (encoding !== undefined) {
8592 encoding = String(encoding).toLowerCase()
8593 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8594 encoding === 'utf16le' || encoding === 'utf-
16le') {
8595 if (arr.length <
2 || val.length <
2) {
8605 function read (buf, i) {
8606 if (indexSize ===
1) {
8609 return buf.readUInt16BE(i * indexSize)
8616 for (i = byteOffset; i < arrLength; i++) {
8617 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8618 if (foundIndex === -
1) foundIndex = i
8619 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8621 if (foundIndex !== -
1) i -= i - foundIndex
8626 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8627 for (i = byteOffset; i
>=
0; i--) {
8629 for (var j =
0; j < valLength; j++) {
8630 if (read(arr, i + j) !== read(val, j)) {
8642 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8643 return this.indexOf(val, byteOffset, encoding) !== -
1
8646 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8647 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8650 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8651 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8654 function hexWrite (buf, string, offset, length) {
8655 offset = Number(offset) ||
0
8656 var remaining = buf.length - offset
8660 length = Number(length)
8661 if (length
> remaining) {
8666 // must be an even number of digits
8667 var strLen = string.length
8668 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8670 if (length
> strLen /
2) {
8673 for (var i =
0; i < length; ++i) {
8674 var parsed = parseInt(string.substr(i *
2,
2),
16)
8675 if (numberIsNaN(parsed)) return i
8676 buf[offset + i] = parsed
8681 function utf8Write (buf, string, offset, length) {
8682 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8685 function asciiWrite (buf, string, offset, length) {
8686 return blitBuffer(asciiToBytes(string), buf, offset, length)
8689 function latin1Write (buf, string, offset, length) {
8690 return asciiWrite(buf, string, offset, length)
8693 function base64Write (buf, string, offset, length) {
8694 return blitBuffer(base64ToBytes(string), buf, offset, length)
8697 function ucs2Write (buf, string, offset, length) {
8698 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8701 Buffer.prototype.write = function write (string, offset, length, encoding) {
8702 // Buffer#write(string)
8703 if (offset === undefined) {
8705 length = this.length
8707 // Buffer#write(string, encoding)
8708 } else if (length === undefined && typeof offset === 'string') {
8710 length = this.length
8712 // Buffer#write(string, offset[, length][, encoding])
8713 } else if (isFinite(offset)) {
8714 offset = offset
>>> 0
8715 if (isFinite(length)) {
8716 length = length
>>> 0
8717 if (encoding === undefined) encoding = 'utf8'
8724 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8728 var remaining = this.length - offset
8729 if (length === undefined || length
> remaining) length = remaining
8731 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8732 throw new RangeError('Attempt to write outside buffer bounds')
8735 if (!encoding) encoding = 'utf8'
8737 var loweredCase = false
8741 return hexWrite(this, string, offset, length)
8745 return utf8Write(this, string, offset, length)
8748 return asciiWrite(this, string, offset, length)
8752 return latin1Write(this, string, offset, length)
8755 // Warning: maxLength not taken into account in base64Write
8756 return base64Write(this, string, offset, length)
8762 return ucs2Write(this, string, offset, length)
8765 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8766 encoding = ('' + encoding).toLowerCase()
8772 Buffer.prototype.toJSON = function toJSON () {
8775 data: Array.prototype.slice.call(this._arr || this,
0)
8779 function base64Slice (buf, start, end) {
8780 if (start ===
0 && end === buf.length) {
8781 return base64.fromByteArray(buf)
8783 return base64.fromByteArray(buf.slice(start, end))
8787 function utf8Slice (buf, start, end) {
8788 end = Math.min(buf.length, end)
8793 var firstByte = buf[i]
8794 var codePoint = null
8795 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8796 : (firstByte
> 0xDF) ?
3
8797 : (firstByte
> 0xBF) ?
2
8800 if (i + bytesPerSequence <= end) {
8801 var secondByte, thirdByte, fourthByte, tempCodePoint
8803 switch (bytesPerSequence) {
8805 if (firstByte <
0x80) {
8806 codePoint = firstByte
8810 secondByte = buf[i +
1]
8811 if ((secondByte &
0xC0) ===
0x80) {
8812 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8813 if (tempCodePoint
> 0x7F) {
8814 codePoint = tempCodePoint
8819 secondByte = buf[i +
1]
8820 thirdByte = buf[i +
2]
8821 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8822 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8823 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8824 codePoint = tempCodePoint
8829 secondByte = buf[i +
1]
8830 thirdByte = buf[i +
2]
8831 fourthByte = buf[i +
3]
8832 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8833 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8834 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8835 codePoint = tempCodePoint
8841 if (codePoint === null) {
8842 // we did not generate a valid codePoint so insert a
8843 // replacement char (U+FFFD) and advance only
1 byte
8845 bytesPerSequence =
1
8846 } else if (codePoint
> 0xFFFF) {
8847 // encode to utf16 (surrogate pair dance)
8848 codePoint -=
0x10000
8849 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8850 codePoint =
0xDC00 | codePoint &
0x3FF
8854 i += bytesPerSequence
8857 return decodeCodePointsArray(res)
8860 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8861 // the lowest limit is Chrome, with
0x10000 args.
8862 // We go
1 magnitude less, for safety
8863 var MAX_ARGUMENTS_LENGTH =
0x1000
8865 function decodeCodePointsArray (codePoints) {
8866 var len = codePoints.length
8867 if (len <= MAX_ARGUMENTS_LENGTH) {
8868 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8871 // Decode in chunks to avoid
"call stack size exceeded".
8875 res += String.fromCharCode.apply(
8877 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8883 function asciiSlice (buf, start, end) {
8885 end = Math.min(buf.length, end)
8887 for (var i = start; i < end; ++i) {
8888 ret += String.fromCharCode(buf[i] &
0x7F)
8893 function latin1Slice (buf, start, end) {
8895 end = Math.min(buf.length, end)
8897 for (var i = start; i < end; ++i) {
8898 ret += String.fromCharCode(buf[i])
8903 function hexSlice (buf, start, end) {
8904 var len = buf.length
8906 if (!start || start <
0) start =
0
8907 if (!end || end <
0 || end
> len) end = len
8910 for (var i = start; i < end; ++i) {
8911 out += toHex(buf[i])
8916 function utf16leSlice (buf, start, end) {
8917 var bytes = buf.slice(start, end)
8919 for (var i =
0; i < bytes.length; i +=
2) {
8920 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8925 Buffer.prototype.slice = function slice (start, end) {
8926 var len = this.length
8928 end = end === undefined ? len : ~~end
8932 if (start <
0) start =
0
8933 } else if (start
> len) {
8939 if (end <
0) end =
0
8940 } else if (end
> len) {
8944 if (end < start) end = start
8946 var newBuf = this.subarray(start, end)
8947 // Return an augmented `Uint8Array` instance
8948 newBuf.__proto__ = Buffer.prototype
8953 * Need to make sure that buffer isn't trying to write out of bounds.
8955 function checkOffset (offset, ext, length) {
8956 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8957 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8960 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8961 offset = offset
>>> 0
8962 byteLength = byteLength
>>> 0
8963 if (!noAssert) checkOffset(offset, byteLength, this.length)
8965 var val = this[offset]
8968 while (++i < byteLength && (mul *=
0x100)) {
8969 val += this[offset + i] * mul
8975 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8976 offset = offset
>>> 0
8977 byteLength = byteLength
>>> 0
8979 checkOffset(offset, byteLength, this.length)
8982 var val = this[offset + --byteLength]
8984 while (byteLength
> 0 && (mul *=
0x100)) {
8985 val += this[offset + --byteLength] * mul
8991 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8992 offset = offset
>>> 0
8993 if (!noAssert) checkOffset(offset,
1, this.length)
8997 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
8998 offset = offset
>>> 0
8999 if (!noAssert) checkOffset(offset,
2, this.length)
9000 return this[offset] | (this[offset +
1] <<
8)
9003 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
9004 offset = offset
>>> 0
9005 if (!noAssert) checkOffset(offset,
2, this.length)
9006 return (this[offset] <<
8) | this[offset +
1]
9009 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9010 offset = offset
>>> 0
9011 if (!noAssert) checkOffset(offset,
4, this.length)
9013 return ((this[offset]) |
9014 (this[offset +
1] <<
8) |
9015 (this[offset +
2] <<
16)) +
9016 (this[offset +
3] *
0x1000000)
9019 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9020 offset = offset
>>> 0
9021 if (!noAssert) checkOffset(offset,
4, this.length)
9023 return (this[offset] *
0x1000000) +
9024 ((this[offset +
1] <<
16) |
9025 (this[offset +
2] <<
8) |
9029 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9030 offset = offset
>>> 0
9031 byteLength = byteLength
>>> 0
9032 if (!noAssert) checkOffset(offset, byteLength, this.length)
9034 var val = this[offset]
9037 while (++i < byteLength && (mul *=
0x100)) {
9038 val += this[offset + i] * mul
9042 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9047 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9048 offset = offset
>>> 0
9049 byteLength = byteLength
>>> 0
9050 if (!noAssert) checkOffset(offset, byteLength, this.length)
9054 var val = this[offset + --i]
9055 while (i
> 0 && (mul *=
0x100)) {
9056 val += this[offset + --i] * mul
9060 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9065 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9066 offset = offset
>>> 0
9067 if (!noAssert) checkOffset(offset,
1, this.length)
9068 if (!(this[offset] &
0x80)) return (this[offset])
9069 return ((
0xff - this[offset] +
1) * -
1)
9072 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9073 offset = offset
>>> 0
9074 if (!noAssert) checkOffset(offset,
2, this.length)
9075 var val = this[offset] | (this[offset +
1] <<
8)
9076 return (val &
0x8000) ? val |
0xFFFF0000 : val
9079 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9080 offset = offset
>>> 0
9081 if (!noAssert) checkOffset(offset,
2, this.length)
9082 var val = this[offset +
1] | (this[offset] <<
8)
9083 return (val &
0x8000) ? val |
0xFFFF0000 : val
9086 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9087 offset = offset
>>> 0
9088 if (!noAssert) checkOffset(offset,
4, this.length)
9090 return (this[offset]) |
9091 (this[offset +
1] <<
8) |
9092 (this[offset +
2] <<
16) |
9093 (this[offset +
3] <<
24)
9096 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9097 offset = offset
>>> 0
9098 if (!noAssert) checkOffset(offset,
4, this.length)
9100 return (this[offset] <<
24) |
9101 (this[offset +
1] <<
16) |
9102 (this[offset +
2] <<
8) |
9106 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9107 offset = offset
>>> 0
9108 if (!noAssert) checkOffset(offset,
4, this.length)
9109 return ieee754.read(this, offset, true,
23,
4)
9112 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9113 offset = offset
>>> 0
9114 if (!noAssert) checkOffset(offset,
4, this.length)
9115 return ieee754.read(this, offset, false,
23,
4)
9118 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9119 offset = offset
>>> 0
9120 if (!noAssert) checkOffset(offset,
8, this.length)
9121 return ieee754.read(this, offset, true,
52,
8)
9124 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9125 offset = offset
>>> 0
9126 if (!noAssert) checkOffset(offset,
8, this.length)
9127 return ieee754.read(this, offset, false,
52,
8)
9130 function checkInt (buf, value, offset, ext, max, min) {
9131 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9132 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9133 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9136 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9138 offset = offset
>>> 0
9139 byteLength = byteLength
>>> 0
9141 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9142 checkInt(this, value, offset, byteLength, maxBytes,
0)
9147 this[offset] = value &
0xFF
9148 while (++i < byteLength && (mul *=
0x100)) {
9149 this[offset + i] = (value / mul) &
0xFF
9152 return offset + byteLength
9155 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9157 offset = offset
>>> 0
9158 byteLength = byteLength
>>> 0
9160 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9161 checkInt(this, value, offset, byteLength, maxBytes,
0)
9164 var i = byteLength -
1
9166 this[offset + i] = value &
0xFF
9167 while (--i
>=
0 && (mul *=
0x100)) {
9168 this[offset + i] = (value / mul) &
0xFF
9171 return offset + byteLength
9174 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9176 offset = offset
>>> 0
9177 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9178 this[offset] = (value &
0xff)
9182 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9184 offset = offset
>>> 0
9185 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9186 this[offset] = (value &
0xff)
9187 this[offset +
1] = (value
>>> 8)
9191 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9193 offset = offset
>>> 0
9194 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9195 this[offset] = (value
>>> 8)
9196 this[offset +
1] = (value &
0xff)
9200 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9202 offset = offset
>>> 0
9203 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9204 this[offset +
3] = (value
>>> 24)
9205 this[offset +
2] = (value
>>> 16)
9206 this[offset +
1] = (value
>>> 8)
9207 this[offset] = (value &
0xff)
9211 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9213 offset = offset
>>> 0
9214 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9215 this[offset] = (value
>>> 24)
9216 this[offset +
1] = (value
>>> 16)
9217 this[offset +
2] = (value
>>> 8)
9218 this[offset +
3] = (value &
0xff)
9222 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9224 offset = offset
>>> 0
9226 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9228 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9234 this[offset] = value &
0xFF
9235 while (++i < byteLength && (mul *=
0x100)) {
9236 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9239 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9242 return offset + byteLength
9245 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9247 offset = offset
>>> 0
9249 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9251 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9254 var i = byteLength -
1
9257 this[offset + i] = value &
0xFF
9258 while (--i
>=
0 && (mul *=
0x100)) {
9259 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9262 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9265 return offset + byteLength
9268 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9270 offset = offset
>>> 0
9271 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9272 if (value <
0) value =
0xff + value +
1
9273 this[offset] = (value &
0xff)
9277 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9279 offset = offset
>>> 0
9280 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9281 this[offset] = (value &
0xff)
9282 this[offset +
1] = (value
>>> 8)
9286 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9288 offset = offset
>>> 0
9289 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9290 this[offset] = (value
>>> 8)
9291 this[offset +
1] = (value &
0xff)
9295 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9297 offset = offset
>>> 0
9298 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9299 this[offset] = (value &
0xff)
9300 this[offset +
1] = (value
>>> 8)
9301 this[offset +
2] = (value
>>> 16)
9302 this[offset +
3] = (value
>>> 24)
9306 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9308 offset = offset
>>> 0
9309 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9310 if (value <
0) value =
0xffffffff + value +
1
9311 this[offset] = (value
>>> 24)
9312 this[offset +
1] = (value
>>> 16)
9313 this[offset +
2] = (value
>>> 8)
9314 this[offset +
3] = (value &
0xff)
9318 function checkIEEE754 (buf, value, offset, ext, max, min) {
9319 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9320 if (offset <
0) throw new RangeError('Index out of range')
9323 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9325 offset = offset
>>> 0
9327 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9329 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9333 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9334 return writeFloat(this, value, offset, true, noAssert)
9337 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9338 return writeFloat(this, value, offset, false, noAssert)
9341 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9343 offset = offset
>>> 0
9345 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9347 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9351 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9352 return writeDouble(this, value, offset, true, noAssert)
9355 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9356 return writeDouble(this, value, offset, false, noAssert)
9359 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9360 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9361 if (!start) start =
0
9362 if (!end && end !==
0) end = this.length
9363 if (targetStart
>= target.length) targetStart = target.length
9364 if (!targetStart) targetStart =
0
9365 if (end
> 0 && end < start) end = start
9367 // Copy
0 bytes; we're done
9368 if (end === start) return
0
9369 if (target.length ===
0 || this.length ===
0) return
0
9371 // Fatal error conditions
9372 if (targetStart <
0) {
9373 throw new RangeError('targetStart out of bounds')
9375 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9376 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9379 if (end
> this.length) end = this.length
9380 if (target.length - targetStart < end - start) {
9381 end = target.length - targetStart + start
9384 var len = end - start
9387 if (this === target && start < targetStart && targetStart < end) {
9388 // descending copy from end
9389 for (i = len -
1; i
>=
0; --i) {
9390 target[i + targetStart] = this[i + start]
9392 } else if (len <
1000) {
9393 // ascending copy from start
9394 for (i =
0; i < len; ++i) {
9395 target[i + targetStart] = this[i + start]
9398 Uint8Array.prototype.set.call(
9400 this.subarray(start, start + len),
9409 // buffer.fill(number[, offset[, end]])
9410 // buffer.fill(buffer[, offset[, end]])
9411 // buffer.fill(string[, offset[, end]][, encoding])
9412 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9413 // Handle string cases:
9414 if (typeof val === 'string') {
9415 if (typeof start === 'string') {
9419 } else if (typeof end === 'string') {
9423 if (val.length ===
1) {
9424 var code = val.charCodeAt(
0)
9429 if (encoding !== undefined && typeof encoding !== 'string') {
9430 throw new TypeError('encoding must be a string')
9432 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9433 throw new TypeError('Unknown encoding: ' + encoding)
9435 } else if (typeof val === 'number') {
9439 // Invalid ranges are not set to a default, so can range check early.
9440 if (start <
0 || this.length < start || this.length < end) {
9441 throw new RangeError('Out of range index')
9449 end = end === undefined ? this.length : end
>>> 0
9454 if (typeof val === 'number') {
9455 for (i = start; i < end; ++i) {
9459 var bytes = Buffer.isBuffer(val)
9461 : new Buffer(val, encoding)
9462 var len = bytes.length
9463 for (i =
0; i < end - start; ++i) {
9464 this[i + start] = bytes[i % len]
9474 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9476 function base64clean (str) {
9477 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9478 str = str.trim().replace(INVALID_BASE64_RE, '')
9479 // Node converts strings with length <
2 to ''
9480 if (str.length <
2) return ''
9481 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9482 while (str.length %
4 !==
0) {
9488 function toHex (n) {
9489 if (n <
16) return '
0' + n.toString(
16)
9490 return n.toString(
16)
9493 function utf8ToBytes (string, units) {
9494 units = units || Infinity
9496 var length = string.length
9497 var leadSurrogate = null
9500 for (var i =
0; i < length; ++i) {
9501 codePoint = string.charCodeAt(i)
9503 // is surrogate component
9504 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9505 // last char was a lead
9506 if (!leadSurrogate) {
9508 if (codePoint
> 0xDBFF) {
9510 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9512 } else if (i +
1 === length) {
9514 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9519 leadSurrogate = codePoint
9525 if (codePoint <
0xDC00) {
9526 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9527 leadSurrogate = codePoint
9531 // valid surrogate pair
9532 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9533 } else if (leadSurrogate) {
9534 // valid bmp char, but last char was a lead
9535 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9538 leadSurrogate = null
9541 if (codePoint <
0x80) {
9542 if ((units -=
1) <
0) break
9543 bytes.push(codePoint)
9544 } else if (codePoint <
0x800) {
9545 if ((units -=
2) <
0) break
9547 codePoint
>> 0x6 |
0xC0,
9548 codePoint &
0x3F |
0x80
9550 } else if (codePoint <
0x10000) {
9551 if ((units -=
3) <
0) break
9553 codePoint
>> 0xC |
0xE0,
9554 codePoint
>> 0x6 &
0x3F |
0x80,
9555 codePoint &
0x3F |
0x80
9557 } else if (codePoint <
0x110000) {
9558 if ((units -=
4) <
0) break
9560 codePoint
>> 0x12 |
0xF0,
9561 codePoint
>> 0xC &
0x3F |
0x80,
9562 codePoint
>> 0x6 &
0x3F |
0x80,
9563 codePoint &
0x3F |
0x80
9566 throw new Error('Invalid code point')
9573 function asciiToBytes (str) {
9575 for (var i =
0; i < str.length; ++i) {
9576 // Node's code seems to be doing this and not &
0x7F..
9577 byteArray.push(str.charCodeAt(i) &
0xFF)
9582 function utf16leToBytes (str, units) {
9585 for (var i =
0; i < str.length; ++i) {
9586 if ((units -=
2) <
0) break
9588 c = str.charCodeAt(i)
9598 function base64ToBytes (str) {
9599 return base64.toByteArray(base64clean(str))
9602 function blitBuffer (src, dst, offset, length) {
9603 for (var i =
0; i < length; ++i) {
9604 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9605 dst[i + offset] = src[i]
9610 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9611 function isArrayBufferView (obj) {
9612 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9615 function numberIsNaN (obj) {
9616 return obj !== obj // eslint-disable-line no-self-compare
9619 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9621 // Copyright Joyent, Inc. and other Node contributors.
9623 // Permission is hereby granted, free of charge, to any person obtaining a
9624 // copy of this software and associated documentation files (the
9625 // "Software"), to deal in the Software without restriction, including
9626 // without limitation the rights to use, copy, modify, merge, publish,
9627 // distribute, sublicense, and/or sell copies of the Software, and to permit
9628 // persons to whom the Software is furnished to do so, subject to the
9629 // following conditions:
9631 // The above copyright notice and this permission notice shall be included
9632 // in all copies or substantial portions of the Software.
9634 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9635 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9636 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9637 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9638 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9639 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9640 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9642 // NOTE: These type checking functions intentionally don't use `instanceof`
9643 // because it is fragile and can be easily faked with `Object.create()`.
9645 function isArray(arg) {
9646 if (Array.isArray) {
9647 return Array.isArray(arg);
9649 return objectToString(arg) === '[object Array]';
9651 exports.isArray = isArray;
9653 function isBoolean(arg) {
9654 return typeof arg === 'boolean';
9656 exports.isBoolean = isBoolean;
9658 function isNull(arg) {
9659 return arg === null;
9661 exports.isNull = isNull;
9663 function isNullOrUndefined(arg) {
9666 exports.isNullOrUndefined = isNullOrUndefined;
9668 function isNumber(arg) {
9669 return typeof arg === 'number';
9671 exports.isNumber = isNumber;
9673 function isString(arg) {
9674 return typeof arg === 'string';
9676 exports.isString = isString;
9678 function isSymbol(arg) {
9679 return typeof arg === 'symbol';
9681 exports.isSymbol = isSymbol;
9683 function isUndefined(arg) {
9684 return arg === void
0;
9686 exports.isUndefined = isUndefined;
9688 function isRegExp(re) {
9689 return objectToString(re) === '[object RegExp]';
9691 exports.isRegExp = isRegExp;
9693 function isObject(arg) {
9694 return typeof arg === 'object' && arg !== null;
9696 exports.isObject = isObject;
9698 function isDate(d) {
9699 return objectToString(d) === '[object Date]';
9701 exports.isDate = isDate;
9703 function isError(e) {
9704 return (objectToString(e) === '[object Error]' || e instanceof Error);
9706 exports.isError = isError;
9708 function isFunction(arg) {
9709 return typeof arg === 'function';
9711 exports.isFunction = isFunction;
9713 function isPrimitive(arg) {
9714 return arg === null ||
9715 typeof arg === 'boolean' ||
9716 typeof arg === 'number' ||
9717 typeof arg === 'string' ||
9718 typeof arg === 'symbol' || // ES6 symbol
9719 typeof arg === 'undefined';
9721 exports.isPrimitive = isPrimitive;
9723 exports.isBuffer = Buffer.isBuffer;
9725 function objectToString(o) {
9726 return Object.prototype.toString.call(o);
9729 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9730 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9731 // Copyright Joyent, Inc. and other Node contributors.
9733 // Permission is hereby granted, free of charge, to any person obtaining a
9734 // copy of this software and associated documentation files (the
9735 // "Software"), to deal in the Software without restriction, including
9736 // without limitation the rights to use, copy, modify, merge, publish,
9737 // distribute, sublicense, and/or sell copies of the Software, and to permit
9738 // persons to whom the Software is furnished to do so, subject to the
9739 // following conditions:
9741 // The above copyright notice and this permission notice shall be included
9742 // in all copies or substantial portions of the Software.
9744 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9745 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9746 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9747 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9748 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9749 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9750 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9752 function EventEmitter() {
9753 this._events = this._events || {};
9754 this._maxListeners = this._maxListeners || undefined;
9756 module.exports = EventEmitter;
9758 // Backwards-compat with node
0.10.x
9759 EventEmitter.EventEmitter = EventEmitter;
9761 EventEmitter.prototype._events = undefined;
9762 EventEmitter.prototype._maxListeners = undefined;
9764 // By default EventEmitters will print a warning if more than
10 listeners are
9765 // added to it. This is a useful default which helps finding memory leaks.
9766 EventEmitter.defaultMaxListeners =
10;
9768 // Obviously not all Emitters should be limited to
10. This function allows
9769 // that to be increased. Set to zero for unlimited.
9770 EventEmitter.prototype.setMaxListeners = function(n) {
9771 if (!isNumber(n) || n <
0 || isNaN(n))
9772 throw TypeError('n must be a positive number');
9773 this._maxListeners = n;
9777 EventEmitter.prototype.emit = function(type) {
9778 var er, handler, len, args, i, listeners;
9783 // If there is no 'error' event listener then throw.
9784 if (type === 'error') {
9785 if (!this._events.error ||
9786 (isObject(this._events.error) && !this._events.error.length)) {
9788 if (er instanceof Error) {
9789 throw er; // Unhandled 'error' event
9791 // At least give some kind of context to the user
9792 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9799 handler = this._events[type];
9801 if (isUndefined(handler))
9804 if (isFunction(handler)) {
9805 switch (arguments.length) {
9811 handler.call(this, arguments[
1]);
9814 handler.call(this, arguments[
1], arguments[
2]);
9818 args = Array.prototype.slice.call(arguments,
1);
9819 handler.apply(this, args);
9821 } else if (isObject(handler)) {
9822 args = Array.prototype.slice.call(arguments,
1);
9823 listeners = handler.slice();
9824 len = listeners.length;
9825 for (i =
0; i < len; i++)
9826 listeners[i].apply(this, args);
9832 EventEmitter.prototype.addListener = function(type, listener) {
9835 if (!isFunction(listener))
9836 throw TypeError('listener must be a function');
9841 // To avoid recursion in the case that type === "newListener"! Before
9842 // adding it to the listeners, first emit "newListener".
9843 if (this._events.newListener)
9844 this.emit('newListener', type,
9845 isFunction(listener.listener) ?
9846 listener.listener : listener);
9848 if (!this._events[type])
9849 // Optimize the case of one listener. Don't need the extra array object.
9850 this._events[type] = listener;
9851 else if (isObject(this._events[type]))
9852 // If we've already got an array, just append.
9853 this._events[type].push(listener);
9855 // Adding the second element, need to change to array.
9856 this._events[type] = [this._events[type], listener];
9858 // Check for listener leak
9859 if (isObject(this._events[type]) && !this._events[type].warned) {
9860 if (!isUndefined(this._maxListeners)) {
9861 m = this._maxListeners;
9863 m = EventEmitter.defaultMaxListeners;
9866 if (m && m
> 0 && this._events[type].length
> m) {
9867 this._events[type].warned = true;
9868 console.error('(node) warning: possible EventEmitter memory ' +
9869 'leak detected. %d listeners added. ' +
9870 'Use emitter.setMaxListeners() to increase limit.',
9871 this._events[type].length);
9872 if (typeof console.trace === 'function') {
9873 // not supported in IE
10
9882 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9884 EventEmitter.prototype.once = function(type, listener) {
9885 if (!isFunction(listener))
9886 throw TypeError('listener must be a function');
9891 this.removeListener(type, g);
9895 listener.apply(this, arguments);
9899 g.listener = listener;
9905 // emits a 'removeListener' event iff the listener was removed
9906 EventEmitter.prototype.removeListener = function(type, listener) {
9907 var list, position, length, i;
9909 if (!isFunction(listener))
9910 throw TypeError('listener must be a function');
9912 if (!this._events || !this._events[type])
9915 list = this._events[type];
9916 length = list.length;
9919 if (list === listener ||
9920 (isFunction(list.listener) && list.listener === listener)) {
9921 delete this._events[type];
9922 if (this._events.removeListener)
9923 this.emit('removeListener', type, listener);
9925 } else if (isObject(list)) {
9926 for (i = length; i--
> 0;) {
9927 if (list[i] === listener ||
9928 (list[i].listener && list[i].listener === listener)) {
9937 if (list.length ===
1) {
9939 delete this._events[type];
9941 list.splice(position,
1);
9944 if (this._events.removeListener)
9945 this.emit('removeListener', type, listener);
9951 EventEmitter.prototype.removeAllListeners = function(type) {
9957 // not listening for removeListener, no need to emit
9958 if (!this._events.removeListener) {
9959 if (arguments.length ===
0)
9961 else if (this._events[type])
9962 delete this._events[type];
9966 // emit removeListener for all listeners on all events
9967 if (arguments.length ===
0) {
9968 for (key in this._events) {
9969 if (key === 'removeListener') continue;
9970 this.removeAllListeners(key);
9972 this.removeAllListeners('removeListener');
9977 listeners = this._events[type];
9979 if (isFunction(listeners)) {
9980 this.removeListener(type, listeners);
9981 } else if (listeners) {
9983 while (listeners.length)
9984 this.removeListener(type, listeners[listeners.length -
1]);
9986 delete this._events[type];
9991 EventEmitter.prototype.listeners = function(type) {
9993 if (!this._events || !this._events[type])
9995 else if (isFunction(this._events[type]))
9996 ret = [this._events[type]];
9998 ret = this._events[type].slice();
10002 EventEmitter.prototype.listenerCount = function(type) {
10003 if (this._events) {
10004 var evlistener = this._events[type];
10006 if (isFunction(evlistener))
10008 else if (evlistener)
10009 return evlistener.length;
10014 EventEmitter.listenerCount = function(emitter, type) {
10015 return emitter.listenerCount(type);
10018 function isFunction(arg) {
10019 return typeof arg === 'function';
10022 function isNumber(arg) {
10023 return typeof arg === 'number';
10026 function isObject(arg) {
10027 return typeof arg === 'object' && arg !== null;
10030 function isUndefined(arg) {
10031 return arg === void
0;
10034 },{}],
7:[function(require,module,exports){
10035 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10037 var eLen = nBytes *
8 - mLen -
1
10038 var eMax = (
1 << eLen) -
1
10039 var eBias = eMax
>> 1
10041 var i = isLE ? (nBytes -
1) :
0
10042 var d = isLE ? -
1 :
1
10043 var s = buffer[offset + i]
10047 e = s & ((
1 << (-nBits)) -
1)
10050 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10052 m = e & ((
1 << (-nBits)) -
1)
10055 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10059 } else if (e === eMax) {
10060 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10062 m = m + Math.pow(
2, mLen)
10065 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10068 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10070 var eLen = nBytes *
8 - mLen -
1
10071 var eMax = (
1 << eLen) -
1
10072 var eBias = eMax
>> 1
10073 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10074 var i = isLE ?
0 : (nBytes -
1)
10075 var d = isLE ?
1 : -
1
10076 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10078 value = Math.abs(value)
10080 if (isNaN(value) || value === Infinity) {
10081 m = isNaN(value) ?
1 :
0
10084 e = Math.floor(Math.log(value) / Math.LN2)
10085 if (value * (c = Math.pow(
2, -e)) <
1) {
10089 if (e + eBias
>=
1) {
10092 value += rt * Math.pow(
2,
1 - eBias)
10094 if (value * c
>=
2) {
10099 if (e + eBias
>= eMax) {
10102 } else if (e + eBias
>=
1) {
10103 m = (value * c -
1) * Math.pow(
2, mLen)
10106 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10111 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10113 e = (e << mLen) | m
10115 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10117 buffer[offset + i - d] |= s *
128
10120 },{}],
8:[function(require,module,exports){
10121 if (typeof Object.create === 'function') {
10122 // implementation from standard node.js 'util' module
10123 module.exports = function inherits(ctor, superCtor) {
10124 ctor.super_ = superCtor
10125 ctor.prototype = Object.create(superCtor.prototype, {
10135 // old school shim for old browsers
10136 module.exports = function inherits(ctor, superCtor) {
10137 ctor.super_ = superCtor
10138 var TempCtor = function () {}
10139 TempCtor.prototype = superCtor.prototype
10140 ctor.prototype = new TempCtor()
10141 ctor.prototype.constructor = ctor
10145 },{}],
9:[function(require,module,exports){
10147 * Determine if an object is a Buffer
10149 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10153 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10154 // Object.prototype.constructor. Remove this eventually
10155 module.exports = function (obj) {
10156 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10159 function isBuffer (obj) {
10160 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10163 // For Node v0.10 support. Remove this eventually.
10164 function isSlowBuffer (obj) {
10165 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10168 },{}],
10:[function(require,module,exports){
10169 var toString = {}.toString;
10171 module.exports = Array.isArray || function (arr) {
10172 return toString.call(arr) == '[object Array]';
10175 },{}],
11:[function(require,module,exports){
10176 (function (process){
10179 if (!process.version ||
10180 process.version.indexOf('v0.') ===
0 ||
10181 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10182 module.exports = nextTick;
10184 module.exports = process.nextTick;
10187 function nextTick(fn, arg1, arg2, arg3) {
10188 if (typeof fn !== 'function') {
10189 throw new TypeError('"callback" argument must be a function');
10191 var len = arguments.length;
10196 return process.nextTick(fn);
10198 return process.nextTick(function afterTickOne() {
10199 fn.call(null, arg1);
10202 return process.nextTick(function afterTickTwo() {
10203 fn.call(null, arg1, arg2);
10206 return process.nextTick(function afterTickThree() {
10207 fn.call(null, arg1, arg2, arg3);
10210 args = new Array(len -
1);
10212 while (i < args.length) {
10213 args[i++] = arguments[i];
10215 return process.nextTick(function afterTick() {
10216 fn.apply(null, args);
10221 }).call(this,require('_process'))
10222 },{"_process":
12}],
12:[function(require,module,exports){
10223 // shim for using process in browser
10224 var process = module.exports = {};
10226 // cached from whatever global is present so that test runners that stub it
10227 // don't break things. But we need to wrap it in a try catch in case it is
10228 // wrapped in strict mode code which doesn't define any globals. It's inside a
10229 // function because try/catches deoptimize in certain engines.
10231 var cachedSetTimeout;
10232 var cachedClearTimeout;
10234 function defaultSetTimout() {
10235 throw new Error('setTimeout has not been defined');
10237 function defaultClearTimeout () {
10238 throw new Error('clearTimeout has not been defined');
10242 if (typeof setTimeout === 'function') {
10243 cachedSetTimeout = setTimeout;
10245 cachedSetTimeout = defaultSetTimout;
10248 cachedSetTimeout = defaultSetTimout;
10251 if (typeof clearTimeout === 'function') {
10252 cachedClearTimeout = clearTimeout;
10254 cachedClearTimeout = defaultClearTimeout;
10257 cachedClearTimeout = defaultClearTimeout;
10260 function runTimeout(fun) {
10261 if (cachedSetTimeout === setTimeout) {
10262 //normal enviroments in sane situations
10263 return setTimeout(fun,
0);
10265 // if setTimeout wasn't available but was latter defined
10266 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10267 cachedSetTimeout = setTimeout;
10268 return setTimeout(fun,
0);
10271 // when when somebody has screwed with setTimeout but no I.E. maddness
10272 return cachedSetTimeout(fun,
0);
10275 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10276 return cachedSetTimeout.call(null, fun,
0);
10278 // 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
10279 return cachedSetTimeout.call(this, fun,
0);
10285 function runClearTimeout(marker) {
10286 if (cachedClearTimeout === clearTimeout) {
10287 //normal enviroments in sane situations
10288 return clearTimeout(marker);
10290 // if clearTimeout wasn't available but was latter defined
10291 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10292 cachedClearTimeout = clearTimeout;
10293 return clearTimeout(marker);
10296 // when when somebody has screwed with setTimeout but no I.E. maddness
10297 return cachedClearTimeout(marker);
10300 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10301 return cachedClearTimeout.call(null, marker);
10303 // 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.
10304 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10305 return cachedClearTimeout.call(this, marker);
10313 var draining = false;
10315 var queueIndex = -
1;
10317 function cleanUpNextTick() {
10318 if (!draining || !currentQueue) {
10322 if (currentQueue.length) {
10323 queue = currentQueue.concat(queue);
10327 if (queue.length) {
10332 function drainQueue() {
10336 var timeout = runTimeout(cleanUpNextTick);
10339 var len = queue.length;
10341 currentQueue = queue;
10343 while (++queueIndex < len) {
10344 if (currentQueue) {
10345 currentQueue[queueIndex].run();
10349 len = queue.length;
10351 currentQueue = null;
10353 runClearTimeout(timeout);
10356 process.nextTick = function (fun) {
10357 var args = new Array(arguments.length -
1);
10358 if (arguments.length
> 1) {
10359 for (var i =
1; i < arguments.length; i++) {
10360 args[i -
1] = arguments[i];
10363 queue.push(new Item(fun, args));
10364 if (queue.length ===
1 && !draining) {
10365 runTimeout(drainQueue);
10369 // v8 likes predictible objects
10370 function Item(fun, array) {
10372 this.array = array;
10374 Item.prototype.run = function () {
10375 this.fun.apply(null, this.array);
10377 process.title = 'browser';
10378 process.browser = true;
10381 process.version = ''; // empty string to avoid regexp issues
10382 process.versions = {};
10387 process.addListener = noop;
10388 process.once = noop;
10389 process.off = noop;
10390 process.removeListener = noop;
10391 process.removeAllListeners = noop;
10392 process.emit = noop;
10393 process.prependListener = noop;
10394 process.prependOnceListener = noop;
10396 process.listeners = function (name) { return [] }
10398 process.binding = function (name) {
10399 throw new Error('process.binding is not supported');
10402 process.cwd = function () { return '/' };
10403 process.chdir = function (dir) {
10404 throw new Error('process.chdir is not supported');
10406 process.umask = function() { return
0; };
10408 },{}],
13:[function(require,module,exports){
10409 module.exports = require('./lib/_stream_duplex.js');
10411 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10412 // Copyright Joyent, Inc. and other Node contributors.
10414 // Permission is hereby granted, free of charge, to any person obtaining a
10415 // copy of this software and associated documentation files (the
10416 //
"Software"), to deal in the Software without restriction, including
10417 // without limitation the rights to use, copy, modify, merge, publish,
10418 // distribute, sublicense, and/or sell copies of the Software, and to permit
10419 // persons to whom the Software is furnished to do so, subject to the
10420 // following conditions:
10422 // The above copyright notice and this permission notice shall be included
10423 // in all copies or substantial portions of the Software.
10425 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10426 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10427 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10428 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10429 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10430 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10431 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10433 // a duplex stream is just a stream that is both readable and writable.
10434 // Since JS doesn't have multiple prototypal inheritance, this class
10435 // prototypally inherits from Readable, and then parasitically from
10442 var processNextTick = require('process-nextick-args');
10446 var objectKeys = Object.keys || function (obj) {
10448 for (var key in obj) {
10454 module.exports = Duplex;
10457 var util = require('core-util-is');
10458 util.inherits = require('inherits');
10461 var Readable = require('./_stream_readable');
10462 var Writable = require('./_stream_writable');
10464 util.inherits(Duplex, Readable);
10466 var keys = objectKeys(Writable.prototype);
10467 for (var v =
0; v < keys.length; v++) {
10468 var method = keys[v];
10469 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10472 function Duplex(options) {
10473 if (!(this instanceof Duplex)) return new Duplex(options);
10475 Readable.call(this, options);
10476 Writable.call(this, options);
10478 if (options && options.readable === false) this.readable = false;
10480 if (options && options.writable === false) this.writable = false;
10482 this.allowHalfOpen = true;
10483 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10485 this.once('end', onend);
10488 // the no-half-open enforcer
10490 // if we allow half-open state, or if the writable side ended,
10492 if (this.allowHalfOpen || this._writableState.ended) return;
10494 // no more data can be written.
10495 // But allow more writes to happen in this tick.
10496 processNextTick(onEndNT, this);
10499 function onEndNT(self) {
10503 Object.defineProperty(Duplex.prototype, 'destroyed', {
10505 if (this._readableState === undefined || this._writableState === undefined) {
10508 return this._readableState.destroyed && this._writableState.destroyed;
10510 set: function (value) {
10511 // we ignore the value if the stream
10512 // has not been initialized yet
10513 if (this._readableState === undefined || this._writableState === undefined) {
10517 // backward compatibility, the user is explicitly
10518 // managing destroyed
10519 this._readableState.destroyed = value;
10520 this._writableState.destroyed = value;
10524 Duplex.prototype._destroy = function (err, cb) {
10528 processNextTick(cb, err);
10531 function forEach(xs, f) {
10532 for (var i =
0, l = xs.length; i < l; i++) {
10536 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10537 // Copyright Joyent, Inc. and other Node contributors.
10539 // Permission is hereby granted, free of charge, to any person obtaining a
10540 // copy of this software and associated documentation files (the
10541 // "Software"), to deal in the Software without restriction, including
10542 // without limitation the rights to use, copy, modify, merge, publish,
10543 // distribute, sublicense, and/or sell copies of the Software, and to permit
10544 // persons to whom the Software is furnished to do so, subject to the
10545 // following conditions:
10547 // The above copyright notice and this permission notice shall be included
10548 // in all copies or substantial portions of the Software.
10550 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10551 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10552 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10553 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10554 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10555 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10556 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10558 // a passthrough stream.
10559 // basically just the most minimal sort of Transform stream.
10560 // Every written chunk gets output as-is.
10564 module.exports = PassThrough;
10566 var Transform = require('./_stream_transform');
10569 var util = require('core-util-is');
10570 util.inherits = require('inherits');
10573 util.inherits(PassThrough, Transform);
10575 function PassThrough(options) {
10576 if (!(this instanceof PassThrough)) return new PassThrough(options);
10578 Transform.call(this, options);
10581 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10584 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10585 (function (process,global){
10586 // Copyright Joyent, Inc. and other Node contributors.
10588 // Permission is hereby granted, free of charge, to any person obtaining a
10589 // copy of this software and associated documentation files (the
10590 // "Software"), to deal in the Software without restriction, including
10591 // without limitation the rights to use, copy, modify, merge, publish,
10592 // distribute, sublicense, and/or sell copies of the Software, and to permit
10593 // persons to whom the Software is furnished to do so, subject to the
10594 // following conditions:
10596 // The above copyright notice and this permission notice shall be included
10597 // in all copies or substantial portions of the Software.
10599 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10600 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10601 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10602 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10603 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10604 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10605 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10611 var processNextTick = require('process-nextick-args');
10614 module.exports = Readable;
10617 var isArray = require('isarray');
10624 Readable.ReadableState = ReadableState;
10627 var EE = require('events').EventEmitter;
10629 var EElistenerCount = function (emitter, type) {
10630 return emitter.listeners(type).length;
10635 var Stream = require('./internal/streams/stream');
10638 // TODO(bmeurer): Change this back to const once hole checks are
10639 // properly optimized away early in Ignition+TurboFan.
10641 var Buffer = require('safe-buffer').Buffer;
10642 var OurUint8Array = global.Uint8Array || function () {};
10643 function _uint8ArrayToBuffer(chunk) {
10644 return Buffer.from(chunk);
10646 function _isUint8Array(obj) {
10647 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10652 var util = require('core-util-is');
10653 util.inherits = require('inherits');
10657 var debugUtil = require('util');
10658 var debug = void
0;
10659 if (debugUtil && debugUtil.debuglog) {
10660 debug = debugUtil.debuglog('stream');
10662 debug = function () {};
10666 var BufferList = require('./internal/streams/BufferList');
10667 var destroyImpl = require('./internal/streams/destroy');
10670 util.inherits(Readable, Stream);
10672 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10674 function prependListener(emitter, event, fn) {
10675 // Sadly this is not cacheable as some libraries bundle their own
10676 // event emitter implementation with them.
10677 if (typeof emitter.prependListener === 'function') {
10678 return emitter.prependListener(event, fn);
10680 // This is a hack to make sure that our error handler is attached before any
10681 // userland ones. NEVER DO THIS. This is here only because this code needs
10682 // to continue to work with older versions of Node.js that do not include
10683 // the prependListener() method. The goal is to eventually remove this hack.
10684 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]];
10688 function ReadableState(options, stream) {
10689 Duplex = Duplex || require('./_stream_duplex');
10691 options = options || {};
10693 // object stream flag. Used to make read(n) ignore n and to
10694 // make all the buffer merging and length checks go away
10695 this.objectMode = !!options.objectMode;
10697 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10699 // the point at which it stops calling _read() to fill the buffer
10700 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10701 var hwm = options.highWaterMark;
10702 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10703 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10706 this.highWaterMark = Math.floor(this.highWaterMark);
10708 // A linked list is used to store data chunks instead of an array because the
10709 // linked list can remove elements from the beginning faster than
10711 this.buffer = new BufferList();
10714 this.pipesCount =
0;
10715 this.flowing = null;
10716 this.ended = false;
10717 this.endEmitted = false;
10718 this.reading = false;
10720 // a flag to be able to tell if the event 'readable'/'data' is emitted
10721 // immediately, or on a later tick. We set this to true at first, because
10722 // any actions that shouldn't happen until "later" should generally also
10723 // not happen before the first read call.
10726 // whenever we return null, then we set a flag to say
10727 // that we're awaiting a 'readable' event emission.
10728 this.needReadable = false;
10729 this.emittedReadable = false;
10730 this.readableListening = false;
10731 this.resumeScheduled = false;
10733 // has it been destroyed
10734 this.destroyed = false;
10736 // Crypto is kind of old and crusty. Historically, its default string
10737 // encoding is 'binary' so we have to make this configurable.
10738 // Everything else in the universe uses 'utf8', though.
10739 this.defaultEncoding = options.defaultEncoding || 'utf8';
10741 // the number of writers that are awaiting a drain event in .pipe()s
10742 this.awaitDrain =
0;
10744 // if true, a maybeReadMore has been scheduled
10745 this.readingMore = false;
10747 this.decoder = null;
10748 this.encoding = null;
10749 if (options.encoding) {
10750 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10751 this.decoder = new StringDecoder(options.encoding);
10752 this.encoding = options.encoding;
10756 function Readable(options) {
10757 Duplex = Duplex || require('./_stream_duplex');
10759 if (!(this instanceof Readable)) return new Readable(options);
10761 this._readableState = new ReadableState(options, this);
10764 this.readable = true;
10767 if (typeof options.read === 'function') this._read = options.read;
10769 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10775 Object.defineProperty(Readable.prototype, 'destroyed', {
10777 if (this._readableState === undefined) {
10780 return this._readableState.destroyed;
10782 set: function (value) {
10783 // we ignore the value if the stream
10784 // has not been initialized yet
10785 if (!this._readableState) {
10789 // backward compatibility, the user is explicitly
10790 // managing destroyed
10791 this._readableState.destroyed = value;
10795 Readable.prototype.destroy = destroyImpl.destroy;
10796 Readable.prototype._undestroy = destroyImpl.undestroy;
10797 Readable.prototype._destroy = function (err, cb) {
10802 // Manually shove something into the read() buffer.
10803 // This returns true if the highWaterMark has not been hit yet,
10804 // similar to how Writable.write() returns true if you should
10805 // write() some more.
10806 Readable.prototype.push = function (chunk, encoding) {
10807 var state = this._readableState;
10808 var skipChunkCheck;
10810 if (!state.objectMode) {
10811 if (typeof chunk === 'string') {
10812 encoding = encoding || state.defaultEncoding;
10813 if (encoding !== state.encoding) {
10814 chunk = Buffer.from(chunk, encoding);
10817 skipChunkCheck = true;
10820 skipChunkCheck = true;
10823 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10826 // Unshift should *always* be something directly out of read()
10827 Readable.prototype.unshift = function (chunk) {
10828 return readableAddChunk(this, chunk, null, true, false);
10831 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10832 var state = stream._readableState;
10833 if (chunk === null) {
10834 state.reading = false;
10835 onEofChunk(stream, state);
10838 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10840 stream.emit('error', er);
10841 } else if (state.objectMode || chunk && chunk.length
> 0) {
10842 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10843 chunk = _uint8ArrayToBuffer(chunk);
10847 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10848 } else if (state.ended) {
10849 stream.emit('error', new Error('stream.push() after EOF'));
10851 state.reading = false;
10852 if (state.decoder && !encoding) {
10853 chunk = state.decoder.write(chunk);
10854 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10856 addChunk(stream, state, chunk, false);
10859 } else if (!addToFront) {
10860 state.reading = false;
10864 return needMoreData(state);
10867 function addChunk(stream, state, chunk, addToFront) {
10868 if (state.flowing && state.length ===
0 && !state.sync) {
10869 stream.emit('data', chunk);
10872 // update the buffer info.
10873 state.length += state.objectMode ?
1 : chunk.length;
10874 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10876 if (state.needReadable) emitReadable(stream);
10878 maybeReadMore(stream, state);
10881 function chunkInvalid(state, chunk) {
10883 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10884 er = new TypeError('Invalid non-string/buffer chunk');
10889 // if it's past the high water mark, we can push in some more.
10890 // Also, if we have no data yet, we can stand some
10891 // more bytes. This is to work around cases where hwm=
0,
10892 // such as the repl. Also, if the push() triggered a
10893 // readable event, and the user called read(largeNumber) such that
10894 // needReadable was set, then we ought to push more, so that another
10895 // 'readable' event will be triggered.
10896 function needMoreData(state) {
10897 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10900 Readable.prototype.isPaused = function () {
10901 return this._readableState.flowing === false;
10904 // backwards compatibility.
10905 Readable.prototype.setEncoding = function (enc) {
10906 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10907 this._readableState.decoder = new StringDecoder(enc);
10908 this._readableState.encoding = enc;
10912 // Don't raise the hwm
> 8MB
10913 var MAX_HWM =
0x800000;
10914 function computeNewHighWaterMark(n) {
10915 if (n
>= MAX_HWM) {
10918 // Get the next highest power of
2 to prevent increasing hwm excessively in
10931 // This function is designed to be inlinable, so please take care when making
10932 // changes to the function body.
10933 function howMuchToRead(n, state) {
10934 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10935 if (state.objectMode) return
1;
10937 // Only flow one buffer at a time
10938 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10940 // If we're asking for more than the current hwm, then raise the hwm.
10941 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10942 if (n <= state.length) return n;
10943 // Don't have enough
10944 if (!state.ended) {
10945 state.needReadable = true;
10948 return state.length;
10951 // you can override either this method, or the async _read(n) below.
10952 Readable.prototype.read = function (n) {
10954 n = parseInt(n,
10);
10955 var state = this._readableState;
10958 if (n !==
0) state.emittedReadable = false;
10960 // if we're doing read(
0) to trigger a readable event, but we
10961 // already have a bunch of data in the buffer, then just trigger
10962 // the 'readable' event and move on.
10963 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10964 debug('read: emitReadable', state.length, state.ended);
10965 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10969 n = howMuchToRead(n, state);
10971 // if we've ended, and we're now clear, then finish it up.
10972 if (n ===
0 && state.ended) {
10973 if (state.length ===
0) endReadable(this);
10977 // All the actual chunk generation logic needs to be
10978 // *below* the call to _read. The reason is that in certain
10979 // synthetic stream cases, such as passthrough streams, _read
10980 // may be a completely synchronous operation which may change
10981 // the state of the read buffer, providing enough data when
10982 // before there was *not* enough.
10984 // So, the steps are:
10985 //
1. Figure out what the state of things will be after we do
10986 // a read from the buffer.
10988 //
2. If that resulting state will trigger a _read, then call _read.
10989 // Note that this may be asynchronous, or synchronous. Yes, it is
10990 // deeply ugly to write APIs this way, but that still doesn't mean
10991 // that the Readable class should behave improperly, as streams are
10992 // designed to be sync/async agnostic.
10993 // Take note if the _read call is sync or async (ie, if the read call
10994 // has returned yet), so that we know whether or not it's safe to emit
10997 //
3. Actually pull the requested chunks out of the buffer and return.
10999 // if we need a readable event, then we need to do some reading.
11000 var doRead = state.needReadable;
11001 debug('need readable', doRead);
11003 // if we currently have less than the highWaterMark, then also read some
11004 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11006 debug('length less than watermark', doRead);
11009 // however, if we've ended, then there's no point, and if we're already
11010 // reading, then it's unnecessary.
11011 if (state.ended || state.reading) {
11013 debug('reading or ended', doRead);
11014 } else if (doRead) {
11016 state.reading = true;
11018 // if the length is currently zero, then we *need* a readable event.
11019 if (state.length ===
0) state.needReadable = true;
11020 // call internal read method
11021 this._read(state.highWaterMark);
11022 state.sync = false;
11023 // If _read pushed data synchronously, then `reading` will be false,
11024 // and we need to re-evaluate how much data we can return to the user.
11025 if (!state.reading) n = howMuchToRead(nOrig, state);
11029 if (n
> 0) ret = fromList(n, state);else ret = null;
11031 if (ret === null) {
11032 state.needReadable = true;
11038 if (state.length ===
0) {
11039 // If we have nothing in the buffer, then we want to know
11040 // as soon as we *do* get something into the buffer.
11041 if (!state.ended) state.needReadable = true;
11043 // If we tried to read() past the EOF, then emit end on the next tick.
11044 if (nOrig !== n && state.ended) endReadable(this);
11047 if (ret !== null) this.emit('data', ret);
11052 function onEofChunk(stream, state) {
11053 if (state.ended) return;
11054 if (state.decoder) {
11055 var chunk = state.decoder.end();
11056 if (chunk && chunk.length) {
11057 state.buffer.push(chunk);
11058 state.length += state.objectMode ?
1 : chunk.length;
11061 state.ended = true;
11063 // emit 'readable' now to make sure it gets picked up.
11064 emitReadable(stream);
11067 // Don't emit readable right away in sync mode, because this can trigger
11068 // another read() call =
> stack overflow. This way, it might trigger
11069 // a nextTick recursion warning, but that's not so bad.
11070 function emitReadable(stream) {
11071 var state = stream._readableState;
11072 state.needReadable = false;
11073 if (!state.emittedReadable) {
11074 debug('emitReadable', state.flowing);
11075 state.emittedReadable = true;
11076 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11080 function emitReadable_(stream) {
11081 debug('emit readable');
11082 stream.emit('readable');
11086 // at this point, the user has presumably seen the 'readable' event,
11087 // and called read() to consume some data. that may have triggered
11088 // in turn another _read(n) call, in which case reading = true if
11089 // it's in progress.
11090 // However, if we're not ended, or reading, and the length < hwm,
11091 // then go ahead and try to read some more preemptively.
11092 function maybeReadMore(stream, state) {
11093 if (!state.readingMore) {
11094 state.readingMore = true;
11095 processNextTick(maybeReadMore_, stream, state);
11099 function maybeReadMore_(stream, state) {
11100 var len = state.length;
11101 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11102 debug('maybeReadMore read
0');
11104 if (len === state.length)
11105 // didn't get any data, stop spinning.
11106 break;else len = state.length;
11108 state.readingMore = false;
11111 // abstract method. to be overridden in specific implementation classes.
11112 // call cb(er, data) where data is <= n in length.
11113 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11114 // arbitrary, and perhaps not very meaningful.
11115 Readable.prototype._read = function (n) {
11116 this.emit('error', new Error('_read() is not implemented'));
11119 Readable.prototype.pipe = function (dest, pipeOpts) {
11121 var state = this._readableState;
11123 switch (state.pipesCount) {
11125 state.pipes = dest;
11128 state.pipes = [state.pipes, dest];
11131 state.pipes.push(dest);
11134 state.pipesCount +=
1;
11135 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11137 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11139 var endFn = doEnd ? onend : unpipe;
11140 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11142 dest.on('unpipe', onunpipe);
11143 function onunpipe(readable, unpipeInfo) {
11145 if (readable === src) {
11146 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11147 unpipeInfo.hasUnpiped = true;
11158 // when the dest drains, it reduces the awaitDrain counter
11159 // on the source. This would be more elegant with a .once()
11160 // handler in flow(), but adding and removing repeatedly is
11162 var ondrain = pipeOnDrain(src);
11163 dest.on('drain', ondrain);
11165 var cleanedUp = false;
11166 function cleanup() {
11168 // cleanup event handlers once the pipe is broken
11169 dest.removeListener('close', onclose);
11170 dest.removeListener('finish', onfinish);
11171 dest.removeListener('drain', ondrain);
11172 dest.removeListener('error', onerror);
11173 dest.removeListener('unpipe', onunpipe);
11174 src.removeListener('end', onend);
11175 src.removeListener('end', unpipe);
11176 src.removeListener('data', ondata);
11180 // if the reader is waiting for a drain event from this
11181 // specific writer, then it would cause it to never start
11183 // So, if this is awaiting a drain, then we just call it now.
11184 // If we don't know, then assume that we are waiting for one.
11185 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11188 // If the user pushes more data while we're writing to dest then we'll end up
11189 // in ondata again. However, we only want to increase awaitDrain once because
11190 // dest will only emit one 'drain' event for the multiple writes.
11191 // =
> Introduce a guard on increasing awaitDrain.
11192 var increasedAwaitDrain = false;
11193 src.on('data', ondata);
11194 function ondata(chunk) {
11196 increasedAwaitDrain = false;
11197 var ret = dest.write(chunk);
11198 if (false === ret && !increasedAwaitDrain) {
11199 // If the user unpiped during `dest.write()`, it is possible
11200 // to get stuck in a permanently paused state if that write
11201 // also returned false.
11202 // =
> Check whether `dest` is still a piping destination.
11203 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11204 debug('false write response, pause', src._readableState.awaitDrain);
11205 src._readableState.awaitDrain++;
11206 increasedAwaitDrain = true;
11212 // if the dest has an error, then stop piping into it.
11213 // however, don't suppress the throwing behavior for this.
11214 function onerror(er) {
11215 debug('onerror', er);
11217 dest.removeListener('error', onerror);
11218 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11221 // Make sure our error handler is attached before userland ones.
11222 prependListener(dest, 'error', onerror);
11224 // Both close and finish should trigger unpipe, but only once.
11225 function onclose() {
11226 dest.removeListener('finish', onfinish);
11229 dest.once('close', onclose);
11230 function onfinish() {
11232 dest.removeListener('close', onclose);
11235 dest.once('finish', onfinish);
11237 function unpipe() {
11242 // tell the dest that it's being piped to
11243 dest.emit('pipe', src);
11245 // start the flow if it hasn't been started already.
11246 if (!state.flowing) {
11247 debug('pipe resume');
11254 function pipeOnDrain(src) {
11255 return function () {
11256 var state = src._readableState;
11257 debug('pipeOnDrain', state.awaitDrain);
11258 if (state.awaitDrain) state.awaitDrain--;
11259 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11260 state.flowing = true;
11266 Readable.prototype.unpipe = function (dest) {
11267 var state = this._readableState;
11268 var unpipeInfo = { hasUnpiped: false };
11270 // if we're not piping anywhere, then do nothing.
11271 if (state.pipesCount ===
0) return this;
11273 // just one destination. most common case.
11274 if (state.pipesCount ===
1) {
11275 // passed in one, but it's not the right one.
11276 if (dest && dest !== state.pipes) return this;
11278 if (!dest) dest = state.pipes;
11281 state.pipes = null;
11282 state.pipesCount =
0;
11283 state.flowing = false;
11284 if (dest) dest.emit('unpipe', this, unpipeInfo);
11288 // slow case. multiple pipe destinations.
11292 var dests = state.pipes;
11293 var len = state.pipesCount;
11294 state.pipes = null;
11295 state.pipesCount =
0;
11296 state.flowing = false;
11298 for (var i =
0; i < len; i++) {
11299 dests[i].emit('unpipe', this, unpipeInfo);
11303 // try to find the right one.
11304 var index = indexOf(state.pipes, dest);
11305 if (index === -
1) return this;
11307 state.pipes.splice(index,
1);
11308 state.pipesCount -=
1;
11309 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11311 dest.emit('unpipe', this, unpipeInfo);
11316 // set up data events if they are asked for
11317 // Ensure readable listeners eventually get something
11318 Readable.prototype.on = function (ev, fn) {
11319 var res = Stream.prototype.on.call(this, ev, fn);
11321 if (ev === 'data') {
11322 // Start flowing on next tick if stream isn't explicitly paused
11323 if (this._readableState.flowing !== false) this.resume();
11324 } else if (ev === 'readable') {
11325 var state = this._readableState;
11326 if (!state.endEmitted && !state.readableListening) {
11327 state.readableListening = state.needReadable = true;
11328 state.emittedReadable = false;
11329 if (!state.reading) {
11330 processNextTick(nReadingNextTick, this);
11331 } else if (state.length) {
11332 emitReadable(this);
11339 Readable.prototype.addListener = Readable.prototype.on;
11341 function nReadingNextTick(self) {
11342 debug('readable nexttick read
0');
11346 // pause() and resume() are remnants of the legacy readable stream API
11347 // If the user uses them, then switch into old mode.
11348 Readable.prototype.resume = function () {
11349 var state = this._readableState;
11350 if (!state.flowing) {
11352 state.flowing = true;
11353 resume(this, state);
11358 function resume(stream, state) {
11359 if (!state.resumeScheduled) {
11360 state.resumeScheduled = true;
11361 processNextTick(resume_, stream, state);
11365 function resume_(stream, state) {
11366 if (!state.reading) {
11367 debug('resume read
0');
11371 state.resumeScheduled = false;
11372 state.awaitDrain =
0;
11373 stream.emit('resume');
11375 if (state.flowing && !state.reading) stream.read(
0);
11378 Readable.prototype.pause = function () {
11379 debug('call pause flowing=%j', this._readableState.flowing);
11380 if (false !== this._readableState.flowing) {
11382 this._readableState.flowing = false;
11383 this.emit('pause');
11388 function flow(stream) {
11389 var state = stream._readableState;
11390 debug('flow', state.flowing);
11391 while (state.flowing && stream.read() !== null) {}
11394 // wrap an old-style stream as the async data source.
11395 // This is *not* part of the readable stream interface.
11396 // It is an ugly unfortunate mess of history.
11397 Readable.prototype.wrap = function (stream) {
11398 var state = this._readableState;
11399 var paused = false;
11402 stream.on('end', function () {
11403 debug('wrapped end');
11404 if (state.decoder && !state.ended) {
11405 var chunk = state.decoder.end();
11406 if (chunk && chunk.length) self.push(chunk);
11412 stream.on('data', function (chunk) {
11413 debug('wrapped data');
11414 if (state.decoder) chunk = state.decoder.write(chunk);
11416 // don't skip over falsy values in objectMode
11417 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11419 var ret = self.push(chunk);
11426 // proxy all the other methods.
11427 // important when wrapping filters and duplexes.
11428 for (var i in stream) {
11429 if (this[i] === undefined && typeof stream[i] === 'function') {
11430 this[i] = function (method) {
11431 return function () {
11432 return stream[method].apply(stream, arguments);
11438 // proxy certain important events.
11439 for (var n =
0; n < kProxyEvents.length; n++) {
11440 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11443 // when we try to consume some more bytes, simply unpause the
11444 // underlying stream.
11445 self._read = function (n) {
11446 debug('wrapped _read', n);
11456 // exposed for testing purposes only.
11457 Readable._fromList = fromList;
11459 // Pluck off n bytes from an array of buffers.
11460 // Length is the combined lengths of all the buffers in the list.
11461 // This function is designed to be inlinable, so please take care when making
11462 // changes to the function body.
11463 function fromList(n, state) {
11464 // nothing buffered
11465 if (state.length ===
0) return null;
11468 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11469 // read it all, truncate the list
11470 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);
11471 state.buffer.clear();
11473 // read part of list
11474 ret = fromListPartial(n, state.buffer, state.decoder);
11480 // Extracts only enough buffered data to satisfy the amount requested.
11481 // This function is designed to be inlinable, so please take care when making
11482 // changes to the function body.
11483 function fromListPartial(n, list, hasStrings) {
11485 if (n < list.head.data.length) {
11486 // slice is the same for buffers and strings
11487 ret = list.head.data.slice(
0, n);
11488 list.head.data = list.head.data.slice(n);
11489 } else if (n === list.head.data.length) {
11490 // first chunk is a perfect match
11491 ret = list.shift();
11493 // result spans more than one buffer
11494 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11499 // Copies a specified amount of characters from the list of buffered data
11501 // This function is designed to be inlinable, so please take care when making
11502 // changes to the function body.
11503 function copyFromBufferString(n, list) {
11508 while (p = p.next) {
11510 var nb = n
> str.length ? str.length : n;
11511 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11514 if (nb === str.length) {
11516 if (p.next) list.head = p.next;else list.head = list.tail = null;
11519 p.data = str.slice(nb);
11529 // Copies a specified amount of bytes from the list of buffered data chunks.
11530 // This function is designed to be inlinable, so please take care when making
11531 // changes to the function body.
11532 function copyFromBuffer(n, list) {
11533 var ret = Buffer.allocUnsafe(n);
11537 n -= p.data.length;
11538 while (p = p.next) {
11540 var nb = n
> buf.length ? buf.length : n;
11541 buf.copy(ret, ret.length - n,
0, nb);
11544 if (nb === buf.length) {
11546 if (p.next) list.head = p.next;else list.head = list.tail = null;
11549 p.data = buf.slice(nb);
11559 function endReadable(stream) {
11560 var state = stream._readableState;
11562 // If we get here before consuming all the bytes, then that is a
11563 // bug in node. Should never happen.
11564 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11566 if (!state.endEmitted) {
11567 state.ended = true;
11568 processNextTick(endReadableNT, state, stream);
11572 function endReadableNT(state, stream) {
11573 // Check that we didn't get one last unshift.
11574 if (!state.endEmitted && state.length ===
0) {
11575 state.endEmitted = true;
11576 stream.readable = false;
11577 stream.emit('end');
11581 function forEach(xs, f) {
11582 for (var i =
0, l = xs.length; i < l; i++) {
11587 function indexOf(xs, x) {
11588 for (var i =
0, l = xs.length; i < l; i++) {
11589 if (xs[i] === x) return i;
11593 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11594 },{
"./_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){
11595 // Copyright Joyent, Inc. and other Node contributors.
11597 // Permission is hereby granted, free of charge, to any person obtaining a
11598 // copy of this software and associated documentation files (the
11599 //
"Software"), to deal in the Software without restriction, including
11600 // without limitation the rights to use, copy, modify, merge, publish,
11601 // distribute, sublicense, and/or sell copies of the Software, and to permit
11602 // persons to whom the Software is furnished to do so, subject to the
11603 // following conditions:
11605 // The above copyright notice and this permission notice shall be included
11606 // in all copies or substantial portions of the Software.
11608 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11609 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11610 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11611 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11612 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11613 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11614 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11616 // a transform stream is a readable/writable stream where you do
11617 // something with the data. Sometimes it's called a
"filter",
11618 // but that's not a great name for it, since that implies a thing where
11619 // some bits pass through, and others are simply ignored. (That would
11620 // be a valid example of a transform, of course.)
11622 // While the output is causally related to the input, it's not a
11623 // necessarily symmetric or synchronous transformation. For example,
11624 // a zlib stream might take multiple plain-text writes(), and then
11625 // emit a single compressed chunk some time in the future.
11627 // Here's how this works:
11629 // The Transform stream has all the aspects of the readable and writable
11630 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11631 // internally, and returns false if there's a lot of pending writes
11632 // buffered up. When you call read(), that calls _read(n) until
11633 // there's enough pending readable data buffered up.
11635 // In a transform stream, the written data is placed in a buffer. When
11636 // _read(n) is called, it transforms the queued up data, calling the
11637 // buffered _write cb's as it consumes chunks. If consuming a single
11638 // written chunk would result in multiple output chunks, then the first
11639 // outputted bit calls the readcb, and subsequent chunks just go into
11640 // the read buffer, and will cause it to emit 'readable' if necessary.
11642 // This way, back-pressure is actually determined by the reading side,
11643 // since _read has to be called to start processing a new chunk. However,
11644 // a pathological inflate type of transform can cause excessive buffering
11645 // here. For example, imagine a stream where every byte of input is
11646 // interpreted as an integer from
0-
255, and then results in that many
11647 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11648 //
1kb of data being output. In this case, you could write a very small
11649 // amount of input, and end up with a very large amount of output. In
11650 // such a pathological inflating mechanism, there'd be no way to tell
11651 // the system to stop doing the transform. A single
4MB write could
11652 // cause the system to run out of memory.
11654 // However, even in such a pathological case, only a single written chunk
11655 // would be consumed, and then the rest would wait (un-transformed) until
11656 // the results of the previous transformed chunk were consumed.
11660 module.exports = Transform;
11662 var Duplex = require('./_stream_duplex');
11665 var util = require('core-util-is');
11666 util.inherits = require('inherits');
11669 util.inherits(Transform, Duplex);
11671 function TransformState(stream) {
11672 this.afterTransform = function (er, data) {
11673 return afterTransform(stream, er, data);
11676 this.needTransform = false;
11677 this.transforming = false;
11678 this.writecb = null;
11679 this.writechunk = null;
11680 this.writeencoding = null;
11683 function afterTransform(stream, er, data) {
11684 var ts = stream._transformState;
11685 ts.transforming = false;
11687 var cb = ts.writecb;
11690 return stream.emit('error', new Error('write callback called multiple times'));
11693 ts.writechunk = null;
11696 if (data !== null && data !== undefined) stream.push(data);
11700 var rs = stream._readableState;
11701 rs.reading = false;
11702 if (rs.needReadable || rs.length < rs.highWaterMark) {
11703 stream._read(rs.highWaterMark);
11707 function Transform(options) {
11708 if (!(this instanceof Transform)) return new Transform(options);
11710 Duplex.call(this, options);
11712 this._transformState = new TransformState(this);
11716 // start out asking for a readable event once data is transformed.
11717 this._readableState.needReadable = true;
11719 // we have implemented the _read method, and done the other things
11720 // that Readable wants before the first _read call, so unset the
11721 // sync guard flag.
11722 this._readableState.sync = false;
11725 if (typeof options.transform === 'function') this._transform = options.transform;
11727 if (typeof options.flush === 'function') this._flush = options.flush;
11730 // When the writable side finishes, then flush out anything remaining.
11731 this.once('prefinish', function () {
11732 if (typeof this._flush === 'function') this._flush(function (er, data) {
11733 done(stream, er, data);
11734 });else done(stream);
11738 Transform.prototype.push = function (chunk, encoding) {
11739 this._transformState.needTransform = false;
11740 return Duplex.prototype.push.call(this, chunk, encoding);
11743 // This is the part where you do stuff!
11744 // override this function in implementation classes.
11745 // 'chunk' is an input chunk.
11747 // Call `push(newChunk)` to pass along transformed output
11748 // to the readable side. You may call 'push' zero or more times.
11750 // Call `cb(err)` when you are done with this chunk. If you pass
11751 // an error, then that'll put the hurt on the whole operation. If you
11752 // never call cb(), then you'll never get another chunk.
11753 Transform.prototype._transform = function (chunk, encoding, cb) {
11754 throw new Error('_transform() is not implemented');
11757 Transform.prototype._write = function (chunk, encoding, cb) {
11758 var ts = this._transformState;
11760 ts.writechunk = chunk;
11761 ts.writeencoding = encoding;
11762 if (!ts.transforming) {
11763 var rs = this._readableState;
11764 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11768 // Doesn't matter what the args are here.
11769 // _transform does all the work.
11770 // That we got here means that the readable side wants more data.
11771 Transform.prototype._read = function (n) {
11772 var ts = this._transformState;
11774 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11775 ts.transforming = true;
11776 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11778 // mark that we need a transform, so that any data that comes in
11779 // will get processed, now that we've asked for it.
11780 ts.needTransform = true;
11784 Transform.prototype._destroy = function (err, cb) {
11787 Duplex.prototype._destroy.call(this, err, function (err2) {
11789 _this.emit('close');
11793 function done(stream, er, data) {
11794 if (er) return stream.emit('error', er);
11796 if (data !== null && data !== undefined) stream.push(data);
11798 // if there's nothing in the write buffer, then that means
11799 // that nothing more will ever be provided
11800 var ws = stream._writableState;
11801 var ts = stream._transformState;
11803 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11805 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11807 return stream.push(null);
11809 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11810 (function (process,global){
11811 // Copyright Joyent, Inc. and other Node contributors.
11813 // Permission is hereby granted, free of charge, to any person obtaining a
11814 // copy of this software and associated documentation files (the
11815 // "Software"), to deal in the Software without restriction, including
11816 // without limitation the rights to use, copy, modify, merge, publish,
11817 // distribute, sublicense, and/or sell copies of the Software, and to permit
11818 // persons to whom the Software is furnished to do so, subject to the
11819 // following conditions:
11821 // The above copyright notice and this permission notice shall be included
11822 // in all copies or substantial portions of the Software.
11824 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11825 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11826 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11827 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11828 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11829 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11830 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11832 // A bit simpler than readable streams.
11833 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11834 // the drain event emission and buffering.
11840 var processNextTick = require('process-nextick-args');
11843 module.exports = Writable;
11845 /*
<replacement> */
11846 function WriteReq(chunk, encoding, cb) {
11847 this.chunk = chunk;
11848 this.encoding = encoding;
11849 this.callback = cb;
11853 // It seems a linked list but it is not
11854 // there will be only
2 of these for each stream
11855 function CorkedRequest(state) {
11860 this.finish = function () {
11861 onCorkedFinish(_this, state);
11864 /*
</replacement> */
11867 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11874 Writable.WritableState = WritableState;
11877 var util = require('core-util-is');
11878 util.inherits = require('inherits');
11882 var internalUtil = {
11883 deprecate: require('util-deprecate')
11888 var Stream = require('./internal/streams/stream');
11892 var Buffer = require('safe-buffer').Buffer;
11893 var OurUint8Array = global.Uint8Array || function () {};
11894 function _uint8ArrayToBuffer(chunk) {
11895 return Buffer.from(chunk);
11897 function _isUint8Array(obj) {
11898 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11902 var destroyImpl = require('./internal/streams/destroy');
11904 util.inherits(Writable, Stream);
11908 function WritableState(options, stream) {
11909 Duplex = Duplex || require('./_stream_duplex');
11911 options = options || {};
11913 // object stream flag to indicate whether or not this stream
11914 // contains buffers or objects.
11915 this.objectMode = !!options.objectMode;
11917 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11919 // the point at which write() starts returning false
11920 // Note:
0 is a valid value, means that we always return false if
11921 // the entire buffer is not flushed immediately on write()
11922 var hwm = options.highWaterMark;
11923 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11924 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11927 this.highWaterMark = Math.floor(this.highWaterMark);
11929 // if _final has been called
11930 this.finalCalled = false;
11932 // drain event flag.
11933 this.needDrain = false;
11934 // at the start of calling end()
11935 this.ending = false;
11936 // when end() has been called, and returned
11937 this.ended = false;
11938 // when 'finish' is emitted
11939 this.finished = false;
11941 // has it been destroyed
11942 this.destroyed = false;
11944 // should we decode strings into buffers before passing to _write?
11945 // this is here so that some node-core streams can optimize string
11946 // handling at a lower level.
11947 var noDecode = options.decodeStrings === false;
11948 this.decodeStrings = !noDecode;
11950 // Crypto is kind of old and crusty. Historically, its default string
11951 // encoding is 'binary' so we have to make this configurable.
11952 // Everything else in the universe uses 'utf8', though.
11953 this.defaultEncoding = options.defaultEncoding || 'utf8';
11955 // not an actual buffer we keep track of, but a measurement
11956 // of how much we're waiting to get pushed to some underlying
11960 // a flag to see when we're in the middle of a write.
11961 this.writing = false;
11963 // when true all writes will be buffered until .uncork() call
11966 // a flag to be able to tell if the onwrite cb is called immediately,
11967 // or on a later tick. We set this to true at first, because any
11968 // actions that shouldn't happen until "later" should generally also
11969 // not happen before the first write call.
11972 // a flag to know if we're processing previously buffered items, which
11973 // may call the _write() callback in the same tick, so that we don't
11974 // end up in an overlapped onwrite situation.
11975 this.bufferProcessing = false;
11977 // the callback that's passed to _write(chunk,cb)
11978 this.onwrite = function (er) {
11979 onwrite(stream, er);
11982 // the callback that the user supplies to write(chunk,encoding,cb)
11983 this.writecb = null;
11985 // the amount that is being written when _write is called.
11988 this.bufferedRequest = null;
11989 this.lastBufferedRequest = null;
11991 // number of pending user-supplied write callbacks
11992 // this must be
0 before 'finish' can be emitted
11993 this.pendingcb =
0;
11995 // emit prefinish if the only thing we're waiting for is _write cbs
11996 // This is relevant for synchronous Transform streams
11997 this.prefinished = false;
11999 // True if the error was already emitted and should not be thrown again
12000 this.errorEmitted = false;
12002 // count buffered requests
12003 this.bufferedRequestCount =
0;
12005 // allocate the first CorkedRequest, there is always
12006 // one allocated and free to use, and we maintain at most two
12007 this.corkedRequestsFree = new CorkedRequest(this);
12010 WritableState.prototype.getBuffer = function getBuffer() {
12011 var current = this.bufferedRequest;
12015 current = current.next;
12022 Object.defineProperty(WritableState.prototype, 'buffer', {
12023 get: internalUtil.deprecate(function () {
12024 return this.getBuffer();
12025 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12030 // Test _writableState for inheritance to account for Duplex streams,
12031 // whose prototype chain only points to Readable.
12032 var realHasInstance;
12033 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12034 realHasInstance = Function.prototype[Symbol.hasInstance];
12035 Object.defineProperty(Writable, Symbol.hasInstance, {
12036 value: function (object) {
12037 if (realHasInstance.call(this, object)) return true;
12039 return object && object._writableState instanceof WritableState;
12043 realHasInstance = function (object) {
12044 return object instanceof this;
12048 function Writable(options) {
12049 Duplex = Duplex || require('./_stream_duplex');
12051 // Writable ctor is applied to Duplexes, too.
12052 // `realHasInstance` is necessary because using plain `instanceof`
12053 // would return false, as no `_writableState` property is attached.
12055 // Trying to use the custom `instanceof` for Writable here will also break the
12056 // Node.js LazyTransform implementation, which has a non-trivial getter for
12057 // `_writableState` that would lead to infinite recursion.
12058 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12059 return new Writable(options);
12062 this._writableState = new WritableState(options, this);
12065 this.writable = true;
12068 if (typeof options.write === 'function') this._write = options.write;
12070 if (typeof options.writev === 'function') this._writev = options.writev;
12072 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12074 if (typeof options.final === 'function') this._final = options.final;
12080 // Otherwise people can pipe Writable streams, which is just wrong.
12081 Writable.prototype.pipe = function () {
12082 this.emit('error', new Error('Cannot pipe, not readable'));
12085 function writeAfterEnd(stream, cb) {
12086 var er = new Error('write after end');
12087 // TODO: defer error events consistently everywhere, not just the cb
12088 stream.emit('error', er);
12089 processNextTick(cb, er);
12092 // Checks that a user-supplied chunk is valid, especially for the particular
12093 // mode the stream is in. Currently this means that `null` is never accepted
12094 // and undefined/non-string values are only allowed in object mode.
12095 function validChunk(stream, state, chunk, cb) {
12099 if (chunk === null) {
12100 er = new TypeError('May not write null values to stream');
12101 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12102 er = new TypeError('Invalid non-string/buffer chunk');
12105 stream.emit('error', er);
12106 processNextTick(cb, er);
12112 Writable.prototype.write = function (chunk, encoding, cb) {
12113 var state = this._writableState;
12115 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12117 if (isBuf && !Buffer.isBuffer(chunk)) {
12118 chunk = _uint8ArrayToBuffer(chunk);
12121 if (typeof encoding === 'function') {
12126 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12128 if (typeof cb !== 'function') cb = nop;
12130 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12132 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12138 Writable.prototype.cork = function () {
12139 var state = this._writableState;
12144 Writable.prototype.uncork = function () {
12145 var state = this._writableState;
12147 if (state.corked) {
12150 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12154 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12155 // node::ParseEncoding() requires lower case.
12156 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12157 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);
12158 this._writableState.defaultEncoding = encoding;
12162 function decodeChunk(state, chunk, encoding) {
12163 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12164 chunk = Buffer.from(chunk, encoding);
12169 // if we're already writing something, then just put this
12170 // in the queue, and wait our turn. Otherwise, call _write
12171 // If we return false, then we need a drain event, so set that flag.
12172 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12174 var newChunk = decodeChunk(state, chunk, encoding);
12175 if (chunk !== newChunk) {
12177 encoding = 'buffer';
12181 var len = state.objectMode ?
1 : chunk.length;
12183 state.length += len;
12185 var ret = state.length < state.highWaterMark;
12186 // we must ensure that previous needDrain will not be reset to false.
12187 if (!ret) state.needDrain = true;
12189 if (state.writing || state.corked) {
12190 var last = state.lastBufferedRequest;
12191 state.lastBufferedRequest = {
12193 encoding: encoding,
12199 last.next = state.lastBufferedRequest;
12201 state.bufferedRequest = state.lastBufferedRequest;
12203 state.bufferedRequestCount +=
1;
12205 doWrite(stream, state, false, len, chunk, encoding, cb);
12211 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12212 state.writelen = len;
12213 state.writecb = cb;
12214 state.writing = true;
12216 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12217 state.sync = false;
12220 function onwriteError(stream, state, sync, er, cb) {
12224 // defer the callback if we are being called synchronously
12225 // to avoid piling up things on the stack
12226 processNextTick(cb, er);
12227 // this can emit finish, and it will always happen
12229 processNextTick(finishMaybe, stream, state);
12230 stream._writableState.errorEmitted = true;
12231 stream.emit('error', er);
12233 // the caller expect this to happen before if
12236 stream._writableState.errorEmitted = true;
12237 stream.emit('error', er);
12238 // this can emit finish, but finish must
12239 // always follow error
12240 finishMaybe(stream, state);
12244 function onwriteStateUpdate(state) {
12245 state.writing = false;
12246 state.writecb = null;
12247 state.length -= state.writelen;
12248 state.writelen =
0;
12251 function onwrite(stream, er) {
12252 var state = stream._writableState;
12253 var sync = state.sync;
12254 var cb = state.writecb;
12256 onwriteStateUpdate(state);
12258 if (er) onwriteError(stream, state, sync, er, cb);else {
12259 // Check if we're actually ready to finish, but don't emit yet
12260 var finished = needFinish(state);
12262 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12263 clearBuffer(stream, state);
12268 asyncWrite(afterWrite, stream, state, finished, cb);
12271 afterWrite(stream, state, finished, cb);
12276 function afterWrite(stream, state, finished, cb) {
12277 if (!finished) onwriteDrain(stream, state);
12280 finishMaybe(stream, state);
12283 // Must force callback to be called on nextTick, so that we don't
12284 // emit 'drain' before the write() consumer gets the 'false' return
12285 // value, and has a chance to attach a 'drain' listener.
12286 function onwriteDrain(stream, state) {
12287 if (state.length ===
0 && state.needDrain) {
12288 state.needDrain = false;
12289 stream.emit('drain');
12293 // if there's something in the buffer waiting, then process it
12294 function clearBuffer(stream, state) {
12295 state.bufferProcessing = true;
12296 var entry = state.bufferedRequest;
12298 if (stream._writev && entry && entry.next) {
12299 // Fast case, write everything using _writev()
12300 var l = state.bufferedRequestCount;
12301 var buffer = new Array(l);
12302 var holder = state.corkedRequestsFree;
12303 holder.entry = entry;
12306 var allBuffers = true;
12308 buffer[count] = entry;
12309 if (!entry.isBuf) allBuffers = false;
12310 entry = entry.next;
12313 buffer.allBuffers = allBuffers;
12315 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12317 // doWrite is almost always async, defer these to save a bit of time
12318 // as the hot path ends with doWrite
12320 state.lastBufferedRequest = null;
12322 state.corkedRequestsFree = holder.next;
12323 holder.next = null;
12325 state.corkedRequestsFree = new CorkedRequest(state);
12328 // Slow case, write chunks one-by-one
12330 var chunk = entry.chunk;
12331 var encoding = entry.encoding;
12332 var cb = entry.callback;
12333 var len = state.objectMode ?
1 : chunk.length;
12335 doWrite(stream, state, false, len, chunk, encoding, cb);
12336 entry = entry.next;
12337 // if we didn't call the onwrite immediately, then
12338 // it means that we need to wait until it does.
12339 // also, that means that the chunk and cb are currently
12340 // being processed, so move the buffer counter past them.
12341 if (state.writing) {
12346 if (entry === null) state.lastBufferedRequest = null;
12349 state.bufferedRequestCount =
0;
12350 state.bufferedRequest = entry;
12351 state.bufferProcessing = false;
12354 Writable.prototype._write = function (chunk, encoding, cb) {
12355 cb(new Error('_write() is not implemented'));
12358 Writable.prototype._writev = null;
12360 Writable.prototype.end = function (chunk, encoding, cb) {
12361 var state = this._writableState;
12363 if (typeof chunk === 'function') {
12367 } else if (typeof encoding === 'function') {
12372 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12374 // .end() fully uncorks
12375 if (state.corked) {
12380 // ignore unnecessary end() calls.
12381 if (!state.ending && !state.finished) endWritable(this, state, cb);
12384 function needFinish(state) {
12385 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12387 function callFinal(stream, state) {
12388 stream._final(function (err) {
12391 stream.emit('error', err);
12393 state.prefinished = true;
12394 stream.emit('prefinish');
12395 finishMaybe(stream, state);
12398 function prefinish(stream, state) {
12399 if (!state.prefinished && !state.finalCalled) {
12400 if (typeof stream._final === 'function') {
12402 state.finalCalled = true;
12403 processNextTick(callFinal, stream, state);
12405 state.prefinished = true;
12406 stream.emit('prefinish');
12411 function finishMaybe(stream, state) {
12412 var need = needFinish(state);
12414 prefinish(stream, state);
12415 if (state.pendingcb ===
0) {
12416 state.finished = true;
12417 stream.emit('finish');
12423 function endWritable(stream, state, cb) {
12424 state.ending = true;
12425 finishMaybe(stream, state);
12427 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12429 state.ended = true;
12430 stream.writable = false;
12433 function onCorkedFinish(corkReq, state, err) {
12434 var entry = corkReq.entry;
12435 corkReq.entry = null;
12437 var cb = entry.callback;
12440 entry = entry.next;
12442 if (state.corkedRequestsFree) {
12443 state.corkedRequestsFree.next = corkReq;
12445 state.corkedRequestsFree = corkReq;
12449 Object.defineProperty(Writable.prototype, 'destroyed', {
12451 if (this._writableState === undefined) {
12454 return this._writableState.destroyed;
12456 set: function (value) {
12457 // we ignore the value if the stream
12458 // has not been initialized yet
12459 if (!this._writableState) {
12463 // backward compatibility, the user is explicitly
12464 // managing destroyed
12465 this._writableState.destroyed = value;
12469 Writable.prototype.destroy = destroyImpl.destroy;
12470 Writable.prototype._undestroy = destroyImpl.undestroy;
12471 Writable.prototype._destroy = function (err, cb) {
12475 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12476 },{"./_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){
12481 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12483 var Buffer = require('safe-buffer').Buffer;
12486 function copyBuffer(src, target, offset) {
12487 src.copy(target, offset);
12490 module.exports = function () {
12491 function BufferList() {
12492 _classCallCheck(this, BufferList);
12499 BufferList.prototype.push = function push(v) {
12500 var entry = { data: v, next: null };
12501 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12506 BufferList.prototype.unshift = function unshift(v) {
12507 var entry = { data: v, next: this.head };
12508 if (this.length ===
0) this.tail = entry;
12513 BufferList.prototype.shift = function shift() {
12514 if (this.length ===
0) return;
12515 var ret = this.head.data;
12516 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12521 BufferList.prototype.clear = function clear() {
12522 this.head = this.tail = null;
12526 BufferList.prototype.join = function join(s) {
12527 if (this.length ===
0) return '';
12529 var ret = '' + p.data;
12530 while (p = p.next) {
12535 BufferList.prototype.concat = function concat(n) {
12536 if (this.length ===
0) return Buffer.alloc(
0);
12537 if (this.length ===
1) return this.head.data;
12538 var ret = Buffer.allocUnsafe(n
>>> 0);
12542 copyBuffer(p.data, ret, i);
12543 i += p.data.length;
12551 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12556 var processNextTick = require('process-nextick-args');
12559 // undocumented cb() API, needed for core, not for public API
12560 function destroy(err, cb) {
12563 var readableDestroyed = this._readableState && this._readableState.destroyed;
12564 var writableDestroyed = this._writableState && this._writableState.destroyed;
12566 if (readableDestroyed || writableDestroyed) {
12569 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12570 processNextTick(emitErrorNT, this, err);
12575 // we set destroyed to true before firing error callbacks in order
12576 // to make it re-entrance safe in case destroy() is called within callbacks
12578 if (this._readableState) {
12579 this._readableState.destroyed = true;
12582 // if this is a duplex stream mark the writable part as destroyed as well
12583 if (this._writableState) {
12584 this._writableState.destroyed = true;
12587 this._destroy(err || null, function (err) {
12589 processNextTick(emitErrorNT, _this, err);
12590 if (_this._writableState) {
12591 _this._writableState.errorEmitted = true;
12599 function undestroy() {
12600 if (this._readableState) {
12601 this._readableState.destroyed = false;
12602 this._readableState.reading = false;
12603 this._readableState.ended = false;
12604 this._readableState.endEmitted = false;
12607 if (this._writableState) {
12608 this._writableState.destroyed = false;
12609 this._writableState.ended = false;
12610 this._writableState.ending = false;
12611 this._writableState.finished = false;
12612 this._writableState.errorEmitted = false;
12616 function emitErrorNT(self, err) {
12617 self.emit('error', err);
12622 undestroy: undestroy
12624 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12625 module.exports = require('events').EventEmitter;
12627 },{"events":
6}],
22:[function(require,module,exports){
12628 module.exports = require('./readable').PassThrough
12630 },{"./readable":
23}],
23:[function(require,module,exports){
12631 exports = module.exports = require('./lib/_stream_readable.js');
12632 exports.Stream = exports;
12633 exports.Readable = exports;
12634 exports.Writable = require('./lib/_stream_writable.js');
12635 exports.Duplex = require('./lib/_stream_duplex.js');
12636 exports.Transform = require('./lib/_stream_transform.js');
12637 exports.PassThrough = require('./lib/_stream_passthrough.js');
12639 },{"./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){
12640 module.exports = require('./readable').Transform
12642 },{"./readable":
23}],
25:[function(require,module,exports){
12643 module.exports = require('./lib/_stream_writable.js');
12645 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12646 /* eslint-disable node/no-deprecated-api */
12647 var buffer = require('buffer')
12648 var Buffer = buffer.Buffer
12650 // alternative to using Object.keys for old browsers
12651 function copyProps (src, dst) {
12652 for (var key in src) {
12653 dst[key] = src[key]
12656 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12657 module.exports = buffer
12659 // Copy properties from require('buffer')
12660 copyProps(buffer, exports)
12661 exports.Buffer = SafeBuffer
12664 function SafeBuffer (arg, encodingOrOffset, length) {
12665 return Buffer(arg, encodingOrOffset, length)
12668 // Copy static methods from Buffer
12669 copyProps(Buffer, SafeBuffer)
12671 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12672 if (typeof arg === 'number') {
12673 throw new TypeError('Argument must not be a number')
12675 return Buffer(arg, encodingOrOffset, length)
12678 SafeBuffer.alloc = function (size, fill, encoding) {
12679 if (typeof size !== 'number') {
12680 throw new TypeError('Argument must be a number')
12682 var buf = Buffer(size)
12683 if (fill !== undefined) {
12684 if (typeof encoding === 'string') {
12685 buf.fill(fill, encoding)
12695 SafeBuffer.allocUnsafe = function (size) {
12696 if (typeof size !== 'number') {
12697 throw new TypeError('Argument must be a number')
12699 return Buffer(size)
12702 SafeBuffer.allocUnsafeSlow = function (size) {
12703 if (typeof size !== 'number') {
12704 throw new TypeError('Argument must be a number')
12706 return buffer.SlowBuffer(size)
12709 },{"buffer":
4}],
27:[function(require,module,exports){
12710 // Copyright Joyent, Inc. and other Node contributors.
12712 // Permission is hereby granted, free of charge, to any person obtaining a
12713 // copy of this software and associated documentation files (the
12714 // "Software"), to deal in the Software without restriction, including
12715 // without limitation the rights to use, copy, modify, merge, publish,
12716 // distribute, sublicense, and/or sell copies of the Software, and to permit
12717 // persons to whom the Software is furnished to do so, subject to the
12718 // following conditions:
12720 // The above copyright notice and this permission notice shall be included
12721 // in all copies or substantial portions of the Software.
12723 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12724 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12725 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12726 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12727 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12728 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12729 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12731 module.exports = Stream;
12733 var EE = require('events').EventEmitter;
12734 var inherits = require('inherits');
12736 inherits(Stream, EE);
12737 Stream.Readable = require('readable-stream/readable.js');
12738 Stream.Writable = require('readable-stream/writable.js');
12739 Stream.Duplex = require('readable-stream/duplex.js');
12740 Stream.Transform = require('readable-stream/transform.js');
12741 Stream.PassThrough = require('readable-stream/passthrough.js');
12743 // Backwards-compat with node
0.4.x
12744 Stream.Stream = Stream;
12748 // old-style streams. Note that the pipe method (the only relevant
12749 // part of this class) is overridden in the Readable class.
12751 function Stream() {
12755 Stream.prototype.pipe = function(dest, options) {
12758 function ondata(chunk) {
12759 if (dest.writable) {
12760 if (false === dest.write(chunk) && source.pause) {
12766 source.on('data', ondata);
12768 function ondrain() {
12769 if (source.readable && source.resume) {
12774 dest.on('drain', ondrain);
12776 // If the 'end' option is not supplied, dest.end() will be called when
12777 // source gets the 'end' or 'close' events. Only dest.end() once.
12778 if (!dest._isStdio && (!options || options.end !== false)) {
12779 source.on('end', onend);
12780 source.on('close', onclose);
12783 var didOnEnd = false;
12785 if (didOnEnd) return;
12792 function onclose() {
12793 if (didOnEnd) return;
12796 if (typeof dest.destroy === 'function') dest.destroy();
12799 // don't leave dangling pipes when there are errors.
12800 function onerror(er) {
12802 if (EE.listenerCount(this, 'error') ===
0) {
12803 throw er; // Unhandled stream error in pipe.
12807 source.on('error', onerror);
12808 dest.on('error', onerror);
12810 // remove all the event listeners that were added.
12811 function cleanup() {
12812 source.removeListener('data', ondata);
12813 dest.removeListener('drain', ondrain);
12815 source.removeListener('end', onend);
12816 source.removeListener('close', onclose);
12818 source.removeListener('error', onerror);
12819 dest.removeListener('error', onerror);
12821 source.removeListener('end', cleanup);
12822 source.removeListener('close', cleanup);
12824 dest.removeListener('close', cleanup);
12827 source.on('end', cleanup);
12828 source.on('close', cleanup);
12830 dest.on('close', cleanup);
12832 dest.emit('pipe', source);
12834 // Allow for unix-like usage: A.pipe(B).pipe(C)
12838 },{"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){
12841 var Buffer = require('safe-buffer').Buffer;
12843 var isEncoding = Buffer.isEncoding || function (encoding) {
12844 encoding = '' + encoding;
12845 switch (encoding && encoding.toLowerCase()) {
12846 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':
12853 function _normalizeEncoding(enc) {
12854 if (!enc) return 'utf8';
12874 if (retried) return; // undefined
12875 enc = ('' + enc).toLowerCase();
12881 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12882 // modules monkey-patch it to support additional encodings
12883 function normalizeEncoding(enc) {
12884 var nenc = _normalizeEncoding(enc);
12885 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12886 return nenc || enc;
12889 // StringDecoder provides an interface for efficiently splitting a series of
12890 // buffers into a series of JS strings without breaking apart multi-byte
12892 exports.StringDecoder = StringDecoder;
12893 function StringDecoder(encoding) {
12894 this.encoding = normalizeEncoding(encoding);
12896 switch (this.encoding) {
12898 this.text = utf16Text;
12899 this.end = utf16End;
12903 this.fillLast = utf8FillLast;
12907 this.text = base64Text;
12908 this.end = base64End;
12912 this.write = simpleWrite;
12913 this.end = simpleEnd;
12917 this.lastTotal =
0;
12918 this.lastChar = Buffer.allocUnsafe(nb);
12921 StringDecoder.prototype.write = function (buf) {
12922 if (buf.length ===
0) return '';
12925 if (this.lastNeed) {
12926 r = this.fillLast(buf);
12927 if (r === undefined) return '';
12933 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12937 StringDecoder.prototype.end = utf8End;
12939 // Returns only complete characters in a Buffer
12940 StringDecoder.prototype.text = utf8Text;
12942 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12943 StringDecoder.prototype.fillLast = function (buf) {
12944 if (this.lastNeed <= buf.length) {
12945 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12946 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12948 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12949 this.lastNeed -= buf.length;
12952 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12953 // continuation byte.
12954 function utf8CheckByte(byte) {
12955 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;
12959 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12960 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12961 // needed to complete the UTF-
8 character (if applicable) are returned.
12962 function utf8CheckIncomplete(self, buf, i) {
12963 var j = buf.length -
1;
12964 if (j < i) return
0;
12965 var nb = utf8CheckByte(buf[j]);
12967 if (nb
> 0) self.lastNeed = nb -
1;
12970 if (--j < i) return
0;
12971 nb = utf8CheckByte(buf[j]);
12973 if (nb
> 0) self.lastNeed = nb -
2;
12976 if (--j < i) return
0;
12977 nb = utf8CheckByte(buf[j]);
12980 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
12987 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
12988 // needed or are available. If we see a non-continuation byte where we expect
12989 // one, we
"replace" the validated continuation bytes we've seen so far with
12990 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
12991 // behavior. The continuation byte check is included three times in the case
12992 // where all of the continuation bytes for a character exist in the same buffer.
12993 // It is also done this way as a slight performance increase instead of using a
12995 function utf8CheckExtraBytes(self, buf, p) {
12996 if ((buf[
0] &
0xC0) !==
0x80) {
12998 return '\ufffd'.repeat(p);
13000 if (self.lastNeed
> 1 && buf.length
> 1) {
13001 if ((buf[
1] &
0xC0) !==
0x80) {
13003 return '\ufffd'.repeat(p +
1);
13005 if (self.lastNeed
> 2 && buf.length
> 2) {
13006 if ((buf[
2] &
0xC0) !==
0x80) {
13008 return '\ufffd'.repeat(p +
2);
13014 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13015 function utf8FillLast(buf) {
13016 var p = this.lastTotal - this.lastNeed;
13017 var r = utf8CheckExtraBytes(this, buf, p);
13018 if (r !== undefined) return r;
13019 if (this.lastNeed <= buf.length) {
13020 buf.copy(this.lastChar, p,
0, this.lastNeed);
13021 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13023 buf.copy(this.lastChar, p,
0, buf.length);
13024 this.lastNeed -= buf.length;
13027 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13028 // partial character, the character's bytes are buffered until the required
13029 // number of bytes are available.
13030 function utf8Text(buf, i) {
13031 var total = utf8CheckIncomplete(this, buf, i);
13032 if (!this.lastNeed) return buf.toString('utf8', i);
13033 this.lastTotal = total;
13034 var end = buf.length - (total - this.lastNeed);
13035 buf.copy(this.lastChar,
0, end);
13036 return buf.toString('utf8', i, end);
13039 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13040 // character needs to be added to the output.
13041 function utf8End(buf) {
13042 var r = buf && buf.length ? this.write(buf) : '';
13043 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13047 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13048 // number of bytes available, we need to check if we end on a leading/high
13049 // surrogate. In that case, we need to wait for the next two bytes in order to
13050 // decode the last character properly.
13051 function utf16Text(buf, i) {
13052 if ((buf.length - i) %
2 ===
0) {
13053 var r = buf.toString('utf16le', i);
13055 var c = r.charCodeAt(r.length -
1);
13056 if (c
>=
0xD800 && c <=
0xDBFF) {
13058 this.lastTotal =
4;
13059 this.lastChar[
0] = buf[buf.length -
2];
13060 this.lastChar[
1] = buf[buf.length -
1];
13061 return r.slice(
0, -
1);
13067 this.lastTotal =
2;
13068 this.lastChar[
0] = buf[buf.length -
1];
13069 return buf.toString('utf16le', i, buf.length -
1);
13072 // For UTF-
16LE we do not explicitly append special replacement characters if we
13073 // end on a partial character, we simply let v8 handle that.
13074 function utf16End(buf) {
13075 var r = buf && buf.length ? this.write(buf) : '';
13076 if (this.lastNeed) {
13077 var end = this.lastTotal - this.lastNeed;
13078 return r + this.lastChar.toString('utf16le',
0, end);
13083 function base64Text(buf, i) {
13084 var n = (buf.length - i) %
3;
13085 if (n ===
0) return buf.toString('base64', i);
13086 this.lastNeed =
3 - n;
13087 this.lastTotal =
3;
13089 this.lastChar[
0] = buf[buf.length -
1];
13091 this.lastChar[
0] = buf[buf.length -
2];
13092 this.lastChar[
1] = buf[buf.length -
1];
13094 return buf.toString('base64', i, buf.length - n);
13097 function base64End(buf) {
13098 var r = buf && buf.length ? this.write(buf) : '';
13099 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13103 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13104 function simpleWrite(buf) {
13105 return buf.toString(this.encoding);
13108 function simpleEnd(buf) {
13109 return buf && buf.length ? this.write(buf) : '';
13111 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13112 (function (global){
13118 module.exports = deprecate;
13121 * Mark that a method should not be used.
13122 * Returns a modified function which warns once by default.
13124 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13126 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13127 * will throw an Error when invoked.
13129 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13130 * will invoke `console.trace()` instead of `console.error()`.
13132 * @param {Function} fn - the function to deprecate
13133 * @param {String} msg - the string to print to the console when `fn` is invoked
13134 * @returns {Function} a new "deprecated" version of `fn`
13138 function deprecate (fn, msg) {
13139 if (config('noDeprecation')) {
13143 var warned = false;
13144 function deprecated() {
13146 if (config('throwDeprecation')) {
13147 throw new Error(msg);
13148 } else if (config('traceDeprecation')) {
13149 console.trace(msg);
13155 return fn.apply(this, arguments);
13162 * Checks `localStorage` for boolean values for the given `name`.
13164 * @param {String} name
13165 * @returns {Boolean}
13169 function config (name) {
13170 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13172 if (!global.localStorage) return false;
13176 var val = global.localStorage[name];
13177 if (null == val) return false;
13178 return String(val).toLowerCase() === 'true';
13181 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13182 },{}],
30:[function(require,module,exports){
13183 arguments[
4][
8][
0].apply(exports,arguments)
13184 },{"dup":
8}],
31:[function(require,module,exports){
13185 module.exports = function isBuffer(arg) {
13186 return arg && typeof arg === 'object'
13187 && typeof arg.copy === 'function'
13188 && typeof arg.fill === 'function'
13189 && typeof arg.readUInt8 === 'function';
13191 },{}],
32:[function(require,module,exports){
13192 (function (process,global){
13193 // Copyright Joyent, Inc. and other Node contributors.
13195 // Permission is hereby granted, free of charge, to any person obtaining a
13196 // copy of this software and associated documentation files (the
13197 // "Software"), to deal in the Software without restriction, including
13198 // without limitation the rights to use, copy, modify, merge, publish,
13199 // distribute, sublicense, and/or sell copies of the Software, and to permit
13200 // persons to whom the Software is furnished to do so, subject to the
13201 // following conditions:
13203 // The above copyright notice and this permission notice shall be included
13204 // in all copies or substantial portions of the Software.
13206 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13207 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13208 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13209 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13210 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13211 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13212 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13214 var formatRegExp = /%[sdj%]/g;
13215 exports.format = function(f) {
13216 if (!isString(f)) {
13218 for (var i =
0; i < arguments.length; i++) {
13219 objects.push(inspect(arguments[i]));
13221 return objects.join(' ');
13225 var args = arguments;
13226 var len = args.length;
13227 var str = String(f).replace(formatRegExp, function(x) {
13228 if (x === '%%') return '%';
13229 if (i
>= len) return x;
13231 case '%s': return String(args[i++]);
13232 case '%d': return Number(args[i++]);
13235 return JSON.stringify(args[i++]);
13237 return '[Circular]';
13243 for (var x = args[i]; i < len; x = args[++i]) {
13244 if (isNull(x) || !isObject(x)) {
13247 str += ' ' + inspect(x);
13254 // Mark that a method should not be used.
13255 // Returns a modified function which warns once by default.
13256 // If --no-deprecation is set, then it is a no-op.
13257 exports.deprecate = function(fn, msg) {
13258 // Allow for deprecating things in the process of starting up.
13259 if (isUndefined(global.process)) {
13260 return function() {
13261 return exports.deprecate(fn, msg).apply(this, arguments);
13265 if (process.noDeprecation === true) {
13269 var warned = false;
13270 function deprecated() {
13272 if (process.throwDeprecation) {
13273 throw new Error(msg);
13274 } else if (process.traceDeprecation) {
13275 console.trace(msg);
13277 console.error(msg);
13281 return fn.apply(this, arguments);
13290 exports.debuglog = function(set) {
13291 if (isUndefined(debugEnviron))
13292 debugEnviron = process.env.NODE_DEBUG || '';
13293 set = set.toUpperCase();
13294 if (!debugs[set]) {
13295 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13296 var pid = process.pid;
13297 debugs[set] = function() {
13298 var msg = exports.format.apply(exports, arguments);
13299 console.error('%s %d: %s', set, pid, msg);
13302 debugs[set] = function() {};
13305 return debugs[set];
13310 * Echos the value of a value. Trys to print the value out
13311 * in the best way possible given the different types.
13313 * @param {Object} obj The object to print out.
13314 * @param {Object} opts Optional options object that alters the output.
13316 /* legacy: obj, showHidden, depth, colors*/
13317 function inspect(obj, opts) {
13321 stylize: stylizeNoColor
13324 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13325 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13326 if (isBoolean(opts)) {
13328 ctx.showHidden = opts;
13330 // got an "options" object
13331 exports._extend(ctx, opts);
13333 // set default options
13334 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13335 if (isUndefined(ctx.depth)) ctx.depth =
2;
13336 if (isUndefined(ctx.colors)) ctx.colors = false;
13337 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13338 if (ctx.colors) ctx.stylize = stylizeWithColor;
13339 return formatValue(ctx, obj, ctx.depth);
13341 exports.inspect = inspect;
13344 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13347 'italic' : [
3,
23],
13348 'underline' : [
4,
24],
13349 'inverse' : [
7,
27],
13350 'white' : [
37,
39],
13352 'black' : [
30,
39],
13355 'green' : [
32,
39],
13356 'magenta' : [
35,
39],
13358 'yellow' : [
33,
39]
13361 // Don't use 'blue' not visible on cmd.exe
13364 'number': 'yellow',
13365 'boolean': 'yellow',
13366 'undefined': 'grey',
13370 // "name": intentionally not styling
13375 function stylizeWithColor(str, styleType) {
13376 var style = inspect.styles[styleType];
13379 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13380 '\u001b[' + inspect.colors[style][
1] + 'm';
13387 function stylizeNoColor(str, styleType) {
13392 function arrayToHash(array) {
13395 array.forEach(function(val, idx) {
13403 function formatValue(ctx, value, recurseTimes) {
13404 // Provide a hook for user-specified inspect functions.
13405 // Check that value is an object with an inspect function on it
13406 if (ctx.customInspect &&
13408 isFunction(value.inspect) &&
13409 // Filter out the util module, it's inspect function is special
13410 value.inspect !== exports.inspect &&
13411 // Also filter out any prototype objects using the circular check.
13412 !(value.constructor && value.constructor.prototype === value)) {
13413 var ret = value.inspect(recurseTimes, ctx);
13414 if (!isString(ret)) {
13415 ret = formatValue(ctx, ret, recurseTimes);
13420 // Primitive types cannot have properties
13421 var primitive = formatPrimitive(ctx, value);
13426 // Look up the keys of the object.
13427 var keys = Object.keys(value);
13428 var visibleKeys = arrayToHash(keys);
13430 if (ctx.showHidden) {
13431 keys = Object.getOwnPropertyNames(value);
13434 // IE doesn't make error fields non-enumerable
13435 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13437 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13438 return formatError(value);
13441 // Some type of object without properties can be shortcutted.
13442 if (keys.length ===
0) {
13443 if (isFunction(value)) {
13444 var name = value.name ? ': ' + value.name : '';
13445 return ctx.stylize('[Function' + name + ']', 'special');
13447 if (isRegExp(value)) {
13448 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13450 if (isDate(value)) {
13451 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13453 if (isError(value)) {
13454 return formatError(value);
13458 var base = '', array = false, braces = ['{', '}'];
13460 // Make Array say that they are Array
13461 if (isArray(value)) {
13463 braces = ['[', ']'];
13466 // Make functions say that they are functions
13467 if (isFunction(value)) {
13468 var n = value.name ? ': ' + value.name : '';
13469 base = ' [Function' + n + ']';
13472 // Make RegExps say that they are RegExps
13473 if (isRegExp(value)) {
13474 base = ' ' + RegExp.prototype.toString.call(value);
13477 // Make dates with properties first say the date
13478 if (isDate(value)) {
13479 base = ' ' + Date.prototype.toUTCString.call(value);
13482 // Make error with message first say the error
13483 if (isError(value)) {
13484 base = ' ' + formatError(value);
13487 if (keys.length ===
0 && (!array || value.length ==
0)) {
13488 return braces[
0] + base + braces[
1];
13491 if (recurseTimes <
0) {
13492 if (isRegExp(value)) {
13493 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13495 return ctx.stylize('[Object]', 'special');
13499 ctx.seen.push(value);
13503 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13505 output = keys.map(function(key) {
13506 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13512 return reduceToSingleString(output, base, braces);
13516 function formatPrimitive(ctx, value) {
13517 if (isUndefined(value))
13518 return ctx.stylize('undefined', 'undefined');
13519 if (isString(value)) {
13520 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13521 .replace(/'/g, "\\'")
13522 .replace(/\\"/g, '"') + '\'';
13523 return ctx.stylize(simple, 'string');
13525 if (isNumber(value))
13526 return ctx.stylize('' + value, 'number');
13527 if (isBoolean(value))
13528 return ctx.stylize('' + value, 'boolean');
13529 // For some reason typeof null is "object", so special case here.
13531 return ctx.stylize('null', 'null');
13535 function formatError(value) {
13536 return '[' + Error.prototype.toString.call(value) + ']';
13540 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13542 for (var i =
0, l = value.length; i < l; ++i) {
13543 if (hasOwnProperty(value, String(i))) {
13544 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13550 keys.forEach(function(key) {
13551 if (!key.match(/^\d+$/)) {
13552 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13560 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13561 var name, str, desc;
13562 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13565 str = ctx.stylize('[Getter/Setter]', 'special');
13567 str = ctx.stylize('[Getter]', 'special');
13571 str = ctx.stylize('[Setter]', 'special');
13574 if (!hasOwnProperty(visibleKeys, key)) {
13575 name = '[' + key + ']';
13578 if (ctx.seen.indexOf(desc.value) <
0) {
13579 if (isNull(recurseTimes)) {
13580 str = formatValue(ctx, desc.value, null);
13582 str = formatValue(ctx, desc.value, recurseTimes -
1);
13584 if (str.indexOf('\n')
> -
1) {
13586 str = str.split('\n').map(function(line) {
13588 }).join('\n').substr(
2);
13590 str = '\n' + str.split('\n').map(function(line) {
13596 str = ctx.stylize('[Circular]', 'special');
13599 if (isUndefined(name)) {
13600 if (array && key.match(/^\d+$/)) {
13603 name = JSON.stringify('' + key);
13604 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13605 name = name.substr(
1, name.length -
2);
13606 name = ctx.stylize(name, 'name');
13608 name = name.replace(/'/g, "\\'")
13609 .replace(/\\"/g, '"')
13610 .replace(/(^"|"$)/g, "'");
13611 name = ctx.stylize(name, 'string');
13615 return name + ': ' + str;
13619 function reduceToSingleString(output, base, braces) {
13620 var numLinesEst =
0;
13621 var length = output.reduce(function(prev, cur) {
13623 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13624 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13629 (base === '' ? '' : base + '\n ') +
13631 output.join(',\n ') +
13636 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13640 // NOTE: These type checking functions intentionally don't use `instanceof`
13641 // because it is fragile and can be easily faked with `Object.create()`.
13642 function isArray(ar) {
13643 return Array.isArray(ar);
13645 exports.isArray = isArray;
13647 function isBoolean(arg) {
13648 return typeof arg === 'boolean';
13650 exports.isBoolean = isBoolean;
13652 function isNull(arg) {
13653 return arg === null;
13655 exports.isNull = isNull;
13657 function isNullOrUndefined(arg) {
13658 return arg == null;
13660 exports.isNullOrUndefined = isNullOrUndefined;
13662 function isNumber(arg) {
13663 return typeof arg === 'number';
13665 exports.isNumber = isNumber;
13667 function isString(arg) {
13668 return typeof arg === 'string';
13670 exports.isString = isString;
13672 function isSymbol(arg) {
13673 return typeof arg === 'symbol';
13675 exports.isSymbol = isSymbol;
13677 function isUndefined(arg) {
13678 return arg === void
0;
13680 exports.isUndefined = isUndefined;
13682 function isRegExp(re) {
13683 return isObject(re) && objectToString(re) === '[object RegExp]';
13685 exports.isRegExp = isRegExp;
13687 function isObject(arg) {
13688 return typeof arg === 'object' && arg !== null;
13690 exports.isObject = isObject;
13692 function isDate(d) {
13693 return isObject(d) && objectToString(d) === '[object Date]';
13695 exports.isDate = isDate;
13697 function isError(e) {
13698 return isObject(e) &&
13699 (objectToString(e) === '[object Error]' || e instanceof Error);
13701 exports.isError = isError;
13703 function isFunction(arg) {
13704 return typeof arg === 'function';
13706 exports.isFunction = isFunction;
13708 function isPrimitive(arg) {
13709 return arg === null ||
13710 typeof arg === 'boolean' ||
13711 typeof arg === 'number' ||
13712 typeof arg === 'string' ||
13713 typeof arg === 'symbol' || // ES6 symbol
13714 typeof arg === 'undefined';
13716 exports.isPrimitive = isPrimitive;
13718 exports.isBuffer = require('./support/isBuffer');
13720 function objectToString(o) {
13721 return Object.prototype.toString.call(o);
13726 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13730 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13731 'Oct', 'Nov', 'Dec'];
13734 function timestamp() {
13735 var d = new Date();
13736 var time = [pad(d.getHours()),
13737 pad(d.getMinutes()),
13738 pad(d.getSeconds())].join(':');
13739 return [d.getDate(), months[d.getMonth()], time].join(' ');
13743 // log is just a thin wrapper to console.log that prepends a timestamp
13744 exports.log = function() {
13745 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13750 * Inherit the prototype methods from one constructor into another.
13752 * The Function.prototype.inherits from lang.js rewritten as a standalone
13753 * function (not on Function.prototype). NOTE: If this file is to be loaded
13754 * during bootstrapping this function needs to be rewritten using some native
13755 * functions as prototype setup using normal JavaScript does not work as
13756 * expected during bootstrapping (see mirror.js in r114903).
13758 * @param {function} ctor Constructor function which needs to inherit the
13760 * @param {function} superCtor Constructor function to inherit prototype from.
13762 exports.inherits = require('inherits');
13764 exports._extend = function(origin, add) {
13765 // Don't do anything if add isn't an object
13766 if (!add || !isObject(add)) return origin;
13768 var keys = Object.keys(add);
13769 var i = keys.length;
13771 origin[keys[i]] = add[keys[i]];
13776 function hasOwnProperty(obj, prop) {
13777 return Object.prototype.hasOwnProperty.call(obj, prop);
13780 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13781 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13783 base58: require('bs58'),
13784 bitcoin: require('bitcoinjs-lib'),
13785 ecurve: require('ecurve'),
13786 BigInteger: require('bigi')
13789 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13791 // Forked from https://github.com/cryptocoinjs/bs58
13792 // Originally written by Mike Hearn for BitcoinJ
13793 // Copyright (c)
2011 Google Inc
13794 // Ported to JavaScript by Stefan Thomas
13795 // Merged Buffer refactorings from base58-native by Stephen Pair
13796 // Copyright (c)
2013 BitPay Inc
13798 var Buffer = require('safe-buffer').Buffer
13800 module.exports = function base (ALPHABET) {
13801 var ALPHABET_MAP = {}
13802 var BASE = ALPHABET.length
13803 var LEADER = ALPHABET.charAt(
0)
13805 // pre-compute lookup table
13806 for (var z =
0; z < ALPHABET.length; z++) {
13807 var x = ALPHABET.charAt(z)
13809 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13810 ALPHABET_MAP[x] = z
13813 function encode (source) {
13814 if (source.length ===
0) return ''
13817 for (var i =
0; i < source.length; ++i) {
13818 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13819 carry += digits[j] <<
8
13820 digits[j] = carry % BASE
13821 carry = (carry / BASE) |
0
13824 while (carry
> 0) {
13825 digits.push(carry % BASE)
13826 carry = (carry / BASE) |
0
13832 // deal with leading zeros
13833 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13834 // convert digits to a string
13835 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13840 function decodeUnsafe (string) {
13841 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13844 for (var i =
0; i < string.length; i++) {
13845 var value = ALPHABET_MAP[string[i]]
13846 if (value === undefined) return
13848 for (var j =
0, carry = value; j < bytes.length; ++j) {
13849 carry += bytes[j] * BASE
13850 bytes[j] = carry &
0xff
13854 while (carry
> 0) {
13855 bytes.push(carry &
0xff)
13860 // deal with leading zeros
13861 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13865 return Buffer.from(bytes.reverse())
13868 function decode (string) {
13869 var buffer = decodeUnsafe(string)
13870 if (buffer) return buffer
13872 throw new Error('Non-base' + BASE + ' character')
13877 decodeUnsafe: decodeUnsafe,
13882 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13883 // (public) Constructor
13884 function BigInteger(a, b, c) {
13885 if (!(this instanceof BigInteger))
13886 return new BigInteger(a, b, c)
13889 if ("number" == typeof a) this.fromNumber(a, b, c)
13890 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13891 else this.fromString(a, b)
13895 var proto = BigInteger.prototype
13897 // duck-typed isBigInteger
13898 proto.__bigi = require('../package.json').version
13899 BigInteger.isBigInteger = function (obj, check_ver) {
13900 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13906 // am: Compute w_j += (x*this_i), propagate carries,
13907 // c is initial carry, returns final carry.
13908 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13909 // We need to select the fastest one that works in this environment.
13911 // am1: use a single mult and divide to get the high bits,
13912 // max digit bits should be
26 because
13913 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13914 function am1(i, x, w, j, c, n) {
13916 var v = x * this[i++] + w[j] + c
13917 c = Math.floor(v /
0x4000000)
13918 w[j++] = v &
0x3ffffff
13922 // am2 avoids a big mult-and-extract completely.
13923 // Max digit bits should be <=
30 because we do bitwise ops
13924 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13925 function am2(i, x, w, j, c, n) {
13926 var xl = x &
0x7fff,
13929 var l = this[i] &
0x7fff
13930 var h = this[i++]
>> 15
13931 var m = xh * l + h * xl
13932 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13933 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13934 w[j++] = l &
0x3fffffff
13938 // Alternately, set max digit bits to
28 since some
13939 // browsers slow down when dealing with
32-bit numbers.
13940 function am3(i, x, w, j, c, n) {
13941 var xl = x &
0x3fff,
13944 var l = this[i] &
0x3fff
13945 var h = this[i++]
>> 14
13946 var m = xh * l + h * xl
13947 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13948 c = (l
>> 28) + (m
>> 14) + xh * h
13949 w[j++] = l &
0xfffffff
13955 BigInteger.prototype.am = am1
13958 BigInteger.prototype.DB = dbits
13959 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13960 var DV = BigInteger.prototype.DV = (
1 << dbits)
13963 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13964 BigInteger.prototype.F1 = BI_FP - dbits
13965 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13967 // Digit conversions
13968 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13969 var BI_RC = new Array()
13971 rr =
"0".charCodeAt(
0)
13972 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13973 rr =
"a".charCodeAt(
0)
13974 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13975 rr =
"A".charCodeAt(
0)
13976 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13978 function int2char(n) {
13979 return BI_RM.charAt(n)
13982 function intAt(s, i) {
13983 var c = BI_RC[s.charCodeAt(i)]
13984 return (c == null) ? -
1 : c
13987 // (protected) copy this to r
13988 function bnpCopyTo(r) {
13989 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
13994 // (protected) set from integer value x, -DV <= x < DV
13995 function bnpFromInt(x) {
13997 this.s = (x <
0) ? -
1 :
0
13998 if (x
> 0) this[
0] = x
13999 else if (x < -
1) this[
0] = x + DV
14003 // return bigint initialized to value
14005 var r = new BigInteger()
14010 // (protected) set from string and radix
14011 function bnpFromString(s, b) {
14016 else if (b ==
8) k =
3
14017 else if (b ==
256) k =
8; // byte array
14018 else if (b ==
2) k =
1
14019 else if (b ==
32) k =
5
14020 else if (b ==
4) k =
2
14022 self.fromRadix(s, b)
14031 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14033 if (s.charAt(i) == "-") mi = true
14039 else if (sh + k
> self.DB) {
14040 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14041 self[self.t++] = (x
>> (self.DB - sh))
14043 self[self.t -
1] |= x << sh
14045 if (sh
>= self.DB) sh -= self.DB
14047 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14049 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14052 if (mi) BigInteger.ZERO.subTo(self, self)
14055 // (protected) clamp off excess high words
14056 function bnpClamp() {
14057 var c = this.s & this.DM
14058 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14061 // (public) return string representation in given radix
14062 function bnToString(b) {
14064 if (self.s <
0) return
"-" + self.negate()
14068 else if (b ==
8) k =
3
14069 else if (b ==
2) k =
1
14070 else if (b ==
32) k =
5
14071 else if (b ==
4) k =
2
14072 else return self.toRadix(b)
14073 var km = (
1 << k) -
1,
14077 var p = self.DB - (i * self.DB) % k
14079 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14085 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14086 d |= self[--i]
>> (p += self.DB - k)
14088 d = (self[i]
>> (p -= k)) & km
14094 if (d
> 0) m = true
14095 if (m) r += int2char(d)
14102 function bnNegate() {
14103 var r = new BigInteger()
14104 BigInteger.ZERO.subTo(this, r)
14110 return (this.s <
0) ? this.negate() : this
14113 // (public) return + if this
> a, - if this < a,
0 if equal
14114 function bnCompareTo(a) {
14115 var r = this.s - a.s
14116 if (r !=
0) return r
14119 if (r !=
0) return (this.s <
0) ? -r : r
14121 if ((r = this[i] - a[i]) !=
0) return r
14125 // returns bit length of the integer x
14126 function nbits(x) {
14129 if ((t = x
>>> 16) !=
0) {
14133 if ((t = x
>> 8) !=
0) {
14137 if ((t = x
>> 4) !=
0) {
14141 if ((t = x
>> 2) !=
0) {
14145 if ((t = x
>> 1) !=
0) {
14152 // (public) return the number of bits in
"this"
14153 function bnBitLength() {
14154 if (this.t <=
0) return
0
14155 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14158 // (public) return the number of bytes in
"this"
14159 function bnByteLength() {
14160 return this.bitLength()
>> 3
14163 // (protected) r = this << n*DB
14164 function bnpDLShiftTo(n, r) {
14166 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14167 for (i = n -
1; i
>=
0; --i) r[i] =
0
14172 // (protected) r = this
>> n*DB
14173 function bnpDRShiftTo(n, r) {
14174 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14175 r.t = Math.max(this.t - n,
0)
14179 // (protected) r = this << n
14180 function bnpLShiftTo(n, r) {
14182 var bs = n % self.DB
14183 var cbs = self.DB - bs
14184 var bm = (
1 << cbs) -
1
14185 var ds = Math.floor(n / self.DB),
14186 c = (self.s << bs) & self.DM,
14188 for (i = self.t -
1; i
>=
0; --i) {
14189 r[i + ds +
1] = (self[i]
>> cbs) | c
14190 c = (self[i] & bm) << bs
14192 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14194 r.t = self.t + ds +
1
14199 // (protected) r = this
>> n
14200 function bnpRShiftTo(n, r) {
14203 var ds = Math.floor(n / self.DB)
14204 if (ds
>= self.t) {
14208 var bs = n % self.DB
14209 var cbs = self.DB - bs
14210 var bm = (
1 << bs) -
1
14211 r[
0] = self[ds]
>> bs
14212 for (var i = ds +
1; i < self.t; ++i) {
14213 r[i - ds -
1] |= (self[i] & bm) << cbs
14214 r[i - ds] = self[i]
>> bs
14216 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14221 // (protected) r = this - a
14222 function bnpSubTo(a, r) {
14226 m = Math.min(a.t, self.t)
14228 c += self[i] - a[i]
14229 r[i++] = c & self.DM
14232 if (a.t < self.t) {
14234 while (i < self.t) {
14236 r[i++] = c & self.DM
14244 r[i++] = c & self.DM
14249 r.s = (c <
0) ? -
1 :
0
14250 if (c < -
1) r[i++] = self.DV + c
14251 else if (c
> 0) r[i++] = c
14256 // (protected) r = this * a, r != this,a (HAC
14.12)
14257 //
"this" should be the larger one if appropriate.
14258 function bnpMultiplyTo(a, r) {
14259 var x = this.abs(),
14263 while (--i
>=
0) r[i] =
0
14264 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14267 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14270 // (protected) r = this^
2, r != this (HAC
14.16)
14271 function bnpSquareTo(r) {
14273 var i = r.t =
2 * x.t
14274 while (--i
>=
0) r[i] =
0
14275 for (i =
0; i < x.t -
1; ++i) {
14276 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14277 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14282 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14287 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14288 // r != q, this != m. q or r may be null.
14289 function bnpDivRemTo(m, q, r) {
14292 if (pm.t <=
0) return
14293 var pt = self.abs()
14295 if (q != null) q.fromInt(
0)
14296 if (r != null) self.copyTo(r)
14299 if (r == null) r = new BigInteger()
14300 var y = new BigInteger(),
14303 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14305 pm.lShiftTo(nsh, y)
14306 pt.lShiftTo(nsh, r)
14313 if (y0 ==
0) return
14314 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14315 var d1 = self.FV / yt,
14316 d2 = (
1 << self.F1) / yt,
14320 t = (q == null) ? new BigInteger() : q
14322 if (r.compareTo(t)
>=
0) {
14326 BigInteger.ONE.dlShiftTo(ys, t)
14327 t.subTo(y, y); // "negative" y so we can replace sub with am later
14328 while (y.t < ys) y[y.t++] =
0
14330 // Estimate quotient digit
14331 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14332 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14335 while (r[i] < --qd) r.subTo(t, r)
14340 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14344 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14345 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14348 // (public) this mod a
14349 function bnMod(a) {
14350 var r = new BigInteger()
14352 .divRemTo(a, null, r)
14353 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14357 // Modular reduction using
"classic" algorithm
14358 function Classic(m) {
14362 function cConvert(x) {
14363 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14367 function cRevert(x) {
14371 function cReduce(x) {
14372 x.divRemTo(this.m, null, x)
14375 function cMulTo(x, y, r) {
14380 function cSqrTo(x, r) {
14385 Classic.prototype.convert = cConvert
14386 Classic.prototype.revert = cRevert
14387 Classic.prototype.reduce = cReduce
14388 Classic.prototype.mulTo = cMulTo
14389 Classic.prototype.sqrTo = cSqrTo
14391 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14395 // xy(
2-xy) = (
1+km)(
1-km)
14396 // x[y(
2-xy)] =
1-k^
2m^
2
14397 // x[y(
2-xy)] ==
1 (mod m^
2)
14398 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14399 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14400 // JS multiply "overflows" differently from C/C++, so care is needed here.
14401 function bnpInvDigit() {
14402 if (this.t <
1) return
0
14404 if ((x &
1) ==
0) return
0
14405 var y = x &
3; // y ==
1/x mod
2^
2
14406 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14407 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14408 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14409 // last step - calculate inverse mod DV directly
14410 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14411 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14412 // we really want the negative inverse, and -DV < y < DV
14413 return (y
> 0) ? this.DV - y : -y
14416 // Montgomery reduction
14417 function Montgomery(m) {
14419 this.mp = m.invDigit()
14420 this.mpl = this.mp &
0x7fff
14421 this.mph = this.mp
>> 15
14422 this.um = (
1 << (m.DB -
15)) -
1
14427 function montConvert(x) {
14428 var r = new BigInteger()
14430 .dlShiftTo(this.m.t, r)
14431 r.divRemTo(this.m, null, r)
14432 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14437 function montRevert(x) {
14438 var r = new BigInteger()
14444 // x = x/R mod m (HAC
14.32)
14445 function montReduce(x) {
14446 while (x.t <= this.mt2) // pad x so am has enough room later
14448 for (var i =
0; i < this.m.t; ++i) {
14449 // faster way of calculating u0 = x[i]*mp mod DV
14450 var j = x[i] &
0x7fff
14451 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14452 // use am to combine the multiply-shift-add into one call
14454 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14456 while (x[j]
>= x.DV) {
14462 x.drShiftTo(this.m.t, x)
14463 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14466 // r = "x^
2/R mod m"; x != r
14467 function montSqrTo(x, r) {
14472 // r = "xy/R mod m"; x,y != r
14473 function montMulTo(x, y, r) {
14478 Montgomery.prototype.convert = montConvert
14479 Montgomery.prototype.revert = montRevert
14480 Montgomery.prototype.reduce = montReduce
14481 Montgomery.prototype.mulTo = montMulTo
14482 Montgomery.prototype.sqrTo = montSqrTo
14484 // (protected) true iff this is even
14485 function bnpIsEven() {
14486 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14489 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14490 function bnpExp(e, z) {
14491 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14492 var r = new BigInteger(),
14493 r2 = new BigInteger(),
14494 g = z.convert(this),
14499 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14509 // (public) this^e % m,
0 <= e <
2^
32
14510 function bnModPowInt(e, m) {
14512 if (e <
256 || m.isEven()) z = new Classic(m)
14513 else z = new Montgomery(m)
14514 return this.exp(e, z)
14518 proto.copyTo = bnpCopyTo
14519 proto.fromInt = bnpFromInt
14520 proto.fromString = bnpFromString
14521 proto.clamp = bnpClamp
14522 proto.dlShiftTo = bnpDLShiftTo
14523 proto.drShiftTo = bnpDRShiftTo
14524 proto.lShiftTo = bnpLShiftTo
14525 proto.rShiftTo = bnpRShiftTo
14526 proto.subTo = bnpSubTo
14527 proto.multiplyTo = bnpMultiplyTo
14528 proto.squareTo = bnpSquareTo
14529 proto.divRemTo = bnpDivRemTo
14530 proto.invDigit = bnpInvDigit
14531 proto.isEven = bnpIsEven
14535 proto.toString = bnToString
14536 proto.negate = bnNegate
14538 proto.compareTo = bnCompareTo
14539 proto.bitLength = bnBitLength
14540 proto.byteLength = bnByteLength
14542 proto.modPowInt = bnModPowInt
14545 function bnClone() {
14546 var r = new BigInteger()
14551 // (public) return value as integer
14552 function bnIntValue() {
14554 if (this.t ==
1) return this[
0] - this.DV
14555 else if (this.t ==
0) return -
1
14556 } else if (this.t ==
1) return this[
0]
14557 else if (this.t ==
0) return
0
14558 // assumes
16 < DB <
32
14559 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14562 // (public) return value as byte
14563 function bnByteValue() {
14564 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14567 // (public) return value as short (assumes DB
>=
16)
14568 function bnShortValue() {
14569 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14572 // (protected) return x s.t. r^x < DV
14573 function bnpChunkSize(r) {
14574 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14577 // (public)
0 if this ==
0,
1 if this
> 0
14578 function bnSigNum() {
14579 if (this.s <
0) return -
1
14580 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14584 // (protected) convert to radix string
14585 function bnpToRadix(b) {
14586 if (b == null) b =
10
14587 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14588 var cs = this.chunkSize(b)
14589 var a = Math.pow(b, cs)
14591 y = new BigInteger(),
14592 z = new BigInteger(),
14594 this.divRemTo(d, y, z)
14595 while (y.signum()
> 0) {
14596 r = (a + z.intValue())
14599 y.divRemTo(d, y, z)
14601 return z.intValue()
14605 // (protected) convert from radix string
14606 function bnpFromRadix(s, b) {
14609 if (b == null) b =
10
14610 var cs = self.chunkSize(b)
14611 var d = Math.pow(b, cs),
14615 for (var i =
0; i < s.length; ++i) {
14616 var x = intAt(s, i)
14618 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14624 self.dAddOffset(w,
0)
14630 self.dMultiply(Math.pow(b, j))
14631 self.dAddOffset(w,
0)
14633 if (mi) BigInteger.ZERO.subTo(self, self)
14636 // (protected) alternate constructor
14637 function bnpFromNumber(a, b, c) {
14639 if (
"number" == typeof b) {
14640 // new BigInteger(int,int,RNG)
14641 if (a <
2) self.fromInt(
1)
14643 self.fromNumber(a, c)
14644 if (!self.testBit(a -
1)) // force MSB set
14645 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14646 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14647 while (!self.isProbablePrime(b)) {
14648 self.dAddOffset(
2,
0)
14649 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14653 // new BigInteger(int,RNG)
14654 var x = new Array(),
14656 x.length = (a
>> 3) +
1
14658 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14660 self.fromString(x,
256)
14664 // (public) convert to bigendian byte array
14665 function bnToByteArray() {
14670 var p = self.DB - (i * self.DB) %
8,
14673 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14674 r[k++] = d | (self.s << (self.DB - p))
14677 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14678 d |= self[--i]
>> (p += self.DB -
8)
14680 d = (self[i]
>> (p -=
8)) &
0xff
14686 if ((d &
0x80) !=
0) d |= -
256
14687 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14688 if (k
> 0 || d != self.s) r[k++] = d
14694 function bnEquals(a) {
14695 return (this.compareTo(a) ==
0)
14698 function bnMin(a) {
14699 return (this.compareTo(a) <
0) ? this : a
14702 function bnMax(a) {
14703 return (this.compareTo(a)
> 0) ? this : a
14706 // (protected) r = this op a (bitwise)
14707 function bnpBitwiseTo(a, op, r) {
14709 var i, f, m = Math.min(a.t, self.t)
14710 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14711 if (a.t < self.t) {
14713 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14716 f = self.s & self.DM
14717 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14720 r.s = op(self.s, a.s)
14724 // (public) this & a
14725 function op_and(x, y) {
14729 function bnAnd(a) {
14730 var r = new BigInteger()
14731 this.bitwiseTo(a, op_and, r)
14735 // (public) this | a
14736 function op_or(x, y) {
14741 var r = new BigInteger()
14742 this.bitwiseTo(a, op_or, r)
14746 // (public) this ^ a
14747 function op_xor(x, y) {
14751 function bnXor(a) {
14752 var r = new BigInteger()
14753 this.bitwiseTo(a, op_xor, r)
14757 // (public) this & ~a
14758 function op_andnot(x, y) {
14762 function bnAndNot(a) {
14763 var r = new BigInteger()
14764 this.bitwiseTo(a, op_andnot, r)
14770 var r = new BigInteger()
14771 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14777 // (public) this << n
14778 function bnShiftLeft(n) {
14779 var r = new BigInteger()
14780 if (n <
0) this.rShiftTo(-n, r)
14781 else this.lShiftTo(n, r)
14785 // (public) this
>> n
14786 function bnShiftRight(n) {
14787 var r = new BigInteger()
14788 if (n <
0) this.lShiftTo(-n, r)
14789 else this.rShiftTo(n, r)
14793 // return index of lowest
1-bit in x, x <
2^
31
14795 if (x ==
0) return -
1
14797 if ((x &
0xffff) ==
0) {
14801 if ((x &
0xff) ==
0) {
14805 if ((x &
0xf) ==
0) {
14809 if ((x &
3) ==
0) {
14813 if ((x &
1) ==
0)++r
14817 // (public) returns index of lowest
1-bit (or -
1 if none)
14818 function bnGetLowestSetBit() {
14819 for (var i =
0; i < this.t; ++i)
14820 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14821 if (this.s <
0) return this.t * this.DB
14825 // return number of
1 bits in x
14835 // (public) return number of set bits
14836 function bnBitCount() {
14838 x = this.s & this.DM
14839 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14843 // (public) true iff nth bit is set
14844 function bnTestBit(n) {
14845 var j = Math.floor(n / this.DB)
14846 if (j
>= this.t) return (this.s !=
0)
14847 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14850 // (protected) this op (
1<
<n)
14851 function bnpChangeBit(n, op) {
14852 var r = BigInteger.ONE.shiftLeft(n)
14853 this.bitwiseTo(r, op, r)
14857 // (public) this | (
1<
<n)
14858 function bnSetBit(n) {
14859 return this.changeBit(n, op_or)
14862 // (public) this & ~(
1<
<n)
14863 function bnClearBit(n) {
14864 return this.changeBit(n, op_andnot)
14867 // (public) this ^ (
1<
<n)
14868 function bnFlipBit(n) {
14869 return this.changeBit(n, op_xor)
14872 // (protected) r = this + a
14873 function bnpAddTo(a, r) {
14878 m = Math.min(a.t, self.t)
14880 c += self[i] + a[i]
14881 r[i++] = c & self.DM
14884 if (a.t < self.t) {
14886 while (i < self.t) {
14888 r[i++] = c & self.DM
14896 r[i++] = c & self.DM
14901 r.s = (c <
0) ? -
1 :
0
14902 if (c
> 0) r[i++] = c
14903 else if (c < -
1) r[i++] = self.DV + c
14908 // (public) this + a
14909 function bnAdd(a) {
14910 var r = new BigInteger()
14915 // (public) this - a
14916 function bnSubtract(a) {
14917 var r = new BigInteger()
14922 // (public) this * a
14923 function bnMultiply(a) {
14924 var r = new BigInteger()
14925 this.multiplyTo(a, r)
14930 function bnSquare() {
14931 var r = new BigInteger()
14936 // (public) this / a
14937 function bnDivide(a) {
14938 var r = new BigInteger()
14939 this.divRemTo(a, r, null)
14943 // (public) this % a
14944 function bnRemainder(a) {
14945 var r = new BigInteger()
14946 this.divRemTo(a, null, r)
14950 // (public) [this/a,this%a]
14951 function bnDivideAndRemainder(a) {
14952 var q = new BigInteger(),
14953 r = new BigInteger()
14954 this.divRemTo(a, q, r)
14955 return new Array(q, r)
14958 // (protected) this *= n, this
>=
0,
1 < n < DV
14959 function bnpDMultiply(n) {
14960 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14965 // (protected) this += n << w words, this
>=
0
14966 function bnpDAddOffset(n, w) {
14968 while (this.t <= w) this[this.t++] =
0
14970 while (this[w]
>= this.DV) {
14972 if (++w
>= this.t) this[this.t++] =
0
14977 // A "null" reducer
14978 function NullExp() {}
14984 function nMulTo(x, y, r) {
14988 function nSqrTo(x, r) {
14992 NullExp.prototype.convert = nNop
14993 NullExp.prototype.revert = nNop
14994 NullExp.prototype.mulTo = nMulTo
14995 NullExp.prototype.sqrTo = nSqrTo
14998 function bnPow(e) {
14999 return this.exp(e, new NullExp())
15002 // (protected) r = lower n words of "this * a", a.t <= n
15003 // "this" should be the larger one if appropriate.
15004 function bnpMultiplyLowerTo(a, n, r) {
15005 var i = Math.min(this.t + a.t, n)
15006 r.s =
0; // assumes a,this
>=
0
15008 while (i
> 0) r[--i] =
0
15010 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15011 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15015 // (protected) r =
"this * a" without lower n words, n
> 0
15016 //
"this" should be the larger one if appropriate.
15017 function bnpMultiplyUpperTo(a, n, r) {
15019 var i = r.t = this.t + a.t - n
15020 r.s =
0; // assumes a,this
>=
0
15021 while (--i
>=
0) r[i] =
0
15022 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15023 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15028 // Barrett modular reduction
15029 function Barrett(m) {
15031 this.r2 = new BigInteger()
15032 this.q3 = new BigInteger()
15033 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15034 this.mu = this.r2.divide(m)
15038 function barrettConvert(x) {
15039 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15040 else if (x.compareTo(this.m) <
0) return x
15042 var r = new BigInteger()
15049 function barrettRevert(x) {
15053 // x = x mod m (HAC
14.42)
15054 function barrettReduce(x) {
15056 x.drShiftTo(self.m.t -
1, self.r2)
15057 if (x.t
> self.m.t +
1) {
15061 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15062 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15063 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15064 x.subTo(self.r2, x)
15065 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15068 // r = x^
2 mod m; x != r
15069 function barrettSqrTo(x, r) {
15074 // r = x*y mod m; x,y != r
15075 function barrettMulTo(x, y, r) {
15080 Barrett.prototype.convert = barrettConvert
15081 Barrett.prototype.revert = barrettRevert
15082 Barrett.prototype.reduce = barrettReduce
15083 Barrett.prototype.mulTo = barrettMulTo
15084 Barrett.prototype.sqrTo = barrettSqrTo
15086 // (public) this^e % m (HAC
14.85)
15087 function bnModPow(e, m) {
15088 var i = e.bitLength(),
15091 if (i <=
0) return r
15092 else if (i <
18) k =
1
15093 else if (i <
48) k =
3
15094 else if (i <
144) k =
4
15095 else if (i <
768) k =
5
15099 else if (m.isEven())
15102 z = new Montgomery(m)
15105 var g = new Array(),
15109 g[
1] = z.convert(this)
15111 var g2 = new BigInteger()
15114 g[n] = new BigInteger()
15115 z.mulTo(g2, g[n -
2], g[n])
15122 r2 = new BigInteger(),
15124 i = nbits(e[j]) -
1
15126 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15128 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15129 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15133 while ((w &
1) ==
0) {
15137 if ((i -= n) <
0) {
15141 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15150 if (n
> 0) z.sqrTo(r, r2)
15156 z.mulTo(r2, g[w], r)
15159 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15173 // (public) gcd(this,a) (HAC
14.54)
15174 function bnGCD(a) {
15175 var x = (this.s <
0) ? this.negate() : this.clone()
15176 var y = (a.s <
0) ? a.negate() : a.clone()
15177 if (x.compareTo(y) <
0) {
15182 var i = x.getLowestSetBit(),
15183 g = y.getLowestSetBit()
15184 if (g <
0) return x
15190 while (x.signum()
> 0) {
15191 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15192 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15193 if (x.compareTo(y)
>=
0) {
15201 if (g
> 0) y.lShiftTo(g, y)
15205 // (protected) this % n, n <
2^
26
15206 function bnpModInt(n) {
15207 if (n <=
0) return
0
15208 var d = this.DV % n,
15209 r = (this.s <
0) ? n -
1 :
0
15211 if (d ==
0) r = this[
0] % n
15213 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15217 // (public)
1/this % m (HAC
14.61)
15218 function bnModInverse(m) {
15219 var ac = m.isEven()
15220 if (this.signum() ===
0) throw new Error('division by zero')
15221 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15228 while (u.signum() !=
0) {
15229 while (u.isEven()) {
15232 if (!a.isEven() || !b.isEven()) {
15237 } else if (!b.isEven()) b.subTo(m, b)
15240 while (v.isEven()) {
15243 if (!c.isEven() || !d.isEven()) {
15248 } else if (!d.isEven()) d.subTo(m, d)
15251 if (u.compareTo(v)
>=
0) {
15253 if (ac) a.subTo(c, a)
15257 if (ac) c.subTo(a, c)
15261 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15262 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15263 while (d.signum() <
0) d.addTo(m, d)
15268 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15269 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15270 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15271 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15272 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15273 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15274 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15275 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15276 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15277 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15278 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15281 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15283 // (public) test primality with certainty
>=
1-
.5^t
15284 function bnIsProbablePrime(t) {
15285 var i, x = this.abs()
15286 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15287 for (i =
0; i < lowprimes.length; ++i)
15288 if (x[
0] == lowprimes[i]) return true
15291 if (x.isEven()) return false
15293 while (i < lowprimes.length) {
15294 var m = lowprimes[i],
15296 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15298 while (i < j) if (m % lowprimes[i++] ==
0) return false
15300 return x.millerRabin(t)
15303 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15304 function bnpMillerRabin(t) {
15305 var n1 = this.subtract(BigInteger.ONE)
15306 var k = n1.getLowestSetBit()
15307 if (k <=
0) return false
15308 var r = n1.shiftRight(k)
15310 if (t
> lowprimes.length) t = lowprimes.length
15311 var a = new BigInteger(null)
15313 for (var i =
0; i < t; ++i) {
15315 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15316 if (bases.indexOf(j) == -
1) break
15320 var y = a.modPow(r, this)
15321 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15323 while (j++ < k && y.compareTo(n1) !=
0) {
15324 y = y.modPowInt(
2, this)
15325 if (y.compareTo(BigInteger.ONE) ==
0) return false
15327 if (y.compareTo(n1) !=
0) return false
15334 proto.chunkSize = bnpChunkSize
15335 proto.toRadix = bnpToRadix
15336 proto.fromRadix = bnpFromRadix
15337 proto.fromNumber = bnpFromNumber
15338 proto.bitwiseTo = bnpBitwiseTo
15339 proto.changeBit = bnpChangeBit
15340 proto.addTo = bnpAddTo
15341 proto.dMultiply = bnpDMultiply
15342 proto.dAddOffset = bnpDAddOffset
15343 proto.multiplyLowerTo = bnpMultiplyLowerTo
15344 proto.multiplyUpperTo = bnpMultiplyUpperTo
15345 proto.modInt = bnpModInt
15346 proto.millerRabin = bnpMillerRabin
15349 proto.clone = bnClone
15350 proto.intValue = bnIntValue
15351 proto.byteValue = bnByteValue
15352 proto.shortValue = bnShortValue
15353 proto.signum = bnSigNum
15354 proto.toByteArray = bnToByteArray
15355 proto.equals = bnEquals
15361 proto.andNot = bnAndNot
15363 proto.shiftLeft = bnShiftLeft
15364 proto.shiftRight = bnShiftRight
15365 proto.getLowestSetBit = bnGetLowestSetBit
15366 proto.bitCount = bnBitCount
15367 proto.testBit = bnTestBit
15368 proto.setBit = bnSetBit
15369 proto.clearBit = bnClearBit
15370 proto.flipBit = bnFlipBit
15372 proto.subtract = bnSubtract
15373 proto.multiply = bnMultiply
15374 proto.divide = bnDivide
15375 proto.remainder = bnRemainder
15376 proto.divideAndRemainder = bnDivideAndRemainder
15377 proto.modPow = bnModPow
15378 proto.modInverse = bnModInverse
15381 proto.isProbablePrime = bnIsProbablePrime
15383 // JSBN-specific extension
15384 proto.square = bnSquare
15387 BigInteger.ZERO = nbv(
0)
15388 BigInteger.ONE = nbv(
1)
15389 BigInteger.valueOf = nbv
15391 module.exports = BigInteger
15393 },{"../package.json":
38}],
36:[function(require,module,exports){
15394 (function (Buffer){
15395 // FIXME: Kind of a weird way to throw exceptions, consider removing
15396 var assert = require('assert')
15397 var BigInteger = require('./bigi')
15400 * Turns a byte array into a big integer.
15402 * This function will interpret a byte array as a big integer in big
15405 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15406 // BigInteger expects a DER integer conformant byte array
15407 if (byteArray[
0] &
0x80) {
15408 return new BigInteger([
0].concat(byteArray))
15411 return new BigInteger(byteArray)
15415 * Returns a byte array representation of the big integer.
15417 * This returns the absolute of the contained value in big endian
15418 * form. A value of zero results in an empty array.
15420 BigInteger.prototype.toByteArrayUnsigned = function() {
15421 var byteArray = this.toByteArray()
15422 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15425 BigInteger.fromDERInteger = function(byteArray) {
15426 return new BigInteger(byteArray)
15430 * Converts BigInteger to a DER integer representation.
15432 * The format for this value uses the most significant bit as a sign
15433 * bit. If the most significant bit is already set and the integer is
15434 * positive, a
0x00 is prepended.
15449 *
62300 =
> 0x00f35c
15450 * -
62300 =
> 0xff0ca4
15452 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15454 BigInteger.fromBuffer = function(buffer) {
15455 // BigInteger expects a DER integer conformant byte array
15456 if (buffer[
0] &
0x80) {
15457 var byteArray = Array.prototype.slice.call(buffer)
15459 return new BigInteger([
0].concat(byteArray))
15462 return new BigInteger(buffer)
15465 BigInteger.fromHex = function(hex) {
15466 if (hex === '') return BigInteger.ZERO
15468 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15469 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15470 return new BigInteger(hex,
16)
15473 BigInteger.prototype.toBuffer = function(size) {
15474 var byteArray = this.toByteArrayUnsigned()
15477 var padding = size - byteArray.length
15478 while (zeros.length < padding) zeros.push(
0)
15480 return new Buffer(zeros.concat(byteArray))
15483 BigInteger.prototype.toHex = function(size) {
15484 return this.toBuffer(size).toString('hex')
15487 }).call(this,require(
"buffer").Buffer)
15488 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15489 var BigInteger = require('./bigi')
15492 require('./convert')
15494 module.exports = BigInteger
15495 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15500 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15503 "_from":
"bigi@latest",
15504 "_id":
"bigi@1.4.2",
15506 "_installable": true,
15507 "_location":
"/bigi",
15508 "_nodeVersion":
"6.1.0",
15509 "_npmOperationalInternal": {
15510 "host":
"packages-12-west.internal.npmjs.com",
15511 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15514 "email":
"jprichardson@gmail.com",
15515 "name":
"jprichardson"
15517 "_npmVersion":
"3.8.6",
15518 "_phantomChildren": {},
15532 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15533 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15534 "_shrinkwrap": null,
15536 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15538 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15540 "dependencies": {},
15541 "description":
"Big integers.",
15542 "devDependencies": {
15543 "coveralls":
"^2.11.2",
15544 "istanbul":
"^0.3.5",
15545 "jshint":
"^2.5.1",
15547 "mochify":
"^2.1.0"
15551 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15552 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15554 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15555 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15573 "main":
"./lib/index.js",
15576 "email":
"boydb@midnightdesign.ws",
15577 "name":
"midnightlightning"
15580 "email":
"sidazhang89@gmail.com",
15581 "name":
"sidazhang"
15584 "email":
"npm@shesek.info",
15588 "email":
"jprichardson@gmail.com",
15589 "name":
"jprichardson"
15593 "optionalDependencies": {},
15594 "readme":
"ERROR: No README data found!",
15597 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15600 "browser-test":
"mochify --wd -R spec",
15601 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15602 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15603 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15604 "test":
"_mocha -- test/*.js",
15612 "safari/6.0..latest",
15613 "iphone/6.0..latest",
15614 "android-browser/4.2..latest"
15616 "files":
"test/*.js",
15622 },{}],
39:[function(require,module,exports){
15623 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15624 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15625 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15627 var Buffer = require('safe-buffer').Buffer
15629 function check (buffer) {
15630 if (buffer.length <
8) return false
15631 if (buffer.length
> 72) return false
15632 if (buffer[
0] !==
0x30) return false
15633 if (buffer[
1] !== buffer.length -
2) return false
15634 if (buffer[
2] !==
0x02) return false
15636 var lenR = buffer[
3]
15637 if (lenR ===
0) return false
15638 if (
5 + lenR
>= buffer.length) return false
15639 if (buffer[
4 + lenR] !==
0x02) return false
15641 var lenS = buffer[
5 + lenR]
15642 if (lenS ===
0) return false
15643 if ((
6 + lenR + lenS) !== buffer.length) return false
15645 if (buffer[
4] &
0x80) return false
15646 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15648 if (buffer[lenR +
6] &
0x80) return false
15649 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15653 function decode (buffer) {
15654 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15655 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15656 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15657 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15658 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15660 var lenR = buffer[
3]
15661 if (lenR ===
0) throw new Error('R length is zero')
15662 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15663 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15665 var lenS = buffer[
5 + lenR]
15666 if (lenS ===
0) throw new Error('S length is zero')
15667 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15669 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15670 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15672 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15673 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15675 // non-BIP66 - extract R, S values
15677 r: buffer.slice(
4,
4 + lenR),
15678 s: buffer.slice(
6 + lenR)
15683 * Expects r and s to be positive DER integers.
15685 * The DER format uses the most significant bit as a sign bit (&
0x80).
15686 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15701 *
62300 =
> 0x00f35c
15702 * -
62300 =
> 0xff0ca4
15704 function encode (r, s) {
15705 var lenR = r.length
15706 var lenS = s.length
15707 if (lenR ===
0) throw new Error('R length is zero')
15708 if (lenS ===
0) throw new Error('S length is zero')
15709 if (lenR
> 33) throw new Error('R length is too long')
15710 if (lenS
> 33) throw new Error('S length is too long')
15711 if (r[
0] &
0x80) throw new Error('R value is negative')
15712 if (s[
0] &
0x80) throw new Error('S value is negative')
15713 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15714 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15716 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15718 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15719 signature[
0] =
0x30
15720 signature[
1] = signature.length -
2
15721 signature[
2] =
0x02
15722 signature[
3] = r.length
15723 r.copy(signature,
4)
15724 signature[
4 + lenR] =
0x02
15725 signature[
5 + lenR] = s.length
15726 s.copy(signature,
6 + lenR)
15737 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15741 "OP_PUSHDATA1":
76,
15742 "OP_PUSHDATA2":
77,
15743 "OP_PUSHDATA4":
78,
15769 "OP_VERNOTIF":
102,
15775 "OP_TOALTSTACK":
107,
15776 "OP_FROMALTSTACK":
108,
15806 "OP_EQUALVERIFY":
136,
15807 "OP_RESERVED1":
137,
15808 "OP_RESERVED2":
138,
15817 "OP_0NOTEQUAL":
146,
15828 "OP_NUMEQUAL":
156,
15829 "OP_NUMEQUALVERIFY":
157,
15830 "OP_NUMNOTEQUAL":
158,
15831 "OP_LESSTHAN":
159,
15832 "OP_GREATERTHAN":
160,
15833 "OP_LESSTHANOREQUAL":
161,
15834 "OP_GREATERTHANOREQUAL":
162,
15840 "OP_RIPEMD160":
166,
15845 "OP_CODESEPARATOR":
171,
15846 "OP_CHECKSIG":
172,
15847 "OP_CHECKSIGVERIFY":
173,
15848 "OP_CHECKMULTISIG":
174,
15849 "OP_CHECKMULTISIGVERIFY":
175,
15853 "OP_CHECKLOCKTIMEVERIFY":
177,
15864 "OP_PUBKEYHASH":
253,
15866 "OP_INVALIDOPCODE":
255
15869 },{}],
41:[function(require,module,exports){
15870 var OPS = require('./index.json')
15873 for (var op in OPS) {
15878 module.exports = map
15880 },{
"./index.json":
40}],
42:[function(require,module,exports){
15881 var Buffer = require('safe-buffer').Buffer
15882 var bs58check = require('bs58check')
15883 var bscript = require('./script')
15884 var networks = require('./networks')
15885 var typeforce = require('typeforce')
15886 var types = require('./types')
15888 function fromBase58Check (address) {
15889 var payload = bs58check.decode(address)
15890 if (payload.length <
21) throw new TypeError(address + ' is too short')
15891 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15893 var version = payload.readUInt8(
0)
15894 var hash = payload.slice(
1)
15896 return { hash: hash, version: version }
15899 function toBase58Check (hash, version) {
15900 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15902 var payload = Buffer.allocUnsafe(
21)
15903 payload.writeUInt8(version,
0)
15904 hash.copy(payload,
1)
15906 return bs58check.encode(payload)
15909 function fromOutputScript (outputScript, network) {
15910 network = network || networks.bitcoin
15912 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15913 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15915 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15918 function toOutputScript (address, network) {
15919 network = network || networks.bitcoin
15921 var decode = fromBase58Check(address)
15922 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15923 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15925 throw new Error(address + ' has no matching Script')
15929 fromBase58Check: fromBase58Check,
15930 fromOutputScript: fromOutputScript,
15931 toBase58Check: toBase58Check,
15932 toOutputScript: toOutputScript
15935 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15936 var Buffer = require('safe-buffer').Buffer
15937 var bcrypto = require('./crypto')
15938 var fastMerkleRoot = require('merkle-lib/fastRoot')
15939 var typeforce = require('typeforce')
15940 var types = require('./types')
15941 var varuint = require('varuint-bitcoin')
15943 var Transaction = require('./transaction')
15945 function Block () {
15947 this.prevHash = null
15948 this.merkleRoot = null
15954 Block.fromBuffer = function (buffer) {
15955 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15958 function readSlice (n) {
15960 return buffer.slice(offset - n, offset)
15963 function readUInt32 () {
15964 var i = buffer.readUInt32LE(offset)
15969 function readInt32 () {
15970 var i = buffer.readInt32LE(offset)
15975 var block = new Block()
15976 block.version = readInt32()
15977 block.prevHash = readSlice(
32)
15978 block.merkleRoot = readSlice(
32)
15979 block.timestamp = readUInt32()
15980 block.bits = readUInt32()
15981 block.nonce = readUInt32()
15983 if (buffer.length ===
80) return block
15985 function readVarInt () {
15986 var vi = varuint.decode(buffer, offset)
15987 offset += varuint.decode.bytes
15991 function readTransaction () {
15992 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
15993 offset += tx.byteLength()
15997 var nTransactions = readVarInt()
15998 block.transactions = []
16000 for (var i =
0; i < nTransactions; ++i) {
16001 var tx = readTransaction()
16002 block.transactions.push(tx)
16008 Block.prototype.byteLength = function (headersOnly) {
16009 if (headersOnly || !this.transactions) return
80
16011 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16012 return a + x.byteLength()
16016 Block.fromHex = function (hex) {
16017 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16020 Block.prototype.getHash = function () {
16021 return bcrypto.hash256(this.toBuffer(true))
16024 Block.prototype.getId = function () {
16025 return this.getHash().reverse().toString('hex')
16028 Block.prototype.getUTCDate = function () {
16029 var date = new Date(
0) // epoch
16030 date.setUTCSeconds(this.timestamp)
16035 // TODO: buffer, offset compatibility
16036 Block.prototype.toBuffer = function (headersOnly) {
16037 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16040 function writeSlice (slice) {
16041 slice.copy(buffer, offset)
16042 offset += slice.length
16045 function writeInt32 (i) {
16046 buffer.writeInt32LE(i, offset)
16049 function writeUInt32 (i) {
16050 buffer.writeUInt32LE(i, offset)
16054 writeInt32(this.version)
16055 writeSlice(this.prevHash)
16056 writeSlice(this.merkleRoot)
16057 writeUInt32(this.timestamp)
16058 writeUInt32(this.bits)
16059 writeUInt32(this.nonce)
16061 if (headersOnly || !this.transactions) return buffer
16063 varuint.encode(this.transactions.length, buffer, offset)
16064 offset += varuint.encode.bytes
16066 this.transactions.forEach(function (tx) {
16067 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16068 tx.toBuffer(buffer, offset)
16075 Block.prototype.toHex = function (headersOnly) {
16076 return this.toBuffer(headersOnly).toString('hex')
16079 Block.calculateTarget = function (bits) {
16080 var exponent = ((bits &
0xff000000)
>> 24) -
3
16081 var mantissa = bits &
0x007fffff
16082 var target = Buffer.alloc(
32,
0)
16083 target.writeUInt32BE(mantissa,
28 - exponent)
16087 Block.calculateMerkleRoot = function (transactions) {
16088 typeforce([{ getHash: types.Function }], transactions)
16089 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16091 var hashes = transactions.map(function (transaction) {
16092 return transaction.getHash()
16095 return fastMerkleRoot(hashes, bcrypto.hash256)
16098 Block.prototype.checkMerkleRoot = function () {
16099 if (!this.transactions) return false
16101 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16102 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16105 Block.prototype.checkProofOfWork = function () {
16106 var hash = this.getHash().reverse()
16107 var target = Block.calculateTarget(this.bits)
16109 return hash.compare(target) <=
0
16112 module.exports = Block
16114 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16115 var pushdata = require('pushdata-bitcoin')
16116 var varuint = require('varuint-bitcoin')
16118 // https://github.com/feross/buffer/blob/master/index.js#L1127
16119 function verifuint (value, max) {
16120 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16121 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16122 if (value
> max) throw new Error('RangeError: value out of range')
16123 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16126 function readUInt64LE (buffer, offset) {
16127 var a = buffer.readUInt32LE(offset)
16128 var b = buffer.readUInt32LE(offset +
4)
16131 verifuint(b + a,
0x001fffffffffffff)
16136 function writeUInt64LE (buffer, value, offset) {
16137 verifuint(value,
0x001fffffffffffff)
16139 buffer.writeInt32LE(value & -
1, offset)
16140 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16144 // TODO: remove in
4.0.0?
16145 function readVarInt (buffer, offset) {
16146 var result = varuint.decode(buffer, offset)
16150 size: varuint.decode.bytes
16154 // TODO: remove in
4.0.0?
16155 function writeVarInt (buffer, number, offset) {
16156 varuint.encode(number, buffer, offset)
16157 return varuint.encode.bytes
16161 pushDataSize: pushdata.encodingLength,
16162 readPushDataInt: pushdata.decode,
16163 readUInt64LE: readUInt64LE,
16164 readVarInt: readVarInt,
16165 varIntBuffer: varuint.encode,
16166 varIntSize: varuint.encodingLength,
16167 writePushDataInt: pushdata.encode,
16168 writeUInt64LE: writeUInt64LE,
16169 writeVarInt: writeVarInt
16172 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16173 var createHash = require('create-hash')
16175 function ripemd160 (buffer) {
16176 return createHash('rmd160').update(buffer).digest()
16179 function sha1 (buffer) {
16180 return createHash('sha1').update(buffer).digest()
16183 function sha256 (buffer) {
16184 return createHash('sha256').update(buffer).digest()
16187 function hash160 (buffer) {
16188 return ripemd160(sha256(buffer))
16191 function hash256 (buffer) {
16192 return sha256(sha256(buffer))
16198 ripemd160: ripemd160,
16203 },{"create-hash":
82}],
46:[function(require,module,exports){
16204 var Buffer = require('safe-buffer').Buffer
16205 var createHmac = require('create-hmac')
16206 var typeforce = require('typeforce')
16207 var types = require('./types')
16209 var BigInteger = require('bigi')
16210 var ECSignature = require('./ecsignature')
16212 var ZERO = Buffer.alloc(
1,
0)
16213 var ONE = Buffer.alloc(
1,
1)
16215 var ecurve = require('ecurve')
16216 var secp256k1 = ecurve.getCurveByName('secp256k1')
16218 // https://tools.ietf.org/html/rfc6979#section-
3.2
16219 function deterministicGenerateK (hash, x, checkSig) {
16220 typeforce(types.tuple(
16222 types.Buffer256bit,
16226 // Step A, ignored as hash already provided
16229 var k = Buffer.alloc(
32,
0)
16230 var v = Buffer.alloc(
32,
1)
16233 k = createHmac('sha256', k)
16241 v = createHmac('sha256', k).update(v).digest()
16244 k = createHmac('sha256', k)
16252 v = createHmac('sha256', k).update(v).digest()
16254 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16256 v = createHmac('sha256', k).update(v).digest()
16258 var T = BigInteger.fromBuffer(v)
16260 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16261 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16262 k = createHmac('sha256', k)
16267 v = createHmac('sha256', k).update(v).digest()
16269 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16271 v = createHmac('sha256', k).update(v).digest()
16272 T = BigInteger.fromBuffer(v)
16278 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16280 function sign (hash, d) {
16281 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16283 var x = d.toBuffer(
32)
16284 var e = BigInteger.fromBuffer(hash)
16285 var n = secp256k1.n
16286 var G = secp256k1.G
16289 deterministicGenerateK(hash, x, function (k) {
16290 var Q = G.multiply(k)
16292 if (secp256k1.isInfinity(Q)) return false
16294 r = Q.affineX.mod(n)
16295 if (r.signum() ===
0) return false
16297 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16298 if (s.signum() ===
0) return false
16303 // enforce low S values, see bip62: 'low s values in signatures'
16304 if (s.compareTo(N_OVER_TWO)
> 0) {
16308 return new ECSignature(r, s)
16311 function verify (hash, signature, Q) {
16312 typeforce(types.tuple(
16318 var n = secp256k1.n
16319 var G = secp256k1.G
16321 var r = signature.r
16322 var s = signature.s
16324 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16325 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16326 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16328 //
1.4.2 H = Hash(M), already done by the user
16330 var e = BigInteger.fromBuffer(hash)
16333 var sInv = s.modInverse(n)
16335 //
1.4.4 Compute u1 = es^−
1 mod n
16336 // u2 = rs^−
1 mod n
16337 var u1 = e.multiply(sInv).mod(n)
16338 var u2 = r.multiply(sInv).mod(n)
16340 //
1.4.5 Compute R = (xR, yR)
16342 var R = G.multiplyTwo(u1, Q, u2)
16344 //
1.4.5 (cont.) Enforce R is not at infinity
16345 if (secp256k1.isInfinity(R)) return false
16347 //
1.4.6 Convert the field element R.x to an integer
16350 //
1.4.7 Set v = xR mod n
16353 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16358 deterministicGenerateK: deterministicGenerateK,
16366 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16367 var baddress = require('./address')
16368 var bcrypto = require('./crypto')
16369 var ecdsa = require('./ecdsa')
16370 var randomBytes = require('randombytes')
16371 var typeforce = require('typeforce')
16372 var types = require('./types')
16373 var wif = require('wif')
16375 var NETWORKS = require('./networks')
16376 var BigInteger = require('bigi')
16378 var ecurve = require('ecurve')
16379 var secp256k1 = ecdsa.__curve
16381 function ECPair (d, Q, options) {
16384 compressed: types.maybe(types.Boolean),
16385 network: types.maybe(types.Network)
16389 options = options || {}
16392 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16393 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16394 if (Q) throw new TypeError('Unexpected publicKey parameter')
16398 typeforce(types.ECPoint, Q)
16403 this.compressed = options.compressed === undefined ? true : options.compressed
16404 this.network = options.network || NETWORKS.bitcoin
16407 Object.defineProperty(ECPair.prototype, 'Q', {
16409 if (!this.__Q && this.d) {
16410 this.__Q = secp256k1.G.multiply(this.d)
16417 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16418 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16420 return new ECPair(null, Q, {
16421 compressed: Q.compressed,
16426 ECPair.fromWIF = function (string, network) {
16427 var decoded = wif.decode(string)
16428 var version = decoded.version
16430 // list of networks?
16431 if (types.Array(network)) {
16432 network = network.filter(function (x) {
16433 return version === x.wif
16436 if (!network) throw new Error('Unknown network version')
16438 // otherwise, assume a network object (or default to bitcoin)
16440 network = network || NETWORKS.bitcoin
16442 if (version !== network.wif) throw new Error('Invalid network version')
16445 var d = BigInteger.fromBuffer(decoded.privateKey)
16447 return new ECPair(d, null, {
16448 compressed: decoded.compressed,
16453 ECPair.makeRandom = function (options) {
16454 options = options || {}
16456 var rng = options.rng || randomBytes
16460 var buffer = rng(
32)
16461 typeforce(types.Buffer256bit, buffer)
16463 d = BigInteger.fromBuffer(buffer)
16464 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16466 return new ECPair(d, null, options)
16469 ECPair.prototype.getAddress = function () {
16470 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16473 ECPair.prototype.getNetwork = function () {
16474 return this.network
16477 ECPair.prototype.getPublicKeyBuffer = function () {
16478 return this.Q.getEncoded(this.compressed)
16481 ECPair.prototype.sign = function (hash) {
16482 if (!this.d) throw new Error('Missing private key')
16484 return ecdsa.sign(hash, this.d)
16487 ECPair.prototype.toWIF = function () {
16488 if (!this.d) throw new Error('Missing private key')
16490 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16493 ECPair.prototype.verify = function (hash, signature) {
16494 return ecdsa.verify(hash, signature, this.Q)
16497 module.exports = ECPair
16499 },{"./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){
16500 (function (Buffer){
16501 var bip66 = require('bip66')
16502 var typeforce = require('typeforce')
16503 var types = require('./types')
16505 var BigInteger = require('bigi')
16507 function ECSignature (r, s) {
16508 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16514 ECSignature.parseCompact = function (buffer) {
16515 if (buffer.length !==
65) throw new Error('Invalid signature length')
16517 var flagByte = buffer.readUInt8(
0) -
27
16518 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16520 var compressed = !!(flagByte &
4)
16521 var recoveryParam = flagByte &
3
16523 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16524 var s = BigInteger.fromBuffer(buffer.slice(
33))
16527 compressed: compressed,
16529 signature: new ECSignature(r, s)
16533 ECSignature.fromDER = function (buffer) {
16534 var decode = bip66.decode(buffer)
16535 var r = BigInteger.fromDERInteger(decode.r)
16536 var s = BigInteger.fromDERInteger(decode.s)
16538 return new ECSignature(r, s)
16541 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16542 ECSignature.parseScriptSignature = function (buffer) {
16543 var hashType = buffer.readUInt8(buffer.length -
1)
16544 var hashTypeMod = hashType & ~
0x80
16546 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16549 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16554 ECSignature.prototype.toCompact = function (i, compressed) {
16561 var buffer = Buffer.alloc(
65)
16562 buffer.writeUInt8(i,
0)
16563 this.r.toBuffer(
32).copy(buffer,
1)
16564 this.s.toBuffer(
32).copy(buffer,
33)
16569 ECSignature.prototype.toDER = function () {
16570 var r = Buffer.from(this.r.toDERInteger())
16571 var s = Buffer.from(this.s.toDERInteger())
16573 return bip66.encode(r, s)
16576 ECSignature.prototype.toScriptSignature = function (hashType) {
16577 var hashTypeMod = hashType & ~
0x80
16578 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16580 var hashTypeBuffer = Buffer.alloc(
1)
16581 hashTypeBuffer.writeUInt8(hashType,
0)
16583 return Buffer.concat([this.toDER(), hashTypeBuffer])
16586 module.exports = ECSignature
16588 }).call(this,require("buffer").Buffer)
16589 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16590 var Buffer = require('safe-buffer').Buffer
16591 var base58check = require('bs58check')
16592 var bcrypto = require('./crypto')
16593 var createHmac = require('create-hmac')
16594 var typeforce = require('typeforce')
16595 var types = require('./types')
16596 var NETWORKS = require('./networks')
16598 var BigInteger = require('bigi')
16599 var ECPair = require('./ecpair')
16601 var ecurve = require('ecurve')
16602 var curve = ecurve.getCurveByName('secp256k1')
16604 function HDNode (keyPair, chainCode) {
16605 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16607 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16609 this.keyPair = keyPair
16610 this.chainCode = chainCode
16613 this.parentFingerprint =
0x00000000
16616 HDNode.HIGHEST_BIT =
0x80000000
16618 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16620 HDNode.fromSeedBuffer = function (seed, network) {
16621 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16623 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16624 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16626 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16627 var IL = I.slice(
0,
32)
16628 var IR = I.slice(
32)
16630 // In case IL is
0 or
>= n, the master key is invalid
16631 // This is handled by the ECPair constructor
16632 var pIL = BigInteger.fromBuffer(IL)
16633 var keyPair = new ECPair(pIL, null, {
16637 return new HDNode(keyPair, IR)
16640 HDNode.fromSeedHex = function (hex, network) {
16641 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16644 HDNode.fromBase58 = function (string, networks) {
16645 var buffer = base58check.decode(string)
16646 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16648 //
4 bytes: version bytes
16649 var version = buffer.readUInt32BE(
0)
16652 // list of networks?
16653 if (Array.isArray(networks)) {
16654 network = networks.filter(function (x) {
16655 return version === x.bip32.private ||
16656 version === x.bip32.public
16659 if (!network) throw new Error('Unknown network version')
16661 // otherwise, assume a network object (or default to bitcoin)
16663 network = networks || NETWORKS.bitcoin
16666 if (version !== network.bip32.private &&
16667 version !== network.bip32.public) throw new Error('Invalid network version')
16669 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16670 var depth = buffer[
4]
16672 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16673 var parentFingerprint = buffer.readUInt32BE(
5)
16675 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16678 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16679 // This is encoded in MSB order. (
0x00000000 if master key)
16680 var index = buffer.readUInt32BE(
9)
16681 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16683 //
32 bytes: the chain code
16684 var chainCode = buffer.slice(
13,
45)
16687 //
33 bytes: private key data (
0x00 + k)
16688 if (version === network.bip32.private) {
16689 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16691 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16692 keyPair = new ECPair(d, null, { network: network })
16694 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16696 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16697 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16699 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16700 // If not, the extended public key is invalid.
16703 keyPair = new ECPair(null, Q, { network: network })
16706 var hd = new HDNode(keyPair, chainCode)
16709 hd.parentFingerprint = parentFingerprint
16714 HDNode.prototype.getAddress = function () {
16715 return this.keyPair.getAddress()
16718 HDNode.prototype.getIdentifier = function () {
16719 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16722 HDNode.prototype.getFingerprint = function () {
16723 return this.getIdentifier().slice(
0,
4)
16726 HDNode.prototype.getNetwork = function () {
16727 return this.keyPair.getNetwork()
16730 HDNode.prototype.getPublicKeyBuffer = function () {
16731 return this.keyPair.getPublicKeyBuffer()
16734 HDNode.prototype.neutered = function () {
16735 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16736 network: this.keyPair.network
16739 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16740 neutered.depth = this.depth
16741 neutered.index = this.index
16742 neutered.parentFingerprint = this.parentFingerprint
16747 HDNode.prototype.sign = function (hash) {
16748 return this.keyPair.sign(hash)
16751 HDNode.prototype.verify = function (hash, signature) {
16752 return this.keyPair.verify(hash, signature)
16755 HDNode.prototype.toBase58 = function (__isPrivate) {
16756 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16759 var network = this.keyPair.network
16760 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16761 var buffer = Buffer.allocUnsafe(
78)
16763 //
4 bytes: version bytes
16764 buffer.writeUInt32BE(version,
0)
16766 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16767 buffer.writeUInt8(this.depth,
4)
16769 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16770 buffer.writeUInt32BE(this.parentFingerprint,
5)
16772 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16773 // This is encoded in big endian. (
0x00000000 if master key)
16774 buffer.writeUInt32BE(this.index,
9)
16776 //
32 bytes: the chain code
16777 this.chainCode.copy(buffer,
13)
16779 //
33 bytes: the public key or private key data
16780 if (!this.isNeutered()) {
16781 //
0x00 + k for private keys
16782 buffer.writeUInt8(
0,
45)
16783 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16785 //
33 bytes: the public key
16787 // X9.62 encoding for public keys
16788 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16791 return base58check.encode(buffer)
16794 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16795 HDNode.prototype.derive = function (index) {
16796 typeforce(types.UInt32, index)
16798 var isHardened = index
>= HDNode.HIGHEST_BIT
16799 var data = Buffer.allocUnsafe(
37)
16803 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16805 // data =
0x00 || ser256(kpar) || ser32(index)
16807 this.keyPair.d.toBuffer(
32).copy(data,
1)
16808 data.writeUInt32BE(index,
33)
16812 // data = serP(point(kpar)) || ser32(index)
16813 // = serP(Kpar) || ser32(index)
16814 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16815 data.writeUInt32BE(index,
33)
16818 var I = createHmac('sha512', this.chainCode).update(data).digest()
16819 var IL = I.slice(
0,
32)
16820 var IR = I.slice(
32)
16822 var pIL = BigInteger.fromBuffer(IL)
16824 // In case parse256(IL)
>= n, proceed with the next value for i
16825 if (pIL.compareTo(curve.n)
>=
0) {
16826 return this.derive(index +
1)
16829 // Private parent key -
> private child key
16831 if (!this.isNeutered()) {
16832 // ki = parse256(IL) + kpar (mod n)
16833 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16835 // In case ki ==
0, proceed with the next value for i
16836 if (ki.signum() ===
0) {
16837 return this.derive(index +
1)
16840 derivedKeyPair = new ECPair(ki, null, {
16841 network: this.keyPair.network
16844 // Public parent key -
> public child key
16846 // Ki = point(parse256(IL)) + Kpar
16848 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16850 // In case Ki is the point at infinity, proceed with the next value for i
16851 if (curve.isInfinity(Ki)) {
16852 return this.derive(index +
1)
16855 derivedKeyPair = new ECPair(null, Ki, {
16856 network: this.keyPair.network
16860 var hd = new HDNode(derivedKeyPair, IR)
16861 hd.depth = this.depth +
1
16863 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16868 HDNode.prototype.deriveHardened = function (index) {
16869 typeforce(types.UInt31, index)
16871 // Only derives hardened private keys by default
16872 return this.derive(index + HDNode.HIGHEST_BIT)
16875 // Private === not neutered
16876 // Public === neutered
16877 HDNode.prototype.isNeutered = function () {
16878 return !(this.keyPair.d)
16881 HDNode.prototype.derivePath = function (path) {
16882 typeforce(types.BIP32Path, path)
16884 var splitPath = path.split('/')
16885 if (splitPath[
0] === 'm') {
16886 if (this.parentFingerprint) {
16887 throw new Error('Not a master node')
16890 splitPath = splitPath.slice(
1)
16893 return splitPath.reduce(function (prevHd, indexStr) {
16895 if (indexStr.slice(-
1) === "'") {
16896 index = parseInt(indexStr.slice(
0, -
1),
10)
16897 return prevHd.deriveHardened(index)
16899 index = parseInt(indexStr,
10)
16900 return prevHd.derive(index)
16905 module.exports = HDNode
16907 },{"./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){
16909 Block: require('./block'),
16910 ECPair: require('./ecpair'),
16911 ECSignature: require('./ecsignature'),
16912 HDNode: require('./hdnode'),
16913 Transaction: require('./transaction'),
16914 TransactionBuilder: require('./transaction_builder'),
16916 address: require('./address'),
16917 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16918 crypto: require('./crypto'),
16919 networks: require('./networks'),
16920 opcodes: require('bitcoin-ops'),
16921 script: require('./script')
16924 },{"./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){
16925 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16926 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16930 messagePrefix: '\x18Bitcoin Signed Message:\n',
16932 public:
0x0488b21e,
16933 private:
0x0488ade4
16940 messagePrefix: '\x18Bitcoin Signed Message:\n',
16942 public:
0x043587cf,
16943 private:
0x04358394
16950 messagePrefix: '\x19Litecoin Signed Message:\n',
16952 public:
0x0488b21e,
16953 private:
0x0488ade4,
16960 messagePrefix: '\x19Litecoin Signed Message:\n',
16962 public:
0x019da462,
16963 private:
0x019d9cfe
16971 },{}],
52:[function(require,module,exports){
16972 var Buffer = require('safe-buffer').Buffer
16973 var bip66 = require('bip66')
16974 var pushdata = require('pushdata-bitcoin')
16975 var typeforce = require('typeforce')
16976 var types = require('./types')
16977 var scriptNumber = require('./script_number')
16979 var OPS = require('bitcoin-ops')
16980 var REVERSE_OPS = require('bitcoin-ops/map')
16981 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
16983 function isOPInt (value) {
16984 return types.Number(value) &&
16985 ((value === OPS.OP_0) ||
16986 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
16987 (value === OPS.OP_1NEGATE))
16990 function isPushOnlyChunk (value) {
16991 return types.Buffer(value) || isOPInt(value)
16994 function isPushOnly (value) {
16995 return types.Array(value) && value.every(isPushOnlyChunk)
16998 function compile (chunks) {
17000 if (Buffer.isBuffer(chunks)) return chunks
17002 typeforce(types.Array, chunks)
17004 var bufferSize = chunks.reduce(function (accum, chunk) {
17006 if (Buffer.isBuffer(chunk)) {
17007 // adhere to BIP62.3, minimal push policy
17008 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17012 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17019 var buffer = Buffer.allocUnsafe(bufferSize)
17022 chunks.forEach(function (chunk) {
17024 if (Buffer.isBuffer(chunk)) {
17025 // adhere to BIP62.3, minimal push policy
17026 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17027 var opcode = OP_INT_BASE + chunk[
0]
17028 buffer.writeUInt8(opcode, offset)
17033 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17034 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17039 offset += pushdata.encode(buffer, chunk.length, offset)
17041 chunk.copy(buffer, offset)
17042 offset += chunk.length
17046 buffer.writeUInt8(chunk, offset)
17051 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17055 function decompile (buffer) {
17057 if (types.Array(buffer)) return buffer
17059 typeforce(types.Buffer, buffer)
17064 while (i < buffer.length) {
17065 var opcode = buffer[i]
17068 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17069 var d = pushdata.decode(buffer, i)
17071 // did reading a pushDataInt fail? empty script
17072 if (d === null) return []
17075 // attempt to read too much data? empty script
17076 if (i + d.number
> buffer.length) return []
17078 var data = buffer.slice(i, i + d.number)
17085 chunks.push(opcode)
17094 function toASM (chunks) {
17095 if (Buffer.isBuffer(chunks)) {
17096 chunks = decompile(chunks)
17099 return chunks.map(function (chunk) {
17101 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17104 return REVERSE_OPS[chunk]
17108 function fromASM (asm) {
17109 typeforce(types.String, asm)
17111 return compile(asm.split(' ').map(function (chunkStr) {
17113 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17114 typeforce(types.Hex, chunkStr)
17117 return Buffer.from(chunkStr, 'hex')
17121 function toStack (chunks) {
17122 chunks = decompile(chunks)
17123 typeforce(isPushOnly, chunks)
17125 return chunks.map(function (op) {
17126 if (Buffer.isBuffer(op)) return op
17127 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17129 return scriptNumber.encode(op - OP_INT_BASE)
17133 function isCanonicalPubKey (buffer) {
17134 if (!Buffer.isBuffer(buffer)) return false
17135 if (buffer.length <
33) return false
17137 switch (buffer[
0]) {
17140 return buffer.length ===
33
17142 return buffer.length ===
65
17148 function isDefinedHashType (hashType) {
17149 var hashTypeMod = hashType & ~
0x80
17151 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17152 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17155 function isCanonicalSignature (buffer) {
17156 if (!Buffer.isBuffer(buffer)) return false
17157 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17159 return bip66.check(buffer.slice(
0, -
1))
17164 decompile: decompile,
17169 number: require('./script_number'),
17171 isCanonicalPubKey: isCanonicalPubKey,
17172 isCanonicalSignature: isCanonicalSignature,
17173 isPushOnly: isPushOnly,
17174 isDefinedHashType: isDefinedHashType
17177 var templates = require('./templates')
17178 for (var key in templates) {
17179 module.exports[key] = templates[key]
17182 },{
"./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){
17183 var Buffer = require('safe-buffer').Buffer
17185 function decode (buffer, maxLength, minimal) {
17186 maxLength = maxLength ||
4
17187 minimal = minimal === undefined ? true : minimal
17189 var length = buffer.length
17190 if (length ===
0) return
0
17191 if (length
> maxLength) throw new TypeError('Script number overflow')
17193 if ((buffer[length -
1] &
0x7f) ===
0) {
17194 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17199 if (length ===
5) {
17200 var a = buffer.readUInt32LE(
0)
17201 var b = buffer.readUInt8(
4)
17203 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17204 return (b *
0x100000000) + a
17209 //
32-bit /
24-bit /
16-bit /
8-bit
17210 for (var i =
0; i < length; ++i) {
17211 result |= buffer[i] << (
8 * i)
17214 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17218 function scriptNumSize (i) {
17219 return i
> 0x7fffffff ?
5
17227 function encode (number) {
17228 var value = Math.abs(number)
17229 var size = scriptNumSize(value)
17230 var buffer = Buffer.allocUnsafe(size)
17231 var negative = number <
0
17233 for (var i =
0; i < size; ++i) {
17234 buffer.writeUInt8(value &
0xff, i)
17238 if (buffer[size -
1] &
0x80) {
17239 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17240 } else if (negative) {
17241 buffer[size -
1] |=
0x80
17252 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17253 var decompile = require('../script').decompile
17254 var multisig = require('./multisig')
17255 var nullData = require('./nulldata')
17256 var pubKey = require('./pubkey')
17257 var pubKeyHash = require('./pubkeyhash')
17258 var scriptHash = require('./scripthash')
17259 var witnessPubKeyHash = require('./witnesspubkeyhash')
17260 var witnessScriptHash = require('./witnessscripthash')
17261 var witnessCommitment = require('./witnesscommitment')
17264 MULTISIG: 'multisig',
17265 NONSTANDARD: 'nonstandard',
17266 NULLDATA: 'nulldata',
17268 P2PKH: 'pubkeyhash',
17269 P2SH: 'scripthash',
17270 P2WPKH: 'witnesspubkeyhash',
17271 P2WSH: 'witnessscripthash',
17272 WITNESS_COMMITMENT: 'witnesscommitment'
17275 function classifyOutput (script) {
17276 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17277 if (witnessScriptHash.output.check(script)) return types.P2WSH
17278 if (pubKeyHash.output.check(script)) return types.P2PKH
17279 if (scriptHash.output.check(script)) return types.P2SH
17281 // XXX: optimization, below functions .decompile before use
17282 var chunks = decompile(script)
17283 if (multisig.output.check(chunks)) return types.MULTISIG
17284 if (pubKey.output.check(chunks)) return types.P2PK
17285 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17286 if (nullData.output.check(chunks)) return types.NULLDATA
17288 return types.NONSTANDARD
17291 function classifyInput (script, allowIncomplete) {
17292 // XXX: optimization, below functions .decompile before use
17293 var chunks = decompile(script)
17295 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17296 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17297 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17298 if (pubKey.input.check(chunks)) return types.P2PK
17300 return types.NONSTANDARD
17303 function classifyWitness (script, allowIncomplete) {
17304 // XXX: optimization, below functions .decompile before use
17305 var chunks = decompile(script)
17307 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17308 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17310 return types.NONSTANDARD
17314 classifyInput: classifyInput,
17315 classifyOutput: classifyOutput,
17316 classifyWitness: classifyWitness,
17317 multisig: multisig,
17318 nullData: nullData,
17320 pubKeyHash: pubKeyHash,
17321 scriptHash: scriptHash,
17322 witnessPubKeyHash: witnessPubKeyHash,
17323 witnessScriptHash: witnessScriptHash,
17324 witnessCommitment: witnessCommitment,
17328 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17330 input: require('./input'),
17331 output: require('./output')
17334 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17335 // OP_0 [signatures ...]
17337 var Buffer = require('safe-buffer').Buffer
17338 var bscript = require('../../script')
17339 var typeforce = require('typeforce')
17340 var OPS = require('bitcoin-ops')
17342 function partialSignature (value) {
17343 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17346 function check (script, allowIncomplete) {
17347 var chunks = bscript.decompile(script)
17348 if (chunks.length <
2) return false
17349 if (chunks[
0] !== OPS.OP_0) return false
17351 if (allowIncomplete) {
17352 return chunks.slice(
1).every(partialSignature)
17355 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17357 check.toJSON = function () { return 'multisig input' }
17359 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17361 function encodeStack (signatures, scriptPubKey) {
17362 typeforce([partialSignature], signatures)
17364 if (scriptPubKey) {
17365 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17367 if (signatures.length < scriptData.m) {
17368 throw new TypeError('Not enough signatures provided')
17371 if (signatures.length
> scriptData.pubKeys.length) {
17372 throw new TypeError('Too many signatures provided')
17376 return [].concat(EMPTY_BUFFER, signatures)
17379 function encode (signatures, scriptPubKey) {
17380 return bscript.compile(encodeStack(signatures, scriptPubKey))
17383 function decodeStack (stack, allowIncomplete) {
17384 typeforce(check, stack, allowIncomplete)
17385 return stack.slice(
1)
17388 function decode (buffer, allowIncomplete) {
17389 var stack = bscript.decompile(buffer)
17390 return decodeStack(stack, allowIncomplete)
17396 decodeStack: decodeStack,
17398 encodeStack: encodeStack
17401 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17402 // m [pubKeys ...] n OP_CHECKMULTISIG
17404 var bscript = require('../../script')
17405 var types = require('../../types')
17406 var typeforce = require('typeforce')
17407 var OPS = require('bitcoin-ops')
17408 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17410 function check (script, allowIncomplete) {
17411 var chunks = bscript.decompile(script)
17413 if (chunks.length <
4) return false
17414 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17415 if (!types.Number(chunks[
0])) return false
17416 if (!types.Number(chunks[chunks.length -
2])) return false
17417 var m = chunks[
0] - OP_INT_BASE
17418 var n = chunks[chunks.length -
2] - OP_INT_BASE
17420 if (m <=
0) return false
17421 if (n
> 16) return false
17422 if (m
> n) return false
17423 if (n !== chunks.length -
3) return false
17424 if (allowIncomplete) return true
17426 var keys = chunks.slice(
1, -
2)
17427 return keys.every(bscript.isCanonicalPubKey)
17429 check.toJSON = function () { return 'multi-sig output' }
17431 function encode (m, pubKeys) {
17434 pubKeys: [bscript.isCanonicalPubKey]
17440 var n = pubKeys.length
17441 if (n < m) throw new TypeError('Not enough pubKeys provided')
17443 return bscript.compile([].concat(
17447 OPS.OP_CHECKMULTISIG
17451 function decode (buffer, allowIncomplete) {
17452 var chunks = bscript.decompile(buffer)
17453 typeforce(check, chunks, allowIncomplete)
17456 m: chunks[
0] - OP_INT_BASE,
17457 pubKeys: chunks.slice(
1, -
2)
17467 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17468 // OP_RETURN {data}
17470 var bscript = require('../script')
17471 var types = require('../types')
17472 var typeforce = require('typeforce')
17473 var OPS = require('bitcoin-ops')
17475 function check (script) {
17476 var buffer = bscript.compile(script)
17478 return buffer.length
> 1 &&
17479 buffer[
0] === OPS.OP_RETURN
17481 check.toJSON = function () { return 'null data output' }
17483 function encode (data) {
17484 typeforce(types.Buffer, data)
17486 return bscript.compile([OPS.OP_RETURN, data])
17489 function decode (buffer) {
17490 typeforce(check, buffer)
17492 return buffer.slice(
2)
17503 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17504 arguments[
4][
55][
0].apply(exports,arguments)
17505 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17508 var bscript = require('../../script')
17509 var types = require('../../types')
17510 var typeforce = require('typeforce')
17512 function check (script) {
17513 var chunks = bscript.decompile(script)
17515 return chunks.length ===
1 &&
17516 bscript.isCanonicalSignature(chunks[
0])
17518 check.toJSON = function () { return 'pubKey input' }
17520 function encodeStack (signature) {
17521 typeforce(types.Buffer, signature)
17525 function encode (signature) {
17526 return bscript.compile(encodeStack(signature))
17529 function decodeStack (stack) {
17530 typeforce(check, stack)
17534 function decode (buffer) {
17535 var stack = bscript.decompile(buffer)
17536 return decodeStack(stack)
17542 decodeStack: decodeStack,
17544 encodeStack: encodeStack
17547 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17548 // {pubKey} OP_CHECKSIG
17550 var bscript = require('../../script')
17551 var typeforce = require('typeforce')
17552 var OPS = require('bitcoin-ops')
17554 function check (script) {
17555 var chunks = bscript.decompile(script)
17557 return chunks.length ===
2 &&
17558 bscript.isCanonicalPubKey(chunks[
0]) &&
17559 chunks[
1] === OPS.OP_CHECKSIG
17561 check.toJSON = function () { return 'pubKey output' }
17563 function encode (pubKey) {
17564 typeforce(bscript.isCanonicalPubKey, pubKey)
17566 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17569 function decode (buffer) {
17570 var chunks = bscript.decompile(buffer)
17571 typeforce(check, chunks)
17582 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17583 arguments[
4][
55][
0].apply(exports,arguments)
17584 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17585 // {signature} {pubKey}
17587 var bscript = require('../../script')
17588 var types = require('../../types')
17589 var typeforce = require('typeforce')
17591 function check (script) {
17592 var chunks = bscript.decompile(script)
17594 return chunks.length ===
2 &&
17595 bscript.isCanonicalSignature(chunks[
0]) &&
17596 bscript.isCanonicalPubKey(chunks[
1])
17598 check.toJSON = function () { return 'pubKeyHash input' }
17600 function encodeStack (signature, pubKey) {
17602 signature: types.Buffer, pubKey: types.Buffer
17604 signature: signature, pubKey: pubKey
17607 return [signature, pubKey]
17610 function encode (signature, pubKey) {
17611 return bscript.compile(encodeStack(signature, pubKey))
17614 function decodeStack (stack) {
17615 typeforce(check, stack)
17618 signature: stack[
0],
17623 function decode (buffer) {
17624 var stack = bscript.decompile(buffer)
17625 return decodeStack(stack)
17631 decodeStack: decodeStack,
17633 encodeStack: encodeStack
17636 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17637 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17639 var bscript = require('../../script')
17640 var types = require('../../types')
17641 var typeforce = require('typeforce')
17642 var OPS = require('bitcoin-ops')
17644 function check (script) {
17645 var buffer = bscript.compile(script)
17647 return buffer.length ===
25 &&
17648 buffer[
0] === OPS.OP_DUP &&
17649 buffer[
1] === OPS.OP_HASH160 &&
17650 buffer[
2] ===
0x14 &&
17651 buffer[
23] === OPS.OP_EQUALVERIFY &&
17652 buffer[
24] === OPS.OP_CHECKSIG
17654 check.toJSON = function () { return 'pubKeyHash output' }
17656 function encode (pubKeyHash) {
17657 typeforce(types.Hash160bit, pubKeyHash)
17659 return bscript.compile([
17663 OPS.OP_EQUALVERIFY,
17668 function decode (buffer) {
17669 typeforce(check, buffer)
17671 return buffer.slice(
3,
23)
17680 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17681 arguments[
4][
55][
0].apply(exports,arguments)
17682 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17683 //
<scriptSig> {serialized scriptPubKey script}
17685 var Buffer = require('safe-buffer').Buffer
17686 var bscript = require('../../script')
17687 var typeforce = require('typeforce')
17689 function check (script, allowIncomplete) {
17690 var chunks = bscript.decompile(script)
17691 if (chunks.length <
1) return false
17693 var lastChunk = chunks[chunks.length -
1]
17694 if (!Buffer.isBuffer(lastChunk)) return false
17696 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17697 var redeemScriptChunks = bscript.decompile(lastChunk)
17699 // is redeemScript a valid script?
17700 if (redeemScriptChunks.length ===
0) return false
17702 // is redeemScriptSig push only?
17703 if (!bscript.isPushOnly(scriptSigChunks)) return false
17705 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17706 var outputType = bscript.classifyOutput(redeemScriptChunks)
17707 if (chunks.length ===
1) {
17708 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17710 return inputType === outputType
17712 check.toJSON = function () { return 'scriptHash input' }
17714 function encodeStack (redeemScriptStack, redeemScript) {
17715 var serializedScriptPubKey = bscript.compile(redeemScript)
17717 return [].concat(redeemScriptStack, serializedScriptPubKey)
17720 function encode (redeemScriptSig, redeemScript) {
17721 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17723 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17726 function decodeStack (stack) {
17727 typeforce(check, stack)
17730 redeemScriptStack: stack.slice(
0, -
1),
17731 redeemScript: stack[stack.length -
1]
17735 function decode (buffer) {
17736 var stack = bscript.decompile(buffer)
17737 var result = decodeStack(stack)
17738 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17739 delete result.redeemScriptStack
17746 decodeStack: decodeStack,
17748 encodeStack: encodeStack
17751 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17752 // OP_HASH160 {scriptHash} OP_EQUAL
17754 var bscript = require('../../script')
17755 var types = require('../../types')
17756 var typeforce = require('typeforce')
17757 var OPS = require('bitcoin-ops')
17759 function check (script) {
17760 var buffer = bscript.compile(script)
17762 return buffer.length ===
23 &&
17763 buffer[
0] === OPS.OP_HASH160 &&
17764 buffer[
1] ===
0x14 &&
17765 buffer[
22] === OPS.OP_EQUAL
17767 check.toJSON = function () { return 'scriptHash output' }
17769 function encode (scriptHash) {
17770 typeforce(types.Hash160bit, scriptHash)
17772 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17775 function decode (buffer) {
17776 typeforce(check, buffer)
17778 return buffer.slice(
2,
22)
17787 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17789 output: require('./output')
17792 },{"./output":
69}],
69:[function(require,module,exports){
17793 // OP_RETURN {aa21a9ed} {commitment}
17795 var Buffer = require('safe-buffer').Buffer
17796 var bscript = require('../../script')
17797 var types = require('../../types')
17798 var typeforce = require('typeforce')
17799 var OPS = require('bitcoin-ops')
17801 var HEADER = Buffer.from('aa21a9ed', 'hex')
17803 function check (script) {
17804 var buffer = bscript.compile(script)
17806 return buffer.length
> 37 &&
17807 buffer[
0] === OPS.OP_RETURN &&
17808 buffer[
1] ===
0x24 &&
17809 buffer.slice(
2,
6).equals(HEADER)
17812 check.toJSON = function () { return 'Witness commitment output' }
17814 function encode (commitment) {
17815 typeforce(types.Hash256bit, commitment)
17817 var buffer = Buffer.allocUnsafe(
36)
17818 HEADER.copy(buffer,
0)
17819 commitment.copy(buffer,
4)
17821 return bscript.compile([OPS.OP_RETURN, buffer])
17824 function decode (buffer) {
17825 typeforce(check, buffer)
17827 return bscript.decompile(buffer)[
1].slice(
4,
36)
17836 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17837 arguments[
4][
55][
0].apply(exports,arguments)
17838 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17839 // {signature} {pubKey}
17841 var pkh = require('../pubkeyhash/input')
17845 decodeStack: pkh.decodeStack,
17846 encodeStack: pkh.encodeStack
17849 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17850 // OP_0 {pubKeyHash}
17852 var bscript = require('../../script')
17853 var types = require('../../types')
17854 var typeforce = require('typeforce')
17855 var OPS = require('bitcoin-ops')
17857 function check (script) {
17858 var buffer = bscript.compile(script)
17860 return buffer.length ===
22 &&
17861 buffer[
0] === OPS.OP_0 &&
17864 check.toJSON = function () { return 'Witness pubKeyHash output' }
17866 function encode (pubKeyHash) {
17867 typeforce(types.Hash160bit, pubKeyHash)
17869 return bscript.compile([OPS.OP_0, pubKeyHash])
17872 function decode (buffer) {
17873 typeforce(check, buffer)
17875 return buffer.slice(
2)
17884 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17885 arguments[
4][
55][
0].apply(exports,arguments)
17886 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17887 // {signature} {pubKey}
17889 var p2sh = require('../scripthash/input')
17893 decodeStack: p2sh.decodeStack,
17894 encodeStack: p2sh.encodeStack
17897 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17898 // OP_0 {scriptHash}
17900 var bscript = require('../../script')
17901 var types = require('../../types')
17902 var typeforce = require('typeforce')
17903 var OPS = require('bitcoin-ops')
17905 function check (script) {
17906 var buffer = bscript.compile(script)
17908 return buffer.length ===
34 &&
17909 buffer[
0] === OPS.OP_0 &&
17912 check.toJSON = function () { return 'Witness scriptHash output' }
17914 function encode (scriptHash) {
17915 typeforce(types.Hash256bit, scriptHash)
17917 return bscript.compile([OPS.OP_0, scriptHash])
17920 function decode (buffer) {
17921 typeforce(check, buffer)
17923 return buffer.slice(
2)
17932 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17933 var Buffer = require('safe-buffer').Buffer
17934 var bcrypto = require('./crypto')
17935 var bscript = require('./script')
17936 var bufferutils = require('./bufferutils')
17937 var opcodes = require('bitcoin-ops')
17938 var typeforce = require('typeforce')
17939 var types = require('./types')
17940 var varuint = require('varuint-bitcoin')
17942 function varSliceSize (someScript) {
17943 var length = someScript.length
17945 return varuint.encodingLength(length) + length
17948 function vectorSize (someVector) {
17949 var length = someVector.length
17951 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17952 return sum + varSliceSize(witness)
17956 function Transaction () {
17963 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17964 Transaction.SIGHASH_ALL =
0x01
17965 Transaction.SIGHASH_NONE =
0x02
17966 Transaction.SIGHASH_SINGLE =
0x03
17967 Transaction.SIGHASH_ANYONECANPAY =
0x80
17968 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17969 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17971 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17972 var EMPTY_WITNESS = []
17973 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17974 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17975 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17976 var BLANK_OUTPUT = {
17977 script: EMPTY_SCRIPT,
17978 valueBuffer: VALUE_UINT64_MAX
17981 Transaction.fromBuffer = function (buffer, __noStrict) {
17983 function readSlice (n) {
17985 return buffer.slice(offset - n, offset)
17988 function readUInt32 () {
17989 var i = buffer.readUInt32LE(offset)
17994 function readInt32 () {
17995 var i = buffer.readInt32LE(offset)
18000 function readUInt64 () {
18001 var i = bufferutils.readUInt64LE(buffer, offset)
18006 function readVarInt () {
18007 var vi = varuint.decode(buffer, offset)
18008 offset += varuint.decode.bytes
18012 function readVarSlice () {
18013 return readSlice(readVarInt())
18016 function readVector () {
18017 var count = readVarInt()
18019 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18023 var tx = new Transaction()
18024 tx.version = readInt32()
18026 var marker = buffer.readUInt8(offset)
18027 var flag = buffer.readUInt8(offset +
1)
18029 var hasWitnesses = false
18030 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18031 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18033 hasWitnesses = true
18036 var vinLen = readVarInt()
18037 for (var i =
0; i < vinLen; ++i) {
18039 hash: readSlice(
32),
18040 index: readUInt32(),
18041 script: readVarSlice(),
18042 sequence: readUInt32(),
18043 witness: EMPTY_WITNESS
18047 var voutLen = readVarInt()
18048 for (i =
0; i < voutLen; ++i) {
18050 value: readUInt64(),
18051 script: readVarSlice()
18055 if (hasWitnesses) {
18056 for (i =
0; i < vinLen; ++i) {
18057 tx.ins[i].witness = readVector()
18060 // was this pointless?
18061 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18064 tx.locktime = readUInt32()
18066 if (__noStrict) return tx
18067 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18072 Transaction.fromHex = function (hex) {
18073 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18076 Transaction.isCoinbaseHash = function (buffer) {
18077 typeforce(types.Hash256bit, buffer)
18078 for (var i =
0; i <
32; ++i) {
18079 if (buffer[i] !==
0) return false
18084 Transaction.prototype.isCoinbase = function () {
18085 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18088 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18089 typeforce(types.tuple(
18092 types.maybe(types.UInt32),
18093 types.maybe(types.Buffer)
18096 if (types.Null(sequence)) {
18097 sequence = Transaction.DEFAULT_SEQUENCE
18100 // Add the input and return the input's index
18101 return (this.ins.push({
18104 script: scriptSig || EMPTY_SCRIPT,
18105 sequence: sequence,
18106 witness: EMPTY_WITNESS
18110 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18111 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18113 // Add the output and return the output's index
18114 return (this.outs.push({
18115 script: scriptPubKey,
18120 Transaction.prototype.hasWitnesses = function () {
18121 return this.ins.some(function (x) {
18122 return x.witness.length !==
0
18126 Transaction.prototype.weight = function () {
18127 var base = this.__byteLength(false)
18128 var total = this.__byteLength(true)
18129 return base *
3 + total
18132 Transaction.prototype.virtualSize = function () {
18133 return Math.ceil(this.weight() /
4)
18136 Transaction.prototype.byteLength = function () {
18137 return this.__byteLength(true)
18140 Transaction.prototype.__byteLength = function (__allowWitness) {
18141 var hasWitnesses = __allowWitness && this.hasWitnesses()
18144 (hasWitnesses ?
10 :
8) +
18145 varuint.encodingLength(this.ins.length) +
18146 varuint.encodingLength(this.outs.length) +
18147 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18148 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18149 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18153 Transaction.prototype.clone = function () {
18154 var newTx = new Transaction()
18155 newTx.version = this.version
18156 newTx.locktime = this.locktime
18158 newTx.ins = this.ins.map(function (txIn) {
18162 script: txIn.script,
18163 sequence: txIn.sequence,
18164 witness: txIn.witness
18168 newTx.outs = this.outs.map(function (txOut) {
18170 script: txOut.script,
18179 * Hash transaction for signing a specific input.
18181 * Bitcoin uses a different hash for each signed transaction input.
18182 * This method copies the transaction, makes the necessary changes based on the
18183 * hashType, and then hashes the result.
18184 * This hash can then be used to sign the provided transaction input.
18186 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18187 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18189 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18190 if (inIndex
>= this.ins.length) return ONE
18192 // ignore OP_CODESEPARATOR
18193 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18194 return x !== opcodes.OP_CODESEPARATOR
18197 var txTmp = this.clone()
18199 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18200 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18203 // ignore sequence numbers (except at inIndex)
18204 txTmp.ins.forEach(function (input, i) {
18205 if (i === inIndex) return
18210 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18211 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18212 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18213 if (inIndex
>= this.outs.length) return ONE
18215 // truncate outputs after
18216 txTmp.outs.length = inIndex +
1
18218 // "blank" outputs before
18219 for (var i =
0; i < inIndex; i++) {
18220 txTmp.outs[i] = BLANK_OUTPUT
18223 // ignore sequence numbers (except at inIndex)
18224 txTmp.ins.forEach(function (input, y) {
18225 if (y === inIndex) return
18231 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18232 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18233 txTmp.ins = [txTmp.ins[inIndex]]
18234 txTmp.ins[
0].script = ourScript
18236 // SIGHASH_ALL: only ignore input scripts
18238 // "blank" others input scripts
18239 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18240 txTmp.ins[inIndex].script = ourScript
18243 // serialize and hash
18244 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18245 buffer.writeInt32LE(hashType, buffer.length -
4)
18246 txTmp.__toBuffer(buffer,
0, false)
18248 return bcrypto.hash256(buffer)
18251 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18252 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18254 var tbuffer, toffset
18255 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18256 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18257 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18258 function writeVarInt (i) {
18259 varuint.encode(i, tbuffer, toffset)
18260 toffset += varuint.encode.bytes
18262 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18264 var hashOutputs = ZERO
18265 var hashPrevouts = ZERO
18266 var hashSequence = ZERO
18268 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18269 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18272 this.ins.forEach(function (txIn) {
18273 writeSlice(txIn.hash)
18274 writeUInt32(txIn.index)
18277 hashPrevouts = bcrypto.hash256(tbuffer)
18280 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18281 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18282 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18283 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18286 this.ins.forEach(function (txIn) {
18287 writeUInt32(txIn.sequence)
18290 hashSequence = bcrypto.hash256(tbuffer)
18293 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18294 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18295 var txOutsSize = this.outs.reduce(function (sum, output) {
18296 return sum +
8 + varSliceSize(output.script)
18299 tbuffer = Buffer.allocUnsafe(txOutsSize)
18302 this.outs.forEach(function (out) {
18303 writeUInt64(out.value)
18304 writeVarSlice(out.script)
18307 hashOutputs = bcrypto.hash256(tbuffer)
18308 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18309 var output = this.outs[inIndex]
18311 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18313 writeUInt64(output.value)
18314 writeVarSlice(output.script)
18316 hashOutputs = bcrypto.hash256(tbuffer)
18319 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18322 var input = this.ins[inIndex]
18323 writeUInt32(this.version)
18324 writeSlice(hashPrevouts)
18325 writeSlice(hashSequence)
18326 writeSlice(input.hash)
18327 writeUInt32(input.index)
18328 writeVarSlice(prevOutScript)
18330 writeUInt32(input.sequence)
18331 writeSlice(hashOutputs)
18332 writeUInt32(this.locktime)
18333 writeUInt32(hashType)
18334 return bcrypto.hash256(tbuffer)
18337 Transaction.prototype.getHash = function () {
18338 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18341 Transaction.prototype.getId = function () {
18342 // transaction hash's are displayed in reverse order
18343 return this.getHash().reverse().toString('hex')
18346 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18347 return this.__toBuffer(buffer, initialOffset, true)
18350 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18351 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18353 var offset = initialOffset ||
0
18354 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18355 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18356 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18357 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18358 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18359 function writeVarInt (i) {
18360 varuint.encode(i, buffer, offset)
18361 offset += varuint.encode.bytes
18363 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18364 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18366 writeInt32(this.version)
18368 var hasWitnesses = __allowWitness && this.hasWitnesses()
18370 if (hasWitnesses) {
18371 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18372 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18375 writeVarInt(this.ins.length)
18377 this.ins.forEach(function (txIn) {
18378 writeSlice(txIn.hash)
18379 writeUInt32(txIn.index)
18380 writeVarSlice(txIn.script)
18381 writeUInt32(txIn.sequence)
18384 writeVarInt(this.outs.length)
18385 this.outs.forEach(function (txOut) {
18386 if (!txOut.valueBuffer) {
18387 writeUInt64(txOut.value)
18389 writeSlice(txOut.valueBuffer)
18392 writeVarSlice(txOut.script)
18395 if (hasWitnesses) {
18396 this.ins.forEach(function (input) {
18397 writeVector(input.witness)
18401 writeUInt32(this.locktime)
18403 // avoid slicing unless necessary
18404 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18408 Transaction.prototype.toHex = function () {
18409 return this.toBuffer().toString('hex')
18412 Transaction.prototype.setInputScript = function (index, scriptSig) {
18413 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18415 this.ins[index].script = scriptSig
18418 Transaction.prototype.setWitness = function (index, witness) {
18419 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18421 this.ins[index].witness = witness
18424 module.exports = Transaction
18426 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18427 var Buffer = require('safe-buffer').Buffer
18428 var baddress = require('./address')
18429 var bcrypto = require('./crypto')
18430 var bscript = require('./script')
18431 var networks = require('./networks')
18432 var ops = require('bitcoin-ops')
18433 var typeforce = require('typeforce')
18434 var types = require('./types')
18435 var scriptTypes = bscript.types
18436 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18437 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18439 var ECPair = require('./ecpair')
18440 var ECSignature = require('./ecsignature')
18441 var Transaction = require('./transaction')
18443 function extractChunks (type, chunks, script) {
18445 var signatures = []
18447 case scriptTypes.P2PKH:
18448 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18449 pubKeys = chunks.slice(
1)
18450 signatures = chunks.slice(
0,
1)
18453 case scriptTypes.P2PK:
18454 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18455 signatures = chunks.slice(
0,
1)
18458 case scriptTypes.MULTISIG:
18460 var multisig = bscript.multisig.output.decode(script)
18461 pubKeys = multisig.pubKeys
18464 signatures = chunks.slice(
1).map(function (chunk) {
18465 return chunk.length ===
0 ? undefined : chunk
18472 signatures: signatures
18475 function expandInput (scriptSig, witnessStack) {
18476 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18484 var witnessScriptType
18485 var redeemScriptType
18486 var witness = false
18492 var scriptSigChunks = bscript.decompile(scriptSig)
18493 var sigType = bscript.classifyInput(scriptSigChunks, true)
18494 if (sigType === scriptTypes.P2SH) {
18496 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18497 redeemScriptType = bscript.classifyOutput(redeemScript)
18498 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18499 prevOutType = scriptTypes.P2SH
18500 script = redeemScript
18503 var classifyWitness = bscript.classifyWitness(witnessStack)
18504 if (classifyWitness === scriptTypes.P2WSH) {
18505 witnessScript = witnessStack[witnessStack.length -
1]
18506 witnessScriptType = bscript.classifyOutput(witnessScript)
18508 if (scriptSig.length ===
0) {
18509 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18510 prevOutType = scriptTypes.P2WSH
18511 if (typeof redeemScript !== 'undefined') {
18512 throw new Error('Redeem script given when unnecessary')
18516 if (!redeemScript) {
18517 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18519 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18520 if (!redeemScript.equals(witnessProgram)) {
18521 throw new Error('Redeem script didn\'t match witnessScript')
18525 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18526 throw new Error('unsupported witness script')
18528 script = witnessScript
18529 scriptType = witnessScriptType
18530 chunks = witnessStack.slice(
0, -
1)
18531 } else if (classifyWitness === scriptTypes.P2WPKH) {
18532 var key = witnessStack[witnessStack.length -
1]
18533 var keyHash = bcrypto.hash160(key)
18534 if (scriptSig.length ===
0) {
18535 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18536 prevOutType = scriptTypes.P2WPKH
18537 if (typeof redeemScript !== 'undefined') {
18538 throw new Error('Redeem script given when unnecessary')
18541 if (!redeemScript) {
18542 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18544 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18545 if (!redeemScript.equals(witnessProgram)) {
18546 throw new Error('Redeem script did not have the right witness program')
18550 scriptType = scriptTypes.P2PKH
18551 chunks = witnessStack
18552 } else if (redeemScript) {
18553 if (P2SH.indexOf(redeemScriptType) === -
1) {
18554 throw new Error('Bad redeemscript!')
18557 script = redeemScript
18558 scriptType = redeemScriptType
18559 chunks = scriptSigChunks.slice(
0, -
1)
18561 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18562 chunks = scriptSigChunks
18565 var expanded = extractChunks(scriptType, chunks, script)
18568 pubKeys: expanded.pubKeys,
18569 signatures: expanded.signatures,
18570 prevOutScript: prevOutScript,
18571 prevOutType: prevOutType,
18572 signType: scriptType,
18573 signScript: script,
18574 witness: Boolean(witness)
18578 result.redeemScript = redeemScript
18579 result.redeemScriptType = redeemScriptType
18583 result.witnessScript = witnessScript
18584 result.witnessScriptType = witnessScriptType
18590 // could be done in expandInput, but requires the original Transaction for hashForSignature
18591 function fixMultisigOrder (input, transaction, vin) {
18592 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18593 if (input.pubKeys.length === input.signatures.length) return
18595 var unmatched = input.signatures.concat()
18597 input.signatures = input.pubKeys.map(function (pubKey) {
18598 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18601 // check for a signature
18602 unmatched.some(function (signature, i) {
18603 // skip if undefined || OP_0
18604 if (!signature) return false
18606 // TODO: avoid O(n) hashForSignature
18607 var parsed = ECSignature.parseScriptSignature(signature)
18608 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18610 // skip if signature does not match pubKey
18611 if (!keyPair.verify(hash, parsed.signature)) return false
18613 // remove matched signature from unmatched
18614 unmatched[i] = undefined
18624 function expandOutput (script, scriptType, ourPubKey) {
18625 typeforce(types.Buffer, script)
18627 var scriptChunks = bscript.decompile(script)
18629 scriptType = bscript.classifyOutput(script)
18634 switch (scriptType) {
18635 // does our hash160(pubKey) match the output scripts?
18636 case scriptTypes.P2PKH:
18637 if (!ourPubKey) break
18639 var pkh1 = scriptChunks[
2]
18640 var pkh2 = bcrypto.hash160(ourPubKey)
18641 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18644 // does our hash160(pubKey) match the output scripts?
18645 case scriptTypes.P2WPKH:
18646 if (!ourPubKey) break
18648 var wpkh1 = scriptChunks[
1]
18649 var wpkh2 = bcrypto.hash160(ourPubKey)
18650 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18653 case scriptTypes.P2PK:
18654 pubKeys = scriptChunks.slice(
0,
1)
18657 case scriptTypes.MULTISIG:
18658 pubKeys = scriptChunks.slice(
1, -
2)
18661 default: return { scriptType: scriptType }
18666 scriptType: scriptType,
18667 signatures: pubKeys.map(function () { return undefined })
18671 function checkP2shInput (input, redeemScriptHash) {
18672 if (input.prevOutType) {
18673 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18675 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18676 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18680 function checkP2WSHInput (input, witnessScriptHash) {
18681 if (input.prevOutType) {
18682 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18684 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18685 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18689 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18696 var redeemScriptHash
18698 var witness = false
18701 var witnessScriptHash
18706 if (redeemScript && witnessScript) {
18707 redeemScriptHash = bcrypto.hash160(redeemScript)
18708 witnessScriptHash = bcrypto.sha256(witnessScript)
18709 checkP2shInput(input, redeemScriptHash)
18711 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18713 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18714 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18715 prevOutType = bscript.types.P2SH
18716 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18717 p2sh = witness = p2wsh = true
18718 p2shType = bscript.types.P2WSH
18719 signType = witnessType = expanded.scriptType
18720 signScript = witnessScript
18721 } else if (redeemScript) {
18722 redeemScriptHash = bcrypto.hash160(redeemScript)
18723 checkP2shInput(input, redeemScriptHash)
18725 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18726 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18728 prevOutType = bscript.types.P2SH
18729 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18731 signType = p2shType = expanded.scriptType
18732 signScript = redeemScript
18733 witness = signType === bscript.types.P2WPKH
18734 } else if (witnessScript) {
18735 witnessScriptHash = bcrypto.sha256(witnessScript)
18736 checkP2WSHInput(input, witnessScriptHash)
18738 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18739 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18741 prevOutType = bscript.types.P2WSH
18742 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18743 witness = p2wsh = true
18744 signType = witnessType = expanded.scriptType
18745 signScript = witnessScript
18746 } else if (input.prevOutType) {
18747 // embedded scripts are not possible without a redeemScript
18748 if (input.prevOutType === scriptTypes.P2SH ||
18749 input.prevOutType === scriptTypes.P2WSH) {
18750 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18753 prevOutType = input.prevOutType
18754 prevOutScript = input.prevOutScript
18755 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18756 if (!expanded.pubKeys) return
18758 witness = (input.prevOutType === scriptTypes.P2WPKH)
18759 signType = prevOutType
18760 signScript = prevOutScript
18762 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18763 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18764 prevOutType = scriptTypes.P2PKH
18766 signType = prevOutType
18767 signScript = prevOutScript
18770 if (witness && !types.Satoshi(witnessValue)) {
18771 throw new Error('Input was witness but not given witness value')
18774 if (signType === scriptTypes.P2WPKH) {
18775 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18779 input.redeemScript = redeemScript
18780 input.redeemScriptType = p2shType
18784 input.witnessScript = witnessScript
18785 input.witnessScriptType = witnessType
18788 input.pubKeys = expanded.pubKeys
18789 input.signatures = expanded.signatures
18790 input.signScript = signScript
18791 input.signType = signType
18792 input.prevOutScript = prevOutScript
18793 input.prevOutType = prevOutType
18794 input.witness = witness
18797 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18798 if (type === scriptTypes.P2PKH) {
18799 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18800 } else if (type === scriptTypes.P2PK) {
18801 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18802 } else if (type === scriptTypes.MULTISIG) {
18803 if (signatures.length
> 0) {
18804 signatures = signatures.map(function (signature) {
18805 return signature || ops.OP_0
18807 if (!allowIncomplete) {
18808 // remove blank signatures
18809 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18812 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18815 throw new Error('Not yet supported')
18818 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18823 function buildInput (input, allowIncomplete) {
18824 var scriptType = input.prevOutType
18827 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18828 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18832 if (scriptType === bscript.types.P2SH) {
18833 // We can remove this error later when we have a guarantee prepareInput
18834 // rejects unsignable scripts - it MUST be signable at this point.
18835 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18836 throw new Error('Impossible to sign this type')
18839 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18840 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18842 // If it wasn't SIGNABLE, it's witness, defer to that
18843 scriptType = input.redeemScriptType
18846 if (scriptType === bscript.types.P2WPKH) {
18847 // P2WPKH is a special case of P2PKH
18848 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18849 } else if (scriptType === bscript.types.P2WSH) {
18850 // We can remove this check later
18851 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18852 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18853 witness.push(input.witnessScript)
18855 // We can remove this error later when we have a guarantee prepareInput
18856 // rejects unsignble scripts - it MUST be signable at this point.
18860 scriptType = input.witnessScriptType
18863 // append redeemScript if necessary
18865 sig.push(input.redeemScript)
18870 script: bscript.compile(sig),
18875 function TransactionBuilder (network, maximumFeeRate) {
18876 this.prevTxMap = {}
18877 this.network = network || networks.bitcoin
18879 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18880 this.maximumFeeRate = maximumFeeRate ||
1000
18883 this.tx = new Transaction()
18886 TransactionBuilder.prototype.setLockTime = function (locktime) {
18887 typeforce(types.UInt32, locktime)
18889 // if any signatures exist, throw
18890 if (this.inputs.some(function (input) {
18891 if (!input.signatures) return false
18893 return input.signatures.some(function (s) { return s })
18895 throw new Error('No, this would invalidate signatures')
18898 this.tx.locktime = locktime
18901 TransactionBuilder.prototype.setVersion = function (version) {
18902 typeforce(types.UInt32, version)
18904 // XXX: this might eventually become more complex depending on what the versions represent
18905 this.tx.version = version
18908 TransactionBuilder.fromTransaction = function (transaction, network) {
18909 var txb = new TransactionBuilder(network)
18911 // Copy transaction fields
18912 txb.setVersion(transaction.version)
18913 txb.setLockTime(transaction.locktime)
18915 // Copy outputs (done first to avoid signature invalidation)
18916 transaction.outs.forEach(function (txOut) {
18917 txb.addOutput(txOut.script, txOut.value)
18921 transaction.ins.forEach(function (txIn) {
18922 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18923 sequence: txIn.sequence,
18924 script: txIn.script,
18925 witness: txIn.witness
18929 // fix some things not possible through the public API
18930 txb.inputs.forEach(function (input, i) {
18931 fixMultisigOrder(input, transaction, i)
18937 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18938 if (!this.__canModifyInputs()) {
18939 throw new Error('No, this would invalidate signatures')
18944 // is it a hex string?
18945 if (typeof txHash === 'string') {
18946 // transaction hashs's are displayed in reverse order, un-reverse it
18947 txHash = Buffer.from(txHash, 'hex').reverse()
18949 // is it a Transaction object?
18950 } else if (txHash instanceof Transaction) {
18951 var txOut = txHash.outs[vout]
18952 prevOutScript = txOut.script
18953 value = txOut.value
18955 txHash = txHash.getHash()
18958 return this.__addInputUnsafe(txHash, vout, {
18959 sequence: sequence,
18960 prevOutScript: prevOutScript,
18965 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18966 if (Transaction.isCoinbaseHash(txHash)) {
18967 throw new Error('coinbase inputs not supported')
18970 var prevTxOut = txHash.toString('hex') + ':' + vout
18971 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18975 // derive what we can from the scriptSig
18976 if (options.script !== undefined) {
18977 input = expandInput(options.script, options.witness || [])
18980 // if an input value was given, retain it
18981 if (options.value !== undefined) {
18982 input.value = options.value
18985 // derive what we can from the previous transactions output script
18986 if (!input.prevOutScript && options.prevOutScript) {
18989 if (!input.pubKeys && !input.signatures) {
18990 var expanded = expandOutput(options.prevOutScript)
18992 if (expanded.pubKeys) {
18993 input.pubKeys = expanded.pubKeys
18994 input.signatures = expanded.signatures
18997 prevOutType = expanded.scriptType
19000 input.prevOutScript = options.prevOutScript
19001 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
19004 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19005 this.inputs[vin] = input
19006 this.prevTxMap[prevTxOut] = vin
19011 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19012 if (!this.__canModifyOutputs()) {
19013 throw new Error('No, this would invalidate signatures')
19016 // Attempt to get a script if it's a base58 address string
19017 if (typeof scriptPubKey === 'string') {
19018 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19021 return this.tx.addOutput(scriptPubKey, value)
19024 TransactionBuilder.prototype.build = function () {
19025 return this.__build(false)
19027 TransactionBuilder.prototype.buildIncomplete = function () {
19028 return this.__build(true)
19031 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19032 if (!allowIncomplete) {
19033 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19034 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19037 var tx = this.tx.clone()
19038 // Create script signatures from inputs
19039 this.inputs.forEach(function (input, i) {
19040 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19041 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19042 var result = buildInput(input, allowIncomplete)
19044 // skip if no result
19045 if (!allowIncomplete) {
19046 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19047 throw new Error(result.type + ' not supported')
19051 tx.setInputScript(i, result.script)
19052 tx.setWitness(i, result.witness)
19055 if (!allowIncomplete) {
19056 // do not rely on this, its merely a last resort
19057 if (this.__overMaximumFees(tx.byteLength())) {
19058 throw new Error('Transaction has absurd fees')
19065 function canSign (input) {
19066 return input.prevOutScript !== undefined &&
19067 input.signScript !== undefined &&
19068 input.pubKeys !== undefined &&
19069 input.signatures !== undefined &&
19070 input.signatures.length === input.pubKeys.length &&
19071 input.pubKeys.length
> 0 &&
19072 input.witness !== undefined
19075 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19076 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19077 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19078 hashType = hashType || Transaction.SIGHASH_ALL
19080 var input = this.inputs[vin]
19082 // if redeemScript was previously provided, enforce consistency
19083 if (input.redeemScript !== undefined &&
19085 !input.redeemScript.equals(redeemScript)) {
19086 throw new Error('Inconsistent redeemScript')
19089 var kpPubKey = keyPair.getPublicKeyBuffer()
19090 if (!canSign(input)) {
19091 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19092 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19097 if (input.witness) {
19098 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19100 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19102 // enforce in order signing of public keys
19103 var signed = input.pubKeys.some(function (pubKey, i) {
19104 if (!kpPubKey.equals(pubKey)) return false
19105 if (input.signatures[i]) throw new Error('Signature already exists')
19107 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19111 if (!signed) throw new Error('Key pair cannot sign for this input')
19114 function signatureHashType (buffer) {
19115 return buffer.readUInt8(buffer.length -
1)
19118 TransactionBuilder.prototype.__canModifyInputs = function () {
19119 return this.inputs.every(function (input) {
19121 if (input.signatures === undefined) return true
19123 return input.signatures.every(function (signature) {
19124 if (!signature) return true
19125 var hashType = signatureHashType(signature)
19127 // if SIGHASH_ANYONECANPAY is set, signatures would not
19128 // be invalidated by more inputs
19129 return hashType & Transaction.SIGHASH_ANYONECANPAY
19134 TransactionBuilder.prototype.__canModifyOutputs = function () {
19135 var nInputs = this.tx.ins.length
19136 var nOutputs = this.tx.outs.length
19138 return this.inputs.every(function (input) {
19139 if (input.signatures === undefined) return true
19141 return input.signatures.every(function (signature) {
19142 if (!signature) return true
19143 var hashType = signatureHashType(signature)
19145 var hashTypeMod = hashType &
0x1f
19146 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19147 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19148 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19149 // some signatures would be invalidated by the addition
19151 return nInputs <= nOutputs
19157 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19158 // not all inputs will have .value defined
19159 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19161 // but all outputs do, and if we have any input value
19162 // we can immediately determine if the outputs are too small
19163 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19164 var fee = incoming - outgoing
19165 var feeRate = fee / bytes
19167 return feeRate
> this.maximumFeeRate
19170 module.exports = TransactionBuilder
19172 },{"./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){
19173 var typeforce = require('typeforce')
19175 var UINT31_MAX = Math.pow(
2,
31) -
1
19176 function UInt31 (value) {
19177 return typeforce.UInt32(value) && value <= UINT31_MAX
19180 function BIP32Path (value) {
19181 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19183 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19185 var SATOSHI_MAX =
21 *
1e14
19186 function Satoshi (value) {
19187 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19190 // external dependent types
19191 var BigInt = typeforce.quacksLike('BigInteger')
19192 var ECPoint = typeforce.quacksLike('Point')
19194 // exposed, external API
19195 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19196 var Network = typeforce.compile({
19197 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19199 public: typeforce.UInt32,
19200 private: typeforce.UInt32
19202 pubKeyHash: typeforce.UInt8,
19203 scriptHash: typeforce.UInt8,
19204 wif: typeforce.UInt8
19207 // extend typeforce types with ours
19210 BIP32Path: BIP32Path,
19211 Buffer256bit: typeforce.BufferN(
32),
19213 ECSignature: ECSignature,
19214 Hash160bit: typeforce.BufferN(
20),
19215 Hash256bit: typeforce.BufferN(
32),
19221 for (var typeName in typeforce) {
19222 types[typeName] = typeforce[typeName]
19225 module.exports = types
19227 },{"typeforce":
109}],
79:[function(require,module,exports){
19228 var basex = require('base-x')
19229 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19231 module.exports = basex(ALPHABET)
19233 },{"base-x":
34}],
80:[function(require,module,exports){
19234 (function (Buffer){
19237 var base58 = require('bs58')
19238 var createHash = require('create-hash')
19240 // SHA256(SHA256(buffer))
19241 function sha256x2 (buffer) {
19242 var tmp = createHash('sha256').update(buffer).digest()
19243 return createHash('sha256').update(tmp).digest()
19246 // Encode a buffer as a base58-check encoded string
19247 function encode (payload) {
19248 var checksum = sha256x2(payload)
19250 return base58.encode(Buffer.concat([
19253 ], payload.length +
4))
19256 function decodeRaw (buffer) {
19257 var payload = buffer.slice(
0, -
4)
19258 var checksum = buffer.slice(-
4)
19259 var newChecksum = sha256x2(payload)
19261 if (checksum[
0] ^ newChecksum[
0] |
19262 checksum[
1] ^ newChecksum[
1] |
19263 checksum[
2] ^ newChecksum[
2] |
19264 checksum[
3] ^ newChecksum[
3]) return
19269 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19270 function decodeUnsafe (string) {
19271 var buffer = base58.decodeUnsafe(string)
19272 if (!buffer) return
19274 return decodeRaw(buffer)
19277 function decode (string) {
19278 var buffer = base58.decode(string)
19279 var payload = decodeRaw(buffer)
19280 if (!payload) throw new Error('Invalid checksum')
19287 decodeUnsafe: decodeUnsafe
19290 }).call(this,require("buffer").Buffer)
19291 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19292 var Buffer = require('safe-buffer').Buffer
19293 var Transform = require('stream').Transform
19294 var StringDecoder = require('string_decoder').StringDecoder
19295 var inherits = require('inherits')
19297 function CipherBase (hashMode) {
19298 Transform.call(this)
19299 this.hashMode = typeof hashMode === 'string'
19300 if (this.hashMode) {
19301 this[hashMode] = this._finalOrDigest
19303 this.final = this._finalOrDigest
19306 this.__final = this._final
19309 this._decoder = null
19310 this._encoding = null
19312 inherits(CipherBase, Transform)
19314 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19315 if (typeof data === 'string') {
19316 data = Buffer.from(data, inputEnc)
19319 var outData = this._update(data)
19320 if (this.hashMode) return this
19323 outData = this._toString(outData, outputEnc)
19329 CipherBase.prototype.setAutoPadding = function () {}
19330 CipherBase.prototype.getAuthTag = function () {
19331 throw new Error('trying to get auth tag in unsupported state')
19334 CipherBase.prototype.setAuthTag = function () {
19335 throw new Error('trying to set auth tag in unsupported state')
19338 CipherBase.prototype.setAAD = function () {
19339 throw new Error('trying to set aad in unsupported state')
19342 CipherBase.prototype._transform = function (data, _, next) {
19345 if (this.hashMode) {
19348 this.push(this._update(data))
19356 CipherBase.prototype._flush = function (done) {
19359 this.push(this.__final())
19366 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19367 var outData = this.__final() || Buffer.alloc(
0)
19369 outData = this._toString(outData, outputEnc, true)
19374 CipherBase.prototype._toString = function (value, enc, fin) {
19375 if (!this._decoder) {
19376 this._decoder = new StringDecoder(enc)
19377 this._encoding = enc
19380 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19382 var out = this._decoder.write(value)
19384 out += this._decoder.end()
19390 module.exports = CipherBase
19392 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19393 (function (Buffer){
19395 var inherits = require('inherits')
19396 var md5 = require('./md5')
19397 var RIPEMD160 = require('ripemd160')
19398 var sha = require('sha.js')
19400 var Base = require('cipher-base')
19402 function HashNoConstructor (hash) {
19403 Base.call(this, 'digest')
19409 inherits(HashNoConstructor, Base)
19411 HashNoConstructor.prototype._update = function (data) {
19412 this.buffers.push(data)
19415 HashNoConstructor.prototype._final = function () {
19416 var buf = Buffer.concat(this.buffers)
19417 var r = this._hash(buf)
19418 this.buffers = null
19423 function Hash (hash) {
19424 Base.call(this, 'digest')
19429 inherits(Hash, Base)
19431 Hash.prototype._update = function (data) {
19432 this._hash.update(data)
19435 Hash.prototype._final = function () {
19436 return this._hash.digest()
19439 module.exports = function createHash (alg) {
19440 alg = alg.toLowerCase()
19441 if (alg === 'md5') return new HashNoConstructor(md5)
19442 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19444 return new Hash(sha(alg))
19447 }).call(this,require("buffer").Buffer)
19448 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19449 (function (Buffer){
19452 var zeroBuffer = new Buffer(intSize)
19458 function toArray (buf) {
19459 if ((buf.length % intSize) !==
0) {
19460 var len = buf.length + (intSize - (buf.length % intSize))
19461 buf = Buffer.concat([buf, zeroBuffer], len)
19464 var arr = new Array(buf.length
>>> 2)
19465 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19466 arr[j] = buf.readInt32LE(i)
19472 module.exports = function hash (buf, fn) {
19473 var arr = fn(toArray(buf), buf.length * charSize)
19474 buf = new Buffer(hashSize)
19475 for (var i =
0; i < arr.length; i++) {
19476 buf.writeInt32LE(arr[i], i <<
2, true)
19481 }).call(this,require(
"buffer").Buffer)
19482 },{
"buffer":
4}],
84:[function(require,module,exports){
19485 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19486 * Digest Algorithm, as defined in RFC
1321.
19487 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19488 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19489 * Distributed under the BSD License
19490 * See http://pajhome.org.uk/crypt/md5 for more info.
19493 var makeHash = require('./make-hash')
19496 * Calculate the MD5 of an array of little-endian words, and a bit length
19498 function core_md5 (x, len) {
19499 /* append padding */
19500 x[len
>> 5] |=
0x80 << ((len) %
32)
19501 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19505 var c = -
1732584194
19508 for (var i =
0; i < x.length; i +=
16) {
19514 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19515 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19516 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19517 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19518 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19519 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19520 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19521 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19522 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19523 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19524 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19525 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19526 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19527 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19528 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19529 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19531 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19532 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19533 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19534 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19535 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19536 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19537 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19538 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19539 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19540 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19541 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19542 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19543 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19544 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19545 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19546 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19548 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19549 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19550 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19551 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19552 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19553 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19554 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19555 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19556 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19557 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19558 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19559 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19560 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19561 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19562 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19563 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19565 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19566 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19567 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19568 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19569 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19570 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19571 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19572 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19573 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19574 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19575 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19576 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19577 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19578 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19579 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19580 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19582 a = safe_add(a, olda)
19583 b = safe_add(b, oldb)
19584 c = safe_add(c, oldc)
19585 d = safe_add(d, oldd)
19588 return [a, b, c, d]
19592 * These functions implement the four basic operations the algorithm uses.
19594 function md5_cmn (q, a, b, x, s, t) {
19595 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19598 function md5_ff (a, b, c, d, x, s, t) {
19599 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19602 function md5_gg (a, b, c, d, x, s, t) {
19603 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19606 function md5_hh (a, b, c, d, x, s, t) {
19607 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19610 function md5_ii (a, b, c, d, x, s, t) {
19611 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19615 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19616 * to work around bugs in some JS interpreters.
19618 function safe_add (x, y) {
19619 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19620 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19621 return (msw <<
16) | (lsw &
0xFFFF)
19625 * Bitwise rotate a
32-bit number to the left.
19627 function bit_rol (num, cnt) {
19628 return (num << cnt) | (num
>>> (
32 - cnt))
19631 module.exports = function md5 (buf) {
19632 return makeHash(buf, core_md5)
19635 },{"./make-hash":
83}],
85:[function(require,module,exports){
19637 var inherits = require('inherits')
19638 var Legacy = require('./legacy')
19639 var Base = require('cipher-base')
19640 var Buffer = require('safe-buffer').Buffer
19641 var md5 = require('create-hash/md5')
19642 var RIPEMD160 = require('ripemd160')
19644 var sha = require('sha.js')
19646 var ZEROS = Buffer.alloc(
128)
19648 function Hmac (alg, key) {
19649 Base.call(this, 'digest')
19650 if (typeof key === 'string') {
19651 key = Buffer.from(key)
19654 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19658 if (key.length
> blocksize) {
19659 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19660 key = hash.update(key).digest()
19661 } else if (key.length < blocksize) {
19662 key = Buffer.concat([key, ZEROS], blocksize)
19665 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19666 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19668 for (var i =
0; i < blocksize; i++) {
19669 ipad[i] = key[i] ^
0x36
19670 opad[i] = key[i] ^
0x5C
19672 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19673 this._hash.update(ipad)
19676 inherits(Hmac, Base)
19678 Hmac.prototype._update = function (data) {
19679 this._hash.update(data)
19682 Hmac.prototype._final = function () {
19683 var h = this._hash.digest()
19684 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19685 return hash.update(this._opad).update(h).digest()
19688 module.exports = function createHmac (alg, key) {
19689 alg = alg.toLowerCase()
19690 if (alg === 'rmd160' || alg === 'ripemd160') {
19691 return new Hmac('rmd160', key)
19693 if (alg === 'md5') {
19694 return new Legacy(md5, key)
19696 return new Hmac(alg, key)
19699 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19701 var inherits = require('inherits')
19702 var Buffer = require('safe-buffer').Buffer
19704 var Base = require('cipher-base')
19706 var ZEROS = Buffer.alloc(
128)
19709 function Hmac (alg, key) {
19710 Base.call(this, 'digest')
19711 if (typeof key === 'string') {
19712 key = Buffer.from(key)
19718 if (key.length
> blocksize) {
19720 } else if (key.length < blocksize) {
19721 key = Buffer.concat([key, ZEROS], blocksize)
19724 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19725 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19727 for (var i =
0; i < blocksize; i++) {
19728 ipad[i] = key[i] ^
0x36
19729 opad[i] = key[i] ^
0x5C
19732 this._hash = [ipad]
19735 inherits(Hmac, Base)
19737 Hmac.prototype._update = function (data) {
19738 this._hash.push(data)
19741 Hmac.prototype._final = function () {
19742 var h = this._alg(Buffer.concat(this._hash))
19743 return this._alg(Buffer.concat([this._opad, h]))
19745 module.exports = Hmac
19747 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19748 var assert = require('assert')
19749 var BigInteger = require('bigi')
19751 var Point = require('./point')
19753 function Curve (p, a, b, Gx, Gy, n, h) {
19757 this.G = Point.fromAffine(this, Gx, Gy)
19761 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19764 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19766 // determine size of p in bytes
19767 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19770 Curve.prototype.pointFromX = function (isOdd, x) {
19771 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19772 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19775 if (beta.isEven() ^ !isOdd) {
19776 y = this.p.subtract(y) // -y % p
19779 return Point.fromAffine(this, x, y)
19782 Curve.prototype.isInfinity = function (Q) {
19783 if (Q === this.infinity) return true
19785 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19788 Curve.prototype.isOnCurve = function (Q) {
19789 if (this.isInfinity(Q)) return true
19797 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19798 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19799 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19801 // and check that y^
2 = x^
3 + ax + b (mod p)
19802 var lhs = y.square().mod(p)
19803 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19804 return lhs.equals(rhs)
19808 * Validate an elliptic curve point.
19810 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19812 Curve.prototype.validate = function (Q) {
19814 assert(!this.isInfinity(Q), 'Point is at infinity')
19815 assert(this.isOnCurve(Q), 'Point is not on the curve')
19817 // Check nQ = O (where Q is a scalar multiple of G)
19818 var nQ = Q.multiply(this.n)
19819 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19824 module.exports = Curve
19826 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19829 "p": "fffffffdffffffffffffffffffffffff",
19830 "a": "fffffffdfffffffffffffffffffffffc",
19831 "b": "e87579c11079f43dd824993c2cee5ed3",
19832 "n": "fffffffe0000000075a30d1b9038a115",
19834 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19835 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19838 "p": "fffffffffffffffffffffffffffffffeffffac73",
19841 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19843 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19844 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19847 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19848 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19849 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19850 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19852 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19853 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19856 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19859 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19861 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19862 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19865 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19866 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19867 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19868 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19870 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19871 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19874 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19877 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19879 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19880 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19883 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19884 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19885 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19886 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19888 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19889 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19893 },{}],
89:[function(require,module,exports){
19894 var Point = require('./point')
19895 var Curve = require('./curve')
19897 var getCurveByName = require('./names')
19902 getCurveByName: getCurveByName
19905 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19906 var BigInteger = require('bigi')
19908 var curves = require('./curves.json')
19909 var Curve = require('./curve')
19911 function getCurveByName (name) {
19912 var curve = curves[name]
19913 if (!curve) return null
19915 var p = new BigInteger(curve.p,
16)
19916 var a = new BigInteger(curve.a,
16)
19917 var b = new BigInteger(curve.b,
16)
19918 var n = new BigInteger(curve.n,
16)
19919 var h = new BigInteger(curve.h,
16)
19920 var Gx = new BigInteger(curve.Gx,
16)
19921 var Gy = new BigInteger(curve.Gy,
16)
19923 return new Curve(p, a, b, Gx, Gy, n, h)
19926 module.exports = getCurveByName
19928 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19929 (function (Buffer){
19930 var assert = require('assert')
19931 var BigInteger = require('bigi')
19933 var THREE = BigInteger.valueOf(
3)
19935 function Point (curve, x, y, z) {
19936 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19944 this.compressed = true
19947 Object.defineProperty(Point.prototype, 'zInv', {
19949 if (this._zInv === null) {
19950 this._zInv = this.z.modInverse(this.curve.p)
19957 Object.defineProperty(Point.prototype, 'affineX', {
19959 return this.x.multiply(this.zInv).mod(this.curve.p)
19963 Object.defineProperty(Point.prototype, 'affineY', {
19965 return this.y.multiply(this.zInv).mod(this.curve.p)
19969 Point.fromAffine = function (curve, x, y) {
19970 return new Point(curve, x, y, BigInteger.ONE)
19973 Point.prototype.equals = function (other) {
19974 if (other === this) return true
19975 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19976 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
19978 // u = Y2 * Z1 - Y1 * Z2
19979 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
19981 if (u.signum() !==
0) return false
19983 // v = X2 * Z1 - X1 * Z2
19984 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
19986 return v.signum() ===
0
19989 Point.prototype.negate = function () {
19990 var y = this.curve.p.subtract(this.y)
19992 return new Point(this.curve, this.x, y, this.z)
19995 Point.prototype.add = function (b) {
19996 if (this.curve.isInfinity(this)) return b
19997 if (this.curve.isInfinity(b)) return this
20004 // u = Y2 * Z1 - Y1 * Z2
20005 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20006 // v = X2 * Z1 - X1 * Z2
20007 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20009 if (v.signum() ===
0) {
20010 if (u.signum() ===
0) {
20011 return this.twice() // this == b, so double
20014 return this.curve.infinity // this = -b, so infinity
20017 var v2 = v.square()
20018 var v3 = v2.multiply(v)
20019 var x1v2 = x1.multiply(v2)
20020 var zu2 = u.square().multiply(this.z)
20022 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20023 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20024 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20025 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)
20026 // z3 = v^
3 * z1 * z2
20027 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20029 return new Point(this.curve, x3, y3, z3)
20032 Point.prototype.twice = function () {
20033 if (this.curve.isInfinity(this)) return this
20034 if (this.y.signum() ===
0) return this.curve.infinity
20039 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20040 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20041 var a = this.curve.a
20043 // w =
3 * x1^
2 + a * z1^
2
20044 var w = x1.square().multiply(THREE)
20046 if (a.signum() !==
0) {
20047 w = w.add(this.z.square().multiply(a))
20050 w = w.mod(this.curve.p)
20051 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20052 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20053 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20054 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20055 // z3 =
8 * (y1 * z1)^
3
20056 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20058 return new Point(this.curve, x3, y3, z3)
20061 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20062 // TODO: modularize the multiplication algorithm
20063 Point.prototype.multiply = function (k) {
20064 if (this.curve.isInfinity(this)) return this
20065 if (k.signum() ===
0) return this.curve.infinity
20068 var h = e.multiply(THREE)
20070 var neg = this.negate()
20073 for (var i = h.bitLength() -
2; i
> 0; --i) {
20074 var hBit = h.testBit(i)
20075 var eBit = e.testBit(i)
20079 if (hBit !== eBit) {
20080 R = R.add(hBit ? this : neg)
20087 // Compute this*j + x*k (simultaneous multiplication)
20088 Point.prototype.multiplyTwo = function (j, x, k) {
20089 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20090 var R = this.curve.infinity
20091 var both = this.add(x)
20094 var jBit = j.testBit(i)
20095 var kBit = k.testBit(i)
20114 Point.prototype.getEncoded = function (compressed) {
20115 if (compressed == null) compressed = this.compressed
20116 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20118 var x = this.affineX
20119 var y = this.affineY
20120 var byteLength = this.curve.pLength
20125 buffer = new Buffer(
1 + byteLength)
20126 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20130 buffer = new Buffer(
1 + byteLength + byteLength)
20131 buffer.writeUInt8(
0x04,
0)
20133 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20136 x.toBuffer(byteLength).copy(buffer,
1)
20141 Point.decodeFrom = function (curve, buffer) {
20142 var type = buffer.readUInt8(
0)
20143 var compressed = (type !==
4)
20145 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20146 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20150 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20151 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20153 var isOdd = (type ===
0x03)
20154 Q = curve.pointFromX(isOdd, x)
20156 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20158 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20159 Q = Point.fromAffine(curve, x, y)
20162 Q.compressed = compressed
20166 Point.prototype.toString = function () {
20167 if (this.curve.isInfinity(this)) return '(INFINITY)'
20169 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20172 module.exports = Point
20174 }).call(this,require("buffer").Buffer)
20175 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20176 (function (Buffer){
20178 var Transform = require('stream').Transform
20179 var inherits = require('inherits')
20181 function HashBase (blockSize) {
20182 Transform.call(this)
20184 this._block = new Buffer(blockSize)
20185 this._blockSize = blockSize
20186 this._blockOffset =
0
20187 this._length = [
0,
0,
0,
0]
20189 this._finalized = false
20192 inherits(HashBase, Transform)
20194 HashBase.prototype._transform = function (chunk, encoding, callback) {
20197 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20206 HashBase.prototype._flush = function (callback) {
20209 this.push(this._digest())
20217 HashBase.prototype.update = function (data, encoding) {
20218 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20219 if (this._finalized) throw new Error('Digest already called')
20220 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20223 var block = this._block
20225 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20226 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20228 this._blockOffset =
0
20230 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20233 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20234 this._length[j] += carry
20235 carry = (this._length[j] /
0x0100000000) |
0
20236 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20242 HashBase.prototype._update = function (data) {
20243 throw new Error('_update is not implemented')
20246 HashBase.prototype.digest = function (encoding) {
20247 if (this._finalized) throw new Error('Digest already called')
20248 this._finalized = true
20250 var digest = this._digest()
20251 if (encoding !== undefined) digest = digest.toString(encoding)
20255 HashBase.prototype._digest = function () {
20256 throw new Error('_digest is not implemented')
20259 module.exports = HashBase
20261 }).call(this,require(
"buffer").Buffer)
20262 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20263 arguments[
4][
8][
0].apply(exports,arguments)
20264 },{
"dup":
8}],
94:[function(require,module,exports){
20265 (function (Buffer){
20266 // constant-space merkle root calculation algorithm
20267 module.exports = function fastRoot (values, digestFn) {
20268 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20269 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20271 var length = values.length
20272 var results = values.concat()
20274 while (length
> 1) {
20277 for (var i =
0; i < length; i +=
2, ++j) {
20278 var left = results[i]
20279 var right = i +
1 === length ? left : results[i +
1]
20280 var data = Buffer.concat([left, right])
20282 results[j] = digestFn(data)
20291 }).call(this,require(
"buffer").Buffer)
20292 },{
"buffer":
4}],
95:[function(require,module,exports){
20293 var OPS = require('bitcoin-ops')
20295 function encodingLength (i) {
20296 return i < OPS.OP_PUSHDATA1 ?
1
20302 function encode (buffer, number, offset) {
20303 var size = encodingLength(number)
20307 buffer.writeUInt8(number, offset)
20310 } else if (size ===
2) {
20311 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20312 buffer.writeUInt8(number, offset +
1)
20315 } else if (size ===
3) {
20316 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20317 buffer.writeUInt16LE(number, offset +
1)
20321 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20322 buffer.writeUInt32LE(number, offset +
1)
20328 function decode (buffer, offset) {
20329 var opcode = buffer.readUInt8(offset)
20333 if (opcode < OPS.OP_PUSHDATA1) {
20338 } else if (opcode === OPS.OP_PUSHDATA1) {
20339 if (offset +
2 > buffer.length) return null
20340 number = buffer.readUInt8(offset +
1)
20344 } else if (opcode === OPS.OP_PUSHDATA2) {
20345 if (offset +
3 > buffer.length) return null
20346 number = buffer.readUInt16LE(offset +
1)
20351 if (offset +
5 > buffer.length) return null
20352 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20354 number = buffer.readUInt32LE(offset +
1)
20366 encodingLength: encodingLength,
20371 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20372 (function (process,global){
20375 function oldBrowser () {
20376 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20379 var Buffer = require('safe-buffer').Buffer
20380 var crypto = global.crypto || global.msCrypto
20382 if (crypto && crypto.getRandomValues) {
20383 module.exports = randomBytes
20385 module.exports = oldBrowser
20388 function randomBytes (size, cb) {
20389 // phantomjs needs to throw
20390 if (size
> 65536) throw new Error('requested too many random bytes')
20391 // in case browserify isn't using the Uint8Array version
20392 var rawBytes = new global.Uint8Array(size)
20394 // This will not work in older browsers.
20395 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20396 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20397 crypto.getRandomValues(rawBytes)
20400 // XXX: phantomjs doesn't like a buffer being passed here
20401 var bytes = Buffer.from(rawBytes.buffer)
20403 if (typeof cb === 'function') {
20404 return process.nextTick(function () {
20412 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20413 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20414 (function (Buffer){
20416 var inherits = require('inherits')
20417 var HashBase = require('hash-base')
20419 function RIPEMD160 () {
20420 HashBase.call(this,
64)
20423 this._a =
0x67452301
20424 this._b =
0xefcdab89
20425 this._c =
0x98badcfe
20426 this._d =
0x10325476
20427 this._e =
0xc3d2e1f0
20430 inherits(RIPEMD160, HashBase)
20432 RIPEMD160.prototype._update = function () {
20433 var m = new Array(
16)
20434 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20442 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20444 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20445 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20446 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20447 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20448 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20449 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20450 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20451 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20452 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20453 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20454 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20455 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20456 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20457 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20458 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20459 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20460 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20462 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20464 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20465 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20466 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20467 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20468 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20469 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20470 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20471 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20472 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20473 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20474 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20475 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20476 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20477 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20478 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20479 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20480 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20482 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20484 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20485 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20486 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20487 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20488 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20489 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20490 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20491 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20492 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20493 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20494 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20495 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20496 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20497 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20498 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20499 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20500 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20502 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20504 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20505 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20506 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20507 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20508 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20509 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20510 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20511 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20512 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20513 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20514 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20515 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20516 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20517 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20518 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20519 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20520 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20522 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20524 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20525 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20526 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20527 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20528 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20529 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20530 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20531 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20532 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20533 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20534 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20535 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20536 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20537 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20538 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20539 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20540 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20548 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20550 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20551 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20552 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20553 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20554 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20555 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20556 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20557 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20558 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20559 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20560 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20561 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20562 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20563 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20564 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20565 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20566 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20568 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20570 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20571 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20572 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20573 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20574 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20575 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20576 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20577 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20578 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20579 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20580 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20581 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20582 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20583 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20584 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20585 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20586 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20588 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20590 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20591 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20592 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20593 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20594 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20595 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20596 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20597 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20598 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20599 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20600 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20601 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20602 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20603 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20604 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20605 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20606 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20608 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20610 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20611 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20612 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20613 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20614 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20615 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20616 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20617 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20618 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20619 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20620 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20621 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20622 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20623 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20624 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20625 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20626 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20628 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20630 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20631 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20632 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20633 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20634 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20635 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20636 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20637 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20638 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20639 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20640 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20641 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20642 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20643 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20644 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20645 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20646 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20649 var t = (this._b + cl + dr) |
0
20650 this._b = (this._c + dl + er) |
0
20651 this._c = (this._d + el + ar) |
0
20652 this._d = (this._e + al + br) |
0
20653 this._e = (this._a + bl + cr) |
0
20657 RIPEMD160.prototype._digest = function () {
20658 // create padding and handle blocks
20659 this._block[this._blockOffset++] =
0x80
20660 if (this._blockOffset
> 56) {
20661 this._block.fill(
0, this._blockOffset,
64)
20663 this._blockOffset =
0
20666 this._block.fill(
0, this._blockOffset,
56)
20667 this._block.writeUInt32LE(this._length[
0],
56)
20668 this._block.writeUInt32LE(this._length[
1],
60)
20672 var buffer = new Buffer(
20)
20673 buffer.writeInt32LE(this._a,
0)
20674 buffer.writeInt32LE(this._b,
4)
20675 buffer.writeInt32LE(this._c,
8)
20676 buffer.writeInt32LE(this._d,
12)
20677 buffer.writeInt32LE(this._e,
16)
20681 function rotl (x, n) {
20682 return (x << n) | (x
>>> (
32 - n))
20685 function fn1 (a, b, c, d, e, m, k, s) {
20686 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20689 function fn2 (a, b, c, d, e, m, k, s) {
20690 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20693 function fn3 (a, b, c, d, e, m, k, s) {
20694 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20697 function fn4 (a, b, c, d, e, m, k, s) {
20698 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20701 function fn5 (a, b, c, d, e, m, k, s) {
20702 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20705 module.exports = RIPEMD160
20707 }).call(this,require("buffer").Buffer)
20708 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20709 arguments[
4][
26][
0].apply(exports,arguments)
20710 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20711 (function (Buffer){
20712 // prototype class for hash functions
20713 function Hash (blockSize, finalSize) {
20714 this._block = new Buffer(blockSize)
20715 this._finalSize = finalSize
20716 this._blockSize = blockSize
20721 Hash.prototype.update = function (data, enc) {
20722 if (typeof data === 'string') {
20723 enc = enc || 'utf8'
20724 data = new Buffer(data, enc)
20727 var l = this._len += data.length
20728 var s = this._s ||
0
20730 var buffer = this._block
20733 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20736 for (var i =
0; i < ch; i++) {
20737 buffer[(s % this._blockSize) + i] = data[i + f]
20743 if ((s % this._blockSize) ===
0) {
20744 this._update(buffer)
20752 Hash.prototype.digest = function (enc) {
20753 // Suppose the length of the message M, in bits, is l
20754 var l = this._len *
8
20756 // Append the bit
1 to the end of the message
20757 this._block[this._len % this._blockSize] =
0x80
20759 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20760 this._block.fill(
0, this._len % this._blockSize +
1)
20762 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20763 this._update(this._block)
20764 this._block.fill(
0)
20767 // to this append the block which is equal to the number l written in binary
20768 // TODO: handle case where l is
> Math.pow(
2,
29)
20769 this._block.writeInt32BE(l, this._blockSize -
4)
20771 var hash = this._update(this._block) || this._hash()
20773 return enc ? hash.toString(enc) : hash
20776 Hash.prototype._update = function () {
20777 throw new Error('_update must be implemented by subclass')
20780 module.exports = Hash
20782 }).call(this,require("buffer").Buffer)
20783 },{"buffer":
4}],
100:[function(require,module,exports){
20784 var exports = module.exports = function SHA (algorithm) {
20785 algorithm = algorithm.toLowerCase()
20787 var Algorithm = exports[algorithm]
20788 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20790 return new Algorithm()
20793 exports.sha = require('./sha')
20794 exports.sha1 = require('./sha1')
20795 exports.sha224 = require('./sha224')
20796 exports.sha256 = require('./sha256')
20797 exports.sha384 = require('./sha384')
20798 exports.sha512 = require('./sha512')
20800 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20801 (function (Buffer){
20803 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20804 * in FIPS PUB
180-
1
20805 * This source code is derived from sha1.js of the same repository.
20806 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20807 * operation was added.
20810 var inherits = require('inherits')
20811 var Hash = require('./hash')
20814 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20817 var W = new Array(
80)
20823 Hash.call(this,
64,
56)
20826 inherits(Sha, Hash)
20828 Sha.prototype.init = function () {
20829 this._a =
0x67452301
20830 this._b =
0xefcdab89
20831 this._c =
0x98badcfe
20832 this._d =
0x10325476
20833 this._e =
0xc3d2e1f0
20838 function rotl5 (num) {
20839 return (num <<
5) | (num
>>> 27)
20842 function rotl30 (num) {
20843 return (num <<
30) | (num
>>> 2)
20846 function ft (s, b, c, d) {
20847 if (s ===
0) return (b & c) | ((~b) & d)
20848 if (s ===
2) return (b & c) | (b & d) | (c & d)
20852 Sha.prototype._update = function (M) {
20855 var a = this._a |
0
20856 var b = this._b |
0
20857 var c = this._c |
0
20858 var d = this._d |
0
20859 var e = this._e |
0
20861 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20862 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20864 for (var j =
0; j <
80; ++j) {
20866 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20875 this._a = (a + this._a) |
0
20876 this._b = (b + this._b) |
0
20877 this._c = (c + this._c) |
0
20878 this._d = (d + this._d) |
0
20879 this._e = (e + this._e) |
0
20882 Sha.prototype._hash = function () {
20883 var H = new Buffer(
20)
20885 H.writeInt32BE(this._a |
0,
0)
20886 H.writeInt32BE(this._b |
0,
4)
20887 H.writeInt32BE(this._c |
0,
8)
20888 H.writeInt32BE(this._d |
0,
12)
20889 H.writeInt32BE(this._e |
0,
16)
20894 module.exports = Sha
20896 }).call(this,require(
"buffer").Buffer)
20897 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20898 (function (Buffer){
20900 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20901 * in FIPS PUB
180-
1
20902 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20903 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20904 * Distributed under the BSD License
20905 * See http://pajhome.org.uk/crypt/md5 for details.
20908 var inherits = require('inherits')
20909 var Hash = require('./hash')
20912 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20915 var W = new Array(
80)
20921 Hash.call(this,
64,
56)
20924 inherits(Sha1, Hash)
20926 Sha1.prototype.init = function () {
20927 this._a =
0x67452301
20928 this._b =
0xefcdab89
20929 this._c =
0x98badcfe
20930 this._d =
0x10325476
20931 this._e =
0xc3d2e1f0
20936 function rotl1 (num) {
20937 return (num <<
1) | (num
>>> 31)
20940 function rotl5 (num) {
20941 return (num <<
5) | (num
>>> 27)
20944 function rotl30 (num) {
20945 return (num <<
30) | (num
>>> 2)
20948 function ft (s, b, c, d) {
20949 if (s ===
0) return (b & c) | ((~b) & d)
20950 if (s ===
2) return (b & c) | (b & d) | (c & d)
20954 Sha1.prototype._update = function (M) {
20957 var a = this._a |
0
20958 var b = this._b |
0
20959 var c = this._c |
0
20960 var d = this._d |
0
20961 var e = this._e |
0
20963 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20964 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20966 for (var j =
0; j <
80; ++j) {
20968 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20977 this._a = (a + this._a) |
0
20978 this._b = (b + this._b) |
0
20979 this._c = (c + this._c) |
0
20980 this._d = (d + this._d) |
0
20981 this._e = (e + this._e) |
0
20984 Sha1.prototype._hash = function () {
20985 var H = new Buffer(
20)
20987 H.writeInt32BE(this._a |
0,
0)
20988 H.writeInt32BE(this._b |
0,
4)
20989 H.writeInt32BE(this._c |
0,
8)
20990 H.writeInt32BE(this._d |
0,
12)
20991 H.writeInt32BE(this._e |
0,
16)
20996 module.exports = Sha1
20998 }).call(this,require(
"buffer").Buffer)
20999 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
21000 (function (Buffer){
21002 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21004 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21005 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21009 var inherits = require('inherits')
21010 var Sha256 = require('./sha256')
21011 var Hash = require('./hash')
21013 var W = new Array(
64)
21015 function Sha224 () {
21018 this._w = W // new Array(
64)
21020 Hash.call(this,
64,
56)
21023 inherits(Sha224, Sha256)
21025 Sha224.prototype.init = function () {
21026 this._a =
0xc1059ed8
21027 this._b =
0x367cd507
21028 this._c =
0x3070dd17
21029 this._d =
0xf70e5939
21030 this._e =
0xffc00b31
21031 this._f =
0x68581511
21032 this._g =
0x64f98fa7
21033 this._h =
0xbefa4fa4
21038 Sha224.prototype._hash = function () {
21039 var H = new Buffer(
28)
21041 H.writeInt32BE(this._a,
0)
21042 H.writeInt32BE(this._b,
4)
21043 H.writeInt32BE(this._c,
8)
21044 H.writeInt32BE(this._d,
12)
21045 H.writeInt32BE(this._e,
16)
21046 H.writeInt32BE(this._f,
20)
21047 H.writeInt32BE(this._g,
24)
21052 module.exports = Sha224
21054 }).call(this,require(
"buffer").Buffer)
21055 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21056 (function (Buffer){
21058 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21060 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21061 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21065 var inherits = require('inherits')
21066 var Hash = require('./hash')
21069 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21070 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21071 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21072 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21073 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21074 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21075 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21076 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21077 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21078 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21079 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21080 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21081 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21082 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21083 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21084 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21087 var W = new Array(
64)
21089 function Sha256 () {
21092 this._w = W // new Array(
64)
21094 Hash.call(this,
64,
56)
21097 inherits(Sha256, Hash)
21099 Sha256.prototype.init = function () {
21100 this._a =
0x6a09e667
21101 this._b =
0xbb67ae85
21102 this._c =
0x3c6ef372
21103 this._d =
0xa54ff53a
21104 this._e =
0x510e527f
21105 this._f =
0x9b05688c
21106 this._g =
0x1f83d9ab
21107 this._h =
0x5be0cd19
21112 function ch (x, y, z) {
21113 return z ^ (x & (y ^ z))
21116 function maj (x, y, z) {
21117 return (x & y) | (z & (x | y))
21120 function sigma0 (x) {
21121 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21124 function sigma1 (x) {
21125 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21128 function gamma0 (x) {
21129 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21132 function gamma1 (x) {
21133 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21136 Sha256.prototype._update = function (M) {
21139 var a = this._a |
0
21140 var b = this._b |
0
21141 var c = this._c |
0
21142 var d = this._d |
0
21143 var e = this._e |
0
21144 var f = this._f |
0
21145 var g = this._g |
0
21146 var h = this._h |
0
21148 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21149 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21151 for (var j =
0; j <
64; ++j) {
21152 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21153 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21165 this._a = (a + this._a) |
0
21166 this._b = (b + this._b) |
0
21167 this._c = (c + this._c) |
0
21168 this._d = (d + this._d) |
0
21169 this._e = (e + this._e) |
0
21170 this._f = (f + this._f) |
0
21171 this._g = (g + this._g) |
0
21172 this._h = (h + this._h) |
0
21175 Sha256.prototype._hash = function () {
21176 var H = new Buffer(
32)
21178 H.writeInt32BE(this._a,
0)
21179 H.writeInt32BE(this._b,
4)
21180 H.writeInt32BE(this._c,
8)
21181 H.writeInt32BE(this._d,
12)
21182 H.writeInt32BE(this._e,
16)
21183 H.writeInt32BE(this._f,
20)
21184 H.writeInt32BE(this._g,
24)
21185 H.writeInt32BE(this._h,
28)
21190 module.exports = Sha256
21192 }).call(this,require(
"buffer").Buffer)
21193 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21194 (function (Buffer){
21195 var inherits = require('inherits')
21196 var SHA512 = require('./sha512')
21197 var Hash = require('./hash')
21199 var W = new Array(
160)
21201 function Sha384 () {
21205 Hash.call(this,
128,
112)
21208 inherits(Sha384, SHA512)
21210 Sha384.prototype.init = function () {
21211 this._ah =
0xcbbb9d5d
21212 this._bh =
0x629a292a
21213 this._ch =
0x9159015a
21214 this._dh =
0x152fecd8
21215 this._eh =
0x67332667
21216 this._fh =
0x8eb44a87
21217 this._gh =
0xdb0c2e0d
21218 this._hh =
0x47b5481d
21220 this._al =
0xc1059ed8
21221 this._bl =
0x367cd507
21222 this._cl =
0x3070dd17
21223 this._dl =
0xf70e5939
21224 this._el =
0xffc00b31
21225 this._fl =
0x68581511
21226 this._gl =
0x64f98fa7
21227 this._hl =
0xbefa4fa4
21232 Sha384.prototype._hash = function () {
21233 var H = new Buffer(
48)
21235 function writeInt64BE (h, l, offset) {
21236 H.writeInt32BE(h, offset)
21237 H.writeInt32BE(l, offset +
4)
21240 writeInt64BE(this._ah, this._al,
0)
21241 writeInt64BE(this._bh, this._bl,
8)
21242 writeInt64BE(this._ch, this._cl,
16)
21243 writeInt64BE(this._dh, this._dl,
24)
21244 writeInt64BE(this._eh, this._el,
32)
21245 writeInt64BE(this._fh, this._fl,
40)
21250 module.exports = Sha384
21252 }).call(this,require(
"buffer").Buffer)
21253 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21254 (function (Buffer){
21255 var inherits = require('inherits')
21256 var Hash = require('./hash')
21259 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21260 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21261 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21262 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21263 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21264 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21265 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21266 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21267 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21268 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21269 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21270 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21271 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21272 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21273 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21274 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21275 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21276 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21277 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21278 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21279 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21280 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21281 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21282 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21283 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21284 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21285 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21286 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21287 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21288 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21289 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21290 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21291 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21292 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21293 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21294 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21295 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21296 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21297 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21298 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21301 var W = new Array(
160)
21303 function Sha512 () {
21307 Hash.call(this,
128,
112)
21310 inherits(Sha512, Hash)
21312 Sha512.prototype.init = function () {
21313 this._ah =
0x6a09e667
21314 this._bh =
0xbb67ae85
21315 this._ch =
0x3c6ef372
21316 this._dh =
0xa54ff53a
21317 this._eh =
0x510e527f
21318 this._fh =
0x9b05688c
21319 this._gh =
0x1f83d9ab
21320 this._hh =
0x5be0cd19
21322 this._al =
0xf3bcc908
21323 this._bl =
0x84caa73b
21324 this._cl =
0xfe94f82b
21325 this._dl =
0x5f1d36f1
21326 this._el =
0xade682d1
21327 this._fl =
0x2b3e6c1f
21328 this._gl =
0xfb41bd6b
21329 this._hl =
0x137e2179
21334 function Ch (x, y, z) {
21335 return z ^ (x & (y ^ z))
21338 function maj (x, y, z) {
21339 return (x & y) | (z & (x | y))
21342 function sigma0 (x, xl) {
21343 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21346 function sigma1 (x, xl) {
21347 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21350 function Gamma0 (x, xl) {
21351 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21354 function Gamma0l (x, xl) {
21355 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21358 function Gamma1 (x, xl) {
21359 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21362 function Gamma1l (x, xl) {
21363 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21366 function getCarry (a, b) {
21367 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21370 Sha512.prototype._update = function (M) {
21373 var ah = this._ah |
0
21374 var bh = this._bh |
0
21375 var ch = this._ch |
0
21376 var dh = this._dh |
0
21377 var eh = this._eh |
0
21378 var fh = this._fh |
0
21379 var gh = this._gh |
0
21380 var hh = this._hh |
0
21382 var al = this._al |
0
21383 var bl = this._bl |
0
21384 var cl = this._cl |
0
21385 var dl = this._dl |
0
21386 var el = this._el |
0
21387 var fl = this._fl |
0
21388 var gl = this._gl |
0
21389 var hl = this._hl |
0
21391 for (var i =
0; i <
32; i +=
2) {
21392 W[i] = M.readInt32BE(i *
4)
21393 W[i +
1] = M.readInt32BE(i *
4 +
4)
21395 for (; i <
160; i +=
2) {
21396 var xh = W[i -
15 *
2]
21397 var xl = W[i -
15 *
2 +
1]
21398 var gamma0 = Gamma0(xh, xl)
21399 var gamma0l = Gamma0l(xl, xh)
21402 xl = W[i -
2 *
2 +
1]
21403 var gamma1 = Gamma1(xh, xl)
21404 var gamma1l = Gamma1l(xl, xh)
21406 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21407 var Wi7h = W[i -
7 *
2]
21408 var Wi7l = W[i -
7 *
2 +
1]
21410 var Wi16h = W[i -
16 *
2]
21411 var Wi16l = W[i -
16 *
2 +
1]
21413 var Wil = (gamma0l + Wi7l) |
0
21414 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21415 Wil = (Wil + gamma1l) |
0
21416 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21417 Wil = (Wil + Wi16l) |
0
21418 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21424 for (var j =
0; j <
160; j +=
2) {
21428 var majh = maj(ah, bh, ch)
21429 var majl = maj(al, bl, cl)
21431 var sigma0h = sigma0(ah, al)
21432 var sigma0l = sigma0(al, ah)
21433 var sigma1h = sigma1(eh, el)
21434 var sigma1l = sigma1(el, eh)
21436 // t1 = h + sigma1 + ch + K[j] + W[j]
21440 var chh = Ch(eh, fh, gh)
21441 var chl = Ch(el, fl, gl)
21443 var t1l = (hl + sigma1l) |
0
21444 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21445 t1l = (t1l + chl) |
0
21446 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21447 t1l = (t1l + Kil) |
0
21448 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21449 t1l = (t1l + Wil) |
0
21450 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21452 // t2 = sigma0 + maj
21453 var t2l = (sigma0l + majl) |
0
21454 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21462 el = (dl + t1l) |
0
21463 eh = (dh + t1h + getCarry(el, dl)) |
0
21470 al = (t1l + t2l) |
0
21471 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21474 this._al = (this._al + al) |
0
21475 this._bl = (this._bl + bl) |
0
21476 this._cl = (this._cl + cl) |
0
21477 this._dl = (this._dl + dl) |
0
21478 this._el = (this._el + el) |
0
21479 this._fl = (this._fl + fl) |
0
21480 this._gl = (this._gl + gl) |
0
21481 this._hl = (this._hl + hl) |
0
21483 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21484 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21485 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21486 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21487 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21488 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21489 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21490 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21493 Sha512.prototype._hash = function () {
21494 var H = new Buffer(
64)
21496 function writeInt64BE (h, l, offset) {
21497 H.writeInt32BE(h, offset)
21498 H.writeInt32BE(l, offset +
4)
21501 writeInt64BE(this._ah, this._al,
0)
21502 writeInt64BE(this._bh, this._bl,
8)
21503 writeInt64BE(this._ch, this._cl,
16)
21504 writeInt64BE(this._dh, this._dl,
24)
21505 writeInt64BE(this._eh, this._el,
32)
21506 writeInt64BE(this._fh, this._fl,
40)
21507 writeInt64BE(this._gh, this._gl,
48)
21508 writeInt64BE(this._hh, this._hl,
56)
21513 module.exports = Sha512
21515 }).call(this,require(
"buffer").Buffer)
21516 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21517 var inherits = require('inherits')
21518 var native = require('./native')
21520 function TfTypeError (type, value, valueTypeName) {
21521 this.__error = Error.call(this)
21523 this.__value = value
21524 this.__valueTypeName = valueTypeName
21527 Object.defineProperty(this, 'message', {
21530 if (message) return message
21532 valueTypeName = valueTypeName || getValueTypeName(value)
21533 message = tfErrorString(type, value, valueTypeName)
21540 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21541 this.__error = error || Error.call(this)
21542 this.__label = label
21543 this.__property = property
21545 this.__value = value
21546 this.__valueTypeName = valueTypeName
21549 Object.defineProperty(this, 'message', {
21552 if (message) return message
21554 valueTypeName = valueTypeName || getValueTypeName(value)
21555 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21557 message = 'Unexpected property
"' + property + '"'
21565 // inherit from Error, assign stack
21566 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21567 inherits(tfErrorType, Error)
21568 Object.defineProperty(tfErrorType, 'stack', {
21569 get: function () { return this.__error.stack }
21573 function tfCustomError (expected, actual) {
21574 return new TfTypeError(expected, {}, actual)
21577 function tfSubError (e, property, label) {
21579 if (e instanceof TfPropertyTypeError) {
21580 property = property + '.' + e.__property
21583 return new TfPropertyTypeError(
21584 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21589 if (e instanceof TfTypeError) {
21590 return new TfPropertyTypeError(
21591 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21598 function getTypeName (fn) {
21599 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21602 function getValueTypeName (value) {
21603 return native.Nil(value) ? '' : getTypeName(value.constructor)
21606 function getValue (value) {
21607 if (native.Function(value)) return ''
21608 if (native.String(value)) return JSON.stringify(value)
21609 if (value && native.Object(value)) return ''
21613 function tfJSON (type) {
21614 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21615 if (native.Array(type)) return 'Array'
21616 if (type && native.Object(type)) return 'Object'
21618 return type !== undefined ? type : ''
21621 function tfErrorString (type, value, valueTypeName) {
21622 var valueJson = getValue(value)
21624 return 'Expected ' + tfJSON(type) + ', got' +
21625 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21626 (valueJson !== '' ? ' ' + valueJson : '')
21629 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21630 var description = '
" of type '
21631 if (label === 'key') description = '" with key type '
21633 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21637 TfTypeError: TfTypeError,
21638 TfPropertyTypeError: TfPropertyTypeError,
21639 tfCustomError: tfCustomError,
21640 tfSubError: tfSubError,
21642 getValueTypeName: getValueTypeName
21645 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21646 (function (Buffer){
21647 var NATIVE = require('./native')
21648 var ERRORS = require('./errors')
21650 function _Buffer (value) {
21651 return Buffer.isBuffer(value)
21654 function Hex (value) {
21655 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21658 function _LengthN (type, length) {
21659 var name = type.toJSON()
21661 function Length (value) {
21662 if (!type(value)) return false
21663 if (value.length === length) return true
21665 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21667 Length.toJSON = function () { return name }
21672 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21673 var _BufferN = _LengthN.bind(null, _Buffer)
21674 var _HexN = _LengthN.bind(null, Hex)
21676 var UINT53_MAX = Math.pow(2, 53) - 1
21678 function Finite (value) {
21679 return typeof value === 'number' && isFinite(value)
21681 function Int8 (value) { return ((value << 24) >> 24) === value }
21682 function Int16 (value) { return ((value << 16) >> 16) === value }
21683 function Int32 (value) { return (value | 0) === value }
21684 function UInt8 (value) { return (value & 0xff) === value }
21685 function UInt16 (value) { return (value & 0xffff) === value }
21686 function UInt32 (value) { return (value >>> 0) === value }
21687 function UInt53 (value) {
21688 return typeof value === 'number' &&
21690 value <= UINT53_MAX &&
21691 Math.floor(value) === value
21710 for (var typeName in types) {
21711 types[typeName].toJSON = function (t) {
21713 }.bind(null, typeName)
21716 module.exports = types
21718 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21719 },{"../../../../../.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){
21720 var ERRORS = require('./errors')
21721 var NATIVE = require('./native')
21724 var tfJSON = ERRORS.tfJSON
21725 var TfTypeError = ERRORS.TfTypeError
21726 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21727 var tfSubError = ERRORS.tfSubError
21728 var getValueTypeName = ERRORS.getValueTypeName
21731 arrayOf: function arrayOf (type) {
21732 type = compile(type)
21734 function _arrayOf (array, strict) {
21735 if (!NATIVE.Array(array)) return false
21737 return array.every(function (value, i) {
21739 return typeforce(type, value, strict)
21741 throw tfSubError(e, i)
21745 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21750 maybe: function maybe (type) {
21751 type = compile(type)
21753 function _maybe (value, strict) {
21754 return NATIVE.Nil(value) || type(value, strict, maybe)
21756 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21761 map: function map (propertyType, propertyKeyType) {
21762 propertyType = compile(propertyType)
21763 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21765 function _map (value, strict) {
21766 if (!NATIVE.Object(value, strict)) return false
21767 if (NATIVE.Nil(value, strict)) return false
21769 for (var propertyName in value) {
21771 if (propertyKeyType) {
21772 typeforce(propertyKeyType, propertyName, strict)
21775 throw tfSubError(e, propertyName, 'key')
21779 var propertyValue = value[propertyName]
21780 typeforce(propertyType, propertyValue, strict)
21782 throw tfSubError(e, propertyName)
21789 if (propertyKeyType) {
21790 _map.toJSON = function () {
21791 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21794 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21800 object: function object (uncompiled) {
21803 for (var typePropertyName in uncompiled) {
21804 type[typePropertyName] = compile(uncompiled[typePropertyName])
21807 function _object (value, strict) {
21808 if (!NATIVE.Object(value)) return false
21809 if (NATIVE.Nil(value)) return false
21814 for (propertyName in type) {
21815 var propertyType = type[propertyName]
21816 var propertyValue = value[propertyName]
21818 typeforce(propertyType, propertyValue, strict)
21821 throw tfSubError(e, propertyName)
21825 for (propertyName in value) {
21826 if (type[propertyName]) continue
21828 throw new TfPropertyTypeError(undefined, propertyName)
21834 _object.toJSON = function () { return tfJSON(type) }
21839 oneOf: function oneOf () {
21840 var types = [].slice.call(arguments).map(compile)
21842 function _oneOf (value, strict) {
21843 return types.some(function (type) {
21845 return typeforce(type, value, strict)
21851 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21856 quacksLike: function quacksLike (type) {
21857 function _quacksLike (value) {
21858 return type === getValueTypeName(value)
21860 _quacksLike.toJSON = function () { return type }
21865 tuple: function tuple () {
21866 var types = [].slice.call(arguments).map(compile)
21868 function _tuple (values, strict) {
21869 return types.every(function (type, i) {
21871 return typeforce(type, values[i], strict)
21873 throw tfSubError(e, i)
21875 }) && (!strict || values.length === arguments.length)
21877 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21882 value: function value (expected) {
21883 function _value (actual) {
21884 return actual === expected
21886 _value.toJSON = function () { return expected }
21892 function compile (type) {
21893 if (NATIVE.String(type)) {
21894 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21896 return NATIVE[type] || TYPES.quacksLike(type)
21897 } else if (type && NATIVE.Object(type)) {
21898 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21900 return TYPES.object(type)
21901 } else if (NATIVE.Function(type)) {
21905 return TYPES.value(type)
21908 function typeforce (type, value, strict, surrogate) {
21909 if (NATIVE.Function(type)) {
21910 if (type(value, strict)) return true
21912 throw new TfTypeError(surrogate || type, value)
21916 return typeforce(compile(type), value, strict)
21919 // assign types to typeforce function
21920 for (var typeName in NATIVE) {
21921 typeforce[typeName] = NATIVE[typeName]
21924 for (typeName in TYPES) {
21925 typeforce[typeName] = TYPES[typeName]
21928 var EXTRA = require('./extra')
21929 for (typeName in EXTRA) {
21930 typeforce[typeName] = EXTRA[typeName]
21934 function __async (type, value, strict, callback) {
21935 // default to falsy strict if using shorthand overload
21936 if (typeof strict === 'function') return __async(type, value, false, strict)
21939 typeforce(type, value, strict)
21947 typeforce.async = __async
21948 typeforce.compile = compile
21949 typeforce.TfTypeError = TfTypeError
21950 typeforce.TfPropertyTypeError = TfPropertyTypeError
21952 module.exports = typeforce
21954 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21956 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21957 Boolean: function (value) { return typeof value === 'boolean' },
21958 Function: function (value) { return typeof value === 'function' },
21959 Nil: function (value) { return value === undefined || value === null },
21960 Number: function (value) { return typeof value === 'number' },
21961 Object: function (value) { return typeof value === 'object' },
21962 String: function (value) { return typeof value === 'string' },
21963 '': function () { return true }
21967 types.Null = types.Nil
21969 for (var typeName in types) {
21970 types[typeName].toJSON = function (t) {
21972 }.bind(null, typeName)
21975 module.exports = types
21977 },{}],111:[function(require,module,exports){
21978 (function (Buffer){
21981 // Number.MAX_SAFE_INTEGER
21982 var MAX_SAFE_INTEGER = 9007199254740991
21984 function checkUInt53 (n) {
21985 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
21988 function encode (number, buffer, offset) {
21989 checkUInt53(number)
21991 if (!buffer) buffer = new Buffer(encodingLength(number))
21992 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
21993 if (!offset) offset = 0
21996 if (number < 0xfd) {
21997 buffer.writeUInt8(number, offset)
22001 } else if (number <= 0xffff) {
22002 buffer.writeUInt8(0xfd, offset)
22003 buffer.writeUInt16LE(number, offset + 1)
22007 } else if (number <= 0xffffffff) {
22008 buffer.writeUInt8(0xfe, offset)
22009 buffer.writeUInt32LE(number, offset + 1)
22014 buffer.writeUInt8(0xff, offset)
22015 buffer.writeUInt32LE(number >>> 0, offset + 1)
22016 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22023 function decode (buffer, offset) {
22024 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22025 if (!offset) offset = 0
22027 var first = buffer.readUInt8(offset)
22030 if (first < 0xfd) {
22035 } else if (first === 0xfd) {
22037 return buffer.readUInt16LE(offset + 1)
22040 } else if (first === 0xfe) {
22042 return buffer.readUInt32LE(offset + 1)
22047 var lo = buffer.readUInt32LE(offset + 1)
22048 var hi = buffer.readUInt32LE(offset + 5)
22049 var number = hi * 0x0100000000 + lo
22050 checkUInt53(number)
22056 function encodingLength (number) {
22057 checkUInt53(number)
22061 : number <= 0xffff ? 3
22062 : number <= 0xffffffff ? 5
22067 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22069 }).call(this,require("buffer
").Buffer)
22070 },{"buffer
":4}],112:[function(require,module,exports){
22071 (function (Buffer){
22072 var bs58check = require('bs58check')
22074 function decodeRaw (buffer, version) {
22075 // check version only if defined
22076 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22079 if (buffer.length === 33) {
22081 version: buffer[0],
22082 privateKey: buffer.slice(1, 33),
22088 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22090 // invalid compression flag
22091 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22094 version: buffer[0],
22095 privateKey: buffer.slice(1, 33),
22100 function encodeRaw (version, privateKey, compressed) {
22101 var result = new Buffer(compressed ? 34 : 33)
22103 result.writeUInt8(version, 0)
22104 privateKey.copy(result, 1)
22113 function decode (string, version) {
22114 return decodeRaw(bs58check.decode(string), version)
22117 function encode (version, privateKey, compressed) {
22118 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22120 return bs58check.encode(
22123 version.privateKey,
22131 decodeRaw: decodeRaw,
22133 encodeRaw: encodeRaw
22136 }).call(this,require("buffer
").Buffer)
22137 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22140 <script>bitcoinjs.bitcoin.networks.shadow = {
22141 messagePrefix: 'unused',
22143 public: 0xEE80286A,
22144 private: 0xEE8031E8
22151 bitcoinjs.bitcoin.networks.shadowtn = {
22152 messagePrefix: 'unused',
22154 public: 0x76C0FDFB,
22155 private: 0x76C1077A
22162 bitcoinjs.bitcoin.networks.clam = {
22163 messagePrefix: 'unused',
22165 public: 0xa8c26d64,
22166 private: 0xa8c17826
22169 scriptHash: 0x00, // TODO set this correctly
22173 bitcoinjs.bitcoin.networks.crown = {
22174 messagePrefix: 'unused',
22176 public: 0x0488b21e,
22177 private: 0x0488ade4
22184 bitcoinjs.bitcoin.networks.dash = {
22185 messagePrefix: 'unused',
22187 public: 0x0488b21e,
22188 private: 0x0488ade4
22195 bitcoinjs.bitcoin.networks.maza = {
22196 messagePrefix: 'unused',
22198 public: 0x0488b21e,
22199 private: 0x0488ade4
22206 bitcoinjs.bitcoin.networks.dashtn = {
22207 messagePrefix: 'unused',
22209 public: 0x043587cf,
22210 private: 0x04358394
22217 bitcoinjs.bitcoin.networks.game = {
22218 messagePrefix: 'unused',
22220 public: 0x0488b21e,
22221 private: 0x0488ade4
22228 bitcoinjs.bitcoin.networks.namecoin = {
22229 messagePrefix: 'unused',
22231 public: 0x0488b21e,
22232 private: 0x0488ade4
22235 scriptHash: 0x00, // TODO set this correctly
22239 bitcoinjs.bitcoin.networks.peercoin = {
22240 messagePrefix: 'unused',
22242 public: 0x0488b21e,
22243 private: 0x0488ade4
22246 scriptHash: 0x00, // TODO set this correctly
22250 bitcoinjs.bitcoin.networks.slimcoin = {
22251 messagePrefix: 'unused',
22253 public: 0xef6adf10,
22254 private: 0xef69ea80
22261 bitcoinjs.bitcoin.networks.slimcointn = {
22262 messagePrefix: 'unused',
22264 public: 0x043587CF,
22265 private: 0x04358394
22272 bitcoinjs.bitcoin.networks.dogecoin = {
22273 messagePrefix: '\x19Dogecoin Signed Message:\n',
22275 public: 0x02facafd,
22276 private: 0x02fac398
22283 bitcoinjs.bitcoin.networks.viacoin = {
22284 messagePrefix: '\x18Viacoin Signed Message:\n',
22286 public: 0x0488b21e,
22287 private: 0x0488ade4
22294 bitcoinjs.bitcoin.networks.viacointestnet = {
22295 messagePrefix: '\x18Viacoin Signed Message:\n',
22297 public: 0x043587cf,
22298 private: 0x04358394
22305 bitcoinjs.bitcoin.networks.gamerscoin = {
22306 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22308 public: 0x019da462,
22309 private: 0x019d9cfe
22316 bitcoinjs.bitcoin.networks.jumbucks = {
22317 messagePrefix: '\x19Jumbucks Signed Message:\n',
22319 public: 0x037a689a,
22320 private: 0x037a6460
22327 bitcoinjs.bitcoin.networks.zetacoin = {
22328 messagePrefix: '\x18Zetacoin Signed Message:\n',
22330 public: 0x0488b21e,
22331 private: 0x0488ade4
22338 bitcoinjs.bitcoin.networks.myriadcoin = {
22339 messagePrefix: 'unused',
22341 public: 0x0488b21e,
22342 private: 0x0488ade4
22345 scriptHash: 0x00, // TODO set this correctly
22349 bitcoinjs.bitcoin.networks.pivx = {
22350 messagePrefix: 'unused',
22352 public: 0x022d2533,
22353 private: 0x0221312b
22360 bitcoinjs.bitcoin.networks.pivxtestnet = {
22361 messagePrefix: 'unused',
22363 public: 0x3a8061a0,
22364 private: 0x3a805837
22371 <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){
22372 (function (global){
22375 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22376 // original notice:
22379 * The buffer module from node.js, for the browser.
22381 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22384 function compare(a, b) {
22392 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22393 if (a[i] !== b[i]) {
22408 function isBuffer(b) {
22409 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22410 return global.Buffer.isBuffer(b);
22412 return !!(b != null && b._isBuffer);
22415 // based on node assert, original notice:
22417 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22419 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22421 // Originally from narwhal.js (http://narwhaljs.org)
22422 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22424 // Permission is hereby granted, free of charge, to any person obtaining a copy
22425 // of this software and associated documentation files (the 'Software'), to
22426 // deal in the Software without restriction, including without limitation the
22427 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22428 // sell copies of the Software, and to permit persons to whom the Software is
22429 // furnished to do so, subject to the following conditions:
22431 // The above copyright notice and this permission notice shall be included in
22432 // all copies or substantial portions of the Software.
22434 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22435 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22436 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22437 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22438 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22439 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22441 var util = require('util/');
22442 var hasOwn = Object.prototype.hasOwnProperty;
22443 var pSlice = Array.prototype.slice;
22444 var functionsHaveNames = (function () {
22445 return function foo() {}.name === 'foo';
22447 function pToString (obj) {
22448 return Object.prototype.toString.call(obj);
22450 function isView(arrbuf) {
22451 if (isBuffer(arrbuf)) {
22454 if (typeof global.ArrayBuffer !== 'function') {
22457 if (typeof ArrayBuffer.isView === 'function') {
22458 return ArrayBuffer.isView(arrbuf);
22463 if (arrbuf instanceof DataView) {
22466 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22471 //
1. The assert module provides functions that throw
22472 // AssertionError's when particular conditions are not met. The
22473 // assert module must conform to the following interface.
22475 var assert = module.exports = ok;
22477 //
2. The AssertionError is defined in assert.
22478 // new assert.AssertionError({ message: message,
22480 // expected: expected })
22482 var regex = /\s*function\s+([^\(\s]*)\s*/;
22483 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22484 function getName(func) {
22485 if (!util.isFunction(func)) {
22488 if (functionsHaveNames) {
22491 var str = func.toString();
22492 var match = str.match(regex);
22493 return match && match[
1];
22495 assert.AssertionError = function AssertionError(options) {
22496 this.name = 'AssertionError';
22497 this.actual = options.actual;
22498 this.expected = options.expected;
22499 this.operator = options.operator;
22500 if (options.message) {
22501 this.message = options.message;
22502 this.generatedMessage = false;
22504 this.message = getMessage(this);
22505 this.generatedMessage = true;
22507 var stackStartFunction = options.stackStartFunction || fail;
22508 if (Error.captureStackTrace) {
22509 Error.captureStackTrace(this, stackStartFunction);
22511 // non v8 browsers so we can have a stacktrace
22512 var err = new Error();
22514 var out = err.stack;
22516 // try to strip useless frames
22517 var fn_name = getName(stackStartFunction);
22518 var idx = out.indexOf('\n' + fn_name);
22520 // once we have located the function frame
22521 // we need to strip out everything before it (and its line)
22522 var next_line = out.indexOf('\n', idx +
1);
22523 out = out.substring(next_line +
1);
22531 // assert.AssertionError instanceof Error
22532 util.inherits(assert.AssertionError, Error);
22534 function truncate(s, n) {
22535 if (typeof s === 'string') {
22536 return s.length < n ? s : s.slice(
0, n);
22541 function inspect(something) {
22542 if (functionsHaveNames || !util.isFunction(something)) {
22543 return util.inspect(something);
22545 var rawname = getName(something);
22546 var name = rawname ? ': ' + rawname : '';
22547 return '[Function' + name + ']';
22549 function getMessage(self) {
22550 return truncate(inspect(self.actual),
128) + ' ' +
22551 self.operator + ' ' +
22552 truncate(inspect(self.expected),
128);
22555 // At present only the three keys mentioned above are used and
22556 // understood by the spec. Implementations or sub modules can pass
22557 // other keys to the AssertionError's constructor - they will be
22560 //
3. All of the following functions must throw an AssertionError
22561 // when a corresponding condition is not met, with a message that
22562 // may be undefined if not provided. All assertion methods provide
22563 // both the actual and expected values to the assertion error for
22564 // display purposes.
22566 function fail(actual, expected, message, operator, stackStartFunction) {
22567 throw new assert.AssertionError({
22570 expected: expected,
22571 operator: operator,
22572 stackStartFunction: stackStartFunction
22576 // EXTENSION! allows for well behaved errors defined elsewhere.
22577 assert.fail = fail;
22579 //
4. Pure assertion tests whether a value is truthy, as determined
22581 // assert.ok(guard, message_opt);
22582 // This statement is equivalent to assert.equal(true, !!guard,
22583 // message_opt);. To test strictly for the value true, use
22584 // assert.strictEqual(true, guard, message_opt);.
22586 function ok(value, message) {
22587 if (!value) fail(value, true, message, '==', assert.ok);
22591 //
5. The equality assertion tests shallow, coercive equality with
22593 // assert.equal(actual, expected, message_opt);
22595 assert.equal = function equal(actual, expected, message) {
22596 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22599 //
6. The non-equality assertion tests for whether two objects are not equal
22600 // with != assert.notEqual(actual, expected, message_opt);
22602 assert.notEqual = function notEqual(actual, expected, message) {
22603 if (actual == expected) {
22604 fail(actual, expected, message, '!=', assert.notEqual);
22608 //
7. The equivalence assertion tests a deep equality relation.
22609 // assert.deepEqual(actual, expected, message_opt);
22611 assert.deepEqual = function deepEqual(actual, expected, message) {
22612 if (!_deepEqual(actual, expected, false)) {
22613 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22617 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22618 if (!_deepEqual(actual, expected, true)) {
22619 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22623 function _deepEqual(actual, expected, strict, memos) {
22624 //
7.1. All identical values are equivalent, as determined by ===.
22625 if (actual === expected) {
22627 } else if (isBuffer(actual) && isBuffer(expected)) {
22628 return compare(actual, expected) ===
0;
22630 //
7.2. If the expected value is a Date object, the actual value is
22631 // equivalent if it is also a Date object that refers to the same time.
22632 } else if (util.isDate(actual) && util.isDate(expected)) {
22633 return actual.getTime() === expected.getTime();
22635 //
7.3 If the expected value is a RegExp object, the actual value is
22636 // equivalent if it is also a RegExp object with the same source and
22637 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22638 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22639 return actual.source === expected.source &&
22640 actual.global === expected.global &&
22641 actual.multiline === expected.multiline &&
22642 actual.lastIndex === expected.lastIndex &&
22643 actual.ignoreCase === expected.ignoreCase;
22645 //
7.4. Other pairs that do not both pass typeof value == 'object',
22646 // equivalence is determined by ==.
22647 } else if ((actual === null || typeof actual !== 'object') &&
22648 (expected === null || typeof expected !== 'object')) {
22649 return strict ? actual === expected : actual == expected;
22651 // If both values are instances of typed arrays, wrap their underlying
22652 // ArrayBuffers in a Buffer each to increase performance
22653 // This optimization requires the arrays to have the same type as checked by
22654 // Object.prototype.toString (aka pToString). Never perform binary
22655 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22656 // bit patterns are not identical.
22657 } else if (isView(actual) && isView(expected) &&
22658 pToString(actual) === pToString(expected) &&
22659 !(actual instanceof Float32Array ||
22660 actual instanceof Float64Array)) {
22661 return compare(new Uint8Array(actual.buffer),
22662 new Uint8Array(expected.buffer)) ===
0;
22664 //
7.5 For all other Object pairs, including Array objects, equivalence is
22665 // determined by having the same number of owned properties (as verified
22666 // with Object.prototype.hasOwnProperty.call), the same set of keys
22667 // (although not necessarily the same order), equivalent values for every
22668 // corresponding key, and an identical 'prototype' property. Note: this
22669 // accounts for both named and indexed properties on Arrays.
22670 } else if (isBuffer(actual) !== isBuffer(expected)) {
22673 memos = memos || {actual: [], expected: []};
22675 var actualIndex = memos.actual.indexOf(actual);
22676 if (actualIndex !== -
1) {
22677 if (actualIndex === memos.expected.indexOf(expected)) {
22682 memos.actual.push(actual);
22683 memos.expected.push(expected);
22685 return objEquiv(actual, expected, strict, memos);
22689 function isArguments(object) {
22690 return Object.prototype.toString.call(object) == '[object Arguments]';
22693 function objEquiv(a, b, strict, actualVisitedObjects) {
22694 if (a === null || a === undefined || b === null || b === undefined)
22696 // if one is a primitive, the other must be same
22697 if (util.isPrimitive(a) || util.isPrimitive(b))
22699 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22701 var aIsArgs = isArguments(a);
22702 var bIsArgs = isArguments(b);
22703 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22706 a = pSlice.call(a);
22707 b = pSlice.call(b);
22708 return _deepEqual(a, b, strict);
22710 var ka = objectKeys(a);
22711 var kb = objectKeys(b);
22713 // having the same number of owned properties (keys incorporates
22715 if (ka.length !== kb.length)
22717 //the same set of keys (although not necessarily the same order),
22720 //~~~cheap key test
22721 for (i = ka.length -
1; i
>=
0; i--) {
22722 if (ka[i] !== kb[i])
22725 //equivalent values for every corresponding key, and
22726 //~~~possibly expensive deep test
22727 for (i = ka.length -
1; i
>=
0; i--) {
22729 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22735 //
8. The non-equivalence assertion tests for any deep inequality.
22736 // assert.notDeepEqual(actual, expected, message_opt);
22738 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22739 if (_deepEqual(actual, expected, false)) {
22740 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22744 assert.notDeepStrictEqual = notDeepStrictEqual;
22745 function notDeepStrictEqual(actual, expected, message) {
22746 if (_deepEqual(actual, expected, true)) {
22747 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22752 //
9. The strict equality assertion tests strict equality, as determined by ===.
22753 // assert.strictEqual(actual, expected, message_opt);
22755 assert.strictEqual = function strictEqual(actual, expected, message) {
22756 if (actual !== expected) {
22757 fail(actual, expected, message, '===', assert.strictEqual);
22761 //
10. The strict non-equality assertion tests for strict inequality, as
22762 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22764 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22765 if (actual === expected) {
22766 fail(actual, expected, message, '!==', assert.notStrictEqual);
22770 function expectedException(actual, expected) {
22771 if (!actual || !expected) {
22775 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22776 return expected.test(actual);
22780 if (actual instanceof expected) {
22784 // Ignore. The instanceof check doesn't work for arrow functions.
22787 if (Error.isPrototypeOf(expected)) {
22791 return expected.call({}, actual) === true;
22794 function _tryBlock(block) {
22804 function _throws(shouldThrow, block, expected, message) {
22807 if (typeof block !== 'function') {
22808 throw new TypeError('"block" argument must be a function');
22811 if (typeof expected === 'string') {
22812 message = expected;
22816 actual = _tryBlock(block);
22818 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22819 (message ? ' ' + message : '.');
22821 if (shouldThrow && !actual) {
22822 fail(actual, expected, 'Missing expected exception' + message);
22825 var userProvidedMessage = typeof message === 'string';
22826 var isUnwantedException = !shouldThrow && util.isError(actual);
22827 var isUnexpectedException = !shouldThrow && actual && !expected;
22829 if ((isUnwantedException &&
22830 userProvidedMessage &&
22831 expectedException(actual, expected)) ||
22832 isUnexpectedException) {
22833 fail(actual, expected, 'Got unwanted exception' + message);
22836 if ((shouldThrow && actual && expected &&
22837 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22842 //
11. Expected to throw an error:
22843 // assert.throws(block, Error_opt, message_opt);
22845 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22846 _throws(true, block, error, message);
22849 // EXTENSION! This is annoying to write outside this module.
22850 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22851 _throws(false, block, error, message);
22854 assert.ifError = function(err) { if (err) throw err; };
22856 var objectKeys = Object.keys || function (obj) {
22858 for (var key in obj) {
22859 if (hasOwn.call(obj, key)) keys.push(key);
22864 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22865 },{"util/":
30}],
2:[function(require,module,exports){
22868 exports.byteLength = byteLength
22869 exports.toByteArray = toByteArray
22870 exports.fromByteArray = fromByteArray
22874 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22876 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22877 for (var i =
0, len = code.length; i < len; ++i) {
22878 lookup[i] = code[i]
22879 revLookup[code.charCodeAt(i)] = i
22882 revLookup['-'.charCodeAt(
0)] =
62
22883 revLookup['_'.charCodeAt(
0)] =
63
22885 function placeHoldersCount (b64) {
22886 var len = b64.length
22888 throw new Error('Invalid string. Length must be a multiple of
4')
22891 // the number of equal signs (place holders)
22892 // if there are two placeholders, than the two characters before it
22893 // represent one byte
22894 // if there is only one, then the three characters before it represent
2 bytes
22895 // this is just a cheap hack to not do indexOf twice
22896 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22899 function byteLength (b64) {
22900 // base64 is
4/
3 + up to two characters of the original data
22901 return b64.length *
3 /
4 - placeHoldersCount(b64)
22904 function toByteArray (b64) {
22905 var i, j, l, tmp, placeHolders, arr
22906 var len = b64.length
22907 placeHolders = placeHoldersCount(b64)
22909 arr = new Arr(len *
3 /
4 - placeHolders)
22911 // if there are placeholders, only get up to the last complete
4 chars
22912 l = placeHolders
> 0 ? len -
4 : len
22916 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22917 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22918 arr[L++] = (tmp
>> 16) &
0xFF
22919 arr[L++] = (tmp
>> 8) &
0xFF
22920 arr[L++] = tmp &
0xFF
22923 if (placeHolders ===
2) {
22924 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22925 arr[L++] = tmp &
0xFF
22926 } else if (placeHolders ===
1) {
22927 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22928 arr[L++] = (tmp
>> 8) &
0xFF
22929 arr[L++] = tmp &
0xFF
22935 function tripletToBase64 (num) {
22936 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22939 function encodeChunk (uint8, start, end) {
22942 for (var i = start; i < end; i +=
3) {
22943 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22944 output.push(tripletToBase64(tmp))
22946 return output.join('')
22949 function fromByteArray (uint8) {
22951 var len = uint8.length
22952 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22955 var maxChunkLength =
16383 // must be multiple of
3
22957 // go through the array every three bytes, we'll deal with trailing stuff later
22958 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22959 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22962 // pad the end with zeros, but make sure to not forget the extra bytes
22963 if (extraBytes ===
1) {
22964 tmp = uint8[len -
1]
22965 output += lookup[tmp
>> 2]
22966 output += lookup[(tmp <<
4) &
0x3F]
22968 } else if (extraBytes ===
2) {
22969 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
22970 output += lookup[tmp
>> 10]
22971 output += lookup[(tmp
>> 4) &
0x3F]
22972 output += lookup[(tmp <<
2) &
0x3F]
22978 return parts.join('')
22981 },{}],
3:[function(require,module,exports){
22983 },{}],
4:[function(require,module,exports){
22984 (function (global){
22987 var buffer = require('buffer');
22988 var Buffer = buffer.Buffer;
22989 var SlowBuffer = buffer.SlowBuffer;
22990 var MAX_LEN = buffer.kMaxLength ||
2147483647;
22991 exports.alloc = function alloc(size, fill, encoding) {
22992 if (typeof Buffer.alloc === 'function') {
22993 return Buffer.alloc(size, fill, encoding);
22995 if (typeof encoding === 'number') {
22996 throw new TypeError('encoding must not be number');
22998 if (typeof size !== 'number') {
22999 throw new TypeError('size must be a number');
23001 if (size
> MAX_LEN) {
23002 throw new RangeError('size is too large');
23004 var enc = encoding;
23006 if (_fill === undefined) {
23010 var buf = new Buffer(size);
23011 if (typeof _fill === 'string') {
23012 var fillBuf = new Buffer(_fill, enc);
23013 var flen = fillBuf.length;
23015 while (++i < size) {
23016 buf[i] = fillBuf[i % flen];
23023 exports.allocUnsafe = function allocUnsafe(size) {
23024 if (typeof Buffer.allocUnsafe === 'function') {
23025 return Buffer.allocUnsafe(size);
23027 if (typeof size !== 'number') {
23028 throw new TypeError('size must be a number');
23030 if (size
> MAX_LEN) {
23031 throw new RangeError('size is too large');
23033 return new Buffer(size);
23035 exports.from = function from(value, encodingOrOffset, length) {
23036 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23037 return Buffer.from(value, encodingOrOffset, length);
23039 if (typeof value === 'number') {
23040 throw new TypeError('"value" argument must not be a number');
23042 if (typeof value === 'string') {
23043 return new Buffer(value, encodingOrOffset);
23045 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23046 var offset = encodingOrOffset;
23047 if (arguments.length ===
1) {
23048 return new Buffer(value);
23050 if (typeof offset === 'undefined') {
23054 if (typeof len === 'undefined') {
23055 len = value.byteLength - offset;
23057 if (offset
>= value.byteLength) {
23058 throw new RangeError('\'offset\' is out of bounds');
23060 if (len
> value.byteLength - offset) {
23061 throw new RangeError('\'length\' is out of bounds');
23063 return new Buffer(value.slice(offset, offset + len));
23065 if (Buffer.isBuffer(value)) {
23066 var out = new Buffer(value.length);
23067 value.copy(out,
0,
0, value.length);
23071 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23072 return new Buffer(value);
23074 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23075 return new Buffer(value.data);
23079 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23081 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23082 if (typeof Buffer.allocUnsafeSlow === 'function') {
23083 return Buffer.allocUnsafeSlow(size);
23085 if (typeof size !== 'number') {
23086 throw new TypeError('size must be a number');
23088 if (size
>= MAX_LEN) {
23089 throw new RangeError('size is too large');
23091 return new SlowBuffer(size);
23094 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23095 },{"buffer":
5}],
5:[function(require,module,exports){
23097 * The buffer module from node.js, for the browser.
23099 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23102 /* eslint-disable no-proto */
23106 var base64 = require('base64-js')
23107 var ieee754 = require('ieee754')
23109 exports.Buffer = Buffer
23110 exports.SlowBuffer = SlowBuffer
23111 exports.INSPECT_MAX_BYTES =
50
23113 var K_MAX_LENGTH =
0x7fffffff
23114 exports.kMaxLength = K_MAX_LENGTH
23117 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23118 * === true Use Uint8Array implementation (fastest)
23119 * === false Print warning and recommend using `buffer` v4.x which has an Object
23120 * implementation (most compatible, even IE6)
23122 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23123 * Opera
11.6+, iOS
4.2+.
23125 * We report that the browser does not support typed arrays if the are not subclassable
23126 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23127 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23128 * for __proto__ and has a buggy typed array implementation.
23130 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23132 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23133 typeof console.error === 'function') {
23135 'This browser lacks typed array (Uint8Array) support which is required by ' +
23136 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23140 function typedArraySupport () {
23141 // Can typed array instances can be augmented?
23143 var arr = new Uint8Array(
1)
23144 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23145 return arr.foo() ===
42
23151 function createBuffer (length) {
23152 if (length
> K_MAX_LENGTH) {
23153 throw new RangeError('Invalid typed array length')
23155 // Return an augmented `Uint8Array` instance
23156 var buf = new Uint8Array(length)
23157 buf.__proto__ = Buffer.prototype
23162 * The Buffer constructor returns instances of `Uint8Array` that have their
23163 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23164 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23165 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23166 * returns a single octet.
23168 * The `Uint8Array` prototype remains unmodified.
23171 function Buffer (arg, encodingOrOffset, length) {
23173 if (typeof arg === 'number') {
23174 if (typeof encodingOrOffset === 'string') {
23176 'If encoding is specified then the first argument must be a string'
23179 return allocUnsafe(arg)
23181 return from(arg, encodingOrOffset, length)
23184 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23185 if (typeof Symbol !== 'undefined' && Symbol.species &&
23186 Buffer[Symbol.species] === Buffer) {
23187 Object.defineProperty(Buffer, Symbol.species, {
23189 configurable: true,
23195 Buffer.poolSize =
8192 // not used by this implementation
23197 function from (value, encodingOrOffset, length) {
23198 if (typeof value === 'number') {
23199 throw new TypeError('"value" argument must not be a number')
23202 if (value instanceof ArrayBuffer) {
23203 return fromArrayBuffer(value, encodingOrOffset, length)
23206 if (typeof value === 'string') {
23207 return fromString(value, encodingOrOffset)
23210 return fromObject(value)
23214 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23215 * if value is a number.
23216 * Buffer.from(str[, encoding])
23217 * Buffer.from(array)
23218 * Buffer.from(buffer)
23219 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23221 Buffer.from = function (value, encodingOrOffset, length) {
23222 return from(value, encodingOrOffset, length)
23225 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23226 // https://github.com/feross/buffer/pull/
148
23227 Buffer.prototype.__proto__ = Uint8Array.prototype
23228 Buffer.__proto__ = Uint8Array
23230 function assertSize (size) {
23231 if (typeof size !== 'number') {
23232 throw new TypeError('"size" argument must be a number')
23233 } else if (size <
0) {
23234 throw new RangeError('"size" argument must not be negative')
23238 function alloc (size, fill, encoding) {
23241 return createBuffer(size)
23243 if (fill !== undefined) {
23244 // Only pay attention to encoding if it's a string. This
23245 // prevents accidentally sending in a number that would
23246 // be interpretted as a start offset.
23247 return typeof encoding === 'string'
23248 ? createBuffer(size).fill(fill, encoding)
23249 : createBuffer(size).fill(fill)
23251 return createBuffer(size)
23255 * Creates a new filled Buffer instance.
23256 * alloc(size[, fill[, encoding]])
23258 Buffer.alloc = function (size, fill, encoding) {
23259 return alloc(size, fill, encoding)
23262 function allocUnsafe (size) {
23264 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23268 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23270 Buffer.allocUnsafe = function (size) {
23271 return allocUnsafe(size)
23274 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23276 Buffer.allocUnsafeSlow = function (size) {
23277 return allocUnsafe(size)
23280 function fromString (string, encoding) {
23281 if (typeof encoding !== 'string' || encoding === '') {
23285 if (!Buffer.isEncoding(encoding)) {
23286 throw new TypeError('"encoding" must be a valid string encoding')
23289 var length = byteLength(string, encoding) |
0
23290 var buf = createBuffer(length)
23292 var actual = buf.write(string, encoding)
23294 if (actual !== length) {
23295 // Writing a hex string, for example, that contains invalid characters will
23296 // cause everything after the first invalid character to be ignored. (e.g.
23297 // 'abxxcd' will be treated as 'ab')
23298 buf = buf.slice(
0, actual)
23304 function fromArrayLike (array) {
23305 var length = array.length <
0 ?
0 : checked(array.length) |
0
23306 var buf = createBuffer(length)
23307 for (var i =
0; i < length; i +=
1) {
23308 buf[i] = array[i] &
255
23313 function fromArrayBuffer (array, byteOffset, length) {
23314 if (byteOffset <
0 || array.byteLength < byteOffset) {
23315 throw new RangeError('\'offset\' is out of bounds')
23318 if (array.byteLength < byteOffset + (length ||
0)) {
23319 throw new RangeError('\'length\' is out of bounds')
23323 if (byteOffset === undefined && length === undefined) {
23324 buf = new Uint8Array(array)
23325 } else if (length === undefined) {
23326 buf = new Uint8Array(array, byteOffset)
23328 buf = new Uint8Array(array, byteOffset, length)
23331 // Return an augmented `Uint8Array` instance
23332 buf.__proto__ = Buffer.prototype
23336 function fromObject (obj) {
23337 if (Buffer.isBuffer(obj)) {
23338 var len = checked(obj.length) |
0
23339 var buf = createBuffer(len)
23341 if (buf.length ===
0) {
23345 obj.copy(buf,
0,
0, len)
23350 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23351 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23352 return createBuffer(
0)
23354 return fromArrayLike(obj)
23357 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23358 return fromArrayLike(obj.data)
23362 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23365 function checked (length) {
23366 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23367 // length is NaN (which is otherwise coerced to zero.)
23368 if (length
>= K_MAX_LENGTH) {
23369 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23370 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23375 function SlowBuffer (length) {
23376 if (+length != length) { // eslint-disable-line eqeqeq
23379 return Buffer.alloc(+length)
23382 Buffer.isBuffer = function isBuffer (b) {
23383 return b != null && b._isBuffer === true
23386 Buffer.compare = function compare (a, b) {
23387 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23388 throw new TypeError('Arguments must be Buffers')
23391 if (a === b) return
0
23396 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23397 if (a[i] !== b[i]) {
23404 if (x < y) return -
1
23405 if (y < x) return
1
23409 Buffer.isEncoding = function isEncoding (encoding) {
23410 switch (String(encoding).toLowerCase()) {
23428 Buffer.concat = function concat (list, length) {
23429 if (!Array.isArray(list)) {
23430 throw new TypeError('"list" argument must be an Array of Buffers')
23433 if (list.length ===
0) {
23434 return Buffer.alloc(
0)
23438 if (length === undefined) {
23440 for (i =
0; i < list.length; ++i) {
23441 length += list[i].length
23445 var buffer = Buffer.allocUnsafe(length)
23447 for (i =
0; i < list.length; ++i) {
23449 if (!Buffer.isBuffer(buf)) {
23450 throw new TypeError('"list" argument must be an Array of Buffers')
23452 buf.copy(buffer, pos)
23458 function byteLength (string, encoding) {
23459 if (Buffer.isBuffer(string)) {
23460 return string.length
23462 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23463 return string.byteLength
23465 if (typeof string !== 'string') {
23466 string = '' + string
23469 var len = string.length
23470 if (len ===
0) return
0
23472 // Use a for loop to avoid recursion
23473 var loweredCase = false
23475 switch (encoding) {
23483 return utf8ToBytes(string).length
23492 return base64ToBytes(string).length
23494 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23495 encoding = ('' + encoding).toLowerCase()
23500 Buffer.byteLength = byteLength
23502 function slowToString (encoding, start, end) {
23503 var loweredCase = false
23505 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23506 // property of a typed array.
23508 // This behaves neither like String nor Uint8Array in that we set start/end
23509 // to their upper/lower bounds if the value passed is out of range.
23510 // undefined is handled specially as per ECMA-
262 6th Edition,
23511 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23512 if (start === undefined || start <
0) {
23515 // Return early if start
> this.length. Done here to prevent potential uint32
23516 // coercion fail below.
23517 if (start
> this.length) {
23521 if (end === undefined || end
> this.length) {
23529 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23533 if (end <= start) {
23537 if (!encoding) encoding = 'utf8'
23540 switch (encoding) {
23542 return hexSlice(this, start, end)
23546 return utf8Slice(this, start, end)
23549 return asciiSlice(this, start, end)
23553 return latin1Slice(this, start, end)
23556 return base64Slice(this, start, end)
23562 return utf16leSlice(this, start, end)
23565 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23566 encoding = (encoding + '').toLowerCase()
23572 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23573 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23574 // reliably in a browserify context because there could be multiple different
23575 // copies of the 'buffer' package in use. This method works even for Buffer
23576 // instances that were created from another copy of the `buffer` package.
23577 // See: https://github.com/feross/buffer/issues/
154
23578 Buffer.prototype._isBuffer = true
23580 function swap (b, n, m) {
23586 Buffer.prototype.swap16 = function swap16 () {
23587 var len = this.length
23588 if (len %
2 !==
0) {
23589 throw new RangeError('Buffer size must be a multiple of
16-bits')
23591 for (var i =
0; i < len; i +=
2) {
23592 swap(this, i, i +
1)
23597 Buffer.prototype.swap32 = function swap32 () {
23598 var len = this.length
23599 if (len %
4 !==
0) {
23600 throw new RangeError('Buffer size must be a multiple of
32-bits')
23602 for (var i =
0; i < len; i +=
4) {
23603 swap(this, i, i +
3)
23604 swap(this, i +
1, i +
2)
23609 Buffer.prototype.swap64 = function swap64 () {
23610 var len = this.length
23611 if (len %
8 !==
0) {
23612 throw new RangeError('Buffer size must be a multiple of
64-bits')
23614 for (var i =
0; i < len; i +=
8) {
23615 swap(this, i, i +
7)
23616 swap(this, i +
1, i +
6)
23617 swap(this, i +
2, i +
5)
23618 swap(this, i +
3, i +
4)
23623 Buffer.prototype.toString = function toString () {
23624 var length = this.length
23625 if (length ===
0) return ''
23626 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23627 return slowToString.apply(this, arguments)
23630 Buffer.prototype.equals = function equals (b) {
23631 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23632 if (this === b) return true
23633 return Buffer.compare(this, b) ===
0
23636 Buffer.prototype.inspect = function inspect () {
23638 var max = exports.INSPECT_MAX_BYTES
23639 if (this.length
> 0) {
23640 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23641 if (this.length
> max) str += ' ... '
23643 return '
<Buffer ' + str + '
>'
23646 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23647 if (!Buffer.isBuffer(target)) {
23648 throw new TypeError('Argument must be a Buffer')
23651 if (start === undefined) {
23654 if (end === undefined) {
23655 end = target ? target.length :
0
23657 if (thisStart === undefined) {
23660 if (thisEnd === undefined) {
23661 thisEnd = this.length
23664 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23665 throw new RangeError('out of range index')
23668 if (thisStart
>= thisEnd && start
>= end) {
23671 if (thisStart
>= thisEnd) {
23674 if (start
>= end) {
23683 if (this === target) return
0
23685 var x = thisEnd - thisStart
23686 var y = end - start
23687 var len = Math.min(x, y)
23689 var thisCopy = this.slice(thisStart, thisEnd)
23690 var targetCopy = target.slice(start, end)
23692 for (var i =
0; i < len; ++i) {
23693 if (thisCopy[i] !== targetCopy[i]) {
23700 if (x < y) return -
1
23701 if (y < x) return
1
23705 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23706 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23709 // - buffer - a Buffer to search
23710 // - val - a string, Buffer, or number
23711 // - byteOffset - an index into `buffer`; will be clamped to an int32
23712 // - encoding - an optional encoding, relevant is val is a string
23713 // - dir - true for indexOf, false for lastIndexOf
23714 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23715 // Empty buffer means no match
23716 if (buffer.length ===
0) return -
1
23718 // Normalize byteOffset
23719 if (typeof byteOffset === 'string') {
23720 encoding = byteOffset
23722 } else if (byteOffset
> 0x7fffffff) {
23723 byteOffset =
0x7fffffff
23724 } else if (byteOffset < -
0x80000000) {
23725 byteOffset = -
0x80000000
23727 byteOffset = +byteOffset // Coerce to Number.
23728 if (isNaN(byteOffset)) {
23729 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23730 byteOffset = dir ?
0 : (buffer.length -
1)
23733 // Normalize byteOffset: negative offsets start from the end of the buffer
23734 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23735 if (byteOffset
>= buffer.length) {
23737 else byteOffset = buffer.length -
1
23738 } else if (byteOffset <
0) {
23739 if (dir) byteOffset =
0
23744 if (typeof val === 'string') {
23745 val = Buffer.from(val, encoding)
23748 // Finally, search either indexOf (if dir is true) or lastIndexOf
23749 if (Buffer.isBuffer(val)) {
23750 // Special case: looking for empty string/buffer always fails
23751 if (val.length ===
0) {
23754 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23755 } else if (typeof val === 'number') {
23756 val = val &
0xFF // Search for a byte value [
0-
255]
23757 if (typeof Uint8Array.prototype.indexOf === 'function') {
23759 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23761 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23764 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23767 throw new TypeError('val must be string, number or Buffer')
23770 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23772 var arrLength = arr.length
23773 var valLength = val.length
23775 if (encoding !== undefined) {
23776 encoding = String(encoding).toLowerCase()
23777 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23778 encoding === 'utf16le' || encoding === 'utf-
16le') {
23779 if (arr.length <
2 || val.length <
2) {
23789 function read (buf, i) {
23790 if (indexSize ===
1) {
23793 return buf.readUInt16BE(i * indexSize)
23799 var foundIndex = -
1
23800 for (i = byteOffset; i < arrLength; i++) {
23801 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23802 if (foundIndex === -
1) foundIndex = i
23803 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23805 if (foundIndex !== -
1) i -= i - foundIndex
23810 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23811 for (i = byteOffset; i
>=
0; i--) {
23813 for (var j =
0; j < valLength; j++) {
23814 if (read(arr, i + j) !== read(val, j)) {
23819 if (found) return i
23826 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23827 return this.indexOf(val, byteOffset, encoding) !== -
1
23830 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23831 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23834 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23835 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23838 function hexWrite (buf, string, offset, length) {
23839 offset = Number(offset) ||
0
23840 var remaining = buf.length - offset
23844 length = Number(length)
23845 if (length
> remaining) {
23850 // must be an even number of digits
23851 var strLen = string.length
23852 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23854 if (length
> strLen /
2) {
23855 length = strLen /
2
23857 for (var i =
0; i < length; ++i) {
23858 var parsed = parseInt(string.substr(i *
2,
2),
16)
23859 if (isNaN(parsed)) return i
23860 buf[offset + i] = parsed
23865 function utf8Write (buf, string, offset, length) {
23866 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23869 function asciiWrite (buf, string, offset, length) {
23870 return blitBuffer(asciiToBytes(string), buf, offset, length)
23873 function latin1Write (buf, string, offset, length) {
23874 return asciiWrite(buf, string, offset, length)
23877 function base64Write (buf, string, offset, length) {
23878 return blitBuffer(base64ToBytes(string), buf, offset, length)
23881 function ucs2Write (buf, string, offset, length) {
23882 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23885 Buffer.prototype.write = function write (string, offset, length, encoding) {
23886 // Buffer#write(string)
23887 if (offset === undefined) {
23889 length = this.length
23891 // Buffer#write(string, encoding)
23892 } else if (length === undefined && typeof offset === 'string') {
23894 length = this.length
23896 // Buffer#write(string, offset[, length][, encoding])
23897 } else if (isFinite(offset)) {
23898 offset = offset
>>> 0
23899 if (isFinite(length)) {
23900 length = length
>>> 0
23901 if (encoding === undefined) encoding = 'utf8'
23908 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23912 var remaining = this.length - offset
23913 if (length === undefined || length
> remaining) length = remaining
23915 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23916 throw new RangeError('Attempt to write outside buffer bounds')
23919 if (!encoding) encoding = 'utf8'
23921 var loweredCase = false
23923 switch (encoding) {
23925 return hexWrite(this, string, offset, length)
23929 return utf8Write(this, string, offset, length)
23932 return asciiWrite(this, string, offset, length)
23936 return latin1Write(this, string, offset, length)
23939 // Warning: maxLength not taken into account in base64Write
23940 return base64Write(this, string, offset, length)
23946 return ucs2Write(this, string, offset, length)
23949 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23950 encoding = ('' + encoding).toLowerCase()
23956 Buffer.prototype.toJSON = function toJSON () {
23959 data: Array.prototype.slice.call(this._arr || this,
0)
23963 function base64Slice (buf, start, end) {
23964 if (start ===
0 && end === buf.length) {
23965 return base64.fromByteArray(buf)
23967 return base64.fromByteArray(buf.slice(start, end))
23971 function utf8Slice (buf, start, end) {
23972 end = Math.min(buf.length, end)
23977 var firstByte = buf[i]
23978 var codePoint = null
23979 var bytesPerSequence = (firstByte
> 0xEF) ?
4
23980 : (firstByte
> 0xDF) ?
3
23981 : (firstByte
> 0xBF) ?
2
23984 if (i + bytesPerSequence <= end) {
23985 var secondByte, thirdByte, fourthByte, tempCodePoint
23987 switch (bytesPerSequence) {
23989 if (firstByte <
0x80) {
23990 codePoint = firstByte
23994 secondByte = buf[i +
1]
23995 if ((secondByte &
0xC0) ===
0x80) {
23996 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
23997 if (tempCodePoint
> 0x7F) {
23998 codePoint = tempCodePoint
24003 secondByte = buf[i +
1]
24004 thirdByte = buf[i +
2]
24005 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24006 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24007 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24008 codePoint = tempCodePoint
24013 secondByte = buf[i +
1]
24014 thirdByte = buf[i +
2]
24015 fourthByte = buf[i +
3]
24016 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24017 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24018 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24019 codePoint = tempCodePoint
24025 if (codePoint === null) {
24026 // we did not generate a valid codePoint so insert a
24027 // replacement char (U+FFFD) and advance only
1 byte
24029 bytesPerSequence =
1
24030 } else if (codePoint
> 0xFFFF) {
24031 // encode to utf16 (surrogate pair dance)
24032 codePoint -=
0x10000
24033 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24034 codePoint =
0xDC00 | codePoint &
0x3FF
24037 res.push(codePoint)
24038 i += bytesPerSequence
24041 return decodeCodePointsArray(res)
24044 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24045 // the lowest limit is Chrome, with
0x10000 args.
24046 // We go
1 magnitude less, for safety
24047 var MAX_ARGUMENTS_LENGTH =
0x1000
24049 function decodeCodePointsArray (codePoints) {
24050 var len = codePoints.length
24051 if (len <= MAX_ARGUMENTS_LENGTH) {
24052 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24055 // Decode in chunks to avoid
"call stack size exceeded".
24059 res += String.fromCharCode.apply(
24061 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24067 function asciiSlice (buf, start, end) {
24069 end = Math.min(buf.length, end)
24071 for (var i = start; i < end; ++i) {
24072 ret += String.fromCharCode(buf[i] &
0x7F)
24077 function latin1Slice (buf, start, end) {
24079 end = Math.min(buf.length, end)
24081 for (var i = start; i < end; ++i) {
24082 ret += String.fromCharCode(buf[i])
24087 function hexSlice (buf, start, end) {
24088 var len = buf.length
24090 if (!start || start <
0) start =
0
24091 if (!end || end <
0 || end
> len) end = len
24094 for (var i = start; i < end; ++i) {
24095 out += toHex(buf[i])
24100 function utf16leSlice (buf, start, end) {
24101 var bytes = buf.slice(start, end)
24103 for (var i =
0; i < bytes.length; i +=
2) {
24104 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24109 Buffer.prototype.slice = function slice (start, end) {
24110 var len = this.length
24112 end = end === undefined ? len : ~~end
24116 if (start <
0) start =
0
24117 } else if (start
> len) {
24123 if (end <
0) end =
0
24124 } else if (end
> len) {
24128 if (end < start) end = start
24130 var newBuf = this.subarray(start, end)
24131 // Return an augmented `Uint8Array` instance
24132 newBuf.__proto__ = Buffer.prototype
24137 * Need to make sure that buffer isn't trying to write out of bounds.
24139 function checkOffset (offset, ext, length) {
24140 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24141 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24144 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24145 offset = offset
>>> 0
24146 byteLength = byteLength
>>> 0
24147 if (!noAssert) checkOffset(offset, byteLength, this.length)
24149 var val = this[offset]
24152 while (++i < byteLength && (mul *=
0x100)) {
24153 val += this[offset + i] * mul
24159 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24160 offset = offset
>>> 0
24161 byteLength = byteLength
>>> 0
24163 checkOffset(offset, byteLength, this.length)
24166 var val = this[offset + --byteLength]
24168 while (byteLength
> 0 && (mul *=
0x100)) {
24169 val += this[offset + --byteLength] * mul
24175 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24176 offset = offset
>>> 0
24177 if (!noAssert) checkOffset(offset,
1, this.length)
24178 return this[offset]
24181 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24182 offset = offset
>>> 0
24183 if (!noAssert) checkOffset(offset,
2, this.length)
24184 return this[offset] | (this[offset +
1] <<
8)
24187 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24188 offset = offset
>>> 0
24189 if (!noAssert) checkOffset(offset,
2, this.length)
24190 return (this[offset] <<
8) | this[offset +
1]
24193 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24194 offset = offset
>>> 0
24195 if (!noAssert) checkOffset(offset,
4, this.length)
24197 return ((this[offset]) |
24198 (this[offset +
1] <<
8) |
24199 (this[offset +
2] <<
16)) +
24200 (this[offset +
3] *
0x1000000)
24203 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24204 offset = offset
>>> 0
24205 if (!noAssert) checkOffset(offset,
4, this.length)
24207 return (this[offset] *
0x1000000) +
24208 ((this[offset +
1] <<
16) |
24209 (this[offset +
2] <<
8) |
24213 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24214 offset = offset
>>> 0
24215 byteLength = byteLength
>>> 0
24216 if (!noAssert) checkOffset(offset, byteLength, this.length)
24218 var val = this[offset]
24221 while (++i < byteLength && (mul *=
0x100)) {
24222 val += this[offset + i] * mul
24226 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24231 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24232 offset = offset
>>> 0
24233 byteLength = byteLength
>>> 0
24234 if (!noAssert) checkOffset(offset, byteLength, this.length)
24238 var val = this[offset + --i]
24239 while (i
> 0 && (mul *=
0x100)) {
24240 val += this[offset + --i] * mul
24244 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24249 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24250 offset = offset
>>> 0
24251 if (!noAssert) checkOffset(offset,
1, this.length)
24252 if (!(this[offset] &
0x80)) return (this[offset])
24253 return ((
0xff - this[offset] +
1) * -
1)
24256 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24257 offset = offset
>>> 0
24258 if (!noAssert) checkOffset(offset,
2, this.length)
24259 var val = this[offset] | (this[offset +
1] <<
8)
24260 return (val &
0x8000) ? val |
0xFFFF0000 : val
24263 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24264 offset = offset
>>> 0
24265 if (!noAssert) checkOffset(offset,
2, this.length)
24266 var val = this[offset +
1] | (this[offset] <<
8)
24267 return (val &
0x8000) ? val |
0xFFFF0000 : val
24270 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24271 offset = offset
>>> 0
24272 if (!noAssert) checkOffset(offset,
4, this.length)
24274 return (this[offset]) |
24275 (this[offset +
1] <<
8) |
24276 (this[offset +
2] <<
16) |
24277 (this[offset +
3] <<
24)
24280 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24281 offset = offset
>>> 0
24282 if (!noAssert) checkOffset(offset,
4, this.length)
24284 return (this[offset] <<
24) |
24285 (this[offset +
1] <<
16) |
24286 (this[offset +
2] <<
8) |
24290 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24291 offset = offset
>>> 0
24292 if (!noAssert) checkOffset(offset,
4, this.length)
24293 return ieee754.read(this, offset, true,
23,
4)
24296 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24297 offset = offset
>>> 0
24298 if (!noAssert) checkOffset(offset,
4, this.length)
24299 return ieee754.read(this, offset, false,
23,
4)
24302 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24303 offset = offset
>>> 0
24304 if (!noAssert) checkOffset(offset,
8, this.length)
24305 return ieee754.read(this, offset, true,
52,
8)
24308 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24309 offset = offset
>>> 0
24310 if (!noAssert) checkOffset(offset,
8, this.length)
24311 return ieee754.read(this, offset, false,
52,
8)
24314 function checkInt (buf, value, offset, ext, max, min) {
24315 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24316 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24317 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24320 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24322 offset = offset
>>> 0
24323 byteLength = byteLength
>>> 0
24325 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24326 checkInt(this, value, offset, byteLength, maxBytes,
0)
24331 this[offset] = value &
0xFF
24332 while (++i < byteLength && (mul *=
0x100)) {
24333 this[offset + i] = (value / mul) &
0xFF
24336 return offset + byteLength
24339 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24341 offset = offset
>>> 0
24342 byteLength = byteLength
>>> 0
24344 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24345 checkInt(this, value, offset, byteLength, maxBytes,
0)
24348 var i = byteLength -
1
24350 this[offset + i] = value &
0xFF
24351 while (--i
>=
0 && (mul *=
0x100)) {
24352 this[offset + i] = (value / mul) &
0xFF
24355 return offset + byteLength
24358 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24360 offset = offset
>>> 0
24361 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24362 this[offset] = (value &
0xff)
24366 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24368 offset = offset
>>> 0
24369 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24370 this[offset] = (value &
0xff)
24371 this[offset +
1] = (value
>>> 8)
24375 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24377 offset = offset
>>> 0
24378 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24379 this[offset] = (value
>>> 8)
24380 this[offset +
1] = (value &
0xff)
24384 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24386 offset = offset
>>> 0
24387 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24388 this[offset +
3] = (value
>>> 24)
24389 this[offset +
2] = (value
>>> 16)
24390 this[offset +
1] = (value
>>> 8)
24391 this[offset] = (value &
0xff)
24395 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24397 offset = offset
>>> 0
24398 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24399 this[offset] = (value
>>> 24)
24400 this[offset +
1] = (value
>>> 16)
24401 this[offset +
2] = (value
>>> 8)
24402 this[offset +
3] = (value &
0xff)
24406 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24408 offset = offset
>>> 0
24410 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24412 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24418 this[offset] = value &
0xFF
24419 while (++i < byteLength && (mul *=
0x100)) {
24420 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24423 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24426 return offset + byteLength
24429 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24431 offset = offset
>>> 0
24433 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24435 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24438 var i = byteLength -
1
24441 this[offset + i] = value &
0xFF
24442 while (--i
>=
0 && (mul *=
0x100)) {
24443 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24446 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24449 return offset + byteLength
24452 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24454 offset = offset
>>> 0
24455 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24456 if (value <
0) value =
0xff + value +
1
24457 this[offset] = (value &
0xff)
24461 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24463 offset = offset
>>> 0
24464 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24465 this[offset] = (value &
0xff)
24466 this[offset +
1] = (value
>>> 8)
24470 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24472 offset = offset
>>> 0
24473 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24474 this[offset] = (value
>>> 8)
24475 this[offset +
1] = (value &
0xff)
24479 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24481 offset = offset
>>> 0
24482 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24483 this[offset] = (value &
0xff)
24484 this[offset +
1] = (value
>>> 8)
24485 this[offset +
2] = (value
>>> 16)
24486 this[offset +
3] = (value
>>> 24)
24490 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24492 offset = offset
>>> 0
24493 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24494 if (value <
0) value =
0xffffffff + value +
1
24495 this[offset] = (value
>>> 24)
24496 this[offset +
1] = (value
>>> 16)
24497 this[offset +
2] = (value
>>> 8)
24498 this[offset +
3] = (value &
0xff)
24502 function checkIEEE754 (buf, value, offset, ext, max, min) {
24503 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24504 if (offset <
0) throw new RangeError('Index out of range')
24507 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24509 offset = offset
>>> 0
24511 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24513 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24517 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24518 return writeFloat(this, value, offset, true, noAssert)
24521 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24522 return writeFloat(this, value, offset, false, noAssert)
24525 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24527 offset = offset
>>> 0
24529 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24531 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24535 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24536 return writeDouble(this, value, offset, true, noAssert)
24539 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24540 return writeDouble(this, value, offset, false, noAssert)
24543 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24544 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24545 if (!start) start =
0
24546 if (!end && end !==
0) end = this.length
24547 if (targetStart
>= target.length) targetStart = target.length
24548 if (!targetStart) targetStart =
0
24549 if (end
> 0 && end < start) end = start
24551 // Copy
0 bytes; we're done
24552 if (end === start) return
0
24553 if (target.length ===
0 || this.length ===
0) return
0
24555 // Fatal error conditions
24556 if (targetStart <
0) {
24557 throw new RangeError('targetStart out of bounds')
24559 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24560 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24563 if (end
> this.length) end = this.length
24564 if (target.length - targetStart < end - start) {
24565 end = target.length - targetStart + start
24568 var len = end - start
24571 if (this === target && start < targetStart && targetStart < end) {
24572 // descending copy from end
24573 for (i = len -
1; i
>=
0; --i) {
24574 target[i + targetStart] = this[i + start]
24576 } else if (len <
1000) {
24577 // ascending copy from start
24578 for (i =
0; i < len; ++i) {
24579 target[i + targetStart] = this[i + start]
24582 Uint8Array.prototype.set.call(
24584 this.subarray(start, start + len),
24593 // buffer.fill(number[, offset[, end]])
24594 // buffer.fill(buffer[, offset[, end]])
24595 // buffer.fill(string[, offset[, end]][, encoding])
24596 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24597 // Handle string cases:
24598 if (typeof val === 'string') {
24599 if (typeof start === 'string') {
24603 } else if (typeof end === 'string') {
24607 if (val.length ===
1) {
24608 var code = val.charCodeAt(
0)
24613 if (encoding !== undefined && typeof encoding !== 'string') {
24614 throw new TypeError('encoding must be a string')
24616 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24617 throw new TypeError('Unknown encoding: ' + encoding)
24619 } else if (typeof val === 'number') {
24623 // Invalid ranges are not set to a default, so can range check early.
24624 if (start <
0 || this.length < start || this.length < end) {
24625 throw new RangeError('Out of range index')
24628 if (end <= start) {
24632 start = start
>>> 0
24633 end = end === undefined ? this.length : end
>>> 0
24638 if (typeof val === 'number') {
24639 for (i = start; i < end; ++i) {
24643 var bytes = Buffer.isBuffer(val)
24645 : new Buffer(val, encoding)
24646 var len = bytes.length
24647 for (i =
0; i < end - start; ++i) {
24648 this[i + start] = bytes[i % len]
24655 // HELPER FUNCTIONS
24656 // ================
24658 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24660 function base64clean (str) {
24661 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24662 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24663 // Node converts strings with length <
2 to ''
24664 if (str.length <
2) return ''
24665 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24666 while (str.length %
4 !==
0) {
24672 function stringtrim (str) {
24673 if (str.trim) return str.trim()
24674 return str.replace(/^\s+|\s+$/g, '')
24677 function toHex (n) {
24678 if (n <
16) return '
0' + n.toString(
16)
24679 return n.toString(
16)
24682 function utf8ToBytes (string, units) {
24683 units = units || Infinity
24685 var length = string.length
24686 var leadSurrogate = null
24689 for (var i =
0; i < length; ++i) {
24690 codePoint = string.charCodeAt(i)
24692 // is surrogate component
24693 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24694 // last char was a lead
24695 if (!leadSurrogate) {
24697 if (codePoint
> 0xDBFF) {
24698 // unexpected trail
24699 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24701 } else if (i +
1 === length) {
24703 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24708 leadSurrogate = codePoint
24713 //
2 leads in a row
24714 if (codePoint <
0xDC00) {
24715 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24716 leadSurrogate = codePoint
24720 // valid surrogate pair
24721 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24722 } else if (leadSurrogate) {
24723 // valid bmp char, but last char was a lead
24724 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24727 leadSurrogate = null
24730 if (codePoint <
0x80) {
24731 if ((units -=
1) <
0) break
24732 bytes.push(codePoint)
24733 } else if (codePoint <
0x800) {
24734 if ((units -=
2) <
0) break
24736 codePoint
>> 0x6 |
0xC0,
24737 codePoint &
0x3F |
0x80
24739 } else if (codePoint <
0x10000) {
24740 if ((units -=
3) <
0) break
24742 codePoint
>> 0xC |
0xE0,
24743 codePoint
>> 0x6 &
0x3F |
0x80,
24744 codePoint &
0x3F |
0x80
24746 } else if (codePoint <
0x110000) {
24747 if ((units -=
4) <
0) break
24749 codePoint
>> 0x12 |
0xF0,
24750 codePoint
>> 0xC &
0x3F |
0x80,
24751 codePoint
>> 0x6 &
0x3F |
0x80,
24752 codePoint &
0x3F |
0x80
24755 throw new Error('Invalid code point')
24762 function asciiToBytes (str) {
24764 for (var i =
0; i < str.length; ++i) {
24765 // Node's code seems to be doing this and not &
0x7F..
24766 byteArray.push(str.charCodeAt(i) &
0xFF)
24771 function utf16leToBytes (str, units) {
24774 for (var i =
0; i < str.length; ++i) {
24775 if ((units -=
2) <
0) break
24777 c = str.charCodeAt(i)
24787 function base64ToBytes (str) {
24788 return base64.toByteArray(base64clean(str))
24791 function blitBuffer (src, dst, offset, length) {
24792 for (var i =
0; i < length; ++i) {
24793 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24794 dst[i + offset] = src[i]
24799 function isnan (val) {
24800 return val !== val // eslint-disable-line no-self-compare
24803 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24804 (function (Buffer){
24805 // Copyright Joyent, Inc. and other Node contributors.
24807 // Permission is hereby granted, free of charge, to any person obtaining a
24808 // copy of this software and associated documentation files (the
24809 // "Software"), to deal in the Software without restriction, including
24810 // without limitation the rights to use, copy, modify, merge, publish,
24811 // distribute, sublicense, and/or sell copies of the Software, and to permit
24812 // persons to whom the Software is furnished to do so, subject to the
24813 // following conditions:
24815 // The above copyright notice and this permission notice shall be included
24816 // in all copies or substantial portions of the Software.
24818 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24819 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24820 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24821 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24822 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24823 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24824 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24826 // NOTE: These type checking functions intentionally don't use `instanceof`
24827 // because it is fragile and can be easily faked with `Object.create()`.
24829 function isArray(arg) {
24830 if (Array.isArray) {
24831 return Array.isArray(arg);
24833 return objectToString(arg) === '[object Array]';
24835 exports.isArray = isArray;
24837 function isBoolean(arg) {
24838 return typeof arg === 'boolean';
24840 exports.isBoolean = isBoolean;
24842 function isNull(arg) {
24843 return arg === null;
24845 exports.isNull = isNull;
24847 function isNullOrUndefined(arg) {
24848 return arg == null;
24850 exports.isNullOrUndefined = isNullOrUndefined;
24852 function isNumber(arg) {
24853 return typeof arg === 'number';
24855 exports.isNumber = isNumber;
24857 function isString(arg) {
24858 return typeof arg === 'string';
24860 exports.isString = isString;
24862 function isSymbol(arg) {
24863 return typeof arg === 'symbol';
24865 exports.isSymbol = isSymbol;
24867 function isUndefined(arg) {
24868 return arg === void
0;
24870 exports.isUndefined = isUndefined;
24872 function isRegExp(re) {
24873 return objectToString(re) === '[object RegExp]';
24875 exports.isRegExp = isRegExp;
24877 function isObject(arg) {
24878 return typeof arg === 'object' && arg !== null;
24880 exports.isObject = isObject;
24882 function isDate(d) {
24883 return objectToString(d) === '[object Date]';
24885 exports.isDate = isDate;
24887 function isError(e) {
24888 return (objectToString(e) === '[object Error]' || e instanceof Error);
24890 exports.isError = isError;
24892 function isFunction(arg) {
24893 return typeof arg === 'function';
24895 exports.isFunction = isFunction;
24897 function isPrimitive(arg) {
24898 return arg === null ||
24899 typeof arg === 'boolean' ||
24900 typeof arg === 'number' ||
24901 typeof arg === 'string' ||
24902 typeof arg === 'symbol' || // ES6 symbol
24903 typeof arg === 'undefined';
24905 exports.isPrimitive = isPrimitive;
24907 exports.isBuffer = Buffer.isBuffer;
24909 function objectToString(o) {
24910 return Object.prototype.toString.call(o);
24913 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24914 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24915 // Copyright Joyent, Inc. and other Node contributors.
24917 // Permission is hereby granted, free of charge, to any person obtaining a
24918 // copy of this software and associated documentation files (the
24919 // "Software"), to deal in the Software without restriction, including
24920 // without limitation the rights to use, copy, modify, merge, publish,
24921 // distribute, sublicense, and/or sell copies of the Software, and to permit
24922 // persons to whom the Software is furnished to do so, subject to the
24923 // following conditions:
24925 // The above copyright notice and this permission notice shall be included
24926 // in all copies or substantial portions of the Software.
24928 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24929 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24930 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24931 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24932 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24933 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24934 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24936 function EventEmitter() {
24937 this._events = this._events || {};
24938 this._maxListeners = this._maxListeners || undefined;
24940 module.exports = EventEmitter;
24942 // Backwards-compat with node
0.10.x
24943 EventEmitter.EventEmitter = EventEmitter;
24945 EventEmitter.prototype._events = undefined;
24946 EventEmitter.prototype._maxListeners = undefined;
24948 // By default EventEmitters will print a warning if more than
10 listeners are
24949 // added to it. This is a useful default which helps finding memory leaks.
24950 EventEmitter.defaultMaxListeners =
10;
24952 // Obviously not all Emitters should be limited to
10. This function allows
24953 // that to be increased. Set to zero for unlimited.
24954 EventEmitter.prototype.setMaxListeners = function(n) {
24955 if (!isNumber(n) || n <
0 || isNaN(n))
24956 throw TypeError('n must be a positive number');
24957 this._maxListeners = n;
24961 EventEmitter.prototype.emit = function(type) {
24962 var er, handler, len, args, i, listeners;
24967 // If there is no 'error' event listener then throw.
24968 if (type === 'error') {
24969 if (!this._events.error ||
24970 (isObject(this._events.error) && !this._events.error.length)) {
24972 if (er instanceof Error) {
24973 throw er; // Unhandled 'error' event
24975 // At least give some kind of context to the user
24976 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
24983 handler = this._events[type];
24985 if (isUndefined(handler))
24988 if (isFunction(handler)) {
24989 switch (arguments.length) {
24992 handler.call(this);
24995 handler.call(this, arguments[
1]);
24998 handler.call(this, arguments[
1], arguments[
2]);
25002 args = Array.prototype.slice.call(arguments,
1);
25003 handler.apply(this, args);
25005 } else if (isObject(handler)) {
25006 args = Array.prototype.slice.call(arguments,
1);
25007 listeners = handler.slice();
25008 len = listeners.length;
25009 for (i =
0; i < len; i++)
25010 listeners[i].apply(this, args);
25016 EventEmitter.prototype.addListener = function(type, listener) {
25019 if (!isFunction(listener))
25020 throw TypeError('listener must be a function');
25025 // To avoid recursion in the case that type === "newListener"! Before
25026 // adding it to the listeners, first emit "newListener".
25027 if (this._events.newListener)
25028 this.emit('newListener', type,
25029 isFunction(listener.listener) ?
25030 listener.listener : listener);
25032 if (!this._events[type])
25033 // Optimize the case of one listener. Don't need the extra array object.
25034 this._events[type] = listener;
25035 else if (isObject(this._events[type]))
25036 // If we've already got an array, just append.
25037 this._events[type].push(listener);
25039 // Adding the second element, need to change to array.
25040 this._events[type] = [this._events[type], listener];
25042 // Check for listener leak
25043 if (isObject(this._events[type]) && !this._events[type].warned) {
25044 if (!isUndefined(this._maxListeners)) {
25045 m = this._maxListeners;
25047 m = EventEmitter.defaultMaxListeners;
25050 if (m && m
> 0 && this._events[type].length
> m) {
25051 this._events[type].warned = true;
25052 console.error('(node) warning: possible EventEmitter memory ' +
25053 'leak detected. %d listeners added. ' +
25054 'Use emitter.setMaxListeners() to increase limit.',
25055 this._events[type].length);
25056 if (typeof console.trace === 'function') {
25057 // not supported in IE
10
25066 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25068 EventEmitter.prototype.once = function(type, listener) {
25069 if (!isFunction(listener))
25070 throw TypeError('listener must be a function');
25075 this.removeListener(type, g);
25079 listener.apply(this, arguments);
25083 g.listener = listener;
25089 // emits a 'removeListener' event iff the listener was removed
25090 EventEmitter.prototype.removeListener = function(type, listener) {
25091 var list, position, length, i;
25093 if (!isFunction(listener))
25094 throw TypeError('listener must be a function');
25096 if (!this._events || !this._events[type])
25099 list = this._events[type];
25100 length = list.length;
25103 if (list === listener ||
25104 (isFunction(list.listener) && list.listener === listener)) {
25105 delete this._events[type];
25106 if (this._events.removeListener)
25107 this.emit('removeListener', type, listener);
25109 } else if (isObject(list)) {
25110 for (i = length; i--
> 0;) {
25111 if (list[i] === listener ||
25112 (list[i].listener && list[i].listener === listener)) {
25121 if (list.length ===
1) {
25123 delete this._events[type];
25125 list.splice(position,
1);
25128 if (this._events.removeListener)
25129 this.emit('removeListener', type, listener);
25135 EventEmitter.prototype.removeAllListeners = function(type) {
25136 var key, listeners;
25141 // not listening for removeListener, no need to emit
25142 if (!this._events.removeListener) {
25143 if (arguments.length ===
0)
25145 else if (this._events[type])
25146 delete this._events[type];
25150 // emit removeListener for all listeners on all events
25151 if (arguments.length ===
0) {
25152 for (key in this._events) {
25153 if (key === 'removeListener') continue;
25154 this.removeAllListeners(key);
25156 this.removeAllListeners('removeListener');
25161 listeners = this._events[type];
25163 if (isFunction(listeners)) {
25164 this.removeListener(type, listeners);
25165 } else if (listeners) {
25167 while (listeners.length)
25168 this.removeListener(type, listeners[listeners.length -
1]);
25170 delete this._events[type];
25175 EventEmitter.prototype.listeners = function(type) {
25177 if (!this._events || !this._events[type])
25179 else if (isFunction(this._events[type]))
25180 ret = [this._events[type]];
25182 ret = this._events[type].slice();
25186 EventEmitter.prototype.listenerCount = function(type) {
25187 if (this._events) {
25188 var evlistener = this._events[type];
25190 if (isFunction(evlistener))
25192 else if (evlistener)
25193 return evlistener.length;
25198 EventEmitter.listenerCount = function(emitter, type) {
25199 return emitter.listenerCount(type);
25202 function isFunction(arg) {
25203 return typeof arg === 'function';
25206 function isNumber(arg) {
25207 return typeof arg === 'number';
25210 function isObject(arg) {
25211 return typeof arg === 'object' && arg !== null;
25214 function isUndefined(arg) {
25215 return arg === void
0;
25218 },{}],
8:[function(require,module,exports){
25219 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25221 var eLen = nBytes *
8 - mLen -
1
25222 var eMax = (
1 << eLen) -
1
25223 var eBias = eMax
>> 1
25225 var i = isLE ? (nBytes -
1) :
0
25226 var d = isLE ? -
1 :
1
25227 var s = buffer[offset + i]
25231 e = s & ((
1 << (-nBits)) -
1)
25234 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25236 m = e & ((
1 << (-nBits)) -
1)
25239 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25243 } else if (e === eMax) {
25244 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25246 m = m + Math.pow(
2, mLen)
25249 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25252 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25254 var eLen = nBytes *
8 - mLen -
1
25255 var eMax = (
1 << eLen) -
1
25256 var eBias = eMax
>> 1
25257 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25258 var i = isLE ?
0 : (nBytes -
1)
25259 var d = isLE ?
1 : -
1
25260 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25262 value = Math.abs(value)
25264 if (isNaN(value) || value === Infinity) {
25265 m = isNaN(value) ?
1 :
0
25268 e = Math.floor(Math.log(value) / Math.LN2)
25269 if (value * (c = Math.pow(
2, -e)) <
1) {
25273 if (e + eBias
>=
1) {
25276 value += rt * Math.pow(
2,
1 - eBias)
25278 if (value * c
>=
2) {
25283 if (e + eBias
>= eMax) {
25286 } else if (e + eBias
>=
1) {
25287 m = (value * c -
1) * Math.pow(
2, mLen)
25290 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25295 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25297 e = (e << mLen) | m
25299 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25301 buffer[offset + i - d] |= s *
128
25304 },{}],
9:[function(require,module,exports){
25305 if (typeof Object.create === 'function') {
25306 // implementation from standard node.js 'util' module
25307 module.exports = function inherits(ctor, superCtor) {
25308 ctor.super_ = superCtor
25309 ctor.prototype = Object.create(superCtor.prototype, {
25319 // old school shim for old browsers
25320 module.exports = function inherits(ctor, superCtor) {
25321 ctor.super_ = superCtor
25322 var TempCtor = function () {}
25323 TempCtor.prototype = superCtor.prototype
25324 ctor.prototype = new TempCtor()
25325 ctor.prototype.constructor = ctor
25329 },{}],
10:[function(require,module,exports){
25331 * Determine if an object is a Buffer
25333 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25337 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25338 // Object.prototype.constructor. Remove this eventually
25339 module.exports = function (obj) {
25340 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25343 function isBuffer (obj) {
25344 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25347 // For Node v0.10 support. Remove this eventually.
25348 function isSlowBuffer (obj) {
25349 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25352 },{}],
11:[function(require,module,exports){
25353 var toString = {}.toString;
25355 module.exports = Array.isArray || function (arr) {
25356 return toString.call(arr) == '[object Array]';
25359 },{}],
12:[function(require,module,exports){
25360 (function (process){
25363 if (!process.version ||
25364 process.version.indexOf('v0.') ===
0 ||
25365 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25366 module.exports = nextTick;
25368 module.exports = process.nextTick;
25371 function nextTick(fn, arg1, arg2, arg3) {
25372 if (typeof fn !== 'function') {
25373 throw new TypeError('"callback" argument must be a function');
25375 var len = arguments.length;
25380 return process.nextTick(fn);
25382 return process.nextTick(function afterTickOne() {
25383 fn.call(null, arg1);
25386 return process.nextTick(function afterTickTwo() {
25387 fn.call(null, arg1, arg2);
25390 return process.nextTick(function afterTickThree() {
25391 fn.call(null, arg1, arg2, arg3);
25394 args = new Array(len -
1);
25396 while (i < args.length) {
25397 args[i++] = arguments[i];
25399 return process.nextTick(function afterTick() {
25400 fn.apply(null, args);
25405 }).call(this,require('_process'))
25406 },{"_process":
13}],
13:[function(require,module,exports){
25407 // shim for using process in browser
25408 var process = module.exports = {};
25410 // cached from whatever global is present so that test runners that stub it
25411 // don't break things. But we need to wrap it in a try catch in case it is
25412 // wrapped in strict mode code which doesn't define any globals. It's inside a
25413 // function because try/catches deoptimize in certain engines.
25415 var cachedSetTimeout;
25416 var cachedClearTimeout;
25418 function defaultSetTimout() {
25419 throw new Error('setTimeout has not been defined');
25421 function defaultClearTimeout () {
25422 throw new Error('clearTimeout has not been defined');
25426 if (typeof setTimeout === 'function') {
25427 cachedSetTimeout = setTimeout;
25429 cachedSetTimeout = defaultSetTimout;
25432 cachedSetTimeout = defaultSetTimout;
25435 if (typeof clearTimeout === 'function') {
25436 cachedClearTimeout = clearTimeout;
25438 cachedClearTimeout = defaultClearTimeout;
25441 cachedClearTimeout = defaultClearTimeout;
25444 function runTimeout(fun) {
25445 if (cachedSetTimeout === setTimeout) {
25446 //normal enviroments in sane situations
25447 return setTimeout(fun,
0);
25449 // if setTimeout wasn't available but was latter defined
25450 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25451 cachedSetTimeout = setTimeout;
25452 return setTimeout(fun,
0);
25455 // when when somebody has screwed with setTimeout but no I.E. maddness
25456 return cachedSetTimeout(fun,
0);
25459 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25460 return cachedSetTimeout.call(null, fun,
0);
25462 // 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
25463 return cachedSetTimeout.call(this, fun,
0);
25469 function runClearTimeout(marker) {
25470 if (cachedClearTimeout === clearTimeout) {
25471 //normal enviroments in sane situations
25472 return clearTimeout(marker);
25474 // if clearTimeout wasn't available but was latter defined
25475 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25476 cachedClearTimeout = clearTimeout;
25477 return clearTimeout(marker);
25480 // when when somebody has screwed with setTimeout but no I.E. maddness
25481 return cachedClearTimeout(marker);
25484 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25485 return cachedClearTimeout.call(null, marker);
25487 // 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.
25488 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25489 return cachedClearTimeout.call(this, marker);
25497 var draining = false;
25499 var queueIndex = -
1;
25501 function cleanUpNextTick() {
25502 if (!draining || !currentQueue) {
25506 if (currentQueue.length) {
25507 queue = currentQueue.concat(queue);
25511 if (queue.length) {
25516 function drainQueue() {
25520 var timeout = runTimeout(cleanUpNextTick);
25523 var len = queue.length;
25525 currentQueue = queue;
25527 while (++queueIndex < len) {
25528 if (currentQueue) {
25529 currentQueue[queueIndex].run();
25533 len = queue.length;
25535 currentQueue = null;
25537 runClearTimeout(timeout);
25540 process.nextTick = function (fun) {
25541 var args = new Array(arguments.length -
1);
25542 if (arguments.length
> 1) {
25543 for (var i =
1; i < arguments.length; i++) {
25544 args[i -
1] = arguments[i];
25547 queue.push(new Item(fun, args));
25548 if (queue.length ===
1 && !draining) {
25549 runTimeout(drainQueue);
25553 // v8 likes predictible objects
25554 function Item(fun, array) {
25556 this.array = array;
25558 Item.prototype.run = function () {
25559 this.fun.apply(null, this.array);
25561 process.title = 'browser';
25562 process.browser = true;
25565 process.version = ''; // empty string to avoid regexp issues
25566 process.versions = {};
25571 process.addListener = noop;
25572 process.once = noop;
25573 process.off = noop;
25574 process.removeListener = noop;
25575 process.removeAllListeners = noop;
25576 process.emit = noop;
25578 process.binding = function (name) {
25579 throw new Error('process.binding is not supported');
25582 process.cwd = function () { return '/' };
25583 process.chdir = function (dir) {
25584 throw new Error('process.chdir is not supported');
25586 process.umask = function() { return
0; };
25588 },{}],
14:[function(require,module,exports){
25589 module.exports = require(
"./lib/_stream_duplex.js")
25591 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25592 // a duplex stream is just a stream that is both readable and writable.
25593 // Since JS doesn't have multiple prototypal inheritance, this class
25594 // prototypally inherits from Readable, and then parasitically from
25601 var objectKeys = Object.keys || function (obj) {
25603 for (var key in obj) {
25609 module.exports = Duplex;
25612 var processNextTick = require('process-nextick-args');
25616 var util = require('core-util-is');
25617 util.inherits = require('inherits');
25620 var Readable = require('./_stream_readable');
25621 var Writable = require('./_stream_writable');
25623 util.inherits(Duplex, Readable);
25625 var keys = objectKeys(Writable.prototype);
25626 for (var v =
0; v < keys.length; v++) {
25627 var method = keys[v];
25628 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25631 function Duplex(options) {
25632 if (!(this instanceof Duplex)) return new Duplex(options);
25634 Readable.call(this, options);
25635 Writable.call(this, options);
25637 if (options && options.readable === false) this.readable = false;
25639 if (options && options.writable === false) this.writable = false;
25641 this.allowHalfOpen = true;
25642 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25644 this.once('end', onend);
25647 // the no-half-open enforcer
25649 // if we allow half-open state, or if the writable side ended,
25651 if (this.allowHalfOpen || this._writableState.ended) return;
25653 // no more data can be written.
25654 // But allow more writes to happen in this tick.
25655 processNextTick(onEndNT, this);
25658 function onEndNT(self) {
25662 function forEach(xs, f) {
25663 for (var i =
0, l = xs.length; i < l; i++) {
25667 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25668 // a passthrough stream.
25669 // basically just the most minimal sort of Transform stream.
25670 // Every written chunk gets output as-is.
25674 module.exports = PassThrough;
25676 var Transform = require('./_stream_transform');
25679 var util = require('core-util-is');
25680 util.inherits = require('inherits');
25683 util.inherits(PassThrough, Transform);
25685 function PassThrough(options) {
25686 if (!(this instanceof PassThrough)) return new PassThrough(options);
25688 Transform.call(this, options);
25691 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25694 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25695 (function (process){
25698 module.exports = Readable;
25701 var processNextTick = require('process-nextick-args');
25705 var isArray = require('isarray');
25712 Readable.ReadableState = ReadableState;
25715 var EE = require('events').EventEmitter;
25717 var EElistenerCount = function (emitter, type) {
25718 return emitter.listeners(type).length;
25726 Stream = require('st' + 'ream');
25727 } catch (_) {} finally {
25728 if (!Stream) Stream = require('events').EventEmitter;
25733 var Buffer = require('buffer').Buffer;
25735 var bufferShim = require('buffer-shims');
25739 var util = require('core-util-is');
25740 util.inherits = require('inherits');
25744 var debugUtil = require('util');
25745 var debug = void
0;
25746 if (debugUtil && debugUtil.debuglog) {
25747 debug = debugUtil.debuglog('stream');
25749 debug = function () {};
25753 var BufferList = require('./internal/streams/BufferList');
25756 util.inherits(Readable, Stream);
25758 function prependListener(emitter, event, fn) {
25759 // Sadly this is not cacheable as some libraries bundle their own
25760 // event emitter implementation with them.
25761 if (typeof emitter.prependListener === 'function') {
25762 return emitter.prependListener(event, fn);
25764 // This is a hack to make sure that our error handler is attached before any
25765 // userland ones. NEVER DO THIS. This is here only because this code needs
25766 // to continue to work with older versions of Node.js that do not include
25767 // the prependListener() method. The goal is to eventually remove this hack.
25768 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]];
25772 function ReadableState(options, stream) {
25773 Duplex = Duplex || require('./_stream_duplex');
25775 options = options || {};
25777 // object stream flag. Used to make read(n) ignore n and to
25778 // make all the buffer merging and length checks go away
25779 this.objectMode = !!options.objectMode;
25781 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25783 // the point at which it stops calling _read() to fill the buffer
25784 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25785 var hwm = options.highWaterMark;
25786 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25787 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25790 this.highWaterMark = ~ ~this.highWaterMark;
25792 // A linked list is used to store data chunks instead of an array because the
25793 // linked list can remove elements from the beginning faster than
25795 this.buffer = new BufferList();
25798 this.pipesCount =
0;
25799 this.flowing = null;
25800 this.ended = false;
25801 this.endEmitted = false;
25802 this.reading = false;
25804 // a flag to be able to tell if the onwrite cb is called immediately,
25805 // or on a later tick. We set this to true at first, because any
25806 // actions that shouldn't happen until "later" should generally also
25807 // not happen before the first write call.
25810 // whenever we return null, then we set a flag to say
25811 // that we're awaiting a 'readable' event emission.
25812 this.needReadable = false;
25813 this.emittedReadable = false;
25814 this.readableListening = false;
25815 this.resumeScheduled = false;
25817 // Crypto is kind of old and crusty. Historically, its default string
25818 // encoding is 'binary' so we have to make this configurable.
25819 // Everything else in the universe uses 'utf8', though.
25820 this.defaultEncoding = options.defaultEncoding || 'utf8';
25822 // when piping, we only care about 'readable' events that happen
25823 // after read()ing all the bytes and not getting any pushback.
25824 this.ranOut = false;
25826 // the number of writers that are awaiting a drain event in .pipe()s
25827 this.awaitDrain =
0;
25829 // if true, a maybeReadMore has been scheduled
25830 this.readingMore = false;
25832 this.decoder = null;
25833 this.encoding = null;
25834 if (options.encoding) {
25835 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25836 this.decoder = new StringDecoder(options.encoding);
25837 this.encoding = options.encoding;
25841 function Readable(options) {
25842 Duplex = Duplex || require('./_stream_duplex');
25844 if (!(this instanceof Readable)) return new Readable(options);
25846 this._readableState = new ReadableState(options, this);
25849 this.readable = true;
25851 if (options && typeof options.read === 'function') this._read = options.read;
25856 // Manually shove something into the read() buffer.
25857 // This returns true if the highWaterMark has not been hit yet,
25858 // similar to how Writable.write() returns true if you should
25859 // write() some more.
25860 Readable.prototype.push = function (chunk, encoding) {
25861 var state = this._readableState;
25863 if (!state.objectMode && typeof chunk === 'string') {
25864 encoding = encoding || state.defaultEncoding;
25865 if (encoding !== state.encoding) {
25866 chunk = bufferShim.from(chunk, encoding);
25871 return readableAddChunk(this, state, chunk, encoding, false);
25874 // Unshift should *always* be something directly out of read()
25875 Readable.prototype.unshift = function (chunk) {
25876 var state = this._readableState;
25877 return readableAddChunk(this, state, chunk, '', true);
25880 Readable.prototype.isPaused = function () {
25881 return this._readableState.flowing === false;
25884 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25885 var er = chunkInvalid(state, chunk);
25887 stream.emit('error', er);
25888 } else if (chunk === null) {
25889 state.reading = false;
25890 onEofChunk(stream, state);
25891 } else if (state.objectMode || chunk && chunk.length
> 0) {
25892 if (state.ended && !addToFront) {
25893 var e = new Error('stream.push() after EOF');
25894 stream.emit('error', e);
25895 } else if (state.endEmitted && addToFront) {
25896 var _e = new Error('stream.unshift() after end event');
25897 stream.emit('error', _e);
25900 if (state.decoder && !addToFront && !encoding) {
25901 chunk = state.decoder.write(chunk);
25902 skipAdd = !state.objectMode && chunk.length ===
0;
25905 if (!addToFront) state.reading = false;
25907 // Don't add to the buffer if we've decoded to an empty string chunk and
25908 // we're not in object mode
25910 // if we want the data now, just emit it.
25911 if (state.flowing && state.length ===
0 && !state.sync) {
25912 stream.emit('data', chunk);
25915 // update the buffer info.
25916 state.length += state.objectMode ?
1 : chunk.length;
25917 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25919 if (state.needReadable) emitReadable(stream);
25923 maybeReadMore(stream, state);
25925 } else if (!addToFront) {
25926 state.reading = false;
25929 return needMoreData(state);
25932 // if it's past the high water mark, we can push in some more.
25933 // Also, if we have no data yet, we can stand some
25934 // more bytes. This is to work around cases where hwm=
0,
25935 // such as the repl. Also, if the push() triggered a
25936 // readable event, and the user called read(largeNumber) such that
25937 // needReadable was set, then we ought to push more, so that another
25938 // 'readable' event will be triggered.
25939 function needMoreData(state) {
25940 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25943 // backwards compatibility.
25944 Readable.prototype.setEncoding = function (enc) {
25945 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25946 this._readableState.decoder = new StringDecoder(enc);
25947 this._readableState.encoding = enc;
25951 // Don't raise the hwm
> 8MB
25952 var MAX_HWM =
0x800000;
25953 function computeNewHighWaterMark(n) {
25954 if (n
>= MAX_HWM) {
25957 // Get the next highest power of
2 to prevent increasing hwm excessively in
25970 // This function is designed to be inlinable, so please take care when making
25971 // changes to the function body.
25972 function howMuchToRead(n, state) {
25973 if (n <=
0 || state.length ===
0 && state.ended) return
0;
25974 if (state.objectMode) return
1;
25976 // Only flow one buffer at a time
25977 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
25979 // If we're asking for more than the current hwm, then raise the hwm.
25980 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
25981 if (n <= state.length) return n;
25982 // Don't have enough
25983 if (!state.ended) {
25984 state.needReadable = true;
25987 return state.length;
25990 // you can override either this method, or the async _read(n) below.
25991 Readable.prototype.read = function (n) {
25993 n = parseInt(n,
10);
25994 var state = this._readableState;
25997 if (n !==
0) state.emittedReadable = false;
25999 // if we're doing read(
0) to trigger a readable event, but we
26000 // already have a bunch of data in the buffer, then just trigger
26001 // the 'readable' event and move on.
26002 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
26003 debug('read: emitReadable', state.length, state.ended);
26004 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26008 n = howMuchToRead(n, state);
26010 // if we've ended, and we're now clear, then finish it up.
26011 if (n ===
0 && state.ended) {
26012 if (state.length ===
0) endReadable(this);
26016 // All the actual chunk generation logic needs to be
26017 // *below* the call to _read. The reason is that in certain
26018 // synthetic stream cases, such as passthrough streams, _read
26019 // may be a completely synchronous operation which may change
26020 // the state of the read buffer, providing enough data when
26021 // before there was *not* enough.
26023 // So, the steps are:
26024 //
1. Figure out what the state of things will be after we do
26025 // a read from the buffer.
26027 //
2. If that resulting state will trigger a _read, then call _read.
26028 // Note that this may be asynchronous, or synchronous. Yes, it is
26029 // deeply ugly to write APIs this way, but that still doesn't mean
26030 // that the Readable class should behave improperly, as streams are
26031 // designed to be sync/async agnostic.
26032 // Take note if the _read call is sync or async (ie, if the read call
26033 // has returned yet), so that we know whether or not it's safe to emit
26036 //
3. Actually pull the requested chunks out of the buffer and return.
26038 // if we need a readable event, then we need to do some reading.
26039 var doRead = state.needReadable;
26040 debug('need readable', doRead);
26042 // if we currently have less than the highWaterMark, then also read some
26043 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26045 debug('length less than watermark', doRead);
26048 // however, if we've ended, then there's no point, and if we're already
26049 // reading, then it's unnecessary.
26050 if (state.ended || state.reading) {
26052 debug('reading or ended', doRead);
26053 } else if (doRead) {
26055 state.reading = true;
26057 // if the length is currently zero, then we *need* a readable event.
26058 if (state.length ===
0) state.needReadable = true;
26059 // call internal read method
26060 this._read(state.highWaterMark);
26061 state.sync = false;
26062 // If _read pushed data synchronously, then `reading` will be false,
26063 // and we need to re-evaluate how much data we can return to the user.
26064 if (!state.reading) n = howMuchToRead(nOrig, state);
26068 if (n
> 0) ret = fromList(n, state);else ret = null;
26070 if (ret === null) {
26071 state.needReadable = true;
26077 if (state.length ===
0) {
26078 // If we have nothing in the buffer, then we want to know
26079 // as soon as we *do* get something into the buffer.
26080 if (!state.ended) state.needReadable = true;
26082 // If we tried to read() past the EOF, then emit end on the next tick.
26083 if (nOrig !== n && state.ended) endReadable(this);
26086 if (ret !== null) this.emit('data', ret);
26091 function chunkInvalid(state, chunk) {
26093 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26094 er = new TypeError('Invalid non-string/buffer chunk');
26099 function onEofChunk(stream, state) {
26100 if (state.ended) return;
26101 if (state.decoder) {
26102 var chunk = state.decoder.end();
26103 if (chunk && chunk.length) {
26104 state.buffer.push(chunk);
26105 state.length += state.objectMode ?
1 : chunk.length;
26108 state.ended = true;
26110 // emit 'readable' now to make sure it gets picked up.
26111 emitReadable(stream);
26114 // Don't emit readable right away in sync mode, because this can trigger
26115 // another read() call =
> stack overflow. This way, it might trigger
26116 // a nextTick recursion warning, but that's not so bad.
26117 function emitReadable(stream) {
26118 var state = stream._readableState;
26119 state.needReadable = false;
26120 if (!state.emittedReadable) {
26121 debug('emitReadable', state.flowing);
26122 state.emittedReadable = true;
26123 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26127 function emitReadable_(stream) {
26128 debug('emit readable');
26129 stream.emit('readable');
26133 // at this point, the user has presumably seen the 'readable' event,
26134 // and called read() to consume some data. that may have triggered
26135 // in turn another _read(n) call, in which case reading = true if
26136 // it's in progress.
26137 // However, if we're not ended, or reading, and the length < hwm,
26138 // then go ahead and try to read some more preemptively.
26139 function maybeReadMore(stream, state) {
26140 if (!state.readingMore) {
26141 state.readingMore = true;
26142 processNextTick(maybeReadMore_, stream, state);
26146 function maybeReadMore_(stream, state) {
26147 var len = state.length;
26148 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26149 debug('maybeReadMore read
0');
26151 if (len === state.length)
26152 // didn't get any data, stop spinning.
26153 break;else len = state.length;
26155 state.readingMore = false;
26158 // abstract method. to be overridden in specific implementation classes.
26159 // call cb(er, data) where data is <= n in length.
26160 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26161 // arbitrary, and perhaps not very meaningful.
26162 Readable.prototype._read = function (n) {
26163 this.emit('error', new Error('_read() is not implemented'));
26166 Readable.prototype.pipe = function (dest, pipeOpts) {
26168 var state = this._readableState;
26170 switch (state.pipesCount) {
26172 state.pipes = dest;
26175 state.pipes = [state.pipes, dest];
26178 state.pipes.push(dest);
26181 state.pipesCount +=
1;
26182 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26184 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26186 var endFn = doEnd ? onend : cleanup;
26187 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26189 dest.on('unpipe', onunpipe);
26190 function onunpipe(readable) {
26192 if (readable === src) {
26202 // when the dest drains, it reduces the awaitDrain counter
26203 // on the source. This would be more elegant with a .once()
26204 // handler in flow(), but adding and removing repeatedly is
26206 var ondrain = pipeOnDrain(src);
26207 dest.on('drain', ondrain);
26209 var cleanedUp = false;
26210 function cleanup() {
26212 // cleanup event handlers once the pipe is broken
26213 dest.removeListener('close', onclose);
26214 dest.removeListener('finish', onfinish);
26215 dest.removeListener('drain', ondrain);
26216 dest.removeListener('error', onerror);
26217 dest.removeListener('unpipe', onunpipe);
26218 src.removeListener('end', onend);
26219 src.removeListener('end', cleanup);
26220 src.removeListener('data', ondata);
26224 // if the reader is waiting for a drain event from this
26225 // specific writer, then it would cause it to never start
26227 // So, if this is awaiting a drain, then we just call it now.
26228 // If we don't know, then assume that we are waiting for one.
26229 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26232 // If the user pushes more data while we're writing to dest then we'll end up
26233 // in ondata again. However, we only want to increase awaitDrain once because
26234 // dest will only emit one 'drain' event for the multiple writes.
26235 // =
> Introduce a guard on increasing awaitDrain.
26236 var increasedAwaitDrain = false;
26237 src.on('data', ondata);
26238 function ondata(chunk) {
26240 increasedAwaitDrain = false;
26241 var ret = dest.write(chunk);
26242 if (false === ret && !increasedAwaitDrain) {
26243 // If the user unpiped during `dest.write()`, it is possible
26244 // to get stuck in a permanently paused state if that write
26245 // also returned false.
26246 // =
> Check whether `dest` is still a piping destination.
26247 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26248 debug('false write response, pause', src._readableState.awaitDrain);
26249 src._readableState.awaitDrain++;
26250 increasedAwaitDrain = true;
26256 // if the dest has an error, then stop piping into it.
26257 // however, don't suppress the throwing behavior for this.
26258 function onerror(er) {
26259 debug('onerror', er);
26261 dest.removeListener('error', onerror);
26262 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26265 // Make sure our error handler is attached before userland ones.
26266 prependListener(dest, 'error', onerror);
26268 // Both close and finish should trigger unpipe, but only once.
26269 function onclose() {
26270 dest.removeListener('finish', onfinish);
26273 dest.once('close', onclose);
26274 function onfinish() {
26276 dest.removeListener('close', onclose);
26279 dest.once('finish', onfinish);
26281 function unpipe() {
26286 // tell the dest that it's being piped to
26287 dest.emit('pipe', src);
26289 // start the flow if it hasn't been started already.
26290 if (!state.flowing) {
26291 debug('pipe resume');
26298 function pipeOnDrain(src) {
26299 return function () {
26300 var state = src._readableState;
26301 debug('pipeOnDrain', state.awaitDrain);
26302 if (state.awaitDrain) state.awaitDrain--;
26303 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26304 state.flowing = true;
26310 Readable.prototype.unpipe = function (dest) {
26311 var state = this._readableState;
26313 // if we're not piping anywhere, then do nothing.
26314 if (state.pipesCount ===
0) return this;
26316 // just one destination. most common case.
26317 if (state.pipesCount ===
1) {
26318 // passed in one, but it's not the right one.
26319 if (dest && dest !== state.pipes) return this;
26321 if (!dest) dest = state.pipes;
26324 state.pipes = null;
26325 state.pipesCount =
0;
26326 state.flowing = false;
26327 if (dest) dest.emit('unpipe', this);
26331 // slow case. multiple pipe destinations.
26335 var dests = state.pipes;
26336 var len = state.pipesCount;
26337 state.pipes = null;
26338 state.pipesCount =
0;
26339 state.flowing = false;
26341 for (var i =
0; i < len; i++) {
26342 dests[i].emit('unpipe', this);
26346 // try to find the right one.
26347 var index = indexOf(state.pipes, dest);
26348 if (index === -
1) return this;
26350 state.pipes.splice(index,
1);
26351 state.pipesCount -=
1;
26352 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26354 dest.emit('unpipe', this);
26359 // set up data events if they are asked for
26360 // Ensure readable listeners eventually get something
26361 Readable.prototype.on = function (ev, fn) {
26362 var res = Stream.prototype.on.call(this, ev, fn);
26364 if (ev === 'data') {
26365 // Start flowing on next tick if stream isn't explicitly paused
26366 if (this._readableState.flowing !== false) this.resume();
26367 } else if (ev === 'readable') {
26368 var state = this._readableState;
26369 if (!state.endEmitted && !state.readableListening) {
26370 state.readableListening = state.needReadable = true;
26371 state.emittedReadable = false;
26372 if (!state.reading) {
26373 processNextTick(nReadingNextTick, this);
26374 } else if (state.length) {
26375 emitReadable(this, state);
26382 Readable.prototype.addListener = Readable.prototype.on;
26384 function nReadingNextTick(self) {
26385 debug('readable nexttick read
0');
26389 // pause() and resume() are remnants of the legacy readable stream API
26390 // If the user uses them, then switch into old mode.
26391 Readable.prototype.resume = function () {
26392 var state = this._readableState;
26393 if (!state.flowing) {
26395 state.flowing = true;
26396 resume(this, state);
26401 function resume(stream, state) {
26402 if (!state.resumeScheduled) {
26403 state.resumeScheduled = true;
26404 processNextTick(resume_, stream, state);
26408 function resume_(stream, state) {
26409 if (!state.reading) {
26410 debug('resume read
0');
26414 state.resumeScheduled = false;
26415 state.awaitDrain =
0;
26416 stream.emit('resume');
26418 if (state.flowing && !state.reading) stream.read(
0);
26421 Readable.prototype.pause = function () {
26422 debug('call pause flowing=%j', this._readableState.flowing);
26423 if (false !== this._readableState.flowing) {
26425 this._readableState.flowing = false;
26426 this.emit('pause');
26431 function flow(stream) {
26432 var state = stream._readableState;
26433 debug('flow', state.flowing);
26434 while (state.flowing && stream.read() !== null) {}
26437 // wrap an old-style stream as the async data source.
26438 // This is *not* part of the readable stream interface.
26439 // It is an ugly unfortunate mess of history.
26440 Readable.prototype.wrap = function (stream) {
26441 var state = this._readableState;
26442 var paused = false;
26445 stream.on('end', function () {
26446 debug('wrapped end');
26447 if (state.decoder && !state.ended) {
26448 var chunk = state.decoder.end();
26449 if (chunk && chunk.length) self.push(chunk);
26455 stream.on('data', function (chunk) {
26456 debug('wrapped data');
26457 if (state.decoder) chunk = state.decoder.write(chunk);
26459 // don't skip over falsy values in objectMode
26460 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26462 var ret = self.push(chunk);
26469 // proxy all the other methods.
26470 // important when wrapping filters and duplexes.
26471 for (var i in stream) {
26472 if (this[i] === undefined && typeof stream[i] === 'function') {
26473 this[i] = function (method) {
26474 return function () {
26475 return stream[method].apply(stream, arguments);
26481 // proxy certain important events.
26482 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26483 forEach(events, function (ev) {
26484 stream.on(ev, self.emit.bind(self, ev));
26487 // when we try to consume some more bytes, simply unpause the
26488 // underlying stream.
26489 self._read = function (n) {
26490 debug('wrapped _read', n);
26500 // exposed for testing purposes only.
26501 Readable._fromList = fromList;
26503 // Pluck off n bytes from an array of buffers.
26504 // Length is the combined lengths of all the buffers in the list.
26505 // This function is designed to be inlinable, so please take care when making
26506 // changes to the function body.
26507 function fromList(n, state) {
26508 // nothing buffered
26509 if (state.length ===
0) return null;
26512 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26513 // read it all, truncate the list
26514 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);
26515 state.buffer.clear();
26517 // read part of list
26518 ret = fromListPartial(n, state.buffer, state.decoder);
26524 // Extracts only enough buffered data to satisfy the amount requested.
26525 // This function is designed to be inlinable, so please take care when making
26526 // changes to the function body.
26527 function fromListPartial(n, list, hasStrings) {
26529 if (n < list.head.data.length) {
26530 // slice is the same for buffers and strings
26531 ret = list.head.data.slice(
0, n);
26532 list.head.data = list.head.data.slice(n);
26533 } else if (n === list.head.data.length) {
26534 // first chunk is a perfect match
26535 ret = list.shift();
26537 // result spans more than one buffer
26538 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26543 // Copies a specified amount of characters from the list of buffered data
26545 // This function is designed to be inlinable, so please take care when making
26546 // changes to the function body.
26547 function copyFromBufferString(n, list) {
26552 while (p = p.next) {
26554 var nb = n
> str.length ? str.length : n;
26555 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26558 if (nb === str.length) {
26560 if (p.next) list.head = p.next;else list.head = list.tail = null;
26563 p.data = str.slice(nb);
26573 // Copies a specified amount of bytes from the list of buffered data chunks.
26574 // This function is designed to be inlinable, so please take care when making
26575 // changes to the function body.
26576 function copyFromBuffer(n, list) {
26577 var ret = bufferShim.allocUnsafe(n);
26581 n -= p.data.length;
26582 while (p = p.next) {
26584 var nb = n
> buf.length ? buf.length : n;
26585 buf.copy(ret, ret.length - n,
0, nb);
26588 if (nb === buf.length) {
26590 if (p.next) list.head = p.next;else list.head = list.tail = null;
26593 p.data = buf.slice(nb);
26603 function endReadable(stream) {
26604 var state = stream._readableState;
26606 // If we get here before consuming all the bytes, then that is a
26607 // bug in node. Should never happen.
26608 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26610 if (!state.endEmitted) {
26611 state.ended = true;
26612 processNextTick(endReadableNT, state, stream);
26616 function endReadableNT(state, stream) {
26617 // Check that we didn't get one last unshift.
26618 if (!state.endEmitted && state.length ===
0) {
26619 state.endEmitted = true;
26620 stream.readable = false;
26621 stream.emit('end');
26625 function forEach(xs, f) {
26626 for (var i =
0, l = xs.length; i < l; i++) {
26631 function indexOf(xs, x) {
26632 for (var i =
0, l = xs.length; i < l; i++) {
26633 if (xs[i] === x) return i;
26637 }).call(this,require('_process'))
26638 },{
"./_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){
26639 // a transform stream is a readable/writable stream where you do
26640 // something with the data. Sometimes it's called a
"filter",
26641 // but that's not a great name for it, since that implies a thing where
26642 // some bits pass through, and others are simply ignored. (That would
26643 // be a valid example of a transform, of course.)
26645 // While the output is causally related to the input, it's not a
26646 // necessarily symmetric or synchronous transformation. For example,
26647 // a zlib stream might take multiple plain-text writes(), and then
26648 // emit a single compressed chunk some time in the future.
26650 // Here's how this works:
26652 // The Transform stream has all the aspects of the readable and writable
26653 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26654 // internally, and returns false if there's a lot of pending writes
26655 // buffered up. When you call read(), that calls _read(n) until
26656 // there's enough pending readable data buffered up.
26658 // In a transform stream, the written data is placed in a buffer. When
26659 // _read(n) is called, it transforms the queued up data, calling the
26660 // buffered _write cb's as it consumes chunks. If consuming a single
26661 // written chunk would result in multiple output chunks, then the first
26662 // outputted bit calls the readcb, and subsequent chunks just go into
26663 // the read buffer, and will cause it to emit 'readable' if necessary.
26665 // This way, back-pressure is actually determined by the reading side,
26666 // since _read has to be called to start processing a new chunk. However,
26667 // a pathological inflate type of transform can cause excessive buffering
26668 // here. For example, imagine a stream where every byte of input is
26669 // interpreted as an integer from
0-
255, and then results in that many
26670 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26671 //
1kb of data being output. In this case, you could write a very small
26672 // amount of input, and end up with a very large amount of output. In
26673 // such a pathological inflating mechanism, there'd be no way to tell
26674 // the system to stop doing the transform. A single
4MB write could
26675 // cause the system to run out of memory.
26677 // However, even in such a pathological case, only a single written chunk
26678 // would be consumed, and then the rest would wait (un-transformed) until
26679 // the results of the previous transformed chunk were consumed.
26683 module.exports = Transform;
26685 var Duplex = require('./_stream_duplex');
26688 var util = require('core-util-is');
26689 util.inherits = require('inherits');
26692 util.inherits(Transform, Duplex);
26694 function TransformState(stream) {
26695 this.afterTransform = function (er, data) {
26696 return afterTransform(stream, er, data);
26699 this.needTransform = false;
26700 this.transforming = false;
26701 this.writecb = null;
26702 this.writechunk = null;
26703 this.writeencoding = null;
26706 function afterTransform(stream, er, data) {
26707 var ts = stream._transformState;
26708 ts.transforming = false;
26710 var cb = ts.writecb;
26712 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26714 ts.writechunk = null;
26717 if (data !== null && data !== undefined) stream.push(data);
26721 var rs = stream._readableState;
26722 rs.reading = false;
26723 if (rs.needReadable || rs.length < rs.highWaterMark) {
26724 stream._read(rs.highWaterMark);
26728 function Transform(options) {
26729 if (!(this instanceof Transform)) return new Transform(options);
26731 Duplex.call(this, options);
26733 this._transformState = new TransformState(this);
26737 // start out asking for a readable event once data is transformed.
26738 this._readableState.needReadable = true;
26740 // we have implemented the _read method, and done the other things
26741 // that Readable wants before the first _read call, so unset the
26742 // sync guard flag.
26743 this._readableState.sync = false;
26746 if (typeof options.transform === 'function') this._transform = options.transform;
26748 if (typeof options.flush === 'function') this._flush = options.flush;
26751 // When the writable side finishes, then flush out anything remaining.
26752 this.once('prefinish', function () {
26753 if (typeof this._flush === 'function') this._flush(function (er, data) {
26754 done(stream, er, data);
26755 });else done(stream);
26759 Transform.prototype.push = function (chunk, encoding) {
26760 this._transformState.needTransform = false;
26761 return Duplex.prototype.push.call(this, chunk, encoding);
26764 // This is the part where you do stuff!
26765 // override this function in implementation classes.
26766 // 'chunk' is an input chunk.
26768 // Call `push(newChunk)` to pass along transformed output
26769 // to the readable side. You may call 'push' zero or more times.
26771 // Call `cb(err)` when you are done with this chunk. If you pass
26772 // an error, then that'll put the hurt on the whole operation. If you
26773 // never call cb(), then you'll never get another chunk.
26774 Transform.prototype._transform = function (chunk, encoding, cb) {
26775 throw new Error('_transform() is not implemented');
26778 Transform.prototype._write = function (chunk, encoding, cb) {
26779 var ts = this._transformState;
26781 ts.writechunk = chunk;
26782 ts.writeencoding = encoding;
26783 if (!ts.transforming) {
26784 var rs = this._readableState;
26785 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26789 // Doesn't matter what the args are here.
26790 // _transform does all the work.
26791 // That we got here means that the readable side wants more data.
26792 Transform.prototype._read = function (n) {
26793 var ts = this._transformState;
26795 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26796 ts.transforming = true;
26797 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26799 // mark that we need a transform, so that any data that comes in
26800 // will get processed, now that we've asked for it.
26801 ts.needTransform = true;
26805 function done(stream, er, data) {
26806 if (er) return stream.emit('error', er);
26808 if (data !== null && data !== undefined) stream.push(data);
26810 // if there's nothing in the write buffer, then that means
26811 // that nothing more will ever be provided
26812 var ws = stream._writableState;
26813 var ts = stream._transformState;
26815 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26817 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26819 return stream.push(null);
26821 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26822 (function (process){
26823 // A bit simpler than readable streams.
26824 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26825 // the drain event emission and buffering.
26829 module.exports = Writable;
26832 var processNextTick = require('process-nextick-args');
26836 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26843 Writable.WritableState = WritableState;
26846 var util = require('core-util-is');
26847 util.inherits = require('inherits');
26851 var internalUtil = {
26852 deprecate: require('util-deprecate')
26860 Stream = require('st' + 'ream');
26861 } catch (_) {} finally {
26862 if (!Stream) Stream = require('events').EventEmitter;
26867 var Buffer = require('buffer').Buffer;
26869 var bufferShim = require('buffer-shims');
26872 util.inherits(Writable, Stream);
26876 function WriteReq(chunk, encoding, cb) {
26877 this.chunk = chunk;
26878 this.encoding = encoding;
26879 this.callback = cb;
26883 function WritableState(options, stream) {
26884 Duplex = Duplex || require('./_stream_duplex');
26886 options = options || {};
26888 // object stream flag to indicate whether or not this stream
26889 // contains buffers or objects.
26890 this.objectMode = !!options.objectMode;
26892 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26894 // the point at which write() starts returning false
26895 // Note:
0 is a valid value, means that we always return false if
26896 // the entire buffer is not flushed immediately on write()
26897 var hwm = options.highWaterMark;
26898 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26899 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26902 this.highWaterMark = ~ ~this.highWaterMark;
26904 // drain event flag.
26905 this.needDrain = false;
26906 // at the start of calling end()
26907 this.ending = false;
26908 // when end() has been called, and returned
26909 this.ended = false;
26910 // when 'finish' is emitted
26911 this.finished = false;
26913 // should we decode strings into buffers before passing to _write?
26914 // this is here so that some node-core streams can optimize string
26915 // handling at a lower level.
26916 var noDecode = options.decodeStrings === false;
26917 this.decodeStrings = !noDecode;
26919 // Crypto is kind of old and crusty. Historically, its default string
26920 // encoding is 'binary' so we have to make this configurable.
26921 // Everything else in the universe uses 'utf8', though.
26922 this.defaultEncoding = options.defaultEncoding || 'utf8';
26924 // not an actual buffer we keep track of, but a measurement
26925 // of how much we're waiting to get pushed to some underlying
26929 // a flag to see when we're in the middle of a write.
26930 this.writing = false;
26932 // when true all writes will be buffered until .uncork() call
26935 // a flag to be able to tell if the onwrite cb is called immediately,
26936 // or on a later tick. We set this to true at first, because any
26937 // actions that shouldn't happen until "later" should generally also
26938 // not happen before the first write call.
26941 // a flag to know if we're processing previously buffered items, which
26942 // may call the _write() callback in the same tick, so that we don't
26943 // end up in an overlapped onwrite situation.
26944 this.bufferProcessing = false;
26946 // the callback that's passed to _write(chunk,cb)
26947 this.onwrite = function (er) {
26948 onwrite(stream, er);
26951 // the callback that the user supplies to write(chunk,encoding,cb)
26952 this.writecb = null;
26954 // the amount that is being written when _write is called.
26957 this.bufferedRequest = null;
26958 this.lastBufferedRequest = null;
26960 // number of pending user-supplied write callbacks
26961 // this must be
0 before 'finish' can be emitted
26962 this.pendingcb =
0;
26964 // emit prefinish if the only thing we're waiting for is _write cbs
26965 // This is relevant for synchronous Transform streams
26966 this.prefinished = false;
26968 // True if the error was already emitted and should not be thrown again
26969 this.errorEmitted = false;
26971 // count buffered requests
26972 this.bufferedRequestCount =
0;
26974 // allocate the first CorkedRequest, there is always
26975 // one allocated and free to use, and we maintain at most two
26976 this.corkedRequestsFree = new CorkedRequest(this);
26979 WritableState.prototype.getBuffer = function getBuffer() {
26980 var current = this.bufferedRequest;
26984 current = current.next;
26991 Object.defineProperty(WritableState.prototype, 'buffer', {
26992 get: internalUtil.deprecate(function () {
26993 return this.getBuffer();
26994 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
26999 // Test _writableState for inheritance to account for Duplex streams,
27000 // whose prototype chain only points to Readable.
27001 var realHasInstance;
27002 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
27003 realHasInstance = Function.prototype[Symbol.hasInstance];
27004 Object.defineProperty(Writable, Symbol.hasInstance, {
27005 value: function (object) {
27006 if (realHasInstance.call(this, object)) return true;
27008 return object && object._writableState instanceof WritableState;
27012 realHasInstance = function (object) {
27013 return object instanceof this;
27017 function Writable(options) {
27018 Duplex = Duplex || require('./_stream_duplex');
27020 // Writable ctor is applied to Duplexes, too.
27021 // `realHasInstance` is necessary because using plain `instanceof`
27022 // would return false, as no `_writableState` property is attached.
27024 // Trying to use the custom `instanceof` for Writable here will also break the
27025 // Node.js LazyTransform implementation, which has a non-trivial getter for
27026 // `_writableState` that would lead to infinite recursion.
27027 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27028 return new Writable(options);
27031 this._writableState = new WritableState(options, this);
27034 this.writable = true;
27037 if (typeof options.write === 'function') this._write = options.write;
27039 if (typeof options.writev === 'function') this._writev = options.writev;
27045 // Otherwise people can pipe Writable streams, which is just wrong.
27046 Writable.prototype.pipe = function () {
27047 this.emit('error', new Error('Cannot pipe, not readable'));
27050 function writeAfterEnd(stream, cb) {
27051 var er = new Error('write after end');
27052 // TODO: defer error events consistently everywhere, not just the cb
27053 stream.emit('error', er);
27054 processNextTick(cb, er);
27057 // If we get something that is not a buffer, string, null, or undefined,
27058 // and we're not in objectMode, then that's an error.
27059 // Otherwise stream chunks are all considered to be of length=
1, and the
27060 // watermarks determine how many objects to keep in the buffer, rather than
27061 // how many bytes or characters.
27062 function validChunk(stream, state, chunk, cb) {
27065 // Always throw error if a null is written
27066 // if we are not in object mode then throw
27067 // if it is not a buffer, string, or undefined.
27068 if (chunk === null) {
27069 er = new TypeError('May not write null values to stream');
27070 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27071 er = new TypeError('Invalid non-string/buffer chunk');
27074 stream.emit('error', er);
27075 processNextTick(cb, er);
27081 Writable.prototype.write = function (chunk, encoding, cb) {
27082 var state = this._writableState;
27085 if (typeof encoding === 'function') {
27090 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27092 if (typeof cb !== 'function') cb = nop;
27094 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27096 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27102 Writable.prototype.cork = function () {
27103 var state = this._writableState;
27108 Writable.prototype.uncork = function () {
27109 var state = this._writableState;
27111 if (state.corked) {
27114 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27118 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27119 // node::ParseEncoding() requires lower case.
27120 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27121 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);
27122 this._writableState.defaultEncoding = encoding;
27126 function decodeChunk(state, chunk, encoding) {
27127 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27128 chunk = bufferShim.from(chunk, encoding);
27133 // if we're already writing something, then just put this
27134 // in the queue, and wait our turn. Otherwise, call _write
27135 // If we return false, then we need a drain event, so set that flag.
27136 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27137 chunk = decodeChunk(state, chunk, encoding);
27139 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27140 var len = state.objectMode ?
1 : chunk.length;
27142 state.length += len;
27144 var ret = state.length < state.highWaterMark;
27145 // we must ensure that previous needDrain will not be reset to false.
27146 if (!ret) state.needDrain = true;
27148 if (state.writing || state.corked) {
27149 var last = state.lastBufferedRequest;
27150 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27152 last.next = state.lastBufferedRequest;
27154 state.bufferedRequest = state.lastBufferedRequest;
27156 state.bufferedRequestCount +=
1;
27158 doWrite(stream, state, false, len, chunk, encoding, cb);
27164 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27165 state.writelen = len;
27166 state.writecb = cb;
27167 state.writing = true;
27169 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27170 state.sync = false;
27173 function onwriteError(stream, state, sync, er, cb) {
27175 if (sync) processNextTick(cb, er);else cb(er);
27177 stream._writableState.errorEmitted = true;
27178 stream.emit('error', er);
27181 function onwriteStateUpdate(state) {
27182 state.writing = false;
27183 state.writecb = null;
27184 state.length -= state.writelen;
27185 state.writelen =
0;
27188 function onwrite(stream, er) {
27189 var state = stream._writableState;
27190 var sync = state.sync;
27191 var cb = state.writecb;
27193 onwriteStateUpdate(state);
27195 if (er) onwriteError(stream, state, sync, er, cb);else {
27196 // Check if we're actually ready to finish, but don't emit yet
27197 var finished = needFinish(state);
27199 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27200 clearBuffer(stream, state);
27205 asyncWrite(afterWrite, stream, state, finished, cb);
27208 afterWrite(stream, state, finished, cb);
27213 function afterWrite(stream, state, finished, cb) {
27214 if (!finished) onwriteDrain(stream, state);
27217 finishMaybe(stream, state);
27220 // Must force callback to be called on nextTick, so that we don't
27221 // emit 'drain' before the write() consumer gets the 'false' return
27222 // value, and has a chance to attach a 'drain' listener.
27223 function onwriteDrain(stream, state) {
27224 if (state.length ===
0 && state.needDrain) {
27225 state.needDrain = false;
27226 stream.emit('drain');
27230 // if there's something in the buffer waiting, then process it
27231 function clearBuffer(stream, state) {
27232 state.bufferProcessing = true;
27233 var entry = state.bufferedRequest;
27235 if (stream._writev && entry && entry.next) {
27236 // Fast case, write everything using _writev()
27237 var l = state.bufferedRequestCount;
27238 var buffer = new Array(l);
27239 var holder = state.corkedRequestsFree;
27240 holder.entry = entry;
27244 buffer[count] = entry;
27245 entry = entry.next;
27249 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27251 // doWrite is almost always async, defer these to save a bit of time
27252 // as the hot path ends with doWrite
27254 state.lastBufferedRequest = null;
27256 state.corkedRequestsFree = holder.next;
27257 holder.next = null;
27259 state.corkedRequestsFree = new CorkedRequest(state);
27262 // Slow case, write chunks one-by-one
27264 var chunk = entry.chunk;
27265 var encoding = entry.encoding;
27266 var cb = entry.callback;
27267 var len = state.objectMode ?
1 : chunk.length;
27269 doWrite(stream, state, false, len, chunk, encoding, cb);
27270 entry = entry.next;
27271 // if we didn't call the onwrite immediately, then
27272 // it means that we need to wait until it does.
27273 // also, that means that the chunk and cb are currently
27274 // being processed, so move the buffer counter past them.
27275 if (state.writing) {
27280 if (entry === null) state.lastBufferedRequest = null;
27283 state.bufferedRequestCount =
0;
27284 state.bufferedRequest = entry;
27285 state.bufferProcessing = false;
27288 Writable.prototype._write = function (chunk, encoding, cb) {
27289 cb(new Error('_write() is not implemented'));
27292 Writable.prototype._writev = null;
27294 Writable.prototype.end = function (chunk, encoding, cb) {
27295 var state = this._writableState;
27297 if (typeof chunk === 'function') {
27301 } else if (typeof encoding === 'function') {
27306 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27308 // .end() fully uncorks
27309 if (state.corked) {
27314 // ignore unnecessary end() calls.
27315 if (!state.ending && !state.finished) endWritable(this, state, cb);
27318 function needFinish(state) {
27319 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27322 function prefinish(stream, state) {
27323 if (!state.prefinished) {
27324 state.prefinished = true;
27325 stream.emit('prefinish');
27329 function finishMaybe(stream, state) {
27330 var need = needFinish(state);
27332 if (state.pendingcb ===
0) {
27333 prefinish(stream, state);
27334 state.finished = true;
27335 stream.emit('finish');
27337 prefinish(stream, state);
27343 function endWritable(stream, state, cb) {
27344 state.ending = true;
27345 finishMaybe(stream, state);
27347 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27349 state.ended = true;
27350 stream.writable = false;
27353 // It seems a linked list but it is not
27354 // there will be only
2 of these for each stream
27355 function CorkedRequest(state) {
27361 this.finish = function (err) {
27362 var entry = _this.entry;
27363 _this.entry = null;
27365 var cb = entry.callback;
27368 entry = entry.next;
27370 if (state.corkedRequestsFree) {
27371 state.corkedRequestsFree.next = _this;
27373 state.corkedRequestsFree = _this;
27377 }).call(this,require('_process'))
27378 },{"./_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){
27381 var Buffer = require('buffer').Buffer;
27383 var bufferShim = require('buffer-shims');
27386 module.exports = BufferList;
27388 function BufferList() {
27394 BufferList.prototype.push = function (v) {
27395 var entry = { data: v, next: null };
27396 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27401 BufferList.prototype.unshift = function (v) {
27402 var entry = { data: v, next: this.head };
27403 if (this.length ===
0) this.tail = entry;
27408 BufferList.prototype.shift = function () {
27409 if (this.length ===
0) return;
27410 var ret = this.head.data;
27411 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27416 BufferList.prototype.clear = function () {
27417 this.head = this.tail = null;
27421 BufferList.prototype.join = function (s) {
27422 if (this.length ===
0) return '';
27424 var ret = '' + p.data;
27425 while (p = p.next) {
27430 BufferList.prototype.concat = function (n) {
27431 if (this.length ===
0) return bufferShim.alloc(
0);
27432 if (this.length ===
1) return this.head.data;
27433 var ret = bufferShim.allocUnsafe(n
>>> 0);
27437 p.data.copy(ret, i);
27438 i += p.data.length;
27443 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27444 module.exports = require(
"./lib/_stream_passthrough.js")
27446 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27447 (function (process){
27448 var Stream = (function (){
27450 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27453 exports = module.exports = require('./lib/_stream_readable.js');
27454 exports.Stream = Stream || exports;
27455 exports.Readable = exports;
27456 exports.Writable = require('./lib/_stream_writable.js');
27457 exports.Duplex = require('./lib/_stream_duplex.js');
27458 exports.Transform = require('./lib/_stream_transform.js');
27459 exports.PassThrough = require('./lib/_stream_passthrough.js');
27461 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27462 module.exports = Stream;
27465 }).call(this,require('_process'))
27466 },{
"./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){
27467 module.exports = require(
"./lib/_stream_transform.js")
27469 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27470 module.exports = require(
"./lib/_stream_writable.js")
27472 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27473 // Copyright Joyent, Inc. and other Node contributors.
27475 // Permission is hereby granted, free of charge, to any person obtaining a
27476 // copy of this software and associated documentation files (the
27477 //
"Software"), to deal in the Software without restriction, including
27478 // without limitation the rights to use, copy, modify, merge, publish,
27479 // distribute, sublicense, and/or sell copies of the Software, and to permit
27480 // persons to whom the Software is furnished to do so, subject to the
27481 // following conditions:
27483 // The above copyright notice and this permission notice shall be included
27484 // in all copies or substantial portions of the Software.
27486 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27487 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27488 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27489 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27490 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27491 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27492 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27494 module.exports = Stream;
27496 var EE = require('events').EventEmitter;
27497 var inherits = require('inherits');
27499 inherits(Stream, EE);
27500 Stream.Readable = require('readable-stream/readable.js');
27501 Stream.Writable = require('readable-stream/writable.js');
27502 Stream.Duplex = require('readable-stream/duplex.js');
27503 Stream.Transform = require('readable-stream/transform.js');
27504 Stream.PassThrough = require('readable-stream/passthrough.js');
27506 // Backwards-compat with node
0.4.x
27507 Stream.Stream = Stream;
27511 // old-style streams. Note that the pipe method (the only relevant
27512 // part of this class) is overridden in the Readable class.
27514 function Stream() {
27518 Stream.prototype.pipe = function(dest, options) {
27521 function ondata(chunk) {
27522 if (dest.writable) {
27523 if (false === dest.write(chunk) && source.pause) {
27529 source.on('data', ondata);
27531 function ondrain() {
27532 if (source.readable && source.resume) {
27537 dest.on('drain', ondrain);
27539 // If the 'end' option is not supplied, dest.end() will be called when
27540 // source gets the 'end' or 'close' events. Only dest.end() once.
27541 if (!dest._isStdio && (!options || options.end !== false)) {
27542 source.on('end', onend);
27543 source.on('close', onclose);
27546 var didOnEnd = false;
27548 if (didOnEnd) return;
27555 function onclose() {
27556 if (didOnEnd) return;
27559 if (typeof dest.destroy === 'function') dest.destroy();
27562 // don't leave dangling pipes when there are errors.
27563 function onerror(er) {
27565 if (EE.listenerCount(this, 'error') ===
0) {
27566 throw er; // Unhandled stream error in pipe.
27570 source.on('error', onerror);
27571 dest.on('error', onerror);
27573 // remove all the event listeners that were added.
27574 function cleanup() {
27575 source.removeListener('data', ondata);
27576 dest.removeListener('drain', ondrain);
27578 source.removeListener('end', onend);
27579 source.removeListener('close', onclose);
27581 source.removeListener('error', onerror);
27582 dest.removeListener('error', onerror);
27584 source.removeListener('end', cleanup);
27585 source.removeListener('close', cleanup);
27587 dest.removeListener('close', cleanup);
27590 source.on('end', cleanup);
27591 source.on('close', cleanup);
27593 dest.on('close', cleanup);
27595 dest.emit('pipe', source);
27597 // Allow for unix-like usage: A.pipe(B).pipe(C)
27601 },{
"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){
27602 // Copyright Joyent, Inc. and other Node contributors.
27604 // Permission is hereby granted, free of charge, to any person obtaining a
27605 // copy of this software and associated documentation files (the
27606 //
"Software"), to deal in the Software without restriction, including
27607 // without limitation the rights to use, copy, modify, merge, publish,
27608 // distribute, sublicense, and/or sell copies of the Software, and to permit
27609 // persons to whom the Software is furnished to do so, subject to the
27610 // following conditions:
27612 // The above copyright notice and this permission notice shall be included
27613 // in all copies or substantial portions of the Software.
27615 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27616 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27617 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27618 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27619 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27620 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27621 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27623 var Buffer = require('buffer').Buffer;
27625 var isBufferEncoding = Buffer.isEncoding
27626 || function(encoding) {
27627 switch (encoding && encoding.toLowerCase()) {
27628 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;
27629 default: return false;
27634 function assertEncoding(encoding) {
27635 if (encoding && !isBufferEncoding(encoding)) {
27636 throw new Error('Unknown encoding: ' + encoding);
27640 // StringDecoder provides an interface for efficiently splitting a series of
27641 // buffers into a series of JS strings without breaking apart multi-byte
27642 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27644 // @TODO Handling all encodings inside a single object makes it very difficult
27645 // to reason about this code, so it should be split up in the future.
27646 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27647 // points as used by CESU-
8.
27648 var StringDecoder = exports.StringDecoder = function(encoding) {
27649 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27650 assertEncoding(encoding);
27651 switch (this.encoding) {
27653 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27654 this.surrogateSize =
3;
27658 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27659 this.surrogateSize =
2;
27660 this.detectIncompleteChar = utf16DetectIncompleteChar;
27663 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27664 this.surrogateSize =
3;
27665 this.detectIncompleteChar = base64DetectIncompleteChar;
27668 this.write = passThroughWrite;
27672 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27673 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27674 this.charBuffer = new Buffer(
6);
27675 // Number of bytes received for the current incomplete multi-byte character.
27676 this.charReceived =
0;
27677 // Number of bytes expected for the current incomplete multi-byte character.
27678 this.charLength =
0;
27682 // write decodes the given buffer and returns it as JS string that is
27683 // guaranteed to not contain any partial multi-byte characters. Any partial
27684 // character found at the end of the buffer is buffered up, and will be
27685 // returned when calling write again with the remaining bytes.
27687 // Note: Converting a Buffer containing an orphan surrogate to a String
27688 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27689 // Buffer#write) will replace incomplete surrogates with the unicode
27690 // replacement character. See https://codereview.chromium.org/
121173009/ .
27691 StringDecoder.prototype.write = function(buffer) {
27693 // if our last write ended with an incomplete multibyte character
27694 while (this.charLength) {
27695 // determine how many remaining bytes this buffer has to offer for this char
27696 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27697 this.charLength - this.charReceived :
27700 // add the new bytes to the char buffer
27701 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27702 this.charReceived += available;
27704 if (this.charReceived < this.charLength) {
27705 // still not enough chars in this buffer? wait for more ...
27709 // remove bytes belonging to the current character from the buffer
27710 buffer = buffer.slice(available, buffer.length);
27712 // get the character that was split
27713 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27715 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27716 var charCode = charStr.charCodeAt(charStr.length -
1);
27717 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27718 this.charLength += this.surrogateSize;
27722 this.charReceived = this.charLength =
0;
27724 // if there are no more bytes in this buffer, just emit our char
27725 if (buffer.length ===
0) {
27731 // determine and set charLength / charReceived
27732 this.detectIncompleteChar(buffer);
27734 var end = buffer.length;
27735 if (this.charLength) {
27736 // buffer the incomplete character bytes we got
27737 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27738 end -= this.charReceived;
27741 charStr += buffer.toString(this.encoding,
0, end);
27743 var end = charStr.length -
1;
27744 var charCode = charStr.charCodeAt(end);
27745 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27746 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27747 var size = this.surrogateSize;
27748 this.charLength += size;
27749 this.charReceived += size;
27750 this.charBuffer.copy(this.charBuffer, size,
0, size);
27751 buffer.copy(this.charBuffer,
0,
0, size);
27752 return charStr.substring(
0, end);
27755 // or just emit the charStr
27759 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27760 // the end of the given buffer. If so, it sets this.charLength to the byte
27761 // length that character, and sets this.charReceived to the number of bytes
27762 // that are available for this character.
27763 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27764 // determine how many bytes we have to check at the end of this buffer
27765 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27767 // Figure out if one of the last i bytes of our buffer announces an
27768 // incomplete char.
27769 for (; i
> 0; i--) {
27770 var c = buffer[buffer.length - i];
27772 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27775 if (i ==
1 && c
>> 5 ==
0x06) {
27776 this.charLength =
2;
27781 if (i <=
2 && c
>> 4 ==
0x0E) {
27782 this.charLength =
3;
27787 if (i <=
3 && c
>> 3 ==
0x1E) {
27788 this.charLength =
4;
27792 this.charReceived = i;
27795 StringDecoder.prototype.end = function(buffer) {
27797 if (buffer && buffer.length)
27798 res = this.write(buffer);
27800 if (this.charReceived) {
27801 var cr = this.charReceived;
27802 var buf = this.charBuffer;
27803 var enc = this.encoding;
27804 res += buf.slice(
0, cr).toString(enc);
27810 function passThroughWrite(buffer) {
27811 return buffer.toString(this.encoding);
27814 function utf16DetectIncompleteChar(buffer) {
27815 this.charReceived = buffer.length %
2;
27816 this.charLength = this.charReceived ?
2 :
0;
27819 function base64DetectIncompleteChar(buffer) {
27820 this.charReceived = buffer.length %
3;
27821 this.charLength = this.charReceived ?
3 :
0;
27824 },{
"buffer":
5}],
27:[function(require,module,exports){
27825 (function (global){
27831 module.exports = deprecate;
27834 * Mark that a method should not be used.
27835 * Returns a modified function which warns once by default.
27837 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27839 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27840 * will throw an Error when invoked.
27842 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27843 * will invoke `console.trace()` instead of `console.error()`.
27845 * @param {Function} fn - the function to deprecate
27846 * @param {String} msg - the string to print to the console when `fn` is invoked
27847 * @returns {Function} a new
"deprecated" version of `fn`
27851 function deprecate (fn, msg) {
27852 if (config('noDeprecation')) {
27856 var warned = false;
27857 function deprecated() {
27859 if (config('throwDeprecation')) {
27860 throw new Error(msg);
27861 } else if (config('traceDeprecation')) {
27862 console.trace(msg);
27868 return fn.apply(this, arguments);
27875 * Checks `localStorage` for boolean values for the given `name`.
27877 * @param {String} name
27878 * @returns {Boolean}
27882 function config (name) {
27883 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27885 if (!global.localStorage) return false;
27889 var val = global.localStorage[name];
27890 if (null == val) return false;
27891 return String(val).toLowerCase() === 'true';
27894 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27895 },{}],
28:[function(require,module,exports){
27896 arguments[
4][
9][
0].apply(exports,arguments)
27897 },{
"dup":
9}],
29:[function(require,module,exports){
27898 module.exports = function isBuffer(arg) {
27899 return arg && typeof arg === 'object'
27900 && typeof arg.copy === 'function'
27901 && typeof arg.fill === 'function'
27902 && typeof arg.readUInt8 === 'function';
27904 },{}],
30:[function(require,module,exports){
27905 (function (process,global){
27906 // Copyright Joyent, Inc. and other Node contributors.
27908 // Permission is hereby granted, free of charge, to any person obtaining a
27909 // copy of this software and associated documentation files (the
27910 //
"Software"), to deal in the Software without restriction, including
27911 // without limitation the rights to use, copy, modify, merge, publish,
27912 // distribute, sublicense, and/or sell copies of the Software, and to permit
27913 // persons to whom the Software is furnished to do so, subject to the
27914 // following conditions:
27916 // The above copyright notice and this permission notice shall be included
27917 // in all copies or substantial portions of the Software.
27919 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27920 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27921 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27922 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27923 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27924 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27925 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27927 var formatRegExp = /%[sdj%]/g;
27928 exports.format = function(f) {
27929 if (!isString(f)) {
27931 for (var i =
0; i < arguments.length; i++) {
27932 objects.push(inspect(arguments[i]));
27934 return objects.join(' ');
27938 var args = arguments;
27939 var len = args.length;
27940 var str = String(f).replace(formatRegExp, function(x) {
27941 if (x === '%%') return '%';
27942 if (i
>= len) return x;
27944 case '%s': return String(args[i++]);
27945 case '%d': return Number(args[i++]);
27948 return JSON.stringify(args[i++]);
27950 return '[Circular]';
27956 for (var x = args[i]; i < len; x = args[++i]) {
27957 if (isNull(x) || !isObject(x)) {
27960 str += ' ' + inspect(x);
27967 // Mark that a method should not be used.
27968 // Returns a modified function which warns once by default.
27969 // If --no-deprecation is set, then it is a no-op.
27970 exports.deprecate = function(fn, msg) {
27971 // Allow for deprecating things in the process of starting up.
27972 if (isUndefined(global.process)) {
27973 return function() {
27974 return exports.deprecate(fn, msg).apply(this, arguments);
27978 if (process.noDeprecation === true) {
27982 var warned = false;
27983 function deprecated() {
27985 if (process.throwDeprecation) {
27986 throw new Error(msg);
27987 } else if (process.traceDeprecation) {
27988 console.trace(msg);
27990 console.error(msg);
27994 return fn.apply(this, arguments);
28003 exports.debuglog = function(set) {
28004 if (isUndefined(debugEnviron))
28005 debugEnviron = process.env.NODE_DEBUG || '';
28006 set = set.toUpperCase();
28007 if (!debugs[set]) {
28008 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28009 var pid = process.pid;
28010 debugs[set] = function() {
28011 var msg = exports.format.apply(exports, arguments);
28012 console.error('%s %d: %s', set, pid, msg);
28015 debugs[set] = function() {};
28018 return debugs[set];
28023 * Echos the value of a value. Trys to print the value out
28024 * in the best way possible given the different types.
28026 * @param {Object} obj The object to print out.
28027 * @param {Object} opts Optional options object that alters the output.
28029 /* legacy: obj, showHidden, depth, colors*/
28030 function inspect(obj, opts) {
28034 stylize: stylizeNoColor
28037 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28038 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28039 if (isBoolean(opts)) {
28041 ctx.showHidden = opts;
28043 // got an "options" object
28044 exports._extend(ctx, opts);
28046 // set default options
28047 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28048 if (isUndefined(ctx.depth)) ctx.depth =
2;
28049 if (isUndefined(ctx.colors)) ctx.colors = false;
28050 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28051 if (ctx.colors) ctx.stylize = stylizeWithColor;
28052 return formatValue(ctx, obj, ctx.depth);
28054 exports.inspect = inspect;
28057 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28060 'italic' : [
3,
23],
28061 'underline' : [
4,
24],
28062 'inverse' : [
7,
27],
28063 'white' : [
37,
39],
28065 'black' : [
30,
39],
28068 'green' : [
32,
39],
28069 'magenta' : [
35,
39],
28071 'yellow' : [
33,
39]
28074 // Don't use 'blue' not visible on cmd.exe
28077 'number': 'yellow',
28078 'boolean': 'yellow',
28079 'undefined': 'grey',
28083 // "name": intentionally not styling
28088 function stylizeWithColor(str, styleType) {
28089 var style = inspect.styles[styleType];
28092 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28093 '\u001b[' + inspect.colors[style][
1] + 'm';
28100 function stylizeNoColor(str, styleType) {
28105 function arrayToHash(array) {
28108 array.forEach(function(val, idx) {
28116 function formatValue(ctx, value, recurseTimes) {
28117 // Provide a hook for user-specified inspect functions.
28118 // Check that value is an object with an inspect function on it
28119 if (ctx.customInspect &&
28121 isFunction(value.inspect) &&
28122 // Filter out the util module, it's inspect function is special
28123 value.inspect !== exports.inspect &&
28124 // Also filter out any prototype objects using the circular check.
28125 !(value.constructor && value.constructor.prototype === value)) {
28126 var ret = value.inspect(recurseTimes, ctx);
28127 if (!isString(ret)) {
28128 ret = formatValue(ctx, ret, recurseTimes);
28133 // Primitive types cannot have properties
28134 var primitive = formatPrimitive(ctx, value);
28139 // Look up the keys of the object.
28140 var keys = Object.keys(value);
28141 var visibleKeys = arrayToHash(keys);
28143 if (ctx.showHidden) {
28144 keys = Object.getOwnPropertyNames(value);
28147 // IE doesn't make error fields non-enumerable
28148 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28150 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28151 return formatError(value);
28154 // Some type of object without properties can be shortcutted.
28155 if (keys.length ===
0) {
28156 if (isFunction(value)) {
28157 var name = value.name ? ': ' + value.name : '';
28158 return ctx.stylize('[Function' + name + ']', 'special');
28160 if (isRegExp(value)) {
28161 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28163 if (isDate(value)) {
28164 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28166 if (isError(value)) {
28167 return formatError(value);
28171 var base = '', array = false, braces = ['{', '}'];
28173 // Make Array say that they are Array
28174 if (isArray(value)) {
28176 braces = ['[', ']'];
28179 // Make functions say that they are functions
28180 if (isFunction(value)) {
28181 var n = value.name ? ': ' + value.name : '';
28182 base = ' [Function' + n + ']';
28185 // Make RegExps say that they are RegExps
28186 if (isRegExp(value)) {
28187 base = ' ' + RegExp.prototype.toString.call(value);
28190 // Make dates with properties first say the date
28191 if (isDate(value)) {
28192 base = ' ' + Date.prototype.toUTCString.call(value);
28195 // Make error with message first say the error
28196 if (isError(value)) {
28197 base = ' ' + formatError(value);
28200 if (keys.length ===
0 && (!array || value.length ==
0)) {
28201 return braces[
0] + base + braces[
1];
28204 if (recurseTimes <
0) {
28205 if (isRegExp(value)) {
28206 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28208 return ctx.stylize('[Object]', 'special');
28212 ctx.seen.push(value);
28216 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28218 output = keys.map(function(key) {
28219 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28225 return reduceToSingleString(output, base, braces);
28229 function formatPrimitive(ctx, value) {
28230 if (isUndefined(value))
28231 return ctx.stylize('undefined', 'undefined');
28232 if (isString(value)) {
28233 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28234 .replace(/'/g, "\\'")
28235 .replace(/\\"/g, '"') + '\'';
28236 return ctx.stylize(simple, 'string');
28238 if (isNumber(value))
28239 return ctx.stylize('' + value, 'number');
28240 if (isBoolean(value))
28241 return ctx.stylize('' + value, 'boolean');
28242 // For some reason typeof null is "object", so special case here.
28244 return ctx.stylize('null', 'null');
28248 function formatError(value) {
28249 return '[' + Error.prototype.toString.call(value) + ']';
28253 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28255 for (var i =
0, l = value.length; i < l; ++i) {
28256 if (hasOwnProperty(value, String(i))) {
28257 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28263 keys.forEach(function(key) {
28264 if (!key.match(/^\d+$/)) {
28265 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28273 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28274 var name, str, desc;
28275 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28278 str = ctx.stylize('[Getter/Setter]', 'special');
28280 str = ctx.stylize('[Getter]', 'special');
28284 str = ctx.stylize('[Setter]', 'special');
28287 if (!hasOwnProperty(visibleKeys, key)) {
28288 name = '[' + key + ']';
28291 if (ctx.seen.indexOf(desc.value) <
0) {
28292 if (isNull(recurseTimes)) {
28293 str = formatValue(ctx, desc.value, null);
28295 str = formatValue(ctx, desc.value, recurseTimes -
1);
28297 if (str.indexOf('\n')
> -
1) {
28299 str = str.split('\n').map(function(line) {
28301 }).join('\n').substr(
2);
28303 str = '\n' + str.split('\n').map(function(line) {
28309 str = ctx.stylize('[Circular]', 'special');
28312 if (isUndefined(name)) {
28313 if (array && key.match(/^\d+$/)) {
28316 name = JSON.stringify('' + key);
28317 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28318 name = name.substr(
1, name.length -
2);
28319 name = ctx.stylize(name, 'name');
28321 name = name.replace(/'/g, "\\'")
28322 .replace(/\\"/g, '"')
28323 .replace(/(^"|"$)/g, "'");
28324 name = ctx.stylize(name, 'string');
28328 return name + ': ' + str;
28332 function reduceToSingleString(output, base, braces) {
28333 var numLinesEst =
0;
28334 var length = output.reduce(function(prev, cur) {
28336 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28337 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28342 (base === '' ? '' : base + '\n ') +
28344 output.join(',\n ') +
28349 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28353 // NOTE: These type checking functions intentionally don't use `instanceof`
28354 // because it is fragile and can be easily faked with `Object.create()`.
28355 function isArray(ar) {
28356 return Array.isArray(ar);
28358 exports.isArray = isArray;
28360 function isBoolean(arg) {
28361 return typeof arg === 'boolean';
28363 exports.isBoolean = isBoolean;
28365 function isNull(arg) {
28366 return arg === null;
28368 exports.isNull = isNull;
28370 function isNullOrUndefined(arg) {
28371 return arg == null;
28373 exports.isNullOrUndefined = isNullOrUndefined;
28375 function isNumber(arg) {
28376 return typeof arg === 'number';
28378 exports.isNumber = isNumber;
28380 function isString(arg) {
28381 return typeof arg === 'string';
28383 exports.isString = isString;
28385 function isSymbol(arg) {
28386 return typeof arg === 'symbol';
28388 exports.isSymbol = isSymbol;
28390 function isUndefined(arg) {
28391 return arg === void
0;
28393 exports.isUndefined = isUndefined;
28395 function isRegExp(re) {
28396 return isObject(re) && objectToString(re) === '[object RegExp]';
28398 exports.isRegExp = isRegExp;
28400 function isObject(arg) {
28401 return typeof arg === 'object' && arg !== null;
28403 exports.isObject = isObject;
28405 function isDate(d) {
28406 return isObject(d) && objectToString(d) === '[object Date]';
28408 exports.isDate = isDate;
28410 function isError(e) {
28411 return isObject(e) &&
28412 (objectToString(e) === '[object Error]' || e instanceof Error);
28414 exports.isError = isError;
28416 function isFunction(arg) {
28417 return typeof arg === 'function';
28419 exports.isFunction = isFunction;
28421 function isPrimitive(arg) {
28422 return arg === null ||
28423 typeof arg === 'boolean' ||
28424 typeof arg === 'number' ||
28425 typeof arg === 'string' ||
28426 typeof arg === 'symbol' || // ES6 symbol
28427 typeof arg === 'undefined';
28429 exports.isPrimitive = isPrimitive;
28431 exports.isBuffer = require('./support/isBuffer');
28433 function objectToString(o) {
28434 return Object.prototype.toString.call(o);
28439 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28443 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28444 'Oct', 'Nov', 'Dec'];
28447 function timestamp() {
28448 var d = new Date();
28449 var time = [pad(d.getHours()),
28450 pad(d.getMinutes()),
28451 pad(d.getSeconds())].join(':');
28452 return [d.getDate(), months[d.getMonth()], time].join(' ');
28456 // log is just a thin wrapper to console.log that prepends a timestamp
28457 exports.log = function() {
28458 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28463 * Inherit the prototype methods from one constructor into another.
28465 * The Function.prototype.inherits from lang.js rewritten as a standalone
28466 * function (not on Function.prototype). NOTE: If this file is to be loaded
28467 * during bootstrapping this function needs to be rewritten using some native
28468 * functions as prototype setup using normal JavaScript does not work as
28469 * expected during bootstrapping (see mirror.js in r114903).
28471 * @param {function} ctor Constructor function which needs to inherit the
28473 * @param {function} superCtor Constructor function to inherit prototype from.
28475 exports.inherits = require('inherits');
28477 exports._extend = function(origin, add) {
28478 // Don't do anything if add isn't an object
28479 if (!add || !isObject(add)) return origin;
28481 var keys = Object.keys(add);
28482 var i = keys.length;
28484 origin[keys[i]] = add[keys[i]];
28489 function hasOwnProperty(obj, prop) {
28490 return Object.prototype.hasOwnProperty.call(obj, prop);
28493 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28494 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28495 (function (Buffer){
28496 const createKeccakHash = require('keccak')
28497 const secp256k1 = require('secp256k1')
28498 const assert = require('assert')
28499 const rlp = require('rlp')
28500 const BN = require('bn.js')
28501 const createHash = require('create-hash')
28502 Object.assign(exports, require('ethjs-util'))
28505 * the max integer that this VM can handle (a ```BN```)
28506 * @var {BN} MAX_INTEGER
28508 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28511 *
2^
256 (a ```BN```)
28512 * @var {BN} TWO_POW256
28514 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28517 * SHA3-
256 hash of null (a ```String```)
28518 * @var {String} SHA3_NULL_S
28520 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28523 * SHA3-
256 hash of null (a ```Buffer```)
28524 * @var {Buffer} SHA3_NULL
28526 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28529 * SHA3-
256 of an RLP of an empty array (a ```String```)
28530 * @var {String} SHA3_RLP_ARRAY_S
28532 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28535 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28536 * @var {Buffer} SHA3_RLP_ARRAY
28538 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28541 * SHA3-
256 hash of the RLP of null (a ```String```)
28542 * @var {String} SHA3_RLP_S
28544 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28547 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28548 * @var {Buffer} SHA3_RLP
28550 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28553 * [`BN`](https://github.com/indutny/bn.js)
28559 * [`rlp`](https://github.com/ethereumjs/rlp)
28565 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28568 exports.secp256k1 = secp256k1
28571 * Returns a buffer filled with
0s
28573 * @param {Number} bytes the number of bytes the buffer should be
28576 exports.zeros = function (bytes) {
28577 return Buffer.allocUnsafe(bytes).fill(
0)
28581 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28582 * Or it truncates the beginning if it exceeds.
28583 * @method lsetLength
28584 * @param {Buffer|Array} msg the value to pad
28585 * @param {Number} length the number of bytes the output should be
28586 * @param {Boolean} [right=false] whether to start padding form the left or right
28587 * @return {Buffer|Array}
28589 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28590 var buf = exports.zeros(length)
28591 msg = exports.toBuffer(msg)
28593 if (msg.length < length) {
28597 return msg.slice(
0, length)
28599 if (msg.length < length) {
28600 msg.copy(buf, length - msg.length)
28603 return msg.slice(-length)
28608 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28609 * Or it truncates the beginning if it exceeds.
28610 * @param {Buffer|Array} msg the value to pad
28611 * @param {Number} length the number of bytes the output should be
28612 * @return {Buffer|Array}
28614 exports.setLengthRight = function (msg, length) {
28615 return exports.setLength(msg, length, true)
28619 * Trims leading zeros from a `Buffer` or an `Array`
28620 * @param {Buffer|Array|String} a
28621 * @return {Buffer|Array|String}
28623 exports.unpad = exports.stripZeros = function (a) {
28624 a = exports.stripHexPrefix(a)
28626 while (a.length
> 0 && first.toString() === '
0') {
28633 * 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.
28634 * @param {*} v the value
28636 exports.toBuffer = function (v) {
28637 if (!Buffer.isBuffer(v)) {
28638 if (Array.isArray(v)) {
28640 } else if (typeof v === 'string') {
28641 if (exports.isHexPrefixed(v)) {
28642 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28646 } else if (typeof v === 'number') {
28647 v = exports.intToBuffer(v)
28648 } else if (v === null || v === undefined) {
28649 v = Buffer.allocUnsafe(
0)
28650 } else if (v.toArray) {
28651 // converts a BN to a Buffer
28652 v = Buffer.from(v.toArray())
28654 throw new Error('invalid type')
28661 * Converts a `Buffer` to a `Number`
28662 * @param {Buffer} buf
28664 * @throws If the input number exceeds
53 bits.
28666 exports.bufferToInt = function (buf) {
28667 return new BN(exports.toBuffer(buf)).toNumber()
28671 * Converts a `Buffer` into a hex `String`
28672 * @param {Buffer} buf
28675 exports.bufferToHex = function (buf) {
28676 buf = exports.toBuffer(buf)
28677 return '
0x' + buf.toString('hex')
28681 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28682 * @param {Buffer} num
28685 exports.fromSigned = function (num) {
28686 return new BN(num).fromTwos(
256)
28690 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28694 exports.toUnsigned = function (num) {
28695 return Buffer.from(num.toTwos(
256).toArray())
28699 * Creates SHA-
3 hash of the input
28700 * @param {Buffer|Array|String|Number} a the input data
28701 * @param {Number} [bits=
256] the SHA width
28704 exports.sha3 = function (a, bits) {
28705 a = exports.toBuffer(a)
28706 if (!bits) bits =
256
28708 return createKeccakHash('keccak' + bits).update(a).digest()
28712 * Creates SHA256 hash of the input
28713 * @param {Buffer|Array|String|Number} a the input data
28716 exports.sha256 = function (a) {
28717 a = exports.toBuffer(a)
28718 return createHash('sha256').update(a).digest()
28722 * Creates RIPEMD160 hash of the input
28723 * @param {Buffer|Array|String|Number} a the input data
28724 * @param {Boolean} padded whether it should be padded to
256 bits or not
28727 exports.ripemd160 = function (a, padded) {
28728 a = exports.toBuffer(a)
28729 var hash = createHash('rmd160').update(a).digest()
28730 if (padded === true) {
28731 return exports.setLength(hash,
32)
28738 * Creates SHA-
3 hash of the RLP encoded version of the input
28739 * @param {Buffer|Array|String|Number} a the input data
28742 exports.rlphash = function (a) {
28743 return exports.sha3(rlp.encode(a))
28747 * Checks if the private key satisfies the rules of the curve secp256k1.
28748 * @param {Buffer} privateKey
28749 * @return {Boolean}
28751 exports.isValidPrivate = function (privateKey) {
28752 return secp256k1.privateKeyVerify(privateKey)
28756 * Checks if the public key satisfies the rules of the curve secp256k1
28757 * and the requirements of Ethereum.
28758 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28759 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28760 * @return {Boolean}
28762 exports.isValidPublic = function (publicKey, sanitize) {
28763 if (publicKey.length ===
64) {
28764 // Convert to SEC1 for secp256k1
28765 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28772 return secp256k1.publicKeyVerify(publicKey)
28776 * Returns the ethereum address of a given public key.
28777 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28778 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28779 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28782 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28783 pubKey = exports.toBuffer(pubKey)
28784 if (sanitize && (pubKey.length !==
64)) {
28785 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28787 assert(pubKey.length ===
64)
28788 // Only take the lower
160bits of the hash
28789 return exports.sha3(pubKey).slice(-
20)
28793 * Returns the ethereum public key of a given private key
28794 * @param {Buffer} privateKey A private key must be
256 bits wide
28797 var privateToPublic = exports.privateToPublic = function (privateKey) {
28798 privateKey = exports.toBuffer(privateKey)
28799 // skip the type flag and use the X, Y points
28800 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28804 * Converts a public key to the Ethereum format.
28805 * @param {Buffer} publicKey
28808 exports.importPublic = function (publicKey) {
28809 publicKey = exports.toBuffer(publicKey)
28810 if (publicKey.length !==
64) {
28811 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28818 * @param {Buffer} msgHash
28819 * @param {Buffer} privateKey
28822 exports.ecsign = function (msgHash, privateKey) {
28823 var sig = secp256k1.sign(msgHash, privateKey)
28826 ret.r = sig.signature.slice(
0,
32)
28827 ret.s = sig.signature.slice(
32,
64)
28828 ret.v = sig.recovery +
27
28833 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28834 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28835 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28836 * used to produce the signature.
28838 * @returns {Buffer} hash
28840 exports.hashPersonalMessage = function (message) {
28841 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28842 return exports.sha3(Buffer.concat([prefix, message]))
28846 * ECDSA public key recovery from signature
28847 * @param {Buffer} msgHash
28848 * @param {Number} v
28849 * @param {Buffer} r
28850 * @param {Buffer} s
28851 * @return {Buffer} publicKey
28853 exports.ecrecover = function (msgHash, v, r, s) {
28854 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28855 var recovery = v -
27
28856 if (recovery !==
0 && recovery !==
1) {
28857 throw new Error('Invalid signature v value')
28859 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28860 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28864 * Convert signature parameters into the format of `eth_sign` RPC method
28865 * @param {Number} v
28866 * @param {Buffer} r
28867 * @param {Buffer} s
28868 * @return {String} sig
28870 exports.toRpcSig = function (v, r, s) {
28871 // NOTE: with potential introduction of chainId this might need to be updated
28872 if (v !==
27 && v !==
28) {
28873 throw new Error('Invalid recovery id')
28876 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28877 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28878 return exports.bufferToHex(Buffer.concat([
28879 exports.setLengthLeft(r,
32),
28880 exports.setLengthLeft(s,
32),
28881 exports.toBuffer(v -
27)
28886 * Convert signature format of the `eth_sign` RPC method to signature parameters
28887 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28888 * @param {String} sig
28891 exports.fromRpcSig = function (sig) {
28892 sig = exports.toBuffer(sig)
28894 // NOTE: with potential introduction of chainId this might need to be updated
28895 if (sig.length !==
65) {
28896 throw new Error('Invalid signature length')
28900 // support both versions of `eth_sign` responses
28907 r: sig.slice(
0,
32),
28908 s: sig.slice(
32,
64)
28913 * Returns the ethereum address of a given private key
28914 * @param {Buffer} privateKey A private key must be
256 bits wide
28917 exports.privateToAddress = function (privateKey) {
28918 return exports.publicToAddress(privateToPublic(privateKey))
28922 * Checks if the address is a valid. Accepts checksummed addresses too
28923 * @param {String} address
28924 * @return {Boolean}
28926 exports.isValidAddress = function (address) {
28927 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28931 * Returns a checksummed address
28932 * @param {String} address
28935 exports.toChecksumAddress = function (address) {
28936 address = exports.stripHexPrefix(address).toLowerCase()
28937 var hash = exports.sha3(address).toString('hex')
28940 for (var i =
0; i < address.length; i++) {
28941 if (parseInt(hash[i],
16)
>=
8) {
28942 ret += address[i].toUpperCase()
28952 * Checks if the address is a valid checksummed address
28953 * @param {Buffer} address
28954 * @return {Boolean}
28956 exports.isValidChecksumAddress = function (address) {
28957 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28961 * Generates an address of a newly created contract
28962 * @param {Buffer} from the address which is creating this new address
28963 * @param {Buffer} nonce the nonce of the from account
28966 exports.generateAddress = function (from, nonce) {
28967 from = exports.toBuffer(from)
28968 nonce = new BN(nonce)
28970 if (nonce.isZero()) {
28971 // in RLP we want to encode null in the case of zero nonce
28972 // read the RLP documentation for an answer if you dare
28975 nonce = Buffer.from(nonce.toArray())
28978 // Only take the lower
160bits of the hash
28979 return exports.rlphash([from, nonce]).slice(-
20)
28983 * Returns true if the supplied address belongs to a precompiled account
28984 * @param {Buffer|String} address
28985 * @return {Boolean}
28987 exports.isPrecompiled = function (address) {
28988 var a = exports.unpad(address)
28989 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
28993 * Adds
"0x" to a given `String` if it does not already start with
"0x"
28994 * @param {String} str
28997 exports.addHexPrefix = function (str) {
28998 if (typeof str !== 'string') {
29002 return exports.isHexPrefixed(str) ? str : '
0x' + str
29006 * Validate ECDSA signature
29007 * @method isValidSignature
29008 * @param {Buffer} v
29009 * @param {Buffer} r
29010 * @param {Buffer} s
29011 * @param {Boolean} [homestead=true]
29012 * @return {Boolean}
29015 exports.isValidSignature = function (v, r, s, homestead) {
29016 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29017 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29019 if (r.length !==
32 || s.length !==
32) {
29023 if (v !==
27 && v !==
28) {
29030 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29034 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29042 * Converts a `Buffer` or `Array` to JSON
29043 * @param {Buffer|Array} ba
29044 * @return {Array|String|null}
29046 exports.baToJSON = function (ba) {
29047 if (Buffer.isBuffer(ba)) {
29048 return '
0x' + ba.toString('hex')
29049 } else if (ba instanceof Array) {
29051 for (var i =
0; i < ba.length; i++) {
29052 array.push(exports.baToJSON(ba[i]))
29059 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29060 * @param {Object} self the `Object` to define properties on
29061 * @param {Array} fields an array fields to define. Fields can contain:
29062 * * `name` - the name of the properties
29063 * * `length` - the number of bytes the field can have
29064 * * `allowLess` - if the field can be less than the length
29066 * @param {*} data data to be validated against the definitions
29068 exports.defineProperties = function (self, fields, data) {
29072 // attach the `toJSON`
29073 self.toJSON = function (label) {
29076 self._fields.forEach(function (field) {
29077 obj[field] = '
0x' + self[field].toString('hex')
29081 return exports.baToJSON(this.raw)
29084 self.serialize = function serialize () {
29085 return rlp.encode(self.raw)
29088 fields.forEach(function (field, i) {
29089 self._fields.push(field.name)
29090 function getter () {
29093 function setter (v) {
29094 v = exports.toBuffer(v)
29096 if (v.toString('hex') === '
00' && !field.allowZero) {
29097 v = Buffer.allocUnsafe(
0)
29100 if (field.allowLess && field.length) {
29101 v = exports.stripZeros(v)
29102 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29103 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29104 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29110 Object.defineProperty(self, field.name, {
29112 configurable: true,
29117 if (field.default) {
29118 self[field.name] = field.default
29123 Object.defineProperty(self, field.alias, {
29125 configurable: true,
29132 // if the constuctor is passed data
29134 if (typeof data === 'string') {
29135 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29138 if (Buffer.isBuffer(data)) {
29139 data = rlp.decode(data)
29142 if (Array.isArray(data)) {
29143 if (data.length
> self._fields.length) {
29144 throw (new Error('wrong number of fields in data'))
29147 // make sure all the items are buffers
29148 data.forEach(function (d, i) {
29149 self[self._fields[i]] = exports.toBuffer(d)
29151 } else if (typeof data === 'object') {
29152 const keys = Object.keys(data)
29153 fields.forEach(function (field) {
29154 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29155 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29158 throw new Error('invalid data')
29163 }).call(this,require("buffer").Buffer)
29164 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29165 (function (Buffer){
29166 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29167 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29168 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29170 function check (buffer) {
29171 if (buffer.length <
8) return false
29172 if (buffer.length
> 72) return false
29173 if (buffer[
0] !==
0x30) return false
29174 if (buffer[
1] !== buffer.length -
2) return false
29175 if (buffer[
2] !==
0x02) return false
29177 var lenR = buffer[
3]
29178 if (lenR ===
0) return false
29179 if (
5 + lenR
>= buffer.length) return false
29180 if (buffer[
4 + lenR] !==
0x02) return false
29182 var lenS = buffer[
5 + lenR]
29183 if (lenS ===
0) return false
29184 if ((
6 + lenR + lenS) !== buffer.length) return false
29186 if (buffer[
4] &
0x80) return false
29187 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29189 if (buffer[lenR +
6] &
0x80) return false
29190 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29194 function decode (buffer) {
29195 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29196 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29197 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29198 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29199 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29201 var lenR = buffer[
3]
29202 if (lenR ===
0) throw new Error('R length is zero')
29203 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29204 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29206 var lenS = buffer[
5 + lenR]
29207 if (lenS ===
0) throw new Error('S length is zero')
29208 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29210 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29211 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29213 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29214 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29216 // non-BIP66 - extract R, S values
29218 r: buffer.slice(
4,
4 + lenR),
29219 s: buffer.slice(
6 + lenR)
29224 * Expects r and s to be positive DER integers.
29226 * The DER format uses the most significant bit as a sign bit (&
0x80).
29227 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29242 *
62300 =
> 0x00f35c
29243 * -
62300 =
> 0xff0ca4
29245 function encode (r, s) {
29246 var lenR = r.length
29247 var lenS = s.length
29248 if (lenR ===
0) throw new Error('R length is zero')
29249 if (lenS ===
0) throw new Error('S length is zero')
29250 if (lenR
> 33) throw new Error('R length is too long')
29251 if (lenS
> 33) throw new Error('S length is too long')
29252 if (r[
0] &
0x80) throw new Error('R value is negative')
29253 if (s[
0] &
0x80) throw new Error('S value is negative')
29254 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29255 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29257 var signature = new Buffer(
6 + lenR + lenS)
29259 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29260 signature[
0] =
0x30
29261 signature[
1] = signature.length -
2
29262 signature[
2] =
0x02
29263 signature[
3] = r.length
29264 r.copy(signature,
4)
29265 signature[
4 + lenR] =
0x02
29266 signature[
5 + lenR] = s.length
29267 s.copy(signature,
6 + lenR)
29278 }).call(this,require(
"buffer").Buffer)
29279 },{
"buffer":
5}],
33:[function(require,module,exports){
29280 (function (module, exports) {
29284 function assert (val, msg) {
29285 if (!val) throw new Error(msg || 'Assertion failed');
29288 // Could use `inherits` module, but don't want to move from single file
29289 // architecture yet.
29290 function inherits (ctor, superCtor) {
29291 ctor.super_ = superCtor;
29292 var TempCtor = function () {};
29293 TempCtor.prototype = superCtor.prototype;
29294 ctor.prototype = new TempCtor();
29295 ctor.prototype.constructor = ctor;
29300 function BN (number, base, endian) {
29301 if (BN.isBN(number)) {
29309 // Reduction context
29312 if (number !== null) {
29313 if (base === 'le' || base === 'be') {
29318 this._init(number ||
0, base ||
10, endian || 'be');
29321 if (typeof module === 'object') {
29322 module.exports = BN;
29332 Buffer = require('buf' + 'fer').Buffer;
29336 BN.isBN = function isBN (num) {
29337 if (num instanceof BN) {
29341 return num !== null && typeof num === 'object' &&
29342 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29345 BN.max = function max (left, right) {
29346 if (left.cmp(right)
> 0) return left;
29350 BN.min = function min (left, right) {
29351 if (left.cmp(right) <
0) return left;
29355 BN.prototype._init = function init (number, base, endian) {
29356 if (typeof number === 'number') {
29357 return this._initNumber(number, base, endian);
29360 if (typeof number === 'object') {
29361 return this._initArray(number, base, endian);
29364 if (base === 'hex') {
29367 assert(base === (base |
0) && base
>=
2 && base <=
36);
29369 number = number.toString().replace(/\s+/g, '');
29371 if (number[
0] === '-') {
29376 this._parseHex(number, start);
29378 this._parseBase(number, base, start);
29381 if (number[
0] === '-') {
29387 if (endian !== 'le') return;
29389 this._initArray(this.toArray(), base, endian);
29392 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29397 if (number <
0x4000000) {
29398 this.words = [ number &
0x3ffffff ];
29400 } else if (number <
0x10000000000000) {
29402 number &
0x3ffffff,
29403 (number /
0x4000000) &
0x3ffffff
29407 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29409 number &
0x3ffffff,
29410 (number /
0x4000000) &
0x3ffffff,
29416 if (endian !== 'le') return;
29418 // Reverse the bytes
29419 this._initArray(this.toArray(), base, endian);
29422 BN.prototype._initArray = function _initArray (number, base, endian) {
29423 // Perhaps a Uint8Array
29424 assert(typeof number.length === 'number');
29425 if (number.length <=
0) {
29426 this.words = [
0 ];
29431 this.length = Math.ceil(number.length /
3);
29432 this.words = new Array(this.length);
29433 for (var i =
0; i < this.length; i++) {
29439 if (endian === 'be') {
29440 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29441 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29442 this.words[j] |= (w << off) &
0x3ffffff;
29443 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29450 } else if (endian === 'le') {
29451 for (i =
0, j =
0; i < number.length; i +=
3) {
29452 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29453 this.words[j] |= (w << off) &
0x3ffffff;
29454 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29462 return this.strip();
29465 function parseHex (str, start, end) {
29467 var len = Math.min(str.length, end);
29468 for (var i = start; i < len; i++) {
29469 var c = str.charCodeAt(i) -
48;
29474 if (c
>=
49 && c <=
54) {
29478 } else if (c
>=
17 && c <=
22) {
29489 BN.prototype._parseHex = function _parseHex (number, start) {
29490 // Create possibly bigger array to ensure that it fits the number
29491 this.length = Math.ceil((number.length - start) /
6);
29492 this.words = new Array(this.length);
29493 for (var i =
0; i < this.length; i++) {
29498 // Scan
24-bit chunks and add them to the number
29500 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29501 w = parseHex(number, i, i +
6);
29502 this.words[j] |= (w << off) &
0x3ffffff;
29503 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29504 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29511 if (i +
6 !== start) {
29512 w = parseHex(number, start, i +
6);
29513 this.words[j] |= (w << off) &
0x3ffffff;
29514 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29519 function parseBase (str, start, end, mul) {
29521 var len = Math.min(str.length, end);
29522 for (var i = start; i < len; i++) {
29523 var c = str.charCodeAt(i) -
48;
29532 } else if (c
>=
17) {
29543 BN.prototype._parseBase = function _parseBase (number, base, start) {
29544 // Initialize as zero
29545 this.words = [
0 ];
29548 // Find length of limb in base
29549 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29553 limbPow = (limbPow / base) |
0;
29555 var total = number.length - start;
29556 var mod = total % limbLen;
29557 var end = Math.min(total, total - mod) + start;
29560 for (var i = start; i < end; i += limbLen) {
29561 word = parseBase(number, i, i + limbLen, base);
29563 this.imuln(limbPow);
29564 if (this.words[
0] + word <
0x4000000) {
29565 this.words[
0] += word;
29573 word = parseBase(number, i, number.length, base);
29575 for (i =
0; i < mod; i++) {
29580 if (this.words[
0] + word <
0x4000000) {
29581 this.words[
0] += word;
29588 BN.prototype.copy = function copy (dest) {
29589 dest.words = new Array(this.length);
29590 for (var i =
0; i < this.length; i++) {
29591 dest.words[i] = this.words[i];
29593 dest.length = this.length;
29594 dest.negative = this.negative;
29595 dest.red = this.red;
29598 BN.prototype.clone = function clone () {
29599 var r = new BN(null);
29604 BN.prototype._expand = function _expand (size) {
29605 while (this.length < size) {
29606 this.words[this.length++] =
0;
29611 // Remove leading `
0` from `this`
29612 BN.prototype.strip = function strip () {
29613 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29616 return this._normSign();
29619 BN.prototype._normSign = function _normSign () {
29621 if (this.length ===
1 && this.words[
0] ===
0) {
29627 BN.prototype.inspect = function inspect () {
29628 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29634 var groupSizes = [];
29635 var groupBases = [];
29639 while (++i < BN.wordSize) {
29648 while (++base <
36 +
1) {
29651 while (groupBase < (
1 << BN.wordSize) / base) {
29655 groupSizes[base] = groupSize;
29656 groupBases[base] = groupBase;
29678 '
0000000000000000',
29679 '
00000000000000000',
29680 '
000000000000000000',
29681 '
0000000000000000000',
29682 '
00000000000000000000',
29683 '
000000000000000000000',
29684 '
0000000000000000000000',
29685 '
00000000000000000000000',
29686 '
000000000000000000000000',
29687 '
0000000000000000000000000'
29692 25,
16,
12,
11,
10,
9,
8,
29693 8,
7,
7,
7,
7,
6,
6,
29694 6,
6,
6,
6,
6,
5,
5,
29695 5,
5,
5,
5,
5,
5,
5,
29696 5,
5,
5,
5,
5,
5,
5
29701 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29702 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29703 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29704 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29705 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29708 BN.prototype.toString = function toString (base, padding) {
29710 padding = padding |
0 ||
1;
29713 if (base ===
16 || base === 'hex') {
29717 for (var i =
0; i < this.length; i++) {
29718 var w = this.words[i];
29719 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29720 carry = (w
>>> (
24 - off)) &
0xffffff;
29721 if (carry !==
0 || i !== this.length -
1) {
29722 out = zeros[
6 - word.length] + word + out;
29733 out = carry.toString(
16) + out;
29735 while (out.length % padding !==
0) {
29738 if (this.negative !==
0) {
29744 if (base === (base |
0) && base
>=
2 && base <=
36) {
29745 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29746 var groupSize = groupSizes[base];
29747 // var groupBase = Math.pow(base, groupSize);
29748 var groupBase = groupBases[base];
29750 var c = this.clone();
29752 while (!c.isZero()) {
29753 var r = c.modn(groupBase).toString(base);
29754 c = c.idivn(groupBase);
29757 out = zeros[groupSize - r.length] + r + out;
29762 if (this.isZero()) {
29765 while (out.length % padding !==
0) {
29768 if (this.negative !==
0) {
29774 assert(false, 'Base should be between
2 and
36');
29777 BN.prototype.toNumber = function toNumber () {
29778 var ret = this.words[
0];
29779 if (this.length ===
2) {
29780 ret += this.words[
1] *
0x4000000;
29781 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29782 // NOTE: at this stage it is known that the top bit is set
29783 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29784 } else if (this.length
> 2) {
29785 assert(false, 'Number can only safely store up to
53 bits');
29787 return (this.negative !==
0) ? -ret : ret;
29790 BN.prototype.toJSON = function toJSON () {
29791 return this.toString(
16);
29794 BN.prototype.toBuffer = function toBuffer (endian, length) {
29795 assert(typeof Buffer !== 'undefined');
29796 return this.toArrayLike(Buffer, endian, length);
29799 BN.prototype.toArray = function toArray (endian, length) {
29800 return this.toArrayLike(Array, endian, length);
29803 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29804 var byteLength = this.byteLength();
29805 var reqLength = length || Math.max(
1, byteLength);
29806 assert(byteLength <= reqLength, 'byte array longer than desired length');
29807 assert(reqLength
> 0, 'Requested array length <=
0');
29810 var littleEndian = endian === 'le';
29811 var res = new ArrayType(reqLength);
29814 var q = this.clone();
29815 if (!littleEndian) {
29816 // Assume big-endian
29817 for (i =
0; i < reqLength - byteLength; i++) {
29821 for (i =
0; !q.isZero(); i++) {
29825 res[reqLength - i -
1] = b;
29828 for (i =
0; !q.isZero(); i++) {
29835 for (; i < reqLength; i++) {
29844 BN.prototype._countBits = function _countBits (w) {
29845 return
32 - Math.clz32(w);
29848 BN.prototype._countBits = function _countBits (w) {
29871 BN.prototype._zeroBits = function _zeroBits (w) {
29873 if (w ===
0) return
26;
29877 if ((t &
0x1fff) ===
0) {
29881 if ((t &
0x7f) ===
0) {
29885 if ((t &
0xf) ===
0) {
29889 if ((t &
0x3) ===
0) {
29893 if ((t &
0x1) ===
0) {
29899 // Return number of used bits in a BN
29900 BN.prototype.bitLength = function bitLength () {
29901 var w = this.words[this.length -
1];
29902 var hi = this._countBits(w);
29903 return (this.length -
1) *
26 + hi;
29906 function toBitArray (num) {
29907 var w = new Array(num.bitLength());
29909 for (var bit =
0; bit < w.length; bit++) {
29910 var off = (bit /
26) |
0;
29911 var wbit = bit %
26;
29913 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29919 // Number of trailing zero bits
29920 BN.prototype.zeroBits = function zeroBits () {
29921 if (this.isZero()) return
0;
29924 for (var i =
0; i < this.length; i++) {
29925 var b = this._zeroBits(this.words[i]);
29927 if (b !==
26) break;
29932 BN.prototype.byteLength = function byteLength () {
29933 return Math.ceil(this.bitLength() /
8);
29936 BN.prototype.toTwos = function toTwos (width) {
29937 if (this.negative !==
0) {
29938 return this.abs().inotn(width).iaddn(
1);
29940 return this.clone();
29943 BN.prototype.fromTwos = function fromTwos (width) {
29944 if (this.testn(width -
1)) {
29945 return this.notn(width).iaddn(
1).ineg();
29947 return this.clone();
29950 BN.prototype.isNeg = function isNeg () {
29951 return this.negative !==
0;
29954 // Return negative clone of `this`
29955 BN.prototype.neg = function neg () {
29956 return this.clone().ineg();
29959 BN.prototype.ineg = function ineg () {
29960 if (!this.isZero()) {
29961 this.negative ^=
1;
29967 // Or `num` with `this` in-place
29968 BN.prototype.iuor = function iuor (num) {
29969 while (this.length < num.length) {
29970 this.words[this.length++] =
0;
29973 for (var i =
0; i < num.length; i++) {
29974 this.words[i] = this.words[i] | num.words[i];
29977 return this.strip();
29980 BN.prototype.ior = function ior (num) {
29981 assert((this.negative | num.negative) ===
0);
29982 return this.iuor(num);
29985 // Or `num` with `this`
29986 BN.prototype.or = function or (num) {
29987 if (this.length
> num.length) return this.clone().ior(num);
29988 return num.clone().ior(this);
29991 BN.prototype.uor = function uor (num) {
29992 if (this.length
> num.length) return this.clone().iuor(num);
29993 return num.clone().iuor(this);
29996 // And `num` with `this` in-place
29997 BN.prototype.iuand = function iuand (num) {
29998 // b = min-length(num, this)
30000 if (this.length
> num.length) {
30006 for (var i =
0; i < b.length; i++) {
30007 this.words[i] = this.words[i] & num.words[i];
30010 this.length = b.length;
30012 return this.strip();
30015 BN.prototype.iand = function iand (num) {
30016 assert((this.negative | num.negative) ===
0);
30017 return this.iuand(num);
30020 // And `num` with `this`
30021 BN.prototype.and = function and (num) {
30022 if (this.length
> num.length) return this.clone().iand(num);
30023 return num.clone().iand(this);
30026 BN.prototype.uand = function uand (num) {
30027 if (this.length
> num.length) return this.clone().iuand(num);
30028 return num.clone().iuand(this);
30031 // Xor `num` with `this` in-place
30032 BN.prototype.iuxor = function iuxor (num) {
30033 // a.length
> b.length
30036 if (this.length
> num.length) {
30044 for (var i =
0; i < b.length; i++) {
30045 this.words[i] = a.words[i] ^ b.words[i];
30049 for (; i < a.length; i++) {
30050 this.words[i] = a.words[i];
30054 this.length = a.length;
30056 return this.strip();
30059 BN.prototype.ixor = function ixor (num) {
30060 assert((this.negative | num.negative) ===
0);
30061 return this.iuxor(num);
30064 // Xor `num` with `this`
30065 BN.prototype.xor = function xor (num) {
30066 if (this.length
> num.length) return this.clone().ixor(num);
30067 return num.clone().ixor(this);
30070 BN.prototype.uxor = function uxor (num) {
30071 if (this.length
> num.length) return this.clone().iuxor(num);
30072 return num.clone().iuxor(this);
30075 // Not ``this`` with ``width`` bitwidth
30076 BN.prototype.inotn = function inotn (width) {
30077 assert(typeof width === 'number' && width
>=
0);
30079 var bytesNeeded = Math.ceil(width /
26) |
0;
30080 var bitsLeft = width %
26;
30082 // Extend the buffer with leading zeroes
30083 this._expand(bytesNeeded);
30085 if (bitsLeft
> 0) {
30089 // Handle complete words
30090 for (var i =
0; i < bytesNeeded; i++) {
30091 this.words[i] = ~this.words[i] &
0x3ffffff;
30094 // Handle the residue
30095 if (bitsLeft
> 0) {
30096 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30099 // And remove leading zeroes
30100 return this.strip();
30103 BN.prototype.notn = function notn (width) {
30104 return this.clone().inotn(width);
30107 // Set `bit` of `this`
30108 BN.prototype.setn = function setn (bit, val) {
30109 assert(typeof bit === 'number' && bit
>=
0);
30111 var off = (bit /
26) |
0;
30112 var wbit = bit %
26;
30114 this._expand(off +
1);
30117 this.words[off] = this.words[off] | (
1 << wbit);
30119 this.words[off] = this.words[off] & ~(
1 << wbit);
30122 return this.strip();
30125 // Add `num` to `this` in-place
30126 BN.prototype.iadd = function iadd (num) {
30129 // negative + positive
30130 if (this.negative !==
0 && num.negative ===
0) {
30132 r = this.isub(num);
30133 this.negative ^=
1;
30134 return this._normSign();
30136 // positive + negative
30137 } else if (this.negative ===
0 && num.negative !==
0) {
30139 r = this.isub(num);
30141 return r._normSign();
30144 // a.length
> b.length
30146 if (this.length
> num.length) {
30155 for (var i =
0; i < b.length; i++) {
30156 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30157 this.words[i] = r &
0x3ffffff;
30160 for (; carry !==
0 && i < a.length; i++) {
30161 r = (a.words[i] |
0) + carry;
30162 this.words[i] = r &
0x3ffffff;
30166 this.length = a.length;
30168 this.words[this.length] = carry;
30170 // Copy the rest of the words
30171 } else if (a !== this) {
30172 for (; i < a.length; i++) {
30173 this.words[i] = a.words[i];
30180 // Add `num` to `this`
30181 BN.prototype.add = function add (num) {
30183 if (num.negative !==
0 && this.negative ===
0) {
30185 res = this.sub(num);
30188 } else if (num.negative ===
0 && this.negative !==
0) {
30190 res = num.sub(this);
30195 if (this.length
> num.length) return this.clone().iadd(num);
30197 return num.clone().iadd(this);
30200 // Subtract `num` from `this` in-place
30201 BN.prototype.isub = function isub (num) {
30202 // this - (-num) = this + num
30203 if (num.negative !==
0) {
30205 var r = this.iadd(num);
30207 return r._normSign();
30209 // -this - num = -(this + num)
30210 } else if (this.negative !==
0) {
30214 return this._normSign();
30217 // At this point both numbers are positive
30218 var cmp = this.cmp(num);
30220 // Optimization - zeroify
30239 for (var i =
0; i < b.length; i++) {
30240 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30242 this.words[i] = r &
0x3ffffff;
30244 for (; carry !==
0 && i < a.length; i++) {
30245 r = (a.words[i] |
0) + carry;
30247 this.words[i] = r &
0x3ffffff;
30250 // Copy rest of the words
30251 if (carry ===
0 && i < a.length && a !== this) {
30252 for (; i < a.length; i++) {
30253 this.words[i] = a.words[i];
30257 this.length = Math.max(this.length, i);
30263 return this.strip();
30266 // Subtract `num` from `this`
30267 BN.prototype.sub = function sub (num) {
30268 return this.clone().isub(num);
30271 function smallMulTo (self, num, out) {
30272 out.negative = num.negative ^ self.negative;
30273 var len = (self.length + num.length) |
0;
30275 len = (len -
1) |
0;
30277 // Peel one iteration (compiler can't do it, because of code complexity)
30278 var a = self.words[
0] |
0;
30279 var b = num.words[
0] |
0;
30282 var lo = r &
0x3ffffff;
30283 var carry = (r /
0x4000000) |
0;
30286 for (var k =
1; k < len; k++) {
30287 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30288 // note that ncarry could be
>=
0x3ffffff
30289 var ncarry = carry
>>> 26;
30290 var rword = carry &
0x3ffffff;
30291 var maxJ = Math.min(k, num.length -
1);
30292 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30293 var i = (k - j) |
0;
30294 a = self.words[i] |
0;
30295 b = num.words[j] |
0;
30297 ncarry += (r /
0x4000000) |
0;
30298 rword = r &
0x3ffffff;
30300 out.words[k] = rword |
0;
30301 carry = ncarry |
0;
30304 out.words[k] = carry |
0;
30309 return out.strip();
30312 // TODO(indutny): it may be reasonable to omit it for users who don't need
30313 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30314 // multiplication (like elliptic secp256k1).
30315 var comb10MulTo = function comb10MulTo (self, num, out) {
30316 var a = self.words;
30324 var al0 = a0 &
0x1fff;
30325 var ah0 = a0
>>> 13;
30327 var al1 = a1 &
0x1fff;
30328 var ah1 = a1
>>> 13;
30330 var al2 = a2 &
0x1fff;
30331 var ah2 = a2
>>> 13;
30333 var al3 = a3 &
0x1fff;
30334 var ah3 = a3
>>> 13;
30336 var al4 = a4 &
0x1fff;
30337 var ah4 = a4
>>> 13;
30339 var al5 = a5 &
0x1fff;
30340 var ah5 = a5
>>> 13;
30342 var al6 = a6 &
0x1fff;
30343 var ah6 = a6
>>> 13;
30345 var al7 = a7 &
0x1fff;
30346 var ah7 = a7
>>> 13;
30348 var al8 = a8 &
0x1fff;
30349 var ah8 = a8
>>> 13;
30351 var al9 = a9 &
0x1fff;
30352 var ah9 = a9
>>> 13;
30354 var bl0 = b0 &
0x1fff;
30355 var bh0 = b0
>>> 13;
30357 var bl1 = b1 &
0x1fff;
30358 var bh1 = b1
>>> 13;
30360 var bl2 = b2 &
0x1fff;
30361 var bh2 = b2
>>> 13;
30363 var bl3 = b3 &
0x1fff;
30364 var bh3 = b3
>>> 13;
30366 var bl4 = b4 &
0x1fff;
30367 var bh4 = b4
>>> 13;
30369 var bl5 = b5 &
0x1fff;
30370 var bh5 = b5
>>> 13;
30372 var bl6 = b6 &
0x1fff;
30373 var bh6 = b6
>>> 13;
30375 var bl7 = b7 &
0x1fff;
30376 var bh7 = b7
>>> 13;
30378 var bl8 = b8 &
0x1fff;
30379 var bh8 = b8
>>> 13;
30381 var bl9 = b9 &
0x1fff;
30382 var bh9 = b9
>>> 13;
30384 out.negative = self.negative ^ num.negative;
30387 lo = Math.imul(al0, bl0);
30388 mid = Math.imul(al0, bh0);
30389 mid = (mid + Math.imul(ah0, bl0)) |
0;
30390 hi = Math.imul(ah0, bh0);
30391 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30392 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30395 lo = Math.imul(al1, bl0);
30396 mid = Math.imul(al1, bh0);
30397 mid = (mid + Math.imul(ah1, bl0)) |
0;
30398 hi = Math.imul(ah1, bh0);
30399 lo = (lo + Math.imul(al0, bl1)) |
0;
30400 mid = (mid + Math.imul(al0, bh1)) |
0;
30401 mid = (mid + Math.imul(ah0, bl1)) |
0;
30402 hi = (hi + Math.imul(ah0, bh1)) |
0;
30403 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30404 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30407 lo = Math.imul(al2, bl0);
30408 mid = Math.imul(al2, bh0);
30409 mid = (mid + Math.imul(ah2, bl0)) |
0;
30410 hi = Math.imul(ah2, bh0);
30411 lo = (lo + Math.imul(al1, bl1)) |
0;
30412 mid = (mid + Math.imul(al1, bh1)) |
0;
30413 mid = (mid + Math.imul(ah1, bl1)) |
0;
30414 hi = (hi + Math.imul(ah1, bh1)) |
0;
30415 lo = (lo + Math.imul(al0, bl2)) |
0;
30416 mid = (mid + Math.imul(al0, bh2)) |
0;
30417 mid = (mid + Math.imul(ah0, bl2)) |
0;
30418 hi = (hi + Math.imul(ah0, bh2)) |
0;
30419 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30420 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30423 lo = Math.imul(al3, bl0);
30424 mid = Math.imul(al3, bh0);
30425 mid = (mid + Math.imul(ah3, bl0)) |
0;
30426 hi = Math.imul(ah3, bh0);
30427 lo = (lo + Math.imul(al2, bl1)) |
0;
30428 mid = (mid + Math.imul(al2, bh1)) |
0;
30429 mid = (mid + Math.imul(ah2, bl1)) |
0;
30430 hi = (hi + Math.imul(ah2, bh1)) |
0;
30431 lo = (lo + Math.imul(al1, bl2)) |
0;
30432 mid = (mid + Math.imul(al1, bh2)) |
0;
30433 mid = (mid + Math.imul(ah1, bl2)) |
0;
30434 hi = (hi + Math.imul(ah1, bh2)) |
0;
30435 lo = (lo + Math.imul(al0, bl3)) |
0;
30436 mid = (mid + Math.imul(al0, bh3)) |
0;
30437 mid = (mid + Math.imul(ah0, bl3)) |
0;
30438 hi = (hi + Math.imul(ah0, bh3)) |
0;
30439 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30440 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30443 lo = Math.imul(al4, bl0);
30444 mid = Math.imul(al4, bh0);
30445 mid = (mid + Math.imul(ah4, bl0)) |
0;
30446 hi = Math.imul(ah4, bh0);
30447 lo = (lo + Math.imul(al3, bl1)) |
0;
30448 mid = (mid + Math.imul(al3, bh1)) |
0;
30449 mid = (mid + Math.imul(ah3, bl1)) |
0;
30450 hi = (hi + Math.imul(ah3, bh1)) |
0;
30451 lo = (lo + Math.imul(al2, bl2)) |
0;
30452 mid = (mid + Math.imul(al2, bh2)) |
0;
30453 mid = (mid + Math.imul(ah2, bl2)) |
0;
30454 hi = (hi + Math.imul(ah2, bh2)) |
0;
30455 lo = (lo + Math.imul(al1, bl3)) |
0;
30456 mid = (mid + Math.imul(al1, bh3)) |
0;
30457 mid = (mid + Math.imul(ah1, bl3)) |
0;
30458 hi = (hi + Math.imul(ah1, bh3)) |
0;
30459 lo = (lo + Math.imul(al0, bl4)) |
0;
30460 mid = (mid + Math.imul(al0, bh4)) |
0;
30461 mid = (mid + Math.imul(ah0, bl4)) |
0;
30462 hi = (hi + Math.imul(ah0, bh4)) |
0;
30463 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30464 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30467 lo = Math.imul(al5, bl0);
30468 mid = Math.imul(al5, bh0);
30469 mid = (mid + Math.imul(ah5, bl0)) |
0;
30470 hi = Math.imul(ah5, bh0);
30471 lo = (lo + Math.imul(al4, bl1)) |
0;
30472 mid = (mid + Math.imul(al4, bh1)) |
0;
30473 mid = (mid + Math.imul(ah4, bl1)) |
0;
30474 hi = (hi + Math.imul(ah4, bh1)) |
0;
30475 lo = (lo + Math.imul(al3, bl2)) |
0;
30476 mid = (mid + Math.imul(al3, bh2)) |
0;
30477 mid = (mid + Math.imul(ah3, bl2)) |
0;
30478 hi = (hi + Math.imul(ah3, bh2)) |
0;
30479 lo = (lo + Math.imul(al2, bl3)) |
0;
30480 mid = (mid + Math.imul(al2, bh3)) |
0;
30481 mid = (mid + Math.imul(ah2, bl3)) |
0;
30482 hi = (hi + Math.imul(ah2, bh3)) |
0;
30483 lo = (lo + Math.imul(al1, bl4)) |
0;
30484 mid = (mid + Math.imul(al1, bh4)) |
0;
30485 mid = (mid + Math.imul(ah1, bl4)) |
0;
30486 hi = (hi + Math.imul(ah1, bh4)) |
0;
30487 lo = (lo + Math.imul(al0, bl5)) |
0;
30488 mid = (mid + Math.imul(al0, bh5)) |
0;
30489 mid = (mid + Math.imul(ah0, bl5)) |
0;
30490 hi = (hi + Math.imul(ah0, bh5)) |
0;
30491 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30492 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30495 lo = Math.imul(al6, bl0);
30496 mid = Math.imul(al6, bh0);
30497 mid = (mid + Math.imul(ah6, bl0)) |
0;
30498 hi = Math.imul(ah6, bh0);
30499 lo = (lo + Math.imul(al5, bl1)) |
0;
30500 mid = (mid + Math.imul(al5, bh1)) |
0;
30501 mid = (mid + Math.imul(ah5, bl1)) |
0;
30502 hi = (hi + Math.imul(ah5, bh1)) |
0;
30503 lo = (lo + Math.imul(al4, bl2)) |
0;
30504 mid = (mid + Math.imul(al4, bh2)) |
0;
30505 mid = (mid + Math.imul(ah4, bl2)) |
0;
30506 hi = (hi + Math.imul(ah4, bh2)) |
0;
30507 lo = (lo + Math.imul(al3, bl3)) |
0;
30508 mid = (mid + Math.imul(al3, bh3)) |
0;
30509 mid = (mid + Math.imul(ah3, bl3)) |
0;
30510 hi = (hi + Math.imul(ah3, bh3)) |
0;
30511 lo = (lo + Math.imul(al2, bl4)) |
0;
30512 mid = (mid + Math.imul(al2, bh4)) |
0;
30513 mid = (mid + Math.imul(ah2, bl4)) |
0;
30514 hi = (hi + Math.imul(ah2, bh4)) |
0;
30515 lo = (lo + Math.imul(al1, bl5)) |
0;
30516 mid = (mid + Math.imul(al1, bh5)) |
0;
30517 mid = (mid + Math.imul(ah1, bl5)) |
0;
30518 hi = (hi + Math.imul(ah1, bh5)) |
0;
30519 lo = (lo + Math.imul(al0, bl6)) |
0;
30520 mid = (mid + Math.imul(al0, bh6)) |
0;
30521 mid = (mid + Math.imul(ah0, bl6)) |
0;
30522 hi = (hi + Math.imul(ah0, bh6)) |
0;
30523 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30524 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30527 lo = Math.imul(al7, bl0);
30528 mid = Math.imul(al7, bh0);
30529 mid = (mid + Math.imul(ah7, bl0)) |
0;
30530 hi = Math.imul(ah7, bh0);
30531 lo = (lo + Math.imul(al6, bl1)) |
0;
30532 mid = (mid + Math.imul(al6, bh1)) |
0;
30533 mid = (mid + Math.imul(ah6, bl1)) |
0;
30534 hi = (hi + Math.imul(ah6, bh1)) |
0;
30535 lo = (lo + Math.imul(al5, bl2)) |
0;
30536 mid = (mid + Math.imul(al5, bh2)) |
0;
30537 mid = (mid + Math.imul(ah5, bl2)) |
0;
30538 hi = (hi + Math.imul(ah5, bh2)) |
0;
30539 lo = (lo + Math.imul(al4, bl3)) |
0;
30540 mid = (mid + Math.imul(al4, bh3)) |
0;
30541 mid = (mid + Math.imul(ah4, bl3)) |
0;
30542 hi = (hi + Math.imul(ah4, bh3)) |
0;
30543 lo = (lo + Math.imul(al3, bl4)) |
0;
30544 mid = (mid + Math.imul(al3, bh4)) |
0;
30545 mid = (mid + Math.imul(ah3, bl4)) |
0;
30546 hi = (hi + Math.imul(ah3, bh4)) |
0;
30547 lo = (lo + Math.imul(al2, bl5)) |
0;
30548 mid = (mid + Math.imul(al2, bh5)) |
0;
30549 mid = (mid + Math.imul(ah2, bl5)) |
0;
30550 hi = (hi + Math.imul(ah2, bh5)) |
0;
30551 lo = (lo + Math.imul(al1, bl6)) |
0;
30552 mid = (mid + Math.imul(al1, bh6)) |
0;
30553 mid = (mid + Math.imul(ah1, bl6)) |
0;
30554 hi = (hi + Math.imul(ah1, bh6)) |
0;
30555 lo = (lo + Math.imul(al0, bl7)) |
0;
30556 mid = (mid + Math.imul(al0, bh7)) |
0;
30557 mid = (mid + Math.imul(ah0, bl7)) |
0;
30558 hi = (hi + Math.imul(ah0, bh7)) |
0;
30559 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30560 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30563 lo = Math.imul(al8, bl0);
30564 mid = Math.imul(al8, bh0);
30565 mid = (mid + Math.imul(ah8, bl0)) |
0;
30566 hi = Math.imul(ah8, bh0);
30567 lo = (lo + Math.imul(al7, bl1)) |
0;
30568 mid = (mid + Math.imul(al7, bh1)) |
0;
30569 mid = (mid + Math.imul(ah7, bl1)) |
0;
30570 hi = (hi + Math.imul(ah7, bh1)) |
0;
30571 lo = (lo + Math.imul(al6, bl2)) |
0;
30572 mid = (mid + Math.imul(al6, bh2)) |
0;
30573 mid = (mid + Math.imul(ah6, bl2)) |
0;
30574 hi = (hi + Math.imul(ah6, bh2)) |
0;
30575 lo = (lo + Math.imul(al5, bl3)) |
0;
30576 mid = (mid + Math.imul(al5, bh3)) |
0;
30577 mid = (mid + Math.imul(ah5, bl3)) |
0;
30578 hi = (hi + Math.imul(ah5, bh3)) |
0;
30579 lo = (lo + Math.imul(al4, bl4)) |
0;
30580 mid = (mid + Math.imul(al4, bh4)) |
0;
30581 mid = (mid + Math.imul(ah4, bl4)) |
0;
30582 hi = (hi + Math.imul(ah4, bh4)) |
0;
30583 lo = (lo + Math.imul(al3, bl5)) |
0;
30584 mid = (mid + Math.imul(al3, bh5)) |
0;
30585 mid = (mid + Math.imul(ah3, bl5)) |
0;
30586 hi = (hi + Math.imul(ah3, bh5)) |
0;
30587 lo = (lo + Math.imul(al2, bl6)) |
0;
30588 mid = (mid + Math.imul(al2, bh6)) |
0;
30589 mid = (mid + Math.imul(ah2, bl6)) |
0;
30590 hi = (hi + Math.imul(ah2, bh6)) |
0;
30591 lo = (lo + Math.imul(al1, bl7)) |
0;
30592 mid = (mid + Math.imul(al1, bh7)) |
0;
30593 mid = (mid + Math.imul(ah1, bl7)) |
0;
30594 hi = (hi + Math.imul(ah1, bh7)) |
0;
30595 lo = (lo + Math.imul(al0, bl8)) |
0;
30596 mid = (mid + Math.imul(al0, bh8)) |
0;
30597 mid = (mid + Math.imul(ah0, bl8)) |
0;
30598 hi = (hi + Math.imul(ah0, bh8)) |
0;
30599 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30600 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30603 lo = Math.imul(al9, bl0);
30604 mid = Math.imul(al9, bh0);
30605 mid = (mid + Math.imul(ah9, bl0)) |
0;
30606 hi = Math.imul(ah9, bh0);
30607 lo = (lo + Math.imul(al8, bl1)) |
0;
30608 mid = (mid + Math.imul(al8, bh1)) |
0;
30609 mid = (mid + Math.imul(ah8, bl1)) |
0;
30610 hi = (hi + Math.imul(ah8, bh1)) |
0;
30611 lo = (lo + Math.imul(al7, bl2)) |
0;
30612 mid = (mid + Math.imul(al7, bh2)) |
0;
30613 mid = (mid + Math.imul(ah7, bl2)) |
0;
30614 hi = (hi + Math.imul(ah7, bh2)) |
0;
30615 lo = (lo + Math.imul(al6, bl3)) |
0;
30616 mid = (mid + Math.imul(al6, bh3)) |
0;
30617 mid = (mid + Math.imul(ah6, bl3)) |
0;
30618 hi = (hi + Math.imul(ah6, bh3)) |
0;
30619 lo = (lo + Math.imul(al5, bl4)) |
0;
30620 mid = (mid + Math.imul(al5, bh4)) |
0;
30621 mid = (mid + Math.imul(ah5, bl4)) |
0;
30622 hi = (hi + Math.imul(ah5, bh4)) |
0;
30623 lo = (lo + Math.imul(al4, bl5)) |
0;
30624 mid = (mid + Math.imul(al4, bh5)) |
0;
30625 mid = (mid + Math.imul(ah4, bl5)) |
0;
30626 hi = (hi + Math.imul(ah4, bh5)) |
0;
30627 lo = (lo + Math.imul(al3, bl6)) |
0;
30628 mid = (mid + Math.imul(al3, bh6)) |
0;
30629 mid = (mid + Math.imul(ah3, bl6)) |
0;
30630 hi = (hi + Math.imul(ah3, bh6)) |
0;
30631 lo = (lo + Math.imul(al2, bl7)) |
0;
30632 mid = (mid + Math.imul(al2, bh7)) |
0;
30633 mid = (mid + Math.imul(ah2, bl7)) |
0;
30634 hi = (hi + Math.imul(ah2, bh7)) |
0;
30635 lo = (lo + Math.imul(al1, bl8)) |
0;
30636 mid = (mid + Math.imul(al1, bh8)) |
0;
30637 mid = (mid + Math.imul(ah1, bl8)) |
0;
30638 hi = (hi + Math.imul(ah1, bh8)) |
0;
30639 lo = (lo + Math.imul(al0, bl9)) |
0;
30640 mid = (mid + Math.imul(al0, bh9)) |
0;
30641 mid = (mid + Math.imul(ah0, bl9)) |
0;
30642 hi = (hi + Math.imul(ah0, bh9)) |
0;
30643 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30644 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30647 lo = Math.imul(al9, bl1);
30648 mid = Math.imul(al9, bh1);
30649 mid = (mid + Math.imul(ah9, bl1)) |
0;
30650 hi = Math.imul(ah9, bh1);
30651 lo = (lo + Math.imul(al8, bl2)) |
0;
30652 mid = (mid + Math.imul(al8, bh2)) |
0;
30653 mid = (mid + Math.imul(ah8, bl2)) |
0;
30654 hi = (hi + Math.imul(ah8, bh2)) |
0;
30655 lo = (lo + Math.imul(al7, bl3)) |
0;
30656 mid = (mid + Math.imul(al7, bh3)) |
0;
30657 mid = (mid + Math.imul(ah7, bl3)) |
0;
30658 hi = (hi + Math.imul(ah7, bh3)) |
0;
30659 lo = (lo + Math.imul(al6, bl4)) |
0;
30660 mid = (mid + Math.imul(al6, bh4)) |
0;
30661 mid = (mid + Math.imul(ah6, bl4)) |
0;
30662 hi = (hi + Math.imul(ah6, bh4)) |
0;
30663 lo = (lo + Math.imul(al5, bl5)) |
0;
30664 mid = (mid + Math.imul(al5, bh5)) |
0;
30665 mid = (mid + Math.imul(ah5, bl5)) |
0;
30666 hi = (hi + Math.imul(ah5, bh5)) |
0;
30667 lo = (lo + Math.imul(al4, bl6)) |
0;
30668 mid = (mid + Math.imul(al4, bh6)) |
0;
30669 mid = (mid + Math.imul(ah4, bl6)) |
0;
30670 hi = (hi + Math.imul(ah4, bh6)) |
0;
30671 lo = (lo + Math.imul(al3, bl7)) |
0;
30672 mid = (mid + Math.imul(al3, bh7)) |
0;
30673 mid = (mid + Math.imul(ah3, bl7)) |
0;
30674 hi = (hi + Math.imul(ah3, bh7)) |
0;
30675 lo = (lo + Math.imul(al2, bl8)) |
0;
30676 mid = (mid + Math.imul(al2, bh8)) |
0;
30677 mid = (mid + Math.imul(ah2, bl8)) |
0;
30678 hi = (hi + Math.imul(ah2, bh8)) |
0;
30679 lo = (lo + Math.imul(al1, bl9)) |
0;
30680 mid = (mid + Math.imul(al1, bh9)) |
0;
30681 mid = (mid + Math.imul(ah1, bl9)) |
0;
30682 hi = (hi + Math.imul(ah1, bh9)) |
0;
30683 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30684 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30687 lo = Math.imul(al9, bl2);
30688 mid = Math.imul(al9, bh2);
30689 mid = (mid + Math.imul(ah9, bl2)) |
0;
30690 hi = Math.imul(ah9, bh2);
30691 lo = (lo + Math.imul(al8, bl3)) |
0;
30692 mid = (mid + Math.imul(al8, bh3)) |
0;
30693 mid = (mid + Math.imul(ah8, bl3)) |
0;
30694 hi = (hi + Math.imul(ah8, bh3)) |
0;
30695 lo = (lo + Math.imul(al7, bl4)) |
0;
30696 mid = (mid + Math.imul(al7, bh4)) |
0;
30697 mid = (mid + Math.imul(ah7, bl4)) |
0;
30698 hi = (hi + Math.imul(ah7, bh4)) |
0;
30699 lo = (lo + Math.imul(al6, bl5)) |
0;
30700 mid = (mid + Math.imul(al6, bh5)) |
0;
30701 mid = (mid + Math.imul(ah6, bl5)) |
0;
30702 hi = (hi + Math.imul(ah6, bh5)) |
0;
30703 lo = (lo + Math.imul(al5, bl6)) |
0;
30704 mid = (mid + Math.imul(al5, bh6)) |
0;
30705 mid = (mid + Math.imul(ah5, bl6)) |
0;
30706 hi = (hi + Math.imul(ah5, bh6)) |
0;
30707 lo = (lo + Math.imul(al4, bl7)) |
0;
30708 mid = (mid + Math.imul(al4, bh7)) |
0;
30709 mid = (mid + Math.imul(ah4, bl7)) |
0;
30710 hi = (hi + Math.imul(ah4, bh7)) |
0;
30711 lo = (lo + Math.imul(al3, bl8)) |
0;
30712 mid = (mid + Math.imul(al3, bh8)) |
0;
30713 mid = (mid + Math.imul(ah3, bl8)) |
0;
30714 hi = (hi + Math.imul(ah3, bh8)) |
0;
30715 lo = (lo + Math.imul(al2, bl9)) |
0;
30716 mid = (mid + Math.imul(al2, bh9)) |
0;
30717 mid = (mid + Math.imul(ah2, bl9)) |
0;
30718 hi = (hi + Math.imul(ah2, bh9)) |
0;
30719 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30720 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30723 lo = Math.imul(al9, bl3);
30724 mid = Math.imul(al9, bh3);
30725 mid = (mid + Math.imul(ah9, bl3)) |
0;
30726 hi = Math.imul(ah9, bh3);
30727 lo = (lo + Math.imul(al8, bl4)) |
0;
30728 mid = (mid + Math.imul(al8, bh4)) |
0;
30729 mid = (mid + Math.imul(ah8, bl4)) |
0;
30730 hi = (hi + Math.imul(ah8, bh4)) |
0;
30731 lo = (lo + Math.imul(al7, bl5)) |
0;
30732 mid = (mid + Math.imul(al7, bh5)) |
0;
30733 mid = (mid + Math.imul(ah7, bl5)) |
0;
30734 hi = (hi + Math.imul(ah7, bh5)) |
0;
30735 lo = (lo + Math.imul(al6, bl6)) |
0;
30736 mid = (mid + Math.imul(al6, bh6)) |
0;
30737 mid = (mid + Math.imul(ah6, bl6)) |
0;
30738 hi = (hi + Math.imul(ah6, bh6)) |
0;
30739 lo = (lo + Math.imul(al5, bl7)) |
0;
30740 mid = (mid + Math.imul(al5, bh7)) |
0;
30741 mid = (mid + Math.imul(ah5, bl7)) |
0;
30742 hi = (hi + Math.imul(ah5, bh7)) |
0;
30743 lo = (lo + Math.imul(al4, bl8)) |
0;
30744 mid = (mid + Math.imul(al4, bh8)) |
0;
30745 mid = (mid + Math.imul(ah4, bl8)) |
0;
30746 hi = (hi + Math.imul(ah4, bh8)) |
0;
30747 lo = (lo + Math.imul(al3, bl9)) |
0;
30748 mid = (mid + Math.imul(al3, bh9)) |
0;
30749 mid = (mid + Math.imul(ah3, bl9)) |
0;
30750 hi = (hi + Math.imul(ah3, bh9)) |
0;
30751 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30752 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30755 lo = Math.imul(al9, bl4);
30756 mid = Math.imul(al9, bh4);
30757 mid = (mid + Math.imul(ah9, bl4)) |
0;
30758 hi = Math.imul(ah9, bh4);
30759 lo = (lo + Math.imul(al8, bl5)) |
0;
30760 mid = (mid + Math.imul(al8, bh5)) |
0;
30761 mid = (mid + Math.imul(ah8, bl5)) |
0;
30762 hi = (hi + Math.imul(ah8, bh5)) |
0;
30763 lo = (lo + Math.imul(al7, bl6)) |
0;
30764 mid = (mid + Math.imul(al7, bh6)) |
0;
30765 mid = (mid + Math.imul(ah7, bl6)) |
0;
30766 hi = (hi + Math.imul(ah7, bh6)) |
0;
30767 lo = (lo + Math.imul(al6, bl7)) |
0;
30768 mid = (mid + Math.imul(al6, bh7)) |
0;
30769 mid = (mid + Math.imul(ah6, bl7)) |
0;
30770 hi = (hi + Math.imul(ah6, bh7)) |
0;
30771 lo = (lo + Math.imul(al5, bl8)) |
0;
30772 mid = (mid + Math.imul(al5, bh8)) |
0;
30773 mid = (mid + Math.imul(ah5, bl8)) |
0;
30774 hi = (hi + Math.imul(ah5, bh8)) |
0;
30775 lo = (lo + Math.imul(al4, bl9)) |
0;
30776 mid = (mid + Math.imul(al4, bh9)) |
0;
30777 mid = (mid + Math.imul(ah4, bl9)) |
0;
30778 hi = (hi + Math.imul(ah4, bh9)) |
0;
30779 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30780 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30783 lo = Math.imul(al9, bl5);
30784 mid = Math.imul(al9, bh5);
30785 mid = (mid + Math.imul(ah9, bl5)) |
0;
30786 hi = Math.imul(ah9, bh5);
30787 lo = (lo + Math.imul(al8, bl6)) |
0;
30788 mid = (mid + Math.imul(al8, bh6)) |
0;
30789 mid = (mid + Math.imul(ah8, bl6)) |
0;
30790 hi = (hi + Math.imul(ah8, bh6)) |
0;
30791 lo = (lo + Math.imul(al7, bl7)) |
0;
30792 mid = (mid + Math.imul(al7, bh7)) |
0;
30793 mid = (mid + Math.imul(ah7, bl7)) |
0;
30794 hi = (hi + Math.imul(ah7, bh7)) |
0;
30795 lo = (lo + Math.imul(al6, bl8)) |
0;
30796 mid = (mid + Math.imul(al6, bh8)) |
0;
30797 mid = (mid + Math.imul(ah6, bl8)) |
0;
30798 hi = (hi + Math.imul(ah6, bh8)) |
0;
30799 lo = (lo + Math.imul(al5, bl9)) |
0;
30800 mid = (mid + Math.imul(al5, bh9)) |
0;
30801 mid = (mid + Math.imul(ah5, bl9)) |
0;
30802 hi = (hi + Math.imul(ah5, bh9)) |
0;
30803 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30804 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30807 lo = Math.imul(al9, bl6);
30808 mid = Math.imul(al9, bh6);
30809 mid = (mid + Math.imul(ah9, bl6)) |
0;
30810 hi = Math.imul(ah9, bh6);
30811 lo = (lo + Math.imul(al8, bl7)) |
0;
30812 mid = (mid + Math.imul(al8, bh7)) |
0;
30813 mid = (mid + Math.imul(ah8, bl7)) |
0;
30814 hi = (hi + Math.imul(ah8, bh7)) |
0;
30815 lo = (lo + Math.imul(al7, bl8)) |
0;
30816 mid = (mid + Math.imul(al7, bh8)) |
0;
30817 mid = (mid + Math.imul(ah7, bl8)) |
0;
30818 hi = (hi + Math.imul(ah7, bh8)) |
0;
30819 lo = (lo + Math.imul(al6, bl9)) |
0;
30820 mid = (mid + Math.imul(al6, bh9)) |
0;
30821 mid = (mid + Math.imul(ah6, bl9)) |
0;
30822 hi = (hi + Math.imul(ah6, bh9)) |
0;
30823 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30824 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30827 lo = Math.imul(al9, bl7);
30828 mid = Math.imul(al9, bh7);
30829 mid = (mid + Math.imul(ah9, bl7)) |
0;
30830 hi = Math.imul(ah9, bh7);
30831 lo = (lo + Math.imul(al8, bl8)) |
0;
30832 mid = (mid + Math.imul(al8, bh8)) |
0;
30833 mid = (mid + Math.imul(ah8, bl8)) |
0;
30834 hi = (hi + Math.imul(ah8, bh8)) |
0;
30835 lo = (lo + Math.imul(al7, bl9)) |
0;
30836 mid = (mid + Math.imul(al7, bh9)) |
0;
30837 mid = (mid + Math.imul(ah7, bl9)) |
0;
30838 hi = (hi + Math.imul(ah7, bh9)) |
0;
30839 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30840 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30843 lo = Math.imul(al9, bl8);
30844 mid = Math.imul(al9, bh8);
30845 mid = (mid + Math.imul(ah9, bl8)) |
0;
30846 hi = Math.imul(ah9, bh8);
30847 lo = (lo + Math.imul(al8, bl9)) |
0;
30848 mid = (mid + Math.imul(al8, bh9)) |
0;
30849 mid = (mid + Math.imul(ah8, bl9)) |
0;
30850 hi = (hi + Math.imul(ah8, bh9)) |
0;
30851 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30852 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30855 lo = Math.imul(al9, bl9);
30856 mid = Math.imul(al9, bh9);
30857 mid = (mid + Math.imul(ah9, bl9)) |
0;
30858 hi = Math.imul(ah9, bh9);
30859 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30860 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30890 comb10MulTo = smallMulTo;
30893 function bigMulTo (self, num, out) {
30894 out.negative = num.negative ^ self.negative;
30895 out.length = self.length + num.length;
30899 for (var k =
0; k < out.length -
1; k++) {
30900 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30901 // note that ncarry could be
>=
0x3ffffff
30902 var ncarry = hncarry;
30904 var rword = carry &
0x3ffffff;
30905 var maxJ = Math.min(k, num.length -
1);
30906 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30908 var a = self.words[i] |
0;
30909 var b = num.words[j] |
0;
30912 var lo = r &
0x3ffffff;
30913 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30914 lo = (lo + rword) |
0;
30915 rword = lo &
0x3ffffff;
30916 ncarry = (ncarry + (lo
>>> 26)) |
0;
30918 hncarry += ncarry
>>> 26;
30919 ncarry &=
0x3ffffff;
30921 out.words[k] = rword;
30926 out.words[k] = carry;
30931 return out.strip();
30934 function jumboMulTo (self, num, out) {
30935 var fftm = new FFTM();
30936 return fftm.mulp(self, num, out);
30939 BN.prototype.mulTo = function mulTo (num, out) {
30941 var len = this.length + num.length;
30942 if (this.length ===
10 && num.length ===
10) {
30943 res = comb10MulTo(this, num, out);
30944 } else if (len <
63) {
30945 res = smallMulTo(this, num, out);
30946 } else if (len <
1024) {
30947 res = bigMulTo(this, num, out);
30949 res = jumboMulTo(this, num, out);
30955 // Cooley-Tukey algorithm for FFT
30956 // slightly revisited to rely on looping instead of recursion
30958 function FFTM (x, y) {
30963 FFTM.prototype.makeRBT = function makeRBT (N) {
30964 var t = new Array(N);
30965 var l = BN.prototype._countBits(N) -
1;
30966 for (var i =
0; i < N; i++) {
30967 t[i] = this.revBin(i, l, N);
30973 // Returns binary-reversed representation of `x`
30974 FFTM.prototype.revBin = function revBin (x, l, N) {
30975 if (x ===
0 || x === N -
1) return x;
30978 for (var i =
0; i < l; i++) {
30979 rb |= (x &
1) << (l - i -
1);
30986 // Performs "tweedling" phase, therefore 'emulating'
30987 // behaviour of the recursive algorithm
30988 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
30989 for (var i =
0; i < N; i++) {
30990 rtws[i] = rws[rbt[i]];
30991 itws[i] = iws[rbt[i]];
30995 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
30996 this.permute(rbt, rws, iws, rtws, itws, N);
30998 for (var s =
1; s < N; s <<=
1) {
31001 var rtwdf = Math.cos(
2 * Math.PI / l);
31002 var itwdf = Math.sin(
2 * Math.PI / l);
31004 for (var p =
0; p < N; p += l) {
31005 var rtwdf_ = rtwdf;
31006 var itwdf_ = itwdf;
31008 for (var j =
0; j < s; j++) {
31009 var re = rtws[p + j];
31010 var ie = itws[p + j];
31012 var ro = rtws[p + j + s];
31013 var io = itws[p + j + s];
31015 var rx = rtwdf_ * ro - itwdf_ * io;
31017 io = rtwdf_ * io + itwdf_ * ro;
31020 rtws[p + j] = re + ro;
31021 itws[p + j] = ie + io;
31023 rtws[p + j + s] = re - ro;
31024 itws[p + j + s] = ie - io;
31026 /* jshint maxdepth : false */
31028 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31030 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31038 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31039 var N = Math.max(m, n) |
1;
31042 for (N = N /
2 |
0; N; N = N
>>> 1) {
31046 return
1 << i +
1 + odd;
31049 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31050 if (N <=
1) return;
31052 for (var i =
0; i < N /
2; i++) {
31055 rws[i] = rws[N - i -
1];
31056 rws[N - i -
1] = t;
31060 iws[i] = -iws[N - i -
1];
31061 iws[N - i -
1] = -t;
31065 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31067 for (var i =
0; i < N /
2; i++) {
31068 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31069 Math.round(ws[
2 * i] / N) +
31072 ws[i] = w &
0x3ffffff;
31074 if (w <
0x4000000) {
31077 carry = w /
0x4000000 |
0;
31084 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31086 for (var i =
0; i < len; i++) {
31087 carry = carry + (ws[i] |
0);
31089 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31090 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31094 for (i =
2 * len; i < N; ++i) {
31098 assert(carry ===
0);
31099 assert((carry & ~
0x1fff) ===
0);
31102 FFTM.prototype.stub = function stub (N) {
31103 var ph = new Array(N);
31104 for (var i =
0; i < N; i++) {
31111 FFTM.prototype.mulp = function mulp (x, y, out) {
31112 var N =
2 * this.guessLen13b(x.length, y.length);
31114 var rbt = this.makeRBT(N);
31116 var _ = this.stub(N);
31118 var rws = new Array(N);
31119 var rwst = new Array(N);
31120 var iwst = new Array(N);
31122 var nrws = new Array(N);
31123 var nrwst = new Array(N);
31124 var niwst = new Array(N);
31126 var rmws = out.words;
31129 this.convert13b(x.words, x.length, rws, N);
31130 this.convert13b(y.words, y.length, nrws, N);
31132 this.transform(rws, _, rwst, iwst, N, rbt);
31133 this.transform(nrws, _, nrwst, niwst, N, rbt);
31135 for (var i =
0; i < N; i++) {
31136 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31137 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31141 this.conjugate(rwst, iwst, N);
31142 this.transform(rwst, iwst, rmws, _, N, rbt);
31143 this.conjugate(rmws, _, N);
31144 this.normalize13b(rmws, N);
31146 out.negative = x.negative ^ y.negative;
31147 out.length = x.length + y.length;
31148 return out.strip();
31151 // Multiply `this` by `num`
31152 BN.prototype.mul = function mul (num) {
31153 var out = new BN(null);
31154 out.words = new Array(this.length + num.length);
31155 return this.mulTo(num, out);
31158 // Multiply employing FFT
31159 BN.prototype.mulf = function mulf (num) {
31160 var out = new BN(null);
31161 out.words = new Array(this.length + num.length);
31162 return jumboMulTo(this, num, out);
31165 // In-place Multiplication
31166 BN.prototype.imul = function imul (num) {
31167 return this.clone().mulTo(num, this);
31170 BN.prototype.imuln = function imuln (num) {
31171 assert(typeof num === 'number');
31172 assert(num <
0x4000000);
31176 for (var i =
0; i < this.length; i++) {
31177 var w = (this.words[i] |
0) * num;
31178 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31180 carry += (w /
0x4000000) |
0;
31181 // NOTE: lo is
27bit maximum
31182 carry += lo
>>> 26;
31183 this.words[i] = lo &
0x3ffffff;
31187 this.words[i] = carry;
31194 BN.prototype.muln = function muln (num) {
31195 return this.clone().imuln(num);
31199 BN.prototype.sqr = function sqr () {
31200 return this.mul(this);
31203 // `this` * `this` in-place
31204 BN.prototype.isqr = function isqr () {
31205 return this.imul(this.clone());
31208 // Math.pow(`this`, `num`)
31209 BN.prototype.pow = function pow (num) {
31210 var w = toBitArray(num);
31211 if (w.length ===
0) return new BN(
1);
31213 // Skip leading zeroes
31215 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31216 if (w[i] !==
0) break;
31219 if (++i < w.length) {
31220 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31221 if (w[i] ===
0) continue;
31230 // Shift-left in-place
31231 BN.prototype.iushln = function iushln (bits) {
31232 assert(typeof bits === 'number' && bits
>=
0);
31234 var s = (bits - r) /
26;
31235 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31241 for (i =
0; i < this.length; i++) {
31242 var newCarry = this.words[i] & carryMask;
31243 var c = ((this.words[i] |
0) - newCarry) << r;
31244 this.words[i] = c | carry;
31245 carry = newCarry
>>> (
26 - r);
31249 this.words[i] = carry;
31255 for (i = this.length -
1; i
>=
0; i--) {
31256 this.words[i + s] = this.words[i];
31259 for (i =
0; i < s; i++) {
31266 return this.strip();
31269 BN.prototype.ishln = function ishln (bits) {
31270 // TODO(indutny): implement me
31271 assert(this.negative ===
0);
31272 return this.iushln(bits);
31275 // Shift-right in-place
31276 // NOTE: `hint` is a lowest bit before trailing zeroes
31277 // NOTE: if `extended` is present - it will be filled with destroyed bits
31278 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31279 assert(typeof bits === 'number' && bits
>=
0);
31282 h = (hint - (hint %
26)) /
26;
31288 var s = Math.min((bits - r) /
26, this.length);
31289 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31290 var maskedWords = extended;
31293 h = Math.max(
0, h);
31295 // Extended mode, copy masked part
31297 for (var i =
0; i < s; i++) {
31298 maskedWords.words[i] = this.words[i];
31300 maskedWords.length = s;
31304 // No-op, we should not move anything at all
31305 } else if (this.length
> s) {
31307 for (i =
0; i < this.length; i++) {
31308 this.words[i] = this.words[i + s];
31316 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31317 var word = this.words[i] |
0;
31318 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31319 carry = word & mask;
31322 // Push carried bits as a mask
31323 if (maskedWords && carry !==
0) {
31324 maskedWords.words[maskedWords.length++] = carry;
31327 if (this.length ===
0) {
31332 return this.strip();
31335 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31336 // TODO(indutny): implement me
31337 assert(this.negative ===
0);
31338 return this.iushrn(bits, hint, extended);
31342 BN.prototype.shln = function shln (bits) {
31343 return this.clone().ishln(bits);
31346 BN.prototype.ushln = function ushln (bits) {
31347 return this.clone().iushln(bits);
31351 BN.prototype.shrn = function shrn (bits) {
31352 return this.clone().ishrn(bits);
31355 BN.prototype.ushrn = function ushrn (bits) {
31356 return this.clone().iushrn(bits);
31359 // Test if n bit is set
31360 BN.prototype.testn = function testn (bit) {
31361 assert(typeof bit === 'number' && bit
>=
0);
31363 var s = (bit - r) /
26;
31366 // Fast case: bit is much higher than all existing words
31367 if (this.length <= s) return false;
31369 // Check bit and return
31370 var w = this.words[s];
31375 // Return only lowers bits of number (in-place)
31376 BN.prototype.imaskn = function imaskn (bits) {
31377 assert(typeof bits === 'number' && bits
>=
0);
31379 var s = (bits - r) /
26;
31381 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31383 if (this.length <= s) {
31390 this.length = Math.min(s, this.length);
31393 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31394 this.words[this.length -
1] &= mask;
31397 return this.strip();
31400 // Return only lowers bits of number
31401 BN.prototype.maskn = function maskn (bits) {
31402 return this.clone().imaskn(bits);
31405 // Add plain number `num` to `this`
31406 BN.prototype.iaddn = function iaddn (num) {
31407 assert(typeof num === 'number');
31408 assert(num <
0x4000000);
31409 if (num <
0) return this.isubn(-num);
31411 // Possible sign change
31412 if (this.negative !==
0) {
31413 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31414 this.words[
0] = num - (this.words[
0] |
0);
31425 // Add without checks
31426 return this._iaddn(num);
31429 BN.prototype._iaddn = function _iaddn (num) {
31430 this.words[
0] += num;
31433 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31434 this.words[i] -=
0x4000000;
31435 if (i === this.length -
1) {
31436 this.words[i +
1] =
1;
31438 this.words[i +
1]++;
31441 this.length = Math.max(this.length, i +
1);
31446 // Subtract plain number `num` from `this`
31447 BN.prototype.isubn = function isubn (num) {
31448 assert(typeof num === 'number');
31449 assert(num <
0x4000000);
31450 if (num <
0) return this.iaddn(-num);
31452 if (this.negative !==
0) {
31459 this.words[
0] -= num;
31461 if (this.length ===
1 && this.words[
0] <
0) {
31462 this.words[
0] = -this.words[
0];
31466 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31467 this.words[i] +=
0x4000000;
31468 this.words[i +
1] -=
1;
31472 return this.strip();
31475 BN.prototype.addn = function addn (num) {
31476 return this.clone().iaddn(num);
31479 BN.prototype.subn = function subn (num) {
31480 return this.clone().isubn(num);
31483 BN.prototype.iabs = function iabs () {
31489 BN.prototype.abs = function abs () {
31490 return this.clone().iabs();
31493 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31494 var len = num.length + shift;
31501 for (i =
0; i < num.length; i++) {
31502 w = (this.words[i + shift] |
0) + carry;
31503 var right = (num.words[i] |
0) * mul;
31504 w -= right &
0x3ffffff;
31505 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31506 this.words[i + shift] = w &
0x3ffffff;
31508 for (; i < this.length - shift; i++) {
31509 w = (this.words[i + shift] |
0) + carry;
31511 this.words[i + shift] = w &
0x3ffffff;
31514 if (carry ===
0) return this.strip();
31516 // Subtraction overflow
31517 assert(carry === -
1);
31519 for (i =
0; i < this.length; i++) {
31520 w = -(this.words[i] |
0) + carry;
31522 this.words[i] = w &
0x3ffffff;
31526 return this.strip();
31529 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31530 var shift = this.length - num.length;
31532 var a = this.clone();
31536 var bhi = b.words[b.length -
1] |
0;
31537 var bhiBits = this._countBits(bhi);
31538 shift =
26 - bhiBits;
31540 b = b.ushln(shift);
31542 bhi = b.words[b.length -
1] |
0;
31545 // Initialize quotient
31546 var m = a.length - b.length;
31549 if (mode !== 'mod') {
31552 q.words = new Array(q.length);
31553 for (var i =
0; i < q.length; i++) {
31558 var diff = a.clone()._ishlnsubmul(b,
1, m);
31559 if (diff.negative ===
0) {
31566 for (var j = m -
1; j
>=
0; j--) {
31567 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31568 (a.words[b.length + j -
1] |
0);
31570 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31572 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31574 a._ishlnsubmul(b, qj, j);
31575 while (a.negative !==
0) {
31578 a._ishlnsubmul(b,
1, j);
31593 if (mode !== 'div' && shift !==
0) {
31603 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31604 // to `div` to request div only, or be absent to
31605 // request both div & mod
31606 //
2) `positive` is true if unsigned mod is requested
31607 BN.prototype.divmod = function divmod (num, mode, positive) {
31608 assert(!num.isZero());
31610 if (this.isZero()) {
31618 if (this.negative !==
0 && num.negative ===
0) {
31619 res = this.neg().divmod(num, mode);
31621 if (mode !== 'mod') {
31622 div = res.div.neg();
31625 if (mode !== 'div') {
31626 mod = res.mod.neg();
31627 if (positive && mod.negative !==
0) {
31638 if (this.negative ===
0 && num.negative !==
0) {
31639 res = this.divmod(num.neg(), mode);
31641 if (mode !== 'mod') {
31642 div = res.div.neg();
31651 if ((this.negative & num.negative) !==
0) {
31652 res = this.neg().divmod(num.neg(), mode);
31654 if (mode !== 'div') {
31655 mod = res.mod.neg();
31656 if (positive && mod.negative !==
0) {
31667 // Both numbers are positive at this point
31669 // Strip both numbers to approximate shift value
31670 if (num.length
> this.length || this.cmp(num) <
0) {
31677 // Very short reduction
31678 if (num.length ===
1) {
31679 if (mode === 'div') {
31681 div: this.divn(num.words[
0]),
31686 if (mode === 'mod') {
31689 mod: new BN(this.modn(num.words[
0]))
31694 div: this.divn(num.words[
0]),
31695 mod: new BN(this.modn(num.words[
0]))
31699 return this._wordDiv(num, mode);
31702 // Find `this` / `num`
31703 BN.prototype.div = function div (num) {
31704 return this.divmod(num, 'div', false).div;
31707 // Find `this` % `num`
31708 BN.prototype.mod = function mod (num) {
31709 return this.divmod(num, 'mod', false).mod;
31712 BN.prototype.umod = function umod (num) {
31713 return this.divmod(num, 'mod', true).mod;
31716 // Find Round(`this` / `num`)
31717 BN.prototype.divRound = function divRound (num) {
31718 var dm = this.divmod(num);
31720 // Fast case - exact division
31721 if (dm.mod.isZero()) return dm.div;
31723 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31725 var half = num.ushrn(
1);
31726 var r2 = num.andln(
1);
31727 var cmp = mod.cmp(half);
31730 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31733 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31736 BN.prototype.modn = function modn (num) {
31737 assert(num <=
0x3ffffff);
31738 var p = (
1 <<
26) % num;
31741 for (var i = this.length -
1; i
>=
0; i--) {
31742 acc = (p * acc + (this.words[i] |
0)) % num;
31748 // In-place division by number
31749 BN.prototype.idivn = function idivn (num) {
31750 assert(num <=
0x3ffffff);
31753 for (var i = this.length -
1; i
>=
0; i--) {
31754 var w = (this.words[i] |
0) + carry *
0x4000000;
31755 this.words[i] = (w / num) |
0;
31759 return this.strip();
31762 BN.prototype.divn = function divn (num) {
31763 return this.clone().idivn(num);
31766 BN.prototype.egcd = function egcd (p) {
31767 assert(p.negative ===
0);
31768 assert(!p.isZero());
31773 if (x.negative !==
0) {
31779 // A * x + B * y = x
31783 // C * x + D * y = y
31789 while (x.isEven() && y.isEven()) {
31795 var yp = y.clone();
31796 var xp = x.clone();
31798 while (!x.isZero()) {
31799 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31803 if (A.isOdd() || B.isOdd()) {
31813 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31817 if (C.isOdd() || D.isOdd()) {
31827 if (x.cmp(y)
>=
0) {
31845 // This is reduced incarnation of the binary EEA
31846 // above, designated to invert members of the
31847 // _prime_ fields F(p) at a maximal speed
31848 BN.prototype._invmp = function _invmp (p) {
31849 assert(p.negative ===
0);
31850 assert(!p.isZero());
31855 if (a.negative !==
0) {
31861 var x1 = new BN(
1);
31862 var x2 = new BN(
0);
31864 var delta = b.clone();
31866 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31867 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31879 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31891 if (a.cmp(b)
>=
0) {
31901 if (a.cmpn(
1) ===
0) {
31907 if (res.cmpn(
0) <
0) {
31914 BN.prototype.gcd = function gcd (num) {
31915 if (this.isZero()) return num.abs();
31916 if (num.isZero()) return this.abs();
31918 var a = this.clone();
31919 var b = num.clone();
31923 // Remove common factor of two
31924 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31930 while (a.isEven()) {
31933 while (b.isEven()) {
31939 // Swap `a` and `b` to make `a` always bigger than `b`
31943 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31950 return b.iushln(shift);
31953 // Invert number in the field F(num)
31954 BN.prototype.invm = function invm (num) {
31955 return this.egcd(num).a.umod(num);
31958 BN.prototype.isEven = function isEven () {
31959 return (this.words[
0] &
1) ===
0;
31962 BN.prototype.isOdd = function isOdd () {
31963 return (this.words[
0] &
1) ===
1;
31966 // And first word and num
31967 BN.prototype.andln = function andln (num) {
31968 return this.words[
0] & num;
31971 // Increment at the bit position in-line
31972 BN.prototype.bincn = function bincn (bit) {
31973 assert(typeof bit === 'number');
31975 var s = (bit - r) /
26;
31978 // Fast case: bit is much higher than all existing words
31979 if (this.length <= s) {
31980 this._expand(s +
1);
31981 this.words[s] |= q;
31985 // Add bit and propagate, if needed
31987 for (var i = s; carry !==
0 && i < this.length; i++) {
31988 var w = this.words[i] |
0;
31995 this.words[i] = carry;
32001 BN.prototype.isZero = function isZero () {
32002 return this.length ===
1 && this.words[
0] ===
0;
32005 BN.prototype.cmpn = function cmpn (num) {
32006 var negative = num <
0;
32008 if (this.negative !==
0 && !negative) return -
1;
32009 if (this.negative ===
0 && negative) return
1;
32014 if (this.length
> 1) {
32021 assert(num <=
0x3ffffff, 'Number is too big');
32023 var w = this.words[
0] |
0;
32024 res = w === num ?
0 : w < num ? -
1 :
1;
32026 if (this.negative !==
0) return -res |
0;
32030 // Compare two numbers and return:
32031 //
1 - if `this`
> `num`
32032 //
0 - if `this` == `num`
32033 // -
1 - if `this` < `num`
32034 BN.prototype.cmp = function cmp (num) {
32035 if (this.negative !==
0 && num.negative ===
0) return -
1;
32036 if (this.negative ===
0 && num.negative !==
0) return
1;
32038 var res = this.ucmp(num);
32039 if (this.negative !==
0) return -res |
0;
32043 // Unsigned comparison
32044 BN.prototype.ucmp = function ucmp (num) {
32045 // At this point both numbers have the same sign
32046 if (this.length
> num.length) return
1;
32047 if (this.length < num.length) return -
1;
32050 for (var i = this.length -
1; i
>=
0; i--) {
32051 var a = this.words[i] |
0;
32052 var b = num.words[i] |
0;
32054 if (a === b) continue;
32057 } else if (a
> b) {
32065 BN.prototype.gtn = function gtn (num) {
32066 return this.cmpn(num) ===
1;
32069 BN.prototype.gt = function gt (num) {
32070 return this.cmp(num) ===
1;
32073 BN.prototype.gten = function gten (num) {
32074 return this.cmpn(num)
>=
0;
32077 BN.prototype.gte = function gte (num) {
32078 return this.cmp(num)
>=
0;
32081 BN.prototype.ltn = function ltn (num) {
32082 return this.cmpn(num) === -
1;
32085 BN.prototype.lt = function lt (num) {
32086 return this.cmp(num) === -
1;
32089 BN.prototype.lten = function lten (num) {
32090 return this.cmpn(num) <=
0;
32093 BN.prototype.lte = function lte (num) {
32094 return this.cmp(num) <=
0;
32097 BN.prototype.eqn = function eqn (num) {
32098 return this.cmpn(num) ===
0;
32101 BN.prototype.eq = function eq (num) {
32102 return this.cmp(num) ===
0;
32106 // A reduce context, could be using montgomery or something better, depending
32107 // on the `m` itself.
32109 BN.red = function red (num) {
32110 return new Red(num);
32113 BN.prototype.toRed = function toRed (ctx) {
32114 assert(!this.red, 'Already a number in reduction context');
32115 assert(this.negative ===
0, 'red works only with positives');
32116 return ctx.convertTo(this)._forceRed(ctx);
32119 BN.prototype.fromRed = function fromRed () {
32120 assert(this.red, 'fromRed works only with numbers in reduction context');
32121 return this.red.convertFrom(this);
32124 BN.prototype._forceRed = function _forceRed (ctx) {
32129 BN.prototype.forceRed = function forceRed (ctx) {
32130 assert(!this.red, 'Already a number in reduction context');
32131 return this._forceRed(ctx);
32134 BN.prototype.redAdd = function redAdd (num) {
32135 assert(this.red, 'redAdd works only with red numbers');
32136 return this.red.add(this, num);
32139 BN.prototype.redIAdd = function redIAdd (num) {
32140 assert(this.red, 'redIAdd works only with red numbers');
32141 return this.red.iadd(this, num);
32144 BN.prototype.redSub = function redSub (num) {
32145 assert(this.red, 'redSub works only with red numbers');
32146 return this.red.sub(this, num);
32149 BN.prototype.redISub = function redISub (num) {
32150 assert(this.red, 'redISub works only with red numbers');
32151 return this.red.isub(this, num);
32154 BN.prototype.redShl = function redShl (num) {
32155 assert(this.red, 'redShl works only with red numbers');
32156 return this.red.shl(this, num);
32159 BN.prototype.redMul = function redMul (num) {
32160 assert(this.red, 'redMul works only with red numbers');
32161 this.red._verify2(this, num);
32162 return this.red.mul(this, num);
32165 BN.prototype.redIMul = function redIMul (num) {
32166 assert(this.red, 'redMul works only with red numbers');
32167 this.red._verify2(this, num);
32168 return this.red.imul(this, num);
32171 BN.prototype.redSqr = function redSqr () {
32172 assert(this.red, 'redSqr works only with red numbers');
32173 this.red._verify1(this);
32174 return this.red.sqr(this);
32177 BN.prototype.redISqr = function redISqr () {
32178 assert(this.red, 'redISqr works only with red numbers');
32179 this.red._verify1(this);
32180 return this.red.isqr(this);
32183 // Square root over p
32184 BN.prototype.redSqrt = function redSqrt () {
32185 assert(this.red, 'redSqrt works only with red numbers');
32186 this.red._verify1(this);
32187 return this.red.sqrt(this);
32190 BN.prototype.redInvm = function redInvm () {
32191 assert(this.red, 'redInvm works only with red numbers');
32192 this.red._verify1(this);
32193 return this.red.invm(this);
32196 // Return negative clone of `this` % `red modulo`
32197 BN.prototype.redNeg = function redNeg () {
32198 assert(this.red, 'redNeg works only with red numbers');
32199 this.red._verify1(this);
32200 return this.red.neg(this);
32203 BN.prototype.redPow = function redPow (num) {
32204 assert(this.red && !num.red, 'redPow(normalNum)');
32205 this.red._verify1(this);
32206 return this.red.pow(this, num);
32209 // Prime numbers with efficient reduction
32217 // Pseudo-Mersenne prime
32218 function MPrime (name, p) {
32221 this.p = new BN(p,
16);
32222 this.n = this.p.bitLength();
32223 this.k = new BN(
1).iushln(this.n).isub(this.p);
32225 this.tmp = this._tmp();
32228 MPrime.prototype._tmp = function _tmp () {
32229 var tmp = new BN(null);
32230 tmp.words = new Array(Math.ceil(this.n /
13));
32234 MPrime.prototype.ireduce = function ireduce (num) {
32235 // Assumes that `num` is less than `P^
2`
32236 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32241 this.split(r, this.tmp);
32243 r = r.iadd(this.tmp);
32244 rlen = r.bitLength();
32245 } while (rlen
> this.n);
32247 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32251 } else if (cmp
> 0) {
32260 MPrime.prototype.split = function split (input, out) {
32261 input.iushrn(this.n,
0, out);
32264 MPrime.prototype.imulK = function imulK (num) {
32265 return num.imul(this.k);
32272 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32274 inherits(K256, MPrime);
32276 K256.prototype.split = function split (input, output) {
32277 //
256 =
9 *
26 +
22
32278 var mask =
0x3fffff;
32280 var outLen = Math.min(input.length,
9);
32281 for (var i =
0; i < outLen; i++) {
32282 output.words[i] = input.words[i];
32284 output.length = outLen;
32286 if (input.length <=
9) {
32287 input.words[
0] =
0;
32292 // Shift by
9 limbs
32293 var prev = input.words[
9];
32294 output.words[output.length++] = prev & mask;
32296 for (i =
10; i < input.length; i++) {
32297 var next = input.words[i] |
0;
32298 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32302 input.words[i -
10] = prev;
32303 if (prev ===
0 && input.length
> 10) {
32304 input.length -=
10;
32310 K256.prototype.imulK = function imulK (num) {
32311 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32312 num.words[num.length] =
0;
32313 num.words[num.length +
1] =
0;
32316 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32318 for (var i =
0; i < num.length; i++) {
32319 var w = num.words[i] |
0;
32321 num.words[i] = lo &
0x3ffffff;
32322 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32325 // Fast length reduction
32326 if (num.words[num.length -
1] ===
0) {
32328 if (num.words[num.length -
1] ===
0) {
32339 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32341 inherits(P224, MPrime);
32347 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32349 inherits(P192, MPrime);
32351 function P25519 () {
32356 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32358 inherits(P25519, MPrime);
32360 P25519.prototype.imulK = function imulK (num) {
32363 for (var i =
0; i < num.length; i++) {
32364 var hi = (num.words[i] |
0) *
0x13 + carry;
32365 var lo = hi &
0x3ffffff;
32372 num.words[num.length++] = carry;
32377 // Exported mostly for testing purposes, use plain name instead
32378 BN._prime = function prime (name) {
32379 // Cached version of prime
32380 if (primes[name]) return primes[name];
32383 if (name === 'k256') {
32384 prime = new K256();
32385 } else if (name === 'p224') {
32386 prime = new P224();
32387 } else if (name === 'p192') {
32388 prime = new P192();
32389 } else if (name === 'p25519') {
32390 prime = new P25519();
32392 throw new Error('Unknown prime ' + name);
32394 primes[name] = prime;
32400 // Base reduction engine
32403 if (typeof m === 'string') {
32404 var prime = BN._prime(m);
32406 this.prime = prime;
32408 assert(m.gtn(
1), 'modulus must be greater than
1');
32414 Red.prototype._verify1 = function _verify1 (a) {
32415 assert(a.negative ===
0, 'red works only with positives');
32416 assert(a.red, 'red works only with red numbers');
32419 Red.prototype._verify2 = function _verify2 (a, b) {
32420 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32421 assert(a.red && a.red === b.red,
32422 'red works only with red numbers');
32425 Red.prototype.imod = function imod (a) {
32426 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32427 return a.umod(this.m)._forceRed(this);
32430 Red.prototype.neg = function neg (a) {
32435 return this.m.sub(a)._forceRed(this);
32438 Red.prototype.add = function add (a, b) {
32439 this._verify2(a, b);
32441 var res = a.add(b);
32442 if (res.cmp(this.m)
>=
0) {
32445 return res._forceRed(this);
32448 Red.prototype.iadd = function iadd (a, b) {
32449 this._verify2(a, b);
32451 var res = a.iadd(b);
32452 if (res.cmp(this.m)
>=
0) {
32458 Red.prototype.sub = function sub (a, b) {
32459 this._verify2(a, b);
32461 var res = a.sub(b);
32462 if (res.cmpn(
0) <
0) {
32465 return res._forceRed(this);
32468 Red.prototype.isub = function isub (a, b) {
32469 this._verify2(a, b);
32471 var res = a.isub(b);
32472 if (res.cmpn(
0) <
0) {
32478 Red.prototype.shl = function shl (a, num) {
32480 return this.imod(a.ushln(num));
32483 Red.prototype.imul = function imul (a, b) {
32484 this._verify2(a, b);
32485 return this.imod(a.imul(b));
32488 Red.prototype.mul = function mul (a, b) {
32489 this._verify2(a, b);
32490 return this.imod(a.mul(b));
32493 Red.prototype.isqr = function isqr (a) {
32494 return this.imul(a, a.clone());
32497 Red.prototype.sqr = function sqr (a) {
32498 return this.mul(a, a);
32501 Red.prototype.sqrt = function sqrt (a) {
32502 if (a.isZero()) return a.clone();
32504 var mod3 = this.m.andln(
3);
32505 assert(mod3 %
2 ===
1);
32509 var pow = this.m.add(new BN(
1)).iushrn(
2);
32510 return this.pow(a, pow);
32513 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32515 // Find Q and S, that Q *
2 ^ S = (P -
1)
32516 var q = this.m.subn(
1);
32518 while (!q.isZero() && q.andln(
1) ===
0) {
32522 assert(!q.isZero());
32524 var one = new BN(
1).toRed(this);
32525 var nOne = one.redNeg();
32527 // Find quadratic non-residue
32528 // NOTE: Max is such because of generalized Riemann hypothesis.
32529 var lpow = this.m.subn(
1).iushrn(
1);
32530 var z = this.m.bitLength();
32531 z = new BN(
2 * z * z).toRed(this);
32533 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32537 var c = this.pow(z, q);
32538 var r = this.pow(a, q.addn(
1).iushrn(
1));
32539 var t = this.pow(a, q);
32541 while (t.cmp(one) !==
0) {
32543 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32544 tmp = tmp.redSqr();
32547 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32558 Red.prototype.invm = function invm (a) {
32559 var inv = a._invmp(this.m);
32560 if (inv.negative !==
0) {
32562 return this.imod(inv).redNeg();
32564 return this.imod(inv);
32568 Red.prototype.pow = function pow (a, num) {
32569 if (num.isZero()) return new BN(
1);
32570 if (num.cmpn(
1) ===
0) return a.clone();
32572 var windowSize =
4;
32573 var wnd = new Array(
1 << windowSize);
32574 wnd[
0] = new BN(
1).toRed(this);
32576 for (var i =
2; i < wnd.length; i++) {
32577 wnd[i] = this.mul(wnd[i -
1], a);
32582 var currentLen =
0;
32583 var start = num.bitLength() %
26;
32588 for (i = num.length -
1; i
>=
0; i--) {
32589 var word = num.words[i];
32590 for (var j = start -
1; j
>=
0; j--) {
32591 var bit = (word
>> j) &
1;
32592 if (res !== wnd[
0]) {
32593 res = this.sqr(res);
32596 if (bit ===
0 && current ===
0) {
32604 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32606 res = this.mul(res, wnd[current]);
32616 Red.prototype.convertTo = function convertTo (num) {
32617 var r = num.umod(this.m);
32619 return r === num ? r.clone() : r;
32622 Red.prototype.convertFrom = function convertFrom (num) {
32623 var res = num.clone();
32629 // Montgomery method engine
32632 BN.mont = function mont (num) {
32633 return new Mont(num);
32636 function Mont (m) {
32639 this.shift = this.m.bitLength();
32640 if (this.shift %
26 !==
0) {
32641 this.shift +=
26 - (this.shift %
26);
32644 this.r = new BN(
1).iushln(this.shift);
32645 this.r2 = this.imod(this.r.sqr());
32646 this.rinv = this.r._invmp(this.m);
32648 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32649 this.minv = this.minv.umod(this.r);
32650 this.minv = this.r.sub(this.minv);
32652 inherits(Mont, Red);
32654 Mont.prototype.convertTo = function convertTo (num) {
32655 return this.imod(num.ushln(this.shift));
32658 Mont.prototype.convertFrom = function convertFrom (num) {
32659 var r = this.imod(num.mul(this.rinv));
32664 Mont.prototype.imul = function imul (a, b) {
32665 if (a.isZero() || b.isZero()) {
32672 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32673 var u = t.isub(c).iushrn(this.shift);
32676 if (u.cmp(this.m)
>=
0) {
32677 res = u.isub(this.m);
32678 } else if (u.cmpn(
0) <
0) {
32679 res = u.iadd(this.m);
32682 return res._forceRed(this);
32685 Mont.prototype.mul = function mul (a, b) {
32686 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32689 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32690 var u = t.isub(c).iushrn(this.shift);
32692 if (u.cmp(this.m)
>=
0) {
32693 res = u.isub(this.m);
32694 } else if (u.cmpn(
0) <
0) {
32695 res = u.iadd(this.m);
32698 return res._forceRed(this);
32701 Mont.prototype.invm = function invm (a) {
32702 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32703 var res = this.imod(a._invmp(this.m).mul(this.r2));
32704 return res._forceRed(this);
32706 })(typeof module === 'undefined' || module, this);
32708 },{}],
34:[function(require,module,exports){
32711 module.exports = function rand(len) {
32713 r = new Rand(null);
32715 return r.generate(len);
32718 function Rand(rand) {
32721 module.exports.Rand = Rand;
32723 Rand.prototype.generate = function generate(len) {
32724 return this._rand(len);
32727 if (typeof self === 'object') {
32728 if (self.crypto && self.crypto.getRandomValues) {
32730 Rand.prototype._rand = function _rand(n) {
32731 var arr = new Uint8Array(n);
32732 self.crypto.getRandomValues(arr);
32735 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32737 Rand.prototype._rand = function _rand(n) {
32738 var arr = new Uint8Array(n);
32739 self.msCrypto.getRandomValues(arr);
32744 Rand.prototype._rand = function() {
32745 throw new Error('Not implemented yet');
32749 // Node.js or Web worker with no crypto support
32751 var crypto = require('crypto');
32753 Rand.prototype._rand = function _rand(n) {
32754 return crypto.randomBytes(n);
32757 // Emulate crypto API using randy
32758 Rand.prototype._rand = function _rand(n) {
32759 var res = new Uint8Array(n);
32760 for (var i =
0; i < res.length; i++)
32761 res[i] = this.rand.getByte();
32767 },{"crypto":
3}],
35:[function(require,module,exports){
32768 (function (Buffer){
32769 var Transform = require('stream').Transform
32770 var inherits = require('inherits')
32771 var StringDecoder = require('string_decoder').StringDecoder
32772 module.exports = CipherBase
32773 inherits(CipherBase, Transform)
32774 function CipherBase (hashMode) {
32775 Transform.call(this)
32776 this.hashMode = typeof hashMode === 'string'
32777 if (this.hashMode) {
32778 this[hashMode] = this._finalOrDigest
32780 this.final = this._finalOrDigest
32782 this._decoder = null
32783 this._encoding = null
32785 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32786 if (typeof data === 'string') {
32787 data = new Buffer(data, inputEnc)
32789 var outData = this._update(data)
32790 if (this.hashMode) {
32794 outData = this._toString(outData, outputEnc)
32799 CipherBase.prototype.setAutoPadding = function () {}
32801 CipherBase.prototype.getAuthTag = function () {
32802 throw new Error('trying to get auth tag in unsupported state')
32805 CipherBase.prototype.setAuthTag = function () {
32806 throw new Error('trying to set auth tag in unsupported state')
32809 CipherBase.prototype.setAAD = function () {
32810 throw new Error('trying to set aad in unsupported state')
32813 CipherBase.prototype._transform = function (data, _, next) {
32816 if (this.hashMode) {
32819 this.push(this._update(data))
32827 CipherBase.prototype._flush = function (done) {
32830 this.push(this._final())
32837 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32838 var outData = this._final() || new Buffer('')
32840 outData = this._toString(outData, outputEnc, true)
32845 CipherBase.prototype._toString = function (value, enc, fin) {
32846 if (!this._decoder) {
32847 this._decoder = new StringDecoder(enc)
32848 this._encoding = enc
32850 if (this._encoding !== enc) {
32851 throw new Error('can\'t switch encodings')
32853 var out = this._decoder.write(value)
32855 out += this._decoder.end()
32860 }).call(this,require("buffer").Buffer)
32861 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32862 (function (Buffer){
32864 var inherits = require('inherits')
32865 var md5 = require('./md5')
32866 var rmd160 = require('ripemd160')
32867 var sha = require('sha.js')
32869 var Base = require('cipher-base')
32871 function HashNoConstructor(hash) {
32872 Base.call(this, 'digest')
32878 inherits(HashNoConstructor, Base)
32880 HashNoConstructor.prototype._update = function (data) {
32881 this.buffers.push(data)
32884 HashNoConstructor.prototype._final = function () {
32885 var buf = Buffer.concat(this.buffers)
32886 var r = this._hash(buf)
32887 this.buffers = null
32892 function Hash(hash) {
32893 Base.call(this, 'digest')
32898 inherits(Hash, Base)
32900 Hash.prototype._update = function (data) {
32901 this._hash.update(data)
32904 Hash.prototype._final = function () {
32905 return this._hash.digest()
32908 module.exports = function createHash (alg) {
32909 alg = alg.toLowerCase()
32910 if ('md5' === alg) return new HashNoConstructor(md5)
32911 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32913 return new Hash(sha(alg))
32916 }).call(this,require("buffer").Buffer)
32917 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32918 (function (Buffer){
32921 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32924 function toArray(buf, bigEndian) {
32925 if ((buf.length % intSize) !==
0) {
32926 var len = buf.length + (intSize - (buf.length % intSize));
32927 buf = Buffer.concat([buf, zeroBuffer], len);
32931 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32932 for (var i =
0; i < buf.length; i += intSize) {
32933 arr.push(fn.call(buf, i));
32938 function toBuffer(arr, size, bigEndian) {
32939 var buf = new Buffer(size);
32940 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32941 for (var i =
0; i < arr.length; i++) {
32942 fn.call(buf, arr[i], i *
4, true);
32947 function hash(buf, fn, hashSize, bigEndian) {
32948 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32949 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32950 return toBuffer(arr, hashSize, bigEndian);
32952 exports.hash = hash;
32953 }).call(this,require("buffer").Buffer)
32954 },{"buffer":
5}],
38:[function(require,module,exports){
32957 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32958 * Digest Algorithm, as defined in RFC
1321.
32959 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32960 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32961 * Distributed under the BSD License
32962 * See http://pajhome.org.uk/crypt/md5 for more info.
32965 var helpers = require('./helpers');
32968 * Calculate the MD5 of an array of little-endian words, and a bit length
32970 function core_md5(x, len)
32972 /* append padding */
32973 x[len
>> 5] |=
0x80 << ((len) %
32);
32974 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
32976 var a =
1732584193;
32977 var b = -
271733879;
32978 var c = -
1732584194;
32981 for(var i =
0; i < x.length; i +=
16)
32988 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
32989 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
32990 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
32991 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
32992 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
32993 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
32994 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
32995 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
32996 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
32997 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
32998 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
32999 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
33000 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
33001 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
33002 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
33003 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33005 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33006 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33007 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33008 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33009 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33010 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33011 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33012 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33013 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33014 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33015 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33016 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33017 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33018 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33019 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33020 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33022 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33023 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33024 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33025 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33026 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33027 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33028 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33029 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33030 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33031 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33032 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33033 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33034 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33035 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33036 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33037 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33039 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33040 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33041 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33042 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33043 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33044 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33045 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33046 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33047 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33048 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33049 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33050 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33051 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33052 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33053 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33054 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33056 a = safe_add(a, olda);
33057 b = safe_add(b, oldb);
33058 c = safe_add(c, oldc);
33059 d = safe_add(d, oldd);
33061 return Array(a, b, c, d);
33066 * These functions implement the four basic operations the algorithm uses.
33068 function md5_cmn(q, a, b, x, s, t)
33070 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33072 function md5_ff(a, b, c, d, x, s, t)
33074 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33076 function md5_gg(a, b, c, d, x, s, t)
33078 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33080 function md5_hh(a, b, c, d, x, s, t)
33082 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33084 function md5_ii(a, b, c, d, x, s, t)
33086 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33090 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33091 * to work around bugs in some JS interpreters.
33093 function safe_add(x, y)
33095 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33096 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33097 return (msw <<
16) | (lsw &
0xFFFF);
33101 * Bitwise rotate a
32-bit number to the left.
33103 function bit_rol(num, cnt)
33105 return (num << cnt) | (num
>>> (
32 - cnt));
33108 module.exports = function md5(buf) {
33109 return helpers.hash(buf, core_md5,
16);
33111 },{"./helpers":
37}],
39:[function(require,module,exports){
33114 var elliptic = exports;
33116 elliptic.version = require('../package.json').version;
33117 elliptic.utils = require('./elliptic/utils');
33118 elliptic.rand = require('brorand');
33119 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33120 elliptic.curve = require('./elliptic/curve');
33121 elliptic.curves = require('./elliptic/curves');
33124 elliptic.ec = require('./elliptic/ec');
33125 elliptic.eddsa = require('./elliptic/eddsa');
33127 },{"../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){
33130 var BN = require('bn.js');
33131 var elliptic = require('../../elliptic');
33132 var utils = elliptic.utils;
33133 var getNAF = utils.getNAF;
33134 var getJSF = utils.getJSF;
33135 var assert = utils.assert;
33137 function BaseCurve(type, conf) {
33139 this.p = new BN(conf.p,
16);
33141 // Use Montgomery, when there is no fast reduction for the prime
33142 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33144 // Useful for many curves
33145 this.zero = new BN(
0).toRed(this.red);
33146 this.one = new BN(
1).toRed(this.red);
33147 this.two = new BN(
2).toRed(this.red);
33149 // Curve configuration, optional
33150 this.n = conf.n && new BN(conf.n,
16);
33151 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33153 // Temporary arrays
33154 this._wnafT1 = new Array(
4);
33155 this._wnafT2 = new Array(
4);
33156 this._wnafT3 = new Array(
4);
33157 this._wnafT4 = new Array(
4);
33159 // Generalized Greg Maxwell's trick
33160 var adjustCount = this.n && this.p.div(this.n);
33161 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33164 this._maxwellTrick = true;
33165 this.redN = this.n.toRed(this.red);
33168 module.exports = BaseCurve;
33170 BaseCurve.prototype.point = function point() {
33171 throw new Error('Not implemented');
33174 BaseCurve.prototype.validate = function validate() {
33175 throw new Error('Not implemented');
33178 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33179 assert(p.precomputed);
33180 var doubles = p._getDoubles();
33182 var naf = getNAF(k,
1);
33183 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33186 // Translate into more windowed form
33188 for (var j =
0; j < naf.length; j += doubles.step) {
33190 for (var k = j + doubles.step -
1; k
>= j; k--)
33191 nafW = (nafW <<
1) + naf[k];
33195 var a = this.jpoint(null, null, null);
33196 var b = this.jpoint(null, null, null);
33197 for (var i = I; i
> 0; i--) {
33198 for (var j =
0; j < repr.length; j++) {
33199 var nafW = repr[j];
33201 b = b.mixedAdd(doubles.points[j]);
33202 else if (nafW === -i)
33203 b = b.mixedAdd(doubles.points[j].neg());
33210 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33213 // Precompute window
33214 var nafPoints = p._getNAFPoints(w);
33216 var wnd = nafPoints.points;
33219 var naf = getNAF(k, w);
33221 // Add `this`*(N+
1) for every w-NAF index
33222 var acc = this.jpoint(null, null, null);
33223 for (var i = naf.length -
1; i
>=
0; i--) {
33225 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33235 if (p.type === 'affine') {
33238 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33240 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33244 acc = acc.add(wnd[(z -
1)
>> 1]);
33246 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33249 return p.type === 'affine' ? acc.toP() : acc;
33252 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33257 var wndWidth = this._wnafT1;
33258 var wnd = this._wnafT2;
33259 var naf = this._wnafT3;
33263 for (var i =
0; i < len; i++) {
33265 var nafPoints = p._getNAFPoints(defW);
33266 wndWidth[i] = nafPoints.wnd;
33267 wnd[i] = nafPoints.points;
33270 // Comb small window NAFs
33271 for (var i = len -
1; i
>=
1; i -=
2) {
33274 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33275 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33276 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33277 max = Math.max(naf[a].length, max);
33278 max = Math.max(naf[b].length, max);
33289 // Try to avoid Projective points, if possible
33290 if (points[a].y.cmp(points[b].y) ===
0) {
33291 comb[
1] = points[a].add(points[b]);
33292 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33293 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33294 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33295 comb[
2] = points[a].add(points[b].neg());
33297 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33298 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33313 var jsf = getJSF(coeffs[a], coeffs[b]);
33314 max = Math.max(jsf[
0].length, max);
33315 naf[a] = new Array(max);
33316 naf[b] = new Array(max);
33317 for (var j =
0; j < max; j++) {
33318 var ja = jsf[
0][j] |
0;
33319 var jb = jsf[
1][j] |
0;
33321 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33327 var acc = this.jpoint(null, null, null);
33328 var tmp = this._wnafT4;
33329 for (var i = max; i
>=
0; i--) {
33334 for (var j =
0; j < len; j++) {
33335 tmp[j] = naf[j][i] |
0;
33350 for (var j =
0; j < len; j++) {
33356 p = wnd[j][(z -
1)
>> 1];
33358 p = wnd[j][(-z -
1)
>> 1].neg();
33360 if (p.type === 'affine')
33361 acc = acc.mixedAdd(p);
33366 // Zeroify references
33367 for (var i =
0; i < len; i++)
33370 if (jacobianResult)
33376 function BasePoint(curve, type) {
33377 this.curve = curve;
33379 this.precomputed = null;
33381 BaseCurve.BasePoint = BasePoint;
33383 BasePoint.prototype.eq = function eq(/*other*/) {
33384 throw new Error('Not implemented');
33387 BasePoint.prototype.validate = function validate() {
33388 return this.curve.validate(this);
33391 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33392 bytes = utils.toArray(bytes, enc);
33394 var len = this.p.byteLength();
33396 // uncompressed, hybrid-odd, hybrid-even
33397 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33398 bytes.length -
1 ===
2 * len) {
33399 if (bytes[
0] ===
0x06)
33400 assert(bytes[bytes.length -
1] %
2 ===
0);
33401 else if (bytes[
0] ===
0x07)
33402 assert(bytes[bytes.length -
1] %
2 ===
1);
33404 var res = this.point(bytes.slice(
1,
1 + len),
33405 bytes.slice(
1 + len,
1 +
2 * len));
33408 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33409 bytes.length -
1 === len) {
33410 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33412 throw new Error('Unknown point format');
33415 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33416 return this.encode(enc, true);
33419 BasePoint.prototype._encode = function _encode(compact) {
33420 var len = this.curve.p.byteLength();
33421 var x = this.getX().toArray('be', len);
33424 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33426 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33429 BasePoint.prototype.encode = function encode(enc, compact) {
33430 return utils.encode(this._encode(compact), enc);
33433 BasePoint.prototype.precompute = function precompute(power) {
33434 if (this.precomputed)
33437 var precomputed = {
33442 precomputed.naf = this._getNAFPoints(
8);
33443 precomputed.doubles = this._getDoubles(
4, power);
33444 precomputed.beta = this._getBeta();
33445 this.precomputed = precomputed;
33450 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33451 if (!this.precomputed)
33454 var doubles = this.precomputed.doubles;
33458 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33461 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33462 if (this.precomputed && this.precomputed.doubles)
33463 return this.precomputed.doubles;
33465 var doubles = [ this ];
33467 for (var i =
0; i < power; i += step) {
33468 for (var j =
0; j < step; j++)
33478 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33479 if (this.precomputed && this.precomputed.naf)
33480 return this.precomputed.naf;
33482 var res = [ this ];
33483 var max = (
1 << wnd) -
1;
33484 var dbl = max ===
1 ? null : this.dbl();
33485 for (var i =
1; i < max; i++)
33486 res[i] = res[i -
1].add(dbl);
33493 BasePoint.prototype._getBeta = function _getBeta() {
33497 BasePoint.prototype.dblp = function dblp(k) {
33499 for (var i =
0; i < k; i++)
33504 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33507 var curve = require('../curve');
33508 var elliptic = require('../../elliptic');
33509 var BN = require('bn.js');
33510 var inherits = require('inherits');
33511 var Base = curve.base;
33513 var assert = elliptic.utils.assert;
33515 function EdwardsCurve(conf) {
33516 // NOTE: Important as we are creating point in Base.call()
33517 this.twisted = (conf.a |
0) !==
1;
33518 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33519 this.extended = this.mOneA;
33521 Base.call(this, 'edwards', conf);
33523 this.a = new BN(conf.a,
16).umod(this.red.m);
33524 this.a = this.a.toRed(this.red);
33525 this.c = new BN(conf.c,
16).toRed(this.red);
33526 this.c2 = this.c.redSqr();
33527 this.d = new BN(conf.d,
16).toRed(this.red);
33528 this.dd = this.d.redAdd(this.d);
33530 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33531 this.oneC = (conf.c |
0) ===
1;
33533 inherits(EdwardsCurve, Base);
33534 module.exports = EdwardsCurve;
33536 EdwardsCurve.prototype._mulA = function _mulA(num) {
33538 return num.redNeg();
33540 return this.a.redMul(num);
33543 EdwardsCurve.prototype._mulC = function _mulC(num) {
33547 return this.c.redMul(num);
33550 // Just for compatibility with Short curve
33551 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33552 return this.point(x, y, z, t);
33555 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33558 x = x.toRed(this.red);
33560 var x2 = x.redSqr();
33561 var rhs = this.c2.redSub(this.a.redMul(x2));
33562 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33564 var y2 = rhs.redMul(lhs.redInvm());
33565 var y = y2.redSqrt();
33566 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33567 throw new Error('invalid point');
33569 var isOdd = y.fromRed().isOdd();
33570 if (odd && !isOdd || !odd && isOdd)
33573 return this.point(x, y);
33576 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33579 y = y.toRed(this.red);
33581 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33582 var y2 = y.redSqr();
33583 var lhs = y2.redSub(this.one);
33584 var rhs = y2.redMul(this.d).redAdd(this.one);
33585 var x2 = lhs.redMul(rhs.redInvm());
33587 if (x2.cmp(this.zero) ===
0) {
33589 throw new Error('invalid point');
33591 return this.point(this.zero, y);
33594 var x = x2.redSqrt();
33595 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33596 throw new Error('invalid point');
33598 if (x.isOdd() !== odd)
33601 return this.point(x, y);
33604 EdwardsCurve.prototype.validate = function validate(point) {
33605 if (point.isInfinity())
33608 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33611 var x2 = point.x.redSqr();
33612 var y2 = point.y.redSqr();
33613 var lhs = x2.redMul(this.a).redAdd(y2);
33614 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33616 return lhs.cmp(rhs) ===
0;
33619 function Point(curve, x, y, z, t) {
33620 Base.BasePoint.call(this, curve, 'projective');
33621 if (x === null && y === null && z === null) {
33622 this.x = this.curve.zero;
33623 this.y = this.curve.one;
33624 this.z = this.curve.one;
33625 this.t = this.curve.zero;
33628 this.x = new BN(x,
16);
33629 this.y = new BN(y,
16);
33630 this.z = z ? new BN(z,
16) : this.curve.one;
33631 this.t = t && new BN(t,
16);
33633 this.x = this.x.toRed(this.curve.red);
33635 this.y = this.y.toRed(this.curve.red);
33637 this.z = this.z.toRed(this.curve.red);
33638 if (this.t && !this.t.red)
33639 this.t = this.t.toRed(this.curve.red);
33640 this.zOne = this.z === this.curve.one;
33642 // Use extended coordinates
33643 if (this.curve.extended && !this.t) {
33644 this.t = this.x.redMul(this.y);
33646 this.t = this.t.redMul(this.z.redInvm());
33650 inherits(Point, Base.BasePoint);
33652 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33653 return Point.fromJSON(this, obj);
33656 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33657 return new Point(this, x, y, z, t);
33660 Point.fromJSON = function fromJSON(curve, obj) {
33661 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33664 Point.prototype.inspect = function inspect() {
33665 if (this.isInfinity())
33666 return '
<EC Point Infinity
>';
33667 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33668 ' y: ' + this.y.fromRed().toString(
16,
2) +
33669 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33672 Point.prototype.isInfinity = function isInfinity() {
33673 // XXX This code assumes that zero is always zero in red
33674 return this.x.cmpn(
0) ===
0 &&
33675 this.y.cmp(this.z) ===
0;
33678 Point.prototype._extDbl = function _extDbl() {
33679 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33680 // #doubling-dbl-
2008-hwcd
33684 var a = this.x.redSqr();
33686 var b = this.y.redSqr();
33688 var c = this.z.redSqr();
33691 var d = this.curve._mulA(a);
33692 // E = (X1 + Y1)^
2 - A - B
33693 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33695 var g = d.redAdd(b);
33697 var f = g.redSub(c);
33699 var h = d.redSub(b);
33701 var nx = e.redMul(f);
33703 var ny = g.redMul(h);
33705 var nt = e.redMul(h);
33707 var nz = f.redMul(g);
33708 return this.curve.point(nx, ny, nz, nt);
33711 Point.prototype._projDbl = function _projDbl() {
33712 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33713 // #doubling-dbl-
2008-bbjlp
33714 // #doubling-dbl-
2007-bl
33716 // Generally
3M +
4S or
2M +
4S
33719 var b = this.x.redAdd(this.y).redSqr();
33721 var c = this.x.redSqr();
33723 var d = this.y.redSqr();
33728 if (this.curve.twisted) {
33730 var e = this.curve._mulA(c);
33732 var f = e.redAdd(d);
33734 // X3 = (B - C - D) * (F -
2)
33735 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33736 // Y3 = F * (E - D)
33737 ny = f.redMul(e.redSub(d));
33738 // Z3 = F^
2 -
2 * F
33739 nz = f.redSqr().redSub(f).redSub(f);
33742 var h = this.z.redSqr();
33744 var j = f.redSub(h).redISub(h);
33746 nx = b.redSub(c).redISub(d).redMul(j);
33747 // Y3 = F * (E - D)
33748 ny = f.redMul(e.redSub(d));
33754 var e = c.redAdd(d);
33756 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33758 var j = e.redSub(h).redSub(h);
33759 // X3 = c * (B - E) * J
33760 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33761 // Y3 = c * E * (C - D)
33762 ny = this.curve._mulC(e).redMul(c.redISub(d));
33766 return this.curve.point(nx, ny, nz);
33769 Point.prototype.dbl = function dbl() {
33770 if (this.isInfinity())
33773 // Double in extended coordinates
33774 if (this.curve.extended)
33775 return this._extDbl();
33777 return this._projDbl();
33780 Point.prototype._extAdd = function _extAdd(p) {
33781 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33782 // #addition-add-
2008-hwcd-
3
33785 // A = (Y1 - X1) * (Y2 - X2)
33786 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33787 // B = (Y1 + X1) * (Y2 + X2)
33788 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33790 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33792 var d = this.z.redMul(p.z.redAdd(p.z));
33794 var e = b.redSub(a);
33796 var f = d.redSub(c);
33798 var g = d.redAdd(c);
33800 var h = b.redAdd(a);
33802 var nx = e.redMul(f);
33804 var ny = g.redMul(h);
33806 var nt = e.redMul(h);
33808 var nz = f.redMul(g);
33809 return this.curve.point(nx, ny, nz, nt);
33812 Point.prototype._projAdd = function _projAdd(p) {
33813 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33814 // #addition-add-
2008-bbjlp
33815 // #addition-add-
2007-bl
33819 var a = this.z.redMul(p.z);
33821 var b = a.redSqr();
33823 var c = this.x.redMul(p.x);
33825 var d = this.y.redMul(p.y);
33827 var e = this.curve.d.redMul(c).redMul(d);
33829 var f = b.redSub(e);
33831 var g = b.redAdd(e);
33832 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33833 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33834 var nx = a.redMul(f).redMul(tmp);
33837 if (this.curve.twisted) {
33838 // Y3 = A * G * (D - a * C)
33839 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33843 // Y3 = A * G * (D - C)
33844 ny = a.redMul(g).redMul(d.redSub(c));
33846 nz = this.curve._mulC(f).redMul(g);
33848 return this.curve.point(nx, ny, nz);
33851 Point.prototype.add = function add(p) {
33852 if (this.isInfinity())
33854 if (p.isInfinity())
33857 if (this.curve.extended)
33858 return this._extAdd(p);
33860 return this._projAdd(p);
33863 Point.prototype.mul = function mul(k) {
33864 if (this._hasDoubles(k))
33865 return this.curve._fixedNafMul(this, k);
33867 return this.curve._wnafMul(this, k);
33870 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33871 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33874 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33875 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33878 Point.prototype.normalize = function normalize() {
33882 // Normalize coordinates
33883 var zi = this.z.redInvm();
33884 this.x = this.x.redMul(zi);
33885 this.y = this.y.redMul(zi);
33887 this.t = this.t.redMul(zi);
33888 this.z = this.curve.one;
33893 Point.prototype.neg = function neg() {
33894 return this.curve.point(this.x.redNeg(),
33897 this.t && this.t.redNeg());
33900 Point.prototype.getX = function getX() {
33902 return this.x.fromRed();
33905 Point.prototype.getY = function getY() {
33907 return this.y.fromRed();
33910 Point.prototype.eq = function eq(other) {
33911 return this === other ||
33912 this.getX().cmp(other.getX()) ===
0 &&
33913 this.getY().cmp(other.getY()) ===
0;
33916 Point.prototype.eqXToP = function eqXToP(x) {
33917 var rx = x.toRed(this.curve.red).redMul(this.z);
33918 if (this.x.cmp(rx) ===
0)
33921 var xc = x.clone();
33922 var t = this.curve.redN.redMul(this.z);
33924 xc.iadd(this.curve.n);
33925 if (xc.cmp(this.curve.p)
>=
0)
33929 if (this.x.cmp(rx) ===
0)
33935 // Compatibility with BaseCurve
33936 Point.prototype.toP = Point.prototype.normalize;
33937 Point.prototype.mixedAdd = Point.prototype.add;
33939 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33942 var curve = exports;
33944 curve.base = require('./base');
33945 curve.short = require('./short');
33946 curve.mont = require('./mont');
33947 curve.edwards = require('./edwards');
33949 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33952 var curve = require('../curve');
33953 var BN = require('bn.js');
33954 var inherits = require('inherits');
33955 var Base = curve.base;
33957 var elliptic = require('../../elliptic');
33958 var utils = elliptic.utils;
33960 function MontCurve(conf) {
33961 Base.call(this, 'mont', conf);
33963 this.a = new BN(conf.a,
16).toRed(this.red);
33964 this.b = new BN(conf.b,
16).toRed(this.red);
33965 this.i4 = new BN(
4).toRed(this.red).redInvm();
33966 this.two = new BN(
2).toRed(this.red);
33967 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
33969 inherits(MontCurve, Base);
33970 module.exports = MontCurve;
33972 MontCurve.prototype.validate = function validate(point) {
33973 var x = point.normalize().x;
33974 var x2 = x.redSqr();
33975 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
33976 var y = rhs.redSqrt();
33978 return y.redSqr().cmp(rhs) ===
0;
33981 function Point(curve, x, z) {
33982 Base.BasePoint.call(this, curve, 'projective');
33983 if (x === null && z === null) {
33984 this.x = this.curve.one;
33985 this.z = this.curve.zero;
33987 this.x = new BN(x,
16);
33988 this.z = new BN(z,
16);
33990 this.x = this.x.toRed(this.curve.red);
33992 this.z = this.z.toRed(this.curve.red);
33995 inherits(Point, Base.BasePoint);
33997 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33998 return this.point(utils.toArray(bytes, enc),
1);
34001 MontCurve.prototype.point = function point(x, z) {
34002 return new Point(this, x, z);
34005 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34006 return Point.fromJSON(this, obj);
34009 Point.prototype.precompute = function precompute() {
34013 Point.prototype._encode = function _encode() {
34014 return this.getX().toArray('be', this.curve.p.byteLength());
34017 Point.fromJSON = function fromJSON(curve, obj) {
34018 return new Point(curve, obj[
0], obj[
1] || curve.one);
34021 Point.prototype.inspect = function inspect() {
34022 if (this.isInfinity())
34023 return '
<EC Point Infinity
>';
34024 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34025 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34028 Point.prototype.isInfinity = function isInfinity() {
34029 // XXX This code assumes that zero is always zero in red
34030 return this.z.cmpn(
0) ===
0;
34033 Point.prototype.dbl = function dbl() {
34034 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34038 var a = this.x.redAdd(this.z);
34040 var aa = a.redSqr();
34042 var b = this.x.redSub(this.z);
34044 var bb = b.redSqr();
34046 var c = aa.redSub(bb);
34048 var nx = aa.redMul(bb);
34049 // Z3 = C * (BB + A24 * C)
34050 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34051 return this.curve.point(nx, nz);
34054 Point.prototype.add = function add() {
34055 throw new Error('Not supported on Montgomery curve');
34058 Point.prototype.diffAdd = function diffAdd(p, diff) {
34059 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34063 var a = this.x.redAdd(this.z);
34065 var b = this.x.redSub(this.z);
34067 var c = p.x.redAdd(p.z);
34069 var d = p.x.redSub(p.z);
34071 var da = d.redMul(a);
34073 var cb = c.redMul(b);
34074 // X5 = Z1 * (DA + CB)^
2
34075 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34076 // Z5 = X1 * (DA - CB)^
2
34077 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34078 return this.curve.point(nx, nz);
34081 Point.prototype.mul = function mul(k) {
34083 var a = this; // (N /
2) * Q + Q
34084 var b = this.curve.point(null, null); // (N /
2) * Q
34087 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34088 bits.push(t.andln(
1));
34090 for (var i = bits.length -
1; i
>=
0; i--) {
34091 if (bits[i] ===
0) {
34092 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34093 a = a.diffAdd(b, c);
34094 // N * Q =
2 * ((N /
2) * Q + Q))
34097 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34098 b = a.diffAdd(b, c);
34099 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34106 Point.prototype.mulAdd = function mulAdd() {
34107 throw new Error('Not supported on Montgomery curve');
34110 Point.prototype.jumlAdd = function jumlAdd() {
34111 throw new Error('Not supported on Montgomery curve');
34114 Point.prototype.eq = function eq(other) {
34115 return this.getX().cmp(other.getX()) ===
0;
34118 Point.prototype.normalize = function normalize() {
34119 this.x = this.x.redMul(this.z.redInvm());
34120 this.z = this.curve.one;
34124 Point.prototype.getX = function getX() {
34125 // Normalize coordinates
34128 return this.x.fromRed();
34131 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34134 var curve = require('../curve');
34135 var elliptic = require('../../elliptic');
34136 var BN = require('bn.js');
34137 var inherits = require('inherits');
34138 var Base = curve.base;
34140 var assert = elliptic.utils.assert;
34142 function ShortCurve(conf) {
34143 Base.call(this, 'short', conf);
34145 this.a = new BN(conf.a,
16).toRed(this.red);
34146 this.b = new BN(conf.b,
16).toRed(this.red);
34147 this.tinv = this.two.redInvm();
34149 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34150 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34152 // If the curve is endomorphic, precalculate beta and lambda
34153 this.endo = this._getEndomorphism(conf);
34154 this._endoWnafT1 = new Array(
4);
34155 this._endoWnafT2 = new Array(
4);
34157 inherits(ShortCurve, Base);
34158 module.exports = ShortCurve;
34160 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34161 // No efficient endomorphism
34162 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34165 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34169 beta = new BN(conf.beta,
16).toRed(this.red);
34171 var betas = this._getEndoRoots(this.p);
34172 // Choose the smallest beta
34173 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34174 beta = beta.toRed(this.red);
34177 lambda = new BN(conf.lambda,
16);
34179 // Choose the lambda that is matching selected beta
34180 var lambdas = this._getEndoRoots(this.n);
34181 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34182 lambda = lambdas[
0];
34184 lambda = lambdas[
1];
34185 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34189 // Get basis vectors, used for balanced length-two representation
34192 basis = conf.basis.map(function(vec) {
34194 a: new BN(vec.a,
16),
34195 b: new BN(vec.b,
16)
34199 basis = this._getEndoBasis(lambda);
34209 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34210 // Find roots of for x^
2 + x +
1 in F
34211 // Root = (-
1 +- Sqrt(-
3)) /
2
34213 var red = num === this.p ? this.red : BN.mont(num);
34214 var tinv = new BN(
2).toRed(red).redInvm();
34215 var ntinv = tinv.redNeg();
34217 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34219 var l1 = ntinv.redAdd(s).fromRed();
34220 var l2 = ntinv.redSub(s).fromRed();
34224 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34225 // aprxSqrt
>= sqrt(this.n)
34226 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34229 // Run EGCD, until r(L +
1) < aprxSqrt
34231 var v = this.n.clone();
34232 var x1 = new BN(
1);
34233 var y1 = new BN(
0);
34234 var x2 = new BN(
0);
34235 var y2 = new BN(
1);
34237 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34251 while (u.cmpn(
0) !==
0) {
34253 r = v.sub(q.mul(u));
34254 x = x2.sub(q.mul(x1));
34255 var y = y2.sub(q.mul(y1));
34257 if (!a1 && r.cmp(aprxSqrt) <
0) {
34262 } else if (a1 && ++i ===
2) {
34277 var len1 = a1.sqr().add(b1.sqr());
34278 var len2 = a2.sqr().add(b2.sqr());
34279 if (len2.cmp(len1)
>=
0) {
34300 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34301 var basis = this.endo.basis;
34305 var c1 = v2.b.mul(k).divRound(this.n);
34306 var c2 = v1.b.neg().mul(k).divRound(this.n);
34308 var p1 = c1.mul(v1.a);
34309 var p2 = c2.mul(v2.a);
34310 var q1 = c1.mul(v1.b);
34311 var q2 = c2.mul(v2.b);
34313 // Calculate answer
34314 var k1 = k.sub(p1).sub(p2);
34315 var k2 = q1.add(q2).neg();
34316 return { k1: k1, k2: k2 };
34319 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34322 x = x.toRed(this.red);
34324 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34325 var y = y2.redSqrt();
34326 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34327 throw new Error('invalid point');
34329 // XXX Is there any way to tell if the number is odd without converting it
34330 // to non-red form?
34331 var isOdd = y.fromRed().isOdd();
34332 if (odd && !isOdd || !odd && isOdd)
34335 return this.point(x, y);
34338 ShortCurve.prototype.validate = function validate(point) {
34345 var ax = this.a.redMul(x);
34346 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34347 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34350 ShortCurve.prototype._endoWnafMulAdd =
34351 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34352 var npoints = this._endoWnafT1;
34353 var ncoeffs = this._endoWnafT2;
34354 for (var i =
0; i < points.length; i++) {
34355 var split = this._endoSplit(coeffs[i]);
34357 var beta = p._getBeta();
34359 if (split.k1.negative) {
34363 if (split.k2.negative) {
34365 beta = beta.neg(true);
34368 npoints[i *
2] = p;
34369 npoints[i *
2 +
1] = beta;
34370 ncoeffs[i *
2] = split.k1;
34371 ncoeffs[i *
2 +
1] = split.k2;
34373 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34375 // Clean-up references to points and coefficients
34376 for (var j =
0; j < i *
2; j++) {
34383 function Point(curve, x, y, isRed) {
34384 Base.BasePoint.call(this, curve, 'affine');
34385 if (x === null && y === null) {
34390 this.x = new BN(x,
16);
34391 this.y = new BN(y,
16);
34392 // Force redgomery representation when loading from JSON
34394 this.x.forceRed(this.curve.red);
34395 this.y.forceRed(this.curve.red);
34398 this.x = this.x.toRed(this.curve.red);
34400 this.y = this.y.toRed(this.curve.red);
34404 inherits(Point, Base.BasePoint);
34406 ShortCurve.prototype.point = function point(x, y, isRed) {
34407 return new Point(this, x, y, isRed);
34410 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34411 return Point.fromJSON(this, obj, red);
34414 Point.prototype._getBeta = function _getBeta() {
34415 if (!this.curve.endo)
34418 var pre = this.precomputed;
34419 if (pre && pre.beta)
34422 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34424 var curve = this.curve;
34425 var endoMul = function(p) {
34426 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34429 beta.precomputed = {
34433 points: pre.naf.points.map(endoMul)
34435 doubles: pre.doubles && {
34436 step: pre.doubles.step,
34437 points: pre.doubles.points.map(endoMul)
34444 Point.prototype.toJSON = function toJSON() {
34445 if (!this.precomputed)
34446 return [ this.x, this.y ];
34448 return [ this.x, this.y, this.precomputed && {
34449 doubles: this.precomputed.doubles && {
34450 step: this.precomputed.doubles.step,
34451 points: this.precomputed.doubles.points.slice(
1)
34453 naf: this.precomputed.naf && {
34454 wnd: this.precomputed.naf.wnd,
34455 points: this.precomputed.naf.points.slice(
1)
34460 Point.fromJSON = function fromJSON(curve, obj, red) {
34461 if (typeof obj === 'string')
34462 obj = JSON.parse(obj);
34463 var res = curve.point(obj[
0], obj[
1], red);
34467 function obj2point(obj) {
34468 return curve.point(obj[
0], obj[
1], red);
34472 res.precomputed = {
34474 doubles: pre.doubles && {
34475 step: pre.doubles.step,
34476 points: [ res ].concat(pre.doubles.points.map(obj2point))
34480 points: [ res ].concat(pre.naf.points.map(obj2point))
34486 Point.prototype.inspect = function inspect() {
34487 if (this.isInfinity())
34488 return '
<EC Point Infinity
>';
34489 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34490 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34493 Point.prototype.isInfinity = function isInfinity() {
34497 Point.prototype.add = function add(p) {
34511 if (this.neg().eq(p))
34512 return this.curve.point(null, null);
34515 if (this.x.cmp(p.x) ===
0)
34516 return this.curve.point(null, null);
34518 var c = this.y.redSub(p.y);
34519 if (c.cmpn(
0) !==
0)
34520 c = c.redMul(this.x.redSub(p.x).redInvm());
34521 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34522 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34523 return this.curve.point(nx, ny);
34526 Point.prototype.dbl = function dbl() {
34531 var ys1 = this.y.redAdd(this.y);
34532 if (ys1.cmpn(
0) ===
0)
34533 return this.curve.point(null, null);
34535 var a = this.curve.a;
34537 var x2 = this.x.redSqr();
34538 var dyinv = ys1.redInvm();
34539 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34541 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34542 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34543 return this.curve.point(nx, ny);
34546 Point.prototype.getX = function getX() {
34547 return this.x.fromRed();
34550 Point.prototype.getY = function getY() {
34551 return this.y.fromRed();
34554 Point.prototype.mul = function mul(k) {
34557 if (this._hasDoubles(k))
34558 return this.curve._fixedNafMul(this, k);
34559 else if (this.curve.endo)
34560 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34562 return this.curve._wnafMul(this, k);
34565 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34566 var points = [ this, p2 ];
34567 var coeffs = [ k1, k2 ];
34568 if (this.curve.endo)
34569 return this.curve._endoWnafMulAdd(points, coeffs);
34571 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34574 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34575 var points = [ this, p2 ];
34576 var coeffs = [ k1, k2 ];
34577 if (this.curve.endo)
34578 return this.curve._endoWnafMulAdd(points, coeffs, true);
34580 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34583 Point.prototype.eq = function eq(p) {
34584 return this === p ||
34585 this.inf === p.inf &&
34586 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34589 Point.prototype.neg = function neg(_precompute) {
34593 var res = this.curve.point(this.x, this.y.redNeg());
34594 if (_precompute && this.precomputed) {
34595 var pre = this.precomputed;
34596 var negate = function(p) {
34599 res.precomputed = {
34602 points: pre.naf.points.map(negate)
34604 doubles: pre.doubles && {
34605 step: pre.doubles.step,
34606 points: pre.doubles.points.map(negate)
34613 Point.prototype.toJ = function toJ() {
34615 return this.curve.jpoint(null, null, null);
34617 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34621 function JPoint(curve, x, y, z) {
34622 Base.BasePoint.call(this, curve, 'jacobian');
34623 if (x === null && y === null && z === null) {
34624 this.x = this.curve.one;
34625 this.y = this.curve.one;
34626 this.z = new BN(
0);
34628 this.x = new BN(x,
16);
34629 this.y = new BN(y,
16);
34630 this.z = new BN(z,
16);
34633 this.x = this.x.toRed(this.curve.red);
34635 this.y = this.y.toRed(this.curve.red);
34637 this.z = this.z.toRed(this.curve.red);
34639 this.zOne = this.z === this.curve.one;
34641 inherits(JPoint, Base.BasePoint);
34643 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34644 return new JPoint(this, x, y, z);
34647 JPoint.prototype.toP = function toP() {
34648 if (this.isInfinity())
34649 return this.curve.point(null, null);
34651 var zinv = this.z.redInvm();
34652 var zinv2 = zinv.redSqr();
34653 var ax = this.x.redMul(zinv2);
34654 var ay = this.y.redMul(zinv2).redMul(zinv);
34656 return this.curve.point(ax, ay);
34659 JPoint.prototype.neg = function neg() {
34660 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34663 JPoint.prototype.add = function add(p) {
34665 if (this.isInfinity())
34669 if (p.isInfinity())
34673 var pz2 = p.z.redSqr();
34674 var z2 = this.z.redSqr();
34675 var u1 = this.x.redMul(pz2);
34676 var u2 = p.x.redMul(z2);
34677 var s1 = this.y.redMul(pz2.redMul(p.z));
34678 var s2 = p.y.redMul(z2.redMul(this.z));
34680 var h = u1.redSub(u2);
34681 var r = s1.redSub(s2);
34682 if (h.cmpn(
0) ===
0) {
34683 if (r.cmpn(
0) !==
0)
34684 return this.curve.jpoint(null, null, null);
34689 var h2 = h.redSqr();
34690 var h3 = h2.redMul(h);
34691 var v = u1.redMul(h2);
34693 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34694 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34695 var nz = this.z.redMul(p.z).redMul(h);
34697 return this.curve.jpoint(nx, ny, nz);
34700 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34702 if (this.isInfinity())
34706 if (p.isInfinity())
34710 var z2 = this.z.redSqr();
34712 var u2 = p.x.redMul(z2);
34714 var s2 = p.y.redMul(z2).redMul(this.z);
34716 var h = u1.redSub(u2);
34717 var r = s1.redSub(s2);
34718 if (h.cmpn(
0) ===
0) {
34719 if (r.cmpn(
0) !==
0)
34720 return this.curve.jpoint(null, null, null);
34725 var h2 = h.redSqr();
34726 var h3 = h2.redMul(h);
34727 var v = u1.redMul(h2);
34729 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34730 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34731 var nz = this.z.redMul(h);
34733 return this.curve.jpoint(nx, ny, nz);
34736 JPoint.prototype.dblp = function dblp(pow) {
34739 if (this.isInfinity())
34744 if (this.curve.zeroA || this.curve.threeA) {
34746 for (var i =
0; i < pow; i++)
34751 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34752 // N =
1 =
> 6M +
6S +
9A
34753 var a = this.curve.a;
34754 var tinv = this.curve.tinv;
34759 var jz4 = jz.redSqr().redSqr();
34762 var jyd = jy.redAdd(jy);
34763 for (var i =
0; i < pow; i++) {
34764 var jx2 = jx.redSqr();
34765 var jyd2 = jyd.redSqr();
34766 var jyd4 = jyd2.redSqr();
34767 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34769 var t1 = jx.redMul(jyd2);
34770 var nx = c.redSqr().redISub(t1.redAdd(t1));
34771 var t2 = t1.redISub(nx);
34772 var dny = c.redMul(t2);
34773 dny = dny.redIAdd(dny).redISub(jyd4);
34774 var nz = jyd.redMul(jz);
34776 jz4 = jz4.redMul(jyd4);
34783 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34786 JPoint.prototype.dbl = function dbl() {
34787 if (this.isInfinity())
34790 if (this.curve.zeroA)
34791 return this._zeroDbl();
34792 else if (this.curve.threeA)
34793 return this._threeDbl();
34795 return this._dbl();
34798 JPoint.prototype._zeroDbl = function _zeroDbl() {
34804 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34805 // #doubling-mdbl-
2007-bl
34809 var xx = this.x.redSqr();
34811 var yy = this.y.redSqr();
34813 var yyyy = yy.redSqr();
34814 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34815 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34817 // M =
3 * XX + a; a =
0
34818 var m = xx.redAdd(xx).redIAdd(xx);
34820 var t = m.redSqr().redISub(s).redISub(s);
34823 var yyyy8 = yyyy.redIAdd(yyyy);
34824 yyyy8 = yyyy8.redIAdd(yyyy8);
34825 yyyy8 = yyyy8.redIAdd(yyyy8);
34829 // Y3 = M * (S - T) -
8 * YYYY
34830 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34832 nz = this.y.redAdd(this.y);
34834 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34835 // #doubling-dbl-
2009-l
34839 var a = this.x.redSqr();
34841 var b = this.y.redSqr();
34843 var c = b.redSqr();
34844 // D =
2 * ((X1 + B)^
2 - A - C)
34845 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34848 var e = a.redAdd(a).redIAdd(a);
34850 var f = e.redSqr();
34853 var c8 = c.redIAdd(c);
34854 c8 = c8.redIAdd(c8);
34855 c8 = c8.redIAdd(c8);
34858 nx = f.redISub(d).redISub(d);
34859 // Y3 = E * (D - X3) -
8 * C
34860 ny = e.redMul(d.redISub(nx)).redISub(c8);
34861 // Z3 =
2 * Y1 * Z1
34862 nz = this.y.redMul(this.z);
34863 nz = nz.redIAdd(nz);
34866 return this.curve.jpoint(nx, ny, nz);
34869 JPoint.prototype._threeDbl = function _threeDbl() {
34875 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34876 // #doubling-mdbl-
2007-bl
34880 var xx = this.x.redSqr();
34882 var yy = this.y.redSqr();
34884 var yyyy = yy.redSqr();
34885 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34886 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34889 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34891 var t = m.redSqr().redISub(s).redISub(s);
34894 // Y3 = M * (S - T) -
8 * YYYY
34895 var yyyy8 = yyyy.redIAdd(yyyy);
34896 yyyy8 = yyyy8.redIAdd(yyyy8);
34897 yyyy8 = yyyy8.redIAdd(yyyy8);
34898 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34900 nz = this.y.redAdd(this.y);
34902 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34906 var delta = this.z.redSqr();
34908 var gamma = this.y.redSqr();
34909 // beta = X1 * gamma
34910 var beta = this.x.redMul(gamma);
34911 // alpha =
3 * (X1 - delta) * (X1 + delta)
34912 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34913 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34914 // X3 = alpha^
2 -
8 * beta
34915 var beta4 = beta.redIAdd(beta);
34916 beta4 = beta4.redIAdd(beta4);
34917 var beta8 = beta4.redAdd(beta4);
34918 nx = alpha.redSqr().redISub(beta8);
34919 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34920 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34921 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34922 var ggamma8 = gamma.redSqr();
34923 ggamma8 = ggamma8.redIAdd(ggamma8);
34924 ggamma8 = ggamma8.redIAdd(ggamma8);
34925 ggamma8 = ggamma8.redIAdd(ggamma8);
34926 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34929 return this.curve.jpoint(nx, ny, nz);
34932 JPoint.prototype._dbl = function _dbl() {
34933 var a = this.curve.a;
34939 var jz4 = jz.redSqr().redSqr();
34941 var jx2 = jx.redSqr();
34942 var jy2 = jy.redSqr();
34944 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34946 var jxd4 = jx.redAdd(jx);
34947 jxd4 = jxd4.redIAdd(jxd4);
34948 var t1 = jxd4.redMul(jy2);
34949 var nx = c.redSqr().redISub(t1.redAdd(t1));
34950 var t2 = t1.redISub(nx);
34952 var jyd8 = jy2.redSqr();
34953 jyd8 = jyd8.redIAdd(jyd8);
34954 jyd8 = jyd8.redIAdd(jyd8);
34955 jyd8 = jyd8.redIAdd(jyd8);
34956 var ny = c.redMul(t2).redISub(jyd8);
34957 var nz = jy.redAdd(jy).redMul(jz);
34959 return this.curve.jpoint(nx, ny, nz);
34962 JPoint.prototype.trpl = function trpl() {
34963 if (!this.curve.zeroA)
34964 return this.dbl().add(this);
34966 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
34970 var xx = this.x.redSqr();
34972 var yy = this.y.redSqr();
34974 var zz = this.z.redSqr();
34976 var yyyy = yy.redSqr();
34977 // M =
3 * XX + a * ZZ2; a =
0
34978 var m = xx.redAdd(xx).redIAdd(xx);
34980 var mm = m.redSqr();
34981 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
34982 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34984 e = e.redAdd(e).redIAdd(e);
34987 var ee = e.redSqr();
34989 var t = yyyy.redIAdd(yyyy);
34993 // U = (M + E)^
2 - MM - EE - T
34994 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
34995 // X3 =
4 * (X1 * EE -
4 * YY * U)
34996 var yyu4 = yy.redMul(u);
34997 yyu4 = yyu4.redIAdd(yyu4);
34998 yyu4 = yyu4.redIAdd(yyu4);
34999 var nx = this.x.redMul(ee).redISub(yyu4);
35000 nx = nx.redIAdd(nx);
35001 nx = nx.redIAdd(nx);
35002 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
35003 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
35004 ny = ny.redIAdd(ny);
35005 ny = ny.redIAdd(ny);
35006 ny = ny.redIAdd(ny);
35007 // Z3 = (Z1 + E)^
2 - ZZ - EE
35008 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35010 return this.curve.jpoint(nx, ny, nz);
35013 JPoint.prototype.mul = function mul(k, kbase) {
35014 k = new BN(k, kbase);
35016 return this.curve._wnafMul(this, k);
35019 JPoint.prototype.eq = function eq(p) {
35020 if (p.type === 'affine')
35021 return this.eq(p.toJ());
35026 // x1 * z2^
2 == x2 * z1^
2
35027 var z2 = this.z.redSqr();
35028 var pz2 = p.z.redSqr();
35029 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35032 // y1 * z2^
3 == y2 * z1^
3
35033 var z3 = z2.redMul(this.z);
35034 var pz3 = pz2.redMul(p.z);
35035 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35038 JPoint.prototype.eqXToP = function eqXToP(x) {
35039 var zs = this.z.redSqr();
35040 var rx = x.toRed(this.curve.red).redMul(zs);
35041 if (this.x.cmp(rx) ===
0)
35044 var xc = x.clone();
35045 var t = this.curve.redN.redMul(zs);
35047 xc.iadd(this.curve.n);
35048 if (xc.cmp(this.curve.p)
>=
0)
35052 if (this.x.cmp(rx) ===
0)
35058 JPoint.prototype.inspect = function inspect() {
35059 if (this.isInfinity())
35060 return '
<EC JPoint Infinity
>';
35061 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35062 ' y: ' + this.y.toString(
16,
2) +
35063 ' z: ' + this.z.toString(
16,
2) + '
>';
35066 JPoint.prototype.isInfinity = function isInfinity() {
35067 // XXX This code assumes that zero is always zero in red
35068 return this.z.cmpn(
0) ===
0;
35071 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35074 var curves = exports;
35076 var hash = require('hash.js');
35077 var elliptic = require('../elliptic');
35079 var assert = elliptic.utils.assert;
35081 function PresetCurve(options) {
35082 if (options.type === 'short')
35083 this.curve = new elliptic.curve.short(options);
35084 else if (options.type === 'edwards')
35085 this.curve = new elliptic.curve.edwards(options);
35087 this.curve = new elliptic.curve.mont(options);
35088 this.g = this.curve.g;
35089 this.n = this.curve.n;
35090 this.hash = options.hash;
35092 assert(this.g.validate(), 'Invalid curve');
35093 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35095 curves.PresetCurve = PresetCurve;
35097 function defineCurve(name, options) {
35098 Object.defineProperty(curves, name, {
35099 configurable: true,
35102 var curve = new PresetCurve(options);
35103 Object.defineProperty(curves, name, {
35104 configurable: true,
35113 defineCurve('p192', {
35116 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35117 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35118 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35119 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35123 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35124 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35128 defineCurve('p224', {
35131 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35132 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35133 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35134 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35138 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35139 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35143 defineCurve('p256', {
35146 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35147 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35148 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35149 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35153 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35154 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35158 defineCurve('p384', {
35161 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35162 'fffffffe ffffffff
00000000 00000000 ffffffff',
35163 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35164 'fffffffe ffffffff
00000000 00000000 fffffffc',
35165 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35166 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35167 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35168 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35172 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35173 '
5502f25d bf55296c
3a545e38
72760ab7',
35174 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35175 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35179 defineCurve('p521', {
35182 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35183 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35184 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35185 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35186 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35187 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35188 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35189 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35190 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35191 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35192 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35193 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35197 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35198 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35199 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35200 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35201 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35202 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35206 defineCurve('curve25519', {
35209 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35212 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35220 defineCurve('ed25519', {
35223 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35226 // -
121665 * (
121666^(-
1)) (mod P)
35227 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35228 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35232 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35235 '
6666666666666666666666666666666666666666666666666666666666666658'
35241 pre = require('./precomputed/secp256k1');
35246 defineCurve('secp256k1', {
35249 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35252 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35256 // Precomputed endomorphism
35257 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35258 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35261 a: '
3086d221a7d46bcde86c90e49284eb15',
35262 b: '-e4437ed6010e88286f547fa90abfe4c3'
35265 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35266 b: '
3086d221a7d46bcde86c90e49284eb15'
35272 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35273 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35278 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35281 var BN = require('bn.js');
35282 var elliptic = require('../../elliptic');
35283 var utils = elliptic.utils;
35284 var assert = utils.assert;
35286 var KeyPair = require('./key');
35287 var Signature = require('./signature');
35289 function EC(options) {
35290 if (!(this instanceof EC))
35291 return new EC(options);
35293 // Shortcut `elliptic.ec(curve-name)`
35294 if (typeof options === 'string') {
35295 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35297 options = elliptic.curves[options];
35300 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35301 if (options instanceof elliptic.curves.PresetCurve)
35302 options = { curve: options };
35304 this.curve = options.curve.curve;
35305 this.n = this.curve.n;
35306 this.nh = this.n.ushrn(
1);
35307 this.g = this.curve.g;
35310 this.g = options.curve.g;
35311 this.g.precompute(options.curve.n.bitLength() +
1);
35313 // Hash for function for DRBG
35314 this.hash = options.hash || options.curve.hash;
35316 module.exports = EC;
35318 EC.prototype.keyPair = function keyPair(options) {
35319 return new KeyPair(this, options);
35322 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35323 return KeyPair.fromPrivate(this, priv, enc);
35326 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35327 return KeyPair.fromPublic(this, pub, enc);
35330 EC.prototype.genKeyPair = function genKeyPair(options) {
35334 // Instantiate Hmac_DRBG
35335 var drbg = new elliptic.hmacDRBG({
35337 pers: options.pers,
35338 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35339 nonce: this.n.toArray()
35342 var bytes = this.n.byteLength();
35343 var ns2 = this.n.sub(new BN(
2));
35345 var priv = new BN(drbg.generate(bytes));
35346 if (priv.cmp(ns2)
> 0)
35350 return this.keyFromPrivate(priv);
35354 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35355 var delta = msg.byteLength() *
8 - this.n.bitLength();
35357 msg = msg.ushrn(delta);
35358 if (!truncOnly && msg.cmp(this.n)
>=
0)
35359 return msg.sub(this.n);
35364 EC.prototype.sign = function sign(msg, key, enc, options) {
35365 if (typeof enc === 'object') {
35372 key = this.keyFromPrivate(key, enc);
35373 msg = this._truncateToN(new BN(msg,
16));
35375 // Zero-extend key to provide enough entropy
35376 var bytes = this.n.byteLength();
35377 var bkey = key.getPrivate().toArray('be', bytes);
35379 // Zero-extend nonce to have the same byte size as N
35380 var nonce = msg.toArray('be', bytes);
35382 // Instantiate Hmac_DRBG
35383 var drbg = new elliptic.hmacDRBG({
35387 pers: options.pers,
35388 persEnc: options.persEnc
35391 // Number of bytes to generate
35392 var ns1 = this.n.sub(new BN(
1));
35394 for (var iter =
0; true; iter++) {
35395 var k = options.k ?
35397 new BN(drbg.generate(this.n.byteLength()));
35398 k = this._truncateToN(k, true);
35399 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35402 var kp = this.g.mul(k);
35403 if (kp.isInfinity())
35406 var kpX = kp.getX();
35407 var r = kpX.umod(this.n);
35408 if (r.cmpn(
0) ===
0)
35411 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35412 s = s.umod(this.n);
35413 if (s.cmpn(
0) ===
0)
35416 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35417 (kpX.cmp(r) !==
0 ?
2 :
0);
35419 // Use complement of `s`, if it is
> `n /
2`
35420 if (options.canonical && s.cmp(this.nh)
> 0) {
35422 recoveryParam ^=
1;
35425 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35429 EC.prototype.verify = function verify(msg, signature, key, enc) {
35430 msg = this._truncateToN(new BN(msg,
16));
35431 key = this.keyFromPublic(key, enc);
35432 signature = new Signature(signature, 'hex');
35434 // Perform primitive values validation
35435 var r = signature.r;
35436 var s = signature.s;
35437 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35439 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35442 // Validate signature
35443 var sinv = s.invm(this.n);
35444 var u1 = sinv.mul(msg).umod(this.n);
35445 var u2 = sinv.mul(r).umod(this.n);
35447 if (!this.curve._maxwellTrick) {
35448 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35449 if (p.isInfinity())
35452 return p.getX().umod(this.n).cmp(r) ===
0;
35455 // NOTE: Greg Maxwell's trick, inspired by:
35456 // https://git.io/vad3K
35458 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35459 if (p.isInfinity())
35462 // Compare `p.x` of Jacobian point with `r`,
35463 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35464 // inverse of `p.z^
2`
35465 return p.eqXToP(r);
35468 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35469 assert((
3 & j) === j, 'The recovery param is more than two bits');
35470 signature = new Signature(signature, enc);
35473 var e = new BN(msg);
35474 var r = signature.r;
35475 var s = signature.s;
35477 // A set LSB signifies that the y-coordinate is odd
35478 var isYOdd = j &
1;
35479 var isSecondKey = j
>> 1;
35480 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35481 throw new Error('Unable to find sencond key candinate');
35483 //
1.1. Let x = r + jn.
35485 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35487 r = this.curve.pointFromX(r, isYOdd);
35489 var rInv = signature.r.invm(n);
35490 var s1 = n.sub(e).mul(rInv).umod(n);
35491 var s2 = s.mul(rInv).umod(n);
35493 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35494 // Q = r^-
1 (sR + -eG)
35495 return this.g.mulAdd(s1, r, s2);
35498 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35499 signature = new Signature(signature, enc);
35500 if (signature.recoveryParam !== null)
35501 return signature.recoveryParam;
35503 for (var i =
0; i <
4; i++) {
35506 Qprime = this.recoverPubKey(e, signature, i);
35514 throw new Error('Unable to find valid recovery factor');
35517 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35520 var BN = require('bn.js');
35521 var elliptic = require('../../elliptic');
35522 var utils = elliptic.utils;
35523 var assert = utils.assert;
35525 function KeyPair(ec, options) {
35530 // KeyPair(ec, { priv: ..., pub: ... })
35532 this._importPrivate(options.priv, options.privEnc);
35534 this._importPublic(options.pub, options.pubEnc);
35536 module.exports = KeyPair;
35538 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35539 if (pub instanceof KeyPair)
35542 return new KeyPair(ec, {
35548 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35549 if (priv instanceof KeyPair)
35552 return new KeyPair(ec, {
35558 KeyPair.prototype.validate = function validate() {
35559 var pub = this.getPublic();
35561 if (pub.isInfinity())
35562 return { result: false, reason: 'Invalid public key' };
35563 if (!pub.validate())
35564 return { result: false, reason: 'Public key is not a point' };
35565 if (!pub.mul(this.ec.curve.n).isInfinity())
35566 return { result: false, reason: 'Public key * N != O' };
35568 return { result: true, reason: null };
35571 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35572 // compact is optional argument
35573 if (typeof compact === 'string') {
35579 this.pub = this.ec.g.mul(this.priv);
35584 return this.pub.encode(enc, compact);
35587 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35589 return this.priv.toString(
16,
2);
35594 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35595 this.priv = new BN(key, enc ||
16);
35597 // Ensure that the priv won't be bigger than n, otherwise we may fail
35598 // in fixed multiplication method
35599 this.priv = this.priv.umod(this.ec.curve.n);
35602 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35603 if (key.x || key.y) {
35604 // Montgomery points only have an `x` coordinate.
35605 // Weierstrass/Edwards points on the other hand have both `x` and
35606 // `y` coordinates.
35607 if (this.ec.curve.type === 'mont') {
35608 assert(key.x, 'Need x coordinate');
35609 } else if (this.ec.curve.type === 'short' ||
35610 this.ec.curve.type === 'edwards') {
35611 assert(key.x && key.y, 'Need both x and y coordinate');
35613 this.pub = this.ec.curve.point(key.x, key.y);
35616 this.pub = this.ec.curve.decodePoint(key, enc);
35620 KeyPair.prototype.derive = function derive(pub) {
35621 return pub.mul(this.priv).getX();
35625 KeyPair.prototype.sign = function sign(msg, enc, options) {
35626 return this.ec.sign(msg, this, enc, options);
35629 KeyPair.prototype.verify = function verify(msg, signature) {
35630 return this.ec.verify(msg, signature, this);
35633 KeyPair.prototype.inspect = function inspect() {
35634 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35635 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35638 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35641 var BN = require('bn.js');
35643 var elliptic = require('../../elliptic');
35644 var utils = elliptic.utils;
35645 var assert = utils.assert;
35647 function Signature(options, enc) {
35648 if (options instanceof Signature)
35651 if (this._importDER(options, enc))
35654 assert(options.r && options.s, 'Signature without r or s');
35655 this.r = new BN(options.r,
16);
35656 this.s = new BN(options.s,
16);
35657 if (options.recoveryParam === undefined)
35658 this.recoveryParam = null;
35660 this.recoveryParam = options.recoveryParam;
35662 module.exports = Signature;
35664 function Position() {
35668 function getLength(buf, p) {
35669 var initial = buf[p.place++];
35670 if (!(initial &
0x80)) {
35673 var octetLen = initial &
0xf;
35675 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35683 function rmPadding(buf) {
35685 var len = buf.length -
1;
35686 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35692 return buf.slice(i);
35695 Signature.prototype._importDER = function _importDER(data, enc) {
35696 data = utils.toArray(data, enc);
35697 var p = new Position();
35698 if (data[p.place++] !==
0x30) {
35701 var len = getLength(data, p);
35702 if ((len + p.place) !== data.length) {
35705 if (data[p.place++] !==
0x02) {
35708 var rlen = getLength(data, p);
35709 var r = data.slice(p.place, rlen + p.place);
35711 if (data[p.place++] !==
0x02) {
35714 var slen = getLength(data, p);
35715 if (data.length !== slen + p.place) {
35718 var s = data.slice(p.place, slen + p.place);
35719 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35722 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35726 this.r = new BN(r);
35727 this.s = new BN(s);
35728 this.recoveryParam = null;
35733 function constructLength(arr, len) {
35738 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35739 arr.push(octets |
0x80);
35741 arr.push((len
>>> (octets <<
3)) &
0xff);
35746 Signature.prototype.toDER = function toDER(enc) {
35747 var r = this.r.toArray();
35748 var s = this.s.toArray();
35752 r = [
0 ].concat(r);
35755 s = [
0 ].concat(s);
35760 while (!s[
0] && !(s[
1] &
0x80)) {
35763 var arr = [
0x02 ];
35764 constructLength(arr, r.length);
35765 arr = arr.concat(r);
35767 constructLength(arr, s.length);
35768 var backHalf = arr.concat(s);
35769 var res = [
0x30 ];
35770 constructLength(res, backHalf.length);
35771 res = res.concat(backHalf);
35772 return utils.encode(res, enc);
35775 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35778 var hash = require('hash.js');
35779 var elliptic = require('../../elliptic');
35780 var utils = elliptic.utils;
35781 var assert = utils.assert;
35782 var parseBytes = utils.parseBytes;
35783 var KeyPair = require('./key');
35784 var Signature = require('./signature');
35786 function EDDSA(curve) {
35787 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35789 if (!(this instanceof EDDSA))
35790 return new EDDSA(curve);
35792 var curve = elliptic.curves[curve].curve;
35793 this.curve = curve;
35795 this.g.precompute(curve.n.bitLength() +
1);
35797 this.pointClass = curve.point().constructor;
35798 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35799 this.hash = hash.sha512;
35802 module.exports = EDDSA;
35805 * @param {Array|String} message - message bytes
35806 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35807 * @returns {Signature} - signature
35809 EDDSA.prototype.sign = function sign(message, secret) {
35810 message = parseBytes(message);
35811 var key = this.keyFromSecret(secret);
35812 var r = this.hashInt(key.messagePrefix(), message);
35813 var R = this.g.mul(r);
35814 var Rencoded = this.encodePoint(R);
35815 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35817 var S = r.add(s_).umod(this.curve.n);
35818 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35822 * @param {Array} message - message bytes
35823 * @param {Array|String|Signature} sig - sig bytes
35824 * @param {Array|String|Point|KeyPair} pub - public key
35825 * @returns {Boolean} - true if public key matches sig of message
35827 EDDSA.prototype.verify = function verify(message, sig, pub) {
35828 message = parseBytes(message);
35829 sig = this.makeSignature(sig);
35830 var key = this.keyFromPublic(pub);
35831 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35832 var SG = this.g.mul(sig.S());
35833 var RplusAh = sig.R().add(key.pub().mul(h));
35834 return RplusAh.eq(SG);
35837 EDDSA.prototype.hashInt = function hashInt() {
35838 var hash = this.hash();
35839 for (var i =
0; i < arguments.length; i++)
35840 hash.update(arguments[i]);
35841 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35844 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35845 return KeyPair.fromPublic(this, pub);
35848 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35849 return KeyPair.fromSecret(this, secret);
35852 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35853 if (sig instanceof Signature)
35855 return new Signature(this, sig);
35859 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35861 * EDDSA defines methods for encoding and decoding points and integers. These are
35862 * helper convenience methods, that pass along to utility functions implied
35866 EDDSA.prototype.encodePoint = function encodePoint(point) {
35867 var enc = point.getY().toArray('le', this.encodingLength);
35868 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35872 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35873 bytes = utils.parseBytes(bytes);
35875 var lastIx = bytes.length -
1;
35876 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35877 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35879 var y = utils.intFromLE(normed);
35880 return this.curve.pointFromY(y, xIsOdd);
35883 EDDSA.prototype.encodeInt = function encodeInt(num) {
35884 return num.toArray('le', this.encodingLength);
35887 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35888 return utils.intFromLE(bytes);
35891 EDDSA.prototype.isPoint = function isPoint(val) {
35892 return val instanceof this.pointClass;
35895 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35898 var elliptic = require('../../elliptic');
35899 var utils = elliptic.utils;
35900 var assert = utils.assert;
35901 var parseBytes = utils.parseBytes;
35902 var cachedProperty = utils.cachedProperty;
35905 * @param {EDDSA} eddsa - instance
35906 * @param {Object} params - public/private key parameters
35908 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35909 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35910 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35913 function KeyPair(eddsa, params) {
35914 this.eddsa = eddsa;
35915 this._secret = parseBytes(params.secret);
35916 if (eddsa.isPoint(params.pub))
35917 this._pub = params.pub;
35919 this._pubBytes = parseBytes(params.pub);
35922 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35923 if (pub instanceof KeyPair)
35925 return new KeyPair(eddsa, { pub: pub });
35928 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35929 if (secret instanceof KeyPair)
35931 return new KeyPair(eddsa, { secret: secret });
35934 KeyPair.prototype.secret = function secret() {
35935 return this._secret;
35938 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35939 return this.eddsa.encodePoint(this.pub());
35942 cachedProperty(KeyPair, 'pub', function pub() {
35943 if (this._pubBytes)
35944 return this.eddsa.decodePoint(this._pubBytes);
35945 return this.eddsa.g.mul(this.priv());
35948 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35949 var eddsa = this.eddsa;
35950 var hash = this.hash();
35951 var lastIx = eddsa.encodingLength -
1;
35953 var a = hash.slice(
0, eddsa.encodingLength);
35961 cachedProperty(KeyPair, 'priv', function priv() {
35962 return this.eddsa.decodeInt(this.privBytes());
35965 cachedProperty(KeyPair, 'hash', function hash() {
35966 return this.eddsa.hash().update(this.secret()).digest();
35969 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
35970 return this.hash().slice(this.eddsa.encodingLength);
35973 KeyPair.prototype.sign = function sign(message) {
35974 assert(this._secret, 'KeyPair can only verify');
35975 return this.eddsa.sign(message, this);
35978 KeyPair.prototype.verify = function verify(message, sig) {
35979 return this.eddsa.verify(message, sig, this);
35982 KeyPair.prototype.getSecret = function getSecret(enc) {
35983 assert(this._secret, 'KeyPair is public only');
35984 return utils.encode(this.secret(), enc);
35987 KeyPair.prototype.getPublic = function getPublic(enc) {
35988 return utils.encode(this.pubBytes(), enc);
35991 module.exports = KeyPair;
35993 },{"../../elliptic":
39}],
51:[function(require,module,exports){
35996 var BN = require('bn.js');
35997 var elliptic = require('../../elliptic');
35998 var utils = elliptic.utils;
35999 var assert = utils.assert;
36000 var cachedProperty = utils.cachedProperty;
36001 var parseBytes = utils.parseBytes;
36004 * @param {EDDSA} eddsa - eddsa instance
36005 * @param {Array
<Bytes>|Object} sig -
36006 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36007 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36008 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36009 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36011 function Signature(eddsa, sig) {
36012 this.eddsa = eddsa;
36014 if (typeof sig !== 'object')
36015 sig = parseBytes(sig);
36017 if (Array.isArray(sig)) {
36019 R: sig.slice(
0, eddsa.encodingLength),
36020 S: sig.slice(eddsa.encodingLength)
36024 assert(sig.R && sig.S, 'Signature without R or S');
36026 if (eddsa.isPoint(sig.R))
36028 if (sig.S instanceof BN)
36031 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36032 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36035 cachedProperty(Signature, 'S', function S() {
36036 return this.eddsa.decodeInt(this.Sencoded());
36039 cachedProperty(Signature, 'R', function R() {
36040 return this.eddsa.decodePoint(this.Rencoded());
36043 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36044 return this.eddsa.encodePoint(this.R());
36047 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36048 return this.eddsa.encodeInt(this.S());
36051 Signature.prototype.toBytes = function toBytes() {
36052 return this.Rencoded().concat(this.Sencoded());
36055 Signature.prototype.toHex = function toHex() {
36056 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36059 module.exports = Signature;
36061 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36064 var hash = require('hash.js');
36065 var elliptic = require('../elliptic');
36066 var utils = elliptic.utils;
36067 var assert = utils.assert;
36069 function HmacDRBG(options) {
36070 if (!(this instanceof HmacDRBG))
36071 return new HmacDRBG(options);
36072 this.hash = options.hash;
36073 this.predResist = !!options.predResist;
36075 this.outLen = this.hash.outSize;
36076 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36078 this.reseed = null;
36079 this.reseedInterval = null;
36083 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36084 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36085 var pers = utils.toArray(options.pers, options.persEnc);
36086 assert(entropy.length
>= (this.minEntropy /
8),
36087 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36088 this._init(entropy, nonce, pers);
36090 module.exports = HmacDRBG;
36092 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36093 var seed = entropy.concat(nonce).concat(pers);
36095 this.K = new Array(this.outLen /
8);
36096 this.V = new Array(this.outLen /
8);
36097 for (var i =
0; i < this.V.length; i++) {
36102 this._update(seed);
36104 this.reseedInterval =
0x1000000000000; //
2^
48
36107 HmacDRBG.prototype._hmac = function hmac() {
36108 return new hash.hmac(this.hash, this.K);
36111 HmacDRBG.prototype._update = function update(seed) {
36112 var kmac = this._hmac()
36116 kmac = kmac.update(seed);
36117 this.K = kmac.digest();
36118 this.V = this._hmac().update(this.V).digest();
36122 this.K = this._hmac()
36127 this.V = this._hmac().update(this.V).digest();
36130 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36131 // Optional entropy enc
36132 if (typeof entropyEnc !== 'string') {
36138 entropy = utils.toBuffer(entropy, entropyEnc);
36139 add = utils.toBuffer(add, addEnc);
36141 assert(entropy.length
>= (this.minEntropy /
8),
36142 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36144 this._update(entropy.concat(add || []));
36148 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36149 if (this.reseed
> this.reseedInterval)
36150 throw new Error('Reseed is required');
36152 // Optional encoding
36153 if (typeof enc !== 'string') {
36159 // Optional additional data
36161 add = utils.toArray(add, addEnc);
36166 while (temp.length < len) {
36167 this.V = this._hmac().update(this.V).digest();
36168 temp = temp.concat(this.V);
36171 var res = temp.slice(
0, len);
36174 return utils.encode(res, enc);
36177 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36183 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36184 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36187 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36188 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36191 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36192 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36195 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36196 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36199 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36200 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36203 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36204 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36207 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36208 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36211 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36212 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36215 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36216 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36219 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36220 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36223 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36224 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36227 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36228 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36231 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36232 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36235 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36236 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36239 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36240 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36243 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36244 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36247 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36248 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36251 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36252 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36255 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36256 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36259 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36260 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36263 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36264 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36267 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36268 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36271 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36272 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36275 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36276 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36279 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36280 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36283 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36284 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36287 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36288 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36291 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36292 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36295 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36296 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36299 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36300 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36303 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36304 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36307 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36308 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36311 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36312 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36315 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36316 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36319 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36320 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36323 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36324 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36327 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36328 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36331 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36332 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36335 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36336 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36339 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36340 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36343 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36344 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36347 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36348 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36351 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36352 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36355 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36356 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36359 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36360 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36363 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36364 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36367 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36368 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36371 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36372 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36375 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36376 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36379 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36380 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36383 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36384 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36387 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36388 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36391 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36392 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36395 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36396 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36399 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36400 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36403 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36404 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36407 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36408 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36411 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36412 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36415 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36416 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36419 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36420 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36423 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36424 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36427 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36428 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36431 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36432 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36435 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36436 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36439 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36440 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36448 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36449 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36452 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36453 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36456 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36457 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36460 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36461 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36464 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36465 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36468 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36469 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36472 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36473 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36476 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36477 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36480 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36481 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36484 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36485 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36488 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36489 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36492 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36493 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36496 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36497 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36500 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36501 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36504 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36505 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36508 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36509 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36512 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36513 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36516 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36517 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36520 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36521 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36524 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36525 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36528 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36529 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36532 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36533 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36536 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36537 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36540 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36541 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36544 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36545 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36548 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36549 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36552 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36553 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36556 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36557 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36560 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36561 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36564 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36565 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36568 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36569 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36572 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36573 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36576 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36577 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36580 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36581 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36584 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36585 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36588 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36589 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36592 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36593 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36596 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36597 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36600 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36601 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36604 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36605 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36608 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36609 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36612 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36613 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36616 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36617 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36620 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36621 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36624 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36625 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36628 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36629 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36632 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36633 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36636 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36637 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36640 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36641 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36644 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36645 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36648 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36649 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36652 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36653 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36656 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36657 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36660 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36661 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36664 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36665 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36668 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36669 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36672 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36673 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36676 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36677 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36680 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36681 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36684 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36685 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36688 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36689 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36692 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36693 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36696 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36697 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36700 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36701 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36704 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36705 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36708 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36709 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36712 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36713 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36716 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36717 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36720 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36721 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36724 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36725 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36728 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36729 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36732 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36733 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36736 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36737 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36740 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36741 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36744 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36745 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36748 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36749 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36752 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36753 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36756 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36757 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36760 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36761 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36764 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36765 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36768 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36769 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36772 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36773 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36776 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36777 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36780 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36781 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36784 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36785 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36788 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36789 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36792 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36793 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36796 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36797 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36800 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36801 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36804 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36805 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36808 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36809 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36812 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36813 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36816 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36817 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36820 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36821 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36824 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36825 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36828 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36829 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36832 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36833 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36836 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36837 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36840 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36841 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36844 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36845 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36848 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36849 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36852 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36853 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36856 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36857 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36860 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36861 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36864 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36865 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36868 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36869 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36872 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36873 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36876 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36877 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36880 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36881 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36884 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36885 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36888 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36889 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36892 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36893 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36896 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36897 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36900 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36901 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36904 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36905 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36908 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36909 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36912 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36913 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36916 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36917 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36920 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36921 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36924 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36925 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36928 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36929 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36932 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36933 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36936 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36937 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36940 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36941 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36944 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36945 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36948 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36949 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36952 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36953 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36959 },{}],
54:[function(require,module,exports){
36962 var utils = exports;
36963 var BN = require('bn.js');
36965 utils.assert = function assert(val, msg) {
36967 throw new Error(msg || 'Assertion failed');
36970 function toArray(msg, enc) {
36971 if (Array.isArray(msg))
36972 return msg.slice();
36976 if (typeof msg !== 'string') {
36977 for (var i =
0; i < msg.length; i++)
36978 res[i] = msg[i] |
0;
36982 for (var i =
0; i < msg.length; i++) {
36983 var c = msg.charCodeAt(i);
36991 } else if (enc === 'hex') {
36992 msg = msg.replace(/[^a-z0-
9]+/ig, '');
36993 if (msg.length %
2 !==
0)
36995 for (var i =
0; i < msg.length; i +=
2)
36996 res.push(parseInt(msg[i] + msg[i +
1],
16));
37000 utils.toArray = toArray;
37002 function zero2(word) {
37003 if (word.length ===
1)
37008 utils.zero2 = zero2;
37010 function toHex(msg) {
37012 for (var i =
0; i < msg.length; i++)
37013 res += zero2(msg[i].toString(
16));
37016 utils.toHex = toHex;
37018 utils.encode = function encode(arr, enc) {
37025 // Represent num in a w-NAF form
37026 function getNAF(num, w) {
37028 var ws =
1 << (w +
1);
37029 var k = num.clone();
37030 while (k.cmpn(
1)
>=
0) {
37033 var mod = k.andln(ws -
1);
37034 if (mod
> (ws
>> 1) -
1)
37035 z = (ws
>> 1) - mod;
37044 // Optimization, shift by word if possible
37045 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37046 for (var i =
1; i < shift; i++)
37053 utils.getNAF = getNAF;
37055 // Represent k1, k2 in a Joint Sparse Form
37056 function getJSF(k1, k2) {
37066 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37069 var m14 = (k1.andln(
3) + d1) &
3;
37070 var m24 = (k2.andln(
3) + d2) &
3;
37076 if ((m14 &
1) ===
0) {
37079 var m8 = (k1.andln(
7) + d1) &
7;
37080 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37088 if ((m24 &
1) ===
0) {
37091 var m8 = (k2.andln(
7) + d2) &
7;
37092 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37100 if (
2 * d1 === u1 +
1)
37102 if (
2 * d2 === u2 +
1)
37110 utils.getJSF = getJSF;
37112 function cachedProperty(obj, name, computer) {
37113 var key = '_' + name;
37114 obj.prototype[name] = function cachedProperty() {
37115 return this[key] !== undefined ? this[key] :
37116 this[key] = computer.call(this);
37119 utils.cachedProperty = cachedProperty;
37121 function parseBytes(bytes) {
37122 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37125 utils.parseBytes = parseBytes;
37127 function intFromLE(bytes) {
37128 return new BN(bytes, 'hex', 'le');
37130 utils.intFromLE = intFromLE;
37133 },{
"bn.js":
33}],
55:[function(require,module,exports){
37138 "raw":
"elliptic@^6.2.3",
37140 "escapedName":
"elliptic",
37141 "name":
"elliptic",
37142 "rawSpec":
"^6.2.3",
37143 "spec":
">=6.2.3 <7.0.0",
37146 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37149 "_from":
"elliptic@>=6.2.3 <7.0.0",
37150 "_id":
"elliptic@6.3.3",
37152 "_location":
"/elliptic",
37153 "_nodeVersion":
"7.0.0",
37154 "_npmOperationalInternal": {
37155 "host":
"packages-18-east.internal.npmjs.com",
37156 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37160 "email":
"fedor@indutny.com"
37162 "_npmVersion":
"3.10.8",
37163 "_phantomChildren": {},
37165 "raw":
"elliptic@^6.2.3",
37167 "escapedName":
"elliptic",
37168 "name":
"elliptic",
37169 "rawSpec":
"^6.2.3",
37170 "spec":
">=6.2.3 <7.0.0",
37174 "/browserify-sign",
37178 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37179 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37180 "_shrinkwrap": null,
37181 "_spec":
"elliptic@^6.2.3",
37182 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37184 "name":
"Fedor Indutny",
37185 "email":
"fedor@indutny.com"
37188 "url":
"https://github.com/indutny/elliptic/issues"
37192 "brorand":
"^1.0.1",
37193 "hash.js":
"^1.0.0",
37194 "inherits":
"^2.0.1"
37196 "description":
"EC cryptography",
37197 "devDependencies": {
37199 "coveralls":
"^2.11.3",
37201 "grunt-browserify":
"^5.0.0",
37202 "grunt-cli":
"^1.2.0",
37203 "grunt-contrib-connect":
"^1.0.0",
37204 "grunt-contrib-copy":
"^1.0.0",
37205 "grunt-contrib-uglify":
"^1.0.1",
37206 "grunt-mocha-istanbul":
"^3.0.1",
37207 "grunt-saucelabs":
"^8.6.2",
37208 "istanbul":
"^0.4.2",
37210 "jshint":
"^2.6.0",
37215 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37216 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37221 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37222 "homepage":
"https://github.com/indutny/elliptic",
37230 "main":
"lib/elliptic.js",
37234 "email":
"fedor@indutny.com"
37237 "name":
"elliptic",
37238 "optionalDependencies": {},
37239 "readme":
"ERROR: No README data found!",
37242 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37245 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37246 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37247 "lint":
"npm run jscs && npm run jshint",
37248 "test":
"npm run lint && npm run unit",
37249 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37250 "version":
"grunt dist && git add dist/"
37255 },{}],
56:[function(require,module,exports){
37256 (function (Buffer){
37259 var isHexPrefixed = require('is-hex-prefixed');
37260 var stripHexPrefix = require('strip-hex-prefix');
37263 * Pads a `String` to have an even length
37264 * @param {String} value
37265 * @return {String} output
37267 function padToEven(value) {
37268 var a = value; // eslint-disable-line
37270 if (typeof a !== 'string') {
37271 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37274 if (a.length %
2) {
37282 * Converts a `Number` into a hex `String`
37283 * @param {Number} i
37286 function intToHex(i) {
37287 var hex = i.toString(
16); // eslint-disable-line
37289 return '
0x' + padToEven(hex);
37293 * Converts an `Number` to a `Buffer`
37294 * @param {Number} i
37297 function intToBuffer(i) {
37298 var hex = intToHex(i);
37300 return new Buffer(hex.slice(
2), 'hex');
37304 * Get the binary size of a string
37305 * @param {String} str
37308 function getBinarySize(str) {
37309 if (typeof str !== 'string') {
37310 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37313 return Buffer.byteLength(str, 'utf8');
37317 * Returns TRUE if the first specified array contains all elements
37318 * from the second one. FALSE otherwise.
37320 * @param {array} superset
37321 * @param {array} subset
37323 * @returns {boolean}
37325 function arrayContainsArray(superset, subset, some) {
37326 if (Array.isArray(superset) !== true) {
37327 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37329 if (Array.isArray(subset) !== true) {
37330 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37333 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37334 return superset.indexOf(value)
>=
0;
37339 * Should be called to get utf8 from it's hex representation
37342 * @param {String} string in hex
37343 * @returns {String} ascii string representation of hex value
37345 function toUtf8(hex) {
37346 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37348 return bufferValue.toString('utf8');
37352 * Should be called to get ascii from it's hex representation
37355 * @param {String} string in hex
37356 * @returns {String} ascii string representation of hex value
37358 function toAscii(hex) {
37359 var str = ''; // eslint-disable-line
37361 l = hex.length; // eslint-disable-line
37363 if (hex.substring(
0,
2) === '
0x') {
37367 for (; i < l; i +=
2) {
37368 var code = parseInt(hex.substr(i,
2),
16);
37369 str += String.fromCharCode(code);
37376 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37379 * @param {String} string
37380 * @param {Number} optional padding
37381 * @returns {String} hex representation of input string
37383 function fromUtf8(stringValue) {
37384 var str = new Buffer(stringValue, 'utf8');
37386 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37390 * Should be called to get hex representation (prefixed by
0x) of ascii string
37392 * @method fromAscii
37393 * @param {String} string
37394 * @param {Number} optional padding
37395 * @returns {String} hex representation of input string
37397 function fromAscii(stringValue) {
37398 var hex = ''; // eslint-disable-line
37399 for (var i =
0; i < stringValue.length; i++) {
37400 // eslint-disable-line
37401 var code = stringValue.charCodeAt(i);
37402 var n = code.toString(
16);
37403 hex += n.length <
2 ? '
0' + n : n;
37410 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37412 * @method getKeys get specific key from inner object array of objects
37413 * @param {String} params
37414 * @param {String} key
37415 * @param {Boolean} allowEmpty
37416 * @returns {Array} output just a simple array of output keys
37418 function getKeys(params, key, allowEmpty) {
37419 if (!Array.isArray(params)) {
37420 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37422 if (typeof key !== 'string') {
37423 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37426 var result = []; // eslint-disable-line
37428 for (var i =
0; i < params.length; i++) {
37429 // eslint-disable-line
37430 var value = params[i][key]; // eslint-disable-line
37431 if (allowEmpty && !value) {
37433 } else if (typeof value !== 'string') {
37434 throw new Error('invalid abi');
37436 result.push(value);
37443 * Is the string a hex string.
37445 * @method check if string is hex string of specific length
37446 * @param {String} value
37447 * @param {Number} length
37448 * @returns {Boolean} output the string is a hex string
37450 function isHexString(value, length) {
37451 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37455 if (length && value.length !==
2 +
2 * length) {
37463 arrayContainsArray: arrayContainsArray,
37464 intToBuffer: intToBuffer,
37465 getBinarySize: getBinarySize,
37466 isHexPrefixed: isHexPrefixed,
37467 stripHexPrefix: stripHexPrefix,
37468 padToEven: padToEven,
37469 intToHex: intToHex,
37470 fromAscii: fromAscii,
37471 fromUtf8: fromUtf8,
37475 isHexString: isHexString
37477 }).call(this,require("buffer").Buffer)
37478 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37479 var hash = exports;
37481 hash.utils = require('./hash/utils');
37482 hash.common = require('./hash/common');
37483 hash.sha = require('./hash/sha');
37484 hash.ripemd = require('./hash/ripemd');
37485 hash.hmac = require('./hash/hmac');
37487 // Proxy hash functions to the main object
37488 hash.sha1 = hash.sha.sha1;
37489 hash.sha256 = hash.sha.sha256;
37490 hash.sha224 = hash.sha.sha224;
37491 hash.sha384 = hash.sha.sha384;
37492 hash.sha512 = hash.sha.sha512;
37493 hash.ripemd160 = hash.ripemd.ripemd160;
37495 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37496 var hash = require('../hash');
37497 var utils = hash.utils;
37498 var assert = utils.assert;
37500 function BlockHash() {
37501 this.pending = null;
37502 this.pendingTotal =
0;
37503 this.blockSize = this.constructor.blockSize;
37504 this.outSize = this.constructor.outSize;
37505 this.hmacStrength = this.constructor.hmacStrength;
37506 this.padLength = this.constructor.padLength /
8;
37507 this.endian = 'big';
37509 this._delta8 = this.blockSize /
8;
37510 this._delta32 = this.blockSize /
32;
37512 exports.BlockHash = BlockHash;
37514 BlockHash.prototype.update = function update(msg, enc) {
37515 // Convert message to array, pad it, and join into
32bit blocks
37516 msg = utils.toArray(msg, enc);
37518 this.pending = msg;
37520 this.pending = this.pending.concat(msg);
37521 this.pendingTotal += msg.length;
37523 // Enough data, try updating
37524 if (this.pending.length
>= this._delta8) {
37525 msg = this.pending;
37527 // Process pending data in blocks
37528 var r = msg.length % this._delta8;
37529 this.pending = msg.slice(msg.length - r, msg.length);
37530 if (this.pending.length ===
0)
37531 this.pending = null;
37533 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37534 for (var i =
0; i < msg.length; i += this._delta32)
37535 this._update(msg, i, i + this._delta32);
37541 BlockHash.prototype.digest = function digest(enc) {
37542 this.update(this._pad());
37543 assert(this.pending === null);
37545 return this._digest(enc);
37548 BlockHash.prototype._pad = function pad() {
37549 var len = this.pendingTotal;
37550 var bytes = this._delta8;
37551 var k = bytes - ((len + this.padLength) % bytes);
37552 var res = new Array(k + this.padLength);
37554 for (var i =
1; i < k; i++)
37559 if (this.endian === 'big') {
37560 for (var t =
8; t < this.padLength; t++)
37567 res[i++] = (len
>>> 24) &
0xff;
37568 res[i++] = (len
>>> 16) &
0xff;
37569 res[i++] = (len
>>> 8) &
0xff;
37570 res[i++] = len &
0xff;
37572 res[i++] = len &
0xff;
37573 res[i++] = (len
>>> 8) &
0xff;
37574 res[i++] = (len
>>> 16) &
0xff;
37575 res[i++] = (len
>>> 24) &
0xff;
37581 for (var t =
8; t < this.padLength; t++)
37588 },{
"../hash":
57}],
59:[function(require,module,exports){
37589 var hmac = exports;
37591 var hash = require('../hash');
37592 var utils = hash.utils;
37593 var assert = utils.assert;
37595 function Hmac(hash, key, enc) {
37596 if (!(this instanceof Hmac))
37597 return new Hmac(hash, key, enc);
37599 this.blockSize = hash.blockSize /
8;
37600 this.outSize = hash.outSize /
8;
37604 this._init(utils.toArray(key, enc));
37606 module.exports = Hmac;
37608 Hmac.prototype._init = function init(key) {
37609 // Shorten key, if needed
37610 if (key.length
> this.blockSize)
37611 key = new this.Hash().update(key).digest();
37612 assert(key.length <= this.blockSize);
37614 // Add padding to key
37615 for (var i = key.length; i < this.blockSize; i++)
37618 for (var i =
0; i < key.length; i++)
37620 this.inner = new this.Hash().update(key);
37622 //
0x36 ^
0x5c =
0x6a
37623 for (var i =
0; i < key.length; i++)
37625 this.outer = new this.Hash().update(key);
37628 Hmac.prototype.update = function update(msg, enc) {
37629 this.inner.update(msg, enc);
37633 Hmac.prototype.digest = function digest(enc) {
37634 this.outer.update(this.inner.digest());
37635 return this.outer.digest(enc);
37638 },{"../hash":
57}],
60:[function(require,module,exports){
37639 var hash = require('../hash');
37640 var utils = hash.utils;
37642 var rotl32 = utils.rotl32;
37643 var sum32 = utils.sum32;
37644 var sum32_3 = utils.sum32_3;
37645 var sum32_4 = utils.sum32_4;
37646 var BlockHash = hash.common.BlockHash;
37648 function RIPEMD160() {
37649 if (!(this instanceof RIPEMD160))
37650 return new RIPEMD160();
37652 BlockHash.call(this);
37654 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37655 this.endian = 'little';
37657 utils.inherits(RIPEMD160, BlockHash);
37658 exports.ripemd160 = RIPEMD160;
37660 RIPEMD160.blockSize =
512;
37661 RIPEMD160.outSize =
160;
37662 RIPEMD160.hmacStrength =
192;
37663 RIPEMD160.padLength =
64;
37665 RIPEMD160.prototype._update = function update(msg, start) {
37676 for (var j =
0; j <
80; j++) {
37679 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37689 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37694 Dh = rotl32(Ch,
10);
37698 T = sum32_3(this.h[
1], C, Dh);
37699 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37700 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37701 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37702 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37706 RIPEMD160.prototype._digest = function digest(enc) {
37708 return utils.toHex32(this.h, 'little');
37710 return utils.split32(this.h, 'little');
37713 function f(j, x, y, z) {
37717 return (x & y) | ((~x) & z);
37719 return (x | (~y)) ^ z;
37721 return (x & z) | (y & (~z));
37723 return x ^ (y | (~z));
37753 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37754 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37755 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37756 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37757 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37761 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37762 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37763 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37764 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37765 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37769 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37770 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37771 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37772 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37773 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37777 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37778 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37779 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37780 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37781 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37784 },{"../hash":
57}],
61:[function(require,module,exports){
37785 var hash = require('../hash');
37786 var utils = hash.utils;
37787 var assert = utils.assert;
37789 var rotr32 = utils.rotr32;
37790 var rotl32 = utils.rotl32;
37791 var sum32 = utils.sum32;
37792 var sum32_4 = utils.sum32_4;
37793 var sum32_5 = utils.sum32_5;
37794 var rotr64_hi = utils.rotr64_hi;
37795 var rotr64_lo = utils.rotr64_lo;
37796 var shr64_hi = utils.shr64_hi;
37797 var shr64_lo = utils.shr64_lo;
37798 var sum64 = utils.sum64;
37799 var sum64_hi = utils.sum64_hi;
37800 var sum64_lo = utils.sum64_lo;
37801 var sum64_4_hi = utils.sum64_4_hi;
37802 var sum64_4_lo = utils.sum64_4_lo;
37803 var sum64_5_hi = utils.sum64_5_hi;
37804 var sum64_5_lo = utils.sum64_5_lo;
37805 var BlockHash = hash.common.BlockHash;
37808 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37809 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37810 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37811 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37812 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37813 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37814 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37815 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37816 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37817 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37818 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37819 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37820 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37821 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37822 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37823 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37827 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37828 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37829 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37830 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37831 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37832 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37833 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37834 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37835 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37836 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37837 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37838 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37839 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37840 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37841 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37842 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37843 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37844 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37845 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37846 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37847 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37848 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37849 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37850 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37851 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37852 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37853 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37854 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37855 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37856 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37857 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37858 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37859 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37860 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37861 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37862 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37863 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37864 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37865 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37866 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37870 0x5A827999,
0x6ED9EBA1,
37871 0x8F1BBCDC,
0xCA62C1D6
37874 function SHA256() {
37875 if (!(this instanceof SHA256))
37876 return new SHA256();
37878 BlockHash.call(this);
37879 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37880 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37882 this.W = new Array(
64);
37884 utils.inherits(SHA256, BlockHash);
37885 exports.sha256 = SHA256;
37887 SHA256.blockSize =
512;
37888 SHA256.outSize =
256;
37889 SHA256.hmacStrength =
192;
37890 SHA256.padLength =
64;
37892 SHA256.prototype._update = function _update(msg, start) {
37895 for (var i =
0; i <
16; i++)
37896 W[i] = msg[start + i];
37897 for (; i < W.length; i++)
37898 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37909 assert(this.k.length === W.length);
37910 for (var i =
0; i < W.length; i++) {
37911 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37912 var T2 = sum32(s0_256(a), maj32(a, b, c));
37923 this.h[
0] = sum32(this.h[
0], a);
37924 this.h[
1] = sum32(this.h[
1], b);
37925 this.h[
2] = sum32(this.h[
2], c);
37926 this.h[
3] = sum32(this.h[
3], d);
37927 this.h[
4] = sum32(this.h[
4], e);
37928 this.h[
5] = sum32(this.h[
5], f);
37929 this.h[
6] = sum32(this.h[
6], g);
37930 this.h[
7] = sum32(this.h[
7], h);
37933 SHA256.prototype._digest = function digest(enc) {
37935 return utils.toHex32(this.h, 'big');
37937 return utils.split32(this.h, 'big');
37940 function SHA224() {
37941 if (!(this instanceof SHA224))
37942 return new SHA224();
37945 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37946 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37948 utils.inherits(SHA224, SHA256);
37949 exports.sha224 = SHA224;
37951 SHA224.blockSize =
512;
37952 SHA224.outSize =
224;
37953 SHA224.hmacStrength =
192;
37954 SHA224.padLength =
64;
37956 SHA224.prototype._digest = function digest(enc) {
37957 // Just truncate output
37959 return utils.toHex32(this.h.slice(
0,
7), 'big');
37961 return utils.split32(this.h.slice(
0,
7), 'big');
37964 function SHA512() {
37965 if (!(this instanceof SHA512))
37966 return new SHA512();
37968 BlockHash.call(this);
37969 this.h = [
0x6a09e667,
0xf3bcc908,
37970 0xbb67ae85,
0x84caa73b,
37971 0x3c6ef372,
0xfe94f82b,
37972 0xa54ff53a,
0x5f1d36f1,
37973 0x510e527f,
0xade682d1,
37974 0x9b05688c,
0x2b3e6c1f,
37975 0x1f83d9ab,
0xfb41bd6b,
37976 0x5be0cd19,
0x137e2179 ];
37978 this.W = new Array(
160);
37980 utils.inherits(SHA512, BlockHash);
37981 exports.sha512 = SHA512;
37983 SHA512.blockSize =
1024;
37984 SHA512.outSize =
512;
37985 SHA512.hmacStrength =
192;
37986 SHA512.padLength =
128;
37988 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
37991 //
32 x
32bit words
37992 for (var i =
0; i <
32; i++)
37993 W[i] = msg[start + i];
37994 for (; i < W.length; i +=
2) {
37995 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
37996 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
37997 var c1_hi = W[i -
14]; // i -
7
37998 var c1_lo = W[i -
13];
37999 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
38000 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
38001 var c3_hi = W[i -
32]; // i -
16
38002 var c3_lo = W[i -
31];
38004 W[i] = sum64_4_hi(c0_hi, c0_lo,
38008 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38015 SHA512.prototype._update = function _update(msg, start) {
38016 this._prepareBlock(msg, start);
38020 var ah = this.h[
0];
38021 var al = this.h[
1];
38022 var bh = this.h[
2];
38023 var bl = this.h[
3];
38024 var ch = this.h[
4];
38025 var cl = this.h[
5];
38026 var dh = this.h[
6];
38027 var dl = this.h[
7];
38028 var eh = this.h[
8];
38029 var el = this.h[
9];
38030 var fh = this.h[
10];
38031 var fl = this.h[
11];
38032 var gh = this.h[
12];
38033 var gl = this.h[
13];
38034 var hh = this.h[
14];
38035 var hl = this.h[
15];
38037 assert(this.k.length === W.length);
38038 for (var i =
0; i < W.length; i +=
2) {
38041 var c1_hi = s1_512_hi(eh, el);
38042 var c1_lo = s1_512_lo(eh, el);
38043 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38044 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38045 var c3_hi = this.k[i];
38046 var c3_lo = this.k[i +
1];
38048 var c4_lo = W[i +
1];
38050 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38055 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38061 var c0_hi = s0_512_hi(ah, al);
38062 var c0_lo = s0_512_lo(ah, al);
38063 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38064 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38066 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38067 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38078 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38079 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38090 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38091 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38094 sum64(this.h,
0, ah, al);
38095 sum64(this.h,
2, bh, bl);
38096 sum64(this.h,
4, ch, cl);
38097 sum64(this.h,
6, dh, dl);
38098 sum64(this.h,
8, eh, el);
38099 sum64(this.h,
10, fh, fl);
38100 sum64(this.h,
12, gh, gl);
38101 sum64(this.h,
14, hh, hl);
38104 SHA512.prototype._digest = function digest(enc) {
38106 return utils.toHex32(this.h, 'big');
38108 return utils.split32(this.h, 'big');
38111 function SHA384() {
38112 if (!(this instanceof SHA384))
38113 return new SHA384();
38116 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38117 0x629a292a,
0x367cd507,
38118 0x9159015a,
0x3070dd17,
38119 0x152fecd8,
0xf70e5939,
38120 0x67332667,
0xffc00b31,
38121 0x8eb44a87,
0x68581511,
38122 0xdb0c2e0d,
0x64f98fa7,
38123 0x47b5481d,
0xbefa4fa4 ];
38125 utils.inherits(SHA384, SHA512);
38126 exports.sha384 = SHA384;
38128 SHA384.blockSize =
1024;
38129 SHA384.outSize =
384;
38130 SHA384.hmacStrength =
192;
38131 SHA384.padLength =
128;
38133 SHA384.prototype._digest = function digest(enc) {
38135 return utils.toHex32(this.h.slice(
0,
12), 'big');
38137 return utils.split32(this.h.slice(
0,
12), 'big');
38141 if (!(this instanceof SHA1))
38144 BlockHash.call(this);
38145 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38146 0x10325476,
0xc3d2e1f0 ];
38147 this.W = new Array(
80);
38150 utils.inherits(SHA1, BlockHash);
38151 exports.sha1 = SHA1;
38153 SHA1.blockSize =
512;
38154 SHA1.outSize =
160;
38155 SHA1.hmacStrength =
80;
38156 SHA1.padLength =
64;
38158 SHA1.prototype._update = function _update(msg, start) {
38161 for (var i =
0; i <
16; i++)
38162 W[i] = msg[start + i];
38164 for(; i < W.length; i++)
38165 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38173 for (var i =
0; i < W.length; i++) {
38174 var s = ~~(i /
20);
38175 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38183 this.h[
0] = sum32(this.h[
0], a);
38184 this.h[
1] = sum32(this.h[
1], b);
38185 this.h[
2] = sum32(this.h[
2], c);
38186 this.h[
3] = sum32(this.h[
3], d);
38187 this.h[
4] = sum32(this.h[
4], e);
38190 SHA1.prototype._digest = function digest(enc) {
38192 return utils.toHex32(this.h, 'big');
38194 return utils.split32(this.h, 'big');
38197 function ch32(x, y, z) {
38198 return (x & y) ^ ((~x) & z);
38201 function maj32(x, y, z) {
38202 return (x & y) ^ (x & z) ^ (y & z);
38205 function p32(x, y, z) {
38209 function s0_256(x) {
38210 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38213 function s1_256(x) {
38214 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38217 function g0_256(x) {
38218 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38221 function g1_256(x) {
38222 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38225 function ft_1(s, x, y, z) {
38227 return ch32(x, y, z);
38228 if (s ===
1 || s ===
3)
38229 return p32(x, y, z);
38231 return maj32(x, y, z);
38234 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38235 var r = (xh & yh) ^ ((~xh) & zh);
38241 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38242 var r = (xl & yl) ^ ((~xl) & zl);
38248 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38249 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38255 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38256 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38262 function s0_512_hi(xh, xl) {
38263 var c0_hi = rotr64_hi(xh, xl,
28);
38264 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38265 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38267 var r = c0_hi ^ c1_hi ^ c2_hi;
38273 function s0_512_lo(xh, xl) {
38274 var c0_lo = rotr64_lo(xh, xl,
28);
38275 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38276 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38278 var r = c0_lo ^ c1_lo ^ c2_lo;
38284 function s1_512_hi(xh, xl) {
38285 var c0_hi = rotr64_hi(xh, xl,
14);
38286 var c1_hi = rotr64_hi(xh, xl,
18);
38287 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38289 var r = c0_hi ^ c1_hi ^ c2_hi;
38295 function s1_512_lo(xh, xl) {
38296 var c0_lo = rotr64_lo(xh, xl,
14);
38297 var c1_lo = rotr64_lo(xh, xl,
18);
38298 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38300 var r = c0_lo ^ c1_lo ^ c2_lo;
38306 function g0_512_hi(xh, xl) {
38307 var c0_hi = rotr64_hi(xh, xl,
1);
38308 var c1_hi = rotr64_hi(xh, xl,
8);
38309 var c2_hi = shr64_hi(xh, xl,
7);
38311 var r = c0_hi ^ c1_hi ^ c2_hi;
38317 function g0_512_lo(xh, xl) {
38318 var c0_lo = rotr64_lo(xh, xl,
1);
38319 var c1_lo = rotr64_lo(xh, xl,
8);
38320 var c2_lo = shr64_lo(xh, xl,
7);
38322 var r = c0_lo ^ c1_lo ^ c2_lo;
38328 function g1_512_hi(xh, xl) {
38329 var c0_hi = rotr64_hi(xh, xl,
19);
38330 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38331 var c2_hi = shr64_hi(xh, xl,
6);
38333 var r = c0_hi ^ c1_hi ^ c2_hi;
38339 function g1_512_lo(xh, xl) {
38340 var c0_lo = rotr64_lo(xh, xl,
19);
38341 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38342 var c2_lo = shr64_lo(xh, xl,
6);
38344 var r = c0_lo ^ c1_lo ^ c2_lo;
38350 },{
"../hash":
57}],
62:[function(require,module,exports){
38351 var utils = exports;
38352 var inherits = require('inherits');
38354 function toArray(msg, enc) {
38355 if (Array.isArray(msg))
38356 return msg.slice();
38360 if (typeof msg === 'string') {
38362 for (var i =
0; i < msg.length; i++) {
38363 var c = msg.charCodeAt(i);
38371 } else if (enc === 'hex') {
38372 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38373 if (msg.length %
2 !==
0)
38375 for (var i =
0; i < msg.length; i +=
2)
38376 res.push(parseInt(msg[i] + msg[i +
1],
16));
38379 for (var i =
0; i < msg.length; i++)
38380 res[i] = msg[i] |
0;
38384 utils.toArray = toArray;
38386 function toHex(msg) {
38388 for (var i =
0; i < msg.length; i++)
38389 res += zero2(msg[i].toString(
16));
38392 utils.toHex = toHex;
38394 function htonl(w) {
38395 var res = (w
>>> 24) |
38396 ((w
>>> 8) &
0xff00) |
38397 ((w <<
8) &
0xff0000) |
38398 ((w &
0xff) <<
24);
38401 utils.htonl = htonl;
38403 function toHex32(msg, endian) {
38405 for (var i =
0; i < msg.length; i++) {
38407 if (endian === 'little')
38409 res += zero8(w.toString(
16));
38413 utils.toHex32 = toHex32;
38415 function zero2(word) {
38416 if (word.length ===
1)
38421 utils.zero2 = zero2;
38423 function zero8(word) {
38424 if (word.length ===
7)
38426 else if (word.length ===
6)
38427 return '
00' + word;
38428 else if (word.length ===
5)
38429 return '
000' + word;
38430 else if (word.length ===
4)
38431 return '
0000' + word;
38432 else if (word.length ===
3)
38433 return '
00000' + word;
38434 else if (word.length ===
2)
38435 return '
000000' + word;
38436 else if (word.length ===
1)
38437 return '
0000000' + word;
38441 utils.zero8 = zero8;
38443 function join32(msg, start, end, endian) {
38444 var len = end - start;
38445 assert(len %
4 ===
0);
38446 var res = new Array(len /
4);
38447 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38449 if (endian === 'big')
38450 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38452 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38457 utils.join32 = join32;
38459 function split32(msg, endian) {
38460 var res = new Array(msg.length *
4);
38461 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38463 if (endian === 'big') {
38465 res[k +
1] = (m
>>> 16) &
0xff;
38466 res[k +
2] = (m
>>> 8) &
0xff;
38467 res[k +
3] = m &
0xff;
38469 res[k +
3] = m
>>> 24;
38470 res[k +
2] = (m
>>> 16) &
0xff;
38471 res[k +
1] = (m
>>> 8) &
0xff;
38477 utils.split32 = split32;
38479 function rotr32(w, b) {
38480 return (w
>>> b) | (w << (
32 - b));
38482 utils.rotr32 = rotr32;
38484 function rotl32(w, b) {
38485 return (w << b) | (w
>>> (
32 - b));
38487 utils.rotl32 = rotl32;
38489 function sum32(a, b) {
38490 return (a + b)
>>> 0;
38492 utils.sum32 = sum32;
38494 function sum32_3(a, b, c) {
38495 return (a + b + c)
>>> 0;
38497 utils.sum32_3 = sum32_3;
38499 function sum32_4(a, b, c, d) {
38500 return (a + b + c + d)
>>> 0;
38502 utils.sum32_4 = sum32_4;
38504 function sum32_5(a, b, c, d, e) {
38505 return (a + b + c + d + e)
>>> 0;
38507 utils.sum32_5 = sum32_5;
38509 function assert(cond, msg) {
38511 throw new Error(msg || 'Assertion failed');
38513 utils.assert = assert;
38515 utils.inherits = inherits;
38517 function sum64(buf, pos, ah, al) {
38519 var bl = buf[pos +
1];
38521 var lo = (al + bl)
>>> 0;
38522 var hi = (lo < al ?
1 :
0) + ah + bh;
38523 buf[pos] = hi
>>> 0;
38526 exports.sum64 = sum64;
38528 function sum64_hi(ah, al, bh, bl) {
38529 var lo = (al + bl)
>>> 0;
38530 var hi = (lo < al ?
1 :
0) + ah + bh;
38533 exports.sum64_hi = sum64_hi;
38535 function sum64_lo(ah, al, bh, bl) {
38539 exports.sum64_lo = sum64_lo;
38541 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38544 lo = (lo + bl)
>>> 0;
38545 carry += lo < al ?
1 :
0;
38546 lo = (lo + cl)
>>> 0;
38547 carry += lo < cl ?
1 :
0;
38548 lo = (lo + dl)
>>> 0;
38549 carry += lo < dl ?
1 :
0;
38551 var hi = ah + bh + ch + dh + carry;
38554 exports.sum64_4_hi = sum64_4_hi;
38556 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38557 var lo = al + bl + cl + dl;
38560 exports.sum64_4_lo = sum64_4_lo;
38562 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38565 lo = (lo + bl)
>>> 0;
38566 carry += lo < al ?
1 :
0;
38567 lo = (lo + cl)
>>> 0;
38568 carry += lo < cl ?
1 :
0;
38569 lo = (lo + dl)
>>> 0;
38570 carry += lo < dl ?
1 :
0;
38571 lo = (lo + el)
>>> 0;
38572 carry += lo < el ?
1 :
0;
38574 var hi = ah + bh + ch + dh + eh + carry;
38577 exports.sum64_5_hi = sum64_5_hi;
38579 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38580 var lo = al + bl + cl + dl + el;
38584 exports.sum64_5_lo = sum64_5_lo;
38586 function rotr64_hi(ah, al, num) {
38587 var r = (al << (
32 - num)) | (ah
>>> num);
38590 exports.rotr64_hi = rotr64_hi;
38592 function rotr64_lo(ah, al, num) {
38593 var r = (ah << (
32 - num)) | (al
>>> num);
38596 exports.rotr64_lo = rotr64_lo;
38598 function shr64_hi(ah, al, num) {
38601 exports.shr64_hi = shr64_hi;
38603 function shr64_lo(ah, al, num) {
38604 var r = (ah << (
32 - num)) | (al
>>> num);
38607 exports.shr64_lo = shr64_lo;
38609 },{
"inherits":
63}],
63:[function(require,module,exports){
38610 arguments[
4][
9][
0].apply(exports,arguments)
38611 },{
"dup":
9}],
64:[function(require,module,exports){
38613 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38614 * @param {String} str the string input value
38615 * @return {Boolean} a boolean if it is or is not hex prefixed
38616 * @throws if the str input is not a string
38618 module.exports = function isHexPrefixed(str) {
38619 if (typeof str !== 'string') {
38620 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38623 return str.slice(
0,
2) === '
0x';
38626 },{}],
65:[function(require,module,exports){
38628 module.exports = require('./lib/api')(require('./lib/keccak'))
38630 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38632 var createKeccak = require('./keccak')
38633 var createShake = require('./shake')
38635 module.exports = function (KeccakState) {
38636 var Keccak = createKeccak(KeccakState)
38637 var Shake = createShake(KeccakState)
38639 return function (algorithm, options) {
38640 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38642 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38643 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38644 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38645 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38647 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38648 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38649 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38650 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38652 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38653 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38655 default: throw new Error('Invald algorithm: ' + algorithm)
38660 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38661 (function (Buffer){
38663 var Transform = require('stream').Transform
38664 var inherits = require('inherits')
38666 module.exports = function (KeccakState) {
38667 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38668 Transform.call(this, options)
38671 this._capacity = capacity
38672 this._delimitedSuffix = delimitedSuffix
38673 this._hashBitLength = hashBitLength
38674 this._options = options
38676 this._state = new KeccakState()
38677 this._state.initialize(rate, capacity)
38678 this._finalized = false
38681 inherits(Keccak, Transform)
38683 Keccak.prototype._transform = function (chunk, encoding, callback) {
38686 this.update(chunk, encoding)
38694 Keccak.prototype._flush = function (callback) {
38697 this.push(this.digest())
38705 Keccak.prototype.update = function (data, encoding) {
38706 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38707 if (this._finalized) throw new Error('Digest already called')
38708 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38710 this._state.absorb(data)
38715 Keccak.prototype.digest = function (encoding) {
38716 if (this._finalized) throw new Error('Digest already called')
38717 this._finalized = true
38719 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38720 var digest = this._state.squeeze(this._hashBitLength /
8)
38721 if (encoding !== undefined) digest = digest.toString(encoding)
38728 // remove result from memory
38729 Keccak.prototype._resetState = function () {
38730 this._state.initialize(this._rate, this._capacity)
38734 // because sometimes we need hash right now and little later
38735 Keccak.prototype._clone = function () {
38736 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38737 this._state.copy(clone._state)
38738 clone._finalized = this._finalized
38746 }).call(this,require(
"buffer").Buffer)
38747 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38748 (function (Buffer){
38750 var Transform = require('stream').Transform
38751 var inherits = require('inherits')
38753 module.exports = function (KeccakState) {
38754 function Shake (rate, capacity, delimitedSuffix, options) {
38755 Transform.call(this, options)
38758 this._capacity = capacity
38759 this._delimitedSuffix = delimitedSuffix
38760 this._options = options
38762 this._state = new KeccakState()
38763 this._state.initialize(rate, capacity)
38764 this._finalized = false
38767 inherits(Shake, Transform)
38769 Shake.prototype._transform = function (chunk, encoding, callback) {
38772 this.update(chunk, encoding)
38780 Shake.prototype._flush = function () {}
38782 Shake.prototype._read = function (size) {
38783 this.push(this.squeeze(size))
38786 Shake.prototype.update = function (data, encoding) {
38787 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38788 if (this._finalized) throw new Error('Squeeze already called')
38789 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38791 this._state.absorb(data)
38796 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38797 if (!this._finalized) {
38798 this._finalized = true
38799 this._state.absorbLastFewBits(this._delimitedSuffix)
38802 var data = this._state.squeeze(dataByteLength)
38803 if (encoding !== undefined) data = data.toString(encoding)
38808 Shake.prototype._resetState = function () {
38809 this._state.initialize(this._rate, this._capacity)
38813 Shake.prototype._clone = function () {
38814 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38815 this._state.copy(clone._state)
38816 clone._finalized = this._finalized
38824 }).call(this,require(
"buffer").Buffer)
38825 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38827 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]
38829 exports.p1600 = function (s) {
38830 for (var round =
0; round <
24; ++round) {
38832 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38833 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38834 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38835 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38836 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38837 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38838 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38839 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38840 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38841 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38843 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38844 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38845 var t1slo0 = s[
0] ^ lo
38846 var t1shi0 = s[
1] ^ hi
38847 var t1slo5 = s[
10] ^ lo
38848 var t1shi5 = s[
11] ^ hi
38849 var t1slo10 = s[
20] ^ lo
38850 var t1shi10 = s[
21] ^ hi
38851 var t1slo15 = s[
30] ^ lo
38852 var t1shi15 = s[
31] ^ hi
38853 var t1slo20 = s[
40] ^ lo
38854 var t1shi20 = s[
41] ^ hi
38855 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38856 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38857 var t1slo1 = s[
2] ^ lo
38858 var t1shi1 = s[
3] ^ hi
38859 var t1slo6 = s[
12] ^ lo
38860 var t1shi6 = s[
13] ^ hi
38861 var t1slo11 = s[
22] ^ lo
38862 var t1shi11 = s[
23] ^ hi
38863 var t1slo16 = s[
32] ^ lo
38864 var t1shi16 = s[
33] ^ hi
38865 var t1slo21 = s[
42] ^ lo
38866 var t1shi21 = s[
43] ^ hi
38867 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38868 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38869 var t1slo2 = s[
4] ^ lo
38870 var t1shi2 = s[
5] ^ hi
38871 var t1slo7 = s[
14] ^ lo
38872 var t1shi7 = s[
15] ^ hi
38873 var t1slo12 = s[
24] ^ lo
38874 var t1shi12 = s[
25] ^ hi
38875 var t1slo17 = s[
34] ^ lo
38876 var t1shi17 = s[
35] ^ hi
38877 var t1slo22 = s[
44] ^ lo
38878 var t1shi22 = s[
45] ^ hi
38879 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38880 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38881 var t1slo3 = s[
6] ^ lo
38882 var t1shi3 = s[
7] ^ hi
38883 var t1slo8 = s[
16] ^ lo
38884 var t1shi8 = s[
17] ^ hi
38885 var t1slo13 = s[
26] ^ lo
38886 var t1shi13 = s[
27] ^ hi
38887 var t1slo18 = s[
36] ^ lo
38888 var t1shi18 = s[
37] ^ hi
38889 var t1slo23 = s[
46] ^ lo
38890 var t1shi23 = s[
47] ^ hi
38891 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38892 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38893 var t1slo4 = s[
8] ^ lo
38894 var t1shi4 = s[
9] ^ hi
38895 var t1slo9 = s[
18] ^ lo
38896 var t1shi9 = s[
19] ^ hi
38897 var t1slo14 = s[
28] ^ lo
38898 var t1shi14 = s[
29] ^ hi
38899 var t1slo19 = s[
38] ^ lo
38900 var t1shi19 = s[
39] ^ hi
38901 var t1slo24 = s[
48] ^ lo
38902 var t1shi24 = s[
49] ^ hi
38905 var t2slo0 = t1slo0
38906 var t2shi0 = t1shi0
38907 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38908 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38909 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38910 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38911 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38912 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38913 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38914 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38915 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38916 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38917 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38918 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38919 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38920 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38921 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38922 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38923 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38924 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38925 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38926 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38927 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38928 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38929 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38930 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38931 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38932 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38933 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38934 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38935 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38936 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38937 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38938 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38939 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38940 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38941 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38942 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38943 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38944 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38945 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38946 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38947 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38948 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38949 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38950 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38951 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38952 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38953 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38954 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38957 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38958 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38959 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38960 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38961 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38962 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38963 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38964 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38965 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38966 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
38967 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
38968 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
38969 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
38970 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
38971 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
38972 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
38973 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
38974 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
38975 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
38976 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
38977 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
38978 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
38979 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
38980 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
38981 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
38982 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
38983 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
38984 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
38985 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
38986 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
38987 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
38988 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
38989 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
38990 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
38991 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
38992 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
38993 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
38994 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
38995 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
38996 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
38997 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
38998 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
38999 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
39000 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
39001 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
39002 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
39003 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
39004 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39005 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39006 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39009 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39010 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39014 },{}],
70:[function(require,module,exports){
39015 (function (Buffer){
39017 var keccakState = require('./keccak-state-unroll')
39019 function Keccak () {
39020 // much faster than `new Array(
50)`
39029 this.blockSize = null
39031 this.squeezing = false
39034 Keccak.prototype.initialize = function (rate, capacity) {
39035 for (var i =
0; i <
50; ++i) this.state[i] =
0
39036 this.blockSize = rate /
8
39038 this.squeezing = false
39041 Keccak.prototype.absorb = function (data) {
39042 for (var i =
0; i < data.length; ++i) {
39043 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39045 if (this.count === this.blockSize) {
39046 keccakState.p1600(this.state)
39052 Keccak.prototype.absorbLastFewBits = function (bits) {
39053 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39054 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39055 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39056 keccakState.p1600(this.state)
39058 this.squeezing = true
39061 Keccak.prototype.squeeze = function (length) {
39062 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39064 var output = Buffer.allocUnsafe(length)
39065 for (var i =
0; i < length; ++i) {
39066 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39068 if (this.count === this.blockSize) {
39069 keccakState.p1600(this.state)
39077 Keccak.prototype.copy = function (dest) {
39078 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39079 dest.blockSize = this.blockSize
39080 dest.count = this.count
39081 dest.squeezing = this.squeezing
39084 module.exports = Keccak
39086 }).call(this,require("buffer").Buffer)
39087 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39088 (function (Buffer){
39091 code.google.com/p/crypto-js
39092 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39093 code.google.com/p/crypto-js/wiki/License
39096 (c)
2012 by Cédric Mesnil. All rights reserved.
39098 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39100 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39101 - 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.
39103 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.
39108 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39109 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39110 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39111 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39112 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39116 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39117 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39118 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39119 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39120 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39124 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39125 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39126 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39127 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39128 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39132 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39133 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39134 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39135 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39136 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39139 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39140 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39142 function bytesToWords (bytes) {
39144 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39145 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39150 function wordsToBytes (words) {
39152 for (var b =
0; b < words.length *
32; b +=
8) {
39153 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39158 function processBlock (H, M, offset) {
39160 for (var i =
0; i <
16; i++) {
39161 var offset_i = offset + i
39162 var M_offset_i = M[offset_i]
39166 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39167 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39171 // Working variables
39172 var al, bl, cl, dl, el
39173 var ar, br, cr, dr, er
39183 for (i =
0; i <
80; i +=
1) {
39184 t = (al + M[offset + zl[i]]) |
0
39186 t += f1(bl, cl, dl) + hl[
0]
39187 } else if (i <
32) {
39188 t += f2(bl, cl, dl) + hl[
1]
39189 } else if (i <
48) {
39190 t += f3(bl, cl, dl) + hl[
2]
39191 } else if (i <
64) {
39192 t += f4(bl, cl, dl) + hl[
3]
39193 } else {// if (i
<80) {
39194 t += f5(bl, cl, dl) + hl[
4]
39205 t = (ar + M[offset + zr[i]]) |
0
39207 t += f5(br, cr, dr) + hr[
0]
39208 } else if (i <
32) {
39209 t += f4(br, cr, dr) + hr[
1]
39210 } else if (i <
48) {
39211 t += f3(br, cr, dr) + hr[
2]
39212 } else if (i <
64) {
39213 t += f2(br, cr, dr) + hr[
3]
39214 } else {// if (i
<80) {
39215 t += f1(br, cr, dr) + hr[
4]
39228 // intermediate hash value
39229 t = (H[
1] + cl + dr) |
0
39230 H[
1] = (H[
2] + dl + er) |
0
39231 H[
2] = (H[
3] + el + ar) |
0
39232 H[
3] = (H[
4] + al + br) |
0
39233 H[
4] = (H[
0] + bl + cr) |
0
39237 function f1 (x, y, z) {
39238 return ((x) ^ (y) ^ (z))
39241 function f2 (x, y, z) {
39242 return (((x) & (y)) | ((~x) & (z)))
39245 function f3 (x, y, z) {
39246 return (((x) | (~(y))) ^ (z))
39249 function f4 (x, y, z) {
39250 return (((x) & (z)) | ((y) & (~(z))))
39253 function f5 (x, y, z) {
39254 return ((x) ^ ((y) | (~(z))))
39257 function rotl (x, n) {
39258 return (x << n) | (x
>>> (
32 - n))
39261 function ripemd160 (message) {
39262 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39264 if (typeof message === 'string') {
39265 message = new Buffer(message, 'utf8')
39268 var m = bytesToWords(message)
39270 var nBitsLeft = message.length *
8
39271 var nBitsTotal = message.length *
8
39274 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39275 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39276 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39277 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39280 for (var i =
0; i < m.length; i +=
16) {
39281 processBlock(H, m, i)
39285 for (i =
0; i <
5; i++) {
39290 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39291 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39294 var digestbytes = wordsToBytes(H)
39295 return new Buffer(digestbytes)
39298 module.exports = ripemd160
39300 }).call(this,require(
"buffer").Buffer)
39301 },{
"buffer":
5}],
72:[function(require,module,exports){
39302 (function (Buffer){
39303 const assert = require('assert')
39305 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39306 * This function takes in a data, convert it to buffer if not, and a length for recursion
39308 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39309 * @returns {Buffer} - returns buffer of encoded data
39311 exports.encode = function (input) {
39312 if (input instanceof Array) {
39314 for (var i =
0; i < input.length; i++) {
39315 output.push(exports.encode(input[i]))
39317 var buf = Buffer.concat(output)
39318 return Buffer.concat([encodeLength(buf.length,
192), buf])
39320 input = toBuffer(input)
39321 if (input.length ===
1 && input[
0] <
128) {
39324 return Buffer.concat([encodeLength(input.length,
128), input])
39329 function safeParseInt (v, base) {
39330 if (v.slice(
0,
2) === '
00') {
39331 throw (new Error('invalid RLP: extra zeros'))
39334 return parseInt(v, base)
39337 function encodeLength (len, offset) {
39339 return new Buffer([len + offset])
39341 var hexLength = intToHex(len)
39342 var lLength = hexLength.length /
2
39343 var firstByte = intToHex(offset +
55 + lLength)
39344 return new Buffer(firstByte + hexLength, 'hex')
39349 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39350 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39351 * @returns {Array} - returns decode Array of Buffers containg the original message
39353 exports.decode = function (input, stream) {
39354 if (!input || input.length ===
0) {
39355 return new Buffer([])
39358 input = toBuffer(input)
39359 var decoded = _decode(input)
39365 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39366 return decoded.data
39369 exports.getLength = function (input) {
39370 if (!input || input.length ===
0) {
39371 return new Buffer([])
39374 input = toBuffer(input)
39375 var firstByte = input[
0]
39376 if (firstByte <=
0x7f) {
39377 return input.length
39378 } else if (firstByte <=
0xb7) {
39379 return firstByte -
0x7f
39380 } else if (firstByte <=
0xbf) {
39381 return firstByte -
0xb6
39382 } else if (firstByte <=
0xf7) {
39383 // a list between
0-
55 bytes long
39384 return firstByte -
0xbf
39386 // a list over
55 bytes long
39387 var llength = firstByte -
0xf6
39388 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39389 return llength + length
39393 function _decode (input) {
39394 var length, llength, data, innerRemainder, d
39396 var firstByte = input[
0]
39398 if (firstByte <=
0x7f) {
39399 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39401 data: input.slice(
0,
1),
39402 remainder: input.slice(
1)
39404 } else if (firstByte <=
0xb7) {
39405 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39406 // The range of the first byte is [
0x80,
0xb7]
39407 length = firstByte -
0x7f
39409 // set
0x80 null to
0
39410 if (firstByte ===
0x80) {
39411 data = new Buffer([])
39413 data = input.slice(
1, length)
39416 if (length ===
2 && data[
0] <
0x80) {
39417 throw new Error('invalid rlp encoding: byte must be less
0x80')
39422 remainder: input.slice(length)
39424 } else if (firstByte <=
0xbf) {
39425 llength = firstByte -
0xb6
39426 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39427 data = input.slice(llength, length + llength)
39428 if (data.length < length) {
39429 throw (new Error('invalid RLP'))
39434 remainder: input.slice(length + llength)
39436 } else if (firstByte <=
0xf7) {
39437 // a list between
0-
55 bytes long
39438 length = firstByte -
0xbf
39439 innerRemainder = input.slice(
1, length)
39440 while (innerRemainder.length) {
39441 d = _decode(innerRemainder)
39442 decoded.push(d.data)
39443 innerRemainder = d.remainder
39448 remainder: input.slice(length)
39451 // a list over
55 bytes long
39452 llength = firstByte -
0xf6
39453 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39454 var totalLength = llength + length
39455 if (totalLength
> input.length) {
39456 throw new Error('invalid rlp: total length is larger than the data')
39459 innerRemainder = input.slice(llength, totalLength)
39460 if (innerRemainder.length ===
0) {
39461 throw new Error('invalid rlp, List has a invalid length')
39464 while (innerRemainder.length) {
39465 d = _decode(innerRemainder)
39466 decoded.push(d.data)
39467 innerRemainder = d.remainder
39471 remainder: input.slice(totalLength)
39476 function isHexPrefixed (str) {
39477 return str.slice(
0,
2) === '
0x'
39480 // Removes
0x from a given String
39481 function stripHexPrefix (str) {
39482 if (typeof str !== 'string') {
39485 return isHexPrefixed(str) ? str.slice(
2) : str
39488 function intToHex (i) {
39489 var hex = i.toString(
16)
39490 if (hex.length %
2) {
39497 function padToEven (a) {
39498 if (a.length %
2) a = '
0' + a
39502 function intToBuffer (i) {
39503 var hex = intToHex(i)
39504 return new Buffer(hex, 'hex')
39507 function toBuffer (v) {
39508 if (!Buffer.isBuffer(v)) {
39509 if (typeof v === 'string') {
39510 if (isHexPrefixed(v)) {
39511 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39515 } else if (typeof v === 'number') {
39521 } else if (v === null || v === undefined) {
39523 } else if (v.toArray) {
39524 // converts a BN to a Buffer
39525 v = new Buffer(v.toArray())
39527 throw new Error('invalid type')
39533 }).call(this,require("buffer").Buffer)
39534 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39536 module.exports = require('./lib')(require('./lib/elliptic'))
39538 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39539 (function (Buffer){
39541 var toString = Object.prototype.toString
39544 exports.isArray = function (value, message) {
39545 if (!Array.isArray(value)) throw TypeError(message)
39548 exports.isBoolean = function (value, message) {
39549 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39552 exports.isBuffer = function (value, message) {
39553 if (!Buffer.isBuffer(value)) throw TypeError(message)
39556 exports.isFunction = function (value, message) {
39557 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39560 exports.isNumber = function (value, message) {
39561 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39564 exports.isObject = function (value, message) {
39565 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39569 exports.isBufferLength = function (buffer, length, message) {
39570 if (buffer.length !== length) throw RangeError(message)
39573 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39574 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39577 exports.isLengthGTZero = function (value, message) {
39578 if (value.length ===
0) throw RangeError(message)
39581 exports.isNumberInInterval = function (number, x, y, message) {
39582 if (number <= x || number
>= y) throw RangeError(message)
39585 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39586 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39587 (function (Buffer){
39589 var bip66 = require('bip66')
39591 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39593 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39595 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39596 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39598 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39599 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39600 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39601 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39602 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39603 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39604 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39605 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39606 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39608 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39609 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39613 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39615 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39617 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39618 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39620 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39621 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39622 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39623 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39624 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39625 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39626 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39627 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39628 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39629 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39630 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39632 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39633 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39634 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39635 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39639 var ZERO_BUFFER_32 = new Buffer([
39640 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39641 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39644 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39645 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39646 privateKey.copy(result, compressed ?
8 :
9)
39647 publicKey.copy(result, compressed ?
181 :
214)
39651 exports.privateKeyImport = function (privateKey) {
39652 var length = privateKey.length
39656 if (length < index +
1 || privateKey[index] !==
0x30) return
39659 // sequence length constructor
39660 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39662 var lenb = privateKey[index] &
0x7f
39664 if (lenb <
1 || lenb
> 2) return
39665 if (length < index + lenb) return
39668 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39670 if (length < index + len) return
39672 // sequence element
0: version number (=
1)
39673 if (length < index +
3 ||
39674 privateKey[index] !==
0x02 ||
39675 privateKey[index +
1] !==
0x01 ||
39676 privateKey[index +
2] !==
0x01) {
39681 // sequence element
1: octet string, up to
32 bytes
39682 if (length < index +
2 ||
39683 privateKey[index] !==
0x04 ||
39684 privateKey[index +
1]
> 0x20 ||
39685 length < index +
2 + privateKey[index +
1]) {
39689 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39692 exports.signatureExport = function (sigObj) {
39693 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39694 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39696 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39697 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39699 return bip66.encode(r.slice(posR), s.slice(posS))
39702 exports.signatureImport = function (sig) {
39703 var r = new Buffer(ZERO_BUFFER_32)
39704 var s = new Buffer(ZERO_BUFFER_32)
39707 var sigObj = bip66.decode(sig)
39708 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39709 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39710 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39711 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39716 sigObj.r.copy(r,
32 - sigObj.r.length)
39717 sigObj.s.copy(s,
32 - sigObj.s.length)
39719 return { r: r, s: s }
39722 exports.signatureImportLax = function (sig) {
39723 var r = new Buffer(ZERO_BUFFER_32)
39724 var s = new Buffer(ZERO_BUFFER_32)
39726 var length = sig.length
39729 // sequence tag byte
39730 if (sig[index++] !==
0x30) return
39732 // sequence length byte
39733 var lenbyte = sig[index++]
39734 if (lenbyte &
0x80) {
39735 index += lenbyte -
0x80
39736 if (index
> length) return
39739 // sequence tag byte for r
39740 if (sig[index++] !==
0x02) return
39743 var rlen = sig[index++]
39745 lenbyte = rlen -
0x80
39746 if (index + lenbyte
> length) return
39747 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39748 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39750 if (rlen
> length - index) return
39754 // sequence tag byte for s
39755 if (sig[index++] !==
0x02) return
39758 var slen = sig[index++]
39760 lenbyte = slen -
0x80
39761 if (index + lenbyte
> length) return
39762 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39763 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39765 if (slen
> length - index) return
39769 // ignore leading zeros in r
39770 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39772 if (rlen
> 32) return
39773 var rvalue = sig.slice(rindex, rindex + rlen)
39774 rvalue.copy(r,
32 - rvalue.length)
39776 // ignore leading zeros in s
39777 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39779 if (slen
> 32) return
39780 var svalue = sig.slice(sindex, sindex + slen)
39781 svalue.copy(s,
32 - svalue.length)
39783 return { r: r, s: s }
39786 }).call(this,require(
"buffer").Buffer)
39787 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39788 (function (Buffer){
39790 var createHash = require('create-hash')
39791 var BN = require('bn.js')
39792 var EC = require('elliptic').ec
39794 var messages = require('../messages.json')
39796 var ec = new EC('secp256k1')
39797 var ecparams = ec.curve
39799 function loadCompressedPublicKey (first, xBuffer) {
39800 var x = new BN(xBuffer)
39803 if (x.cmp(ecparams.p)
>=
0) return null
39804 x = x.toRed(ecparams.red)
39806 // compute corresponding Y
39807 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39808 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39810 return ec.keyPair({ pub: { x: x, y: y } })
39813 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39814 var x = new BN(xBuffer)
39815 var y = new BN(yBuffer)
39818 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39820 x = x.toRed(ecparams.red)
39821 y = y.toRed(ecparams.red)
39824 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39827 var x3 = x.redSqr().redIMul(x)
39828 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39830 return ec.keyPair({ pub: { x: x, y: y } })
39833 function loadPublicKey (publicKey) {
39834 var first = publicKey[
0]
39838 if (publicKey.length !==
33) return null
39839 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39843 if (publicKey.length !==
65) return null
39844 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39850 exports.privateKeyVerify = function (privateKey) {
39851 var bn = new BN(privateKey)
39852 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39855 exports.privateKeyExport = function (privateKey, compressed) {
39856 var d = new BN(privateKey)
39857 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39859 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39862 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39863 var bn = new BN(tweak)
39864 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39866 bn.iadd(new BN(privateKey))
39867 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39868 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39870 return bn.toArrayLike(Buffer, 'be',
32)
39873 exports.privateKeyTweakMul = function (privateKey, tweak) {
39874 var bn = new BN(tweak)
39875 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39877 bn.imul(new BN(privateKey))
39878 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39880 return bn.toArrayLike(Buffer, 'be',
32)
39883 exports.publicKeyCreate = function (privateKey, compressed) {
39884 var d = new BN(privateKey)
39885 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39887 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39890 exports.publicKeyConvert = function (publicKey, compressed) {
39891 var pair = loadPublicKey(publicKey)
39892 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39894 return new Buffer(pair.getPublic(compressed, true))
39897 exports.publicKeyVerify = function (publicKey) {
39898 return loadPublicKey(publicKey) !== null
39901 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39902 var pair = loadPublicKey(publicKey)
39903 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39905 tweak = new BN(tweak)
39906 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39908 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39911 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39912 var pair = loadPublicKey(publicKey)
39913 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39915 tweak = new BN(tweak)
39916 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39918 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39921 exports.publicKeyCombine = function (publicKeys, compressed) {
39922 var pairs = new Array(publicKeys.length)
39923 for (var i =
0; i < publicKeys.length; ++i) {
39924 pairs[i] = loadPublicKey(publicKeys[i])
39925 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39928 var point = pairs[
0].pub
39929 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39930 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39932 return new Buffer(point.encode(true, compressed))
39935 exports.signatureNormalize = function (signature) {
39936 var r = new BN(signature.slice(
0,
32))
39937 var s = new BN(signature.slice(
32,
64))
39938 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39940 var result = new Buffer(signature)
39941 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39946 exports.signatureExport = function (signature) {
39947 var r = signature.slice(
0,
32)
39948 var s = signature.slice(
32,
64)
39949 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39951 return { r: r, s: s }
39954 exports.signatureImport = function (sigObj) {
39955 var r = new BN(sigObj.r)
39956 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39958 var s = new BN(sigObj.s)
39959 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39961 return Buffer.concat([
39962 r.toArrayLike(Buffer, 'be',
32),
39963 s.toArrayLike(Buffer, 'be',
32)
39967 exports.sign = function (message, privateKey, noncefn, data) {
39968 if (typeof noncefn === 'function') {
39969 var getNonce = noncefn
39970 noncefn = function (counter) {
39971 var nonce = getNonce(message, privateKey, null, data, counter)
39972 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
39974 return new BN(nonce)
39978 var d = new BN(privateKey)
39979 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
39981 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
39983 signature: Buffer.concat([
39984 result.r.toArrayLike(Buffer, 'be',
32),
39985 result.s.toArrayLike(Buffer, 'be',
32)
39987 recovery: result.recoveryParam
39991 exports.verify = function (message, signature, publicKey) {
39992 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39994 var sigr = new BN(sigObj.r)
39995 var sigs = new BN(sigObj.s)
39996 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39997 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
39999 var pair = loadPublicKey(publicKey)
40000 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40002 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40005 exports.recover = function (message, signature, recovery, compressed) {
40006 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40008 var sigr = new BN(sigObj.r)
40009 var sigs = new BN(sigObj.s)
40010 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40013 if (sigr.isZero() || sigs.isZero()) throw new Error()
40015 var point = ec.recoverPubKey(message, sigObj, recovery)
40016 return new Buffer(point.encode(true, compressed))
40018 throw new Error(messages.ECDSA_RECOVER_FAIL)
40022 exports.ecdh = function (publicKey, privateKey) {
40023 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40024 return createHash('sha256').update(shared).digest()
40027 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40028 var pair = loadPublicKey(publicKey)
40029 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40031 var scalar = new BN(privateKey)
40032 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40034 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40037 }).call(this,require("buffer").Buffer)
40038 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40040 var assert = require('./assert')
40041 var der = require('./der')
40042 var messages = require('./messages.json')
40044 function initCompressedValue (value, defaultValue) {
40045 if (value === undefined) return defaultValue
40047 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40051 module.exports = function (secp256k1) {
40053 privateKeyVerify: function (privateKey) {
40054 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40055 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40058 privateKeyExport: function (privateKey, compressed) {
40059 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40060 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40062 compressed = initCompressedValue(compressed, true)
40063 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40065 return der.privateKeyExport(privateKey, publicKey, compressed)
40068 privateKeyImport: function (privateKey) {
40069 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40071 privateKey = der.privateKeyImport(privateKey)
40072 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40074 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40077 privateKeyTweakAdd: function (privateKey, tweak) {
40078 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40079 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40081 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40082 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40084 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40087 privateKeyTweakMul: function (privateKey, tweak) {
40088 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40089 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40091 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40092 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40094 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40097 publicKeyCreate: function (privateKey, compressed) {
40098 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40099 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40101 compressed = initCompressedValue(compressed, true)
40103 return secp256k1.publicKeyCreate(privateKey, compressed)
40106 publicKeyConvert: function (publicKey, compressed) {
40107 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40108 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40110 compressed = initCompressedValue(compressed, true)
40112 return secp256k1.publicKeyConvert(publicKey, compressed)
40115 publicKeyVerify: function (publicKey) {
40116 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40117 return secp256k1.publicKeyVerify(publicKey)
40120 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40121 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40122 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40124 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40125 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40127 compressed = initCompressedValue(compressed, true)
40129 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40132 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40133 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40134 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40136 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40137 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40139 compressed = initCompressedValue(compressed, true)
40141 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40144 publicKeyCombine: function (publicKeys, compressed) {
40145 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40146 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40147 for (var i =
0; i < publicKeys.length; ++i) {
40148 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40149 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40152 compressed = initCompressedValue(compressed, true)
40154 return secp256k1.publicKeyCombine(publicKeys, compressed)
40157 signatureNormalize: function (signature) {
40158 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40159 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40161 return secp256k1.signatureNormalize(signature)
40164 signatureExport: function (signature) {
40165 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40166 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40168 var sigObj = secp256k1.signatureExport(signature)
40169 return der.signatureExport(sigObj)
40172 signatureImport: function (sig) {
40173 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40174 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40176 var sigObj = der.signatureImport(sig)
40177 if (sigObj) return secp256k1.signatureImport(sigObj)
40179 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40182 signatureImportLax: function (sig) {
40183 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40184 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40186 var sigObj = der.signatureImportLax(sig)
40187 if (sigObj) return secp256k1.signatureImport(sigObj)
40189 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40192 sign: function (message, privateKey, options) {
40193 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40194 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40196 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40197 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40201 if (options !== undefined) {
40202 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40204 if (options.data !== undefined) {
40205 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40206 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40207 data = options.data
40210 if (options.noncefn !== undefined) {
40211 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40212 noncefn = options.noncefn
40216 return secp256k1.sign(message, privateKey, noncefn, data)
40219 verify: function (message, signature, publicKey) {
40220 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40221 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40223 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40224 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40226 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40227 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40229 return secp256k1.verify(message, signature, publicKey)
40232 recover: function (message, signature, recovery, compressed) {
40233 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40234 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40236 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40237 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40239 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40240 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40242 compressed = initCompressedValue(compressed, true)
40244 return secp256k1.recover(message, signature, recovery, compressed)
40247 ecdh: function (publicKey, privateKey) {
40248 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40249 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40251 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40252 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40254 return secp256k1.ecdh(publicKey, privateKey)
40257 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40258 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40259 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40261 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40262 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40264 compressed = initCompressedValue(compressed, true)
40266 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40271 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40273 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40274 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40275 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40276 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40277 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40278 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40279 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40280 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40281 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40282 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40283 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40284 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40285 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40286 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40287 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40288 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40289 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40290 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40291 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40292 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40293 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40294 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40295 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40296 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40297 "MSG32_TYPE_INVALID": "message should be a Buffer",
40298 "MSG32_LENGTH_INVALID": "message length is invalid",
40299 "OPTIONS_TYPE_INVALID": "options should be an Object",
40300 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40301 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40302 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40303 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40304 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40305 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40306 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40309 },{}],
79:[function(require,module,exports){
40310 (function (Buffer){
40311 // prototype class for hash functions
40312 function Hash (blockSize, finalSize) {
40313 this._block = new Buffer(blockSize)
40314 this._finalSize = finalSize
40315 this._blockSize = blockSize
40320 Hash.prototype.update = function (data, enc) {
40321 if (typeof data === 'string') {
40322 enc = enc || 'utf8'
40323 data = new Buffer(data, enc)
40326 var l = this._len += data.length
40327 var s = this._s ||
0
40329 var buffer = this._block
40332 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40335 for (var i =
0; i < ch; i++) {
40336 buffer[(s % this._blockSize) + i] = data[i + f]
40342 if ((s % this._blockSize) ===
0) {
40343 this._update(buffer)
40351 Hash.prototype.digest = function (enc) {
40352 // Suppose the length of the message M, in bits, is l
40353 var l = this._len *
8
40355 // Append the bit
1 to the end of the message
40356 this._block[this._len % this._blockSize] =
0x80
40358 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40359 this._block.fill(
0, this._len % this._blockSize +
1)
40361 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40362 this._update(this._block)
40363 this._block.fill(
0)
40366 // to this append the block which is equal to the number l written in binary
40367 // TODO: handle case where l is
> Math.pow(
2,
29)
40368 this._block.writeInt32BE(l, this._blockSize -
4)
40370 var hash = this._update(this._block) || this._hash()
40372 return enc ? hash.toString(enc) : hash
40375 Hash.prototype._update = function () {
40376 throw new Error('_update must be implemented by subclass')
40379 module.exports = Hash
40381 }).call(this,require("buffer").Buffer)
40382 },{"buffer":
5}],
80:[function(require,module,exports){
40383 var exports = module.exports = function SHA (algorithm) {
40384 algorithm = algorithm.toLowerCase()
40386 var Algorithm = exports[algorithm]
40387 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40389 return new Algorithm()
40392 exports.sha = require('./sha')
40393 exports.sha1 = require('./sha1')
40394 exports.sha224 = require('./sha224')
40395 exports.sha256 = require('./sha256')
40396 exports.sha384 = require('./sha384')
40397 exports.sha512 = require('./sha512')
40399 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40400 (function (Buffer){
40402 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40403 * in FIPS PUB
180-
1
40404 * This source code is derived from sha1.js of the same repository.
40405 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40406 * operation was added.
40409 var inherits = require('inherits')
40410 var Hash = require('./hash')
40413 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40416 var W = new Array(
80)
40422 Hash.call(this,
64,
56)
40425 inherits(Sha, Hash)
40427 Sha.prototype.init = function () {
40428 this._a =
0x67452301
40429 this._b =
0xefcdab89
40430 this._c =
0x98badcfe
40431 this._d =
0x10325476
40432 this._e =
0xc3d2e1f0
40437 function rotl5 (num) {
40438 return (num <<
5) | (num
>>> 27)
40441 function rotl30 (num) {
40442 return (num <<
30) | (num
>>> 2)
40445 function ft (s, b, c, d) {
40446 if (s ===
0) return (b & c) | ((~b) & d)
40447 if (s ===
2) return (b & c) | (b & d) | (c & d)
40451 Sha.prototype._update = function (M) {
40454 var a = this._a |
0
40455 var b = this._b |
0
40456 var c = this._c |
0
40457 var d = this._d |
0
40458 var e = this._e |
0
40460 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40461 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40463 for (var j =
0; j <
80; ++j) {
40465 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40474 this._a = (a + this._a) |
0
40475 this._b = (b + this._b) |
0
40476 this._c = (c + this._c) |
0
40477 this._d = (d + this._d) |
0
40478 this._e = (e + this._e) |
0
40481 Sha.prototype._hash = function () {
40482 var H = new Buffer(
20)
40484 H.writeInt32BE(this._a |
0,
0)
40485 H.writeInt32BE(this._b |
0,
4)
40486 H.writeInt32BE(this._c |
0,
8)
40487 H.writeInt32BE(this._d |
0,
12)
40488 H.writeInt32BE(this._e |
0,
16)
40493 module.exports = Sha
40495 }).call(this,require(
"buffer").Buffer)
40496 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40497 (function (Buffer){
40499 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40500 * in FIPS PUB
180-
1
40501 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40502 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40503 * Distributed under the BSD License
40504 * See http://pajhome.org.uk/crypt/md5 for details.
40507 var inherits = require('inherits')
40508 var Hash = require('./hash')
40511 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40514 var W = new Array(
80)
40520 Hash.call(this,
64,
56)
40523 inherits(Sha1, Hash)
40525 Sha1.prototype.init = function () {
40526 this._a =
0x67452301
40527 this._b =
0xefcdab89
40528 this._c =
0x98badcfe
40529 this._d =
0x10325476
40530 this._e =
0xc3d2e1f0
40535 function rotl1 (num) {
40536 return (num <<
1) | (num
>>> 31)
40539 function rotl5 (num) {
40540 return (num <<
5) | (num
>>> 27)
40543 function rotl30 (num) {
40544 return (num <<
30) | (num
>>> 2)
40547 function ft (s, b, c, d) {
40548 if (s ===
0) return (b & c) | ((~b) & d)
40549 if (s ===
2) return (b & c) | (b & d) | (c & d)
40553 Sha1.prototype._update = function (M) {
40556 var a = this._a |
0
40557 var b = this._b |
0
40558 var c = this._c |
0
40559 var d = this._d |
0
40560 var e = this._e |
0
40562 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40563 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40565 for (var j =
0; j <
80; ++j) {
40567 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40576 this._a = (a + this._a) |
0
40577 this._b = (b + this._b) |
0
40578 this._c = (c + this._c) |
0
40579 this._d = (d + this._d) |
0
40580 this._e = (e + this._e) |
0
40583 Sha1.prototype._hash = function () {
40584 var H = new Buffer(
20)
40586 H.writeInt32BE(this._a |
0,
0)
40587 H.writeInt32BE(this._b |
0,
4)
40588 H.writeInt32BE(this._c |
0,
8)
40589 H.writeInt32BE(this._d |
0,
12)
40590 H.writeInt32BE(this._e |
0,
16)
40595 module.exports = Sha1
40597 }).call(this,require(
"buffer").Buffer)
40598 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40599 (function (Buffer){
40601 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40603 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40604 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40608 var inherits = require('inherits')
40609 var Sha256 = require('./sha256')
40610 var Hash = require('./hash')
40612 var W = new Array(
64)
40614 function Sha224 () {
40617 this._w = W // new Array(
64)
40619 Hash.call(this,
64,
56)
40622 inherits(Sha224, Sha256)
40624 Sha224.prototype.init = function () {
40625 this._a =
0xc1059ed8
40626 this._b =
0x367cd507
40627 this._c =
0x3070dd17
40628 this._d =
0xf70e5939
40629 this._e =
0xffc00b31
40630 this._f =
0x68581511
40631 this._g =
0x64f98fa7
40632 this._h =
0xbefa4fa4
40637 Sha224.prototype._hash = function () {
40638 var H = new Buffer(
28)
40640 H.writeInt32BE(this._a,
0)
40641 H.writeInt32BE(this._b,
4)
40642 H.writeInt32BE(this._c,
8)
40643 H.writeInt32BE(this._d,
12)
40644 H.writeInt32BE(this._e,
16)
40645 H.writeInt32BE(this._f,
20)
40646 H.writeInt32BE(this._g,
24)
40651 module.exports = Sha224
40653 }).call(this,require(
"buffer").Buffer)
40654 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40655 (function (Buffer){
40657 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40659 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40660 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40664 var inherits = require('inherits')
40665 var Hash = require('./hash')
40668 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40669 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40670 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40671 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40672 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40673 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40674 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40675 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40676 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40677 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40678 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40679 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40680 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40681 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40682 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40683 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40686 var W = new Array(
64)
40688 function Sha256 () {
40691 this._w = W // new Array(
64)
40693 Hash.call(this,
64,
56)
40696 inherits(Sha256, Hash)
40698 Sha256.prototype.init = function () {
40699 this._a =
0x6a09e667
40700 this._b =
0xbb67ae85
40701 this._c =
0x3c6ef372
40702 this._d =
0xa54ff53a
40703 this._e =
0x510e527f
40704 this._f =
0x9b05688c
40705 this._g =
0x1f83d9ab
40706 this._h =
0x5be0cd19
40711 function ch (x, y, z) {
40712 return z ^ (x & (y ^ z))
40715 function maj (x, y, z) {
40716 return (x & y) | (z & (x | y))
40719 function sigma0 (x) {
40720 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40723 function sigma1 (x) {
40724 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40727 function gamma0 (x) {
40728 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40731 function gamma1 (x) {
40732 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40735 Sha256.prototype._update = function (M) {
40738 var a = this._a |
0
40739 var b = this._b |
0
40740 var c = this._c |
0
40741 var d = this._d |
0
40742 var e = this._e |
0
40743 var f = this._f |
0
40744 var g = this._g |
0
40745 var h = this._h |
0
40747 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40748 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40750 for (var j =
0; j <
64; ++j) {
40751 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40752 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40764 this._a = (a + this._a) |
0
40765 this._b = (b + this._b) |
0
40766 this._c = (c + this._c) |
0
40767 this._d = (d + this._d) |
0
40768 this._e = (e + this._e) |
0
40769 this._f = (f + this._f) |
0
40770 this._g = (g + this._g) |
0
40771 this._h = (h + this._h) |
0
40774 Sha256.prototype._hash = function () {
40775 var H = new Buffer(
32)
40777 H.writeInt32BE(this._a,
0)
40778 H.writeInt32BE(this._b,
4)
40779 H.writeInt32BE(this._c,
8)
40780 H.writeInt32BE(this._d,
12)
40781 H.writeInt32BE(this._e,
16)
40782 H.writeInt32BE(this._f,
20)
40783 H.writeInt32BE(this._g,
24)
40784 H.writeInt32BE(this._h,
28)
40789 module.exports = Sha256
40791 }).call(this,require(
"buffer").Buffer)
40792 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40793 (function (Buffer){
40794 var inherits = require('inherits')
40795 var SHA512 = require('./sha512')
40796 var Hash = require('./hash')
40798 var W = new Array(
160)
40800 function Sha384 () {
40804 Hash.call(this,
128,
112)
40807 inherits(Sha384, SHA512)
40809 Sha384.prototype.init = function () {
40810 this._ah =
0xcbbb9d5d
40811 this._bh =
0x629a292a
40812 this._ch =
0x9159015a
40813 this._dh =
0x152fecd8
40814 this._eh =
0x67332667
40815 this._fh =
0x8eb44a87
40816 this._gh =
0xdb0c2e0d
40817 this._hh =
0x47b5481d
40819 this._al =
0xc1059ed8
40820 this._bl =
0x367cd507
40821 this._cl =
0x3070dd17
40822 this._dl =
0xf70e5939
40823 this._el =
0xffc00b31
40824 this._fl =
0x68581511
40825 this._gl =
0x64f98fa7
40826 this._hl =
0xbefa4fa4
40831 Sha384.prototype._hash = function () {
40832 var H = new Buffer(
48)
40834 function writeInt64BE (h, l, offset) {
40835 H.writeInt32BE(h, offset)
40836 H.writeInt32BE(l, offset +
4)
40839 writeInt64BE(this._ah, this._al,
0)
40840 writeInt64BE(this._bh, this._bl,
8)
40841 writeInt64BE(this._ch, this._cl,
16)
40842 writeInt64BE(this._dh, this._dl,
24)
40843 writeInt64BE(this._eh, this._el,
32)
40844 writeInt64BE(this._fh, this._fl,
40)
40849 module.exports = Sha384
40851 }).call(this,require(
"buffer").Buffer)
40852 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40853 (function (Buffer){
40854 var inherits = require('inherits')
40855 var Hash = require('./hash')
40858 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40859 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40860 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40861 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40862 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40863 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40864 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40865 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40866 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40867 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40868 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40869 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40870 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40871 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40872 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40873 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40874 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40875 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40876 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40877 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40878 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40879 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40880 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40881 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40882 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40883 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40884 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40885 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40886 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40887 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40888 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40889 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40890 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40891 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40892 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40893 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40894 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40895 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40896 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40897 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40900 var W = new Array(
160)
40902 function Sha512 () {
40906 Hash.call(this,
128,
112)
40909 inherits(Sha512, Hash)
40911 Sha512.prototype.init = function () {
40912 this._ah =
0x6a09e667
40913 this._bh =
0xbb67ae85
40914 this._ch =
0x3c6ef372
40915 this._dh =
0xa54ff53a
40916 this._eh =
0x510e527f
40917 this._fh =
0x9b05688c
40918 this._gh =
0x1f83d9ab
40919 this._hh =
0x5be0cd19
40921 this._al =
0xf3bcc908
40922 this._bl =
0x84caa73b
40923 this._cl =
0xfe94f82b
40924 this._dl =
0x5f1d36f1
40925 this._el =
0xade682d1
40926 this._fl =
0x2b3e6c1f
40927 this._gl =
0xfb41bd6b
40928 this._hl =
0x137e2179
40933 function Ch (x, y, z) {
40934 return z ^ (x & (y ^ z))
40937 function maj (x, y, z) {
40938 return (x & y) | (z & (x | y))
40941 function sigma0 (x, xl) {
40942 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40945 function sigma1 (x, xl) {
40946 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40949 function Gamma0 (x, xl) {
40950 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40953 function Gamma0l (x, xl) {
40954 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40957 function Gamma1 (x, xl) {
40958 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40961 function Gamma1l (x, xl) {
40962 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40965 function getCarry (a, b) {
40966 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
40969 Sha512.prototype._update = function (M) {
40972 var ah = this._ah |
0
40973 var bh = this._bh |
0
40974 var ch = this._ch |
0
40975 var dh = this._dh |
0
40976 var eh = this._eh |
0
40977 var fh = this._fh |
0
40978 var gh = this._gh |
0
40979 var hh = this._hh |
0
40981 var al = this._al |
0
40982 var bl = this._bl |
0
40983 var cl = this._cl |
0
40984 var dl = this._dl |
0
40985 var el = this._el |
0
40986 var fl = this._fl |
0
40987 var gl = this._gl |
0
40988 var hl = this._hl |
0
40990 for (var i =
0; i <
32; i +=
2) {
40991 W[i] = M.readInt32BE(i *
4)
40992 W[i +
1] = M.readInt32BE(i *
4 +
4)
40994 for (; i <
160; i +=
2) {
40995 var xh = W[i -
15 *
2]
40996 var xl = W[i -
15 *
2 +
1]
40997 var gamma0 = Gamma0(xh, xl)
40998 var gamma0l = Gamma0l(xl, xh)
41001 xl = W[i -
2 *
2 +
1]
41002 var gamma1 = Gamma1(xh, xl)
41003 var gamma1l = Gamma1l(xl, xh)
41005 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41006 var Wi7h = W[i -
7 *
2]
41007 var Wi7l = W[i -
7 *
2 +
1]
41009 var Wi16h = W[i -
16 *
2]
41010 var Wi16l = W[i -
16 *
2 +
1]
41012 var Wil = (gamma0l + Wi7l) |
0
41013 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41014 Wil = (Wil + gamma1l) |
0
41015 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41016 Wil = (Wil + Wi16l) |
0
41017 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41023 for (var j =
0; j <
160; j +=
2) {
41027 var majh = maj(ah, bh, ch)
41028 var majl = maj(al, bl, cl)
41030 var sigma0h = sigma0(ah, al)
41031 var sigma0l = sigma0(al, ah)
41032 var sigma1h = sigma1(eh, el)
41033 var sigma1l = sigma1(el, eh)
41035 // t1 = h + sigma1 + ch + K[j] + W[j]
41039 var chh = Ch(eh, fh, gh)
41040 var chl = Ch(el, fl, gl)
41042 var t1l = (hl + sigma1l) |
0
41043 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41044 t1l = (t1l + chl) |
0
41045 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41046 t1l = (t1l + Kil) |
0
41047 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41048 t1l = (t1l + Wil) |
0
41049 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41051 // t2 = sigma0 + maj
41052 var t2l = (sigma0l + majl) |
0
41053 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41061 el = (dl + t1l) |
0
41062 eh = (dh + t1h + getCarry(el, dl)) |
0
41069 al = (t1l + t2l) |
0
41070 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41073 this._al = (this._al + al) |
0
41074 this._bl = (this._bl + bl) |
0
41075 this._cl = (this._cl + cl) |
0
41076 this._dl = (this._dl + dl) |
0
41077 this._el = (this._el + el) |
0
41078 this._fl = (this._fl + fl) |
0
41079 this._gl = (this._gl + gl) |
0
41080 this._hl = (this._hl + hl) |
0
41082 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41083 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41084 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41085 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41086 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41087 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41088 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41089 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41092 Sha512.prototype._hash = function () {
41093 var H = new Buffer(
64)
41095 function writeInt64BE (h, l, offset) {
41096 H.writeInt32BE(h, offset)
41097 H.writeInt32BE(l, offset +
4)
41100 writeInt64BE(this._ah, this._al,
0)
41101 writeInt64BE(this._bh, this._bl,
8)
41102 writeInt64BE(this._ch, this._cl,
16)
41103 writeInt64BE(this._dh, this._dl,
24)
41104 writeInt64BE(this._eh, this._el,
32)
41105 writeInt64BE(this._fh, this._fl,
40)
41106 writeInt64BE(this._gh, this._gl,
48)
41107 writeInt64BE(this._hh, this._hl,
56)
41112 module.exports = Sha512
41114 }).call(this,require(
"buffer").Buffer)
41115 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41116 var isHexPrefixed = require('is-hex-prefixed');
41119 * Removes '
0x' from a given `String` is present
41120 * @param {String} str the string value
41121 * @return {String|Optional} a string by pass if necessary
41123 module.exports = function stripHexPrefix(str) {
41124 if (typeof str !== 'string') {
41128 return isHexPrefixed(str) ? str.slice(
2) : str;
41131 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41133 <script>function convertRippleAdrr(address) {
41134 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41135 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41139 function convertRipplePriv(priv) {
41140 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41144 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41148 /** @fileOverview Javascript cryptography implementation.
41150 * Crush to remove comments, shorten variable names and
41151 * generally reduce transmission size.
41153 * @author Emily Stark
41154 * @author Mike Hamburg
41155 * @author Dan Boneh
41159 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41160 /*global document, window, escape, unescape, module, require, Uint32Array */
41162 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41164 /** @namespace Symmetric ciphers. */
41167 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41170 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41173 /** @namespace Block cipher modes of operation. */
41176 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41180 * @namespace Bit array encoders and decoders.
41183 * The members of this namespace are functions which translate between
41184 * SJCL's bitArrays and other objects (usually strings). Because it
41185 * isn't always clear which direction is encoding and which is decoding,
41186 * the method names are "fromBits" and "toBits".
41190 /** @namespace Exceptions. */
41192 /** @constructor Ciphertext is corrupt. */
41193 corrupt: function(message) {
41194 this.toString = function() { return "CORRUPT: "+this.message; };
41195 this.message = message;
41198 /** @constructor Invalid parameter. */
41199 invalid: function(message) {
41200 this.toString = function() { return "INVALID: "+this.message; };
41201 this.message = message;
41204 /** @constructor Bug or missing feature in SJCL. @constructor */
41205 bug: function(message) {
41206 this.toString = function() { return "BUG: "+this.message; };
41207 this.message = message;
41210 /** @constructor Something isn't ready. */
41211 notReady: function(message) {
41212 this.toString = function() { return "NOT READY: "+this.message; };
41213 this.message = message;
41218 if(typeof module !== 'undefined' && module.exports){
41219 module.exports = sjcl;
41221 if (typeof define === "function") {
41222 define([], function () {
41230 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41232 * @author Emily Stark
41233 * @author Mike Hamburg
41234 * @author Dan Boneh
41237 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41241 * These objects are the currency accepted by SJCL's crypto functions.
41245 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41246 * but many of them can take arguments that are not a multiple of
4 bytes.
41247 * This library encodes arrays of bits (whose size need not be a multiple of
8
41248 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41249 * array of words,
32 bits at a time. Since the words are double-precision
41250 * floating point numbers, they fit some extra data. We use this (in a private,
41251 * possibly-changing manner) to encode the number of bits actually present
41252 * in the last word of the array.
41256 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41257 * to ciphers like AES which want arrays of words.
41262 * Array slices in units of bits.
41263 * @param {bitArray} a The array to slice.
41264 * @param {Number} bstart The offset to the start of the slice, in bits.
41265 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41266 * slice until the end of the array.
41267 * @return {bitArray} The requested slice.
41269 bitSlice: function (a, bstart, bend) {
41270 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41271 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41275 * Extract a number packed into a bit array.
41276 * @param {bitArray} a The array to slice.
41277 * @param {Number} bstart The offset to the start of the slice, in bits.
41278 * @param {Number} length The length of the number to extract.
41279 * @return {Number} The requested slice.
41281 extract: function(a, bstart, blength) {
41282 // FIXME: this Math.floor is not necessary at all, but for some reason
41283 // seems to suppress a bug in the Chromium JIT.
41284 var x, sh = Math.floor((-bstart-blength) &
31);
41285 if ((bstart + blength -
1 ^ bstart) & -
32) {
41286 // it crosses a boundary
41287 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41289 // within a single word
41290 x = a[bstart/
32|
0]
>>> sh;
41292 return x & ((
1<
<blength) -
1);
41296 * Concatenate two bit arrays.
41297 * @param {bitArray} a1 The first array.
41298 * @param {bitArray} a2 The second array.
41299 * @return {bitArray} The concatenation of a1 and a2.
41301 concat: function (a1, a2) {
41302 if (a1.length ===
0 || a2.length ===
0) {
41303 return a1.concat(a2);
41306 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41307 if (shift ===
32) {
41308 return a1.concat(a2);
41310 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41315 * Find the length of an array of bits.
41316 * @param {bitArray} a The array.
41317 * @return {Number} The length of a, in bits.
41319 bitLength: function (a) {
41320 var l = a.length, x;
41321 if (l ===
0) { return
0; }
41323 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41327 * Truncate an array.
41328 * @param {bitArray} a The array.
41329 * @param {Number} len The length to truncate to, in bits.
41330 * @return {bitArray} A new array, truncated to len bits.
41332 clamp: function (a, len) {
41333 if (a.length *
32 < len) { return a; }
41334 a = a.slice(
0, Math.ceil(len /
32));
41337 if (l
> 0 && len) {
41338 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41344 * Make a partial word for a bit array.
41345 * @param {Number} len The number of bits in the word.
41346 * @param {Number} x The bits.
41347 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41348 * @return {Number} The partial word.
41350 partial: function (len, x, _end) {
41351 if (len ===
32) { return x; }
41352 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41356 * Get the number of bits used by a partial word.
41357 * @param {Number} x The partial word.
41358 * @return {Number} The number of bits used by the partial word.
41360 getPartial: function (x) {
41361 return Math.round(x/
0x10000000000) ||
32;
41365 * Compare two arrays for equality in a predictable amount of time.
41366 * @param {bitArray} a The first array.
41367 * @param {bitArray} b The second array.
41368 * @return {boolean} true if a == b; false otherwise.
41370 equal: function (a, b) {
41371 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41375 for (i=
0; i
<a.length; i++) {
41381 /** Shift an array right.
41382 * @param {bitArray} a The array to shift.
41383 * @param {Number} shift The number of bits to shift.
41384 * @param {Number} [carry=
0] A byte to carry in
41385 * @param {bitArray} [out=[]] An array to prepend to the output.
41388 _shiftRight: function (a, shift, carry, out) {
41389 var i, last2=
0, shift2;
41390 if (out === undefined) { out = []; }
41392 for (; shift
>=
32; shift -=
32) {
41397 return out.concat(a);
41400 for (i=
0; i
<a.length; i++) {
41401 out.push(carry | a[i]
>>>shift);
41402 carry = a[i] << (
32-shift);
41404 last2 = a.length ? a[a.length-
1] :
0;
41405 shift2 = sjcl.bitArray.getPartial(last2);
41406 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41410 /** xor a block of
4 words together.
41413 _xor4: function(x,y) {
41414 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41417 /** byteswap a word array inplace.
41418 * (does not handle partial words)
41419 * @param {sjcl.bitArray} a word array
41420 * @return {sjcl.bitArray} byteswapped array
41422 byteswapM: function(a) {
41423 var i, v, m =
0xff00;
41424 for (i =
0; i < a.length; ++i) {
41426 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41433 //// codecString.js
41435 /** @fileOverview Bit array codec implementations.
41437 * @author Emily Stark
41438 * @author Mike Hamburg
41439 * @author Dan Boneh
41442 /** @namespace UTF-
8 strings */
41443 sjcl.codec.utf8String = {
41444 /** Convert from a bitArray to a UTF-
8 string. */
41445 fromBits: function (arr) {
41446 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41447 for (i=
0; i
<bl/
8; i++) {
41451 out += String.fromCharCode(tmp
>>> 24);
41454 return decodeURIComponent(escape(out));
41457 /** Convert from a UTF-
8 string to a bitArray. */
41458 toBits: function (str) {
41459 str = unescape(encodeURIComponent(str));
41460 var out = [], i, tmp=
0;
41461 for (i=
0; i
<str.length; i++) {
41462 tmp = tmp <<
8 | str.charCodeAt(i);
41469 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41478 /** @fileOverview Bit array codec implementations.
41480 * @author Emily Stark
41481 * @author Mike Hamburg
41482 * @author Dan Boneh
41485 /** @namespace Hexadecimal */
41487 /** Convert from a bitArray to a hex string. */
41488 fromBits: function (arr) {
41490 for (i=
0; i
<arr.length; i++) {
41491 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41493 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41495 /** Convert from a hex string to a bitArray. */
41496 toBits: function (str) {
41497 var i, out=[], len;
41498 str = str.replace(/\s|
0x/g,
"");
41500 str = str +
"00000000";
41501 for (i=
0; i
<str.length; i+=
8) {
41502 out.push(parseInt(str.substr(i,
8),
16)^
0);
41504 return sjcl.bitArray.clamp(out, len*
4);
41511 /** @fileOverview Javascript SHA-
512 implementation.
41513 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41514 * SJCL by Stefan Thomas.
41516 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41517 * Released with New BSD License
41519 * @author Emily Stark
41520 * @author Mike Hamburg
41521 * @author Dan Boneh
41522 * @author Jeff Mott
41523 * @author Stefan Thomas
41527 * Context for a SHA-
512 operation in progress.
41529 * @class Secure Hash Algorithm,
512 bits.
41531 sjcl.hash.sha512 = function (hash) {
41532 if (!this._key[
0]) { this._precompute(); }
41534 this._h = hash._h.slice(
0);
41535 this._buffer = hash._buffer.slice(
0);
41536 this._length = hash._length;
41543 * Hash a string or an array of words.
41545 * @param {bitArray|String} data the data to hash.
41546 * @return {bitArray} The hash value, an array of
16 big-endian words.
41548 sjcl.hash.sha512.hash = function (data) {
41549 return (new sjcl.hash.sha512()).update(data).finalize();
41552 sjcl.hash.sha512.prototype = {
41554 * The hash's block size, in bits.
41560 * Reset the hash state.
41563 reset:function () {
41564 this._h = this._init.slice(
0);
41571 * Input several words to the hash.
41572 * @param {bitArray|String} data the data to hash.
41575 update: function (data) {
41576 if (typeof data ===
"string") {
41577 data = sjcl.codec.utf8String.toBits(data);
41579 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41581 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41582 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41583 this._block(b.splice(
0,
32));
41589 * Complete hashing and output the hash value.
41590 * @return {bitArray} The hash value, an array of
16 big-endian words.
41592 finalize:function () {
41593 var i, b = this._buffer, h = this._h;
41595 // Round out and push the buffer
41596 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41598 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41599 for (i = b.length +
4; i &
31; i++) {
41603 // append the length
41606 b.push(Math.floor(this._length /
0x100000000));
41607 b.push(this._length |
0);
41610 this._block(b.splice(
0,
32));
41618 * The SHA-
512 initialization vector, to be precomputed.
41624 * Least significant
24 bits of SHA512 initialization values.
41626 * Javascript only has
53 bits of precision, so we compute the
40 most
41627 * significant bits and add the remaining
24 bits as constants.
41631 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41635 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41636 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41640 * The SHA-
512 hash key, to be precomputed.
41646 * Least significant
24 bits of SHA512 key values.
41650 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41651 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41652 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41653 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41654 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41655 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41656 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41657 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41658 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41659 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41663 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41664 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41665 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41666 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41667 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41668 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41669 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41670 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41671 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41672 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41673 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41674 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41675 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41676 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41677 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41678 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41679 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41680 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41681 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41682 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41686 * Function to precompute _init and _key.
41689 _precompute: function () {
41690 // XXX: This code is for precomputing the SHA256 constants, change for
41691 // SHA512 and re-enable.
41692 var i =
0, prime =
2, factor;
41694 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41695 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41697 outer: for (; i
<80; prime++) {
41698 for (factor=
2; factor*factor <= prime; factor++) {
41699 if (prime % factor ===
0) {
41706 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41707 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41709 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41710 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41716 * Perform one cycle of SHA-
512.
41717 * @param {bitArray} words one block of words.
41720 _block:function (words) {
41722 w = words.slice(
0),
41725 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41726 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41727 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41728 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41730 // Working variables
41731 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41732 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41733 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41734 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41736 for (i=
0; i
<80; i++) {
41737 // load up the input word for this round
41740 wrl = w[i *
2 +
1];
41743 var gamma0xh = w[(i-
15) *
2];
41744 var gamma0xl = w[(i-
15) *
2 +
1];
41746 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41747 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41750 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41751 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41752 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41755 var gamma1xh = w[(i-
2) *
2];
41756 var gamma1xl = w[(i-
2) *
2 +
1];
41758 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41759 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41762 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41763 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41764 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41767 var wr7h = w[(i-
7) *
2];
41768 var wr7l = w[(i-
7) *
2 +
1];
41770 var wr16h = w[(i-
16) *
2];
41771 var wr16l = w[(i-
16) *
2 +
1];
41773 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41774 wrl = gamma0l + wr7l;
41775 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41777 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41779 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41783 w[i*
2 +
1] = wrl |=
0;
41786 var chh = (eh & fh) ^ (~eh & gh);
41787 var chl = (el & fl) ^ (~el & gl);
41790 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41791 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41794 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41795 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41798 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41799 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41803 var krl = k[i*
2+
1];
41805 // t1 = h + sigma1 + ch + K(round) + W(round)
41806 var t1l = hl + sigma1l;
41807 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41809 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41811 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41812 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41813 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41815 // t2 = sigma0 + maj
41816 var t2l = sigma0l + majl;
41817 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41819 // Update working variables
41826 el = (dl + t1l) |
0;
41827 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41834 al = (t1l + t2l) |
0;
41835 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41838 // Intermediate hash
41839 h0l = h[
1] = (h0l + al) |
0;
41840 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41841 h1l = h[
3] = (h1l + bl) |
0;
41842 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41843 h2l = h[
5] = (h2l + cl) |
0;
41844 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41845 h3l = h[
7] = (h3l + dl) |
0;
41846 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41847 h4l = h[
9] = (h4l + el) |
0;
41848 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41849 h5l = h[
11] = (h5l + fl) |
0;
41850 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41851 h6l = h[
13] = (h6l + gl) |
0;
41852 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41853 h7l = h[
15] = (h7l + hl) |
0;
41854 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41861 /** @fileOverview HMAC implementation.
41863 * @author Emily Stark
41864 * @author Mike Hamburg
41865 * @author Dan Boneh
41868 /** HMAC with the specified hash function.
41870 * @param {bitArray} key the key for HMAC.
41871 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41873 sjcl.misc.hmac = function (key, Hash) {
41874 this._hash = Hash = Hash || sjcl.hash.sha256;
41875 var exKey = [[],[]], i,
41876 bs = Hash.prototype.blockSize /
32;
41877 this._baseHash = [new Hash(), new Hash()];
41879 if (key.length
> bs) {
41880 key = Hash.hash(key);
41883 for (i=
0; i
<bs; i++) {
41884 exKey[
0][i] = key[i]^
0x36363636;
41885 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41888 this._baseHash[
0].update(exKey[
0]);
41889 this._baseHash[
1].update(exKey[
1]);
41890 this._resultHash = new Hash(this._baseHash[
0]);
41893 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41894 * @param {bitArray|String} data The data to mac.
41896 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41897 if (!this._updated) {
41899 return this.digest(data);
41901 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41905 sjcl.misc.hmac.prototype.reset = function () {
41906 this._resultHash = new this._hash(this._baseHash[
0]);
41907 this._updated = false;
41910 sjcl.misc.hmac.prototype.update = function (data) {
41911 this._updated = true;
41912 this._resultHash.update(data);
41915 sjcl.misc.hmac.prototype.digest = function () {
41916 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41927 /** @fileOverview Password-based key-derivation function, version
2.0.
41929 * @author Emily Stark
41930 * @author Mike Hamburg
41931 * @author Dan Boneh
41934 /** Password-Based Key-Derivation Function, version
2.0.
41936 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41938 * This is the method specified by RSA's PKCS #
5 standard.
41940 * @param {bitArray|String} password The password.
41941 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41942 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41943 * @param {Number} [length] The length of the derived key. Defaults to the
41944 output size of the hash function.
41945 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41946 * @return {bitArray} the derived key.
41948 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41949 count = count ||
1000;
41951 if (length <
0 || count <
0) {
41952 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41955 if (typeof password ===
"string") {
41956 password = sjcl.codec.utf8String.toBits(password);
41959 if (typeof salt ===
"string") {
41960 salt = sjcl.codec.utf8String.toBits(salt);
41963 Prff = Prff || sjcl.misc.hmac;
41965 var prf = new Prff(password),
41966 u, ui, i, j, k, out = [], b = sjcl.bitArray;
41968 for (k =
1;
32 * out.length < (length ||
1); k++) {
41969 u = ui = prf.encrypt(b.concat(salt,[k]));
41971 for (i=
1; i
<count; i++) {
41972 ui = prf.encrypt(ui);
41973 for (j=
0; j
<ui.length; j++) {
41978 out = out.concat(u);
41981 if (length) { out = b.clamp(out, length); }
41989 /** @fileOverview Javascript SHA-
256 implementation.
41991 * An older version of this implementation is available in the public
41992 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
41993 * Stanford University
2008-
2010 and BSD-licensed for liability
41996 * Special thanks to Aldo Cortesi for pointing out several bugs in
41999 * @author Emily Stark
42000 * @author Mike Hamburg
42001 * @author Dan Boneh
42005 * Context for a SHA-
256 operation in progress.
42007 * @class Secure Hash Algorithm,
256 bits.
42009 sjcl.hash.sha256 = function (hash) {
42010 if (!this._key[
0]) { this._precompute(); }
42012 this._h = hash._h.slice(
0);
42013 this._buffer = hash._buffer.slice(
0);
42014 this._length = hash._length;
42021 * Hash a string or an array of words.
42023 * @param {bitArray|String} data the data to hash.
42024 * @return {bitArray} The hash value, an array of
16 big-endian words.
42026 sjcl.hash.sha256.hash = function (data) {
42027 return (new sjcl.hash.sha256()).update(data).finalize();
42030 sjcl.hash.sha256.prototype = {
42032 * The hash's block size, in bits.
42038 * Reset the hash state.
42041 reset:function () {
42042 this._h = this._init.slice(
0);
42049 * Input several words to the hash.
42050 * @param {bitArray|String} data the data to hash.
42053 update: function (data) {
42054 if (typeof data ===
"string") {
42055 data = sjcl.codec.utf8String.toBits(data);
42057 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42059 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42060 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42061 this._block(b.splice(
0,
16));
42067 * Complete hashing and output the hash value.
42068 * @return {bitArray} The hash value, an array of
8 big-endian words.
42070 finalize:function () {
42071 var i, b = this._buffer, h = this._h;
42073 // Round out and push the buffer
42074 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42076 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42077 for (i = b.length +
2; i &
15; i++) {
42081 // append the length
42082 b.push(Math.floor(this._length /
0x100000000));
42083 b.push(this._length |
0);
42086 this._block(b.splice(
0,
16));
42094 * The SHA-
256 initialization vector, to be precomputed.
42099 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42103 * The SHA-
256 hash key, to be precomputed.
42109 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42110 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42111 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42112 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42113 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42114 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42115 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42116 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42121 * Function to precompute _init and _key.
42124 _precompute: function () {
42125 var i =
0, prime =
2, factor;
42127 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42129 outer: for (; i
<64; prime++) {
42130 for (factor=
2; factor*factor <= prime; factor++) {
42131 if (prime % factor ===
0) {
42138 this._init[i] = frac(Math.pow(prime,
1/
2));
42140 this._key[i] = frac(Math.pow(prime,
1/
3));
42146 * Perform one cycle of SHA-
256.
42147 * @param {bitArray} words one block of words.
42150 _block:function (words) {
42152 w = words.slice(
0),
42155 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42156 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42158 /* Rationale for placement of |
0 :
42159 * If a value can overflow is original
32 bits by a factor of more than a few
42160 * million (
2^
23 ish), there is a possibility that it might overflow the
42161 *
53-bit mantissa and lose precision.
42163 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42164 * propagates around the loop, and on the hash state h[]. I don't believe
42165 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42166 * (for h4 anyway), and better safe than sorry.
42168 * The clamps on h[] are necessary for the output to be correct even in the
42169 * common case and for short inputs.
42171 for (i=
0; i
<64; i++) {
42172 // load up the input word for this round
42176 a = w[(i+
1 ) &
15];
42177 b = w[(i+
14) &
15];
42178 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42179 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42180 w[i&
15] + w[(i+
9) &
15]) |
0;
42183 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42186 h7 = h6; h6 = h5; h5 = h4;
42188 h3 = h2; h2 = h1; h1 = h0;
42190 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42193 h[
0] = h[
0]+h0 |
0;
42194 h[
1] = h[
1]+h1 |
0;
42195 h[
2] = h[
2]+h2 |
0;
42196 h[
3] = h[
3]+h3 |
0;
42197 h[
4] = h[
4]+h4 |
0;
42198 h[
5] = h[
5]+h5 |
0;
42199 h[
6] = h[
6]+h6 |
0;
42200 h[
7] = h[
7]+h7 |
0;
42204 <script>// An extremely basic translation library
42208 // Set some html to be translated. Do this using the 'data-translate' attribute:
42210 //
<div data-translate
>Test
</div>
42211 //
<div data-translate-html
><em>keep em tag
</em></div>
42212 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
42213 //
<span data-translate-title
title=
"Example title"></span>
42215 // Obtain all the phrases to be translated via js debug console:
42217 // Translate.phrasesAsJson();
42219 // Use that template to translate the phrases into another language.
42220 // Leave the key the same. Change the value to the new language.
42222 // Create a js file to load the new phrases. In this example for Spanish,
42223 // es.js will contain the following code:
42225 // Translate.loadForeignPhrases("es", {
42226 // "Test": "Test in Spanish",
42227 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
42228 // "Example placeholder
": "Example placeholder in Spanish
"
42229 // "Example title
": "Example title in Spanish
"
42232 // In your UI put a listener for clicking on the Spanish button:
42234 // mySpanishButton.addEventListener("click
", function() {
42235 // Translate.setLanguage("es
");
42237 // myEnglishButton.addEventListener("click
", function() {
42238 // Translate.setLanguage("en
");
42241 Translate = new (function() {
42243 var defaultLanguage = "en
";
42245 var allPhrases = {};
42246 allPhrases[defaultLanguage] = {};
42251 selector: "[data-translate]
",
42252 getKey: function() {
42253 return this.textContent.trim().replace(/\s+/g, " ");
42255 setPhrase: function(p) {
42256 this.textContent = p;
42261 selector: "[data-translate-html]
",
42262 getKey: function() {
42263 return this.innerHTML.trim().replace(/\s+/g, " ");
42265 setPhrase: function(p) {
42266 this.innerHTML = p;
42270 var placeholder = {
42271 selector: "[data-translate-placeholder]
",
42272 getKey: function() {
42273 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
42275 setPhrase: function(p) {
42276 this.setAttribute("placeholder
", p);
42281 selector: "[data-translate-title]
",
42282 getKey: function() {
42283 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
42285 setPhrase: function(p) {
42286 this.setAttribute("title
", p);
42290 // Get elements to be translated
42291 var allEls = getEls(text)
42292 .concat(getEls(html))
42293 .concat(getEls(placeholder))
42294 .concat(getEls(title));
42296 // Provides access to phrases from a non-default language.
42297 // See phrases_en.js for example usage.
42298 this.loadForeignPhrases = function(language, phrases) {
42299 allPhrases[language] = phrases;
42302 // Displays a different language, eg "en
" or "fr
"
42303 this.setLanguage = function(language) {
42304 for (var i=0; i<allEls.length; i++) {
42305 var el = allEls[i];
42307 if (!(language in allPhrases)) {
42308 console.log(language + " not in allPhrases
");
42311 if (!(key in allPhrases[language])) {
42312 console.log(language + " does not contain phrase:
" + key);
42315 var phrase = allPhrases[language][key];
42316 el.setPhrase(phrase);
42320 // Converts the phrases to a key-pair json file.
42321 // This is a good way to export phrases for use in translation tools.
42322 this.phrasesAsJson = function(language) {
42324 for (var i=0; i<allEls.length; i++) {
42325 var el = allEls[i];
42331 for (var i=0; i<keys.length; i++) {
42333 var translated = "";
42334 if (language in allPhrases && key in allPhrases[language]) {
42335 translated = allPhrases[language][key];
42337 output[key] = translated;
42339 return JSON.stringify(output, null, 2);
42342 function getEls(nodeType) {
42343 var nodes = document.querySelectorAll(nodeType.selector);
42345 for (var i=0; i<nodes.length; i++) {
42346 var node = nodes[i];
42347 node.getKey = nodeType.getKey;
42348 node.setPhrase = nodeType.setPhrase;
42349 node.key = node.getKey();
42350 allPhrases[defaultLanguage][node.key] = node.key;
42358 <script>Translate.loadForeignPhrases("en",
42360 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
42361 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
42362 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
42363 "
<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).",
42364 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
42365 "Account": "Account",
42366 "Address": "Address",
42367 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
42368 "BIP32 Derivation Path": "BIP32 Derivation Path",
42369 "BIP32 Extended Key": "BIP32 Extended Key",
42370 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
42371 "BIP32 Root Key": "BIP32 Root Key",
42372 "BIP39 Mnemonic": "BIP39 Mnemonic",
42373 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
42374 "BIP39 Seed": "BIP39 Seed",
42375 "Base
10": "Base
10",
42376 "Base
6": "Base
6",
42377 "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.",
42378 "Binary": "Binary",
42379 "Bitcoin Core": "Bitcoin Core",
42380 "Bits Per Event": "Bits Per Event",
42381 "Block Explorers": "Block Explorers",
42382 "Can be used with": "Can be used with",
42386 "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.",
42387 "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.",
42388 "Entropy": "Entropy",
42389 "Entropy Type": "Entropy Type",
42390 "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.",
42391 "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>.",
42392 "Event Count": "Event Count",
42393 "External / Internal": "External / Internal",
42394 "Filtered Entropy": "Filtered Entropy",
42395 "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>",
42396 "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>.",
42397 "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>.",
42398 "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>",
42399 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
42400 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
42401 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
42402 "Get the source code from the repository
": "Get the source code from the repository
",
42404 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
42405 "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.
",
42406 "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.
",
42407 "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.
",
42408 "Libraries
": "Libraries
",
42409 "Mnemonic Language
": "Mnemonic Language
",
42410 "Mnemonic Length
": "Mnemonic Length
",
42411 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
42412 "More info
": "More info
",
42413 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
42414 "Mycelium Wallet
": "Mycelium Wallet
",
42415 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
42416 "Offline Usage
": "Offline Usage
",
42417 "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.",
42419 "Private Key": "Private Key",
42420 "Private Keys": "Private Keys",
42421 "Public Key": "Public Key",
42422 "Purpose": "Purpose",
42423 "Raw Binary": "Raw Binary",
42424 "Read more": "Read more",
42425 "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>",
42426 "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>",
42427 "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>",
42428 "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>",
42430 "Show more rows
": "Show more rows
",
42431 "Strength
": "Strength
",
42432 "Supply my own source of entropy
": "Supply my own source of entropy
",
42433 "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.
",
42434 "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>.",
42435 "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.",
42436 "This project is
100% open-source code": "This project is
100% open-source code",
42437 "Toggle": "Toggle",
42438 "Total Bits": "Total Bits",
42439 "Use hardened addresses": "Use hardened addresses",
42440 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
42441 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
42442 "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>.",
42443 "Valid entropy values include:": "Valid entropy values include:",
42444 "Warning": "Warning",
42445 "Word Count": "Word Count",
42446 "You are not a good source of entropy.": "You are not a good source of entropy.",
42447 "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).",
42448 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
42453 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42454 WORDLISTS["english"] = [
42455 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42456 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42457 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42458 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42459 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42460 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42461 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42462 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42463 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42464 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42465 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42466 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42467 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42468 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42469 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42470 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42471 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42472 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42473 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42474 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42475 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42476 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42477 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42478 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42479 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42480 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42481 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42482 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42483 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42484 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42485 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42486 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42487 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42488 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42489 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42490 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42491 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42492 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42493 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42494 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42495 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42496 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42497 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42498 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42499 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42500 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42501 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42502 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42503 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42504 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42505 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42506 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42507 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42508 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42509 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42510 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42511 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42512 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42513 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42514 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42515 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42516 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42517 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42518 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42519 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42520 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42521 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42522 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42523 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42524 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42525 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42526 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42527 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42528 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42529 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42530 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42531 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42532 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42533 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42534 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42535 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42536 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42537 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42538 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42539 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42540 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42541 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42542 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42543 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42544 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42545 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42546 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42547 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42548 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42549 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42550 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42551 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42552 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42553 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42554 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42555 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42556 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42557 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42558 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42559 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42560 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42561 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42562 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42563 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42564 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42565 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42566 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42567 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42568 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42569 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42570 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42571 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42572 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42573 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42574 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42575 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42576 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42577 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42578 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42579 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42580 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42581 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42582 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42583 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42584 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42585 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42586 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42587 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42588 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42589 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42590 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42591 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42592 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42593 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42594 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42595 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42596 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42597 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42598 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42599 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42600 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42601 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42602 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42603 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42604 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42605 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42606 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42607 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42608 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42609 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42610 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42611 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42612 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42613 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42614 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42615 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42616 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42617 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42618 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42619 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42620 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42621 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42622 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42623 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42624 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42625 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42626 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42627 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42628 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42629 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42630 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42631 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42632 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42633 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42634 "thank","that","theme","then","theory","there","they","thing","this","thought",
42635 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42636 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42637 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42638 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42639 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42640 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42641 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42642 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42643 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42644 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42645 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42646 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42647 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42648 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42649 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42650 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42651 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42652 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42653 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42654 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42655 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42656 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42657 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42658 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42659 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42661 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42662 WORDLISTS["japanese"] = [
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 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42863 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42864 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42865 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42866 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42867 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42869 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42870 WORDLISTS["spanish"] = [
42871 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42872 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42873 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42874 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42875 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42876 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42877 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42878 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42879 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42880 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42881 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42882 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42883 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42884 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42885 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42886 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42887 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42888 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42889 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42890 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42891 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42892 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42893 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42894 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42895 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42896 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42897 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42898 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42899 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42900 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42901 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42902 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42903 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42904 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42905 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42906 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42907 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42908 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42909 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42910 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42911 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42912 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42913 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42914 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42915 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42916 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42917 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42918 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42919 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42920 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42921 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42922 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42923 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42924 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42925 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42926 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42927 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42928 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42929 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42930 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42931 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42932 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42933 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42934 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42935 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42936 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42937 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42938 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42939 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42940 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42941 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42942 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42943 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42944 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42945 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42946 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42947 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42948 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42949 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42950 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42951 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42952 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42953 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42954 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42955 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42956 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42957 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42958 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42959 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42960 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42961 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42962 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42963 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42964 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42965 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42966 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42967 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42968 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42969 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42970 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42971 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42972 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42973 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42974 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42975 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42976 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42977 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42978 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42979 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42980 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42981 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42982 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42983 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42984 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42985 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42986 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42987 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42988 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42989 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42990 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42991 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42992 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42993 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42994 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42995 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42996 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42997 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42998 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42999 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
43000 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
43001 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
43002 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
43003 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
43004 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
43005 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
43006 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
43007 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
43008 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
43009 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
43010 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
43011 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
43012 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
43013 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
43014 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
43015 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
43016 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
43017 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
43018 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
43019 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
43020 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
43021 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
43022 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
43023 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
43024 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
43025 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
43026 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
43027 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
43028 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
43029 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
43030 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
43031 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
43032 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
43033 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
43034 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
43035 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
43036 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
43037 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
43038 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
43039 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
43040 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
43041 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
43042 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
43043 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
43044 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
43045 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
43046 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
43047 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
43048 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
43049 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
43050 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
43051 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
43052 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
43053 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
43054 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
43055 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
43056 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
43057 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
43058 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
43059 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
43060 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
43061 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
43062 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
43063 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
43064 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
43065 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
43066 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
43067 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
43068 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
43069 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
43070 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
43071 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
43072 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
43073 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
43074 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
43075 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
43077 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43078 WORDLISTS["chinese_simplified"] = [
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 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43279 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43280 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43281 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43282 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43283 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43285 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43286 WORDLISTS["chinese_traditional"] = [
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 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43487 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43488 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43489 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43490 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43491 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43493 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43494 WORDLISTS["french"] = [
43495 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43496 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43497 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43498 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43499 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43500 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43501 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43502 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43503 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43504 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43505 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43506 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43507 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43508 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43509 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43510 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43511 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43512 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43513 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43514 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43515 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43516 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43517 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43518 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43519 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43520 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43521 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43522 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43523 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43524 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43525 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43526 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43527 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43528 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43529 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43530 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43531 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43532 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43533 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43534 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43535 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43536 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43537 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43538 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43539 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43540 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43541 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43542 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43543 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43544 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43545 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43546 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43547 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43548 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43549 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43550 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43551 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43552 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43553 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43554 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43555 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43556 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43557 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43558 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43559 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43560 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43561 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43562 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43563 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43564 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43565 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43566 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43567 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43568 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43569 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43570 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43571 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43572 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43573 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43574 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43575 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43576 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43577 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43578 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43579 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43580 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43581 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43582 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43583 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43584 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43585 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43586 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43587 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43588 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43589 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43590 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43591 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43592 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43593 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43594 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43595 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43596 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43597 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43598 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43599 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43600 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43601 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43602 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43603 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43604 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43605 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43606 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43607 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43608 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43609 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43610 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43611 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43612 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43613 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43614 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43615 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43616 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43617 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43618 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43619 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43620 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43621 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43622 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43623 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43624 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43625 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43626 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43627 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43628 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43629 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43630 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43631 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43632 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43633 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43634 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43635 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43636 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43637 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43638 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43639 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43640 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43641 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43642 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43643 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43644 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43645 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43646 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43647 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43648 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43649 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43650 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43651 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43652 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43653 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43654 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43655 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43656 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43657 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43658 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43659 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43660 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43661 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43662 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43663 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43664 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43665 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43666 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43667 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43668 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43669 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43670 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43671 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43672 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43673 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43674 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43675 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43676 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43677 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43678 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43679 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43680 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43681 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43682 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43683 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43684 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43685 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43686 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43687 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43688 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43689 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43690 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43691 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43692 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43693 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43694 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43695 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43696 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43697 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43698 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43699 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43701 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43702 WORDLISTS["italian"] = [
43703 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43704 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43705 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43706 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43707 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43708 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43709 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43710 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43711 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43712 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43713 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43714 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43715 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43716 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43717 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43718 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43719 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43720 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43721 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43722 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43723 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43724 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43725 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43726 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43727 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43728 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43729 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43730 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43731 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43732 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43733 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43734 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43735 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43736 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43737 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43738 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43739 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43740 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43741 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43742 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43743 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43744 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43745 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43746 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43747 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43748 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43749 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43750 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43751 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43752 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43753 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43754 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43755 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43756 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43757 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43758 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43759 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43760 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43761 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43762 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43763 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43764 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43765 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43766 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43767 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43768 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43769 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43770 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43771 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43772 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43773 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43774 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43775 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43776 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43777 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43778 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43779 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43780 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43781 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43782 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43783 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43784 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43785 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43786 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43787 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43788 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43789 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43790 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43791 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43792 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43793 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43794 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43795 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43796 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43797 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43798 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43799 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43800 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43801 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43802 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43803 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43804 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43805 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43806 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43807 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43808 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43809 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43810 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43811 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43812 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43813 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43814 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43815 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43816 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43817 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43818 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43819 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43820 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43821 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43822 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43823 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43824 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43825 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43826 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43827 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43828 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43829 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43830 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43831 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43832 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43833 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43834 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43835 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43836 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43837 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43838 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43839 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43840 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43841 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43842 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43843 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43844 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43845 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43846 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43847 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43848 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43849 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43850 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43851 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43852 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43853 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43854 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43855 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43856 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43857 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43858 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43859 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43860 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43861 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43862 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43863 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43864 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43865 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43866 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43867 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43868 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43869 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43870 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43871 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43872 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43873 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43874 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43875 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43876 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43877 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43878 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43879 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43880 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43881 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43882 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43883 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43884 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43885 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43886 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43887 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43888 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43889 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43890 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43891 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43892 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43893 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43894 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43895 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43896 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43897 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43898 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43899 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43900 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43901 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43902 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43903 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43904 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43905 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43906 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43907 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43910 * Copyright (c)
2013 Pavol Rusnak
43912 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43913 * this software and associated documentation files (the "Software"), to deal in
43914 * the Software without restriction, including without limitation the rights to
43915 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43916 * of the Software, and to permit persons to whom the Software is furnished to do
43917 * so, subject to the following conditions:
43919 * The above copyright notice and this permission notice shall be included in all
43920 * copies or substantial portions of the Software.
43922 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43923 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43924 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43925 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43926 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43927 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43931 * Javascript port from python by Ian Coleman
43933 * Requires code from sjcl
43934 * https://github.com/bitwiseshiftleft/sjcl
43937 var Mnemonic = function(language) {
43939 var PBKDF2_ROUNDS =
2048;
43945 var hmacSHA512 = function(key) {
43946 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43947 this.encrypt = function() {
43948 return hasher.encrypt.apply(hasher, arguments);
43953 wordlist = WORDLISTS[language];
43954 if (wordlist.length != RADIX) {
43955 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43960 self.generate = function(strength) {
43961 strength = strength ||
128;
43962 var r = strength %
32;
43964 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43966 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43967 if (!hasStrongCrypto) {
43968 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43970 var buffer = new Uint8Array(strength /
8);
43971 var data = crypto.getRandomValues(buffer);
43972 return self.toMnemonic(data);
43975 self.toMnemonic = function(byteArray) {
43976 if (byteArray.length %
4 > 0) {
43977 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43980 //h = hashlib.sha256(data).hexdigest()
43981 var data = byteArrayToWordArray(byteArray);
43982 var hash = sjcl.hash.sha256.hash(data);
43983 var h = sjcl.codec.hex.fromBits(hash);
43985 // b is a binary string, eg '
00111010101100...'
43986 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43987 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43989 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43990 // c = bin(int(h,
16))[
2:].zfill(
256)
43991 // d = c[:len(data) *
8 /
32]
43992 var a = byteArrayToBinaryString(byteArray);
43993 var c = zfill(hexStringToBinaryString(h),
256);
43994 var d = c.substring(
0, byteArray.length *
8 /
32);
43995 // b = line1 + line2
43999 var blen = b.length /
11;
44000 for (var i=
0; i
<blen; i++) {
44001 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
44002 result.push(wordlist[idx]);
44004 return self.joinWords(result);
44007 self.check = function(mnemonic) {
44008 var mnemonic = self.splitWords(mnemonic);
44009 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
44012 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
44014 for (var i=
0; i
<mnemonic.length; i++) {
44015 var word = mnemonic[i];
44016 var wordIndex = wordlist.indexOf(word);
44017 if (wordIndex == -
1) {
44020 var binaryIndex = zfill(wordIndex.toString(
2),
11);
44021 idx.push(binaryIndex);
44023 var b = idx.join('');
44025 //d = b[:l /
33 *
32]
44027 var d = b.substring(
0, l /
33 *
32);
44028 var h = b.substring(l - l /
33, l);
44029 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
44030 var nd = binaryStringToWordArray(d);
44031 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
44032 var ndHash = sjcl.hash.sha256.hash(nd);
44033 var ndHex = sjcl.codec.hex.fromBits(ndHash);
44034 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
44035 var nh = ndBstr.substring(
0,l/
33);
44039 self.toSeed = function(mnemonic, passphrase) {
44040 passphrase = passphrase || '';
44041 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
44042 var mnemonicNormalized = self.normalizeString(mnemonic);
44043 passphrase = self.normalizeString(passphrase)
44044 passphrase =
"mnemonic" + passphrase;
44045 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
44046 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
44047 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
44048 var hashHex = sjcl.codec.hex.fromBits(result);
44052 self.splitWords = function(mnemonic) {
44053 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
44056 self.joinWords = function(words) {
44057 // Set space correctly depending on the language
44058 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
44060 if (language ==
"japanese") {
44061 space =
"\u3000"; // ideographic space
44063 return words.join(space);
44066 self.normalizeString = function(str) {
44067 if (typeof str.normalize ==
"function") {
44068 return str.normalize(
"NFKD");
44071 // TODO decide how to handle this in the future.
44072 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
44077 function byteArrayToWordArray(data) {
44079 for (var i=
0; i
<data.length/
4; i++) {
44081 v += data[i*
4 +
0] <<
8 *
3;
44082 v += data[i*
4 +
1] <<
8 *
2;
44083 v += data[i*
4 +
2] <<
8 *
1;
44084 v += data[i*
4 +
3] <<
8 *
0;
44090 function byteArrayToBinaryString(data) {
44092 for (var i=
0; i
<data.length; i++) {
44093 bin += zfill(data[i].toString(
2),
8);
44098 function hexStringToBinaryString(hexString) {
44100 for (var i=
0; i
<hexString.length; i++) {
44101 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
44103 return binaryString;
44106 function binaryStringToWordArray(binary) {
44107 var aLen = binary.length /
32;
44109 for (var i=
0; i
<aLen; i++) {
44110 var valueStr = binary.substring(
0,
32);
44111 var value = parseInt(valueStr,
2);
44113 binary = binary.slice(
32);
44118 // Pad a numeric string on the left with zero digits until the given width
44120 // Note this differs to the python implementation because it does not
44121 // handle numbers starting with a sign.
44122 function zfill(source, length) {
44123 source = source.toString();
44124 while (source.length < length) {
44125 source = '
0' + source;
44135 JavaScript BigInteger library version
0.9.1
44136 http://silentmatt.com/biginteger/
44138 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44139 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44140 Licensed under the MIT license.
44142 Support for arbitrary internal representation base was added by
44147 File: biginteger.js
44153 (function(exports) {
44157 An arbitrarily-large integer.
44159 <BigInteger> objects should be considered immutable. None of the "built-in"
44160 methods modify *this* or their arguments. All properties should be
44161 considered private.
44163 All the methods of
<BigInteger> instances can be called "statically". The
44164 static versions are convenient if you don't already have a
<BigInteger>
44167 As an example, these calls are equivalent.
44169 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44170 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44173 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44176 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44179 Constructor: BigInteger()
44180 Convert a value to a
<BigInteger>.
44182 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44183 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44184 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44185 without a radix argument.
44187 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44188 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44189 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44190 > var n3 = BigInteger(n2); // Return n2, unchanged
44192 The constructor form only takes an array and a sign. *n* must be an
44193 array of numbers in little-endian order, where each digit is between
0
44194 and BigInteger.base. The second parameter sets the sign: -
1 for
44195 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44196 may be modified*. If the array contains only zeros, the sign parameter
44197 is ignored and is forced to zero.
44199 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44203 n - Value to convert to a
<BigInteger>.
44207 A
<BigInteger> value.
44211 <parse>,
<BigInteger>
44213 function BigInteger(n, s, token) {
44214 if (token !== CONSTRUCT) {
44215 if (n instanceof BigInteger) {
44218 else if (typeof n === "undefined") {
44221 return BigInteger.parse(n);
44224 n = n || []; // Provide the nullary constructor for subclasses.
44225 while (n.length && !n[n.length -
1]) {
44229 this._s = n.length ? (s ||
1) :
0;
44232 BigInteger._construct = function(n, s) {
44233 return new BigInteger(n, s, CONSTRUCT);
44236 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44237 // require base to be a power of
10.
10^
7 is the largest such power
44238 // that won't cause a precision loss when digits are multiplied.
44239 var BigInteger_base =
10000000;
44240 var BigInteger_base_log10 =
7;
44242 BigInteger.base = BigInteger_base;
44243 BigInteger.base_log10 = BigInteger_base_log10;
44245 var ZERO = new BigInteger([],
0, CONSTRUCT);
44248 BigInteger.ZERO = ZERO;
44250 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44253 BigInteger.ONE = ONE;
44255 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44257 //
<BigInteger> -
1.
44258 BigInteger.M_ONE = M_ONE;
44261 // Shortcut for
<ZERO>.
44262 BigInteger._0 = ZERO;
44265 // Shortcut for
<ONE>.
44266 BigInteger._1 = ONE;
44270 Array of
<BigIntegers> from
0 to
36.
44272 These are used internally for parsing, but useful when you need a "small"
44277 <ZERO>,
<ONE>,
<_0>,
<_1>
44279 BigInteger.small = [
44282 /* Assuming BigInteger_base
> 36 */
44283 new BigInteger( [
2],
1, CONSTRUCT),
44284 new BigInteger( [
3],
1, CONSTRUCT),
44285 new BigInteger( [
4],
1, CONSTRUCT),
44286 new BigInteger( [
5],
1, CONSTRUCT),
44287 new BigInteger( [
6],
1, CONSTRUCT),
44288 new BigInteger( [
7],
1, CONSTRUCT),
44289 new BigInteger( [
8],
1, CONSTRUCT),
44290 new BigInteger( [
9],
1, CONSTRUCT),
44291 new BigInteger([
10],
1, CONSTRUCT),
44292 new BigInteger([
11],
1, CONSTRUCT),
44293 new BigInteger([
12],
1, CONSTRUCT),
44294 new BigInteger([
13],
1, CONSTRUCT),
44295 new BigInteger([
14],
1, CONSTRUCT),
44296 new BigInteger([
15],
1, CONSTRUCT),
44297 new BigInteger([
16],
1, CONSTRUCT),
44298 new BigInteger([
17],
1, CONSTRUCT),
44299 new BigInteger([
18],
1, CONSTRUCT),
44300 new BigInteger([
19],
1, CONSTRUCT),
44301 new BigInteger([
20],
1, CONSTRUCT),
44302 new BigInteger([
21],
1, CONSTRUCT),
44303 new BigInteger([
22],
1, CONSTRUCT),
44304 new BigInteger([
23],
1, CONSTRUCT),
44305 new BigInteger([
24],
1, CONSTRUCT),
44306 new BigInteger([
25],
1, CONSTRUCT),
44307 new BigInteger([
26],
1, CONSTRUCT),
44308 new BigInteger([
27],
1, CONSTRUCT),
44309 new BigInteger([
28],
1, CONSTRUCT),
44310 new BigInteger([
29],
1, CONSTRUCT),
44311 new BigInteger([
30],
1, CONSTRUCT),
44312 new BigInteger([
31],
1, CONSTRUCT),
44313 new BigInteger([
32],
1, CONSTRUCT),
44314 new BigInteger([
33],
1, CONSTRUCT),
44315 new BigInteger([
34],
1, CONSTRUCT),
44316 new BigInteger([
35],
1, CONSTRUCT),
44317 new BigInteger([
36],
1, CONSTRUCT)
44320 // Used for parsing/radix conversion
44321 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44325 Convert a
<BigInteger> to a string.
44327 When *base* is greater than
10, letters are upper case.
44331 base - Optional base to represent the number in (default is base
10).
44332 Must be between
2 and
36 inclusive, or an Error will be thrown.
44336 The string representation of the
<BigInteger>.
44338 BigInteger.prototype.toString = function(base) {
44339 base = +base ||
10;
44340 if (base <
2 || base
> 36) {
44341 throw new Error(
"illegal radix " + base +
".");
44343 if (this._s ===
0) {
44347 var str = this._s <
0 ?
"-" :
"";
44348 str += this._d[this._d.length -
1].toString();
44349 for (var i = this._d.length -
2; i
>=
0; i--) {
44350 var group = this._d[i].toString();
44351 while (group.length < BigInteger_base_log10) group = '
0' + group;
44357 var numerals = BigInteger.digits;
44358 base = BigInteger.small[base];
44359 var sign = this._s;
44361 var n = this.abs();
44365 while (n._s !==
0) {
44366 var divmod = n.divRem(base);
44369 // TODO: This could be changed to unshift instead of reversing at the end.
44370 // Benchmark both to compare speeds.
44371 digits.push(numerals[digit.valueOf()]);
44373 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44377 // Verify strings for parsing
44378 BigInteger.radixRegex = [
44420 Parse a string into a
<BigInteger>.
44422 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44423 *base* is not provided, it will be guessed based on the leading characters
44426 - "
0x" or "
0X": *base* =
16
44427 - "
0c" or "
0C": *base* =
8
44428 - "
0b" or "
0B": *base* =
2
44429 - else: *base* =
10
44431 If no base is provided, or *base* is
10, the number can be in exponential
44432 form. For example, these are all valid:
44434 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44435 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44436 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44438 If any characters fall outside the range defined by the radix, an exception
44443 s - The string to parse.
44444 base - Optional radix (default is to guess based on *s*).
44448 a
<BigInteger> instance.
44450 BigInteger.parse = function(s, base) {
44451 // Expands a number in exponential form to decimal form.
44452 // expandExponential("-
13.441*
10^
5") === "
1344100";
44453 // expandExponential("
1.12300e-1") === "
0.112300";
44454 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44455 function expandExponential(str) {
44456 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44458 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44461 var i = n.length + c;
44462 x = (l ? n : f).length;
44463 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44464 var z = (new Array(c +
1)).join("
0");
44466 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44471 if (typeof base === "undefined" || +base ===
10) {
44472 s = expandExponential(s);
44476 if (typeof base === "undefined") {
44477 prefixRE = '
0[xcb]';
44479 else if (base ==
16) {
44482 else if (base ==
8) {
44485 else if (base ==
2) {
44491 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44493 var sign = parts[
1] || "+";
44494 var baseSection = parts[
2] || "";
44495 var digits = parts[
3] || "";
44497 if (typeof base === "undefined") {
44499 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44502 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44505 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44512 else if (base <
2 || base
> 36) {
44513 throw new Error(
"Illegal radix " + base +
".");
44518 // Check for digits outside the range
44519 if (!(BigInteger.radixRegex[base].test(digits))) {
44520 throw new Error(
"Bad digit for radix " + base);
44523 // Strip leading zeros, and convert to array
44524 digits = digits.replace(/^
0+/,
"").split(
"");
44525 if (digits.length ===
0) {
44529 // Get the sign (we know it's not zero)
44530 sign = (sign ===
"-") ? -
1 :
1;
44535 while (digits.length
>= BigInteger_base_log10) {
44536 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44538 d.push(parseInt(digits.join(''),
10));
44539 return new BigInteger(d, sign, CONSTRUCT);
44542 // Do the conversion
44544 base = BigInteger.small[base];
44545 var small = BigInteger.small;
44546 for (var i =
0; i < digits.length; i++) {
44547 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44549 return new BigInteger(d._d, sign, CONSTRUCT);
44552 throw new Error("Invalid BigInteger format: " + s);
44558 Add two
<BigIntegers>.
44562 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44566 The numbers added together.
44570 <subtract>,
<multiply>,
<quotient>,
<next>
44572 BigInteger.prototype.add = function(n) {
44573 if (this._s ===
0) {
44574 return BigInteger(n);
44581 if (this._s !== n._s) {
44583 return this.subtract(n);
44590 var sum = new Array(Math.max(al, bl) +
1);
44591 var size = Math.min(al, bl);
44595 for (var i =
0; i < size; i++) {
44596 digit = a[i] + b[i] + carry;
44597 sum[i] = digit % BigInteger_base;
44598 carry = (digit / BigInteger_base) |
0;
44604 for (i = size; carry && i < al; i++) {
44605 digit = a[i] + carry;
44606 sum[i] = digit % BigInteger_base;
44607 carry = (digit / BigInteger_base) |
0;
44613 for ( ; i < al; i++) {
44617 return new BigInteger(sum, this._s, CONSTRUCT);
44622 Get the additive inverse of a
<BigInteger>.
44626 A
<BigInteger> with the same magnatude, but with the opposite sign.
44632 BigInteger.prototype.negate = function() {
44633 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44638 Get the absolute value of a
<BigInteger>.
44642 A
<BigInteger> with the same magnatude, but always positive (or zero).
44648 BigInteger.prototype.abs = function() {
44649 return (this._s <
0) ? this.negate() : this;
44654 Subtract two
<BigIntegers>.
44658 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44662 The *n* subtracted from *this*.
44666 <add>,
<multiply>,
<quotient>,
<prev>
44668 BigInteger.prototype.subtract = function(n) {
44669 if (this._s ===
0) {
44670 return BigInteger(n).negate();
44677 if (this._s !== n._s) {
44679 return this.add(n);
44683 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44685 m = new BigInteger(n._d,
1, CONSTRUCT);
44686 n = new BigInteger(this._d,
1, CONSTRUCT);
44689 // Both are positive =
> a - b
44690 var sign = m.compareAbs(n);
44694 else if (sign <
0) {
44706 var diff = new Array(al); // al
>= bl since a
> b
44711 for (i =
0; i < bl; i++) {
44712 digit = a[i] - borrow - b[i];
44714 digit += BigInteger_base;
44722 for (i = bl; i < al; i++) {
44723 digit = a[i] - borrow;
44725 digit += BigInteger_base;
44733 for ( ; i < al; i++) {
44737 return new BigInteger(diff, sign, CONSTRUCT);
44741 function addOne(n, sign) {
44743 var sum = a.slice();
44748 var digit = (a[i] ||
0) +
1;
44749 sum[i] = digit % BigInteger_base;
44750 if (digit <= BigInteger_base -
1) {
44756 return new BigInteger(sum, sign, CONSTRUCT);
44759 function subtractOne(n, sign) {
44761 var sum = a.slice();
44766 var digit = (a[i] ||
0) -
1;
44768 sum[i] = digit + BigInteger_base;
44777 return new BigInteger(sum, sign, CONSTRUCT);
44782 Get the next
<BigInteger> (add one).
44792 BigInteger.prototype.next = function() {
44797 return subtractOne(this, -
1);
44800 return addOne(this,
1);
44806 Get the previous
<BigInteger> (subtract one).
44816 BigInteger.prototype.prev = function() {
44821 return addOne(this, -
1);
44824 return subtractOne(this,
1);
44830 Function: compareAbs
44831 Compare the absolute value of two
<BigIntegers>.
44833 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44837 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44841 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44847 BigInteger.prototype.compareAbs = function(n) {
44852 if (!(n instanceof BigInteger)) {
44853 if (!isFinite(n)) {
44854 return(isNaN(n) ? n : -
1);
44859 if (this._s ===
0) {
44860 return (n._s !==
0) ? -
1 :
0;
44866 var l = this._d.length;
44867 var nl = n._d.length;
44877 for (var i = l-
1; i
>=
0; i--) {
44878 if (a[i] !== b[i]) {
44879 return a[i] < b[i] ? -
1 :
1;
44888 Compare two
<BigIntegers>.
44892 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44896 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44900 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44902 BigInteger.prototype.compare = function(n) {
44909 if (this._s ===
0) {
44913 if (this._s === n._s) { // both positive or both negative
44914 var cmp = this.compareAbs(n);
44915 return cmp * this._s;
44924 Return true iff *this* is either
1 or -
1.
44928 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44932 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44933 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44935 BigInteger.prototype.isUnit = function() {
44936 return this === ONE ||
44938 (this._d.length ===
1 && this._d[
0] ===
1);
44943 Multiply two
<BigIntegers>.
44947 n - The number to multiply *this* by. Will be converted to a
44952 The numbers multiplied together.
44956 <add>,
<subtract>,
<quotient>,
<square>
44958 BigInteger.prototype.multiply = function(n) {
44959 // TODO: Consider adding Karatsuba multiplication for large numbers
44960 if (this._s ===
0) {
44968 if (this.isUnit()) {
44976 return this.negate();
44981 return this.square();
44984 var r = (this._d.length
>= n._d.length);
44985 var a = (r ? this : n)._d; // a will be longer than b
44986 var b = (r ? n : this)._d;
44991 var partial = new Array(pl);
44993 for (i =
0; i < pl; i++) {
44997 for (i =
0; i < bl; i++) {
45000 var jlimit = al + i;
45002 for (var j = i; j < jlimit; j++) {
45003 digit = partial[j] + bi * a[j - i] + carry;
45004 carry = (digit / BigInteger_base) |
0;
45005 partial[j] = (digit % BigInteger_base) |
0;
45008 digit = partial[j] + carry;
45009 carry = (digit / BigInteger_base) |
0;
45010 partial[j] = digit % BigInteger_base;
45013 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
45016 // Multiply a BigInteger by a single-digit native number
45017 // Assumes that this and n are
>=
0
45018 // This is not really intended to be used outside the library itself
45019 BigInteger.prototype.multiplySingleDigit = function(n) {
45020 if (n ===
0 || this._s ===
0) {
45028 if (this._d.length ===
1) {
45029 digit = this._d[
0] * n;
45030 if (digit
>= BigInteger_base) {
45031 return new BigInteger([(digit % BigInteger_base)|
0,
45032 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
45034 return new BigInteger([digit],
1, CONSTRUCT);
45038 return this.add(this);
45040 if (this.isUnit()) {
45041 return new BigInteger([n],
1, CONSTRUCT);
45048 var partial = new Array(pl);
45049 for (var i =
0; i < pl; i++) {
45054 for (var j =
0; j < al; j++) {
45055 digit = n * a[j] + carry;
45056 carry = (digit / BigInteger_base) |
0;
45057 partial[j] = (digit % BigInteger_base) |
0;
45060 partial[j] = carry;
45063 return new BigInteger(partial,
1, CONSTRUCT);
45068 Multiply a
<BigInteger> by itself.
45070 This is slightly faster than regular multiplication, since it removes the
45071 duplicated multiplcations.
45075 > this.multiply(this)
45080 BigInteger.prototype.square = function() {
45081 // Normally, squaring a
10-digit number would take
100 multiplications.
45082 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
45083 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
45084 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
45086 if (this._s ===
0) {
45089 if (this.isUnit()) {
45093 var digits = this._d;
45094 var length = digits.length;
45095 var imult1 = new Array(length + length +
1);
45096 var product, carry, k;
45099 // Calculate diagonal
45100 for (i =
0; i < length; i++) {
45102 product = digits[i] * digits[i];
45103 carry = (product / BigInteger_base) |
0;
45104 imult1[k] = product % BigInteger_base;
45105 imult1[k +
1] = carry;
45108 // Calculate repeating part
45109 for (i =
0; i < length; i++) {
45112 for (var j = i +
1; j < length; j++, k++) {
45113 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
45114 carry = (product / BigInteger_base) |
0;
45115 imult1[k] = product % BigInteger_base;
45118 var digit = carry + imult1[k];
45119 carry = (digit / BigInteger_base) |
0;
45120 imult1[k] = digit % BigInteger_base;
45121 imult1[k +
1] += carry;
45124 return new BigInteger(imult1,
1, CONSTRUCT);
45129 Divide two
<BigIntegers> and truncate towards zero.
45131 <quotient> throws an exception if *n* is zero.
45135 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45139 The *this* / *n*, truncated to an integer.
45143 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45145 BigInteger.prototype.quotient = function(n) {
45146 return this.divRem(n)[
0];
45151 Deprecated synonym for
<quotient>.
45153 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45156 Function: remainder
45157 Calculate the remainder of two
<BigIntegers>.
45159 <remainder> throws an exception if *n* is zero.
45163 n - The remainder after *this* is divided *this* by *n*. Will be
45164 converted to a
<BigInteger>.
45172 <divRem>,
<quotient>
45174 BigInteger.prototype.remainder = function(n) {
45175 return this.divRem(n)[
1];
45180 Calculate the integer quotient and remainder of two
<BigIntegers>.
45182 <divRem> throws an exception if *n* is zero.
45186 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45190 A two-element array containing the quotient and the remainder.
45194 is exactly equivalent to
45196 > [a.quotient(b), a.remainder(b)]
45198 except it is faster, because they are calculated at the same time.
45202 <quotient>,
<remainder>
45204 BigInteger.prototype.divRem = function(n) {
45207 throw new Error("Divide by zero");
45209 if (this._s ===
0) {
45210 return [ZERO, ZERO];
45212 if (n._d.length ===
1) {
45213 return this.divRemSmall(n._s * n._d[
0]);
45216 // Test for easy cases -- |n1| <= |n2|
45217 switch (this.compareAbs(n)) {
45218 case
0: // n1 == n2
45219 return [this._s === n._s ? ONE : M_ONE, ZERO];
45220 case -
1: // |n1| < |n2|
45221 return [ZERO, this];
45224 var sign = this._s * n._s;
45226 var b_digits = this._d;
45227 var b_index = b_digits.length;
45228 var digits = n._d.length;
45232 var part = new BigInteger([],
0, CONSTRUCT);
45235 part._d.unshift(b_digits[--b_index]);
45236 part = new BigInteger(part._d,
1, CONSTRUCT);
45238 if (part.compareAbs(n) <
0) {
45242 if (part._s ===
0) {
45246 var xlen = part._d.length, ylen = a._d.length;
45247 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45248 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45249 if (part._d.length
> a._d.length) {
45250 // The length of part._d can either match a._d length,
45251 // or exceed it by one.
45252 highx = (highx+
1)*BigInteger_base;
45254 guess = Math.ceil(highx/highy);
45257 var check = a.multiplySingleDigit(guess);
45258 if (check.compareAbs(part) <=
0) {
45268 var diff = part.subtract(check);
45269 part._d = diff._d.slice();
45272 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45273 new BigInteger(part._d, this._s, CONSTRUCT)];
45276 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45277 // [
1, BigInteger.base). It's not necessary to call this, since the
45278 // other division functions will call it if they are able to.
45279 BigInteger.prototype.divRemSmall = function(n) {
45283 throw new Error("Divide by zero");
45286 var n_s = n <
0 ? -
1 :
1;
45287 var sign = this._s * n_s;
45290 if (n <
1 || n
>= BigInteger_base) {
45291 throw new Error("Argument out of range");
45294 if (this._s ===
0) {
45295 return [ZERO, ZERO];
45298 if (n ===
1 || n === -
1) {
45299 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45302 //
2 <= n < BigInteger_base
45304 // divide a single digit by a single digit
45305 if (this._d.length ===
1) {
45306 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45307 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45317 var digits = this._d.slice();
45318 var quot = new Array(digits.length);
45324 while (digits.length) {
45325 part = part * BigInteger_base + digits[digits.length -
1];
45329 diff = BigInteger_base * diff + part;
45336 guess = (part / n) |
0;
45339 var check = n * guess;
45340 diff = part - check;
45351 r = new BigInteger([diff],
1, CONSTRUCT);
45355 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45360 Return true iff *this* is divisible by two.
45362 Note that
<BigInteger.ZERO
> is even.
45366 true if *this* is even, false otherwise.
45372 BigInteger.prototype.isEven = function() {
45373 var digits = this._d;
45374 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45379 Return true iff *this* is not divisible by two.
45383 true if *this* is odd, false otherwise.
45389 BigInteger.prototype.isOdd = function() {
45390 return !this.isEven();
45395 Get the sign of a
<BigInteger>.
45405 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45407 BigInteger.prototype.sign = function() {
45412 Function: isPositive
45413 Return true iff *this*
> 0.
45417 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45421 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45423 BigInteger.prototype.isPositive = function() {
45424 return this._s
> 0;
45428 Function: isNegative
45429 Return true iff *this* <
0.
45433 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45437 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45439 BigInteger.prototype.isNegative = function() {
45440 return this._s <
0;
45445 Return true iff *this* ==
0.
45449 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45453 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45455 BigInteger.prototype.isZero = function() {
45456 return this._s ===
0;
45461 Multiply a
<BigInteger> by a power of
10.
45463 This is equivalent to, but faster than
45466 > return this.multiply(BigInteger("
1e" + n));
45469 > return this.quotient(BigInteger("
1e" + -n));
45474 n - The power of
10 to multiply *this* by. *n* is converted to a
45475 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45476 (
0x7FFFFFFF), or an exception will be thrown.
45480 *this* * (
10 ** *n*), truncated to an integer if necessary.
45486 BigInteger.prototype.exp10 = function(n) {
45491 if (Math.abs(n)
> Number(MAX_EXP)) {
45492 throw new Error("exponent too large in BigInteger.exp10");
45494 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45495 if (this._s ===
0) {
45499 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45501 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45507 k = k.multiplySingleDigit(Math.pow(
10, n));
45508 return (this._s <
0 ? k.negate() : k);
45509 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45512 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45514 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45517 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45523 Raise a
<BigInteger> to a power.
45525 In this implementation,
0**
0 is
1.
45529 n - The exponent to raise *this* by. *n* must be no greater than
45530 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45534 *this* raised to the *nth* power.
45540 BigInteger.prototype.pow = function(n) {
45541 if (this.isUnit()) {
45546 return BigInteger(n).isOdd() ? this : this.negate();
45554 else if (n._s <
0) {
45555 if (this._s ===
0) {
45556 throw new Error(
"Divide by zero");
45562 if (this._s ===
0) {
45569 if (n.compareAbs(MAX_EXP)
> 0) {
45570 throw new Error(
"exponent too large in BigInteger.pow");
45574 var two = BigInteger.small[
2];
45576 while (n.isPositive()) {
45578 aux = aux.multiply(x);
45584 n = n.quotient(two);
45592 Raise a
<BigInteger> to a power (mod m).
45594 Because it is reduced by a modulus,
<modPow> is not limited by
45595 <BigInteger.MAX_EXP
> like
<pow>.
45599 exponent - The exponent to raise *this* by. Must be positive.
45600 modulus - The modulus.
45604 *this* ^ *exponent* (mod *modulus*).
45610 BigInteger.prototype.modPow = function(exponent, modulus) {
45614 while (exponent.isPositive()) {
45615 if (exponent.isOdd()) {
45616 result = result.multiply(base).remainder(modulus);
45619 exponent = exponent.quotient(BigInteger.small[
2]);
45620 if (exponent.isPositive()) {
45621 base = base.square().remainder(modulus);
45630 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45632 This is equivalent to
45634 > Math.log(this.toJSValue())
45636 but handles values outside of the native number range.
45646 BigInteger.prototype.log = function() {
45648 case
0: return -Infinity;
45649 case -
1: return NaN;
45650 default: // Fall through.
45653 var l = this._d.length;
45655 if (l*BigInteger_base_log10 <
30) {
45656 return Math.log(this.valueOf());
45659 var N = Math.ceil(
30/BigInteger_base_log10);
45660 var firstNdigits = this._d.slice(l - N);
45661 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45666 Convert a
<BigInteger> to a native JavaScript integer.
45668 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45673 > parseInt(this.toString(),
10)
45677 <toString>,
<toJSValue>
45679 BigInteger.prototype.valueOf = function() {
45680 return parseInt(this.toString(),
10);
45684 Function: toJSValue
45685 Convert a
<BigInteger> to a native JavaScript integer.
45687 This is the same as valueOf, but more explicitly named.
45691 > parseInt(this.toString(),
10)
45695 <toString>,
<valueOf>
45697 BigInteger.prototype.toJSValue = function() {
45698 return parseInt(this.toString(),
10);
45701 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45702 // Constant: MAX_EXP
45703 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45704 BigInteger.MAX_EXP = MAX_EXP;
45707 function makeUnary(fn) {
45708 return function(a) {
45709 return fn.call(BigInteger(a));
45713 function makeBinary(fn) {
45714 return function(a, b) {
45715 return fn.call(BigInteger(a), BigInteger(b));
45719 function makeTrinary(fn) {
45720 return function(a, b, c) {
45721 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45727 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45728 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45729 var trinary = ["modPow"];
45731 for (i =
0; i < unary.length; i++) {
45733 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45736 for (i =
0; i < binary.length; i++) {
45738 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45741 for (i =
0; i < trinary.length; i++) {
45743 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45746 BigInteger.exp10 = function(x, n) {
45747 return BigInteger(x).exp10(n);
45752 exports.BigInteger = BigInteger;
45753 })(typeof exports !== 'undefined' ? exports : this);
45755 <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){
45756 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;
45758 },{}],
2:[function(require,module,exports){
45759 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;
45761 },{"./scoring":
6}],
3:[function(require,module,exports){
45762 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(","),
45763 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(","),
45764 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(","),
45765 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(","),
45766 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;
45768 },{}],
4:[function(require,module,exports){
45769 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;
45771 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45772 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;
45774 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45775 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;
45777 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45778 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;
45785 * Detects entropy from a string.
45792 * hexadecimal [
0-
9A-F]
45793 * card [A2-
9TJQK][CDHS]
45795 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45796 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45800 window.Entropy = new (function() {
45802 var TWO = new BigInteger(
2);
45804 // matchers returns an array of the matched events for each type of entropy.
45806 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45807 // matchers.binary("a10") returns ["
1", "
0"]
45808 // matchers.hex("a10") returns ["a", "
1", "
0"]
45810 binary: function(str) {
45811 return str.match(/[
0-
1]/gi) || [];
45813 base6: function(str) {
45814 return str.match(/[
0-
5]/gi) || [];
45816 dice: function(str) {
45817 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45819 base10: function(str) {
45820 return str.match(/[
0-
9]/gi) || [];
45822 hex: function(str) {
45823 return str.match(/[
0-
9A-F]/gi) || [];
45825 card: function(str) {
45826 // Format is NumberSuit, eg
45827 // AH ace of hearts
45828 //
8C eight of clubs
45829 // TD ten of diamonds
45830 // JS jack of spades
45831 // QH queen of hearts
45832 // KC king of clubs
45833 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45837 // Convert array of cards from ["ac", "
4d", "ks"]
45838 // to numbers between
0 and
51 [
0,
16,
51]
45839 function convertCardsToInts(cards) {
45841 var values = "a23456789tjqk";
45842 var suits = "cdhs";
45843 for (var i=
0; i
<cards.length; i++) {
45844 var card = cards[i].toLowerCase();
45845 var value = card[
0];
45846 var suit = card[
1];
45847 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45853 this.fromString = function(rawEntropyStr) {
45854 // Find type of entropy being used (binary, hex, dice etc)
45855 var base = getBase(rawEntropyStr);
45856 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45857 // This is done by changing all
6s to
0s
45858 if (base.str ==
"dice") {
45861 for (var i=
0; i
<base.parts.length; i++) {
45862 var c = base.parts[i];
45863 if (
"12345".indexOf(c)
> -
1) {
45864 newParts[i] = base.parts[i];
45865 newInts[i] = base.ints[i];
45872 base.str = "base
6 (dice)";
45873 base.ints = newInts;
45874 base.parts = newParts;
45875 base.matcher = matchers.base6;
45877 // Detect empty entropy
45878 if (base.parts.length ==
0) {
45886 // Convert base.ints to BigInteger.
45887 // Due to using unusual bases, eg cards of base52, this is not as simple as
45888 // using BigInteger.parse()
45889 var entropyInt = BigInteger.ZERO;
45890 for (var i=base.ints.length-
1; i
>=
0; i--) {
45891 var thisInt = BigInteger.parse(base.ints[i]);
45892 var power = (base.ints.length -
1) - i;
45893 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45894 entropyInt = entropyInt.add(additionalEntropy);
45896 // Convert entropy to binary
45897 var entropyBin = entropyInt.toString(
2);
45898 // If the first integer is small, it must be padded with zeros.
45899 // Otherwise the chance of the first bit being
1 is
100%, which is
45900 // obviously incorrect.
45901 // This is not perfect for non-
2^n bases.
45902 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45903 while (entropyBin.length < expectedBits) {
45904 entropyBin = "
0" + entropyBin;
45906 // Calculate the number of bits per event
45907 var bitsPerEvent = Math.log2(base.asInt);
45908 // Cards binary must be handled differently, since they're not replaced
45909 if (base.asInt ==
52) {
45910 var cardEntropy = processCardEntropy(base.parts);
45911 entropyBin = cardEntropy.binaryStr;
45912 bitsPerEvent = cardEntropy.bitsPerEvent;
45914 // Supply a 'filtered' entropy string for display purposes
45915 var entropyClean = base.parts.join("");
45916 var entropyHtml = base.parts.join("");
45917 if (base.asInt ==
52) {
45918 entropyClean = base.parts.join(" ").toUpperCase();
45919 entropyClean = entropyClean.replace(/C/g, "\u2663");
45920 entropyClean = entropyClean.replace(/D/g, "\u2666");
45921 entropyClean = entropyClean.replace(/H/g, "\u2665");
45922 entropyClean = entropyClean.replace(/S/g, "\u2660");
45923 entropyHtml = base.parts.join(" ").toUpperCase();
45924 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45925 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45926 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45927 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45929 // Return the result
45931 binaryStr: entropyBin,
45932 cleanStr: entropyClean,
45933 cleanHtml: entropyHtml,
45934 bitsPerEvent: bitsPerEvent,
45940 function getSortedDeck() {
45942 var suits = "CDHS
";
45943 var values = "A23456789TJQK
";
45944 for (var i=0; i<suits.length; i++) {
45945 for (var j=0; j<values.length; j++) {
45946 s.push(values[j]+suits[i]);
45952 function getBase(str) {
45953 // Need to get the lowest base for the supplied entropy.
45954 // This prevents interpreting, say, dice rolls as hexadecimal.
45955 var binaryMatches = matchers.binary(str);
45956 var hexMatches = matchers.hex(str);
45957 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45958 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45959 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45962 parts: binaryMatches,
45963 matcher: matchers.binary,
45968 var cardMatches = matchers.card(str);
45969 if (cardMatches.length >= hexMatches.length / 2) {
45970 var ints = convertCardsToInts(cardMatches);
45973 parts: cardMatches,
45974 matcher: matchers.card,
45979 var diceMatches = matchers.dice(str);
45980 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45981 var ints = diceMatches.map(function(i) { return parseInt(i) });
45984 parts: diceMatches,
45985 matcher: matchers.dice,
45990 var base6Matches = matchers.base6(str);
45991 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45992 var ints = base6Matches.map(function(i) { return parseInt(i) });
45995 parts: base6Matches,
45996 matcher: matchers.base6,
46001 var base10Matches = matchers.base10(str);
46002 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
46003 var ints = base10Matches.map(function(i) { return parseInt(i) });
46006 parts: base10Matches,
46007 matcher: matchers.base10,
46012 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
46016 matcher: matchers.hex,
46018 str:
"hexadecimal",
46022 // Assume cards are NOT replaced.
46023 // Additional entropy decreases as more cards are used. This means
46024 // total possible entropy is measured using n!, not base^n.
46025 // eg the second last card can be only one of two, not one of fifty two
46026 // so the added entropy for that card is only one bit at most
46027 function processCardEntropy(cards) {
46028 // Track how many instances of each card have been used, and thus
46029 // how many decks are in use.
46030 var cardCounts = {};
46031 var numberOfDecks =
0;
46032 // Work out number of decks by max(duplicates)
46033 for (var i=
0; i
<cards.length; i++) {
46034 // Get the card that was drawn
46035 var cardLower = cards[i];
46036 var card = cardLower.toUpperCase();
46037 // Initialize the count for this card if needed
46038 if (!(card in cardCounts)) {
46039 cardCounts[card] =
0;
46041 cardCounts[card] +=
1;
46042 // See if this is max(duplicates)
46043 if (cardCounts[card]
> numberOfDecks) {
46044 numberOfDecks = cardCounts[card];
46047 // Work out the total number of bits for this many decks
46048 // See http://crypto.stackexchange.com/q/
41886
46049 var gainedBits =
0;
46050 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
46051 // which becomes infinity for numberOfDecks
> 4
46052 for (var i=
1; i<=
52*numberOfDecks; i++) {
46053 gainedBits = gainedBits + Math.log2(i);
46055 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
46056 var maxBits = gainedBits - lostBits;
46057 // Convert the drawn cards to a binary representation.
46058 // The exact technique for doing this is unclear.
46060 // http://crypto.stackexchange.com/a/
41896
46061 //
"I even doubt that this is well defined (only the average entropy
46062 // is, I believe)."
46064 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
46065 //
"The binary representation can be the first log(permutations,2) bits
46066 // of the sha-2 hash of the normalized deck string."
46068 // In this specific implementation, the first N bits of the hash of the
46069 // normalized cards string is being used. Uppercase, no spaces; eg
46070 // sha256(
"AH8DQSTC2H")
46071 var totalCards = numberOfDecks *
52;
46072 var percentUsed = cards.length / totalCards;
46073 // Calculate the average number of bits of entropy for the number of
46075 var numberOfBits = Math.floor(maxBits * percentUsed);
46076 // Create a normalized string of the selected cards
46077 var normalizedCards = cards.join(
"").toUpperCase();
46078 // Convert to binary using the SHA256 hash of the normalized cards.
46079 // If the number of bits is more than
256, multiple hashes
46080 // are used until the required number of bits is reached.
46081 var entropyBin =
"";
46082 var iterations =
0;
46083 while (entropyBin.length < numberOfBits) {
46084 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
46085 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
46086 for (var i=
0; i
<hashHex.length; i++) {
46087 var decimal = parseInt(hashHex[i],
16);
46088 var binary = decimal.toString(
2);
46089 while (binary.length <
4) {
46090 binary =
"0" + binary;
46092 entropyBin = entropyBin + binary;
46094 iterations = iterations +
1;
46096 // Truncate to the appropriate number of bits.
46097 entropyBin = entropyBin.substring(
0, numberOfBits);
46098 // Get the number of bits per event
46099 bitsPerEvent = maxBits / totalCards;
46101 binaryStr: entropyBin,
46102 bitsPerEvent: bitsPerEvent,
46106 // Polyfill for Math.log2
46107 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
46108 Math.log2 = Math.log2 || function(x) {
46109 // The polyfill isn't good enough because of the poor accuracy of
46111 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
46112 // So instead use the BigInteger library to get it right.
46113 return BigInteger.log(x) / BigInteger.log(
2);
46116 // Depends on BigInteger
46117 function factorial(n) {
46121 f = BigInteger.ONE;
46122 for (var i=
1; i<=n; i++) {
46123 f = f.multiply(new BigInteger(i));
46130 <script>(function() {
46132 // mnemonics is populated as required by getLanguage
46133 var mnemonics = { "english": new Mnemonic("english") };
46134 var mnemonic = mnemonics["english"];
46136 var bip32RootKey = null;
46137 var bip32ExtendedKey = null;
46138 var network = bitcoinjs.bitcoin.networks.bitcoin;
46139 var addressRowTemplate = $("#address-row-template");
46141 var showIndex = true;
46142 var showAddress = true;
46143 var showPubKey = true;
46144 var showPrivKey = true;
46145 var showQr = false;
46146 var litecoinUseLtub = false;
46148 var entropyChangeTimeoutEvent = null;
46149 var phraseChangeTimeoutEvent = null;
46150 var rootKeyChangedTimeoutEvent = null;
46152 var generationProcesses = [];
46155 DOM.network = $(".network");
46156 DOM.bip32Client = $("#bip32-client");
46157 DOM.phraseNetwork = $("#network-phrase");
46158 DOM.useEntropy = $(".use-entropy");
46159 DOM.entropyContainer = $(".entropy-container");
46160 DOM.entropy = $(".entropy");
46161 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46162 DOM.entropyType = DOM.entropyContainer.find(".type");
46163 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46164 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46165 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46166 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46167 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46168 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46169 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46170 DOM.phrase = $(".phrase");
46171 DOM.passphrase = $(".passphrase");
46172 DOM.generateContainer = $(".generate-container");
46173 DOM.generate = $(".generate");
46174 DOM.seed = $(".seed");
46175 DOM.rootKey = $(".root-key");
46176 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46177 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46178 DOM.extendedPrivKey = $(".extended-priv-key");
46179 DOM.extendedPubKey = $(".extended-pub-key");
46180 DOM.bip32tab = $("#bip32-tab");
46181 DOM.bip44tab = $("#bip44-tab");
46182 DOM.bip49tab = $("#bip49-tab");
46183 DOM.bip32panel = $("#bip32");
46184 DOM.bip44panel = $("#bip44");
46185 DOM.bip49panel = $("#bip49");
46186 DOM.bip32path = $("#bip32-path");
46187 DOM.bip44path = $("#bip44-path");
46188 DOM.bip44purpose = $("#bip44 .purpose");
46189 DOM.bip44coin = $("#bip44 .coin");
46190 DOM.bip44account = $("#bip44 .account");
46191 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46192 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46193 DOM.bip44change = $("#bip44 .change");
46194 DOM.bip49unavailable = $("#bip49 .unavailable");
46195 DOM.bip49available = $("#bip49 .available");
46196 DOM.bip49path = $("#bip49-path");
46197 DOM.bip49purpose = $("#bip49 .purpose");
46198 DOM.bip49coin = $("#bip49 .coin");
46199 DOM.bip49account = $("#bip49 .account");
46200 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46201 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46202 DOM.bip49change = $("#bip49 .change");
46203 DOM.generatedStrength = $(".generate-container .strength");
46204 DOM.hardenedAddresses = $(".hardened-addresses");
46205 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
46206 DOM.addresses = $(".addresses");
46207 DOM.rowsToAdd = $(".rows-to-add");
46208 DOM.more = $(".more");
46209 DOM.feedback = $(".feedback");
46210 DOM.tab = $(".derivation-type a");
46211 DOM.indexToggle = $(".index-toggle");
46212 DOM.addressToggle = $(".address-toggle");
46213 DOM.publicKeyToggle = $(".public-key-toggle");
46214 DOM.privateKeyToggle = $(".private-key-toggle");
46215 DOM.languages = $(".languages a");
46216 DOM.qrContainer = $(".qr-container");
46217 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46218 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46219 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46220 DOM.showQrEls = $("[data-show-qr]");
46224 DOM.network.on("change", networkChanged);
46225 DOM.bip32Client.on("change", bip32ClientChanged);
46226 DOM.useEntropy.on("change", setEntropyVisibility);
46227 DOM.entropy.on("input", delayedEntropyChanged);
46228 DOM.entropyMnemonicLength.on("change", entropyChanged);
46229 DOM.phrase.on("input", delayedPhraseChanged);
46230 DOM.passphrase.on("input", delayedPhraseChanged);
46231 DOM.generate.on("click", generateClicked);
46232 DOM.more.on("click", showMore);
46233 DOM.rootKey.on("input", delayedRootKeyChanged);
46234 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46235 DOM.bip32path.on("input", calcForDerivationPath);
46236 DOM.bip44account.on("input", calcForDerivationPath);
46237 DOM.bip44change.on("input", calcForDerivationPath);
46238 DOM.bip49account.on("input", calcForDerivationPath);
46239 DOM.bip49change.on("input", calcForDerivationPath);
46240 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46241 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46242 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46243 DOM.indexToggle.on("click", toggleIndexes);
46244 DOM.addressToggle.on("click", toggleAddresses);
46245 DOM.publicKeyToggle.on("click", togglePublicKeys);
46246 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46247 DOM.languages.on("click", languageChanged);
46248 setQrEvents(DOM.showQrEls);
46251 hideValidationError();
46252 populateNetworkSelect();
46253 populateClientSelect();
46258 function networkChanged(e) {
46259 clearDerivedKeys();
46260 clearAddressesList();
46261 DOM.litecoinLtubContainer.addClass("hidden");
46262 var networkIndex = e.target.value;
46263 var network = networks[networkIndex];
46264 network.onSelect();
46265 if (network.p2wpkhNestedInP2shAvailable) {
46266 showP2wpkhNestedInP2shAvailable();
46269 showP2wpkhNestedInP2shUnavailable();
46271 if (seed != null) {
46279 function bip32ClientChanged(e) {
46280 var clientIndex = DOM.bip32Client.val();
46281 if (clientIndex == "custom") {
46282 DOM.bip32path.prop("readonly", false);
46285 DOM.bip32path.prop("readonly", true);
46286 clients[clientIndex].onSelect();
46287 if (seed != null) {
46296 function setEntropyVisibility() {
46297 if (isUsingOwnEntropy()) {
46298 DOM.entropyContainer.removeClass("hidden");
46299 DOM.generateContainer.addClass("hidden");
46300 DOM.phrase.prop("readonly", true);
46301 DOM.entropy.focus();
46305 DOM.entropyContainer.addClass("hidden");
46306 DOM.generateContainer.removeClass("hidden");
46307 DOM.phrase.prop("readonly", false);
46312 function delayedPhraseChanged() {
46313 hideValidationError();
46315 bip32RootKey = null;
46316 bip32ExtendedKey = null;
46317 clearAddressesList();
46319 if (phraseChangeTimeoutEvent != null) {
46320 clearTimeout(phraseChangeTimeoutEvent);
46322 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46325 function phraseChanged() {
46327 setMnemonicLanguage();
46328 // Get the mnemonic phrase
46329 var phrase = DOM.phrase.val();
46330 var errorText = findPhraseErrors(phrase);
46332 showValidationError(errorText);
46335 // Calculate and display
46336 var passphrase = DOM.passphrase.val();
46337 calcBip32RootKeyFromSeed(phrase, passphrase);
46338 calcForDerivationPath();
46341 function delayedEntropyChanged() {
46342 hideValidationError();
46344 if (entropyChangeTimeoutEvent != null) {
46345 clearTimeout(entropyChangeTimeoutEvent);
46347 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46350 function entropyChanged() {
46351 // If blank entropy, clear mnemonic, addresses, errors
46352 if (DOM.entropy.val().trim().length ==
0) {
46354 clearEntropyFeedback();
46355 DOM.phrase.val("");
46356 showValidationError("Blank entropy");
46359 // Get the current phrase to detect changes
46360 var phrase = DOM.phrase.val();
46361 // Set the phrase from the entropy
46362 setMnemonicFromEntropy();
46363 // Recalc addresses if the phrase has changed
46364 var newPhrase = DOM.phrase.val();
46365 if (newPhrase != phrase) {
46366 if (newPhrase.length ==
0) {
46378 function delayedRootKeyChanged() {
46379 // Warn if there is an existing mnemonic or passphrase.
46380 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46381 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46382 DOM.rootKey.val(bip32RootKey);
46386 hideValidationError();
46388 // Clear existing mnemonic and passphrase
46389 DOM.phrase.val(
"");
46390 DOM.passphrase.val(
"");
46392 if (rootKeyChangedTimeoutEvent != null) {
46393 clearTimeout(rootKeyChangedTimeoutEvent);
46395 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46398 function rootKeyChanged() {
46400 hideValidationError();
46401 var rootKeyBase58 = DOM.rootKey.val();
46402 var errorText = validateRootKey(rootKeyBase58);
46404 showValidationError(errorText);
46407 // Calculate and display
46408 calcBip32RootKeyFromBase58(rootKeyBase58);
46409 calcForDerivationPath();
46412 function litecoinUseLtubChanged() {
46413 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46414 if (litecoinUseLtub) {
46415 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46418 network = bitcoinjs.bitcoin.networks.litecoin;
46423 function calcForDerivationPath() {
46424 clearDerivedKeys();
46425 clearAddressesList();
46427 // Don't show bip49 if it's selected but network doesn't support it
46428 if (bip49TabSelected() && !networkHasBip49()) {
46431 // Get the derivation path
46432 var derivationPath = getDerivationPath();
46433 var errorText = findDerivationPathErrors(derivationPath);
46435 showValidationError(errorText);
46438 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46439 if (bip44TabSelected()) {
46440 displayBip44Info();
46442 if (bip49TabSelected()) {
46443 displayBip49Info();
46445 displayBip32Info();
46448 function generateClicked() {
46449 if (isUsingOwnEntropy()) {
46454 setTimeout(function() {
46455 setMnemonicLanguage();
46456 var phrase = generateRandomPhrase();
46464 function languageChanged() {
46465 setTimeout(function() {
46466 setMnemonicLanguage();
46467 if (DOM.phrase.val().length
> 0) {
46468 var newPhrase = convertPhraseToNewLanguage();
46469 DOM.phrase.val(newPhrase);
46473 DOM.generate.trigger(
"click");
46478 function toggleIndexes() {
46479 showIndex = !showIndex;
46480 $(
"td.index span").toggleClass(
"invisible");
46483 function toggleAddresses() {
46484 showAddress = !showAddress;
46485 $(
"td.address span").toggleClass(
"invisible");
46488 function togglePublicKeys() {
46489 showPubKey = !showPubKey;
46490 $(
"td.pubkey span").toggleClass(
"invisible");
46493 function togglePrivateKeys() {
46494 showPrivKey = !showPrivKey;
46495 $(
"td.privkey span").toggleClass(
"invisible");
46500 function generateRandomPhrase() {
46501 if (!hasStrongRandom()) {
46502 var errorText =
"This browser does not support strong randomness";
46503 showValidationError(errorText);
46506 var numWords = parseInt(DOM.generatedStrength.val());
46507 var strength = numWords /
3 *
32;
46508 var words = mnemonic.generate(strength);
46509 DOM.phrase.val(words);
46513 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46514 seed = mnemonic.toSeed(phrase, passphrase);
46515 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46518 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46519 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46522 function calcBip32ExtendedKey(path) {
46523 // Check there's a root key to derive from
46524 if (!bip32RootKey) {
46525 return bip32RootKey;
46527 var extendedKey = bip32RootKey;
46528 // Derive the key from the path
46529 var pathBits = path.split(
"/");
46530 for (var i=
0; i
<pathBits.length; i++) {
46531 var bit = pathBits[i];
46532 var index = parseInt(bit);
46533 if (isNaN(index)) {
46536 var hardened = bit[bit.length-
1] ==
"'";
46537 var isPriv = !(extendedKey.isNeutered());
46538 var invalidDerivationPath = hardened && !isPriv;
46539 if (invalidDerivationPath) {
46540 extendedKey = null;
46542 else if (hardened) {
46543 extendedKey = extendedKey.deriveHardened(index);
46546 extendedKey = extendedKey.derive(index);
46552 function showValidationError(errorText) {
46558 function hideValidationError() {
46564 function findPhraseErrors(phrase) {
46565 // Preprocess the words
46566 phrase = mnemonic.normalizeString(phrase);
46567 var words = phraseToWordArray(phrase);
46568 // Detect blank phrase
46569 if (words.length ==
0) {
46570 return
"Blank mnemonic";
46573 for (var i=
0; i
<words.length; i++) {
46574 var word = words[i];
46575 var language = getLanguage();
46576 if (WORDLISTS[language].indexOf(word) == -
1) {
46577 console.log(
"Finding closest match to " + word);
46578 var nearestWord = findNearestWord(word);
46579 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46582 // Check the words are valid
46583 var properPhrase = wordArrayToPhrase(words);
46584 var isValid = mnemonic.check(properPhrase);
46586 return
"Invalid mnemonic";
46591 function validateRootKey(rootKeyBase58) {
46593 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46596 return
"Invalid root key";
46601 function getDerivationPath() {
46602 if (bip44TabSelected()) {
46603 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46604 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46605 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46606 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46608 path += purpose +
"'/";
46609 path += coin +
"'/";
46610 path += account +
"'/";
46612 DOM.bip44path.val(path);
46613 var derivationPath = DOM.bip44path.val();
46614 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46615 return derivationPath;
46617 if (bip49TabSelected()) {
46618 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46619 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46620 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46621 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46623 path += purpose +
"'/";
46624 path += coin +
"'/";
46625 path += account +
"'/";
46627 DOM.bip49path.val(path);
46628 var derivationPath = DOM.bip49path.val();
46629 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46630 return derivationPath;
46632 else if (bip32TabSelected()) {
46633 var derivationPath = DOM.bip32path.val();
46634 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46635 return derivationPath;
46638 console.log(
"Unknown derivation path");
46642 function findDerivationPathErrors(path) {
46643 // TODO is not perfect but is better than nothing
46645 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46647 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46648 var maxDepth =
255; // TODO verify this!!
46649 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46650 if (path[
0] !=
"m") {
46651 return
"First character must be 'm'";
46653 if (path.length
> 1) {
46654 if (path[
1] !=
"/") {
46655 return
"Separator must be '/'";
46657 var indexes = path.split(
"/");
46658 if (indexes.length
> maxDepth) {
46659 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46661 for (var depth =
1; depth
<indexes.length; depth++) {
46662 var index = indexes[depth];
46663 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46664 if (invalidChars.length
> 0) {
46665 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46667 var indexValue = parseInt(index.replace(
"'",
""));
46668 if (isNaN(depth)) {
46669 return
"Invalid number at depth " + depth;
46671 if (indexValue
> maxIndexValue) {
46672 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46676 // Check root key exists or else derivation path is useless!
46677 if (!bip32RootKey) {
46678 return "No root key";
46680 // Check no hardened derivation path when using xpub keys
46681 var hardenedPath = path.indexOf("'")
> -
1;
46682 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46683 var hardened = hardenedPath || hardenedAddresses;
46684 var isXpubkey = bip32RootKey.isNeutered();
46685 if (hardened && isXpubkey) {
46686 return "Hardened derivation path is invalid with xpub key";
46691 function displayBip44Info() {
46692 // Get the derivation path for the account
46693 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46694 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46695 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46697 path += purpose + "'/";
46698 path += coin + "'/";
46699 path += account + "'/";
46700 // Calculate the account extended keys
46701 var accountExtendedKey = calcBip32ExtendedKey(path);
46702 var accountXprv = accountExtendedKey.toBase58();
46703 var accountXpub = accountExtendedKey.neutered().toBase58();
46704 // Display the extended keys
46705 DOM.bip44accountXprv.val(accountXprv);
46706 DOM.bip44accountXpub.val(accountXpub);
46709 function displayBip49Info() {
46710 // Get the derivation path for the account
46711 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46712 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46713 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46715 path += purpose + "'/";
46716 path += coin + "'/";
46717 path += account + "'/";
46718 // Calculate the account extended keys
46719 var accountExtendedKey = calcBip32ExtendedKey(path);
46720 var accountXprv = accountExtendedKey.toBase58();
46721 var accountXpub = accountExtendedKey.neutered().toBase58();
46722 // Display the extended keys
46723 DOM.bip49accountXprv.val(accountXprv);
46724 DOM.bip49accountXpub.val(accountXpub);
46727 function displayBip32Info() {
46729 DOM.seed.val(seed);
46730 var rootKey = bip32RootKey.toBase58();
46731 DOM.rootKey.val(rootKey);
46732 var xprvkeyB58 = "NA";
46733 if (!bip32ExtendedKey.isNeutered()) {
46734 xprvkeyB58 = bip32ExtendedKey.toBase58();
46736 var extendedPrivKey = xprvkeyB58;
46737 DOM.extendedPrivKey.val(extendedPrivKey);
46738 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46739 DOM.extendedPubKey.val(extendedPubKey);
46740 // Display the addresses and privkeys
46741 clearAddressesList();
46742 displayAddresses(
0,
20);
46745 function displayAddresses(start, total) {
46746 generationProcesses.push(new (function() {
46750 this.stop = function() {
46751 for (var i=
0; i
<rows.length; i++) {
46752 rows[i].shouldGenerate = false;
46757 for (var i=
0; i
<total; i++) {
46758 var index = i + start;
46759 var isLast = i == total -
1;
46760 rows.push(new TableRow(index, isLast));
46766 function TableRow(index, isLast) {
46769 this.shouldGenerate = true;
46770 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46771 var isP2wpkhNestedInP2sh = bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46772 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46778 function calculateValues() {
46779 setTimeout(function() {
46780 if (!self.shouldGenerate) {
46784 if (useHardenedAddresses) {
46785 key = bip32ExtendedKey.deriveHardened(index);
46788 key = bip32ExtendedKey.derive(index);
46790 var address = key.getAddress().toString();
46791 var privkey =
"NA";
46792 if (!key.isNeutered()) {
46793 privkey = key.keyPair.toWIF(network);
46795 var pubkey = key.getPublicKeyBuffer().toString('hex');
46796 var indexText = getDerivationPath() +
"/" + index;
46797 if (useHardenedAddresses) {
46798 indexText = indexText +
"'";
46800 // Ethereum values are different
46801 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46802 var privKeyBuffer = key.keyPair.d.toBuffer();
46803 privkey = privKeyBuffer.toString('hex');
46804 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46805 var hexAddress = addressBuffer.toString('hex');
46806 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46807 address = ethUtil.addHexPrefix(checksumAddress);
46808 privkey = ethUtil.addHexPrefix(privkey);
46809 pubkey = ethUtil.addHexPrefix(pubkey);
46811 // Ripple values are different
46812 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46813 privkey = convertRipplePriv(privkey);
46814 address = convertRippleAdrr(address);
46816 // BIP49 addresses are different
46817 if (isP2wpkhNestedInP2sh) {
46818 if (!p2wpkhNestedInP2shAvailable) {
46821 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46822 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46823 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46824 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46825 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46827 addAddressToList(indexText, address, pubkey, privkey);
46838 function showMore() {
46839 var start = DOM.addresses.children().length;
46840 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46841 if (isNaN(rowsToAdd)) {
46843 DOM.rowsToAdd.val(
"20");
46845 if (rowsToAdd
> 200) {
46846 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46847 msg +=
"Do you want to continue?";
46848 if (!confirm(msg)) {
46852 displayAddresses(start, rowsToAdd);
46855 function clearDisplay() {
46856 clearAddressesList();
46858 hideValidationError();
46861 function clearAddressesList() {
46862 DOM.addresses.empty();
46866 function stopGenerating() {
46867 while (generationProcesses.length
> 0) {
46868 var generation = generationProcesses.shift();
46873 function clearKeys() {
46875 clearDerivedKeys();
46878 function clearRootKey() {
46879 DOM.rootKey.val(
"");
46882 function clearDerivedKeys() {
46883 DOM.extendedPrivKey.val(
"");
46884 DOM.extendedPubKey.val(
"");
46885 DOM.bip44accountXprv.val(
"");
46886 DOM.bip44accountXpub.val(
"");
46889 function addAddressToList(indexText, address, pubkey, privkey) {
46890 var row = $(addressRowTemplate.html());
46892 var indexCell = row.find(
".index span");
46893 var addressCell = row.find(
".address span");
46894 var pubkeyCell = row.find(
".pubkey span");
46895 var privkeyCell = row.find(
".privkey span");
46897 indexCell.text(indexText);
46898 addressCell.text(address);
46899 pubkeyCell.text(pubkey);
46900 privkeyCell.text(privkey);
46903 indexCell.addClass(
"invisible");
46905 if (!showAddress) {
46906 addressCell.addClass(
"invisible");
46909 pubkeyCell.addClass(
"invisible");
46911 if (!showPrivKey) {
46912 privkeyCell.addClass(
"invisible");
46914 DOM.addresses.append(row);
46915 var rowShowQrEls = row.find(
"[data-show-qr]");
46916 setQrEvents(rowShowQrEls);
46919 function hasStrongRandom() {
46920 return 'crypto' in window && window['crypto'] !== null;
46923 function disableForms() {
46924 $(
"form").on(
"submit", function(e) {
46925 e.preventDefault();
46929 function parseIntNoNaN(val, defaultVal) {
46930 var v = parseInt(val);
46937 function showPending() {
46939 .text(
"Calculating...")
46943 function findNearestWord(word) {
46944 var language = getLanguage();
46945 var words = WORDLISTS[language];
46946 var minDistance =
99;
46947 var closestWord = words[
0];
46948 for (var i=
0; i
<words.length; i++) {
46949 var comparedTo = words[i];
46950 if (comparedTo.indexOf(word) ==
0) {
46953 var distance = Levenshtein.get(word, comparedTo);
46954 if (distance < minDistance) {
46955 closestWord = comparedTo;
46956 minDistance = distance;
46959 return closestWord;
46962 function hidePending() {
46968 function populateNetworkSelect() {
46969 for (var i=
0; i
<networks.length; i++) {
46970 var network = networks[i];
46971 var option = $(
"<option>");
46972 option.attr(
"value", i);
46973 option.text(network.name);
46974 if (network.name ==
"BTC - Bitcoin") {
46975 option.prop(
"selected", true);
46977 DOM.phraseNetwork.append(option);
46981 function populateClientSelect() {
46982 for (var i=
0; i
<clients.length; i++) {
46983 var client = clients[i];
46984 var option = $(
"<option>");
46985 option.attr(
"value", i);
46986 option.text(client.name);
46987 DOM.bip32Client.append(option);
46991 function getLanguage() {
46992 var defaultLanguage =
"english";
46993 // Try to get from existing phrase
46994 var language = getLanguageFromPhrase();
46995 // Try to get from url if not from phrase
46996 if (language.length ==
0) {
46997 language = getLanguageFromUrl();
46999 // Default to English if no other option
47000 if (language.length ==
0) {
47001 language = defaultLanguage;
47006 function getLanguageFromPhrase(phrase) {
47007 // Check if how many words from existing phrase match a language.
47010 phrase = DOM.phrase.val();
47012 if (phrase.length
> 0) {
47013 var words = phraseToWordArray(phrase);
47014 var languageMatches = {};
47015 for (l in WORDLISTS) {
47016 // Track how many words match in this language
47017 languageMatches[l] =
0;
47018 for (var i=
0; i
<words.length; i++) {
47019 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
47020 if (wordInLanguage) {
47021 languageMatches[l]++;
47024 // Find languages with most word matches.
47025 // This is made difficult due to commonalities between Chinese
47026 // simplified vs traditional.
47027 var mostMatches =
0;
47028 var mostMatchedLanguages = [];
47029 for (var l in languageMatches) {
47030 var numMatches = languageMatches[l];
47031 if (numMatches
> mostMatches) {
47032 mostMatches = numMatches;
47033 mostMatchedLanguages = [l];
47035 else if (numMatches == mostMatches) {
47036 mostMatchedLanguages.push(l);
47040 if (mostMatchedLanguages.length
> 0) {
47041 // Use first language and warn if multiple detected
47042 language = mostMatchedLanguages[
0];
47043 if (mostMatchedLanguages.length
> 1) {
47044 console.warn(
"Multiple possible languages");
47045 console.warn(mostMatchedLanguages);
47052 function getLanguageFromUrl() {
47053 for (var language in WORDLISTS) {
47054 if (window.location.hash.indexOf(language)
> -
1) {
47061 function setMnemonicLanguage() {
47062 var language = getLanguage();
47063 // Load the bip39 mnemonic generator for this language if required
47064 if (!(language in mnemonics)) {
47065 mnemonics[language] = new Mnemonic(language);
47067 mnemonic = mnemonics[language];
47070 function convertPhraseToNewLanguage() {
47071 var oldLanguage = getLanguageFromPhrase();
47072 var newLanguage = getLanguageFromUrl();
47073 var oldPhrase = DOM.phrase.val();
47074 var oldWords = phraseToWordArray(oldPhrase);
47076 for (var i=
0; i
<oldWords.length; i++) {
47077 var oldWord = oldWords[i];
47078 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47079 var newWord = WORDLISTS[newLanguage][index];
47080 newWords.push(newWord);
47082 newPhrase = wordArrayToPhrase(newWords);
47086 // TODO look at jsbip39 - mnemonic.splitWords
47087 function phraseToWordArray(phrase) {
47088 var words = phrase.split(/\s/g);
47090 for (var i=
0; i
<words.length; i++) {
47091 var word = words[i];
47092 if (word.length
> 0) {
47093 noBlanks.push(word);
47099 // TODO look at jsbip39 - mnemonic.joinWords
47100 function wordArrayToPhrase(words) {
47101 var phrase = words.join(
" ");
47102 var language = getLanguageFromPhrase(phrase);
47103 if (language ==
"japanese") {
47104 phrase = words.join(
"\u3000");
47109 function isUsingOwnEntropy() {
47110 return DOM.useEntropy.prop(
"checked");
47113 function setMnemonicFromEntropy() {
47114 clearEntropyFeedback();
47115 // Get entropy value
47116 var entropyStr = DOM.entropy.val();
47117 // Work out minimum base for entropy
47118 var entropy = Entropy.fromString(entropyStr);
47119 if (entropy.binaryStr.length ==
0) {
47122 // Show entropy details
47123 showEntropyFeedback(entropy);
47124 // Use entropy hash if not using raw entropy
47125 var bits = entropy.binaryStr;
47126 var mnemonicLength = DOM.entropyMnemonicLength.val();
47127 if (mnemonicLength !=
"raw") {
47128 // Get bits by hashing entropy with SHA256
47129 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47130 var hex = sjcl.codec.hex.fromBits(hash);
47131 bits = BigInteger.parse(hex,
16).toString(
2);
47132 while (bits.length %
256 !=
0) {
47135 // Truncate hash to suit number of words
47136 mnemonicLength = parseInt(mnemonicLength);
47137 var numberOfBits =
32 * mnemonicLength /
3;
47138 bits = bits.substring(
0, numberOfBits);
47140 // Discard trailing entropy
47141 var bitsToUse = Math.floor(bits.length /
32) *
32;
47142 var start = bits.length - bitsToUse;
47143 var binaryStr = bits.substring(start);
47144 // Convert entropy string to numeric array
47145 var entropyArr = [];
47146 for (var i=
0; i
<binaryStr.length /
8; i++) {
47147 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47148 var entropyByte = parseInt(byteAsBits,
2);
47149 entropyArr.push(entropyByte)
47151 // Convert entropy array to mnemonic
47152 var phrase = mnemonic.toMnemonic(entropyArr);
47153 // Set the mnemonic in the UI
47154 DOM.phrase.val(phrase);
47157 function clearEntropyFeedback() {
47158 DOM.entropyCrackTime.text(
"...");
47159 DOM.entropyType.text(
"");
47160 DOM.entropyWordCount.text(
"0");
47161 DOM.entropyEventCount.text(
"0");
47162 DOM.entropyBitsPerEvent.text(
"0");
47163 DOM.entropyBits.text(
"0");
47164 DOM.entropyFiltered.html(
" ");
47165 DOM.entropyBinary.html(
" ");
47168 function showEntropyFeedback(entropy) {
47169 var numberOfBits = entropy.binaryStr.length;
47170 var timeToCrack =
"unknown";
47172 var z = zxcvbn(entropy.base.parts.join(
""));
47173 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47174 if (z.feedback.warning !=
"") {
47175 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47179 console.log(
"Error detecting entropy strength with zxcvbn:");
47182 var entropyTypeStr = getEntropyTypeStr(entropy);
47183 var wordCount = Math.floor(numberOfBits /
32) *
3;
47184 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47185 DOM.entropyFiltered.html(entropy.cleanHtml);
47186 DOM.entropyType.text(entropyTypeStr);
47187 DOM.entropyCrackTime.text(timeToCrack);
47188 DOM.entropyEventCount.text(entropy.base.ints.length);
47189 DOM.entropyBits.text(numberOfBits);
47190 DOM.entropyWordCount.text(wordCount);
47191 DOM.entropyBinary.text(entropy.binaryStr);
47192 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47195 function getEntropyTypeStr(entropy) {
47196 var typeStr = entropy.base.str;
47197 // Add some detail if these are cards
47198 if (entropy.base.asInt ==
52) {
47199 var cardDetail = []; // array of message strings
47200 // Detect duplicates
47202 var dupeTracker = {};
47203 for (var i=
0; i
<entropy.base.parts.length; i++) {
47204 var card = entropy.base.parts[i];
47205 var cardUpper = card.toUpperCase();
47206 if (cardUpper in dupeTracker) {
47209 dupeTracker[cardUpper] = true;
47211 if (dupes.length
> 0) {
47212 var dupeWord =
"duplicates";
47213 if (dupes.length ==
1) {
47214 dupeWord =
"duplicate";
47216 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47217 if (dupes.length
> 3) {
47220 cardDetail.push(msg);
47222 // Detect full deck
47223 var uniqueCards = [];
47224 for (var uniqueCard in dupeTracker) {
47225 uniqueCards.push(uniqueCard);
47227 if (uniqueCards.length ==
52) {
47228 cardDetail.unshift(
"full deck");
47230 // Detect missing cards
47231 var values =
"A23456789TJQK";
47232 var suits =
"CDHS";
47233 var missingCards = [];
47234 for (var i=
0; i
<suits.length; i++) {
47235 for (var j=
0; j
<values.length; j++) {
47236 var card = values[j] + suits[i];
47237 if (!(card in dupeTracker)) {
47238 missingCards.push(card);
47242 // Display missing cards if six or less, ie clearly going for full deck
47243 if (missingCards.length
> 0 && missingCards.length <=
6) {
47244 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47245 if (missingCards.length
> 3) {
47248 cardDetail.push(msg);
47250 // Add card details to typeStr
47251 if (cardDetail.length
> 0) {
47252 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47258 function setQrEvents(els) {
47259 els.on(
"mouseenter", createQr);
47260 els.on(
"mouseleave", destroyQr);
47261 els.on(
"click", toggleQr);
47264 function createQr(e) {
47265 var content = e.target.textContent || e.target.value;
47268 DOM.qrImage.qrcode({width: size, height: size, text: content});
47270 DOM.qrHider.addClass(
"hidden");
47273 DOM.qrHider.removeClass(
"hidden");
47275 DOM.qrContainer.removeClass(
"hidden");
47279 function destroyQr() {
47280 DOM.qrImage.text(
"");
47281 DOM.qrContainer.addClass(
"hidden");
47284 function toggleQr() {
47286 DOM.qrHider.toggleClass(
"hidden");
47287 DOM.qrHint.toggleClass(
"hidden");
47290 function bip44TabSelected() {
47291 return DOM.bip44tab.hasClass(
"active");
47294 function bip32TabSelected() {
47295 return DOM.bip32tab.hasClass(
"active");
47298 function useP2wpkhNestedInP2sh() {
47299 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47302 function networkHasBip49() {
47303 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47306 function bip49TabSelected() {
47307 return DOM.bip49tab.hasClass(
"active");
47310 function setHdCoin(coinValue) {
47311 DOM.bip44coin.val(coinValue);
47312 DOM.bip49coin.val(coinValue);
47315 function showP2wpkhNestedInP2shAvailable() {
47316 DOM.bip49unavailable.addClass(
"hidden");
47317 DOM.bip49available.removeClass(
"hidden");
47318 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47321 function showP2wpkhNestedInP2shUnavailable() {
47322 DOM.bip49available.addClass(
"hidden");
47323 DOM.bip49unavailable.removeClass(
"hidden");
47324 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47325 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47330 name:
"BCH - Bitcoin Cash",
47331 p2wpkhNestedInP2shAvailable: false,
47332 onSelect: function() {
47333 network = bitcoinjs.bitcoin.networks.bitcoin;
47338 name:
"BTC - Bitcoin",
47339 p2wpkhNestedInP2shAvailable: true,
47340 onSelect: function() {
47341 network = bitcoinjs.bitcoin.networks.bitcoin;
47346 name:
"BTC - Bitcoin Testnet",
47347 p2wpkhNestedInP2shAvailable: true,
47348 onSelect: function() {
47349 network = bitcoinjs.bitcoin.networks.testnet;
47354 name:
"CLAM - Clams",
47355 p2wpkhNestedInP2shAvailable: false,
47356 onSelect: function() {
47357 network = bitcoinjs.bitcoin.networks.clam;
47362 name:
"CRW - Crown",
47363 p2wpkhNestedInP2shAvailable: false,
47364 onSelect: function() {
47365 network = bitcoinjs.bitcoin.networks.crown;
47370 name:
"DASH - Dash",
47371 p2wpkhNestedInP2shAvailable: false,
47372 onSelect: function() {
47373 network = bitcoinjs.bitcoin.networks.dash;
47378 name:
"DASH - Dash Testnet",
47379 p2wpkhNestedInP2shAvailable: false,
47380 onSelect: function() {
47381 network = bitcoinjs.bitcoin.networks.dashtn;
47386 name:
"DOGE - Dogecoin",
47387 p2wpkhNestedInP2shAvailable: false,
47388 onSelect: function() {
47389 network = bitcoinjs.bitcoin.networks.dogecoin;
47394 name:
"ETH - Ethereum",
47395 p2wpkhNestedInP2shAvailable: false,
47396 onSelect: function() {
47397 network = bitcoinjs.bitcoin.networks.bitcoin;
47402 name:
"GAME - GameCredits",
47403 p2wpkhNestedInP2shAvailable: false,
47404 onSelect: function() {
47405 network = bitcoinjs.bitcoin.networks.game;
47410 name:
"JBS - Jumbucks",
47411 p2wpkhNestedInP2shAvailable: false,
47412 onSelect: function() {
47413 network = bitcoinjs.bitcoin.networks.jumbucks;
47418 name:
"LTC - Litecoin",
47419 p2wpkhNestedInP2shAvailable: false,
47420 onSelect: function() {
47421 network = bitcoinjs.bitcoin.networks.litecoin;
47423 DOM.litecoinLtubContainer.removeClass(
"hidden");
47427 name:
"MAZA - Maza",
47428 p2wpkhNestedInP2shAvailable: false,
47429 onSelect: function() {
47430 network = bitcoinjs.bitcoin.networks.maza;
47436 name:
"NMC - Namecoin",
47437 p2wpkhNestedInP2shAvailable: false,
47438 onSelect: function() {
47439 network = bitcoinjs.bitcoin.networks.namecoin;
47444 name:
"PIVX - PIVX",
47445 p2wpkhNestedInP2shAvailable: false,
47446 onSelect: function() {
47447 network = bitcoinjs.bitcoin.networks.pivx;
47452 name:
"PIVX - PIVX Testnet",
47453 p2wpkhNestedInP2shAvailable: false,
47454 onSelect: function() {
47455 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47460 name:
"PPC - Peercoin",
47461 p2wpkhNestedInP2shAvailable: false,
47462 onSelect: function() {
47463 network = bitcoinjs.bitcoin.networks.peercoin;
47468 name:
"SDC - ShadowCash",
47469 p2wpkhNestedInP2shAvailable: false,
47470 onSelect: function() {
47471 network = bitcoinjs.bitcoin.networks.shadow;
47476 name:
"SDC - ShadowCash Testnet",
47477 p2wpkhNestedInP2shAvailable: false,
47478 onSelect: function() {
47479 network = bitcoinjs.bitcoin.networks.shadowtn;
47484 name:
"SLM - Slimcoin",
47485 p2wpkhNestedInP2shAvailable: false,
47486 onSelect: function() {
47487 network = bitcoinjs.bitcoin.networks.slimcoin;
47492 name:
"SLM - Slimcoin Testnet",
47493 p2wpkhNestedInP2shAvailable: false,
47494 onSelect: function() {
47495 network = bitcoinjs.bitcoin.networks.slimcointn;
47500 name:
"VIA - Viacoin",
47501 p2wpkhNestedInP2shAvailable: false,
47502 onSelect: function() {
47503 network = bitcoinjs.bitcoin.networks.viacoin;
47508 name:
"VIA - Viacoin Testnet",
47509 p2wpkhNestedInP2shAvailable: false,
47510 onSelect: function() {
47511 network = bitcoinjs.bitcoin.networks.viacointestnet;
47516 name:
"XMY - Myriadcoin",
47517 p2wpkhNestedInP2shAvailable: false,
47518 onSelect: function() {
47519 network = bitcoinjs.bitcoin.networks.myriadcoin;
47524 name:
"XRP - Ripple",
47525 p2wpkhNestedInP2shAvailable: false,
47526 onSelect: function() {
47527 network = bitcoinjs.bitcoin.networks.bitcoin;
47535 name:
"Bitcoin Core",
47536 onSelect: function() {
47537 DOM.bip32path.val(
"m/0'/0'");
47538 DOM.hardenedAddresses.prop('checked', true);
47542 name:
"blockchain.info",
47543 onSelect: function() {
47544 DOM.bip32path.val(
"m/44'/0'/0'");
47545 DOM.hardenedAddresses.prop('checked', false);
47549 name:
"MultiBit HD",
47550 onSelect: function() {
47551 DOM.bip32path.val(
"m/0'/0");
47552 DOM.hardenedAddresses.prop('checked', false);