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
.4</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 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
417 <div class=
"col-sm-10">
418 <p class=
"form-control no-border" data-translate-html
>
419 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
421 <p class=
"form-control no-border" data-translate-html
>
422 For more info see the
423 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
427 <div class=
"form-group">
428 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
429 <div class=
"col-sm-10">
430 <p class=
"form-control no-border">
431 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
433 <p class=
"form-control no-border">
434 <span data-translate
>For more info see
</span>
435 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
439 <div class=
"form-group">
440 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
441 <div class=
"col-sm-10">
442 <p class=
"form-control no-border">
443 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
444 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
446 <p class=
"form-control no-border">
447 <span data-translate
>Can be used with
</span>:
448 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
454 <div id=
"bip49" class=
"tab-pane">
455 <form class=
"form-horizontal" role=
"form">
457 <div class=
"unavailable hidden">
458 <div class=
"form-group">
459 <div class=
"col-sm-2"></div>
460 <div class=
"col-sm-10">
461 <p data-translate
>BIP49 is unavailable for this coin.
</p>
465 <div class=
"available">
466 <div class=
"col-sm-2"></div>
467 <div class=
"col-sm-10">
468 <p data-translate-html
>
469 For more info see the
470 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">BIP49 spec
</a>.
473 <div class=
"form-group">
474 <label for=
"purpose" class=
"col-sm-2 control-label">
475 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
477 <div class=
"col-sm-10">
478 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"49" readonly
>
481 <div class=
"form-group">
482 <label for=
"coin" class=
"col-sm-2 control-label">
483 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
485 <div class=
"col-sm-10">
486 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
489 <div class=
"form-group">
490 <label for=
"account" class=
"col-sm-2 control-label">
491 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
493 <div class=
"col-sm-10">
494 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
497 <div class=
"form-group">
498 <label for=
"change" class=
"col-sm-2 control-label">
499 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
501 <div class=
"col-sm-10">
502 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
505 <div class=
"form-group">
506 <label class=
"col-sm-2 control-label">
508 <div class=
"col-sm-10">
509 <p data-translate
>The account extended keys can be used for importing to most BIP49 compatible wallets.
</p>
512 <div class=
"form-group">
513 <label for=
"account-xprv" class=
"col-sm-2 control-label">
514 <span data-translate
>Account Extended Private Key
</span>
516 <div class=
"col-sm-10">
517 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
520 <div class=
"form-group">
521 <label for=
"account-xpub" class=
"col-sm-2 control-label">
522 <span data-translate
>Account Extended Public Key
</span>
524 <div class=
"col-sm-10">
525 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
528 <div class=
"form-group">
529 <label class=
"col-sm-2 control-label">
531 <div class=
"col-sm-10">
532 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
535 <div class=
"form-group">
536 <label for=
"bip49-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
537 <div class=
"col-sm-10">
538 <input id=
"bip49-path" type=
"text" class=
"path form-control" value=
"m/49'/0'/0'/0" readonly=
"readonly">
545 <form class=
"form-horizontal" role=
"form">
546 <div class=
"form-group">
547 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
548 <div class=
"col-sm-10">
549 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
552 <div class=
"form-group">
553 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
554 <div class=
"col-sm-10">
555 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
565 <div class=
"col-md-12">
566 <h2>Derived Addresses
</h2>
567 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
568 <table class=
"table table-striped">
571 <div class=
"input-group">
572 <span data-translate
>Path
</span>
573 <button class=
"index-toggle" data-translate
>Toggle
</button>
577 <div class=
"input-group">
578 <span data-translate
>Address
</span>
579 <button class=
"address-toggle" data-translate
>Toggle
</button>
583 <div class=
"input-group">
584 <span data-translate
>Public Key
</span>
585 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
589 <div class=
"input-group">
590 <span data-translate
>Private Key
</span>
591 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
595 <tbody class=
"addresses monospace">
596 <tr><td> </td><td> </td><td> </td><td> </td></tr>
597 <tr><td> </td><td> </td><td> </td><td> </td></tr>
598 <tr><td> </td><td> </td><td> </td><td> </td></tr>
599 <tr><td> </td><td> </td><td> </td><td> </td></tr>
600 <tr><td> </td><td> </td><td> </td><td> </td></tr>
605 <span data-translate
>Show more rows
</span>:
606 <input type=
"number" class=
"rows-to-add" value=
"20">
607 <button class=
"more" data-translate
>Show
</button>
612 <div class=
"col-md-12">
613 <h2 data-translate
>More info
</h2>
614 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
615 <p data-translate-html
>
617 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
619 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
620 <p data-translate-html
>
622 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
624 <p data-translate-html
>
626 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
628 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
629 <p data-translate-html
>
631 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
633 <h3 data-translate
>Private Keys
</h3>
635 <span data-translate-html
>
637 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
639 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
641 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
643 <span data-translate-html
>
644 Entropy values must be sourced from a
645 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
647 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
648 <span data-translate-html
>
649 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
650 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
651 random enough for the needs of this tool.
655 <strong><span data-translate
>Do not store entropy.
</span></strong>
658 <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>
659 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
660 <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>
663 <span data-translate-html
>
664 The random mnemonic generator on this page uses a
665 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
667 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
668 <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>
669 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
672 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
674 <h3 data-translate
>License
</h3>
676 <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.
679 <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>
686 <div class=
"col-md-12">
688 <h2 data-translate
>Offline Usage
</h2>
691 You can use this tool without having to be online.
694 In your browser, select file save-as, and save this page
698 Double-click that file to open it in a browser
699 on any offline computer.
702 <span data-translate
>Alternatively, download the file from the repository
</span>
704 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
713 <div class=
"col-md-12">
715 <h2 data-translate
>This project is
100% open-source code
</h2>
718 <span data-translate
>Get the source code from the repository
</span>
720 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
721 https://github.com/iancoleman/bip39
725 <h3 data-translate
>Libraries
</h3>
728 <span>BitcoinJS -
</span>
729 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
730 https://github.com/bitcoinjs/bitcoinjs-lib
735 <span>jsBIP39 -
</span>
736 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
737 https://github.com/iancoleman/jsbip39
743 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
744 https://github.com/bitwiseshiftleft/sjcl
749 <span>jQuery -
</span>
750 <a href=
"https://jquery.com/" target=
"_blank">
756 <span>Twitter Bootstrap -
</span>
757 <a href=
"http://getbootstrap.com/" target=
"_blank">
758 http://getbootstrap.com/
767 <div class=
"qr-container hidden">
768 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
769 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
770 <div class=
"qr-hider hidden">
771 <div class=
"qr-image"></div>
772 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
776 <div class=
"feedback-container">
777 <div class=
"feedback">Loading...
</div>
780 <script type=
"text/template" id=
"address-row-template">
782 <td class=
"index"><span></span></td>
783 <td class=
"address"><span data-show-qr
></span></td>
784 <td class=
"pubkey"><span data-show-qr
></span></td>
785 <td class=
"privkey"><span data-show-qr
></span></td>
789 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
790 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
791 // but is not required in any modern browsers.
792 // For more information, see
793 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
795 //----------------------------------------------------------------------
797 // ECMAScript
2015 Polyfills
799 //----------------------------------------------------------------------
804 // Set this to always override native implementations, for testing
805 // the polyfill in browsers with partial/full ES2015 support.
806 var OVERRIDE_NATIVE_FOR_TESTING = false;
808 var undefined = (void
0); // Paranoia
813 return o === global ? undefined : o;
816 function hook(o, p, f) {
818 console.assert(typeof op === 'function', 'Hooking a non-function');
820 var o = strict(this);
821 var r = f.apply(o, arguments);
822 return r !== undefined ? r : op.apply(o, arguments);
826 function isSymbol(s) {
827 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
830 function getPropertyDescriptor(target, name) {
831 var desc = Object.getOwnPropertyDescriptor(target, name);
832 var proto = Object.getPrototypeOf(target);
833 while (!desc && proto) {
834 desc = Object.getOwnPropertyDescriptor(proto, name);
835 proto = Object.getPrototypeOf(proto);
840 var enqueue = (function(nativePromise, nativeSetImmediate) {
842 return function(job) { nativePromise.resolve().then(function() { job(); }); };
843 if (nativeSetImmediate)
844 return function(job) { nativeSetImmediate(job); };
845 return function(job) { setTimeout(job,
0); };
846 }(global['Promise'], global['setImmediate']));
848 function define(o, p, v, override) {
849 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
852 if (typeof v === 'function') {
853 // Sanity check that functions are appropriately named (where possible)
854 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
855 Object.defineProperty(o, p, {
862 Object.defineProperty(o, p, {
871 function set_internal(o, p, v) {
872 Object.defineProperty(o, p, {
880 // Snapshot intrinsic functions
881 var $isNaN = global.isNaN,
882 $parseInt = global.parseInt,
883 $parseFloat = global.parseFloat;
886 LOG10E = Math.LOG10E,
896 random = Math.random,
899 var orig_match = String.prototype.match,
900 orig_replace = String.prototype.replace,
901 orig_search = String.prototype.search,
902 orig_split = String.prototype.split;
904 // These are used for implementing the polyfills, but not exported.
906 // Inspired by https://gist.github.com/
1638059
908 function EphemeronTable() {
909 var secretKey = ObjectCreate(null);
911 function conceal(o) {
912 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
913 Object.defineProperty(o, 'valueOf', {
914 value: (function(secretKey) {
915 return function (k) {
916 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
927 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
928 return v === o ? null : v;
933 secretKey = ObjectCreate(null);
935 remove: function(key) {
936 var secrets = reveal(key);
937 if (secrets && HasOwnProperty(secrets, 'value')) {
938 delete secrets.value;
943 get: function(key, defaultValue) {
944 var secrets = reveal(key);
945 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
948 var secrets = reveal(key);
949 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
951 set: function(key, value) {
952 var secrets = reveal(key) || conceal(key);
953 secrets.value = value;
958 var empty = Object.create(null);
960 //----------------------------------------------------------------------
963 // http://www.ecma-international.org/ecma-
262/
6.0/
965 //----------------------------------------------------------------------
967 // ---------------------------------------
968 //
19.4 Symbol Objects
969 // ---------------------------------------
971 // NOTE: Symbols are defined here - out of spec order - since we need the
972 // properties and prototype to be populated for other polyfills.
974 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
978 var secret = Object.create(null);
980 symbolForKey = function(k) {
984 var GlobalSymbolRegistry = [];
986 function unique(bits) {
987 return Array(bits +
1).join('x').replace(/x/g, function() {
988 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
992 //
19.4.1 The Symbol Constructor
993 //
19.4.1.1 Symbol ( description=undefined )
994 function Symbol(description) {
995 if (!(this instanceof Symbol)) return new Symbol(description, secret);
996 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
998 var descString = description === undefined ? undefined : String(description);
1000 set_internal(this, '[[SymbolData]]', unique(
128));
1001 set_internal(this, '[[Description]]', descString);
1003 symbolMap[this] = this;
1007 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1008 global.Symbol = Symbol;
1010 //
19.4.2 Properties of the Symbol Constructor
1012 //
19.4.2.1 Symbol.for (key)
1013 define(Symbol, 'for', function for_(key) {
1014 var stringKey = String(key);
1015 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1016 var e = GlobalSymbolRegistry[i];
1017 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1019 var newSymbol = Symbol(key);
1020 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1024 //
19.4.2.2 Symbol.hasInstance
1025 //
19.4.2.3 Symbol.isConcatSpreadable
1027 //
19.4.2.4 Symbol.iterator
1028 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1030 //
19.4.2.5 Symbol.keyFor (sym)
1031 define(Symbol, 'keyFor', function keyFor(sym) {
1032 if (!(sym instanceof Symbol)) throw TypeError();
1033 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1034 var e = GlobalSymbolRegistry[i];
1035 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1040 //
19.4.2.6 Symbol.match
1041 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1043 //
19.4.2.7 Symbol.prototype
1045 //
19.4.2.8 Symbol.replace
1046 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1048 //
19.4.2.9 Symbol.search
1049 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1051 //
19.4.2.10 Symbol.species
1053 //
19.4.2.11 Symbol.search
1054 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1056 //
19.4.2.12 Symbol.toPrimitive
1058 //
19.4.2.13 Symbol.toStringTag
1059 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1061 //
19.4.2.14 Symbol.unscopables
1063 //
19.4.3 Properties of the Symbol Prototype Object
1064 //
19.4.3.1 Symbol.prototype.constructor
1066 //
19.4.3.2 Symbol.prototype.toString ( )
1067 Object.defineProperty(Symbol.prototype, 'toString', {
1068 value: function toString() {
1069 var s = strict(this);
1070 var desc = s['[[Description]]'];
1071 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1073 configurable: true, writeable: true, enumerable: false });
1075 //
19.4.3.3 Symbol.prototype.valueOf ( )
1076 Object.defineProperty(Symbol.prototype, 'valueOf', {
1077 value: function valueOf() {
1078 // To prevent automatic string conversion:
1081 // Spec has approximately the following:
1082 //var s = strict(this);
1083 //if (Type(s) === 'symbol') return s;
1084 //if (Type(s) !== 'object') throw TypeError();
1085 //if (!('[[SymbolData]]' in s)) throw TypeError();
1086 //return s['[[SymbolData]]'];
1088 configurable: true, writeable: true, enumerable: false });
1090 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1091 // (Done later to polyfill partial implementations)
1093 //
19.4.4 Properties of Symbol Instances
1096 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1098 // Defined here so that other prototypes can reference it
1099 //
25.1.2 The %IteratorPrototype% Object
1100 var $IteratorPrototype$ = {};
1102 //----------------------------------------
1103 //
6 ECMAScript Data Types and Values
1104 //----------------------------------------
1106 //
6.1 ECMAScript Language Types
1108 // "Type(x)" is used as shorthand for "the type of x"...
1111 case 'undefined': return 'undefined';
1112 case 'boolean': return 'boolean';
1113 case 'number': return 'number';
1114 case 'string': return 'string';
1115 case 'symbol': return 'symbol';
1117 if (v === null) return 'null';
1118 if (v instanceof global.Symbol) return 'symbol';
1123 //
6.1.5.1 Well-Known Symbols
1124 var $$iterator = global.Symbol.iterator,
1125 $$match = global.Symbol.match,
1126 $$replace = global.Symbol.replace,
1127 $$search = global.Symbol.search,
1128 $$split = global.Symbol.split,
1129 $$toStringTag = global.Symbol.toStringTag;
1131 //----------------------------------------
1132 //
7 Abstract Operations
1133 //----------------------------------------
1135 //----------------------------------------
1136 //
7.1 Type Conversion
1137 //----------------------------------------
1139 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1140 // just use valueOf()
1142 //
7.1.2 ToBoolean ( argument )
1143 // just use Boolean()
1145 //
7.1.3 ToNumber ( argument )
1146 // just use Number()
1148 //
7.1.4 ToInteger ( argument )
1149 function ToInteger(n) {
1151 if ($isNaN(n)) return
0;
1152 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1153 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1156 //
7.1.5 ToInt32 ( argument )
1157 function ToInt32(v) { return v
>> 0; }
1159 //
7.1.6 ToUint32 ( argument )
1160 function ToUint32(v) { return v
>>> 0; }
1162 //
7.1.7 ToInt16 ( argument )
1163 function ToInt16(v) { return (v <<
16)
>> 16; }
1165 //
7.1.8 ToUint16 ( argument )
1166 function ToUint16(v) { return v &
0xFFFF; }
1168 //
7.1.9 ToInt8 ( argument )
1169 function ToInt8(v) { return (v <<
24)
>> 24; }
1171 //
7.1.10 ToUint8 ( argument )
1172 function ToUint8(v) { return v &
0xFF; }
1174 //
7.1.11 ToUint8Clamp ( argument )
1175 function ToUint8Clamp(argument) {
1176 var number = Number(argument);
1177 if ($isNaN(number)) return
0;
1178 if (number <=
0) return
0;
1179 if (number
>=
255) return
255;
1180 var f = floor(number);
1181 if ((f +
0.5) < number) return f +
1;
1182 if (number < (f +
0.5)) return f;
1183 if (f %
2) return f +
1;
1187 //
7.1.12 ToString ( argument )
1188 // just use String()
1190 //
7.1.13 ToObject ( argument )
1191 function ToObject(v) {
1192 if (v === null || v === undefined) throw TypeError();
1196 //
7.1.14 ToPropertyKey ( argument )
1197 function ToPropertyKey(v) {
1201 //
7.1.15 ToLength ( argument )
1202 function ToLength(v) {
1203 var len = ToInteger(v);
1204 if (len <=
0) return
0;
1205 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1206 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1209 //
7.1.16 CanonicalNumericIndexString ( argument )
1211 //----------------------------------------
1212 //
7.2 Testing and Comparison Operations
1213 //----------------------------------------
1215 //
7.2.1 RequireObjectCoercible ( argument )
1216 //
7.2.2 IsArray ( argument )
1218 //
7.2.3 IsCallable ( argument )
1219 function IsCallable(o) { return typeof o === 'function'; }
1221 //
7.2.4 IsConstructor ( argument )
1222 function IsConstructor(o) {
1223 // Hacks for Safari
7 TypedArray XXXConstructor objects
1224 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1225 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1226 // TODO: Can this be improved on?
1227 return typeof o === 'function';
1230 //
7.2.5 IsExtensible (O)
1231 //
7.2.6 IsInteger ( argument )
1233 //
7.2.7 IsPropertyKey ( argument )
1234 function IsPropertyKey(argument) {
1235 if (Type(argument) === 'string') return true;
1236 if (Type(argument) === 'symbol') return true;
1240 //
7.2.8 IsRegExp ( argument )
1241 //
7.2.5 IsConstructor ( argument )
1243 //
7.2.9 SameValue(x, y)
1244 function SameValue(x, y) {
1245 if (typeof x !== typeof y) return false;
1250 if (x !== x && y !== y) return true;
1251 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1261 //
7.2.10 SameValueZero(x, y)
1262 function SameValueZero(x, y) {
1263 if (typeof x !== typeof y) return false;
1268 if (x !== x && y !== y) return true;
1278 //----------------------------------------
1279 //
7.3 Operations on Objects
1280 //----------------------------------------
1283 // - just use o.p or o[p]
1285 //
7.3.2 GetV (V, P)
1286 function GetV(v, p) {
1287 var o = ToObject(v);
1291 //
7.3.3 Set (O, P, V, Throw)
1292 // - just use o.p = v or o[p] = v
1297 //
7.3.9 GetMethod (O, P)
1298 function GetMethod(o, p) {
1299 var func = GetV(o, p);
1300 if (func === undefined || func === null) return undefined;
1301 if (!IsCallable(func)) throw TypeError();
1305 //
7.3.10 HasProperty (O, P)
1306 function HasProperty(o, p) {
1308 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1309 if (Type(o) !== 'object') return false;
1310 o = Object.getPrototypeOf(o);
1315 //
7.3.11 HasOwnProperty (O, P)
1316 function HasOwnProperty(o, p) {
1317 return Object.prototype.hasOwnProperty.call(o, p);
1320 //----------------------------------------
1321 //
7.4 Operations on Iterator Objects
1322 //----------------------------------------
1324 //
7.4.1 GetIterator ( obj, method )
1325 function GetIterator(obj, method) {
1326 if (arguments.length <
2)
1327 method = GetMethod(obj, $$iterator);
1328 var iterator = method.call(obj);
1329 if (Type(iterator) !== 'object') throw TypeError();
1333 //
7.4.2 IteratorNext ( iterator, value )
1334 function IteratorNext(iterator, value) {
1335 if (arguments.length <
2)
1336 var result = iterator.next();
1338 result = iterator.next(value);
1339 if (Type(result) !== 'object') throw TypeError();
1343 //
7.4.3 IteratorComplete ( iterResult )
1344 function IteratorComplete(iterResult) {
1345 console.assert(Type(iterResult) === 'object');
1346 return Boolean(iterResult.done);
1349 //
7.4.4 IteratorValue ( iterResult )
1350 function IteratorValue(iterResult) {
1351 console.assert(Type(iterResult) === 'object');
1352 return iterResult.value;
1355 //
7.4.5 IteratorStep ( iterator )
1356 function IteratorStep( iterator, value ) {
1357 var result = IteratorNext(iterator, value);
1358 var done = result['done'];
1359 if (Boolean(done) === true) return false;
1363 //
7.4.6 IteratorClose( iterator, completion )
1364 function IteratorClose( iterator, completion ) {
1365 console.assert(Type(iterator) === 'object');
1366 var _return = GetMethod(iterator, 'return');
1367 if (_return === undefined) return completion;
1369 var innerResult = _return[iterator]();
1371 // TODO: If completion.[[type]] is throw, return completion
1374 if (Type(innerResult) !== 'object') throw TypeError();
1378 //
7.4.7 CreateIterResultObject (value, done)
1379 function CreateIterResultObject(value, done) {
1380 console.assert(Type(done) === 'boolean');
1382 obj["value"] = value;
1387 //
7.4.8 CreateListIterator (list)
1388 //
7.4.8.1 ListIterator next( )
1389 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1390 //
7.4.9.1 CompoundIterator next( )
1392 //----------------------------------------
1393 //
8 Executable Code and Execution Contexts
1394 //----------------------------------------
1396 //----------------------------------------
1397 //
8.4 Jobs and Job Queues
1398 //----------------------------------------
1400 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1401 function EnqueueJob(queueName, job, args) {
1402 var fn = function() { job.apply(undefined, args); };
1406 //
8.4.2 NextJob result
1407 function NextJob(result) {
1411 //----------------------------------------
1412 //
9 Ordinary and Exotic Objects Behaviors
1413 //----------------------------------------
1415 //
9.1.11 [[Enumerate]] ()
1416 function Enumerate(obj) {
1418 if (Object(obj) !== obj) return e;
1419 var visited = new Set;
1420 while (obj !== null) {
1421 Object.getOwnPropertyNames(obj).forEach(function(name) {
1422 if (!visited.has(name)) {
1423 var desc = Object.getOwnPropertyDescriptor(obj, name);
1426 if (desc.enumerable) e.push(name);
1430 obj = Object.getPrototypeOf(obj);
1432 return e[$$iterator]();
1435 //
9.1.12 [[OwnPropertyKeys]] ( )
1436 function OwnPropertyKeys(o) {
1437 return Object.getOwnPropertyNames(o);
1440 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1441 function ObjectCreate(proto, internalSlotsList) {
1442 return Object.create(proto, internalSlotsList);
1445 // ---------------------------------------
1446 //
19 Fundamental Objects
1447 // ---------------------------------------
1449 // ---------------------------------------
1450 //
19.1 Object Objects
1451 // ---------------------------------------
1453 //
19.1.1 The Object Constructor
1454 //
19.1.1.1 Object ( [ value ] )
1455 //
19.1.2 Properties of the Object Constructor
1456 //
19.1.2.1 Object.assign ( target, ...sources )
1459 function assign(target, /*...*/sources) {
1460 var to = ToObject(target);
1461 if (arguments.length <
2) return to;
1463 var sourcesIndex =
1;
1464 while (sourcesIndex < arguments.length) {
1465 var nextSource = arguments[sourcesIndex++];
1466 if (nextSource === undefined || nextSource === null) {
1469 var from = ToObject(nextSource);
1470 keys = OwnPropertyKeys(from);
1472 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1473 var nextKey = keys[keysIndex];
1474 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1475 if (desc !== undefined && desc.enumerable) {
1476 var propValue = from[nextKey];
1477 to[nextKey] = propValue;
1484 //
19.1.2.2 Object.create ( O [ , Properties ] )
1485 //
19.1.2.3 Object.defineProperties ( O, Properties )
1486 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1487 //
19.1.2.5 Object.freeze ( O )
1488 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1491 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1492 $getOwnPropertyNames = Object.getOwnPropertyNames,
1493 $keys = Object.keys,
1494 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1496 function isStringKey(k) { return !symbolForKey(k); }
1498 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1500 Object, 'getOwnPropertyNames',
1501 function getOwnPropertyNames(o) {
1502 if (Object.prototype.toString.call(o) === '[object Window]') {
1503 // Workaround for cross-realm calling by IE itself.
1504 // https://github.com/inexorabletash/polyfill/issues/
96
1506 return $getOwnPropertyNames(o).filter(isStringKey);
1508 return $window_names.slice();
1511 return $getOwnPropertyNames(o).filter(isStringKey);
1514 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1516 Object, 'getOwnPropertySymbols',
1517 function getOwnPropertySymbols(o) {
1518 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1521 //
19.1.2.14 Object.keys ( O )
1525 return $keys(o).filter(isStringKey);
1529 //
19.1.2.9 Object.getPrototypeOf ( O )
1530 //
19.1.2.10 Object.is ( value1, value2 )
1533 function is(value1, value2) {
1534 return SameValue(value1, value2);
1537 //
19.1.2.11 Object.isExtensible ( O )
1538 //
19.1.2.12 Object.isFrozen ( O )
1539 //
19.1.2.13 Object.isSealed ( O )
1541 //
19.1.2.14 Object.keys ( O )
1544 //
19.1.2.15 Object.preventExtensions ( O )
1545 //
19.1.2.16 Object.prototype
1546 //
19.1.2.17 Object.seal ( O )
1548 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1550 Object, 'setPrototypeOf',
1551 function setPrototypeOf(o, proto) {
1552 if (Type(o) !== 'object') throw TypeError();
1553 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1554 o.__proto__ = proto;
1559 //
19.1.3 Properties of the Object Prototype Object
1560 //
19.1.3.1 Object.prototype.constructor
1561 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1562 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1563 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1564 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1565 //
19.1.3.6 Object.prototype.toString ( )
1566 hook(Object.prototype, 'toString',
1568 var o = strict(this);
1569 if (o === Object(o) && $$toStringTag in o) {
1570 return '[object ' + o[$$toStringTag] + ']';
1575 //
19.1.3.7 Object.prototype.valueOf ( )
1576 //
19.1.4 Properties of Object Instances
1578 // ---------------------------------------
1579 //
19.2 Function Objects
1580 // ---------------------------------------
1582 //
19.2.1 The Function Constructor
1583 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1584 //
19.2.2 Properties of the Function Constructor
1585 //
19.2.2.1 Function.length
1586 //
19.2.2.2 Function.prototype
1587 //
19.2.3 Properties of the Function Prototype Object
1588 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1589 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1590 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1591 //
19.2.3.4 Function.prototype.constructor
1592 //
19.2.3.5 Function.prototype.toString ( )
1593 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1594 //
19.2.4 Function Instances
1597 //
19.2.4.3 prototype
1599 // (No polyfillable changes from ES5)
1601 // ---------------------------------------
1602 //
19.3 Boolean Objects
1603 // ---------------------------------------
1605 //
19.3.1 The Boolean Constructor
1606 //
19.3.1.1 Boolean ( value )
1607 //
19.3.2 Properties of the Boolean Constructor
1608 //
19.3.2.1 Boolean.prototype
1609 //
19.3.3 Properties of the Boolean Prototype Object
1610 //
19.3.3.1 Boolean.prototype.constructor
1611 //
19.3.3.2 Boolean.prototype.toString ( )
1612 //
19.3.3.3 Boolean.prototype.valueOf ( )
1613 //
19.3.4 Properties of Boolean Instances
1615 // (No polyfillable changes from ES5)
1617 // ---------------------------------------
1618 //
19.4 Symbol Objects
1619 // ---------------------------------------
1621 // Moved earlier in this script, so that other polyfills can depend on them.
1623 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1624 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1626 // ---------------------------------------
1627 //
19.5 Error Objects
1628 // ---------------------------------------
1630 //
19.5.1 The Error Constructor
1631 //
19.5.1.1 Error ( message )
1632 //
19.5.1.2 new Error( ...argumentsList )
1633 //
19.5.2 Properties of the Error Constructor
1634 //
19.5.2.1 Error.prototype
1635 //
19.5.3 Properties of the Error Prototype Object
1636 //
19.5.3.1 Error.prototype.constructor
1637 //
19.5.3.2 Error.prototype.message
1638 //
19.5.3.3 Error.prototype.name
1639 //
19.5.3.4 Error.prototype.toString ( )
1640 //
19.5.4 Properties of Error Instances
1641 //
19.5.5 Native Error Types Used in This Standard
1642 //
19.5.5.1 EvalError
1643 //
19.5.5.2 RangeError
1644 //
19.5.5.3 ReferenceError
1645 //
19.5.5.4 SyntaxError
1646 //
19.5.5.5 TypeError
1647 //
19.5.5.6 URIError
1648 //
19.5.6 NativeError Object Structure
1649 //
19.5.6.1 NativeError Constructors
1650 //
19.5.6.1.1 NativeError ( message )
1651 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1652 //
19.5.6.2 Properties of the NativeError Constructors
1653 //
19.5.6.2.1 NativeError.prototype
1654 //
19.5.6.3 Properties of the NativeError Prototype Objects
1655 //
19.5.6.4 Properties of NativeError Instances
1657 // (No polyfillable changes from ES5)
1659 // ---------------------------------------
1660 //
20 Numbers and Dates
1661 // ---------------------------------------
1663 // ---------------------------------------
1664 //
20.1 Number Objects
1665 // ---------------------------------------
1667 //
20.1.1 The Number Constructor
1668 //
20.1.1.1 Number ( [ value ] )
1669 //
20.1.1.2 new Number ( ...argumentsList )
1670 //
20.1.2 Properties of the Number Constructor
1672 //
20.1.2.1 Number.EPSILON
1677 for (next =
1;
1 + next !==
1; next = next /
2)
1682 //
20.1.2.2 Number.isFinite ( number )
1685 function isFinite(number) {
1686 if (Type(number) !== 'number') return false;
1687 if (number !== number || number === +Infinity || number === -Infinity) return false;
1691 //
20.1.2.3 Number.isInteger ( number )
1693 Number, 'isInteger',
1694 function isInteger(number) {
1695 if (Type(number) !== 'number') return false;
1696 if (number !== number || number === +Infinity || number === -Infinity) return false;
1697 var integer = ToInteger(number);
1698 if (integer !== number) return false;
1702 //
20.1.2.4 Number.isNaN ( number )
1705 function isNaN(number) {
1706 if (Type(number) !== 'number') return false;
1707 if (number !== number) return true;
1711 //
20.1.2.5 Number.isSafeInteger ( number )
1713 Number, 'isSafeInteger',
1714 function isSafeInteger(number) {
1715 if (Type(number) !== 'number') return false;
1716 if (number !== number || number === +Infinity || number === -Infinity) return false;
1717 var integer = ToInteger(number);
1718 if (integer !== number) return false;
1719 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1724 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1726 Number, 'MAX_SAFE_INTEGER',
1727 9007199254740991); //
2^
53-
1
1729 //
20.1.2.7 Number.MAX_VALUE
1731 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1733 Number, 'MIN_SAFE_INTEGER',
1734 -
9007199254740991); // -
2^
53+
1
1736 //
20.1.2.9 Number.MIN_VALUE
1737 //
20.1.2.10 Number.NaN
1738 //
20.1.2.11 Number.NEGATIVE_INFINITY
1740 //
20.1.2.12 Number.parseFloat ( string )
1741 define(Number, 'parseFloat', $parseFloat);
1743 //
20.1.2.13 Number.parseInt ( string, radix )
1744 define(Number, 'parseInt', $parseInt);
1746 //
20.1.2.14 Number.POSITIVE_INFINITY
1747 //
20.1.2.15 Number.prototype
1749 //
20.1.3 Properties of the Number Prototype Object
1750 //
20.1.3.1 Number.prototype.constructor
1751 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1752 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1753 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1754 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1755 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1756 //
20.1.3.7 Number.prototype.valueOf ( )
1757 //
20.1.4 Properties of Number Instances
1759 // ---------------------------------------
1760 //
20.2 The Math Object
1761 // ---------------------------------------
1763 //
20.2.1 Value Properties of the Math Object
1765 //
20.2.1.2 Math.LN10
1766 //
20.2.1.3 Math.LN2
1767 //
20.2.1.4 Math.LOG10E
1768 //
20.2.1.5 Math.LOG2E
1770 //
20.2.1.7 Math.SQRT1_2
1771 //
20.2.1.8 Math.SQRT2
1773 //
20.2.1.9 Math [ @@toStringTag ]
1774 define(Math, $$toStringTag, 'Math');
1776 //
20.2.2 Function Properties of the Math Object
1777 //
20.2.2.1 Math.abs ( x )
1778 //
20.2.2.2 Math.acos ( x )
1780 //
20.2.2.3 Math.acosh(x)
1785 return log(x + sqrt(x * x -
1));
1788 //
20.2.2.4 Math.asin ( x )
1790 //
20.2.2.5 Math.asinh( x )
1795 if (SameValue(x, -
0)) {
1798 var s = sqrt(x * x +
1);
1799 return (s === -x) ? log(
0) : log(x + s);
1802 //
20.2.2.6 Math.atan ( x )
1804 //
20.2.2.7 Math.atanh( x )
1809 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1812 //
20.2.2.8 Math.atan2 ( y, x )
1814 //
20.2.2.9 Math.cbrt ( x )
1822 var r = pow(abs(x),
1/
3);
1824 return r + (r * (t-r) / (
2*r + t));
1827 //
20.2.2.10 Math.ceil ( x )
1829 //
20.2.2.11 Math.clz32 ( x )
1834 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1835 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1838 return x &
0xff000000 ? clz8(x
>> 24) :
1839 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1840 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1845 //
20.2.2.12 Math.cos ( x )
1847 //
20.2.2.13 Math.cosh ( x )
1852 return (pow(E, x) + pow(E, -x)) /
2;
1855 //
20.2.2.14 Math.exp ( x )
1857 //
20.2.2.15 Math.expm1 ( x )
1862 // from: http://www.johndcook.com/cpp_log1p.html
1863 if (SameValue(x, -
0)) {
1865 } else if (abs(x) <
1e-5) {
1866 return x +
0.5 * x * x; // two terms of Taylor expansion
1872 //
20.2.2.16 Math.floor ( x )
1874 //
20.2.2.17 Math.fround ( x )
1877 function fround(x) {
1881 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1884 return (new Float32Array([x]))[
0];
1887 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1892 var m =
0, sawNaN = false;
1893 for (var i =
0; i < arguments.length; ++i) {
1894 var n = abs(Number(arguments[i]));
1895 if (n === Infinity) return n;
1896 if (n !== n) sawNaN = true;
1900 if (sawNaN) return NaN;
1901 if (m ===
0) return +
0;
1903 for (i =
0; i < values.length; ++i) {
1904 var r = values[i] / m;
1907 return m * sqrt(sum);
1910 //
20.2.2.19 Math.imul ( x, y )
1913 function imul(x, y) {
1914 var a = ToUint32(x);
1915 var b = ToUint32(y);
1916 // (slow but accurate)
1917 var ah = (a
>>> 16) &
0xffff;
1918 var al = a &
0xffff;
1919 var bh = (b
>>> 16) &
0xffff;
1920 var bl = b &
0xffff;
1921 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1922 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1925 //
20.2.2.20 Math.log ( x )
1927 //
20.2.2.21 Math.log1p ( x )
1932 // from: http://www.johndcook.com/cpp_expm1.html
1935 } else if (SameValue(x, -
0)) {
1937 } else if (abs(x)
> 1e-4) {
1940 return (-
0.5 * x +
1) * x;
1944 //
20.2.2.22 Math.log10 ( x )
1949 return log(x) * LOG10E;
1952 //
20.2.2.23 Math.log2 ( x )
1957 return log(x) * LOG2E;
1960 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1961 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1962 //
20.2.2.26 Math.pow ( x, y )
1963 //
20.2.2.27 Math.random ( )
1964 //
20.2.2.28 Math.round ( x )
1966 //
20.2.2.29 Math.sign(x)
1971 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1974 //
20.2.2.30 Math.sin ( x )
1976 //
20.2.2.31 Math.sinh( x )
1981 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1984 //
20.2.2.32 Math.sqrt ( x )
1985 //
20.2.2.33 Math.tan ( x )
1987 //
20.2.2.34 Math.tanh ( x )
1992 var n = pow(E,
2 * x) -
1,
1993 d = pow(E,
2 * x) +
1;
1994 if (SameValue(x, -
0))
1996 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1999 //
20.2.2.35 Math.trunc ( x )
2004 return $isNaN(x) ? NaN :
2005 x <
0 ? ceil(x) : floor(x);
2008 // ---------------------------------------
2009 //
20.3 Date Objects
2010 // ---------------------------------------
2012 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2013 //
20.3.1.1 Time Values and Time Range
2014 //
20.3.1.2 Day Number and Time within Day
2015 //
20.3.1.3 Year Number
2016 //
20.3.1.4 Month Number
2017 //
20.3.1.5 Date Number
2018 //
20.3.1.6 Week Day
2019 //
20.3.1.7 Local Time Zone Adjustment
2020 //
20.3.1.8 Daylight Saving Time Adjustment
2021 //
20.3.1.9 Local Time
2022 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2023 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2024 //
20.3.1.12 MakeDay (year, month, date)
2025 //
20.3.1.13 MakeDate (day, time)
2026 //
20.3.1.14 TimeClip (time)
2027 //
20.3.1.15 Date Time String Format
2028 //
20.3.1.15.1 Extended years
2029 //
20.3.2 The Date Constructor
2030 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2031 //
20.3.2.2 Date ( value )
2032 //
20.3.2.3 Date ( )
2033 //
20.3.3 Properties of the Date Constructor
2034 //
20.3.3.1 Date.now ( )
2035 //
20.3.3.2 Date.parse (string)
2036 //
20.3.3.3 Date.prototype
2037 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2038 //
20.3.4 Properties of the Date Prototype Object
2039 //
20.3.4.1 Date.prototype.constructor
2040 //
20.3.4.2 Date.prototype.getDate ( )
2041 //
20.3.4.3 Date.prototype.getDay ( )
2042 //
20.3.4.4 Date.prototype.getFullYear ( )
2043 //
20.3.4.5 Date.prototype.getHours ( )
2044 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2045 //
20.3.4.7 Date.prototype.getMinutes ( )
2046 //
20.3.4.8 Date.prototype.getMonth ( )
2047 //
20.3.4.9 Date.prototype.getSeconds ( )
2048 //
20.3.4.10 Date.prototype.getTime ( )
2049 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2050 //
20.3.4.12 Date.prototype.getUTCDate ( )
2051 //
20.3.4.13 Date.prototype.getUTCDay ( )
2052 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2053 //
20.3.4.15 Date.prototype.getUTCHours ( )
2054 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2055 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2056 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2057 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2058 //
20.3.4.20 Date.prototype.setDate ( date )
2059 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2060 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2061 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2062 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2063 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2064 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2065 //
20.3.4.27 Date.prototype.setTime ( time )
2066 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2067 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2068 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2069 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2070 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2071 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2072 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2073 //
20.3.4.35 Date.prototype.toDateString ( )
2074 //
20.3.4.36 Date.prototype.toISOString ( )
2075 //
20.3.4.37 Date.prototype.toJSON ( key )
2076 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2077 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2078 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2079 //
20.3.4.41 Date.prototype.toString ( )
2080 //
20.3.4.42 Date.prototype.toTimeString ( )
2081 //
20.3.4.43 Date.prototype.toUTCString ( )
2082 //
20.3.4.44 Date.prototype.valueOf ( )
2083 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2084 //
20.3.5 Properties of Date Instances
2086 // (No polyfillable changes from ES5)
2088 // ---------------------------------------
2089 //
21 Text Processing
2090 // ---------------------------------------
2092 var string_regexp_dispatch = (function() {
2093 var faux = {}, secret = Symbol();
2094 faux[Symbol.match] = function() { return secret; };
2095 return (
"").match(faux) === secret;
2098 //
21.1 String Objects
2099 //
21.1.1 The String Constructor
2100 //
21.1.1.1 String ( value )
2101 //
21.1.2 Properties of the String Constructor
2102 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2104 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2106 String, 'fromCodePoint',
2107 function fromCodePoint(/*...codePoints*/) {
2108 var codePoints = arguments,
2109 length = codePoints.length,
2112 while (nextIndex < length) {
2113 var next = codePoints[nextIndex];
2114 var nextCP = Number(next);
2115 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2116 nextCP <
0 || nextCP
> 0x10FFFF) {
2117 throw RangeError('Invalid code point ' + nextCP);
2119 if (nextCP <
0x10000) {
2120 elements.push(String.fromCharCode(nextCP));
2123 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2124 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2128 return elements.join('');
2131 //
21.1.2.3 String.prototype
2133 //
21.1.2.4 String.raw ( template , ...substitutions )
2136 function raw(template /*, ...substitutions*/) {
2137 var substitutions = [].slice.call(arguments,
1);
2139 var cooked = Object(template);
2140 var rawValue = cooked['raw'];
2141 var raw = Object(rawValue);
2142 var len = raw['length'];
2143 var literalSegments = ToLength(len);
2144 if (literalSegments <=
0) return '';
2145 var stringElements = [];
2148 var next = raw[nextIndex];
2149 var nextSeg = String(next);
2150 stringElements.push(nextSeg);
2151 if (nextIndex +
1 === literalSegments)
2152 return stringElements.join('');
2153 next = substitutions[nextIndex];
2154 var nextSub = String(next);
2155 stringElements.push(nextSub);
2156 nextIndex = nextIndex +
1;
2160 // See https://githib.com/inexorabletash/uate for a more useful version.
2162 //
21.1.3 Properties of the String Prototype Object
2163 //
21.1.3.1 String.prototype.charAt ( pos )
2164 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2166 //
21.1.3.3 String.prototype.codePointAt ( pos )
2168 String.prototype, 'codePointAt',
2169 function codePointAt(pos) {
2170 var o = strict(this);
2172 var position = ToInteger(pos);
2173 var size = s.length;
2174 if (position <
0 || position
>= size) return undefined;
2175 var first = s.charCodeAt(position);
2176 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2177 var second = s.charCodeAt(position +
1);
2178 if (second <
0xDC00 || second
> 0xDFFF) return first;
2179 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2182 //
21.1.3.4 String.prototype.concat ( ...args )
2183 //
21.1.3.5 String.prototype.constructor
2185 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2187 String.prototype, 'endsWith',
2188 function endsWith(searchString) {
2189 var endPosition = arguments[
1];
2191 var o = strict(this);
2193 var searchStr = String(searchString);
2195 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2196 var end = min(max(pos,
0), len);
2197 var searchLength = searchStr.length;
2198 var start = end - searchLength;
2199 if (start <
0) return false;
2200 if (s.substring(start, start + searchLength) === searchStr) return true;
2204 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2206 String.prototype, 'includes',
2207 function includes(searchString) {
2208 var position = arguments[
1];
2210 var o = strict(this);
2212 var searchStr = String(searchString);
2213 var pos = ToInteger(position);
2215 var start = min(max(pos,
0), len);
2216 return s.indexOf(searchStr, start) !== -
1;
2219 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2220 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2221 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2222 //
21.1.3.11 String.prototype.match ( regexp )
2224 String.prototype, 'match',
2225 function match(regexp) {
2226 var o = strict(this);
2228 if (HasProperty(regexp, $$match)) var rx = regexp;
2229 else rx = new RegExp(regexp);
2230 return rx[$$match](s);
2231 }, !string_regexp_dispatch);
2233 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2235 // Not practical due to table sizes; if needed, pull in:
2236 // https://github.com/walling/unorm/
2238 //
21.1.3.13 String.prototype.repeat ( count )
2240 String.prototype, 'repeat',
2241 function repeat(count) {
2242 var o = strict(this);
2244 var n = ToInteger(count);
2245 if (n <
0) throw RangeError();
2246 if (n === Infinity) throw RangeError();
2247 var t = new Array(n +
1).join(s);
2251 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2253 String.prototype, 'replace',
2254 function replace(searchValue, replaceValue) {
2255 var o = strict(this);
2256 if (HasProperty(searchValue, $$replace))
2257 return searchValue[$$replace](o, replaceValue);
2258 return orig_replace.call(o, searchValue, replaceValue);
2259 }, !string_regexp_dispatch);
2261 //
21.1.3.15 String.prototype.search ( regexp )
2263 String.prototype, 'search',
2264 function search(regexp) {
2265 var o = strict(this);
2266 var string = String(o);
2267 if (HasProperty(regexp, $$search)) var rx = regexp;
2268 else rx = new RegExp(regexp);
2269 return rx[$$search](string);
2270 }, !string_regexp_dispatch);
2272 //
21.1.3.16 String.prototype.slice ( start, end )
2273 //
21.1.3.17 String.prototype.split ( separator, limit )
2275 String.prototype, 'split',
2276 function split(separator, limit) {
2277 var o = strict(this);
2278 if (HasProperty(separator, $$split))
2279 return separator[$$split](o, limit);
2280 return orig_split.call(o, separator, limit);
2281 }, !string_regexp_dispatch);
2283 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2285 String.prototype, 'startsWith',
2286 function startsWith(searchString) {
2287 var position = arguments[
1];
2289 var o = strict(this);
2291 var searchStr = String(searchString);
2292 var pos = ToInteger(position);
2294 var start = min(max(pos,
0), len);
2295 var searchLength = searchStr.length;
2296 if (searchLength + start
> len) return false;
2297 if (s.substring(start, start + searchLength) === searchStr) return true;
2301 //
21.1.3.19 String.prototype.substring ( start, end )
2302 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2303 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2304 //
21.1.3.22 String.prototype.toLowerCase ( )
2305 //
21.1.3.23 String.prototype.toString ( )
2306 //
21.1.3.24 String.prototype.toUpperCase ( )
2307 //
21.1.3.25 String.prototype.trim ( )
2308 //
21.1.3.26 String.prototype.valueOf ( )
2310 //
21.1.3.27 String.prototype [ @@iterator ]( )
2312 String.prototype, $$iterator,
2313 function entries() {
2314 return CreateStringIterator(this, 'value');
2317 //
21.1.4 Properties of String Instances
2320 //
21.1.5 String Iterator Objects
2322 function StringIterator() {}
2324 //
21.1.5.1 CreateStringIterator Abstract Operation
2325 function CreateStringIterator(string, kind) {
2326 var s = String(string);
2327 var iterator = new StringIterator;
2328 set_internal(iterator, '[[IteratedString]]', s);
2329 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2330 set_internal(iterator, '[[StringIterationKind]]', kind);
2334 //
21.1.5.2 The %StringIteratorPrototype% Object
2335 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2336 StringIterator.prototype = $StringIteratorPrototype$;
2338 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2340 $StringIteratorPrototype$, 'next',
2342 var o = ToObject(this);
2343 var s = String(o['[[IteratedString]]']),
2344 index = o['[[StringIteratorNextIndex]]'],
2347 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2348 return CreateIterResultObject(undefined, true);
2350 var cp = s.codePointAt(index);
2351 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2352 return CreateIterResultObject(String.fromCodePoint(cp), false);
2355 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2356 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2358 //
21.1.5.3 Properties of String Iterator Instances
2360 // ---------------------------------------
2361 //
21.2 RegExp (Regular Expression) Objects
2362 // ---------------------------------------
2365 //
21.2.2 Pattern Semantics
2366 //
21.2.2.1 Notation
2368 //
21.2.2.3 Disjunction
2369 //
21.2.2.4 Alternative
2371 //
21.2.2.6 Assertion
2372 //
21.2.2.7 Quantifier
2374 //
21.2.2.9 AtomEscape
2375 //
21.2.2.10 CharacterEscape
2376 //
21.2.2.11 DecimalEscape
2377 //
21.2.2.12 CharacterClassEscape
2378 //
21.2.2.13 CharacterClass
2379 //
21.2.2.14 ClassRanges
2380 //
21.2.2.15 NonemptyClassRanges
2381 //
21.2.2.16 NonemptyClassRangesNoDash
2382 //
21.2.2.17 ClassAtom
2383 //
21.2.2.18 ClassAtomNoDash
2384 //
21.2.2.19 ClassEscape
2385 //
21.2.3 The RegExp Constructor
2386 //
21.2.3.1 RegExp ( pattern, flags )
2387 //
21.2.3.2 new RegExp( ...argumentsList )
2388 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2389 //
21.2.4 Properties of the RegExp Constructor
2390 //
21.2.4.1 RegExp.prototype
2391 //
21.2.5 Properties of the RegExp Prototype Object
2392 //
21.2.5.1 RegExp.prototype.constructor
2393 //
21.2.5.2 RegExp.prototype.exec ( string )
2395 //
21.2.5.3 get RegExp.prototype.flags
2396 if (!('flags' in RegExp.prototype)) {
2397 Object.defineProperty(
2398 RegExp.prototype, 'flags', {
2400 var s = String(this);
2401 return s.substring(s.lastIndexOf('/') +
1);
2406 //
21.2.5.4 get RegExp.prototype.global
2407 //
21.2.5.5 get RegExp.prototype.ignoreCase
2409 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2410 define(RegExp.prototype, $$match, function(string) {
2411 var o = strict(this);
2412 return orig_match.call(string, o);
2415 //
21.2.5.7 get RegExp.prototype.multiline
2417 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2418 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2419 var o = strict(this);
2420 return orig_replace.call(string, o, replaceValue);
2423 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2424 define(RegExp.prototype, $$search, function(string) {
2425 var o = strict(this);
2426 return orig_search.call(string, o);
2429 //
21.2.5.10 get RegExp.prototype.source
2431 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2432 define(RegExp.prototype, $$split, function(string, limit) {
2433 var o = strict(this);
2434 return orig_split.call(string, o, limit);
2437 //
21.2.5.12 get RegExp.prototype.sticky
2438 //
21.2.5.13 RegExp.prototype.test( S )
2439 //
21.2.5.14 RegExp.prototype.toString ( )
2440 //
21.2.5.15 get RegExp.prototype.unicode
2442 //
21.2.6 Properties of RegExp Instances
2443 //
21.2.6.1 lastIndex
2445 // (No polyfillable changes from ES5)
2447 // ---------------------------------------
2448 //
22 Indexed Collections
2449 // ---------------------------------------
2451 // ---------------------------------------
2452 //
22.1 Array Objects
2453 // ---------------------------------------
2455 //
22.1.1 The Array Constructor
2456 //
22.1.1.1 Array ( )
2457 //
22.1.1.2 Array (len)
2458 //
22.1.1.3 Array (...items )
2460 //
22.1.2 Properties of the Array Constructor
2462 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2465 function from(items) {
2466 var mapfn = arguments[
1];
2467 var thisArg = arguments[
2];
2469 var c = strict(this);
2470 if (mapfn === undefined) {
2471 var mapping = false;
2473 if (!IsCallable(mapfn)) throw TypeError();
2477 var usingIterator = GetMethod(items, $$iterator);
2478 if (usingIterator !== undefined) {
2479 if (IsConstructor(c)) {
2484 var iterator = GetIterator(items, usingIterator);
2487 var next = IteratorStep(iterator);
2488 if (next === false) {
2492 var nextValue = IteratorValue(next);
2494 var mappedValue = mapfn.call(t, nextValue);
2496 mappedValue = nextValue;
2501 var arrayLike = ToObject(items);
2502 var lenValue = arrayLike.length;
2503 var len = ToLength(lenValue);
2504 if (IsConstructor(c)) {
2511 var kValue = arrayLike[k];
2513 mappedValue = mapfn.call(t, kValue, k);
2515 mappedValue = kValue;
2523 //
22.1.2.2 Array.isArray ( arg )
2525 //
22.1.2.3 Array.of ( ...items )
2529 var items = arguments;
2531 var lenValue = items.length;
2532 var len = ToUint32(lenValue);
2533 var c = strict(this), a;
2534 if (IsConstructor(c)) {
2549 //
22.1.2.4 Array.prototype
2550 //
22.1.2.5 get Array [ @@species ]
2551 //
22.1.3 Properties of the Array Prototype Object
2552 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2553 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2554 //
22.1.3.2 Array.prototype.constructor
2555 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2557 Array.prototype, 'copyWithin',
2558 function copyWithin(target, start/*, end*/) {
2559 var end = arguments[
2];
2561 var o = ToObject(this);
2562 var lenVal = o.length;
2563 var len = ToLength(lenVal);
2565 var relativeTarget = ToInteger(target);
2567 if (relativeTarget <
0)
2568 to = max(len + relativeTarget,
0);
2570 to = min(relativeTarget, len);
2571 var relativeStart = ToInteger(start);
2573 if (relativeStart <
0)
2574 from = max(len + relativeStart,
0);
2576 from = min(relativeStart, len);
2578 if (end === undefined)
2581 relativeEnd = ToInteger(end);
2583 if (relativeEnd <
0)
2584 final = max(len + relativeEnd,
0);
2586 final = min(relativeEnd, len);
2587 var count = min(final - from, len - to);
2589 if (from < to && to < from + count) {
2591 from = from + count -
1;
2592 to = to + count -
1;
2597 var fromKey = String(from);
2598 var toKey = String(to);
2599 var fromPresent = HasProperty(o, fromKey);
2601 var fromVal = o[fromKey];
2606 from = from + direction;
2607 to = to + direction;
2613 //
22.1.3.4 Array.prototype.entries ( )
2614 var nativeArrayIteratorMethods =
2615 ('entries' in Array.prototype && 'next' in [].entries());
2618 Array.prototype, 'entries',
2619 function entries() {
2620 return CreateArrayIterator(this, 'key+value');
2621 }, !nativeArrayIteratorMethods);
2623 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2625 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2627 Array.prototype, 'fill',
2628 function fill(value/*, start, end*/) {
2629 var start = arguments[
1],
2632 var o = ToObject(this);
2633 var lenVal = o.length;
2634 var len = ToLength(lenVal);
2636 var relativeStart = ToInteger(start);
2638 if (relativeStart <
0)
2639 k = max((len + relativeStart),
0);
2641 k = min(relativeStart, len);
2643 if (end === undefined)
2646 relativeEnd = ToInteger(end);
2648 if (relativeEnd <
0)
2649 final = max((len + relativeEnd),
0);
2651 final = min(relativeEnd, len);
2660 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2662 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2664 Array.prototype, 'find',
2665 function find(predicate) {
2666 var o = ToObject(this);
2667 var lenValue = o.length;
2668 var len = ToInteger(lenValue);
2669 if (!IsCallable(predicate)) throw TypeError();
2670 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2674 var kPresent = HasProperty(o, pk);
2677 var testResult = predicate.call(t, kValue, k, o);
2678 if (Boolean(testResult)) {
2687 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2689 Array.prototype, 'findIndex',
2690 function findIndex(predicate) {
2691 var o = ToObject(this);
2692 var lenValue = o.length;
2693 var len = ToLength(lenValue);
2694 if (!IsCallable(predicate)) throw TypeError();
2695 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2699 var kPresent = HasProperty(o, pk);
2702 var testResult = predicate.call(t, kValue, k, o);
2703 if (Boolean(testResult)) {
2712 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2713 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2714 //
22.1.3.12 Array.prototype.join (separator)
2716 //
22.1.3.13 Array.prototype.keys ( )
2718 Array.prototype, 'keys',
2720 return CreateArrayIterator(this, 'key');
2721 }, !nativeArrayIteratorMethods);
2723 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2724 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2725 //
22.1.3.16 Array.prototype.pop ( )
2726 //
22.1.3.17 Array.prototype.push ( ...items )
2727 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2728 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2729 //
22.1.3.20 Array.prototype.reverse ( )
2730 //
22.1.3.21 Array.prototype.shift ( )
2731 //
22.1.3.22 Array.prototype.slice (start, end)
2732 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2733 //
22.1.3.24 Array.prototype.sort (comparefn)
2734 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2735 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2736 //
22.1.3.27 Array.prototype.toString ( )
2737 //
22.1.3.28 Array.prototype.unshift ( ...items )
2739 //
22.1.3.29 Array.prototype.values ( )
2741 Array.prototype, 'values',
2743 return CreateArrayIterator(this, 'value');
2744 }, !nativeArrayIteratorMethods);
2746 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2748 Array.prototype, $$iterator,
2749 Array.prototype.values
2752 //
22.1.3.31 Array.prototype [ @@unscopables ]
2753 //
22.1.4 Properties of Array Instances
2756 //
22.1.5 Array Iterator Objects
2757 function ArrayIterator() {}
2759 //
22.1.5.1 CreateArrayIterator Abstract Operation
2760 function CreateArrayIterator(array, kind) {
2761 var o = ToObject(array);
2762 var iterator = new ArrayIterator;
2763 set_internal(iterator, '[[IteratedObject]]', o);
2764 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2765 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2769 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2770 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2771 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2773 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2775 $ArrayIteratorPrototype$, 'next',
2777 var o = strict(this);
2778 if (Type(o) !== 'object') throw TypeError();
2779 var a = o['[[IteratedObject]]'],
2780 index = o['[[ArrayIteratorNextIndex]]'],
2781 itemKind = o['[[ArrayIterationKind]]'],
2782 lenValue = a.length,
2783 len = ToUint32(lenValue),
2786 if (itemKind.indexOf('sparse') !== -
1) {
2788 while (!found && index < len) {
2789 elementKey = String(index);
2790 found = HasProperty(a, elementKey);
2797 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2798 return CreateIterResultObject(undefined, true);
2801 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2802 if (itemKind.indexOf('value') !== -
1)
2803 elementValue = a[elementKey];
2804 if (itemKind.indexOf('key+value') !== -
1)
2805 return CreateIterResultObject([elementKey, elementValue], false);
2806 if (itemKind.indexOf('key') !== -
1)
2807 return CreateIterResultObject(elementKey, false);
2808 if (itemKind === 'value')
2809 return CreateIterResultObject(elementValue, false);
2810 throw Error('Internal error');
2813 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2814 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2816 //
22.1.5.3 Properties of Array Iterator Instances
2819 // ---------------------------------------
2820 //
22.2 TypedArray Objects
2821 // ---------------------------------------
2823 // See typedarray.js for TypedArray polyfill
2825 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2826 'Int16Array', 'Uint16Array',
2827 'Int32Array', 'Uint32Array',
2828 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2829 if (!($TypedArrayName$ in global))
2831 var $TypedArray$ = global[$TypedArrayName$];
2833 //
22.2.1 The %TypedArray% Intrinsic Object
2834 //
22.2.1.1 %TypedArray% ( length )
2835 //
22.2.1.2 %TypedArray% ( typedArray )
2836 //
22.2.1.3 %TypedArray% ( object )
2837 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2838 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2839 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2841 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2843 $TypedArray$, 'from',
2844 function from(source) {
2845 var mapfn = arguments[
1];
2846 var thisArg = arguments[
2];
2848 var c = strict(this);
2849 if (!IsConstructor(c)) throw TypeError();
2850 if (mapfn === undefined) {
2851 var mapping = false;
2853 if (IsCallable(mapfn)) throw TypeError();
2857 var usingIterator = GetMethod(source, $$iterator);
2858 if (usingIterator !== undefined) {
2859 var iterator = GetIterator(source, usingIterator);
2862 while (next !== false) {
2863 next = IteratorStep(iterator);
2864 if (next !== false) {
2865 var nextValue = IteratorValue(next);
2866 values.push(nextValue);
2869 var len = values.length;
2870 var newObj = new c(len);
2873 var kValue = values.shift();
2875 var mappedValue = mapfn.call(t, kValue);
2877 mappedValue = kValue;
2879 newObj[k] = mappedValue;
2882 console.assert(values.length ===
0);
2885 var arrayLike = ToObject(source);
2886 var lenValue = arrayLike.length;
2887 len = ToLength(lenValue);
2888 newObj = new c(len);
2891 kValue = arrayLike[k];
2893 mappedValue = mapfn.call(t, kValue, k);
2895 mappedValue = kValue;
2897 newObj[k] = mappedValue;
2903 //
22.2.2.2 %TypedArray%.of ( ...items )
2907 var items = arguments;
2909 var len = items.length;
2910 var c = strict(this);
2911 var newObj = new c(len);
2914 newObj[k] = items[k];
2920 //
22.2.2.3 %TypedArray%.prototype
2921 //
22.2.2.4 get %TypedArray% [ @@species ]
2922 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2923 //
22.2.3.1 get %TypedArray%.prototype.buffer
2924 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2925 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2926 //
22.2.3.4 %TypedArray%.prototype.constructor
2928 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2929 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2931 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2932 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2934 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2935 define($TypedArray$.prototype, 'every', Array.prototype.every);
2937 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2939 $TypedArray$.prototype, 'fill',
2940 //Array.prototype.fill // Doesn't work in Safari
7
2941 function fill(value/*, start, end*/) {
2942 var start = arguments[
1],
2945 var o = ToObject(this);
2946 var lenVal = o.length;
2947 var len = ToLength(lenVal);
2949 var relativeStart = ToInteger(start);
2951 if (relativeStart <
0) k = max((len + relativeStart),
0);
2952 else k = min(relativeStart, len);
2954 if (end === undefined) relativeEnd = len;
2955 else relativeEnd = ToInteger(end);
2957 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2958 else final = min(relativeEnd, len);
2967 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2969 $TypedArray$.prototype, 'filter',
2970 function filter(callbackfn) {
2971 var thisArg = arguments[
1];
2973 var o = ToObject(this);
2974 var lenVal = o.length;
2975 var len = ToLength(lenVal);
2976 if (!IsCallable(callbackfn)) throw TypeError();
2978 var c = o.constructor;
2984 var selected = callbackfn.call(t, kValue, k, o);
2991 var a = new c(captured);
2993 for (var i =
0; i < kept.length; ++i) {
3001 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3002 define($TypedArray$.prototype, 'find', Array.prototype.find);
3004 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3005 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3007 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3008 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3010 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3011 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3013 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3014 define($TypedArray$.prototype, 'join', Array.prototype.join);
3016 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3017 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3019 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3020 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3022 //
22.2.3.17 get %TypedArray%.prototype.length
3024 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3026 $TypedArray$.prototype, 'map',
3027 function map(callbackfn) {
3028 var thisArg = arguments[
1];
3030 var o = ToObject(this);
3031 var lenValue = o.length;
3032 var len = ToLength(lenValue);
3033 if (!IsCallable(callbackfn)) throw TypeError();
3036 var c = o.constructor;
3037 if (IsConstructor(c))
3039 if (a === undefined)
3043 var kPresent = HasProperty(o, k);
3046 var mappedValue = callbackfn.call(t, kValue, k, o);
3054 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3055 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3057 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3058 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3060 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3061 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3063 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3064 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3065 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3067 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3069 $TypedArray$.prototype, 'slice',
3070 function slice(start, end) {
3071 var o = ToObject(this);
3072 var lenVal = o.length;
3073 var len = ToLength(lenVal);
3074 var relativeStart = ToInteger(start);
3075 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3076 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3077 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3078 var count = final - k;
3079 var c = o.constructor;
3080 if (IsConstructor(c)) {
3081 var a = new c(count);
3095 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3096 define($TypedArray$.prototype, 'some', Array.prototype.some);
3098 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3100 $TypedArray$.prototype, 'sort',
3102 var comparefn = arguments[
0];
3104 function sortCompare(x, y) {
3105 console.assert(Type(x) === 'number' && Type(y) === 'number');
3106 if (x !== x && y !== y) return +
0;
3107 if (x !== x) return
1;
3108 if (y !== y) return -
1;
3109 if (comparefn !== undefined) {
3110 return comparefn(x, y);
3112 if (x < y) return -
1;
3113 if (x
> y) return
1;
3116 return Array.prototype.sort.call(this, sortCompare);
3119 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3120 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3121 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3123 //
22.2.3.29 %TypedArray%.prototype.values ( )
3124 define($TypedArray$.prototype, 'values', Array.prototype.values);
3126 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3128 $TypedArray$.prototype, $$iterator,
3129 $TypedArray$.prototype.values
3132 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3133 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3135 //
22.2.4 The TypedArray Constructors
3136 //
22.2.4.1TypedArray( ... argumentsList)
3137 //
22.2.5 Properties of the TypedArray Constructors
3138 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3139 //
22.2.5.2 TypedArray.prototype
3140 //
22.2.6 Properties of TypedArray Prototype Objects
3141 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3142 //
22.2.6.2 TypedArray.prototype.constructor
3143 //
22.2.7 Properties of TypedArray Instances
3146 // ---------------------------------------
3147 //
23 Keyed Collection
3148 // ---------------------------------------
3150 // ---------------------------------------
3152 // ---------------------------------------
3155 //
23.1.1 The Map Constructor
3157 //
23.1.1.1 Map ( [ iterable ] )
3159 function Map(/*iterable*/) {
3160 var map = strict(this);
3161 var iterable = arguments[
0];
3163 if (Type(map) !== 'object') throw TypeError();
3164 if ('[[MapData]]' in map) throw TypeError();
3166 if (iterable !== undefined) {
3167 var adder = map['set'];
3168 if (!IsCallable(adder)) throw TypeError();
3169 var iter = GetIterator(ToObject(iterable));
3171 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3172 if (iter === undefined) return map;
3174 var next = IteratorStep(iter);
3177 var nextItem = IteratorValue(next);
3178 if (Type(nextItem) !== 'object') throw TypeError();
3179 var k = nextItem[
0];
3180 var v = nextItem[
1];
3181 adder.call(map, k, v);
3187 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3188 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3189 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3190 (new global.Map([['a',
1]]).size !==
1))
3194 function MapDataIndexOf(mapData, key) {
3196 if (key === key) return mapData.keys.indexOf(key);
3197 // Slow case for NaN
3198 for (i =
0; i < mapData.keys.length; i +=
1)
3199 if (SameValueZero(mapData.keys[i], key)) return i;
3203 //
23.1.1.2 new Map ( ... argumentsList )
3204 //
23.1.2 Properties of the Map Constructor
3205 //
23.1.2.1 Map.prototype
3206 var $MapPrototype$ = {};
3207 Map.prototype = $MapPrototype$;
3209 //
23.1.2.2 get Map [ @@species ]
3211 //
23.1.3 Properties of the Map Prototype Object
3212 //
23.1.3.1 Map.prototype.clear ()
3214 Map.prototype, 'clear',
3216 var m = strict(this);
3217 if (Type(m) !== 'object') throw TypeError();
3218 if (!('[[MapData]]' in m)) throw TypeError();
3219 if (m['[[MapData]]'] === undefined) throw TypeError();
3220 var entries = m['[[MapData]]'];
3221 entries.keys.length =
0;
3222 entries.values.length =
0;
3226 //
23.1.3.2 Map.prototype.constructor
3228 //
23.1.3.3 Map.prototype.delete ( key )
3230 Map.prototype, 'delete',
3231 function delete_(key) {
3232 var m = strict(this);
3233 if (Type(m) !== 'object') throw TypeError();
3234 if (!('[[MapData]]' in m)) throw TypeError();
3235 if (m['[[MapData]]'] === undefined) throw TypeError();
3236 var entries = m['[[MapData]]'];
3237 var i = MapDataIndexOf(entries, key);
3238 if (i <
0) return false;
3239 entries.keys[i] = empty;
3240 entries.values[i] = empty;
3244 //
23.1.3.4 Map.prototype.entries ( )
3246 Map.prototype, 'entries',
3247 function entries() {
3248 var m = strict(this);
3249 if (Type(m) !== 'object') throw TypeError();
3250 return CreateMapIterator(m, 'key+value');
3253 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3255 Map.prototype, 'forEach',
3256 function forEach(callbackfn /*, thisArg*/) {
3257 var thisArg = arguments[
1];
3259 var m = strict(this);
3260 if (Type(m) !== 'object') throw TypeError();
3261 if (!('[[MapData]]' in m)) throw TypeError();
3262 if (m['[[MapData]]'] === undefined) throw TypeError();
3263 var entries = m['[[MapData]]'];
3265 if (!IsCallable(callbackfn)) {
3266 throw TypeError('First argument to forEach is not callable.');
3268 for (var i =
0; i < entries.keys.length; ++i) {
3269 if (entries.keys[i] !== empty) {
3270 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3276 //
23.1.3.6 Map.prototype.get ( key )
3278 Map.prototype, 'get',
3280 var m = strict(this);
3281 if (Type(m) !== 'object') throw TypeError();
3282 if (!('[[MapData]]' in m)) throw TypeError();
3283 if (m['[[MapData]]'] === undefined) throw TypeError();
3284 var entries = m['[[MapData]]'];
3285 var i = MapDataIndexOf(entries, key);
3286 if (i
>=
0) return entries.values[i];
3290 //
23.1.3.7 Map.prototype.has ( key )
3292 Map.prototype, 'has',
3294 var m = strict(this);
3295 if (Type(m) !== 'object') throw TypeError();
3296 if (!('[[MapData]]' in m)) throw TypeError();
3297 if (m['[[MapData]]'] === undefined) throw TypeError();
3298 var entries = m['[[MapData]]'];
3299 if (MapDataIndexOf(entries, key)
>=
0) return true;
3303 //
23.1.3.8 Map.prototype.keys ( )
3305 Map.prototype, 'keys',
3307 var m = strict(this);
3308 if (Type(m) !== 'object') throw TypeError();
3309 return CreateMapIterator(m, 'key');
3312 //
23.1.3.9 Map.prototype.set ( key , value )
3314 Map.prototype, 'set',
3315 function set(key, value) {
3316 var m = strict(this);
3317 if (Type(m) !== 'object') throw TypeError();
3318 if (!('[[MapData]]' in m)) throw TypeError();
3319 if (m['[[MapData]]'] === undefined) throw TypeError();
3320 var entries = m['[[MapData]]'];
3321 var i = MapDataIndexOf(entries, key);
3322 if (i <
0) i = entries.keys.length;
3323 if (SameValue(key, -
0)) key =
0;
3324 entries.keys[i] = key;
3325 entries.values[i] = value;
3329 //
23.1.3.10 get Map.prototype.size
3330 Object.defineProperty(
3331 Map.prototype, 'size', {
3333 var m = strict(this);
3334 if (Type(m) !== 'object') throw TypeError();
3335 if (!('[[MapData]]' in m)) throw TypeError();
3336 if (m['[[MapData]]'] === undefined) throw TypeError();
3337 var entries = m['[[MapData]]'];
3339 for (var i =
0; i < entries.keys.length; ++i) {
3340 if (entries.keys[i] !== empty)
3347 //
23.1.3.11 Map.prototype.values ( )
3349 Map.prototype, 'values',
3351 var m = strict(this);
3352 if (Type(m) !== 'object') throw TypeError();
3353 return CreateMapIterator(m, 'value');
3356 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3358 Map.prototype, $$iterator,
3360 var m = strict(this);
3361 if (Type(m) !== 'object') throw TypeError();
3362 return CreateMapIterator(m, 'key+value');
3365 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3366 define(global.Map.prototype, $$toStringTag, 'Map');
3368 //
23.1.4 Properties of Map Instances
3369 //
23.1.5 Map Iterator Objects
3372 function MapIterator() {}
3374 //
23.1.5.1 CreateMapIterator Abstract Operation
3375 function CreateMapIterator(map, kind) {
3376 if (Type(map) !== 'object') throw TypeError();
3377 if (!('[[MapData]]' in map)) throw TypeError();
3378 if (map['[[MapData]]'] === undefined) throw TypeError();
3379 var iterator = new MapIterator;
3380 set_internal(iterator, '[[Map]]', map);
3381 set_internal(iterator, '[[MapNextIndex]]',
0);
3382 set_internal(iterator, '[[MapIterationKind]]', kind);
3386 //
23.1.5.2 The %MapIteratorPrototype% Object
3387 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3388 MapIterator.prototype = $MapIteratorPrototype$;
3390 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3392 $MapIteratorPrototype$, 'next',
3394 var o = strict(this);
3395 if (Type(o) !== 'object') throw TypeError();
3396 var m = o['[[Map]]'],
3397 index = o['[[MapNextIndex]]'],
3398 itemKind = o['[[MapIterationKind]]'],
3399 entries = m['[[MapData]]'];
3400 while (index < entries.keys.length) {
3401 var e = {key: entries.keys[index], value: entries.values[index]};
3403 set_internal(o, '[[MapNextIndex]]', index);
3404 if (e.key !== empty) {
3405 if (itemKind === 'key') {
3406 return CreateIterResultObject(e.key, false);
3407 } else if (itemKind === 'value') {
3408 return CreateIterResultObject(e.value, false);
3410 return CreateIterResultObject([e.key, e.value], false);
3414 return CreateIterResultObject(undefined, true);
3417 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3418 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3420 //
23.1.5.3 Properties of Map Iterator Instances
3423 // ---------------------------------------
3425 // ---------------------------------------
3428 //
23.2.1 The Set Constructor
3429 //
23.2.1.1 Set ( [ iterable ] )
3432 function Set(/*iterable*/) {
3433 var set = strict(this);
3434 var iterable = arguments[
0];
3436 if (Type(set) !== 'object') throw TypeError();
3437 if ('[[SetData]]' in set) throw TypeError();
3439 if (iterable !== undefined) {
3440 var adder = set['add'];
3441 if (!IsCallable(adder)) throw TypeError();
3442 var iter = GetIterator(ToObject(iterable));
3444 set_internal(set, '[[SetData]]', []);
3445 if (iter === undefined) return set;
3447 var next = IteratorStep(iter);
3450 var nextValue = IteratorValue(next);
3451 adder.call(set, nextValue);
3457 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3458 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3459 (new global.Set([
1]).size !==
1))
3462 function SetDataIndexOf(setData, key) {
3465 return setData.indexOf(key);
3466 // Slow case for NaN
3467 for (i =
0; i < setData.length; i +=
1)
3468 if (SameValueZero(setData[i], key)) return i;
3472 //
23.2.1.2 new Set ( ...argumentsList )
3473 //
23.2.2 Properties of the Set Constructor
3475 //
23.2.2.1 Set.prototype
3476 var $SetPrototype$ = {};
3477 Set.prototype = $SetPrototype$;
3479 //
23.2.2.2 get Set [ @@species ]
3480 //
23.2.3 Properties of the Set Prototype Object
3482 //
23.2.3.1 Set.prototype.add (value )
3484 Set.prototype, 'add',
3485 function add(value) {
3486 var s = strict(this);
3487 if (Type(s) !== 'object') throw TypeError();
3488 if (!('[[SetData]]' in s)) throw TypeError();
3489 if (s['[[SetData]]'] === undefined) throw TypeError();
3490 if (SameValue(value, -
0)) value =
0;
3491 var entries = s['[[SetData]]'];
3492 var i = SetDataIndexOf(entries, value);
3493 if (i <
0) i = s['[[SetData]]'].length;
3494 s['[[SetData]]'][i] = value;
3499 //
23.2.3.2 Set.prototype.clear ()
3501 Set.prototype, 'clear',
3503 var s = strict(this);
3504 if (Type(s) !== 'object') throw TypeError();
3505 if (!('[[SetData]]' in s)) throw TypeError();
3506 if (s['[[SetData]]'] === undefined) throw TypeError();
3507 var entries = s['[[SetData]]'];
3512 //
23.2.3.3 Set.prototype.constructor
3513 //
23.2.3.4 Set.prototype.delete ( value )
3515 Set.prototype, 'delete',
3516 function delete_(value) {
3517 var s = strict(this);
3518 if (Type(s) !== 'object') throw TypeError();
3519 if (!('[[SetData]]' in s)) throw TypeError();
3520 if (s['[[SetData]]'] === undefined) throw TypeError();
3521 var entries = s['[[SetData]]'];
3522 var i = SetDataIndexOf(entries, value);
3523 if (i <
0) return false;
3528 //
23.2.3.5 Set.prototype.entries ( )
3530 Set.prototype, 'entries',
3531 function entries() {
3532 var s = strict(this);
3533 if (Type(s) !== 'object') throw TypeError();
3534 return CreateSetIterator(s, 'key+value');
3537 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3539 Set.prototype, 'forEach',
3540 function forEach(callbackfn/*, thisArg*/) {
3541 var thisArg = arguments[
1];
3543 var s = strict(this);
3544 if (Type(s) !== 'object') throw TypeError();
3545 if (!('[[SetData]]' in s)) throw TypeError();
3546 if (s['[[SetData]]'] === undefined) throw TypeError();
3547 var entries = s['[[SetData]]'];
3549 if (!IsCallable(callbackfn)) {
3550 throw TypeError('First argument to forEach is not callable.');
3552 for (var i =
0; i < entries.length; ++i) {
3553 if (entries[i] !== empty) {
3554 callbackfn.call(thisArg, entries[i], entries[i], s);
3559 //
23.2.3.7 Set.prototype.has ( value )
3561 Set.prototype, 'has',
3563 var s = strict(this);
3564 if (Type(s) !== 'object') throw TypeError();
3565 if (!('[[SetData]]' in s)) throw TypeError();
3566 if (s['[[SetData]]'] === undefined) throw TypeError();
3567 var entries = s['[[SetData]]'];
3568 return SetDataIndexOf(entries, key) !== -
1;
3571 //
23.2.3.8 Set.prototype.keys ( )
3572 // See Set.prototype.values
3574 //
23.2.3.9 get Set.prototype.size
3575 Object.defineProperty(
3576 Set.prototype, 'size', {
3578 var s = strict(this);
3579 if (Type(s) !== 'object') throw TypeError();
3580 if (!('[[SetData]]' in s)) throw TypeError();
3581 if (s['[[SetData]]'] === undefined) throw TypeError();
3582 var entries = s['[[SetData]]'];
3584 for (var i =
0; i < entries.length; ++i) {
3585 if (entries[i] !== empty)
3592 //
23.2.3.10 Set.prototype.values ( )
3594 Set.prototype, 'values',
3596 var s = strict(this);
3597 if (Type(s) !== 'object') throw TypeError();
3598 return CreateSetIterator(s, 'value');
3600 // NOTE: function name is still 'values':
3601 Set.prototype.keys = Set.prototype.values;
3603 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3605 Set.prototype, $$iterator,
3607 var s = strict(this);
3608 if (Type(s) !== 'object') throw TypeError();
3609 return CreateSetIterator(s);
3612 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3613 define(global.Set.prototype, $$toStringTag, 'Set');
3615 //
23.2.4 Properties of Set Instances
3616 //
23.2.5 Set Iterator Objects
3618 function SetIterator() {}
3620 //
23.2.5.1 CreateSetIterator Abstract Operation
3621 function CreateSetIterator(set, kind) {
3622 if (Type(set) !== 'object') throw TypeError();
3623 if (!('[[SetData]]' in set)) throw TypeError();
3624 if (set['[[SetData]]'] === undefined) throw TypeError();
3625 var iterator = new SetIterator;
3626 set_internal(iterator, '[[IteratedSet]]', set);
3627 set_internal(iterator, '[[SetNextIndex]]',
0);
3628 set_internal(iterator, '[[SetIterationKind]]', kind);
3632 //
23.2.5.2 The %SetIteratorPrototype% Object
3633 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3634 SetIterator.prototype = $SetIteratorPrototype$;
3636 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3638 $SetIteratorPrototype$, 'next',
3640 var o = strict(this);
3641 if (Type(o) !== 'object') throw TypeError();
3642 var s = o['[[IteratedSet]]'],
3643 index = o['[[SetNextIndex]]'],
3644 itemKind = o['[[SetIterationKind]]'],
3645 entries = s['[[SetData]]'];
3646 while (index < entries.length) {
3647 var e = entries[index];
3649 set_internal(o, '[[SetNextIndex]]', index);
3651 if (itemKind === 'key+value')
3652 return CreateIterResultObject([e, e], false);
3653 return CreateIterResultObject(e, false);
3656 return CreateIterResultObject(undefined, true);
3659 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3660 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3662 //
23.2.5.3 Properties of Set Iterator Instances
3666 // ---------------------------------------
3667 //
23.3 WeakMap Objects
3668 // ---------------------------------------
3671 //
23.3.1 The WeakMap Constructor
3672 //
23.3.1.1 WeakMap ( [ iterable ] )
3674 function WeakMap(/*iterable*/) {
3675 var map = strict(this);
3676 var iterable = arguments[
0];
3678 if (Type(map) !== 'object') throw TypeError();
3679 if ('[[WeakMapData]]' in map) throw TypeError();
3681 if (iterable !== undefined) {
3682 var adder = map['set'];
3683 if (!IsCallable(adder)) throw TypeError();
3684 var iter = GetIterator(ToObject(iterable));
3686 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3687 if (iter === undefined) return map;
3689 var next = IteratorStep(iter);
3692 var nextValue = IteratorValue(next);
3693 if (Type(nextValue) !== 'object') throw TypeError();
3694 var k = nextValue[
0];
3695 var v = nextValue[
1];
3696 adder.call(map, k, v);
3702 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3703 global.WeakMap = WeakMap;
3705 //
23.3.2 Properties of the WeakMap Constructor
3706 //
23.3.2.1 WeakMap.prototype
3707 var $WeakMapPrototype$ = {};
3708 WeakMap.prototype = $WeakMapPrototype$;
3712 //
23.3.2.2 WeakMap[ @@create ] ( )
3713 //
23.3.3 Properties of the WeakMap Prototype Object
3715 //
23.3.3.1 WeakMap.prototype.constructor
3717 //
23.3.3.2 WeakMap.prototype.delete ( key )
3719 WeakMap.prototype, 'delete',
3720 function delete_(key) {
3721 var M = strict(this);
3722 if (Type(M) !== 'object') throw TypeError();
3723 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3724 if (Type(key) !== 'object') throw TypeError('Expected object');
3725 return M['[[WeakMapData]]'].remove(key);
3728 //
23.3.3.3 WeakMap.prototype.get ( key )
3730 WeakMap.prototype, 'get',
3731 function get(key, defaultValue) {
3732 var M = strict(this);
3733 if (Type(M) !== 'object') throw TypeError();
3734 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3735 if (Type(key) !== 'object') throw TypeError('Expected object');
3736 return M['[[WeakMapData]]'].get(key, defaultValue);
3739 //
23.3.3.4 WeakMap.prototype.has ( key )
3741 WeakMap.prototype, 'has',
3743 var M = strict(this);
3744 if (Type(M) !== 'object') throw TypeError();
3745 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3746 if (Type(key) !== 'object') throw TypeError('Expected object');
3747 return M['[[WeakMapData]]'].has(key);
3750 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3752 WeakMap.prototype, 'set',
3753 function set(key, value) {
3754 var M = strict(this);
3755 if (Type(M) !== 'object') throw TypeError();
3756 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3757 if (Type(key) !== 'object') throw TypeError('Expected object');
3758 M['[[WeakMapData]]'].set(key, value);
3762 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3763 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3765 //
23.3.4 Properties of WeakMap Instances
3767 // Polyfills for incomplete native implementations:
3769 var wm = new global.WeakMap();
3770 var orig = global.WeakMap.prototype.set;
3771 define(global.WeakMap.prototype, 'set', function set() {
3772 orig.apply(this, arguments);
3774 }, wm.set({},
0) !== wm);
3778 // ---------------------------------------
3779 //
23.4 WeakSet Objects
3780 // ---------------------------------------
3783 //
23.4.1 The WeakSet Constructor
3784 //
23.4.1.1 WeakSet ( [ iterable ] )
3786 function WeakSet(/*iterable*/) {
3787 var set = strict(this);
3788 var iterable = arguments[
0];
3790 if (Type(set) !== 'object') throw TypeError();
3791 if ('[[WeakSetData]]' in set) throw TypeError();
3793 if (iterable !== undefined) {
3794 var adder = set['add'];
3795 if (!IsCallable(adder)) throw TypeError();
3796 var iter = GetIterator(ToObject(iterable));
3798 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3799 if (iter === undefined) return set;
3801 var next = IteratorStep(iter);
3804 var nextValue = IteratorValue(next);
3805 adder.call(set, nextValue);
3811 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3812 global.WeakSet = WeakSet;
3814 //
23.4.2 Properties of the WeakSet Constructor
3815 //
23.4.2.1 WeakSet.prototype
3816 var $WeakSetPrototype$ = {};
3817 WeakSet.prototype = $WeakSetPrototype$;
3819 //
23.4.3 Properties of the WeakSet Prototype Object
3820 //
23.4.3.1 WeakSet.prototype.add (value )
3822 WeakSet.prototype, 'add',
3823 function add(value) {
3824 var S = strict(this);
3825 if (Type(S) !== 'object') throw TypeError();
3826 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3827 if (Type(value) !== 'object') throw TypeError('Expected object');
3828 S['[[WeakSetData]]'].set(value, true);
3832 //
23.4.3.2 WeakSet.prototype.constructor
3833 //
23.4.3.3 WeakSet.prototype.delete ( value )
3835 WeakSet.prototype, 'delete',
3836 function delete_(value) {
3837 var S = strict(this);
3838 if (Type(S) !== 'object') throw TypeError();
3839 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3840 if (Type(value) !== 'object') throw TypeError('Expected object');
3841 return S['[[WeakSetData]]'].remove(value);
3844 //
23.4.3.4 WeakSet.prototype.has ( value )
3846 WeakSet.prototype, 'has',
3848 var S = strict(this);
3849 if (Type(S) !== 'object') throw TypeError();
3850 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3851 if (Type(key) !== 'object') throw TypeError('Expected object');
3852 return S['[[WeakSetData]]'].has(key);
3855 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3856 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3858 //
23.4.4 Properties of WeakSet Instances
3860 // Polyfills for incomplete native implementations:
3862 var ws = new global.WeakSet();
3863 var orig = global.WeakSet.prototype.add;
3864 define(global.WeakSet.prototype, 'add', function add() {
3865 orig.apply(this, arguments);
3867 }, ws.add({}) !== ws);
3871 // ---------------------------------------
3872 //
24 Structured Data
3873 // ---------------------------------------
3875 // ---------------------------------------
3876 //
24.1 ArrayBuffer Objects
3877 // ---------------------------------------
3879 // See typedarray.js for TypedArray polyfill
3882 if (!('ArrayBuffer' in global))
3885 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3886 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3887 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3888 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3889 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3890 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3891 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3892 //
24.1.2 The ArrayBuffer Constructor
3893 //
24.1.2.1 ArrayBuffer( length )
3894 //
24.1.3 Properties of the ArrayBuffer Constructor
3896 //
24.1.3.1 ArrayBuffer.isView ( arg )
3898 ArrayBuffer, 'isView',
3899 function isView(arg) {
3900 if (Type(arg) !== 'object') return false;
3901 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3905 //
24.1.3.2 ArrayBuffer.prototype
3906 //
24.1.3.3 get ArrayBuffer [ @@species ]
3907 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3908 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3909 //
24.1.4.2 ArrayBuffer.prototype.constructor
3910 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3912 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3913 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3915 //
24.1.5 Properties of the ArrayBuffer Instances
3918 // ---------------------------------------
3919 //
24.2 DataView Objects
3920 // ---------------------------------------
3922 // See typedarray.js for TypedArray polyfill
3925 if (!('DataView' in global))
3928 //
24.2.1 Abstract Operations For DataView Objects
3929 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3930 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3931 //
24.2.2 The DataView Constructor
3932 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3933 //
24.2.3 Properties of the DataView Constructor
3934 //
24.2.3.1 DataView.prototype
3935 //
24.2.4 Properties of the DataView Prototype Object
3936 //
24.2.4.1 get DataView.prototype.buffer
3937 //
24.2.4.2 get DataView.prototype.byteLength
3938 //
24.2.4.3 get DataView.prototype.byteOffset
3939 //
24.2.4.4 DataView.prototype.constructor
3940 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3941 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3942 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3943 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3944 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3945 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3946 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3947 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3948 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3949 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3950 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3951 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3952 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3953 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3954 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3955 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3957 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3958 define(DataView.prototype, $$toStringTag, 'DataView');
3960 //
24.2.5 Properties of DataView Instances
3963 // ---------------------------------------
3964 //
24.3 The JSON Object
3965 // ---------------------------------------
3967 //
24.3.1 JSON.parse ( text [ , reviver ] )
3968 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3969 //
24.3.3 JSON [ @@toStringTag ]
3970 define(JSON, $$toStringTag, 'JSON');
3972 // ---------------------------------------
3974 // ---------------------------------------
3976 //
25.1.1 Common Iteration Interfaces
3977 //
25.1.1.1 The Iterable Interface
3978 //
25.1.1.2 The Iterator Interface
3979 //
25.1.1.3 The IteratorResult Interface
3981 //
25.1.2 The %IteratorPrototype% Object
3982 // Defined earlier, so other prototypes can reference it.
3983 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3984 define($IteratorPrototype$, $$iterator, function() {
3989 // ---------------------------------------
3990 //
25.4 Promise Objects
3991 // ---------------------------------------
3994 //
25.4 Promise Objects
3996 //
25.4.1 Promise Abstract Operations
3998 //
25.4.1.1 PromiseCapability Records
3999 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4001 function IfAbruptRejectPromise(value, capability) {
4002 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4003 return capability['[[Promise]]'];
4006 //
25.4.1.2 PromiseReaction Records
4008 //
25.4.1.3 CreateResolvingFunctions ( promise )
4010 function CreateResolvingFunctions(promise) {
4011 var alreadyResolved = {'[[value]]': false};
4012 var resolve = PromiseResolveFunction();
4013 set_internal(resolve, '[[Promise]]', promise);
4014 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4015 var reject = PromiseRejectFunction();
4016 set_internal(reject, '[[Promise]]', promise);
4017 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4018 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4021 //
25.4.1.3.1 Promise Reject Functions
4023 function PromiseRejectFunction() {
4024 var F = function(reason) {
4025 console.assert(Type(F['[[Promise]]']) === 'object');
4026 var promise = F['[[Promise]]'];
4027 var alreadyResolved = F['[[AlreadyResolved]]'];
4028 if (alreadyResolved['[[value]]']) return undefined;
4029 set_internal(alreadyResolved, '[[value]]', true);
4030 return RejectPromise(promise, reason);
4035 //
25.4.1.3.2 Promise Resolve Functions
4037 function PromiseResolveFunction() {
4038 var F = function(resolution) {
4039 console.assert(Type(F['[[Promise]]']) === 'object');
4040 var promise = F['[[Promise]]'];
4041 var alreadyResolved = F['[[AlreadyResolved]]'];
4042 if (alreadyResolved['[[value]]']) return undefined;
4043 set_internal(alreadyResolved, '[[value]]', true);
4045 if (SameValue(resolution, promise)) {
4046 var selfResolutionError = TypeError();
4047 return RejectPromise(promise, selfResolutionError);
4049 if (Type(resolution) !== 'object')
4050 return FulfillPromise(promise, resolution);
4052 var then = resolution['then'];
4054 return RejectPromise(promise, then);
4056 if (!IsCallable(then))
4057 return FulfillPromise(promise, resolution);
4058 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4064 //
25.4.1.4 FulfillPromise ( promise, value )
4066 function FulfillPromise(promise, value) {
4067 console.assert(promise['[[PromiseState]]'] === 'pending');
4068 var reactions = promise['[[PromiseFulfillReactions]]'];
4069 set_internal(promise, '[[PromiseResult]]', value);
4070 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4071 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4072 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4073 return TriggerPromiseReactions(reactions, value);
4076 //
25.4.1.5 NewPromiseCapability ( C )
4078 function NewPromiseCapability(c) {
4079 // To keep Promise hermetic, this doesn't look much like the spec.
4080 return CreatePromiseCapabilityRecord(undefined, c);
4083 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4085 function CreatePromiseCapabilityRecord(promise, constructor) {
4086 // To keep Promise hermetic, this doesn't look much like the spec.
4087 console.assert(IsConstructor(constructor));
4088 var promiseCapability = {};
4089 set_internal(promiseCapability, '[[Promise]]', promise);
4090 set_internal(promiseCapability, '[[Resolve]]', undefined);
4091 set_internal(promiseCapability, '[[Reject]]', undefined);
4092 var executor = GetCapabilitiesExecutor();
4093 set_internal(executor, '[[Capability]]', promiseCapability);
4095 // NOTE: Differs from spec; object is constructed here
4096 var constructorResult = promise = new constructor(executor);
4097 set_internal(promiseCapability, '[[Promise]]', promise);
4099 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4100 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4101 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4102 return promiseCapability;
4105 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4107 function GetCapabilitiesExecutor() {
4108 var F = function(resolve, reject) {
4109 console.assert(F['[[Capability]]']);
4110 var promiseCapability = F['[[Capability]]'];
4111 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4112 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4113 set_internal(promiseCapability, '[[Resolve]]', resolve);
4114 set_internal(promiseCapability, '[[Reject]]', reject);
4120 //
25.4.1.6 IsPromise ( x )
4122 function IsPromise(x) {
4123 if (Type(x) !== 'object') return false;
4124 if (!('[[PromiseState]]' in x)) return false;
4125 if (x['[[PromiseState]]'] === undefined) return false;
4129 //
25.4.1.7 RejectPromise ( promise, reason )
4131 function RejectPromise(promise, reason) {
4132 console.assert(promise['[[PromiseState]]'] === 'pending');
4133 var reactions = promise['[[PromiseRejectReactions]]'];
4134 set_internal(promise, '[[PromiseResult]]', reason);
4135 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4136 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4137 set_internal(promise, '[[PromiseState]]', 'rejected');
4138 return TriggerPromiseReactions(reactions, reason);
4141 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4143 function TriggerPromiseReactions(reactions, argument) {
4144 for (var i =
0, len = reactions.length; i < len; ++i)
4145 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4149 //
25.4.2 Promise Jobs
4151 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4153 function PromiseReactionJob(reaction, argument) {
4154 var promiseCapability = reaction['[[Capabilities]]'];
4155 var handler = reaction['[[Handler]]'];
4156 var handlerResult, status;
4158 if (handler === 'Identity') handlerResult = argument;
4159 else if (handler === 'Thrower') throw argument;
4160 else handlerResult = handler.call(undefined, argument);
4161 } catch (handlerResult) {
4162 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4163 NextJob(status); return;
4165 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4169 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4171 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4172 // SPEC BUG: promise vs. promiseToResolve
4173 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4175 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4176 resolvingFunctions['[[Reject]]']);
4177 } catch (thenCallResult) {
4178 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4179 NextJob(status); return;
4181 NextJob(thenCallResult);
4184 //
25.4.3 The Promise Constructor
4186 //
25.4.3.1 Promise ( executor )
4188 function Promise(executor) {
4189 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4190 Object.defineProperty(this, '[[PromiseState]]', config);
4191 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4192 Object.defineProperty(this, '[[PromiseResult]]', config);
4193 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4194 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4197 if (Type(promise) !== 'object') throw new TypeError();
4198 if (!('[[PromiseState]]' in promise)) throw TypeError();
4199 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4200 if (!IsCallable(executor)) throw TypeError();
4202 set_internal(promise, '[[PromiseConstructor]]', Promise);
4204 return InitializePromise(promise, executor);
4207 //
25.4.3.1.1 InitializePromise ( promise, executor )
4209 function InitializePromise(promise, executor) {
4210 console.assert('[[PromiseState]]' in promise);
4211 console.assert(IsCallable(executor));
4212 set_internal(promise, '[[PromiseState]]', 'pending');
4213 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4214 set_internal(promise, '[[PromiseRejectReactions]]', []);
4215 var resolvingFunctions = CreateResolvingFunctions(promise);
4217 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4218 resolvingFunctions['[[Reject]]']);
4219 } catch (completion) {
4220 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4225 //
25.4.4 Properties of the Promise Constructor
4226 //
25.4.4.1 Promise.all ( iterable )
4228 define(Promise, 'all', function all(iterable) {
4229 var c = strict(this);
4230 var promiseCapability = NewPromiseCapability(c);
4232 var iterator = GetIterator(iterable);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 var remainingElementsCount = { value:
1 };
4242 var next = IteratorStep(iterator);
4244 promiseCapability['[[Reject]]'].call(undefined, value);
4245 return promiseCapability['[[Promise]]'];
4248 remainingElementsCount.value -=
1;
4249 if (remainingElementsCount.value ===
0) {
4250 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4254 return promiseCapability['[[Promise]]'];
4257 var nextValue = IteratorValue(next);
4259 promiseCapability['[[Reject]]'].call(undefined, value);
4260 return promiseCapability['[[Promise]]'];
4263 var nextPromise = c.resolve(nextValue);
4265 promiseCapability['[[Reject]]'].call(undefined, value);
4266 return promiseCapability['[[Promise]]'];
4268 var resolveElement = PromiseAllResolveElementFunction();
4269 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4270 set_internal(resolveElement, '[[Index]]', index);
4271 set_internal(resolveElement, '[[Values]]', values);
4272 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4273 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4274 remainingElementsCount.value +=
1;
4276 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4278 promiseCapability['[[Reject]]'].call(undefined, value);
4279 return promiseCapability['[[Promise]]'];
4285 //
25.4.4.1.1 Promise.all Resolve Element Functions
4287 function PromiseAllResolveElementFunction() {
4288 var F = function(x) {
4289 var alreadyCalled = F['[[AlreadyCalled]]'];
4290 if (alreadyCalled.value) return undefined;
4291 alreadyCalled.value = true;
4292 var index = F['[[Index]]'];
4293 var values = F['[[Values]]'];
4294 var promiseCapability = F['[[Capabilities]]'];
4295 var remainingElementsCount = F['[[RemainingElements]]'];
4299 promiseCapability['[[Reject]]'].call(undefined, result);
4300 return promiseCapability['[[Promise]]'];
4302 remainingElementsCount.value -=
1;
4303 if (remainingElementsCount.value ===
0)
4304 return promiseCapability['[[Resolve]]'].call(undefined, values);
4310 //
25.4.4.2 Promise.prototype
4312 Promise.prototype = {};
4314 //
25.4.4.3 Promise.race ( iterable )
4316 define(Promise, 'race', function race(iterable) {
4317 var c = strict(this);
4318 var promiseCapability = NewPromiseCapability(c);
4320 var iterator = GetIterator(iterable);
4322 promiseCapability['[[Reject]]'].call(undefined, value);
4323 return promiseCapability['[[Promise]]'];
4327 var next = IteratorStep(iterator);
4329 promiseCapability['[[Reject]]'].call(undefined, value);
4330 return promiseCapability['[[Promise]]'];
4332 if (!next) return promiseCapability['[[Promise]]'];
4334 var nextValue = IteratorValue(next);
4336 promiseCapability['[[Reject]]'].call(undefined, value);
4337 return promiseCapability['[[Promise]]'];
4340 var nextPromise = c.resolve(nextValue);
4342 promiseCapability['[[Reject]]'].call(undefined, value);
4343 return promiseCapability['[[Promise]]'];
4346 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4348 promiseCapability['[[Reject]]'].call(undefined, value);
4349 return promiseCapability['[[Promise]]'];
4354 //
25.4.4.4 Promise.reject ( r )
4356 define(Promise, 'reject', function reject(r) {
4357 var c = strict(this);
4358 var promiseCapability = NewPromiseCapability(c);
4359 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4360 return promiseCapability['[[Promise]]'];
4363 //
25.4.4.5 Promise.resolve ( x )
4365 define(Promise, 'resolve', function resolve(x) {
4366 var c = strict(this);
4368 var constructor = x['[[PromiseConstructor]]'];
4369 if (SameValue(constructor, c)) return x;
4371 var promiseCapability = NewPromiseCapability(c);
4372 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4373 return promiseCapability['[[Promise]]'];
4376 //
25.4.4.6 Promise [ @@create ] ( )
4377 //
25.4.4.6.1 AllocatePromise ( constructor )
4378 //
25.4.5 Properties of the Promise Prototype Object
4379 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4381 define(Promise.prototype, 'catch', function catch_(onRejected) {
4383 return promise.then(undefined, onRejected);
4386 //
25.4.5.2 Promise.prototype.constructor
4388 Promise.prototype.constructor = Promise;
4390 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4392 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4394 if (!IsPromise(promise)) throw TypeError();
4395 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4396 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4397 var c = promise.constructor;
4398 var promiseCapability = NewPromiseCapability(c);
4399 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4400 '[[Handler]]': onFulfilled };
4401 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4402 '[[Handler]]': onRejected };
4403 if (promise['[[PromiseState]]'] === 'pending') {
4404 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4405 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4406 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4407 var value = promise['[[PromiseResult]]'];
4408 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4409 } else if (promise['[[PromiseState]]'] === 'rejected') {
4410 var reason = promise['[[PromiseResult]]'];
4411 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4413 return promiseCapability['[[Promise]]'];
4416 //
25.4.6 Properties of Promise Instances
4418 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4419 global.Promise = Promise;
4421 // Patch early Promise.cast vs. Promise.resolve implementations
4422 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4425 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4426 define(Promise.prototype, $$toStringTag, 'Promise');
4428 // ---------------------------------------
4430 // ---------------------------------------
4433 //
26.1 The Reflect Object
4434 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4435 global.Reflect = {};
4437 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4440 function apply(target, thisArgument, argumentsList) {
4441 if (!IsCallable(target)) throw TypeError();
4442 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4445 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4447 Reflect, 'construct',
4448 function construct(target, argumentsList) {
4449 return __cons(target, argumentsList);
4452 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4454 Reflect, 'defineProperty',
4455 function defineProperty(target, propertyKey, attributes) {
4457 Object.defineProperty(target, propertyKey, attributes);
4464 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4466 Reflect, 'deleteProperty',
4467 function deleteProperty(target,name) {
4469 delete target[name];
4470 return !HasOwnProperty(target, name);
4476 //
26.1.5 Reflect.enumerate ( target )
4478 Reflect, 'enumerate',
4479 function enumerate(target) {
4480 target = ToObject(target);
4481 var iterator = Enumerate(target);
4485 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4488 function get(target, name, receiver) {
4489 target = ToObject(target);
4490 name = String(name);
4491 receiver = (receiver === undefined) ? target : ToObject(receiver);
4492 var desc = getPropertyDescriptor(target, name);
4493 if (desc && 'get' in desc)
4494 return Function.prototype.call.call(desc['get'], receiver);
4495 return target[name];
4498 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4500 Reflect, 'getOwnPropertyDescriptor',
4501 Object.getOwnPropertyDescriptor);
4503 //
26.1.8 Reflect.getPrototypeOf ( target )
4505 Reflect, 'getPrototypeOf',
4506 Object.getPrototypeOf);
4508 //
26.1.9 Reflect.has ( target, propertyKey )
4511 function has(target,name) {
4512 return String(name) in ToObject(target);
4515 //
26.1.10 Reflect.isExtensible (target)
4517 Reflect, 'isExtensible',
4518 Object.isExtensible);
4520 //
26.1.11 Reflect.ownKeys ( target )
4523 function ownKeys(target) {
4524 var obj = ToObject(target);
4525 return Object.getOwnPropertyNames(obj);
4528 //
26.1.12 Reflect.preventExtensions ( target )
4530 Reflect, 'preventExtensions',
4531 function preventExtensions(target) {
4532 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4535 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4538 function set(target, name, value, receiver) {
4539 target = ToObject(target);
4540 name = String(name);
4541 receiver = (receiver === undefined) ? target : ToObject(receiver);
4542 var desc = getPropertyDescriptor(target, name);
4544 if (desc && 'set' in desc)
4545 Function.prototype.call.call(desc['set'], receiver, value);
4547 target[name] = value;
4554 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4556 Reflect, 'setPrototypeOf',
4557 function setPrototypeOf(target, proto) {
4559 target.__proto__ = proto;
4560 return Reflect.getPrototypeOf(target) === proto;
4568 // ---------------------------------------
4569 //
26.2 Proxy Objects
4570 // ---------------------------------------
4572 // Not polyfillable.
4576 // This helper is defined outside the main scope so that the use of
4577 // 'eval' does not taint the scope for minifiers.
4578 function __cons(t, a) {
4579 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4582 <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){
4585 exports.byteLength = byteLength
4586 exports.toByteArray = toByteArray
4587 exports.fromByteArray = fromByteArray
4591 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4593 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4594 for (var i =
0, len = code.length; i < len; ++i) {
4596 revLookup[code.charCodeAt(i)] = i
4599 revLookup['-'.charCodeAt(
0)] =
62
4600 revLookup['_'.charCodeAt(
0)] =
63
4602 function placeHoldersCount (b64) {
4603 var len = b64.length
4605 throw new Error('Invalid string. Length must be a multiple of
4')
4608 // the number of equal signs (place holders)
4609 // if there are two placeholders, than the two characters before it
4610 // represent one byte
4611 // if there is only one, then the three characters before it represent
2 bytes
4612 // this is just a cheap hack to not do indexOf twice
4613 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4616 function byteLength (b64) {
4617 // base64 is
4/
3 + up to two characters of the original data
4618 return b64.length *
3 /
4 - placeHoldersCount(b64)
4621 function toByteArray (b64) {
4622 var i, j, l, tmp, placeHolders, arr
4623 var len = b64.length
4624 placeHolders = placeHoldersCount(b64)
4626 arr = new Arr(len *
3 /
4 - placeHolders)
4628 // if there are placeholders, only get up to the last complete
4 chars
4629 l = placeHolders
> 0 ? len -
4 : len
4633 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4634 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4635 arr[L++] = (tmp
>> 16) &
0xFF
4636 arr[L++] = (tmp
>> 8) &
0xFF
4637 arr[L++] = tmp &
0xFF
4640 if (placeHolders ===
2) {
4641 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4642 arr[L++] = tmp &
0xFF
4643 } else if (placeHolders ===
1) {
4644 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4645 arr[L++] = (tmp
>> 8) &
0xFF
4646 arr[L++] = tmp &
0xFF
4652 function tripletToBase64 (num) {
4653 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4656 function encodeChunk (uint8, start, end) {
4659 for (var i = start; i < end; i +=
3) {
4660 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4661 output.push(tripletToBase64(tmp))
4663 return output.join('')
4666 function fromByteArray (uint8) {
4668 var len = uint8.length
4669 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4672 var maxChunkLength =
16383 // must be multiple of
3
4674 // go through the array every three bytes, we'll deal with trailing stuff later
4675 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4676 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4679 // pad the end with zeros, but make sure to not forget the extra bytes
4680 if (extraBytes ===
1) {
4681 tmp = uint8[len -
1]
4682 output += lookup[tmp
>> 2]
4683 output += lookup[(tmp <<
4) &
0x3F]
4685 } else if (extraBytes ===
2) {
4686 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4687 output += lookup[tmp
>> 10]
4688 output += lookup[(tmp
>> 4) &
0x3F]
4689 output += lookup[(tmp <<
2) &
0x3F]
4695 return parts.join('')
4698 },{}],
2:[function(require,module,exports){
4700 * The buffer module from node.js, for the browser.
4702 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4705 /* eslint-disable no-proto */
4709 var base64 = require('base64-js')
4710 var ieee754 = require('ieee754')
4712 exports.Buffer = Buffer
4713 exports.SlowBuffer = SlowBuffer
4714 exports.INSPECT_MAX_BYTES =
50
4716 var K_MAX_LENGTH =
0x7fffffff
4717 exports.kMaxLength = K_MAX_LENGTH
4720 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4721 * === true Use Uint8Array implementation (fastest)
4722 * === false Print warning and recommend using `buffer` v4.x which has an Object
4723 * implementation (most compatible, even IE6)
4725 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4726 * Opera
11.6+, iOS
4.2+.
4728 * We report that the browser does not support typed arrays if the are not subclassable
4729 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4730 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4731 * for __proto__ and has a buggy typed array implementation.
4733 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4735 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4736 typeof console.error === 'function') {
4738 'This browser lacks typed array (Uint8Array) support which is required by ' +
4739 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4743 function typedArraySupport () {
4744 // Can typed array instances can be augmented?
4746 var arr = new Uint8Array(
1)
4747 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4748 return arr.foo() ===
42
4754 function createBuffer (length) {
4755 if (length
> K_MAX_LENGTH) {
4756 throw new RangeError('Invalid typed array length')
4758 // Return an augmented `Uint8Array` instance
4759 var buf = new Uint8Array(length)
4760 buf.__proto__ = Buffer.prototype
4765 * The Buffer constructor returns instances of `Uint8Array` that have their
4766 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4767 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4768 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4769 * returns a single octet.
4771 * The `Uint8Array` prototype remains unmodified.
4774 function Buffer (arg, encodingOrOffset, length) {
4776 if (typeof arg === 'number') {
4777 if (typeof encodingOrOffset === 'string') {
4779 'If encoding is specified then the first argument must be a string'
4782 return allocUnsafe(arg)
4784 return from(arg, encodingOrOffset, length)
4787 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4788 if (typeof Symbol !== 'undefined' && Symbol.species &&
4789 Buffer[Symbol.species] === Buffer) {
4790 Object.defineProperty(Buffer, Symbol.species, {
4798 Buffer.poolSize =
8192 // not used by this implementation
4800 function from (value, encodingOrOffset, length) {
4801 if (typeof value === 'number') {
4802 throw new TypeError('"value" argument must not be a number')
4805 if (value instanceof ArrayBuffer) {
4806 return fromArrayBuffer(value, encodingOrOffset, length)
4809 if (typeof value === 'string') {
4810 return fromString(value, encodingOrOffset)
4813 return fromObject(value)
4817 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4818 * if value is a number.
4819 * Buffer.from(str[, encoding])
4820 * Buffer.from(array)
4821 * Buffer.from(buffer)
4822 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4824 Buffer.from = function (value, encodingOrOffset, length) {
4825 return from(value, encodingOrOffset, length)
4828 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4829 // https://github.com/feross/buffer/pull/
148
4830 Buffer.prototype.__proto__ = Uint8Array.prototype
4831 Buffer.__proto__ = Uint8Array
4833 function assertSize (size) {
4834 if (typeof size !== 'number') {
4835 throw new TypeError('"size" argument must be a number')
4836 } else if (size <
0) {
4837 throw new RangeError('"size" argument must not be negative')
4841 function alloc (size, fill, encoding) {
4844 return createBuffer(size)
4846 if (fill !== undefined) {
4847 // Only pay attention to encoding if it's a string. This
4848 // prevents accidentally sending in a number that would
4849 // be interpretted as a start offset.
4850 return typeof encoding === 'string'
4851 ? createBuffer(size).fill(fill, encoding)
4852 : createBuffer(size).fill(fill)
4854 return createBuffer(size)
4858 * Creates a new filled Buffer instance.
4859 * alloc(size[, fill[, encoding]])
4861 Buffer.alloc = function (size, fill, encoding) {
4862 return alloc(size, fill, encoding)
4865 function allocUnsafe (size) {
4867 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4871 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4873 Buffer.allocUnsafe = function (size) {
4874 return allocUnsafe(size)
4877 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4879 Buffer.allocUnsafeSlow = function (size) {
4880 return allocUnsafe(size)
4883 function fromString (string, encoding) {
4884 if (typeof encoding !== 'string' || encoding === '') {
4888 if (!Buffer.isEncoding(encoding)) {
4889 throw new TypeError('"encoding" must be a valid string encoding')
4892 var length = byteLength(string, encoding) |
0
4893 var buf = createBuffer(length)
4895 var actual = buf.write(string, encoding)
4897 if (actual !== length) {
4898 // Writing a hex string, for example, that contains invalid characters will
4899 // cause everything after the first invalid character to be ignored. (e.g.
4900 // 'abxxcd' will be treated as 'ab')
4901 buf = buf.slice(
0, actual)
4907 function fromArrayLike (array) {
4908 var length = array.length <
0 ?
0 : checked(array.length) |
0
4909 var buf = createBuffer(length)
4910 for (var i =
0; i < length; i +=
1) {
4911 buf[i] = array[i] &
255
4916 function fromArrayBuffer (array, byteOffset, length) {
4917 if (byteOffset <
0 || array.byteLength < byteOffset) {
4918 throw new RangeError('\'offset\' is out of bounds')
4921 if (array.byteLength < byteOffset + (length ||
0)) {
4922 throw new RangeError('\'length\' is out of bounds')
4926 if (byteOffset === undefined && length === undefined) {
4927 buf = new Uint8Array(array)
4928 } else if (length === undefined) {
4929 buf = new Uint8Array(array, byteOffset)
4931 buf = new Uint8Array(array, byteOffset, length)
4934 // Return an augmented `Uint8Array` instance
4935 buf.__proto__ = Buffer.prototype
4939 function fromObject (obj) {
4940 if (Buffer.isBuffer(obj)) {
4941 var len = checked(obj.length) |
0
4942 var buf = createBuffer(len)
4944 if (buf.length ===
0) {
4948 obj.copy(buf,
0,
0, len)
4953 if (isArrayBufferView(obj) || 'length' in obj) {
4954 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4955 return createBuffer(
0)
4957 return fromArrayLike(obj)
4960 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4961 return fromArrayLike(obj.data)
4965 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4968 function checked (length) {
4969 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4970 // length is NaN (which is otherwise coerced to zero.)
4971 if (length
>= K_MAX_LENGTH) {
4972 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4973 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4978 function SlowBuffer (length) {
4979 if (+length != length) { // eslint-disable-line eqeqeq
4982 return Buffer.alloc(+length)
4985 Buffer.isBuffer = function isBuffer (b) {
4986 return b != null && b._isBuffer === true
4989 Buffer.compare = function compare (a, b) {
4990 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4991 throw new TypeError('Arguments must be Buffers')
4994 if (a === b) return
0
4999 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5000 if (a[i] !== b[i]) {
5007 if (x < y) return -
1
5012 Buffer.isEncoding = function isEncoding (encoding) {
5013 switch (String(encoding).toLowerCase()) {
5031 Buffer.concat = function concat (list, length) {
5032 if (!Array.isArray(list)) {
5033 throw new TypeError('"list" argument must be an Array of Buffers')
5036 if (list.length ===
0) {
5037 return Buffer.alloc(
0)
5041 if (length === undefined) {
5043 for (i =
0; i < list.length; ++i) {
5044 length += list[i].length
5048 var buffer = Buffer.allocUnsafe(length)
5050 for (i =
0; i < list.length; ++i) {
5052 if (!Buffer.isBuffer(buf)) {
5053 throw new TypeError('"list" argument must be an Array of Buffers')
5055 buf.copy(buffer, pos)
5061 function byteLength (string, encoding) {
5062 if (Buffer.isBuffer(string)) {
5063 return string.length
5065 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5066 return string.byteLength
5068 if (typeof string !== 'string') {
5069 string = '' + string
5072 var len = string.length
5073 if (len ===
0) return
0
5075 // Use a for loop to avoid recursion
5076 var loweredCase = false
5086 return utf8ToBytes(string).length
5095 return base64ToBytes(string).length
5097 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5098 encoding = ('' + encoding).toLowerCase()
5103 Buffer.byteLength = byteLength
5105 function slowToString (encoding, start, end) {
5106 var loweredCase = false
5108 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5109 // property of a typed array.
5111 // This behaves neither like String nor Uint8Array in that we set start/end
5112 // to their upper/lower bounds if the value passed is out of range.
5113 // undefined is handled specially as per ECMA-
262 6th Edition,
5114 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5115 if (start === undefined || start <
0) {
5118 // Return early if start
> this.length. Done here to prevent potential uint32
5119 // coercion fail below.
5120 if (start
> this.length) {
5124 if (end === undefined || end
> this.length) {
5132 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5140 if (!encoding) encoding = 'utf8'
5145 return hexSlice(this, start, end)
5149 return utf8Slice(this, start, end)
5152 return asciiSlice(this, start, end)
5156 return latin1Slice(this, start, end)
5159 return base64Slice(this, start, end)
5165 return utf16leSlice(this, start, end)
5168 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5169 encoding = (encoding + '').toLowerCase()
5175 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5176 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5177 // reliably in a browserify context because there could be multiple different
5178 // copies of the 'buffer' package in use. This method works even for Buffer
5179 // instances that were created from another copy of the `buffer` package.
5180 // See: https://github.com/feross/buffer/issues/
154
5181 Buffer.prototype._isBuffer = true
5183 function swap (b, n, m) {
5189 Buffer.prototype.swap16 = function swap16 () {
5190 var len = this.length
5191 if (len %
2 !==
0) {
5192 throw new RangeError('Buffer size must be a multiple of
16-bits')
5194 for (var i =
0; i < len; i +=
2) {
5195 swap(this, i, i +
1)
5200 Buffer.prototype.swap32 = function swap32 () {
5201 var len = this.length
5202 if (len %
4 !==
0) {
5203 throw new RangeError('Buffer size must be a multiple of
32-bits')
5205 for (var i =
0; i < len; i +=
4) {
5206 swap(this, i, i +
3)
5207 swap(this, i +
1, i +
2)
5212 Buffer.prototype.swap64 = function swap64 () {
5213 var len = this.length
5214 if (len %
8 !==
0) {
5215 throw new RangeError('Buffer size must be a multiple of
64-bits')
5217 for (var i =
0; i < len; i +=
8) {
5218 swap(this, i, i +
7)
5219 swap(this, i +
1, i +
6)
5220 swap(this, i +
2, i +
5)
5221 swap(this, i +
3, i +
4)
5226 Buffer.prototype.toString = function toString () {
5227 var length = this.length
5228 if (length ===
0) return ''
5229 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5230 return slowToString.apply(this, arguments)
5233 Buffer.prototype.equals = function equals (b) {
5234 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5235 if (this === b) return true
5236 return Buffer.compare(this, b) ===
0
5239 Buffer.prototype.inspect = function inspect () {
5241 var max = exports.INSPECT_MAX_BYTES
5242 if (this.length
> 0) {
5243 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5244 if (this.length
> max) str += ' ... '
5246 return '
<Buffer ' + str + '
>'
5249 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5250 if (!Buffer.isBuffer(target)) {
5251 throw new TypeError('Argument must be a Buffer')
5254 if (start === undefined) {
5257 if (end === undefined) {
5258 end = target ? target.length :
0
5260 if (thisStart === undefined) {
5263 if (thisEnd === undefined) {
5264 thisEnd = this.length
5267 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5268 throw new RangeError('out of range index')
5271 if (thisStart
>= thisEnd && start
>= end) {
5274 if (thisStart
>= thisEnd) {
5286 if (this === target) return
0
5288 var x = thisEnd - thisStart
5290 var len = Math.min(x, y)
5292 var thisCopy = this.slice(thisStart, thisEnd)
5293 var targetCopy = target.slice(start, end)
5295 for (var i =
0; i < len; ++i) {
5296 if (thisCopy[i] !== targetCopy[i]) {
5303 if (x < y) return -
1
5308 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5309 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5312 // - buffer - a Buffer to search
5313 // - val - a string, Buffer, or number
5314 // - byteOffset - an index into `buffer`; will be clamped to an int32
5315 // - encoding - an optional encoding, relevant is val is a string
5316 // - dir - true for indexOf, false for lastIndexOf
5317 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5318 // Empty buffer means no match
5319 if (buffer.length ===
0) return -
1
5321 // Normalize byteOffset
5322 if (typeof byteOffset === 'string') {
5323 encoding = byteOffset
5325 } else if (byteOffset
> 0x7fffffff) {
5326 byteOffset =
0x7fffffff
5327 } else if (byteOffset < -
0x80000000) {
5328 byteOffset = -
0x80000000
5330 byteOffset = +byteOffset // Coerce to Number.
5331 if (numberIsNaN(byteOffset)) {
5332 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5333 byteOffset = dir ?
0 : (buffer.length -
1)
5336 // Normalize byteOffset: negative offsets start from the end of the buffer
5337 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5338 if (byteOffset
>= buffer.length) {
5340 else byteOffset = buffer.length -
1
5341 } else if (byteOffset <
0) {
5342 if (dir) byteOffset =
0
5347 if (typeof val === 'string') {
5348 val = Buffer.from(val, encoding)
5351 // Finally, search either indexOf (if dir is true) or lastIndexOf
5352 if (Buffer.isBuffer(val)) {
5353 // Special case: looking for empty string/buffer always fails
5354 if (val.length ===
0) {
5357 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5358 } else if (typeof val === 'number') {
5359 val = val &
0xFF // Search for a byte value [
0-
255]
5360 if (typeof Uint8Array.prototype.indexOf === 'function') {
5362 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5364 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5367 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5370 throw new TypeError('val must be string, number or Buffer')
5373 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5375 var arrLength = arr.length
5376 var valLength = val.length
5378 if (encoding !== undefined) {
5379 encoding = String(encoding).toLowerCase()
5380 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5381 encoding === 'utf16le' || encoding === 'utf-
16le') {
5382 if (arr.length <
2 || val.length <
2) {
5392 function read (buf, i) {
5393 if (indexSize ===
1) {
5396 return buf.readUInt16BE(i * indexSize)
5403 for (i = byteOffset; i < arrLength; i++) {
5404 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5405 if (foundIndex === -
1) foundIndex = i
5406 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5408 if (foundIndex !== -
1) i -= i - foundIndex
5413 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5414 for (i = byteOffset; i
>=
0; i--) {
5416 for (var j =
0; j < valLength; j++) {
5417 if (read(arr, i + j) !== read(val, j)) {
5429 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5430 return this.indexOf(val, byteOffset, encoding) !== -
1
5433 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5434 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5437 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5438 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5441 function hexWrite (buf, string, offset, length) {
5442 offset = Number(offset) ||
0
5443 var remaining = buf.length - offset
5447 length = Number(length)
5448 if (length
> remaining) {
5453 // must be an even number of digits
5454 var strLen = string.length
5455 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5457 if (length
> strLen /
2) {
5460 for (var i =
0; i < length; ++i) {
5461 var parsed = parseInt(string.substr(i *
2,
2),
16)
5462 if (numberIsNaN(parsed)) return i
5463 buf[offset + i] = parsed
5468 function utf8Write (buf, string, offset, length) {
5469 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5472 function asciiWrite (buf, string, offset, length) {
5473 return blitBuffer(asciiToBytes(string), buf, offset, length)
5476 function latin1Write (buf, string, offset, length) {
5477 return asciiWrite(buf, string, offset, length)
5480 function base64Write (buf, string, offset, length) {
5481 return blitBuffer(base64ToBytes(string), buf, offset, length)
5484 function ucs2Write (buf, string, offset, length) {
5485 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5488 Buffer.prototype.write = function write (string, offset, length, encoding) {
5489 // Buffer#write(string)
5490 if (offset === undefined) {
5492 length = this.length
5494 // Buffer#write(string, encoding)
5495 } else if (length === undefined && typeof offset === 'string') {
5497 length = this.length
5499 // Buffer#write(string, offset[, length][, encoding])
5500 } else if (isFinite(offset)) {
5501 offset = offset
>>> 0
5502 if (isFinite(length)) {
5503 length = length
>>> 0
5504 if (encoding === undefined) encoding = 'utf8'
5511 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5515 var remaining = this.length - offset
5516 if (length === undefined || length
> remaining) length = remaining
5518 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5519 throw new RangeError('Attempt to write outside buffer bounds')
5522 if (!encoding) encoding = 'utf8'
5524 var loweredCase = false
5528 return hexWrite(this, string, offset, length)
5532 return utf8Write(this, string, offset, length)
5535 return asciiWrite(this, string, offset, length)
5539 return latin1Write(this, string, offset, length)
5542 // Warning: maxLength not taken into account in base64Write
5543 return base64Write(this, string, offset, length)
5549 return ucs2Write(this, string, offset, length)
5552 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5553 encoding = ('' + encoding).toLowerCase()
5559 Buffer.prototype.toJSON = function toJSON () {
5562 data: Array.prototype.slice.call(this._arr || this,
0)
5566 function base64Slice (buf, start, end) {
5567 if (start ===
0 && end === buf.length) {
5568 return base64.fromByteArray(buf)
5570 return base64.fromByteArray(buf.slice(start, end))
5574 function utf8Slice (buf, start, end) {
5575 end = Math.min(buf.length, end)
5580 var firstByte = buf[i]
5581 var codePoint = null
5582 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5583 : (firstByte
> 0xDF) ?
3
5584 : (firstByte
> 0xBF) ?
2
5587 if (i + bytesPerSequence <= end) {
5588 var secondByte, thirdByte, fourthByte, tempCodePoint
5590 switch (bytesPerSequence) {
5592 if (firstByte <
0x80) {
5593 codePoint = firstByte
5597 secondByte = buf[i +
1]
5598 if ((secondByte &
0xC0) ===
0x80) {
5599 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5600 if (tempCodePoint
> 0x7F) {
5601 codePoint = tempCodePoint
5606 secondByte = buf[i +
1]
5607 thirdByte = buf[i +
2]
5608 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5609 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5610 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5611 codePoint = tempCodePoint
5616 secondByte = buf[i +
1]
5617 thirdByte = buf[i +
2]
5618 fourthByte = buf[i +
3]
5619 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5620 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5621 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5622 codePoint = tempCodePoint
5628 if (codePoint === null) {
5629 // we did not generate a valid codePoint so insert a
5630 // replacement char (U+FFFD) and advance only
1 byte
5632 bytesPerSequence =
1
5633 } else if (codePoint
> 0xFFFF) {
5634 // encode to utf16 (surrogate pair dance)
5635 codePoint -=
0x10000
5636 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5637 codePoint =
0xDC00 | codePoint &
0x3FF
5641 i += bytesPerSequence
5644 return decodeCodePointsArray(res)
5647 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5648 // the lowest limit is Chrome, with
0x10000 args.
5649 // We go
1 magnitude less, for safety
5650 var MAX_ARGUMENTS_LENGTH =
0x1000
5652 function decodeCodePointsArray (codePoints) {
5653 var len = codePoints.length
5654 if (len <= MAX_ARGUMENTS_LENGTH) {
5655 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5658 // Decode in chunks to avoid
"call stack size exceeded".
5662 res += String.fromCharCode.apply(
5664 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5670 function asciiSlice (buf, start, end) {
5672 end = Math.min(buf.length, end)
5674 for (var i = start; i < end; ++i) {
5675 ret += String.fromCharCode(buf[i] &
0x7F)
5680 function latin1Slice (buf, start, end) {
5682 end = Math.min(buf.length, end)
5684 for (var i = start; i < end; ++i) {
5685 ret += String.fromCharCode(buf[i])
5690 function hexSlice (buf, start, end) {
5691 var len = buf.length
5693 if (!start || start <
0) start =
0
5694 if (!end || end <
0 || end
> len) end = len
5697 for (var i = start; i < end; ++i) {
5698 out += toHex(buf[i])
5703 function utf16leSlice (buf, start, end) {
5704 var bytes = buf.slice(start, end)
5706 for (var i =
0; i < bytes.length; i +=
2) {
5707 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5712 Buffer.prototype.slice = function slice (start, end) {
5713 var len = this.length
5715 end = end === undefined ? len : ~~end
5719 if (start <
0) start =
0
5720 } else if (start
> len) {
5726 if (end <
0) end =
0
5727 } else if (end
> len) {
5731 if (end < start) end = start
5733 var newBuf = this.subarray(start, end)
5734 // Return an augmented `Uint8Array` instance
5735 newBuf.__proto__ = Buffer.prototype
5740 * Need to make sure that buffer isn't trying to write out of bounds.
5742 function checkOffset (offset, ext, length) {
5743 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5744 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5747 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5748 offset = offset
>>> 0
5749 byteLength = byteLength
>>> 0
5750 if (!noAssert) checkOffset(offset, byteLength, this.length)
5752 var val = this[offset]
5755 while (++i < byteLength && (mul *=
0x100)) {
5756 val += this[offset + i] * mul
5762 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5763 offset = offset
>>> 0
5764 byteLength = byteLength
>>> 0
5766 checkOffset(offset, byteLength, this.length)
5769 var val = this[offset + --byteLength]
5771 while (byteLength
> 0 && (mul *=
0x100)) {
5772 val += this[offset + --byteLength] * mul
5778 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5779 offset = offset
>>> 0
5780 if (!noAssert) checkOffset(offset,
1, this.length)
5784 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5785 offset = offset
>>> 0
5786 if (!noAssert) checkOffset(offset,
2, this.length)
5787 return this[offset] | (this[offset +
1] <<
8)
5790 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5791 offset = offset
>>> 0
5792 if (!noAssert) checkOffset(offset,
2, this.length)
5793 return (this[offset] <<
8) | this[offset +
1]
5796 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5797 offset = offset
>>> 0
5798 if (!noAssert) checkOffset(offset,
4, this.length)
5800 return ((this[offset]) |
5801 (this[offset +
1] <<
8) |
5802 (this[offset +
2] <<
16)) +
5803 (this[offset +
3] *
0x1000000)
5806 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5807 offset = offset
>>> 0
5808 if (!noAssert) checkOffset(offset,
4, this.length)
5810 return (this[offset] *
0x1000000) +
5811 ((this[offset +
1] <<
16) |
5812 (this[offset +
2] <<
8) |
5816 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5817 offset = offset
>>> 0
5818 byteLength = byteLength
>>> 0
5819 if (!noAssert) checkOffset(offset, byteLength, this.length)
5821 var val = this[offset]
5824 while (++i < byteLength && (mul *=
0x100)) {
5825 val += this[offset + i] * mul
5829 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5834 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5835 offset = offset
>>> 0
5836 byteLength = byteLength
>>> 0
5837 if (!noAssert) checkOffset(offset, byteLength, this.length)
5841 var val = this[offset + --i]
5842 while (i
> 0 && (mul *=
0x100)) {
5843 val += this[offset + --i] * mul
5847 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5852 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5853 offset = offset
>>> 0
5854 if (!noAssert) checkOffset(offset,
1, this.length)
5855 if (!(this[offset] &
0x80)) return (this[offset])
5856 return ((
0xff - this[offset] +
1) * -
1)
5859 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5860 offset = offset
>>> 0
5861 if (!noAssert) checkOffset(offset,
2, this.length)
5862 var val = this[offset] | (this[offset +
1] <<
8)
5863 return (val &
0x8000) ? val |
0xFFFF0000 : val
5866 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5867 offset = offset
>>> 0
5868 if (!noAssert) checkOffset(offset,
2, this.length)
5869 var val = this[offset +
1] | (this[offset] <<
8)
5870 return (val &
0x8000) ? val |
0xFFFF0000 : val
5873 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5874 offset = offset
>>> 0
5875 if (!noAssert) checkOffset(offset,
4, this.length)
5877 return (this[offset]) |
5878 (this[offset +
1] <<
8) |
5879 (this[offset +
2] <<
16) |
5880 (this[offset +
3] <<
24)
5883 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5884 offset = offset
>>> 0
5885 if (!noAssert) checkOffset(offset,
4, this.length)
5887 return (this[offset] <<
24) |
5888 (this[offset +
1] <<
16) |
5889 (this[offset +
2] <<
8) |
5893 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5894 offset = offset
>>> 0
5895 if (!noAssert) checkOffset(offset,
4, this.length)
5896 return ieee754.read(this, offset, true,
23,
4)
5899 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5900 offset = offset
>>> 0
5901 if (!noAssert) checkOffset(offset,
4, this.length)
5902 return ieee754.read(this, offset, false,
23,
4)
5905 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5906 offset = offset
>>> 0
5907 if (!noAssert) checkOffset(offset,
8, this.length)
5908 return ieee754.read(this, offset, true,
52,
8)
5911 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5912 offset = offset
>>> 0
5913 if (!noAssert) checkOffset(offset,
8, this.length)
5914 return ieee754.read(this, offset, false,
52,
8)
5917 function checkInt (buf, value, offset, ext, max, min) {
5918 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5919 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5920 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5923 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5925 offset = offset
>>> 0
5926 byteLength = byteLength
>>> 0
5928 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5929 checkInt(this, value, offset, byteLength, maxBytes,
0)
5934 this[offset] = value &
0xFF
5935 while (++i < byteLength && (mul *=
0x100)) {
5936 this[offset + i] = (value / mul) &
0xFF
5939 return offset + byteLength
5942 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5944 offset = offset
>>> 0
5945 byteLength = byteLength
>>> 0
5947 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5948 checkInt(this, value, offset, byteLength, maxBytes,
0)
5951 var i = byteLength -
1
5953 this[offset + i] = value &
0xFF
5954 while (--i
>=
0 && (mul *=
0x100)) {
5955 this[offset + i] = (value / mul) &
0xFF
5958 return offset + byteLength
5961 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5963 offset = offset
>>> 0
5964 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5965 this[offset] = (value &
0xff)
5969 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5971 offset = offset
>>> 0
5972 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5973 this[offset] = (value &
0xff)
5974 this[offset +
1] = (value
>>> 8)
5978 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5980 offset = offset
>>> 0
5981 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5982 this[offset] = (value
>>> 8)
5983 this[offset +
1] = (value &
0xff)
5987 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5989 offset = offset
>>> 0
5990 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5991 this[offset +
3] = (value
>>> 24)
5992 this[offset +
2] = (value
>>> 16)
5993 this[offset +
1] = (value
>>> 8)
5994 this[offset] = (value &
0xff)
5998 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6000 offset = offset
>>> 0
6001 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6002 this[offset] = (value
>>> 24)
6003 this[offset +
1] = (value
>>> 16)
6004 this[offset +
2] = (value
>>> 8)
6005 this[offset +
3] = (value &
0xff)
6009 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6011 offset = offset
>>> 0
6013 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6015 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6021 this[offset] = value &
0xFF
6022 while (++i < byteLength && (mul *=
0x100)) {
6023 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6026 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6029 return offset + byteLength
6032 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6034 offset = offset
>>> 0
6036 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6038 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6041 var i = byteLength -
1
6044 this[offset + i] = value &
0xFF
6045 while (--i
>=
0 && (mul *=
0x100)) {
6046 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6049 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6052 return offset + byteLength
6055 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6057 offset = offset
>>> 0
6058 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6059 if (value <
0) value =
0xff + value +
1
6060 this[offset] = (value &
0xff)
6064 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6066 offset = offset
>>> 0
6067 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6068 this[offset] = (value &
0xff)
6069 this[offset +
1] = (value
>>> 8)
6073 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6075 offset = offset
>>> 0
6076 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6077 this[offset] = (value
>>> 8)
6078 this[offset +
1] = (value &
0xff)
6082 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6084 offset = offset
>>> 0
6085 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6086 this[offset] = (value &
0xff)
6087 this[offset +
1] = (value
>>> 8)
6088 this[offset +
2] = (value
>>> 16)
6089 this[offset +
3] = (value
>>> 24)
6093 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6095 offset = offset
>>> 0
6096 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6097 if (value <
0) value =
0xffffffff + value +
1
6098 this[offset] = (value
>>> 24)
6099 this[offset +
1] = (value
>>> 16)
6100 this[offset +
2] = (value
>>> 8)
6101 this[offset +
3] = (value &
0xff)
6105 function checkIEEE754 (buf, value, offset, ext, max, min) {
6106 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6107 if (offset <
0) throw new RangeError('Index out of range')
6110 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6112 offset = offset
>>> 0
6114 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6116 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6120 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6121 return writeFloat(this, value, offset, true, noAssert)
6124 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6125 return writeFloat(this, value, offset, false, noAssert)
6128 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6130 offset = offset
>>> 0
6132 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6134 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6138 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6139 return writeDouble(this, value, offset, true, noAssert)
6142 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6143 return writeDouble(this, value, offset, false, noAssert)
6146 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6147 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6148 if (!start) start =
0
6149 if (!end && end !==
0) end = this.length
6150 if (targetStart
>= target.length) targetStart = target.length
6151 if (!targetStart) targetStart =
0
6152 if (end
> 0 && end < start) end = start
6154 // Copy
0 bytes; we're done
6155 if (end === start) return
0
6156 if (target.length ===
0 || this.length ===
0) return
0
6158 // Fatal error conditions
6159 if (targetStart <
0) {
6160 throw new RangeError('targetStart out of bounds')
6162 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6163 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6166 if (end
> this.length) end = this.length
6167 if (target.length - targetStart < end - start) {
6168 end = target.length - targetStart + start
6171 var len = end - start
6174 if (this === target && start < targetStart && targetStart < end) {
6175 // descending copy from end
6176 for (i = len -
1; i
>=
0; --i) {
6177 target[i + targetStart] = this[i + start]
6179 } else if (len <
1000) {
6180 // ascending copy from start
6181 for (i =
0; i < len; ++i) {
6182 target[i + targetStart] = this[i + start]
6185 Uint8Array.prototype.set.call(
6187 this.subarray(start, start + len),
6196 // buffer.fill(number[, offset[, end]])
6197 // buffer.fill(buffer[, offset[, end]])
6198 // buffer.fill(string[, offset[, end]][, encoding])
6199 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6200 // Handle string cases:
6201 if (typeof val === 'string') {
6202 if (typeof start === 'string') {
6206 } else if (typeof end === 'string') {
6210 if (val.length ===
1) {
6211 var code = val.charCodeAt(
0)
6216 if (encoding !== undefined && typeof encoding !== 'string') {
6217 throw new TypeError('encoding must be a string')
6219 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6220 throw new TypeError('Unknown encoding: ' + encoding)
6222 } else if (typeof val === 'number') {
6226 // Invalid ranges are not set to a default, so can range check early.
6227 if (start <
0 || this.length < start || this.length < end) {
6228 throw new RangeError('Out of range index')
6236 end = end === undefined ? this.length : end
>>> 0
6241 if (typeof val === 'number') {
6242 for (i = start; i < end; ++i) {
6246 var bytes = Buffer.isBuffer(val)
6248 : new Buffer(val, encoding)
6249 var len = bytes.length
6250 for (i =
0; i < end - start; ++i) {
6251 this[i + start] = bytes[i % len]
6261 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6263 function base64clean (str) {
6264 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6265 str = str.trim().replace(INVALID_BASE64_RE, '')
6266 // Node converts strings with length <
2 to ''
6267 if (str.length <
2) return ''
6268 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6269 while (str.length %
4 !==
0) {
6275 function toHex (n) {
6276 if (n <
16) return '
0' + n.toString(
16)
6277 return n.toString(
16)
6280 function utf8ToBytes (string, units) {
6281 units = units || Infinity
6283 var length = string.length
6284 var leadSurrogate = null
6287 for (var i =
0; i < length; ++i) {
6288 codePoint = string.charCodeAt(i)
6290 // is surrogate component
6291 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6292 // last char was a lead
6293 if (!leadSurrogate) {
6295 if (codePoint
> 0xDBFF) {
6297 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6299 } else if (i +
1 === length) {
6301 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6306 leadSurrogate = codePoint
6312 if (codePoint <
0xDC00) {
6313 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6314 leadSurrogate = codePoint
6318 // valid surrogate pair
6319 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6320 } else if (leadSurrogate) {
6321 // valid bmp char, but last char was a lead
6322 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6325 leadSurrogate = null
6328 if (codePoint <
0x80) {
6329 if ((units -=
1) <
0) break
6330 bytes.push(codePoint)
6331 } else if (codePoint <
0x800) {
6332 if ((units -=
2) <
0) break
6334 codePoint
>> 0x6 |
0xC0,
6335 codePoint &
0x3F |
0x80
6337 } else if (codePoint <
0x10000) {
6338 if ((units -=
3) <
0) break
6340 codePoint
>> 0xC |
0xE0,
6341 codePoint
>> 0x6 &
0x3F |
0x80,
6342 codePoint &
0x3F |
0x80
6344 } else if (codePoint <
0x110000) {
6345 if ((units -=
4) <
0) break
6347 codePoint
>> 0x12 |
0xF0,
6348 codePoint
>> 0xC &
0x3F |
0x80,
6349 codePoint
>> 0x6 &
0x3F |
0x80,
6350 codePoint &
0x3F |
0x80
6353 throw new Error('Invalid code point')
6360 function asciiToBytes (str) {
6362 for (var i =
0; i < str.length; ++i) {
6363 // Node's code seems to be doing this and not &
0x7F..
6364 byteArray.push(str.charCodeAt(i) &
0xFF)
6369 function utf16leToBytes (str, units) {
6372 for (var i =
0; i < str.length; ++i) {
6373 if ((units -=
2) <
0) break
6375 c = str.charCodeAt(i)
6385 function base64ToBytes (str) {
6386 return base64.toByteArray(base64clean(str))
6389 function blitBuffer (src, dst, offset, length) {
6390 for (var i =
0; i < length; ++i) {
6391 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6392 dst[i + offset] = src[i]
6397 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6398 function isArrayBufferView (obj) {
6399 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6402 function numberIsNaN (obj) {
6403 return obj !== obj // eslint-disable-line no-self-compare
6406 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6407 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6409 var eLen = nBytes *
8 - mLen -
1
6410 var eMax = (
1 << eLen) -
1
6411 var eBias = eMax
>> 1
6413 var i = isLE ? (nBytes -
1) :
0
6414 var d = isLE ? -
1 :
1
6415 var s = buffer[offset + i]
6419 e = s & ((
1 << (-nBits)) -
1)
6422 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6424 m = e & ((
1 << (-nBits)) -
1)
6427 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6431 } else if (e === eMax) {
6432 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6434 m = m + Math.pow(
2, mLen)
6437 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6440 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6442 var eLen = nBytes *
8 - mLen -
1
6443 var eMax = (
1 << eLen) -
1
6444 var eBias = eMax
>> 1
6445 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6446 var i = isLE ?
0 : (nBytes -
1)
6447 var d = isLE ?
1 : -
1
6448 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6450 value = Math.abs(value)
6452 if (isNaN(value) || value === Infinity) {
6453 m = isNaN(value) ?
1 :
0
6456 e = Math.floor(Math.log(value) / Math.LN2)
6457 if (value * (c = Math.pow(
2, -e)) <
1) {
6461 if (e + eBias
>=
1) {
6464 value += rt * Math.pow(
2,
1 - eBias)
6466 if (value * c
>=
2) {
6471 if (e + eBias
>= eMax) {
6474 } else if (e + eBias
>=
1) {
6475 m = (value * c -
1) * Math.pow(
2, mLen)
6478 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6483 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6487 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6489 buffer[offset + i - d] |= s *
128
6492 },{}],
4:[function(require,module,exports){
6493 window.basex = require('base-x')
6494 },{
"base-x":
5}],
5:[function(require,module,exports){
6496 // Forked from https://github.com/cryptocoinjs/bs58
6497 // Originally written by Mike Hearn for BitcoinJ
6498 // Copyright (c)
2011 Google Inc
6499 // Ported to JavaScript by Stefan Thomas
6500 // Merged Buffer refactorings from base58-native by Stephen Pair
6501 // Copyright (c)
2013 BitPay Inc
6503 var Buffer = require('safe-buffer').Buffer
6505 module.exports = function base (ALPHABET) {
6506 var ALPHABET_MAP = {}
6507 var BASE = ALPHABET.length
6508 var LEADER = ALPHABET.charAt(
0)
6510 // pre-compute lookup table
6511 for (var z =
0; z < ALPHABET.length; z++) {
6512 var x = ALPHABET.charAt(z)
6514 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6518 function encode (source) {
6519 if (source.length ===
0) return ''
6522 for (var i =
0; i < source.length; ++i) {
6523 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6524 carry += digits[j] <<
8
6525 digits[j] = carry % BASE
6526 carry = (carry / BASE) |
0
6530 digits.push(carry % BASE)
6531 carry = (carry / BASE) |
0
6537 // deal with leading zeros
6538 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6539 // convert digits to a string
6540 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6545 function decodeUnsafe (string) {
6546 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6549 for (var i =
0; i < string.length; i++) {
6550 var value = ALPHABET_MAP[string[i]]
6551 if (value === undefined) return
6553 for (var j =
0, carry = value; j < bytes.length; ++j) {
6554 carry += bytes[j] * BASE
6555 bytes[j] = carry &
0xff
6560 bytes.push(carry &
0xff)
6565 // deal with leading zeros
6566 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6570 return Buffer.from(bytes.reverse())
6573 function decode (string) {
6574 var buffer = decodeUnsafe(string)
6575 if (buffer) return buffer
6577 throw new Error('Non-base' + BASE + ' character')
6582 decodeUnsafe: decodeUnsafe,
6587 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6588 module.exports = require('buffer')
6590 },{"buffer":
2}]},{},[
4])(
4)
6592 <script>(function (root) {
6595 /***** unorm.js *****/
6598 * UnicodeNormalizer
1.0.0
6599 * Copyright (c)
2008 Matsuza
6600 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6601 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6605 var DEFAULT_FEATURE = [null,
0, {}];
6606 var CACHE_THRESHOLD =
10;
6607 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6608 var NCount = VCount * TCount; //
588
6609 var SCount = LCount * NCount; //
11172
6611 var UChar = function(cp, feature){
6612 this.codepoint = cp;
6613 this.feature = feature;
6618 var cacheCounter = [];
6619 for (var i =
0; i <=
0xFF; ++i){
6620 cacheCounter[i] =
0;
6623 function fromCache(next, cp, needFeature){
6624 var ret = cache[cp];
6626 ret = next(cp, needFeature);
6627 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6634 function fromData(next, cp, needFeature){
6635 var hash = cp &
0xFF00;
6636 var dunit = UChar.udata[hash] || {};
6638 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6640 function fromCpOnly(next, cp, needFeature){
6641 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6643 function fromRuleBasedJamo(next, cp, needFeature){
6645 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6646 return next(cp, needFeature);
6648 if(LBase <= cp && cp < LBase + LCount){
6650 var base = (cp - LBase) * VCount;
6651 for (j =
0; j < VCount; ++j){
6652 c[VBase + j] = SBase + TCount * (j + base);
6654 return new UChar(cp, [,,c]);
6657 var SIndex = cp - SBase;
6658 var TIndex = SIndex % TCount;
6661 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6663 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6665 for (j =
1; j < TCount; ++j){
6666 feature[
2][TBase + j] = cp + j;
6669 return new UChar(cp, feature);
6671 function fromCpFilter(next, cp, needFeature){
6672 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6675 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6677 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6678 return function (cp, needFeature) {
6679 return strategy(next, cp, needFeature);
6683 UChar.isHighSurrogate = function(cp){
6684 return cp
>=
0xD800 && cp <=
0xDBFF;
6686 UChar.isLowSurrogate = function(cp){
6687 return cp
>=
0xDC00 && cp <=
0xDFFF;
6690 UChar.prototype.prepFeature = function(){
6692 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6696 UChar.prototype.toString = function(){
6697 if(this.codepoint <
0x10000){
6698 return String.fromCharCode(this.codepoint);
6700 var x = this.codepoint -
0x10000;
6701 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6705 UChar.prototype.getDecomp = function(){
6707 return this.feature[
0] || null;
6710 UChar.prototype.isCompatibility = function(){
6712 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6714 UChar.prototype.isExclude = function(){
6716 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6718 UChar.prototype.getCanonicalClass = function(){
6720 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6722 UChar.prototype.getComposite = function(following){
6724 if(!this.feature[
2]){
6727 var cp = this.feature[
2][following.codepoint];
6728 return cp ? UChar.fromCharCode(cp) : null;
6731 var UCharIterator = function(str){
6735 UCharIterator.prototype.next = function(){
6736 if(!!this.str && this.cursor < this.str.length){
6737 var cp = this.str.charCodeAt(this.cursor++);
6739 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6740 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6743 return UChar.fromCharCode(cp);
6750 var RecursDecompIterator = function(it, cano){
6752 this.canonical = cano;
6756 RecursDecompIterator.prototype.next = function(){
6757 function recursiveDecomp(cano, uchar){
6758 var decomp = uchar.getDecomp();
6759 if(!!decomp && !(cano && uchar.isCompatibility())){
6761 for(var i =
0; i < decomp.length; ++i){
6762 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6763 ret = ret.concat(a);
6770 if(this.resBuf.length ===
0){
6771 var uchar = this.it.next();
6775 this.resBuf = recursiveDecomp(this.canonical, uchar);
6777 return this.resBuf.shift();
6780 var DecompIterator = function(it){
6785 DecompIterator.prototype.next = function(){
6787 if(this.resBuf.length ===
0){
6789 var uchar = this.it.next();
6793 cc = uchar.getCanonicalClass();
6794 var inspt = this.resBuf.length;
6796 for(; inspt
> 0; --inspt){
6797 var uchar2 = this.resBuf[inspt -
1];
6798 var cc2 = uchar2.getCanonicalClass();
6804 this.resBuf.splice(inspt,
0, uchar);
6807 return this.resBuf.shift();
6810 var CompIterator = function(it){
6814 this.lastClass = null;
6817 CompIterator.prototype.next = function(){
6818 while(this.resBuf.length ===
0){
6819 var uchar = this.it.next();
6821 this.resBuf = this.procBuf;
6825 if(this.procBuf.length ===
0){
6826 this.lastClass = uchar.getCanonicalClass();
6827 this.procBuf.push(uchar);
6829 var starter = this.procBuf[
0];
6830 var composite = starter.getComposite(uchar);
6831 var cc = uchar.getCanonicalClass();
6832 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6833 this.procBuf[
0] = composite;
6836 this.resBuf = this.procBuf;
6839 this.lastClass = cc;
6840 this.procBuf.push(uchar);
6844 return this.resBuf.shift();
6847 var createIterator = function(mode, str){
6850 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6852 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6854 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6856 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6858 throw mode +
" is invalid";
6860 var normalize = function(mode, str){
6861 var it = createIterator(mode, str);
6864 while(!!(uchar = it.next())){
6865 ret += uchar.toString();
6872 return normalize(
"NFD", str);
6876 return normalize(
"NFKD", str);
6880 return normalize(
"NFC", str);
6884 return normalize(
"NFKC", str);
6889 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]]},
6890 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]},
6891 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]},
6892 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]},
6893 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]]},
6894 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]},
6895 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]},
6896 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]},
6897 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]},
6898 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]},
6899 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]},
6900 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]},
6901 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]},
6902 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]]},
6903 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]},
6904 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]},
6905 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]},
6906 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]},
6907 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6908 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]},
6909 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6910 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6911 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6912 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6914 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6915 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]},
6916 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]},
6917 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]},
6918 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]},
6919 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]]},
6920 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}]},
6921 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]},
6922 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}]},
6923 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]]},
6924 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6925 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]},
6926 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]},
6927 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6928 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]},
6929 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6930 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]},
6931 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]},
6932 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]},
6933 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]},
6934 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]},
6935 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6936 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6937 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]},
6938 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6939 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]},
6940 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6941 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6942 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6943 48128:{
113822:[,
1]},
6944 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]},
6945 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6946 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]},
6947 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]},
6948 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]},
6949 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]},
6950 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6951 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]},
6952 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]},
6953 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]},
6954 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]]},
6955 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]]},
6956 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]]},
6957 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]},
6958 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]},
6959 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]},
6960 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]},
6961 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]}
6965 /***** Module to export */
6973 /*globals module:true,define:true*/
6976 if (typeof module ===
"object") {
6977 module.exports = unorm;
6980 } else if (typeof define ===
"function" && define.amd) {
6981 define(
"unorm", function () {
6990 /***** Export as shim for String::normalize method *****/
6992 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6994 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6995 When the normalize method is called with one argument form, the following steps are taken:
6997 1. Let O be CheckObjectCoercible(this value).
6998 2. Let S be ToString(O).
6999 3. ReturnIfAbrupt(S).
7000 4. If form is not provided or undefined let form be
"NFC".
7001 5. Let f be ToString(form).
7002 6. ReturnIfAbrupt(f).
7003 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7004 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.
7007 The length property of the normalize method is
0.
7009 *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.
7011 unorm.shimApplied = false;
7013 if (!String.prototype.normalize) {
7014 String.prototype.normalize = function(form) {
7015 var str =
"" + this;
7016 form = form === undefined ?
"NFC" : form;
7018 if (form ===
"NFC") {
7019 return unorm.nfc(str);
7020 } else if (form ===
"NFD") {
7021 return unorm.nfd(str);
7022 } else if (form ===
"NFKC") {
7023 return unorm.nfkc(str);
7024 } else if (form ===
"NFKD") {
7025 return unorm.nfkd(str);
7027 throw new RangeError(
"Invalid normalization form: " + form);
7031 unorm.shimApplied = true;
7035 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7036 !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)
7037 },_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))
7038 },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});
7041 * Bootstrap v3.2.0 (http://getbootstrap.com)
7042 * Copyright 2011-2014 Twitter, Inc.
7043 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7045 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>
7046 <script>(function() {
7050 * Extend an Object with another Object's properties.
7052 * The source objects are specified as additional arguments.
7054 * @param dst Object the object to extend.
7056 * @return Object the final object.
7058 var _extend = function(dst) {
7059 var sources = Array.prototype.slice.call(arguments,
1);
7060 for (var i=
0; i
<sources.length; ++i) {
7061 var src = sources[i];
7062 for (var p in src) {
7063 if (src.hasOwnProperty(p)) dst[p] = src[p];
7071 * Defer execution of given function.
7072 * @param {Function} func
7074 var _defer = function(func) {
7075 if (typeof setImmediate === 'function') {
7076 return setImmediate(func);
7078 return setTimeout(func,
0);
7083 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7087 * Calculate levenshtein distance of the two strings.
7089 * @param str1 String the first string.
7090 * @param str2 String the second string.
7091 * @return Integer the levenshtein distance (
0 and above).
7093 get: function(str1, str2) {
7095 if (str1 === str2) return
0;
7096 if (str1.length ===
0) return str2.length;
7097 if (str2.length ===
0) return str1.length;
7100 var prevRow = new Array(str2.length +
1),
7101 curCol, nextCol, i, j, tmp;
7103 // initialise previous row
7104 for (i=
0; i
<prevRow.length; ++i) {
7108 // calculate current row distance from previous row
7109 for (i=
0; i
<str1.length; ++i) {
7112 for (j=
0; j
<str2.length; ++j) {
7116 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7119 if (nextCol
> tmp) {
7123 tmp = prevRow[j +
1] +
1;
7124 if (nextCol
> tmp) {
7128 // copy current col value into previous (in preparation for next iteration)
7129 prevRow[j] = curCol;
7132 // copy last col value into previous (in preparation for next iteration)
7133 prevRow[j] = nextCol;
7140 * Asynchronously calculate levenshtein distance of the two strings.
7142 * @param str1 String the first string.
7143 * @param str2 String the second string.
7144 * @param cb Function callback function with signature: function(Error err, int distance)
7145 * @param [options] Object additional options.
7146 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7148 getAsync: function(str1, str2, cb, options) {
7149 options = _extend({}, {
7154 if (str1 === str2) return cb(null,
0);
7155 if (str1.length ===
0) return cb(null, str2.length);
7156 if (str2.length ===
0) return cb(null, str1.length);
7159 var prevRow = new Array(str2.length +
1),
7162 startTime, currentTime;
7164 // initialise previous row
7165 for (i=
0; i
<prevRow.length; ++i) {
7173 var __calculate = function() {
7175 startTime = new Date().valueOf();
7176 currentTime = startTime;
7178 // keep going until one second has elapsed
7179 while (currentTime - startTime <
1000) {
7180 // reached end of current row?
7181 if (str2.length <= (++j)) {
7182 // copy current into previous (in preparation for next iteration)
7183 prevRow[j] = nextCol;
7185 // if already done all chars
7186 if (str1.length <= (++i)) {
7187 return cb(null, nextCol);
7189 // else if we have more left to do
7200 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7203 if (nextCol
> tmp) {
7207 tmp = prevRow[j +
1] +
1;
7208 if (nextCol
> tmp) {
7212 // copy current into previous (in preparation for next iteration)
7213 prevRow[j] = curCol;
7216 currentTime = new Date().valueOf();
7219 // send a progress update?
7220 if (null !== options.progress) {
7222 options.progress.call(null, (i *
100.0/ str1.length));
7224 return cb('Progress callback: ' + err.toString());
7229 _defer(__calculate);
7238 if (typeof define !== "undefined" && define !== null && define.amd) {
7244 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7245 module.exports = Levenshtein;
7248 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7249 self.Levenshtein = Levenshtein;
7251 // browser main thread
7252 else if (typeof window !== "undefined" && window !== null) {
7253 window.Levenshtein = Levenshtein;
7258 <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},
7259 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;
7260 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-
7261 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]=
7262 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},
7263 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=
7264 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-
7265 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,
7266 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=
7267 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&&
7268 (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,
7269 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)-
7270 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:"+
7271 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:"+
7272 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+
7273 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),
7274 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>
7275 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],
7276 [
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,
7277 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,
7278 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,
7279 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,
7280 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,
7281 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*
7282 (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,
7283 correctLevel:
2,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
7284 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",
7285 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7287 <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){
7291 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7295 * The buffer module from node.js, for the browser.
7297 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7300 function compare(a, b) {
7308 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7309 if (a[i] !== b[i]) {
7324 function isBuffer(b) {
7325 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7326 return global.Buffer.isBuffer(b);
7328 return !!(b != null && b._isBuffer);
7331 // based on node assert, original notice:
7333 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7335 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7337 // Originally from narwhal.js (http://narwhaljs.org)
7338 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7340 // Permission is hereby granted, free of charge, to any person obtaining a copy
7341 // of this software and associated documentation files (the 'Software'), to
7342 // deal in the Software without restriction, including without limitation the
7343 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7344 // sell copies of the Software, and to permit persons to whom the Software is
7345 // furnished to do so, subject to the following conditions:
7347 // The above copyright notice and this permission notice shall be included in
7348 // all copies or substantial portions of the Software.
7350 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7351 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7352 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7353 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7354 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7355 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7357 var util = require('util/');
7358 var hasOwn = Object.prototype.hasOwnProperty;
7359 var pSlice = Array.prototype.slice;
7360 var functionsHaveNames = (function () {
7361 return function foo() {}.name === 'foo';
7363 function pToString (obj) {
7364 return Object.prototype.toString.call(obj);
7366 function isView(arrbuf) {
7367 if (isBuffer(arrbuf)) {
7370 if (typeof global.ArrayBuffer !== 'function') {
7373 if (typeof ArrayBuffer.isView === 'function') {
7374 return ArrayBuffer.isView(arrbuf);
7379 if (arrbuf instanceof DataView) {
7382 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7387 //
1. The assert module provides functions that throw
7388 // AssertionError's when particular conditions are not met. The
7389 // assert module must conform to the following interface.
7391 var assert = module.exports = ok;
7393 //
2. The AssertionError is defined in assert.
7394 // new assert.AssertionError({ message: message,
7396 // expected: expected })
7398 var regex = /\s*function\s+([^\(\s]*)\s*/;
7399 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7400 function getName(func) {
7401 if (!util.isFunction(func)) {
7404 if (functionsHaveNames) {
7407 var str = func.toString();
7408 var match = str.match(regex);
7409 return match && match[
1];
7411 assert.AssertionError = function AssertionError(options) {
7412 this.name = 'AssertionError';
7413 this.actual = options.actual;
7414 this.expected = options.expected;
7415 this.operator = options.operator;
7416 if (options.message) {
7417 this.message = options.message;
7418 this.generatedMessage = false;
7420 this.message = getMessage(this);
7421 this.generatedMessage = true;
7423 var stackStartFunction = options.stackStartFunction || fail;
7424 if (Error.captureStackTrace) {
7425 Error.captureStackTrace(this, stackStartFunction);
7427 // non v8 browsers so we can have a stacktrace
7428 var err = new Error();
7430 var out = err.stack;
7432 // try to strip useless frames
7433 var fn_name = getName(stackStartFunction);
7434 var idx = out.indexOf('\n' + fn_name);
7436 // once we have located the function frame
7437 // we need to strip out everything before it (and its line)
7438 var next_line = out.indexOf('\n', idx +
1);
7439 out = out.substring(next_line +
1);
7447 // assert.AssertionError instanceof Error
7448 util.inherits(assert.AssertionError, Error);
7450 function truncate(s, n) {
7451 if (typeof s === 'string') {
7452 return s.length < n ? s : s.slice(
0, n);
7457 function inspect(something) {
7458 if (functionsHaveNames || !util.isFunction(something)) {
7459 return util.inspect(something);
7461 var rawname = getName(something);
7462 var name = rawname ? ': ' + rawname : '';
7463 return '[Function' + name + ']';
7465 function getMessage(self) {
7466 return truncate(inspect(self.actual),
128) + ' ' +
7467 self.operator + ' ' +
7468 truncate(inspect(self.expected),
128);
7471 // At present only the three keys mentioned above are used and
7472 // understood by the spec. Implementations or sub modules can pass
7473 // other keys to the AssertionError's constructor - they will be
7476 //
3. All of the following functions must throw an AssertionError
7477 // when a corresponding condition is not met, with a message that
7478 // may be undefined if not provided. All assertion methods provide
7479 // both the actual and expected values to the assertion error for
7480 // display purposes.
7482 function fail(actual, expected, message, operator, stackStartFunction) {
7483 throw new assert.AssertionError({
7488 stackStartFunction: stackStartFunction
7492 // EXTENSION! allows for well behaved errors defined elsewhere.
7495 //
4. Pure assertion tests whether a value is truthy, as determined
7497 // assert.ok(guard, message_opt);
7498 // This statement is equivalent to assert.equal(true, !!guard,
7499 // message_opt);. To test strictly for the value true, use
7500 // assert.strictEqual(true, guard, message_opt);.
7502 function ok(value, message) {
7503 if (!value) fail(value, true, message, '==', assert.ok);
7507 //
5. The equality assertion tests shallow, coercive equality with
7509 // assert.equal(actual, expected, message_opt);
7511 assert.equal = function equal(actual, expected, message) {
7512 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7515 //
6. The non-equality assertion tests for whether two objects are not equal
7516 // with != assert.notEqual(actual, expected, message_opt);
7518 assert.notEqual = function notEqual(actual, expected, message) {
7519 if (actual == expected) {
7520 fail(actual, expected, message, '!=', assert.notEqual);
7524 //
7. The equivalence assertion tests a deep equality relation.
7525 // assert.deepEqual(actual, expected, message_opt);
7527 assert.deepEqual = function deepEqual(actual, expected, message) {
7528 if (!_deepEqual(actual, expected, false)) {
7529 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7533 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7534 if (!_deepEqual(actual, expected, true)) {
7535 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7539 function _deepEqual(actual, expected, strict, memos) {
7540 //
7.1. All identical values are equivalent, as determined by ===.
7541 if (actual === expected) {
7543 } else if (isBuffer(actual) && isBuffer(expected)) {
7544 return compare(actual, expected) ===
0;
7546 //
7.2. If the expected value is a Date object, the actual value is
7547 // equivalent if it is also a Date object that refers to the same time.
7548 } else if (util.isDate(actual) && util.isDate(expected)) {
7549 return actual.getTime() === expected.getTime();
7551 //
7.3 If the expected value is a RegExp object, the actual value is
7552 // equivalent if it is also a RegExp object with the same source and
7553 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7554 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7555 return actual.source === expected.source &&
7556 actual.global === expected.global &&
7557 actual.multiline === expected.multiline &&
7558 actual.lastIndex === expected.lastIndex &&
7559 actual.ignoreCase === expected.ignoreCase;
7561 //
7.4. Other pairs that do not both pass typeof value == 'object',
7562 // equivalence is determined by ==.
7563 } else if ((actual === null || typeof actual !== 'object') &&
7564 (expected === null || typeof expected !== 'object')) {
7565 return strict ? actual === expected : actual == expected;
7567 // If both values are instances of typed arrays, wrap their underlying
7568 // ArrayBuffers in a Buffer each to increase performance
7569 // This optimization requires the arrays to have the same type as checked by
7570 // Object.prototype.toString (aka pToString). Never perform binary
7571 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7572 // bit patterns are not identical.
7573 } else if (isView(actual) && isView(expected) &&
7574 pToString(actual) === pToString(expected) &&
7575 !(actual instanceof Float32Array ||
7576 actual instanceof Float64Array)) {
7577 return compare(new Uint8Array(actual.buffer),
7578 new Uint8Array(expected.buffer)) ===
0;
7580 //
7.5 For all other Object pairs, including Array objects, equivalence is
7581 // determined by having the same number of owned properties (as verified
7582 // with Object.prototype.hasOwnProperty.call), the same set of keys
7583 // (although not necessarily the same order), equivalent values for every
7584 // corresponding key, and an identical 'prototype' property. Note: this
7585 // accounts for both named and indexed properties on Arrays.
7586 } else if (isBuffer(actual) !== isBuffer(expected)) {
7589 memos = memos || {actual: [], expected: []};
7591 var actualIndex = memos.actual.indexOf(actual);
7592 if (actualIndex !== -
1) {
7593 if (actualIndex === memos.expected.indexOf(expected)) {
7598 memos.actual.push(actual);
7599 memos.expected.push(expected);
7601 return objEquiv(actual, expected, strict, memos);
7605 function isArguments(object) {
7606 return Object.prototype.toString.call(object) == '[object Arguments]';
7609 function objEquiv(a, b, strict, actualVisitedObjects) {
7610 if (a === null || a === undefined || b === null || b === undefined)
7612 // if one is a primitive, the other must be same
7613 if (util.isPrimitive(a) || util.isPrimitive(b))
7615 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7617 var aIsArgs = isArguments(a);
7618 var bIsArgs = isArguments(b);
7619 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7624 return _deepEqual(a, b, strict);
7626 var ka = objectKeys(a);
7627 var kb = objectKeys(b);
7629 // having the same number of owned properties (keys incorporates
7631 if (ka.length !== kb.length)
7633 //the same set of keys (although not necessarily the same order),
7637 for (i = ka.length -
1; i
>=
0; i--) {
7638 if (ka[i] !== kb[i])
7641 //equivalent values for every corresponding key, and
7642 //~~~possibly expensive deep test
7643 for (i = ka.length -
1; i
>=
0; i--) {
7645 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7651 //
8. The non-equivalence assertion tests for any deep inequality.
7652 // assert.notDeepEqual(actual, expected, message_opt);
7654 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7655 if (_deepEqual(actual, expected, false)) {
7656 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7660 assert.notDeepStrictEqual = notDeepStrictEqual;
7661 function notDeepStrictEqual(actual, expected, message) {
7662 if (_deepEqual(actual, expected, true)) {
7663 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7668 //
9. The strict equality assertion tests strict equality, as determined by ===.
7669 // assert.strictEqual(actual, expected, message_opt);
7671 assert.strictEqual = function strictEqual(actual, expected, message) {
7672 if (actual !== expected) {
7673 fail(actual, expected, message, '===', assert.strictEqual);
7677 //
10. The strict non-equality assertion tests for strict inequality, as
7678 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7680 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7681 if (actual === expected) {
7682 fail(actual, expected, message, '!==', assert.notStrictEqual);
7686 function expectedException(actual, expected) {
7687 if (!actual || !expected) {
7691 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7692 return expected.test(actual);
7696 if (actual instanceof expected) {
7700 // Ignore. The instanceof check doesn't work for arrow functions.
7703 if (Error.isPrototypeOf(expected)) {
7707 return expected.call({}, actual) === true;
7710 function _tryBlock(block) {
7720 function _throws(shouldThrow, block, expected, message) {
7723 if (typeof block !== 'function') {
7724 throw new TypeError('"block" argument must be a function');
7727 if (typeof expected === 'string') {
7732 actual = _tryBlock(block);
7734 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7735 (message ? ' ' + message : '.');
7737 if (shouldThrow && !actual) {
7738 fail(actual, expected, 'Missing expected exception' + message);
7741 var userProvidedMessage = typeof message === 'string';
7742 var isUnwantedException = !shouldThrow && util.isError(actual);
7743 var isUnexpectedException = !shouldThrow && actual && !expected;
7745 if ((isUnwantedException &&
7746 userProvidedMessage &&
7747 expectedException(actual, expected)) ||
7748 isUnexpectedException) {
7749 fail(actual, expected, 'Got unwanted exception' + message);
7752 if ((shouldThrow && actual && expected &&
7753 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7758 //
11. Expected to throw an error:
7759 // assert.throws(block, Error_opt, message_opt);
7761 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7762 _throws(true, block, error, message);
7765 // EXTENSION! This is annoying to write outside this module.
7766 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7767 _throws(false, block, error, message);
7770 assert.ifError = function(err) { if (err) throw err; };
7772 var objectKeys = Object.keys || function (obj) {
7774 for (var key in obj) {
7775 if (hasOwn.call(obj, key)) keys.push(key);
7780 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7781 },{"util/":
32}],
2:[function(require,module,exports){
7784 exports.byteLength = byteLength
7785 exports.toByteArray = toByteArray
7786 exports.fromByteArray = fromByteArray
7790 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7792 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7793 for (var i =
0, len = code.length; i < len; ++i) {
7795 revLookup[code.charCodeAt(i)] = i
7798 revLookup['-'.charCodeAt(
0)] =
62
7799 revLookup['_'.charCodeAt(
0)] =
63
7801 function placeHoldersCount (b64) {
7802 var len = b64.length
7804 throw new Error('Invalid string. Length must be a multiple of
4')
7807 // the number of equal signs (place holders)
7808 // if there are two placeholders, than the two characters before it
7809 // represent one byte
7810 // if there is only one, then the three characters before it represent
2 bytes
7811 // this is just a cheap hack to not do indexOf twice
7812 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7815 function byteLength (b64) {
7816 // base64 is
4/
3 + up to two characters of the original data
7817 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7820 function toByteArray (b64) {
7821 var i, l, tmp, placeHolders, arr
7822 var len = b64.length
7823 placeHolders = placeHoldersCount(b64)
7825 arr = new Arr((len *
3 /
4) - placeHolders)
7827 // if there are placeholders, only get up to the last complete
4 chars
7828 l = placeHolders
> 0 ? len -
4 : len
7832 for (i =
0; i < l; i +=
4) {
7833 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7834 arr[L++] = (tmp
>> 16) &
0xFF
7835 arr[L++] = (tmp
>> 8) &
0xFF
7836 arr[L++] = tmp &
0xFF
7839 if (placeHolders ===
2) {
7840 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7841 arr[L++] = tmp &
0xFF
7842 } else if (placeHolders ===
1) {
7843 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7844 arr[L++] = (tmp
>> 8) &
0xFF
7845 arr[L++] = tmp &
0xFF
7851 function tripletToBase64 (num) {
7852 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7855 function encodeChunk (uint8, start, end) {
7858 for (var i = start; i < end; i +=
3) {
7859 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7860 output.push(tripletToBase64(tmp))
7862 return output.join('')
7865 function fromByteArray (uint8) {
7867 var len = uint8.length
7868 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7871 var maxChunkLength =
16383 // must be multiple of
3
7873 // go through the array every three bytes, we'll deal with trailing stuff later
7874 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7875 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7878 // pad the end with zeros, but make sure to not forget the extra bytes
7879 if (extraBytes ===
1) {
7880 tmp = uint8[len -
1]
7881 output += lookup[tmp
>> 2]
7882 output += lookup[(tmp <<
4) &
0x3F]
7884 } else if (extraBytes ===
2) {
7885 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7886 output += lookup[tmp
>> 10]
7887 output += lookup[(tmp
>> 4) &
0x3F]
7888 output += lookup[(tmp <<
2) &
0x3F]
7894 return parts.join('')
7897 },{}],
3:[function(require,module,exports){
7899 },{}],
4:[function(require,module,exports){
7901 * The buffer module from node.js, for the browser.
7903 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7906 /* eslint-disable no-proto */
7910 var base64 = require('base64-js')
7911 var ieee754 = require('ieee754')
7913 exports.Buffer = Buffer
7914 exports.SlowBuffer = SlowBuffer
7915 exports.INSPECT_MAX_BYTES =
50
7917 var K_MAX_LENGTH =
0x7fffffff
7918 exports.kMaxLength = K_MAX_LENGTH
7921 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7922 * === true Use Uint8Array implementation (fastest)
7923 * === false Print warning and recommend using `buffer` v4.x which has an Object
7924 * implementation (most compatible, even IE6)
7926 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7927 * Opera
11.6+, iOS
4.2+.
7929 * We report that the browser does not support typed arrays if the are not subclassable
7930 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7931 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7932 * for __proto__ and has a buggy typed array implementation.
7934 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7936 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7937 typeof console.error === 'function') {
7939 'This browser lacks typed array (Uint8Array) support which is required by ' +
7940 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7944 function typedArraySupport () {
7945 // Can typed array instances can be augmented?
7947 var arr = new Uint8Array(
1)
7948 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7949 return arr.foo() ===
42
7955 function createBuffer (length) {
7956 if (length
> K_MAX_LENGTH) {
7957 throw new RangeError('Invalid typed array length')
7959 // Return an augmented `Uint8Array` instance
7960 var buf = new Uint8Array(length)
7961 buf.__proto__ = Buffer.prototype
7966 * The Buffer constructor returns instances of `Uint8Array` that have their
7967 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
7968 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
7969 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
7970 * returns a single octet.
7972 * The `Uint8Array` prototype remains unmodified.
7975 function Buffer (arg, encodingOrOffset, length) {
7977 if (typeof arg === 'number') {
7978 if (typeof encodingOrOffset === 'string') {
7980 'If encoding is specified then the first argument must be a string'
7983 return allocUnsafe(arg)
7985 return from(arg, encodingOrOffset, length)
7988 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
7989 if (typeof Symbol !== 'undefined' && Symbol.species &&
7990 Buffer[Symbol.species] === Buffer) {
7991 Object.defineProperty(Buffer, Symbol.species, {
7999 Buffer.poolSize =
8192 // not used by this implementation
8001 function from (value, encodingOrOffset, length) {
8002 if (typeof value === 'number') {
8003 throw new TypeError('"value" argument must not be a number')
8006 if (value instanceof ArrayBuffer) {
8007 return fromArrayBuffer(value, encodingOrOffset, length)
8010 if (typeof value === 'string') {
8011 return fromString(value, encodingOrOffset)
8014 return fromObject(value)
8018 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8019 * if value is a number.
8020 * Buffer.from(str[, encoding])
8021 * Buffer.from(array)
8022 * Buffer.from(buffer)
8023 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8025 Buffer.from = function (value, encodingOrOffset, length) {
8026 return from(value, encodingOrOffset, length)
8029 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8030 // https://github.com/feross/buffer/pull/
148
8031 Buffer.prototype.__proto__ = Uint8Array.prototype
8032 Buffer.__proto__ = Uint8Array
8034 function assertSize (size) {
8035 if (typeof size !== 'number') {
8036 throw new TypeError('"size" argument must be a number')
8037 } else if (size <
0) {
8038 throw new RangeError('"size" argument must not be negative')
8042 function alloc (size, fill, encoding) {
8045 return createBuffer(size)
8047 if (fill !== undefined) {
8048 // Only pay attention to encoding if it's a string. This
8049 // prevents accidentally sending in a number that would
8050 // be interpretted as a start offset.
8051 return typeof encoding === 'string'
8052 ? createBuffer(size).fill(fill, encoding)
8053 : createBuffer(size).fill(fill)
8055 return createBuffer(size)
8059 * Creates a new filled Buffer instance.
8060 * alloc(size[, fill[, encoding]])
8062 Buffer.alloc = function (size, fill, encoding) {
8063 return alloc(size, fill, encoding)
8066 function allocUnsafe (size) {
8068 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8072 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8074 Buffer.allocUnsafe = function (size) {
8075 return allocUnsafe(size)
8078 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8080 Buffer.allocUnsafeSlow = function (size) {
8081 return allocUnsafe(size)
8084 function fromString (string, encoding) {
8085 if (typeof encoding !== 'string' || encoding === '') {
8089 if (!Buffer.isEncoding(encoding)) {
8090 throw new TypeError('"encoding" must be a valid string encoding')
8093 var length = byteLength(string, encoding) |
0
8094 var buf = createBuffer(length)
8096 var actual = buf.write(string, encoding)
8098 if (actual !== length) {
8099 // Writing a hex string, for example, that contains invalid characters will
8100 // cause everything after the first invalid character to be ignored. (e.g.
8101 // 'abxxcd' will be treated as 'ab')
8102 buf = buf.slice(
0, actual)
8108 function fromArrayLike (array) {
8109 var length = array.length <
0 ?
0 : checked(array.length) |
0
8110 var buf = createBuffer(length)
8111 for (var i =
0; i < length; i +=
1) {
8112 buf[i] = array[i] &
255
8117 function fromArrayBuffer (array, byteOffset, length) {
8118 if (byteOffset <
0 || array.byteLength < byteOffset) {
8119 throw new RangeError('\'offset\' is out of bounds')
8122 if (array.byteLength < byteOffset + (length ||
0)) {
8123 throw new RangeError('\'length\' is out of bounds')
8127 if (byteOffset === undefined && length === undefined) {
8128 buf = new Uint8Array(array)
8129 } else if (length === undefined) {
8130 buf = new Uint8Array(array, byteOffset)
8132 buf = new Uint8Array(array, byteOffset, length)
8135 // Return an augmented `Uint8Array` instance
8136 buf.__proto__ = Buffer.prototype
8140 function fromObject (obj) {
8141 if (Buffer.isBuffer(obj)) {
8142 var len = checked(obj.length) |
0
8143 var buf = createBuffer(len)
8145 if (buf.length ===
0) {
8149 obj.copy(buf,
0,
0, len)
8154 if (isArrayBufferView(obj) || 'length' in obj) {
8155 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8156 return createBuffer(
0)
8158 return fromArrayLike(obj)
8161 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8162 return fromArrayLike(obj.data)
8166 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8169 function checked (length) {
8170 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8171 // length is NaN (which is otherwise coerced to zero.)
8172 if (length
>= K_MAX_LENGTH) {
8173 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8174 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8179 function SlowBuffer (length) {
8180 if (+length != length) { // eslint-disable-line eqeqeq
8183 return Buffer.alloc(+length)
8186 Buffer.isBuffer = function isBuffer (b) {
8187 return b != null && b._isBuffer === true
8190 Buffer.compare = function compare (a, b) {
8191 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8192 throw new TypeError('Arguments must be Buffers')
8195 if (a === b) return
0
8200 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8201 if (a[i] !== b[i]) {
8208 if (x < y) return -
1
8213 Buffer.isEncoding = function isEncoding (encoding) {
8214 switch (String(encoding).toLowerCase()) {
8232 Buffer.concat = function concat (list, length) {
8233 if (!Array.isArray(list)) {
8234 throw new TypeError('"list" argument must be an Array of Buffers')
8237 if (list.length ===
0) {
8238 return Buffer.alloc(
0)
8242 if (length === undefined) {
8244 for (i =
0; i < list.length; ++i) {
8245 length += list[i].length
8249 var buffer = Buffer.allocUnsafe(length)
8251 for (i =
0; i < list.length; ++i) {
8253 if (!Buffer.isBuffer(buf)) {
8254 throw new TypeError('"list" argument must be an Array of Buffers')
8256 buf.copy(buffer, pos)
8262 function byteLength (string, encoding) {
8263 if (Buffer.isBuffer(string)) {
8264 return string.length
8266 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8267 return string.byteLength
8269 if (typeof string !== 'string') {
8270 string = '' + string
8273 var len = string.length
8274 if (len ===
0) return
0
8276 // Use a for loop to avoid recursion
8277 var loweredCase = false
8287 return utf8ToBytes(string).length
8296 return base64ToBytes(string).length
8298 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8299 encoding = ('' + encoding).toLowerCase()
8304 Buffer.byteLength = byteLength
8306 function slowToString (encoding, start, end) {
8307 var loweredCase = false
8309 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8310 // property of a typed array.
8312 // This behaves neither like String nor Uint8Array in that we set start/end
8313 // to their upper/lower bounds if the value passed is out of range.
8314 // undefined is handled specially as per ECMA-
262 6th Edition,
8315 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8316 if (start === undefined || start <
0) {
8319 // Return early if start
> this.length. Done here to prevent potential uint32
8320 // coercion fail below.
8321 if (start
> this.length) {
8325 if (end === undefined || end
> this.length) {
8333 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8341 if (!encoding) encoding = 'utf8'
8346 return hexSlice(this, start, end)
8350 return utf8Slice(this, start, end)
8353 return asciiSlice(this, start, end)
8357 return latin1Slice(this, start, end)
8360 return base64Slice(this, start, end)
8366 return utf16leSlice(this, start, end)
8369 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8370 encoding = (encoding + '').toLowerCase()
8376 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8377 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8378 // reliably in a browserify context because there could be multiple different
8379 // copies of the 'buffer' package in use. This method works even for Buffer
8380 // instances that were created from another copy of the `buffer` package.
8381 // See: https://github.com/feross/buffer/issues/
154
8382 Buffer.prototype._isBuffer = true
8384 function swap (b, n, m) {
8390 Buffer.prototype.swap16 = function swap16 () {
8391 var len = this.length
8392 if (len %
2 !==
0) {
8393 throw new RangeError('Buffer size must be a multiple of
16-bits')
8395 for (var i =
0; i < len; i +=
2) {
8396 swap(this, i, i +
1)
8401 Buffer.prototype.swap32 = function swap32 () {
8402 var len = this.length
8403 if (len %
4 !==
0) {
8404 throw new RangeError('Buffer size must be a multiple of
32-bits')
8406 for (var i =
0; i < len; i +=
4) {
8407 swap(this, i, i +
3)
8408 swap(this, i +
1, i +
2)
8413 Buffer.prototype.swap64 = function swap64 () {
8414 var len = this.length
8415 if (len %
8 !==
0) {
8416 throw new RangeError('Buffer size must be a multiple of
64-bits')
8418 for (var i =
0; i < len; i +=
8) {
8419 swap(this, i, i +
7)
8420 swap(this, i +
1, i +
6)
8421 swap(this, i +
2, i +
5)
8422 swap(this, i +
3, i +
4)
8427 Buffer.prototype.toString = function toString () {
8428 var length = this.length
8429 if (length ===
0) return ''
8430 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8431 return slowToString.apply(this, arguments)
8434 Buffer.prototype.equals = function equals (b) {
8435 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8436 if (this === b) return true
8437 return Buffer.compare(this, b) ===
0
8440 Buffer.prototype.inspect = function inspect () {
8442 var max = exports.INSPECT_MAX_BYTES
8443 if (this.length
> 0) {
8444 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8445 if (this.length
> max) str += ' ... '
8447 return '
<Buffer ' + str + '
>'
8450 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8451 if (!Buffer.isBuffer(target)) {
8452 throw new TypeError('Argument must be a Buffer')
8455 if (start === undefined) {
8458 if (end === undefined) {
8459 end = target ? target.length :
0
8461 if (thisStart === undefined) {
8464 if (thisEnd === undefined) {
8465 thisEnd = this.length
8468 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8469 throw new RangeError('out of range index')
8472 if (thisStart
>= thisEnd && start
>= end) {
8475 if (thisStart
>= thisEnd) {
8487 if (this === target) return
0
8489 var x = thisEnd - thisStart
8491 var len = Math.min(x, y)
8493 var thisCopy = this.slice(thisStart, thisEnd)
8494 var targetCopy = target.slice(start, end)
8496 for (var i =
0; i < len; ++i) {
8497 if (thisCopy[i] !== targetCopy[i]) {
8504 if (x < y) return -
1
8509 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8510 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8513 // - buffer - a Buffer to search
8514 // - val - a string, Buffer, or number
8515 // - byteOffset - an index into `buffer`; will be clamped to an int32
8516 // - encoding - an optional encoding, relevant is val is a string
8517 // - dir - true for indexOf, false for lastIndexOf
8518 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8519 // Empty buffer means no match
8520 if (buffer.length ===
0) return -
1
8522 // Normalize byteOffset
8523 if (typeof byteOffset === 'string') {
8524 encoding = byteOffset
8526 } else if (byteOffset
> 0x7fffffff) {
8527 byteOffset =
0x7fffffff
8528 } else if (byteOffset < -
0x80000000) {
8529 byteOffset = -
0x80000000
8531 byteOffset = +byteOffset // Coerce to Number.
8532 if (numberIsNaN(byteOffset)) {
8533 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8534 byteOffset = dir ?
0 : (buffer.length -
1)
8537 // Normalize byteOffset: negative offsets start from the end of the buffer
8538 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8539 if (byteOffset
>= buffer.length) {
8541 else byteOffset = buffer.length -
1
8542 } else if (byteOffset <
0) {
8543 if (dir) byteOffset =
0
8548 if (typeof val === 'string') {
8549 val = Buffer.from(val, encoding)
8552 // Finally, search either indexOf (if dir is true) or lastIndexOf
8553 if (Buffer.isBuffer(val)) {
8554 // Special case: looking for empty string/buffer always fails
8555 if (val.length ===
0) {
8558 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8559 } else if (typeof val === 'number') {
8560 val = val &
0xFF // Search for a byte value [
0-
255]
8561 if (typeof Uint8Array.prototype.indexOf === 'function') {
8563 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8565 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8568 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8571 throw new TypeError('val must be string, number or Buffer')
8574 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8576 var arrLength = arr.length
8577 var valLength = val.length
8579 if (encoding !== undefined) {
8580 encoding = String(encoding).toLowerCase()
8581 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8582 encoding === 'utf16le' || encoding === 'utf-
16le') {
8583 if (arr.length <
2 || val.length <
2) {
8593 function read (buf, i) {
8594 if (indexSize ===
1) {
8597 return buf.readUInt16BE(i * indexSize)
8604 for (i = byteOffset; i < arrLength; i++) {
8605 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8606 if (foundIndex === -
1) foundIndex = i
8607 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8609 if (foundIndex !== -
1) i -= i - foundIndex
8614 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8615 for (i = byteOffset; i
>=
0; i--) {
8617 for (var j =
0; j < valLength; j++) {
8618 if (read(arr, i + j) !== read(val, j)) {
8630 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8631 return this.indexOf(val, byteOffset, encoding) !== -
1
8634 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8635 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8638 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8639 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8642 function hexWrite (buf, string, offset, length) {
8643 offset = Number(offset) ||
0
8644 var remaining = buf.length - offset
8648 length = Number(length)
8649 if (length
> remaining) {
8654 // must be an even number of digits
8655 var strLen = string.length
8656 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8658 if (length
> strLen /
2) {
8661 for (var i =
0; i < length; ++i) {
8662 var parsed = parseInt(string.substr(i *
2,
2),
16)
8663 if (numberIsNaN(parsed)) return i
8664 buf[offset + i] = parsed
8669 function utf8Write (buf, string, offset, length) {
8670 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8673 function asciiWrite (buf, string, offset, length) {
8674 return blitBuffer(asciiToBytes(string), buf, offset, length)
8677 function latin1Write (buf, string, offset, length) {
8678 return asciiWrite(buf, string, offset, length)
8681 function base64Write (buf, string, offset, length) {
8682 return blitBuffer(base64ToBytes(string), buf, offset, length)
8685 function ucs2Write (buf, string, offset, length) {
8686 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8689 Buffer.prototype.write = function write (string, offset, length, encoding) {
8690 // Buffer#write(string)
8691 if (offset === undefined) {
8693 length = this.length
8695 // Buffer#write(string, encoding)
8696 } else if (length === undefined && typeof offset === 'string') {
8698 length = this.length
8700 // Buffer#write(string, offset[, length][, encoding])
8701 } else if (isFinite(offset)) {
8702 offset = offset
>>> 0
8703 if (isFinite(length)) {
8704 length = length
>>> 0
8705 if (encoding === undefined) encoding = 'utf8'
8712 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8716 var remaining = this.length - offset
8717 if (length === undefined || length
> remaining) length = remaining
8719 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8720 throw new RangeError('Attempt to write outside buffer bounds')
8723 if (!encoding) encoding = 'utf8'
8725 var loweredCase = false
8729 return hexWrite(this, string, offset, length)
8733 return utf8Write(this, string, offset, length)
8736 return asciiWrite(this, string, offset, length)
8740 return latin1Write(this, string, offset, length)
8743 // Warning: maxLength not taken into account in base64Write
8744 return base64Write(this, string, offset, length)
8750 return ucs2Write(this, string, offset, length)
8753 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8754 encoding = ('' + encoding).toLowerCase()
8760 Buffer.prototype.toJSON = function toJSON () {
8763 data: Array.prototype.slice.call(this._arr || this,
0)
8767 function base64Slice (buf, start, end) {
8768 if (start ===
0 && end === buf.length) {
8769 return base64.fromByteArray(buf)
8771 return base64.fromByteArray(buf.slice(start, end))
8775 function utf8Slice (buf, start, end) {
8776 end = Math.min(buf.length, end)
8781 var firstByte = buf[i]
8782 var codePoint = null
8783 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8784 : (firstByte
> 0xDF) ?
3
8785 : (firstByte
> 0xBF) ?
2
8788 if (i + bytesPerSequence <= end) {
8789 var secondByte, thirdByte, fourthByte, tempCodePoint
8791 switch (bytesPerSequence) {
8793 if (firstByte <
0x80) {
8794 codePoint = firstByte
8798 secondByte = buf[i +
1]
8799 if ((secondByte &
0xC0) ===
0x80) {
8800 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8801 if (tempCodePoint
> 0x7F) {
8802 codePoint = tempCodePoint
8807 secondByte = buf[i +
1]
8808 thirdByte = buf[i +
2]
8809 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8810 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8811 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8812 codePoint = tempCodePoint
8817 secondByte = buf[i +
1]
8818 thirdByte = buf[i +
2]
8819 fourthByte = buf[i +
3]
8820 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8821 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8822 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8823 codePoint = tempCodePoint
8829 if (codePoint === null) {
8830 // we did not generate a valid codePoint so insert a
8831 // replacement char (U+FFFD) and advance only
1 byte
8833 bytesPerSequence =
1
8834 } else if (codePoint
> 0xFFFF) {
8835 // encode to utf16 (surrogate pair dance)
8836 codePoint -=
0x10000
8837 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8838 codePoint =
0xDC00 | codePoint &
0x3FF
8842 i += bytesPerSequence
8845 return decodeCodePointsArray(res)
8848 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8849 // the lowest limit is Chrome, with
0x10000 args.
8850 // We go
1 magnitude less, for safety
8851 var MAX_ARGUMENTS_LENGTH =
0x1000
8853 function decodeCodePointsArray (codePoints) {
8854 var len = codePoints.length
8855 if (len <= MAX_ARGUMENTS_LENGTH) {
8856 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8859 // Decode in chunks to avoid
"call stack size exceeded".
8863 res += String.fromCharCode.apply(
8865 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8871 function asciiSlice (buf, start, end) {
8873 end = Math.min(buf.length, end)
8875 for (var i = start; i < end; ++i) {
8876 ret += String.fromCharCode(buf[i] &
0x7F)
8881 function latin1Slice (buf, start, end) {
8883 end = Math.min(buf.length, end)
8885 for (var i = start; i < end; ++i) {
8886 ret += String.fromCharCode(buf[i])
8891 function hexSlice (buf, start, end) {
8892 var len = buf.length
8894 if (!start || start <
0) start =
0
8895 if (!end || end <
0 || end
> len) end = len
8898 for (var i = start; i < end; ++i) {
8899 out += toHex(buf[i])
8904 function utf16leSlice (buf, start, end) {
8905 var bytes = buf.slice(start, end)
8907 for (var i =
0; i < bytes.length; i +=
2) {
8908 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8913 Buffer.prototype.slice = function slice (start, end) {
8914 var len = this.length
8916 end = end === undefined ? len : ~~end
8920 if (start <
0) start =
0
8921 } else if (start
> len) {
8927 if (end <
0) end =
0
8928 } else if (end
> len) {
8932 if (end < start) end = start
8934 var newBuf = this.subarray(start, end)
8935 // Return an augmented `Uint8Array` instance
8936 newBuf.__proto__ = Buffer.prototype
8941 * Need to make sure that buffer isn't trying to write out of bounds.
8943 function checkOffset (offset, ext, length) {
8944 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8945 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8948 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8949 offset = offset
>>> 0
8950 byteLength = byteLength
>>> 0
8951 if (!noAssert) checkOffset(offset, byteLength, this.length)
8953 var val = this[offset]
8956 while (++i < byteLength && (mul *=
0x100)) {
8957 val += this[offset + i] * mul
8963 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8964 offset = offset
>>> 0
8965 byteLength = byteLength
>>> 0
8967 checkOffset(offset, byteLength, this.length)
8970 var val = this[offset + --byteLength]
8972 while (byteLength
> 0 && (mul *=
0x100)) {
8973 val += this[offset + --byteLength] * mul
8979 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8980 offset = offset
>>> 0
8981 if (!noAssert) checkOffset(offset,
1, this.length)
8985 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
8986 offset = offset
>>> 0
8987 if (!noAssert) checkOffset(offset,
2, this.length)
8988 return this[offset] | (this[offset +
1] <<
8)
8991 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
8992 offset = offset
>>> 0
8993 if (!noAssert) checkOffset(offset,
2, this.length)
8994 return (this[offset] <<
8) | this[offset +
1]
8997 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
8998 offset = offset
>>> 0
8999 if (!noAssert) checkOffset(offset,
4, this.length)
9001 return ((this[offset]) |
9002 (this[offset +
1] <<
8) |
9003 (this[offset +
2] <<
16)) +
9004 (this[offset +
3] *
0x1000000)
9007 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9008 offset = offset
>>> 0
9009 if (!noAssert) checkOffset(offset,
4, this.length)
9011 return (this[offset] *
0x1000000) +
9012 ((this[offset +
1] <<
16) |
9013 (this[offset +
2] <<
8) |
9017 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9018 offset = offset
>>> 0
9019 byteLength = byteLength
>>> 0
9020 if (!noAssert) checkOffset(offset, byteLength, this.length)
9022 var val = this[offset]
9025 while (++i < byteLength && (mul *=
0x100)) {
9026 val += this[offset + i] * mul
9030 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9035 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9036 offset = offset
>>> 0
9037 byteLength = byteLength
>>> 0
9038 if (!noAssert) checkOffset(offset, byteLength, this.length)
9042 var val = this[offset + --i]
9043 while (i
> 0 && (mul *=
0x100)) {
9044 val += this[offset + --i] * mul
9048 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9053 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9054 offset = offset
>>> 0
9055 if (!noAssert) checkOffset(offset,
1, this.length)
9056 if (!(this[offset] &
0x80)) return (this[offset])
9057 return ((
0xff - this[offset] +
1) * -
1)
9060 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9061 offset = offset
>>> 0
9062 if (!noAssert) checkOffset(offset,
2, this.length)
9063 var val = this[offset] | (this[offset +
1] <<
8)
9064 return (val &
0x8000) ? val |
0xFFFF0000 : val
9067 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9068 offset = offset
>>> 0
9069 if (!noAssert) checkOffset(offset,
2, this.length)
9070 var val = this[offset +
1] | (this[offset] <<
8)
9071 return (val &
0x8000) ? val |
0xFFFF0000 : val
9074 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9075 offset = offset
>>> 0
9076 if (!noAssert) checkOffset(offset,
4, this.length)
9078 return (this[offset]) |
9079 (this[offset +
1] <<
8) |
9080 (this[offset +
2] <<
16) |
9081 (this[offset +
3] <<
24)
9084 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9085 offset = offset
>>> 0
9086 if (!noAssert) checkOffset(offset,
4, this.length)
9088 return (this[offset] <<
24) |
9089 (this[offset +
1] <<
16) |
9090 (this[offset +
2] <<
8) |
9094 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9095 offset = offset
>>> 0
9096 if (!noAssert) checkOffset(offset,
4, this.length)
9097 return ieee754.read(this, offset, true,
23,
4)
9100 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9101 offset = offset
>>> 0
9102 if (!noAssert) checkOffset(offset,
4, this.length)
9103 return ieee754.read(this, offset, false,
23,
4)
9106 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9107 offset = offset
>>> 0
9108 if (!noAssert) checkOffset(offset,
8, this.length)
9109 return ieee754.read(this, offset, true,
52,
8)
9112 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9113 offset = offset
>>> 0
9114 if (!noAssert) checkOffset(offset,
8, this.length)
9115 return ieee754.read(this, offset, false,
52,
8)
9118 function checkInt (buf, value, offset, ext, max, min) {
9119 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9120 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9121 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9124 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9126 offset = offset
>>> 0
9127 byteLength = byteLength
>>> 0
9129 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9130 checkInt(this, value, offset, byteLength, maxBytes,
0)
9135 this[offset] = value &
0xFF
9136 while (++i < byteLength && (mul *=
0x100)) {
9137 this[offset + i] = (value / mul) &
0xFF
9140 return offset + byteLength
9143 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9145 offset = offset
>>> 0
9146 byteLength = byteLength
>>> 0
9148 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9149 checkInt(this, value, offset, byteLength, maxBytes,
0)
9152 var i = byteLength -
1
9154 this[offset + i] = value &
0xFF
9155 while (--i
>=
0 && (mul *=
0x100)) {
9156 this[offset + i] = (value / mul) &
0xFF
9159 return offset + byteLength
9162 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9164 offset = offset
>>> 0
9165 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9166 this[offset] = (value &
0xff)
9170 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9172 offset = offset
>>> 0
9173 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9174 this[offset] = (value &
0xff)
9175 this[offset +
1] = (value
>>> 8)
9179 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9181 offset = offset
>>> 0
9182 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9183 this[offset] = (value
>>> 8)
9184 this[offset +
1] = (value &
0xff)
9188 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9190 offset = offset
>>> 0
9191 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9192 this[offset +
3] = (value
>>> 24)
9193 this[offset +
2] = (value
>>> 16)
9194 this[offset +
1] = (value
>>> 8)
9195 this[offset] = (value &
0xff)
9199 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9201 offset = offset
>>> 0
9202 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9203 this[offset] = (value
>>> 24)
9204 this[offset +
1] = (value
>>> 16)
9205 this[offset +
2] = (value
>>> 8)
9206 this[offset +
3] = (value &
0xff)
9210 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9212 offset = offset
>>> 0
9214 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9216 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9222 this[offset] = value &
0xFF
9223 while (++i < byteLength && (mul *=
0x100)) {
9224 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9227 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9230 return offset + byteLength
9233 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9235 offset = offset
>>> 0
9237 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9239 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9242 var i = byteLength -
1
9245 this[offset + i] = value &
0xFF
9246 while (--i
>=
0 && (mul *=
0x100)) {
9247 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9250 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9253 return offset + byteLength
9256 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9258 offset = offset
>>> 0
9259 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9260 if (value <
0) value =
0xff + value +
1
9261 this[offset] = (value &
0xff)
9265 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9267 offset = offset
>>> 0
9268 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9269 this[offset] = (value &
0xff)
9270 this[offset +
1] = (value
>>> 8)
9274 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9276 offset = offset
>>> 0
9277 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9278 this[offset] = (value
>>> 8)
9279 this[offset +
1] = (value &
0xff)
9283 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9285 offset = offset
>>> 0
9286 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9287 this[offset] = (value &
0xff)
9288 this[offset +
1] = (value
>>> 8)
9289 this[offset +
2] = (value
>>> 16)
9290 this[offset +
3] = (value
>>> 24)
9294 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9296 offset = offset
>>> 0
9297 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9298 if (value <
0) value =
0xffffffff + value +
1
9299 this[offset] = (value
>>> 24)
9300 this[offset +
1] = (value
>>> 16)
9301 this[offset +
2] = (value
>>> 8)
9302 this[offset +
3] = (value &
0xff)
9306 function checkIEEE754 (buf, value, offset, ext, max, min) {
9307 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9308 if (offset <
0) throw new RangeError('Index out of range')
9311 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9313 offset = offset
>>> 0
9315 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9317 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9321 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9322 return writeFloat(this, value, offset, true, noAssert)
9325 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9326 return writeFloat(this, value, offset, false, noAssert)
9329 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9331 offset = offset
>>> 0
9333 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9335 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9339 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9340 return writeDouble(this, value, offset, true, noAssert)
9343 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9344 return writeDouble(this, value, offset, false, noAssert)
9347 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9348 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9349 if (!start) start =
0
9350 if (!end && end !==
0) end = this.length
9351 if (targetStart
>= target.length) targetStart = target.length
9352 if (!targetStart) targetStart =
0
9353 if (end
> 0 && end < start) end = start
9355 // Copy
0 bytes; we're done
9356 if (end === start) return
0
9357 if (target.length ===
0 || this.length ===
0) return
0
9359 // Fatal error conditions
9360 if (targetStart <
0) {
9361 throw new RangeError('targetStart out of bounds')
9363 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9364 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9367 if (end
> this.length) end = this.length
9368 if (target.length - targetStart < end - start) {
9369 end = target.length - targetStart + start
9372 var len = end - start
9375 if (this === target && start < targetStart && targetStart < end) {
9376 // descending copy from end
9377 for (i = len -
1; i
>=
0; --i) {
9378 target[i + targetStart] = this[i + start]
9380 } else if (len <
1000) {
9381 // ascending copy from start
9382 for (i =
0; i < len; ++i) {
9383 target[i + targetStart] = this[i + start]
9386 Uint8Array.prototype.set.call(
9388 this.subarray(start, start + len),
9397 // buffer.fill(number[, offset[, end]])
9398 // buffer.fill(buffer[, offset[, end]])
9399 // buffer.fill(string[, offset[, end]][, encoding])
9400 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9401 // Handle string cases:
9402 if (typeof val === 'string') {
9403 if (typeof start === 'string') {
9407 } else if (typeof end === 'string') {
9411 if (val.length ===
1) {
9412 var code = val.charCodeAt(
0)
9417 if (encoding !== undefined && typeof encoding !== 'string') {
9418 throw new TypeError('encoding must be a string')
9420 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9421 throw new TypeError('Unknown encoding: ' + encoding)
9423 } else if (typeof val === 'number') {
9427 // Invalid ranges are not set to a default, so can range check early.
9428 if (start <
0 || this.length < start || this.length < end) {
9429 throw new RangeError('Out of range index')
9437 end = end === undefined ? this.length : end
>>> 0
9442 if (typeof val === 'number') {
9443 for (i = start; i < end; ++i) {
9447 var bytes = Buffer.isBuffer(val)
9449 : new Buffer(val, encoding)
9450 var len = bytes.length
9451 for (i =
0; i < end - start; ++i) {
9452 this[i + start] = bytes[i % len]
9462 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9464 function base64clean (str) {
9465 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9466 str = str.trim().replace(INVALID_BASE64_RE, '')
9467 // Node converts strings with length <
2 to ''
9468 if (str.length <
2) return ''
9469 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9470 while (str.length %
4 !==
0) {
9476 function toHex (n) {
9477 if (n <
16) return '
0' + n.toString(
16)
9478 return n.toString(
16)
9481 function utf8ToBytes (string, units) {
9482 units = units || Infinity
9484 var length = string.length
9485 var leadSurrogate = null
9488 for (var i =
0; i < length; ++i) {
9489 codePoint = string.charCodeAt(i)
9491 // is surrogate component
9492 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9493 // last char was a lead
9494 if (!leadSurrogate) {
9496 if (codePoint
> 0xDBFF) {
9498 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9500 } else if (i +
1 === length) {
9502 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9507 leadSurrogate = codePoint
9513 if (codePoint <
0xDC00) {
9514 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9515 leadSurrogate = codePoint
9519 // valid surrogate pair
9520 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9521 } else if (leadSurrogate) {
9522 // valid bmp char, but last char was a lead
9523 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9526 leadSurrogate = null
9529 if (codePoint <
0x80) {
9530 if ((units -=
1) <
0) break
9531 bytes.push(codePoint)
9532 } else if (codePoint <
0x800) {
9533 if ((units -=
2) <
0) break
9535 codePoint
>> 0x6 |
0xC0,
9536 codePoint &
0x3F |
0x80
9538 } else if (codePoint <
0x10000) {
9539 if ((units -=
3) <
0) break
9541 codePoint
>> 0xC |
0xE0,
9542 codePoint
>> 0x6 &
0x3F |
0x80,
9543 codePoint &
0x3F |
0x80
9545 } else if (codePoint <
0x110000) {
9546 if ((units -=
4) <
0) break
9548 codePoint
>> 0x12 |
0xF0,
9549 codePoint
>> 0xC &
0x3F |
0x80,
9550 codePoint
>> 0x6 &
0x3F |
0x80,
9551 codePoint &
0x3F |
0x80
9554 throw new Error('Invalid code point')
9561 function asciiToBytes (str) {
9563 for (var i =
0; i < str.length; ++i) {
9564 // Node's code seems to be doing this and not &
0x7F..
9565 byteArray.push(str.charCodeAt(i) &
0xFF)
9570 function utf16leToBytes (str, units) {
9573 for (var i =
0; i < str.length; ++i) {
9574 if ((units -=
2) <
0) break
9576 c = str.charCodeAt(i)
9586 function base64ToBytes (str) {
9587 return base64.toByteArray(base64clean(str))
9590 function blitBuffer (src, dst, offset, length) {
9591 for (var i =
0; i < length; ++i) {
9592 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9593 dst[i + offset] = src[i]
9598 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9599 function isArrayBufferView (obj) {
9600 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9603 function numberIsNaN (obj) {
9604 return obj !== obj // eslint-disable-line no-self-compare
9607 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9609 // Copyright Joyent, Inc. and other Node contributors.
9611 // Permission is hereby granted, free of charge, to any person obtaining a
9612 // copy of this software and associated documentation files (the
9613 // "Software"), to deal in the Software without restriction, including
9614 // without limitation the rights to use, copy, modify, merge, publish,
9615 // distribute, sublicense, and/or sell copies of the Software, and to permit
9616 // persons to whom the Software is furnished to do so, subject to the
9617 // following conditions:
9619 // The above copyright notice and this permission notice shall be included
9620 // in all copies or substantial portions of the Software.
9622 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9623 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9624 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9625 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9626 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9627 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9628 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9630 // NOTE: These type checking functions intentionally don't use `instanceof`
9631 // because it is fragile and can be easily faked with `Object.create()`.
9633 function isArray(arg) {
9634 if (Array.isArray) {
9635 return Array.isArray(arg);
9637 return objectToString(arg) === '[object Array]';
9639 exports.isArray = isArray;
9641 function isBoolean(arg) {
9642 return typeof arg === 'boolean';
9644 exports.isBoolean = isBoolean;
9646 function isNull(arg) {
9647 return arg === null;
9649 exports.isNull = isNull;
9651 function isNullOrUndefined(arg) {
9654 exports.isNullOrUndefined = isNullOrUndefined;
9656 function isNumber(arg) {
9657 return typeof arg === 'number';
9659 exports.isNumber = isNumber;
9661 function isString(arg) {
9662 return typeof arg === 'string';
9664 exports.isString = isString;
9666 function isSymbol(arg) {
9667 return typeof arg === 'symbol';
9669 exports.isSymbol = isSymbol;
9671 function isUndefined(arg) {
9672 return arg === void
0;
9674 exports.isUndefined = isUndefined;
9676 function isRegExp(re) {
9677 return objectToString(re) === '[object RegExp]';
9679 exports.isRegExp = isRegExp;
9681 function isObject(arg) {
9682 return typeof arg === 'object' && arg !== null;
9684 exports.isObject = isObject;
9686 function isDate(d) {
9687 return objectToString(d) === '[object Date]';
9689 exports.isDate = isDate;
9691 function isError(e) {
9692 return (objectToString(e) === '[object Error]' || e instanceof Error);
9694 exports.isError = isError;
9696 function isFunction(arg) {
9697 return typeof arg === 'function';
9699 exports.isFunction = isFunction;
9701 function isPrimitive(arg) {
9702 return arg === null ||
9703 typeof arg === 'boolean' ||
9704 typeof arg === 'number' ||
9705 typeof arg === 'string' ||
9706 typeof arg === 'symbol' || // ES6 symbol
9707 typeof arg === 'undefined';
9709 exports.isPrimitive = isPrimitive;
9711 exports.isBuffer = Buffer.isBuffer;
9713 function objectToString(o) {
9714 return Object.prototype.toString.call(o);
9717 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9718 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9719 // Copyright Joyent, Inc. and other Node contributors.
9721 // Permission is hereby granted, free of charge, to any person obtaining a
9722 // copy of this software and associated documentation files (the
9723 // "Software"), to deal in the Software without restriction, including
9724 // without limitation the rights to use, copy, modify, merge, publish,
9725 // distribute, sublicense, and/or sell copies of the Software, and to permit
9726 // persons to whom the Software is furnished to do so, subject to the
9727 // following conditions:
9729 // The above copyright notice and this permission notice shall be included
9730 // in all copies or substantial portions of the Software.
9732 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9733 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9734 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9735 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9736 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9737 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9738 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9740 function EventEmitter() {
9741 this._events = this._events || {};
9742 this._maxListeners = this._maxListeners || undefined;
9744 module.exports = EventEmitter;
9746 // Backwards-compat with node
0.10.x
9747 EventEmitter.EventEmitter = EventEmitter;
9749 EventEmitter.prototype._events = undefined;
9750 EventEmitter.prototype._maxListeners = undefined;
9752 // By default EventEmitters will print a warning if more than
10 listeners are
9753 // added to it. This is a useful default which helps finding memory leaks.
9754 EventEmitter.defaultMaxListeners =
10;
9756 // Obviously not all Emitters should be limited to
10. This function allows
9757 // that to be increased. Set to zero for unlimited.
9758 EventEmitter.prototype.setMaxListeners = function(n) {
9759 if (!isNumber(n) || n <
0 || isNaN(n))
9760 throw TypeError('n must be a positive number');
9761 this._maxListeners = n;
9765 EventEmitter.prototype.emit = function(type) {
9766 var er, handler, len, args, i, listeners;
9771 // If there is no 'error' event listener then throw.
9772 if (type === 'error') {
9773 if (!this._events.error ||
9774 (isObject(this._events.error) && !this._events.error.length)) {
9776 if (er instanceof Error) {
9777 throw er; // Unhandled 'error' event
9779 // At least give some kind of context to the user
9780 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9787 handler = this._events[type];
9789 if (isUndefined(handler))
9792 if (isFunction(handler)) {
9793 switch (arguments.length) {
9799 handler.call(this, arguments[
1]);
9802 handler.call(this, arguments[
1], arguments[
2]);
9806 args = Array.prototype.slice.call(arguments,
1);
9807 handler.apply(this, args);
9809 } else if (isObject(handler)) {
9810 args = Array.prototype.slice.call(arguments,
1);
9811 listeners = handler.slice();
9812 len = listeners.length;
9813 for (i =
0; i < len; i++)
9814 listeners[i].apply(this, args);
9820 EventEmitter.prototype.addListener = function(type, listener) {
9823 if (!isFunction(listener))
9824 throw TypeError('listener must be a function');
9829 // To avoid recursion in the case that type === "newListener"! Before
9830 // adding it to the listeners, first emit "newListener".
9831 if (this._events.newListener)
9832 this.emit('newListener', type,
9833 isFunction(listener.listener) ?
9834 listener.listener : listener);
9836 if (!this._events[type])
9837 // Optimize the case of one listener. Don't need the extra array object.
9838 this._events[type] = listener;
9839 else if (isObject(this._events[type]))
9840 // If we've already got an array, just append.
9841 this._events[type].push(listener);
9843 // Adding the second element, need to change to array.
9844 this._events[type] = [this._events[type], listener];
9846 // Check for listener leak
9847 if (isObject(this._events[type]) && !this._events[type].warned) {
9848 if (!isUndefined(this._maxListeners)) {
9849 m = this._maxListeners;
9851 m = EventEmitter.defaultMaxListeners;
9854 if (m && m
> 0 && this._events[type].length
> m) {
9855 this._events[type].warned = true;
9856 console.error('(node) warning: possible EventEmitter memory ' +
9857 'leak detected. %d listeners added. ' +
9858 'Use emitter.setMaxListeners() to increase limit.',
9859 this._events[type].length);
9860 if (typeof console.trace === 'function') {
9861 // not supported in IE
10
9870 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9872 EventEmitter.prototype.once = function(type, listener) {
9873 if (!isFunction(listener))
9874 throw TypeError('listener must be a function');
9879 this.removeListener(type, g);
9883 listener.apply(this, arguments);
9887 g.listener = listener;
9893 // emits a 'removeListener' event iff the listener was removed
9894 EventEmitter.prototype.removeListener = function(type, listener) {
9895 var list, position, length, i;
9897 if (!isFunction(listener))
9898 throw TypeError('listener must be a function');
9900 if (!this._events || !this._events[type])
9903 list = this._events[type];
9904 length = list.length;
9907 if (list === listener ||
9908 (isFunction(list.listener) && list.listener === listener)) {
9909 delete this._events[type];
9910 if (this._events.removeListener)
9911 this.emit('removeListener', type, listener);
9913 } else if (isObject(list)) {
9914 for (i = length; i--
> 0;) {
9915 if (list[i] === listener ||
9916 (list[i].listener && list[i].listener === listener)) {
9925 if (list.length ===
1) {
9927 delete this._events[type];
9929 list.splice(position,
1);
9932 if (this._events.removeListener)
9933 this.emit('removeListener', type, listener);
9939 EventEmitter.prototype.removeAllListeners = function(type) {
9945 // not listening for removeListener, no need to emit
9946 if (!this._events.removeListener) {
9947 if (arguments.length ===
0)
9949 else if (this._events[type])
9950 delete this._events[type];
9954 // emit removeListener for all listeners on all events
9955 if (arguments.length ===
0) {
9956 for (key in this._events) {
9957 if (key === 'removeListener') continue;
9958 this.removeAllListeners(key);
9960 this.removeAllListeners('removeListener');
9965 listeners = this._events[type];
9967 if (isFunction(listeners)) {
9968 this.removeListener(type, listeners);
9969 } else if (listeners) {
9971 while (listeners.length)
9972 this.removeListener(type, listeners[listeners.length -
1]);
9974 delete this._events[type];
9979 EventEmitter.prototype.listeners = function(type) {
9981 if (!this._events || !this._events[type])
9983 else if (isFunction(this._events[type]))
9984 ret = [this._events[type]];
9986 ret = this._events[type].slice();
9990 EventEmitter.prototype.listenerCount = function(type) {
9992 var evlistener = this._events[type];
9994 if (isFunction(evlistener))
9996 else if (evlistener)
9997 return evlistener.length;
10002 EventEmitter.listenerCount = function(emitter, type) {
10003 return emitter.listenerCount(type);
10006 function isFunction(arg) {
10007 return typeof arg === 'function';
10010 function isNumber(arg) {
10011 return typeof arg === 'number';
10014 function isObject(arg) {
10015 return typeof arg === 'object' && arg !== null;
10018 function isUndefined(arg) {
10019 return arg === void
0;
10022 },{}],
7:[function(require,module,exports){
10023 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10025 var eLen = nBytes *
8 - mLen -
1
10026 var eMax = (
1 << eLen) -
1
10027 var eBias = eMax
>> 1
10029 var i = isLE ? (nBytes -
1) :
0
10030 var d = isLE ? -
1 :
1
10031 var s = buffer[offset + i]
10035 e = s & ((
1 << (-nBits)) -
1)
10038 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10040 m = e & ((
1 << (-nBits)) -
1)
10043 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10047 } else if (e === eMax) {
10048 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10050 m = m + Math.pow(
2, mLen)
10053 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10056 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10058 var eLen = nBytes *
8 - mLen -
1
10059 var eMax = (
1 << eLen) -
1
10060 var eBias = eMax
>> 1
10061 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10062 var i = isLE ?
0 : (nBytes -
1)
10063 var d = isLE ?
1 : -
1
10064 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10066 value = Math.abs(value)
10068 if (isNaN(value) || value === Infinity) {
10069 m = isNaN(value) ?
1 :
0
10072 e = Math.floor(Math.log(value) / Math.LN2)
10073 if (value * (c = Math.pow(
2, -e)) <
1) {
10077 if (e + eBias
>=
1) {
10080 value += rt * Math.pow(
2,
1 - eBias)
10082 if (value * c
>=
2) {
10087 if (e + eBias
>= eMax) {
10090 } else if (e + eBias
>=
1) {
10091 m = (value * c -
1) * Math.pow(
2, mLen)
10094 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10099 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10101 e = (e << mLen) | m
10103 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10105 buffer[offset + i - d] |= s *
128
10108 },{}],
8:[function(require,module,exports){
10109 if (typeof Object.create === 'function') {
10110 // implementation from standard node.js 'util' module
10111 module.exports = function inherits(ctor, superCtor) {
10112 ctor.super_ = superCtor
10113 ctor.prototype = Object.create(superCtor.prototype, {
10123 // old school shim for old browsers
10124 module.exports = function inherits(ctor, superCtor) {
10125 ctor.super_ = superCtor
10126 var TempCtor = function () {}
10127 TempCtor.prototype = superCtor.prototype
10128 ctor.prototype = new TempCtor()
10129 ctor.prototype.constructor = ctor
10133 },{}],
9:[function(require,module,exports){
10135 * Determine if an object is a Buffer
10137 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10141 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10142 // Object.prototype.constructor. Remove this eventually
10143 module.exports = function (obj) {
10144 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10147 function isBuffer (obj) {
10148 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10151 // For Node v0.10 support. Remove this eventually.
10152 function isSlowBuffer (obj) {
10153 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10156 },{}],
10:[function(require,module,exports){
10157 var toString = {}.toString;
10159 module.exports = Array.isArray || function (arr) {
10160 return toString.call(arr) == '[object Array]';
10163 },{}],
11:[function(require,module,exports){
10164 (function (process){
10167 if (!process.version ||
10168 process.version.indexOf('v0.') ===
0 ||
10169 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10170 module.exports = nextTick;
10172 module.exports = process.nextTick;
10175 function nextTick(fn, arg1, arg2, arg3) {
10176 if (typeof fn !== 'function') {
10177 throw new TypeError('"callback" argument must be a function');
10179 var len = arguments.length;
10184 return process.nextTick(fn);
10186 return process.nextTick(function afterTickOne() {
10187 fn.call(null, arg1);
10190 return process.nextTick(function afterTickTwo() {
10191 fn.call(null, arg1, arg2);
10194 return process.nextTick(function afterTickThree() {
10195 fn.call(null, arg1, arg2, arg3);
10198 args = new Array(len -
1);
10200 while (i < args.length) {
10201 args[i++] = arguments[i];
10203 return process.nextTick(function afterTick() {
10204 fn.apply(null, args);
10209 }).call(this,require('_process'))
10210 },{"_process":
12}],
12:[function(require,module,exports){
10211 // shim for using process in browser
10212 var process = module.exports = {};
10214 // cached from whatever global is present so that test runners that stub it
10215 // don't break things. But we need to wrap it in a try catch in case it is
10216 // wrapped in strict mode code which doesn't define any globals. It's inside a
10217 // function because try/catches deoptimize in certain engines.
10219 var cachedSetTimeout;
10220 var cachedClearTimeout;
10222 function defaultSetTimout() {
10223 throw new Error('setTimeout has not been defined');
10225 function defaultClearTimeout () {
10226 throw new Error('clearTimeout has not been defined');
10230 if (typeof setTimeout === 'function') {
10231 cachedSetTimeout = setTimeout;
10233 cachedSetTimeout = defaultSetTimout;
10236 cachedSetTimeout = defaultSetTimout;
10239 if (typeof clearTimeout === 'function') {
10240 cachedClearTimeout = clearTimeout;
10242 cachedClearTimeout = defaultClearTimeout;
10245 cachedClearTimeout = defaultClearTimeout;
10248 function runTimeout(fun) {
10249 if (cachedSetTimeout === setTimeout) {
10250 //normal enviroments in sane situations
10251 return setTimeout(fun,
0);
10253 // if setTimeout wasn't available but was latter defined
10254 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10255 cachedSetTimeout = setTimeout;
10256 return setTimeout(fun,
0);
10259 // when when somebody has screwed with setTimeout but no I.E. maddness
10260 return cachedSetTimeout(fun,
0);
10263 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10264 return cachedSetTimeout.call(null, fun,
0);
10266 // 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
10267 return cachedSetTimeout.call(this, fun,
0);
10273 function runClearTimeout(marker) {
10274 if (cachedClearTimeout === clearTimeout) {
10275 //normal enviroments in sane situations
10276 return clearTimeout(marker);
10278 // if clearTimeout wasn't available but was latter defined
10279 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10280 cachedClearTimeout = clearTimeout;
10281 return clearTimeout(marker);
10284 // when when somebody has screwed with setTimeout but no I.E. maddness
10285 return cachedClearTimeout(marker);
10288 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10289 return cachedClearTimeout.call(null, marker);
10291 // 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.
10292 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10293 return cachedClearTimeout.call(this, marker);
10301 var draining = false;
10303 var queueIndex = -
1;
10305 function cleanUpNextTick() {
10306 if (!draining || !currentQueue) {
10310 if (currentQueue.length) {
10311 queue = currentQueue.concat(queue);
10315 if (queue.length) {
10320 function drainQueue() {
10324 var timeout = runTimeout(cleanUpNextTick);
10327 var len = queue.length;
10329 currentQueue = queue;
10331 while (++queueIndex < len) {
10332 if (currentQueue) {
10333 currentQueue[queueIndex].run();
10337 len = queue.length;
10339 currentQueue = null;
10341 runClearTimeout(timeout);
10344 process.nextTick = function (fun) {
10345 var args = new Array(arguments.length -
1);
10346 if (arguments.length
> 1) {
10347 for (var i =
1; i < arguments.length; i++) {
10348 args[i -
1] = arguments[i];
10351 queue.push(new Item(fun, args));
10352 if (queue.length ===
1 && !draining) {
10353 runTimeout(drainQueue);
10357 // v8 likes predictible objects
10358 function Item(fun, array) {
10360 this.array = array;
10362 Item.prototype.run = function () {
10363 this.fun.apply(null, this.array);
10365 process.title = 'browser';
10366 process.browser = true;
10369 process.version = ''; // empty string to avoid regexp issues
10370 process.versions = {};
10375 process.addListener = noop;
10376 process.once = noop;
10377 process.off = noop;
10378 process.removeListener = noop;
10379 process.removeAllListeners = noop;
10380 process.emit = noop;
10381 process.prependListener = noop;
10382 process.prependOnceListener = noop;
10384 process.listeners = function (name) { return [] }
10386 process.binding = function (name) {
10387 throw new Error('process.binding is not supported');
10390 process.cwd = function () { return '/' };
10391 process.chdir = function (dir) {
10392 throw new Error('process.chdir is not supported');
10394 process.umask = function() { return
0; };
10396 },{}],
13:[function(require,module,exports){
10397 module.exports = require('./lib/_stream_duplex.js');
10399 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10400 // Copyright Joyent, Inc. and other Node contributors.
10402 // Permission is hereby granted, free of charge, to any person obtaining a
10403 // copy of this software and associated documentation files (the
10404 //
"Software"), to deal in the Software without restriction, including
10405 // without limitation the rights to use, copy, modify, merge, publish,
10406 // distribute, sublicense, and/or sell copies of the Software, and to permit
10407 // persons to whom the Software is furnished to do so, subject to the
10408 // following conditions:
10410 // The above copyright notice and this permission notice shall be included
10411 // in all copies or substantial portions of the Software.
10413 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10414 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10415 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10416 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10417 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10418 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10419 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10421 // a duplex stream is just a stream that is both readable and writable.
10422 // Since JS doesn't have multiple prototypal inheritance, this class
10423 // prototypally inherits from Readable, and then parasitically from
10430 var processNextTick = require('process-nextick-args');
10434 var objectKeys = Object.keys || function (obj) {
10436 for (var key in obj) {
10442 module.exports = Duplex;
10445 var util = require('core-util-is');
10446 util.inherits = require('inherits');
10449 var Readable = require('./_stream_readable');
10450 var Writable = require('./_stream_writable');
10452 util.inherits(Duplex, Readable);
10454 var keys = objectKeys(Writable.prototype);
10455 for (var v =
0; v < keys.length; v++) {
10456 var method = keys[v];
10457 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10460 function Duplex(options) {
10461 if (!(this instanceof Duplex)) return new Duplex(options);
10463 Readable.call(this, options);
10464 Writable.call(this, options);
10466 if (options && options.readable === false) this.readable = false;
10468 if (options && options.writable === false) this.writable = false;
10470 this.allowHalfOpen = true;
10471 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10473 this.once('end', onend);
10476 // the no-half-open enforcer
10478 // if we allow half-open state, or if the writable side ended,
10480 if (this.allowHalfOpen || this._writableState.ended) return;
10482 // no more data can be written.
10483 // But allow more writes to happen in this tick.
10484 processNextTick(onEndNT, this);
10487 function onEndNT(self) {
10491 Object.defineProperty(Duplex.prototype, 'destroyed', {
10493 if (this._readableState === undefined || this._writableState === undefined) {
10496 return this._readableState.destroyed && this._writableState.destroyed;
10498 set: function (value) {
10499 // we ignore the value if the stream
10500 // has not been initialized yet
10501 if (this._readableState === undefined || this._writableState === undefined) {
10505 // backward compatibility, the user is explicitly
10506 // managing destroyed
10507 this._readableState.destroyed = value;
10508 this._writableState.destroyed = value;
10512 Duplex.prototype._destroy = function (err, cb) {
10516 processNextTick(cb, err);
10519 function forEach(xs, f) {
10520 for (var i =
0, l = xs.length; i < l; i++) {
10524 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10525 // Copyright Joyent, Inc. and other Node contributors.
10527 // Permission is hereby granted, free of charge, to any person obtaining a
10528 // copy of this software and associated documentation files (the
10529 // "Software"), to deal in the Software without restriction, including
10530 // without limitation the rights to use, copy, modify, merge, publish,
10531 // distribute, sublicense, and/or sell copies of the Software, and to permit
10532 // persons to whom the Software is furnished to do so, subject to the
10533 // following conditions:
10535 // The above copyright notice and this permission notice shall be included
10536 // in all copies or substantial portions of the Software.
10538 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10539 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10540 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10541 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10542 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10543 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10544 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10546 // a passthrough stream.
10547 // basically just the most minimal sort of Transform stream.
10548 // Every written chunk gets output as-is.
10552 module.exports = PassThrough;
10554 var Transform = require('./_stream_transform');
10557 var util = require('core-util-is');
10558 util.inherits = require('inherits');
10561 util.inherits(PassThrough, Transform);
10563 function PassThrough(options) {
10564 if (!(this instanceof PassThrough)) return new PassThrough(options);
10566 Transform.call(this, options);
10569 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10572 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10573 (function (process,global){
10574 // Copyright Joyent, Inc. and other Node contributors.
10576 // Permission is hereby granted, free of charge, to any person obtaining a
10577 // copy of this software and associated documentation files (the
10578 // "Software"), to deal in the Software without restriction, including
10579 // without limitation the rights to use, copy, modify, merge, publish,
10580 // distribute, sublicense, and/or sell copies of the Software, and to permit
10581 // persons to whom the Software is furnished to do so, subject to the
10582 // following conditions:
10584 // The above copyright notice and this permission notice shall be included
10585 // in all copies or substantial portions of the Software.
10587 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10588 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10589 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10590 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10591 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10592 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10593 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10599 var processNextTick = require('process-nextick-args');
10602 module.exports = Readable;
10605 var isArray = require('isarray');
10612 Readable.ReadableState = ReadableState;
10615 var EE = require('events').EventEmitter;
10617 var EElistenerCount = function (emitter, type) {
10618 return emitter.listeners(type).length;
10623 var Stream = require('./internal/streams/stream');
10626 // TODO(bmeurer): Change this back to const once hole checks are
10627 // properly optimized away early in Ignition+TurboFan.
10629 var Buffer = require('safe-buffer').Buffer;
10630 var OurUint8Array = global.Uint8Array || function () {};
10631 function _uint8ArrayToBuffer(chunk) {
10632 return Buffer.from(chunk);
10634 function _isUint8Array(obj) {
10635 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10640 var util = require('core-util-is');
10641 util.inherits = require('inherits');
10645 var debugUtil = require('util');
10646 var debug = void
0;
10647 if (debugUtil && debugUtil.debuglog) {
10648 debug = debugUtil.debuglog('stream');
10650 debug = function () {};
10654 var BufferList = require('./internal/streams/BufferList');
10655 var destroyImpl = require('./internal/streams/destroy');
10658 util.inherits(Readable, Stream);
10660 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10662 function prependListener(emitter, event, fn) {
10663 // Sadly this is not cacheable as some libraries bundle their own
10664 // event emitter implementation with them.
10665 if (typeof emitter.prependListener === 'function') {
10666 return emitter.prependListener(event, fn);
10668 // This is a hack to make sure that our error handler is attached before any
10669 // userland ones. NEVER DO THIS. This is here only because this code needs
10670 // to continue to work with older versions of Node.js that do not include
10671 // the prependListener() method. The goal is to eventually remove this hack.
10672 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]];
10676 function ReadableState(options, stream) {
10677 Duplex = Duplex || require('./_stream_duplex');
10679 options = options || {};
10681 // object stream flag. Used to make read(n) ignore n and to
10682 // make all the buffer merging and length checks go away
10683 this.objectMode = !!options.objectMode;
10685 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10687 // the point at which it stops calling _read() to fill the buffer
10688 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10689 var hwm = options.highWaterMark;
10690 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10691 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10694 this.highWaterMark = Math.floor(this.highWaterMark);
10696 // A linked list is used to store data chunks instead of an array because the
10697 // linked list can remove elements from the beginning faster than
10699 this.buffer = new BufferList();
10702 this.pipesCount =
0;
10703 this.flowing = null;
10704 this.ended = false;
10705 this.endEmitted = false;
10706 this.reading = false;
10708 // a flag to be able to tell if the event 'readable'/'data' is emitted
10709 // immediately, or on a later tick. We set this to true at first, because
10710 // any actions that shouldn't happen until "later" should generally also
10711 // not happen before the first read call.
10714 // whenever we return null, then we set a flag to say
10715 // that we're awaiting a 'readable' event emission.
10716 this.needReadable = false;
10717 this.emittedReadable = false;
10718 this.readableListening = false;
10719 this.resumeScheduled = false;
10721 // has it been destroyed
10722 this.destroyed = false;
10724 // Crypto is kind of old and crusty. Historically, its default string
10725 // encoding is 'binary' so we have to make this configurable.
10726 // Everything else in the universe uses 'utf8', though.
10727 this.defaultEncoding = options.defaultEncoding || 'utf8';
10729 // the number of writers that are awaiting a drain event in .pipe()s
10730 this.awaitDrain =
0;
10732 // if true, a maybeReadMore has been scheduled
10733 this.readingMore = false;
10735 this.decoder = null;
10736 this.encoding = null;
10737 if (options.encoding) {
10738 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10739 this.decoder = new StringDecoder(options.encoding);
10740 this.encoding = options.encoding;
10744 function Readable(options) {
10745 Duplex = Duplex || require('./_stream_duplex');
10747 if (!(this instanceof Readable)) return new Readable(options);
10749 this._readableState = new ReadableState(options, this);
10752 this.readable = true;
10755 if (typeof options.read === 'function') this._read = options.read;
10757 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10763 Object.defineProperty(Readable.prototype, 'destroyed', {
10765 if (this._readableState === undefined) {
10768 return this._readableState.destroyed;
10770 set: function (value) {
10771 // we ignore the value if the stream
10772 // has not been initialized yet
10773 if (!this._readableState) {
10777 // backward compatibility, the user is explicitly
10778 // managing destroyed
10779 this._readableState.destroyed = value;
10783 Readable.prototype.destroy = destroyImpl.destroy;
10784 Readable.prototype._undestroy = destroyImpl.undestroy;
10785 Readable.prototype._destroy = function (err, cb) {
10790 // Manually shove something into the read() buffer.
10791 // This returns true if the highWaterMark has not been hit yet,
10792 // similar to how Writable.write() returns true if you should
10793 // write() some more.
10794 Readable.prototype.push = function (chunk, encoding) {
10795 var state = this._readableState;
10796 var skipChunkCheck;
10798 if (!state.objectMode) {
10799 if (typeof chunk === 'string') {
10800 encoding = encoding || state.defaultEncoding;
10801 if (encoding !== state.encoding) {
10802 chunk = Buffer.from(chunk, encoding);
10805 skipChunkCheck = true;
10808 skipChunkCheck = true;
10811 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10814 // Unshift should *always* be something directly out of read()
10815 Readable.prototype.unshift = function (chunk) {
10816 return readableAddChunk(this, chunk, null, true, false);
10819 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10820 var state = stream._readableState;
10821 if (chunk === null) {
10822 state.reading = false;
10823 onEofChunk(stream, state);
10826 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10828 stream.emit('error', er);
10829 } else if (state.objectMode || chunk && chunk.length
> 0) {
10830 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10831 chunk = _uint8ArrayToBuffer(chunk);
10835 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10836 } else if (state.ended) {
10837 stream.emit('error', new Error('stream.push() after EOF'));
10839 state.reading = false;
10840 if (state.decoder && !encoding) {
10841 chunk = state.decoder.write(chunk);
10842 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10844 addChunk(stream, state, chunk, false);
10847 } else if (!addToFront) {
10848 state.reading = false;
10852 return needMoreData(state);
10855 function addChunk(stream, state, chunk, addToFront) {
10856 if (state.flowing && state.length ===
0 && !state.sync) {
10857 stream.emit('data', chunk);
10860 // update the buffer info.
10861 state.length += state.objectMode ?
1 : chunk.length;
10862 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10864 if (state.needReadable) emitReadable(stream);
10866 maybeReadMore(stream, state);
10869 function chunkInvalid(state, chunk) {
10871 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10872 er = new TypeError('Invalid non-string/buffer chunk');
10877 // if it's past the high water mark, we can push in some more.
10878 // Also, if we have no data yet, we can stand some
10879 // more bytes. This is to work around cases where hwm=
0,
10880 // such as the repl. Also, if the push() triggered a
10881 // readable event, and the user called read(largeNumber) such that
10882 // needReadable was set, then we ought to push more, so that another
10883 // 'readable' event will be triggered.
10884 function needMoreData(state) {
10885 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10888 Readable.prototype.isPaused = function () {
10889 return this._readableState.flowing === false;
10892 // backwards compatibility.
10893 Readable.prototype.setEncoding = function (enc) {
10894 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10895 this._readableState.decoder = new StringDecoder(enc);
10896 this._readableState.encoding = enc;
10900 // Don't raise the hwm
> 8MB
10901 var MAX_HWM =
0x800000;
10902 function computeNewHighWaterMark(n) {
10903 if (n
>= MAX_HWM) {
10906 // Get the next highest power of
2 to prevent increasing hwm excessively in
10919 // This function is designed to be inlinable, so please take care when making
10920 // changes to the function body.
10921 function howMuchToRead(n, state) {
10922 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10923 if (state.objectMode) return
1;
10925 // Only flow one buffer at a time
10926 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10928 // If we're asking for more than the current hwm, then raise the hwm.
10929 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10930 if (n <= state.length) return n;
10931 // Don't have enough
10932 if (!state.ended) {
10933 state.needReadable = true;
10936 return state.length;
10939 // you can override either this method, or the async _read(n) below.
10940 Readable.prototype.read = function (n) {
10942 n = parseInt(n,
10);
10943 var state = this._readableState;
10946 if (n !==
0) state.emittedReadable = false;
10948 // if we're doing read(
0) to trigger a readable event, but we
10949 // already have a bunch of data in the buffer, then just trigger
10950 // the 'readable' event and move on.
10951 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10952 debug('read: emitReadable', state.length, state.ended);
10953 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10957 n = howMuchToRead(n, state);
10959 // if we've ended, and we're now clear, then finish it up.
10960 if (n ===
0 && state.ended) {
10961 if (state.length ===
0) endReadable(this);
10965 // All the actual chunk generation logic needs to be
10966 // *below* the call to _read. The reason is that in certain
10967 // synthetic stream cases, such as passthrough streams, _read
10968 // may be a completely synchronous operation which may change
10969 // the state of the read buffer, providing enough data when
10970 // before there was *not* enough.
10972 // So, the steps are:
10973 //
1. Figure out what the state of things will be after we do
10974 // a read from the buffer.
10976 //
2. If that resulting state will trigger a _read, then call _read.
10977 // Note that this may be asynchronous, or synchronous. Yes, it is
10978 // deeply ugly to write APIs this way, but that still doesn't mean
10979 // that the Readable class should behave improperly, as streams are
10980 // designed to be sync/async agnostic.
10981 // Take note if the _read call is sync or async (ie, if the read call
10982 // has returned yet), so that we know whether or not it's safe to emit
10985 //
3. Actually pull the requested chunks out of the buffer and return.
10987 // if we need a readable event, then we need to do some reading.
10988 var doRead = state.needReadable;
10989 debug('need readable', doRead);
10991 // if we currently have less than the highWaterMark, then also read some
10992 if (state.length ===
0 || state.length - n < state.highWaterMark) {
10994 debug('length less than watermark', doRead);
10997 // however, if we've ended, then there's no point, and if we're already
10998 // reading, then it's unnecessary.
10999 if (state.ended || state.reading) {
11001 debug('reading or ended', doRead);
11002 } else if (doRead) {
11004 state.reading = true;
11006 // if the length is currently zero, then we *need* a readable event.
11007 if (state.length ===
0) state.needReadable = true;
11008 // call internal read method
11009 this._read(state.highWaterMark);
11010 state.sync = false;
11011 // If _read pushed data synchronously, then `reading` will be false,
11012 // and we need to re-evaluate how much data we can return to the user.
11013 if (!state.reading) n = howMuchToRead(nOrig, state);
11017 if (n
> 0) ret = fromList(n, state);else ret = null;
11019 if (ret === null) {
11020 state.needReadable = true;
11026 if (state.length ===
0) {
11027 // If we have nothing in the buffer, then we want to know
11028 // as soon as we *do* get something into the buffer.
11029 if (!state.ended) state.needReadable = true;
11031 // If we tried to read() past the EOF, then emit end on the next tick.
11032 if (nOrig !== n && state.ended) endReadable(this);
11035 if (ret !== null) this.emit('data', ret);
11040 function onEofChunk(stream, state) {
11041 if (state.ended) return;
11042 if (state.decoder) {
11043 var chunk = state.decoder.end();
11044 if (chunk && chunk.length) {
11045 state.buffer.push(chunk);
11046 state.length += state.objectMode ?
1 : chunk.length;
11049 state.ended = true;
11051 // emit 'readable' now to make sure it gets picked up.
11052 emitReadable(stream);
11055 // Don't emit readable right away in sync mode, because this can trigger
11056 // another read() call =
> stack overflow. This way, it might trigger
11057 // a nextTick recursion warning, but that's not so bad.
11058 function emitReadable(stream) {
11059 var state = stream._readableState;
11060 state.needReadable = false;
11061 if (!state.emittedReadable) {
11062 debug('emitReadable', state.flowing);
11063 state.emittedReadable = true;
11064 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11068 function emitReadable_(stream) {
11069 debug('emit readable');
11070 stream.emit('readable');
11074 // at this point, the user has presumably seen the 'readable' event,
11075 // and called read() to consume some data. that may have triggered
11076 // in turn another _read(n) call, in which case reading = true if
11077 // it's in progress.
11078 // However, if we're not ended, or reading, and the length < hwm,
11079 // then go ahead and try to read some more preemptively.
11080 function maybeReadMore(stream, state) {
11081 if (!state.readingMore) {
11082 state.readingMore = true;
11083 processNextTick(maybeReadMore_, stream, state);
11087 function maybeReadMore_(stream, state) {
11088 var len = state.length;
11089 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11090 debug('maybeReadMore read
0');
11092 if (len === state.length)
11093 // didn't get any data, stop spinning.
11094 break;else len = state.length;
11096 state.readingMore = false;
11099 // abstract method. to be overridden in specific implementation classes.
11100 // call cb(er, data) where data is <= n in length.
11101 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11102 // arbitrary, and perhaps not very meaningful.
11103 Readable.prototype._read = function (n) {
11104 this.emit('error', new Error('_read() is not implemented'));
11107 Readable.prototype.pipe = function (dest, pipeOpts) {
11109 var state = this._readableState;
11111 switch (state.pipesCount) {
11113 state.pipes = dest;
11116 state.pipes = [state.pipes, dest];
11119 state.pipes.push(dest);
11122 state.pipesCount +=
1;
11123 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11125 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11127 var endFn = doEnd ? onend : unpipe;
11128 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11130 dest.on('unpipe', onunpipe);
11131 function onunpipe(readable, unpipeInfo) {
11133 if (readable === src) {
11134 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11135 unpipeInfo.hasUnpiped = true;
11146 // when the dest drains, it reduces the awaitDrain counter
11147 // on the source. This would be more elegant with a .once()
11148 // handler in flow(), but adding and removing repeatedly is
11150 var ondrain = pipeOnDrain(src);
11151 dest.on('drain', ondrain);
11153 var cleanedUp = false;
11154 function cleanup() {
11156 // cleanup event handlers once the pipe is broken
11157 dest.removeListener('close', onclose);
11158 dest.removeListener('finish', onfinish);
11159 dest.removeListener('drain', ondrain);
11160 dest.removeListener('error', onerror);
11161 dest.removeListener('unpipe', onunpipe);
11162 src.removeListener('end', onend);
11163 src.removeListener('end', unpipe);
11164 src.removeListener('data', ondata);
11168 // if the reader is waiting for a drain event from this
11169 // specific writer, then it would cause it to never start
11171 // So, if this is awaiting a drain, then we just call it now.
11172 // If we don't know, then assume that we are waiting for one.
11173 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11176 // If the user pushes more data while we're writing to dest then we'll end up
11177 // in ondata again. However, we only want to increase awaitDrain once because
11178 // dest will only emit one 'drain' event for the multiple writes.
11179 // =
> Introduce a guard on increasing awaitDrain.
11180 var increasedAwaitDrain = false;
11181 src.on('data', ondata);
11182 function ondata(chunk) {
11184 increasedAwaitDrain = false;
11185 var ret = dest.write(chunk);
11186 if (false === ret && !increasedAwaitDrain) {
11187 // If the user unpiped during `dest.write()`, it is possible
11188 // to get stuck in a permanently paused state if that write
11189 // also returned false.
11190 // =
> Check whether `dest` is still a piping destination.
11191 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11192 debug('false write response, pause', src._readableState.awaitDrain);
11193 src._readableState.awaitDrain++;
11194 increasedAwaitDrain = true;
11200 // if the dest has an error, then stop piping into it.
11201 // however, don't suppress the throwing behavior for this.
11202 function onerror(er) {
11203 debug('onerror', er);
11205 dest.removeListener('error', onerror);
11206 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11209 // Make sure our error handler is attached before userland ones.
11210 prependListener(dest, 'error', onerror);
11212 // Both close and finish should trigger unpipe, but only once.
11213 function onclose() {
11214 dest.removeListener('finish', onfinish);
11217 dest.once('close', onclose);
11218 function onfinish() {
11220 dest.removeListener('close', onclose);
11223 dest.once('finish', onfinish);
11225 function unpipe() {
11230 // tell the dest that it's being piped to
11231 dest.emit('pipe', src);
11233 // start the flow if it hasn't been started already.
11234 if (!state.flowing) {
11235 debug('pipe resume');
11242 function pipeOnDrain(src) {
11243 return function () {
11244 var state = src._readableState;
11245 debug('pipeOnDrain', state.awaitDrain);
11246 if (state.awaitDrain) state.awaitDrain--;
11247 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11248 state.flowing = true;
11254 Readable.prototype.unpipe = function (dest) {
11255 var state = this._readableState;
11256 var unpipeInfo = { hasUnpiped: false };
11258 // if we're not piping anywhere, then do nothing.
11259 if (state.pipesCount ===
0) return this;
11261 // just one destination. most common case.
11262 if (state.pipesCount ===
1) {
11263 // passed in one, but it's not the right one.
11264 if (dest && dest !== state.pipes) return this;
11266 if (!dest) dest = state.pipes;
11269 state.pipes = null;
11270 state.pipesCount =
0;
11271 state.flowing = false;
11272 if (dest) dest.emit('unpipe', this, unpipeInfo);
11276 // slow case. multiple pipe destinations.
11280 var dests = state.pipes;
11281 var len = state.pipesCount;
11282 state.pipes = null;
11283 state.pipesCount =
0;
11284 state.flowing = false;
11286 for (var i =
0; i < len; i++) {
11287 dests[i].emit('unpipe', this, unpipeInfo);
11291 // try to find the right one.
11292 var index = indexOf(state.pipes, dest);
11293 if (index === -
1) return this;
11295 state.pipes.splice(index,
1);
11296 state.pipesCount -=
1;
11297 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11299 dest.emit('unpipe', this, unpipeInfo);
11304 // set up data events if they are asked for
11305 // Ensure readable listeners eventually get something
11306 Readable.prototype.on = function (ev, fn) {
11307 var res = Stream.prototype.on.call(this, ev, fn);
11309 if (ev === 'data') {
11310 // Start flowing on next tick if stream isn't explicitly paused
11311 if (this._readableState.flowing !== false) this.resume();
11312 } else if (ev === 'readable') {
11313 var state = this._readableState;
11314 if (!state.endEmitted && !state.readableListening) {
11315 state.readableListening = state.needReadable = true;
11316 state.emittedReadable = false;
11317 if (!state.reading) {
11318 processNextTick(nReadingNextTick, this);
11319 } else if (state.length) {
11320 emitReadable(this);
11327 Readable.prototype.addListener = Readable.prototype.on;
11329 function nReadingNextTick(self) {
11330 debug('readable nexttick read
0');
11334 // pause() and resume() are remnants of the legacy readable stream API
11335 // If the user uses them, then switch into old mode.
11336 Readable.prototype.resume = function () {
11337 var state = this._readableState;
11338 if (!state.flowing) {
11340 state.flowing = true;
11341 resume(this, state);
11346 function resume(stream, state) {
11347 if (!state.resumeScheduled) {
11348 state.resumeScheduled = true;
11349 processNextTick(resume_, stream, state);
11353 function resume_(stream, state) {
11354 if (!state.reading) {
11355 debug('resume read
0');
11359 state.resumeScheduled = false;
11360 state.awaitDrain =
0;
11361 stream.emit('resume');
11363 if (state.flowing && !state.reading) stream.read(
0);
11366 Readable.prototype.pause = function () {
11367 debug('call pause flowing=%j', this._readableState.flowing);
11368 if (false !== this._readableState.flowing) {
11370 this._readableState.flowing = false;
11371 this.emit('pause');
11376 function flow(stream) {
11377 var state = stream._readableState;
11378 debug('flow', state.flowing);
11379 while (state.flowing && stream.read() !== null) {}
11382 // wrap an old-style stream as the async data source.
11383 // This is *not* part of the readable stream interface.
11384 // It is an ugly unfortunate mess of history.
11385 Readable.prototype.wrap = function (stream) {
11386 var state = this._readableState;
11387 var paused = false;
11390 stream.on('end', function () {
11391 debug('wrapped end');
11392 if (state.decoder && !state.ended) {
11393 var chunk = state.decoder.end();
11394 if (chunk && chunk.length) self.push(chunk);
11400 stream.on('data', function (chunk) {
11401 debug('wrapped data');
11402 if (state.decoder) chunk = state.decoder.write(chunk);
11404 // don't skip over falsy values in objectMode
11405 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11407 var ret = self.push(chunk);
11414 // proxy all the other methods.
11415 // important when wrapping filters and duplexes.
11416 for (var i in stream) {
11417 if (this[i] === undefined && typeof stream[i] === 'function') {
11418 this[i] = function (method) {
11419 return function () {
11420 return stream[method].apply(stream, arguments);
11426 // proxy certain important events.
11427 for (var n =
0; n < kProxyEvents.length; n++) {
11428 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11431 // when we try to consume some more bytes, simply unpause the
11432 // underlying stream.
11433 self._read = function (n) {
11434 debug('wrapped _read', n);
11444 // exposed for testing purposes only.
11445 Readable._fromList = fromList;
11447 // Pluck off n bytes from an array of buffers.
11448 // Length is the combined lengths of all the buffers in the list.
11449 // This function is designed to be inlinable, so please take care when making
11450 // changes to the function body.
11451 function fromList(n, state) {
11452 // nothing buffered
11453 if (state.length ===
0) return null;
11456 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11457 // read it all, truncate the list
11458 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);
11459 state.buffer.clear();
11461 // read part of list
11462 ret = fromListPartial(n, state.buffer, state.decoder);
11468 // Extracts only enough buffered data to satisfy the amount requested.
11469 // This function is designed to be inlinable, so please take care when making
11470 // changes to the function body.
11471 function fromListPartial(n, list, hasStrings) {
11473 if (n < list.head.data.length) {
11474 // slice is the same for buffers and strings
11475 ret = list.head.data.slice(
0, n);
11476 list.head.data = list.head.data.slice(n);
11477 } else if (n === list.head.data.length) {
11478 // first chunk is a perfect match
11479 ret = list.shift();
11481 // result spans more than one buffer
11482 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11487 // Copies a specified amount of characters from the list of buffered data
11489 // This function is designed to be inlinable, so please take care when making
11490 // changes to the function body.
11491 function copyFromBufferString(n, list) {
11496 while (p = p.next) {
11498 var nb = n
> str.length ? str.length : n;
11499 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11502 if (nb === str.length) {
11504 if (p.next) list.head = p.next;else list.head = list.tail = null;
11507 p.data = str.slice(nb);
11517 // Copies a specified amount of bytes from the list of buffered data chunks.
11518 // This function is designed to be inlinable, so please take care when making
11519 // changes to the function body.
11520 function copyFromBuffer(n, list) {
11521 var ret = Buffer.allocUnsafe(n);
11525 n -= p.data.length;
11526 while (p = p.next) {
11528 var nb = n
> buf.length ? buf.length : n;
11529 buf.copy(ret, ret.length - n,
0, nb);
11532 if (nb === buf.length) {
11534 if (p.next) list.head = p.next;else list.head = list.tail = null;
11537 p.data = buf.slice(nb);
11547 function endReadable(stream) {
11548 var state = stream._readableState;
11550 // If we get here before consuming all the bytes, then that is a
11551 // bug in node. Should never happen.
11552 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11554 if (!state.endEmitted) {
11555 state.ended = true;
11556 processNextTick(endReadableNT, state, stream);
11560 function endReadableNT(state, stream) {
11561 // Check that we didn't get one last unshift.
11562 if (!state.endEmitted && state.length ===
0) {
11563 state.endEmitted = true;
11564 stream.readable = false;
11565 stream.emit('end');
11569 function forEach(xs, f) {
11570 for (var i =
0, l = xs.length; i < l; i++) {
11575 function indexOf(xs, x) {
11576 for (var i =
0, l = xs.length; i < l; i++) {
11577 if (xs[i] === x) return i;
11581 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11582 },{
"./_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){
11583 // Copyright Joyent, Inc. and other Node contributors.
11585 // Permission is hereby granted, free of charge, to any person obtaining a
11586 // copy of this software and associated documentation files (the
11587 //
"Software"), to deal in the Software without restriction, including
11588 // without limitation the rights to use, copy, modify, merge, publish,
11589 // distribute, sublicense, and/or sell copies of the Software, and to permit
11590 // persons to whom the Software is furnished to do so, subject to the
11591 // following conditions:
11593 // The above copyright notice and this permission notice shall be included
11594 // in all copies or substantial portions of the Software.
11596 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11597 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11598 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11599 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11600 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11601 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11602 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11604 // a transform stream is a readable/writable stream where you do
11605 // something with the data. Sometimes it's called a
"filter",
11606 // but that's not a great name for it, since that implies a thing where
11607 // some bits pass through, and others are simply ignored. (That would
11608 // be a valid example of a transform, of course.)
11610 // While the output is causally related to the input, it's not a
11611 // necessarily symmetric or synchronous transformation. For example,
11612 // a zlib stream might take multiple plain-text writes(), and then
11613 // emit a single compressed chunk some time in the future.
11615 // Here's how this works:
11617 // The Transform stream has all the aspects of the readable and writable
11618 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11619 // internally, and returns false if there's a lot of pending writes
11620 // buffered up. When you call read(), that calls _read(n) until
11621 // there's enough pending readable data buffered up.
11623 // In a transform stream, the written data is placed in a buffer. When
11624 // _read(n) is called, it transforms the queued up data, calling the
11625 // buffered _write cb's as it consumes chunks. If consuming a single
11626 // written chunk would result in multiple output chunks, then the first
11627 // outputted bit calls the readcb, and subsequent chunks just go into
11628 // the read buffer, and will cause it to emit 'readable' if necessary.
11630 // This way, back-pressure is actually determined by the reading side,
11631 // since _read has to be called to start processing a new chunk. However,
11632 // a pathological inflate type of transform can cause excessive buffering
11633 // here. For example, imagine a stream where every byte of input is
11634 // interpreted as an integer from
0-
255, and then results in that many
11635 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11636 //
1kb of data being output. In this case, you could write a very small
11637 // amount of input, and end up with a very large amount of output. In
11638 // such a pathological inflating mechanism, there'd be no way to tell
11639 // the system to stop doing the transform. A single
4MB write could
11640 // cause the system to run out of memory.
11642 // However, even in such a pathological case, only a single written chunk
11643 // would be consumed, and then the rest would wait (un-transformed) until
11644 // the results of the previous transformed chunk were consumed.
11648 module.exports = Transform;
11650 var Duplex = require('./_stream_duplex');
11653 var util = require('core-util-is');
11654 util.inherits = require('inherits');
11657 util.inherits(Transform, Duplex);
11659 function TransformState(stream) {
11660 this.afterTransform = function (er, data) {
11661 return afterTransform(stream, er, data);
11664 this.needTransform = false;
11665 this.transforming = false;
11666 this.writecb = null;
11667 this.writechunk = null;
11668 this.writeencoding = null;
11671 function afterTransform(stream, er, data) {
11672 var ts = stream._transformState;
11673 ts.transforming = false;
11675 var cb = ts.writecb;
11678 return stream.emit('error', new Error('write callback called multiple times'));
11681 ts.writechunk = null;
11684 if (data !== null && data !== undefined) stream.push(data);
11688 var rs = stream._readableState;
11689 rs.reading = false;
11690 if (rs.needReadable || rs.length < rs.highWaterMark) {
11691 stream._read(rs.highWaterMark);
11695 function Transform(options) {
11696 if (!(this instanceof Transform)) return new Transform(options);
11698 Duplex.call(this, options);
11700 this._transformState = new TransformState(this);
11704 // start out asking for a readable event once data is transformed.
11705 this._readableState.needReadable = true;
11707 // we have implemented the _read method, and done the other things
11708 // that Readable wants before the first _read call, so unset the
11709 // sync guard flag.
11710 this._readableState.sync = false;
11713 if (typeof options.transform === 'function') this._transform = options.transform;
11715 if (typeof options.flush === 'function') this._flush = options.flush;
11718 // When the writable side finishes, then flush out anything remaining.
11719 this.once('prefinish', function () {
11720 if (typeof this._flush === 'function') this._flush(function (er, data) {
11721 done(stream, er, data);
11722 });else done(stream);
11726 Transform.prototype.push = function (chunk, encoding) {
11727 this._transformState.needTransform = false;
11728 return Duplex.prototype.push.call(this, chunk, encoding);
11731 // This is the part where you do stuff!
11732 // override this function in implementation classes.
11733 // 'chunk' is an input chunk.
11735 // Call `push(newChunk)` to pass along transformed output
11736 // to the readable side. You may call 'push' zero or more times.
11738 // Call `cb(err)` when you are done with this chunk. If you pass
11739 // an error, then that'll put the hurt on the whole operation. If you
11740 // never call cb(), then you'll never get another chunk.
11741 Transform.prototype._transform = function (chunk, encoding, cb) {
11742 throw new Error('_transform() is not implemented');
11745 Transform.prototype._write = function (chunk, encoding, cb) {
11746 var ts = this._transformState;
11748 ts.writechunk = chunk;
11749 ts.writeencoding = encoding;
11750 if (!ts.transforming) {
11751 var rs = this._readableState;
11752 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11756 // Doesn't matter what the args are here.
11757 // _transform does all the work.
11758 // That we got here means that the readable side wants more data.
11759 Transform.prototype._read = function (n) {
11760 var ts = this._transformState;
11762 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11763 ts.transforming = true;
11764 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11766 // mark that we need a transform, so that any data that comes in
11767 // will get processed, now that we've asked for it.
11768 ts.needTransform = true;
11772 Transform.prototype._destroy = function (err, cb) {
11775 Duplex.prototype._destroy.call(this, err, function (err2) {
11777 _this.emit('close');
11781 function done(stream, er, data) {
11782 if (er) return stream.emit('error', er);
11784 if (data !== null && data !== undefined) stream.push(data);
11786 // if there's nothing in the write buffer, then that means
11787 // that nothing more will ever be provided
11788 var ws = stream._writableState;
11789 var ts = stream._transformState;
11791 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11793 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11795 return stream.push(null);
11797 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11798 (function (process,global){
11799 // Copyright Joyent, Inc. and other Node contributors.
11801 // Permission is hereby granted, free of charge, to any person obtaining a
11802 // copy of this software and associated documentation files (the
11803 // "Software"), to deal in the Software without restriction, including
11804 // without limitation the rights to use, copy, modify, merge, publish,
11805 // distribute, sublicense, and/or sell copies of the Software, and to permit
11806 // persons to whom the Software is furnished to do so, subject to the
11807 // following conditions:
11809 // The above copyright notice and this permission notice shall be included
11810 // in all copies or substantial portions of the Software.
11812 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11813 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11814 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11815 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11816 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11817 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11818 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11820 // A bit simpler than readable streams.
11821 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11822 // the drain event emission and buffering.
11828 var processNextTick = require('process-nextick-args');
11831 module.exports = Writable;
11833 /*
<replacement> */
11834 function WriteReq(chunk, encoding, cb) {
11835 this.chunk = chunk;
11836 this.encoding = encoding;
11837 this.callback = cb;
11841 // It seems a linked list but it is not
11842 // there will be only
2 of these for each stream
11843 function CorkedRequest(state) {
11848 this.finish = function () {
11849 onCorkedFinish(_this, state);
11852 /*
</replacement> */
11855 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11862 Writable.WritableState = WritableState;
11865 var util = require('core-util-is');
11866 util.inherits = require('inherits');
11870 var internalUtil = {
11871 deprecate: require('util-deprecate')
11876 var Stream = require('./internal/streams/stream');
11880 var Buffer = require('safe-buffer').Buffer;
11881 var OurUint8Array = global.Uint8Array || function () {};
11882 function _uint8ArrayToBuffer(chunk) {
11883 return Buffer.from(chunk);
11885 function _isUint8Array(obj) {
11886 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11890 var destroyImpl = require('./internal/streams/destroy');
11892 util.inherits(Writable, Stream);
11896 function WritableState(options, stream) {
11897 Duplex = Duplex || require('./_stream_duplex');
11899 options = options || {};
11901 // object stream flag to indicate whether or not this stream
11902 // contains buffers or objects.
11903 this.objectMode = !!options.objectMode;
11905 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11907 // the point at which write() starts returning false
11908 // Note:
0 is a valid value, means that we always return false if
11909 // the entire buffer is not flushed immediately on write()
11910 var hwm = options.highWaterMark;
11911 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11912 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11915 this.highWaterMark = Math.floor(this.highWaterMark);
11917 // if _final has been called
11918 this.finalCalled = false;
11920 // drain event flag.
11921 this.needDrain = false;
11922 // at the start of calling end()
11923 this.ending = false;
11924 // when end() has been called, and returned
11925 this.ended = false;
11926 // when 'finish' is emitted
11927 this.finished = false;
11929 // has it been destroyed
11930 this.destroyed = false;
11932 // should we decode strings into buffers before passing to _write?
11933 // this is here so that some node-core streams can optimize string
11934 // handling at a lower level.
11935 var noDecode = options.decodeStrings === false;
11936 this.decodeStrings = !noDecode;
11938 // Crypto is kind of old and crusty. Historically, its default string
11939 // encoding is 'binary' so we have to make this configurable.
11940 // Everything else in the universe uses 'utf8', though.
11941 this.defaultEncoding = options.defaultEncoding || 'utf8';
11943 // not an actual buffer we keep track of, but a measurement
11944 // of how much we're waiting to get pushed to some underlying
11948 // a flag to see when we're in the middle of a write.
11949 this.writing = false;
11951 // when true all writes will be buffered until .uncork() call
11954 // a flag to be able to tell if the onwrite cb is called immediately,
11955 // or on a later tick. We set this to true at first, because any
11956 // actions that shouldn't happen until "later" should generally also
11957 // not happen before the first write call.
11960 // a flag to know if we're processing previously buffered items, which
11961 // may call the _write() callback in the same tick, so that we don't
11962 // end up in an overlapped onwrite situation.
11963 this.bufferProcessing = false;
11965 // the callback that's passed to _write(chunk,cb)
11966 this.onwrite = function (er) {
11967 onwrite(stream, er);
11970 // the callback that the user supplies to write(chunk,encoding,cb)
11971 this.writecb = null;
11973 // the amount that is being written when _write is called.
11976 this.bufferedRequest = null;
11977 this.lastBufferedRequest = null;
11979 // number of pending user-supplied write callbacks
11980 // this must be
0 before 'finish' can be emitted
11981 this.pendingcb =
0;
11983 // emit prefinish if the only thing we're waiting for is _write cbs
11984 // This is relevant for synchronous Transform streams
11985 this.prefinished = false;
11987 // True if the error was already emitted and should not be thrown again
11988 this.errorEmitted = false;
11990 // count buffered requests
11991 this.bufferedRequestCount =
0;
11993 // allocate the first CorkedRequest, there is always
11994 // one allocated and free to use, and we maintain at most two
11995 this.corkedRequestsFree = new CorkedRequest(this);
11998 WritableState.prototype.getBuffer = function getBuffer() {
11999 var current = this.bufferedRequest;
12003 current = current.next;
12010 Object.defineProperty(WritableState.prototype, 'buffer', {
12011 get: internalUtil.deprecate(function () {
12012 return this.getBuffer();
12013 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12018 // Test _writableState for inheritance to account for Duplex streams,
12019 // whose prototype chain only points to Readable.
12020 var realHasInstance;
12021 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12022 realHasInstance = Function.prototype[Symbol.hasInstance];
12023 Object.defineProperty(Writable, Symbol.hasInstance, {
12024 value: function (object) {
12025 if (realHasInstance.call(this, object)) return true;
12027 return object && object._writableState instanceof WritableState;
12031 realHasInstance = function (object) {
12032 return object instanceof this;
12036 function Writable(options) {
12037 Duplex = Duplex || require('./_stream_duplex');
12039 // Writable ctor is applied to Duplexes, too.
12040 // `realHasInstance` is necessary because using plain `instanceof`
12041 // would return false, as no `_writableState` property is attached.
12043 // Trying to use the custom `instanceof` for Writable here will also break the
12044 // Node.js LazyTransform implementation, which has a non-trivial getter for
12045 // `_writableState` that would lead to infinite recursion.
12046 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12047 return new Writable(options);
12050 this._writableState = new WritableState(options, this);
12053 this.writable = true;
12056 if (typeof options.write === 'function') this._write = options.write;
12058 if (typeof options.writev === 'function') this._writev = options.writev;
12060 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12062 if (typeof options.final === 'function') this._final = options.final;
12068 // Otherwise people can pipe Writable streams, which is just wrong.
12069 Writable.prototype.pipe = function () {
12070 this.emit('error', new Error('Cannot pipe, not readable'));
12073 function writeAfterEnd(stream, cb) {
12074 var er = new Error('write after end');
12075 // TODO: defer error events consistently everywhere, not just the cb
12076 stream.emit('error', er);
12077 processNextTick(cb, er);
12080 // Checks that a user-supplied chunk is valid, especially for the particular
12081 // mode the stream is in. Currently this means that `null` is never accepted
12082 // and undefined/non-string values are only allowed in object mode.
12083 function validChunk(stream, state, chunk, cb) {
12087 if (chunk === null) {
12088 er = new TypeError('May not write null values to stream');
12089 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12090 er = new TypeError('Invalid non-string/buffer chunk');
12093 stream.emit('error', er);
12094 processNextTick(cb, er);
12100 Writable.prototype.write = function (chunk, encoding, cb) {
12101 var state = this._writableState;
12103 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12105 if (isBuf && !Buffer.isBuffer(chunk)) {
12106 chunk = _uint8ArrayToBuffer(chunk);
12109 if (typeof encoding === 'function') {
12114 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12116 if (typeof cb !== 'function') cb = nop;
12118 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12120 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12126 Writable.prototype.cork = function () {
12127 var state = this._writableState;
12132 Writable.prototype.uncork = function () {
12133 var state = this._writableState;
12135 if (state.corked) {
12138 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12142 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12143 // node::ParseEncoding() requires lower case.
12144 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12145 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);
12146 this._writableState.defaultEncoding = encoding;
12150 function decodeChunk(state, chunk, encoding) {
12151 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12152 chunk = Buffer.from(chunk, encoding);
12157 // if we're already writing something, then just put this
12158 // in the queue, and wait our turn. Otherwise, call _write
12159 // If we return false, then we need a drain event, so set that flag.
12160 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12162 var newChunk = decodeChunk(state, chunk, encoding);
12163 if (chunk !== newChunk) {
12165 encoding = 'buffer';
12169 var len = state.objectMode ?
1 : chunk.length;
12171 state.length += len;
12173 var ret = state.length < state.highWaterMark;
12174 // we must ensure that previous needDrain will not be reset to false.
12175 if (!ret) state.needDrain = true;
12177 if (state.writing || state.corked) {
12178 var last = state.lastBufferedRequest;
12179 state.lastBufferedRequest = {
12181 encoding: encoding,
12187 last.next = state.lastBufferedRequest;
12189 state.bufferedRequest = state.lastBufferedRequest;
12191 state.bufferedRequestCount +=
1;
12193 doWrite(stream, state, false, len, chunk, encoding, cb);
12199 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12200 state.writelen = len;
12201 state.writecb = cb;
12202 state.writing = true;
12204 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12205 state.sync = false;
12208 function onwriteError(stream, state, sync, er, cb) {
12212 // defer the callback if we are being called synchronously
12213 // to avoid piling up things on the stack
12214 processNextTick(cb, er);
12215 // this can emit finish, and it will always happen
12217 processNextTick(finishMaybe, stream, state);
12218 stream._writableState.errorEmitted = true;
12219 stream.emit('error', er);
12221 // the caller expect this to happen before if
12224 stream._writableState.errorEmitted = true;
12225 stream.emit('error', er);
12226 // this can emit finish, but finish must
12227 // always follow error
12228 finishMaybe(stream, state);
12232 function onwriteStateUpdate(state) {
12233 state.writing = false;
12234 state.writecb = null;
12235 state.length -= state.writelen;
12236 state.writelen =
0;
12239 function onwrite(stream, er) {
12240 var state = stream._writableState;
12241 var sync = state.sync;
12242 var cb = state.writecb;
12244 onwriteStateUpdate(state);
12246 if (er) onwriteError(stream, state, sync, er, cb);else {
12247 // Check if we're actually ready to finish, but don't emit yet
12248 var finished = needFinish(state);
12250 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12251 clearBuffer(stream, state);
12256 asyncWrite(afterWrite, stream, state, finished, cb);
12259 afterWrite(stream, state, finished, cb);
12264 function afterWrite(stream, state, finished, cb) {
12265 if (!finished) onwriteDrain(stream, state);
12268 finishMaybe(stream, state);
12271 // Must force callback to be called on nextTick, so that we don't
12272 // emit 'drain' before the write() consumer gets the 'false' return
12273 // value, and has a chance to attach a 'drain' listener.
12274 function onwriteDrain(stream, state) {
12275 if (state.length ===
0 && state.needDrain) {
12276 state.needDrain = false;
12277 stream.emit('drain');
12281 // if there's something in the buffer waiting, then process it
12282 function clearBuffer(stream, state) {
12283 state.bufferProcessing = true;
12284 var entry = state.bufferedRequest;
12286 if (stream._writev && entry && entry.next) {
12287 // Fast case, write everything using _writev()
12288 var l = state.bufferedRequestCount;
12289 var buffer = new Array(l);
12290 var holder = state.corkedRequestsFree;
12291 holder.entry = entry;
12294 var allBuffers = true;
12296 buffer[count] = entry;
12297 if (!entry.isBuf) allBuffers = false;
12298 entry = entry.next;
12301 buffer.allBuffers = allBuffers;
12303 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12305 // doWrite is almost always async, defer these to save a bit of time
12306 // as the hot path ends with doWrite
12308 state.lastBufferedRequest = null;
12310 state.corkedRequestsFree = holder.next;
12311 holder.next = null;
12313 state.corkedRequestsFree = new CorkedRequest(state);
12316 // Slow case, write chunks one-by-one
12318 var chunk = entry.chunk;
12319 var encoding = entry.encoding;
12320 var cb = entry.callback;
12321 var len = state.objectMode ?
1 : chunk.length;
12323 doWrite(stream, state, false, len, chunk, encoding, cb);
12324 entry = entry.next;
12325 // if we didn't call the onwrite immediately, then
12326 // it means that we need to wait until it does.
12327 // also, that means that the chunk and cb are currently
12328 // being processed, so move the buffer counter past them.
12329 if (state.writing) {
12334 if (entry === null) state.lastBufferedRequest = null;
12337 state.bufferedRequestCount =
0;
12338 state.bufferedRequest = entry;
12339 state.bufferProcessing = false;
12342 Writable.prototype._write = function (chunk, encoding, cb) {
12343 cb(new Error('_write() is not implemented'));
12346 Writable.prototype._writev = null;
12348 Writable.prototype.end = function (chunk, encoding, cb) {
12349 var state = this._writableState;
12351 if (typeof chunk === 'function') {
12355 } else if (typeof encoding === 'function') {
12360 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12362 // .end() fully uncorks
12363 if (state.corked) {
12368 // ignore unnecessary end() calls.
12369 if (!state.ending && !state.finished) endWritable(this, state, cb);
12372 function needFinish(state) {
12373 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12375 function callFinal(stream, state) {
12376 stream._final(function (err) {
12379 stream.emit('error', err);
12381 state.prefinished = true;
12382 stream.emit('prefinish');
12383 finishMaybe(stream, state);
12386 function prefinish(stream, state) {
12387 if (!state.prefinished && !state.finalCalled) {
12388 if (typeof stream._final === 'function') {
12390 state.finalCalled = true;
12391 processNextTick(callFinal, stream, state);
12393 state.prefinished = true;
12394 stream.emit('prefinish');
12399 function finishMaybe(stream, state) {
12400 var need = needFinish(state);
12402 prefinish(stream, state);
12403 if (state.pendingcb ===
0) {
12404 state.finished = true;
12405 stream.emit('finish');
12411 function endWritable(stream, state, cb) {
12412 state.ending = true;
12413 finishMaybe(stream, state);
12415 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12417 state.ended = true;
12418 stream.writable = false;
12421 function onCorkedFinish(corkReq, state, err) {
12422 var entry = corkReq.entry;
12423 corkReq.entry = null;
12425 var cb = entry.callback;
12428 entry = entry.next;
12430 if (state.corkedRequestsFree) {
12431 state.corkedRequestsFree.next = corkReq;
12433 state.corkedRequestsFree = corkReq;
12437 Object.defineProperty(Writable.prototype, 'destroyed', {
12439 if (this._writableState === undefined) {
12442 return this._writableState.destroyed;
12444 set: function (value) {
12445 // we ignore the value if the stream
12446 // has not been initialized yet
12447 if (!this._writableState) {
12451 // backward compatibility, the user is explicitly
12452 // managing destroyed
12453 this._writableState.destroyed = value;
12457 Writable.prototype.destroy = destroyImpl.destroy;
12458 Writable.prototype._undestroy = destroyImpl.undestroy;
12459 Writable.prototype._destroy = function (err, cb) {
12463 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12464 },{"./_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){
12469 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12471 var Buffer = require('safe-buffer').Buffer;
12474 function copyBuffer(src, target, offset) {
12475 src.copy(target, offset);
12478 module.exports = function () {
12479 function BufferList() {
12480 _classCallCheck(this, BufferList);
12487 BufferList.prototype.push = function push(v) {
12488 var entry = { data: v, next: null };
12489 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12494 BufferList.prototype.unshift = function unshift(v) {
12495 var entry = { data: v, next: this.head };
12496 if (this.length ===
0) this.tail = entry;
12501 BufferList.prototype.shift = function shift() {
12502 if (this.length ===
0) return;
12503 var ret = this.head.data;
12504 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12509 BufferList.prototype.clear = function clear() {
12510 this.head = this.tail = null;
12514 BufferList.prototype.join = function join(s) {
12515 if (this.length ===
0) return '';
12517 var ret = '' + p.data;
12518 while (p = p.next) {
12523 BufferList.prototype.concat = function concat(n) {
12524 if (this.length ===
0) return Buffer.alloc(
0);
12525 if (this.length ===
1) return this.head.data;
12526 var ret = Buffer.allocUnsafe(n
>>> 0);
12530 copyBuffer(p.data, ret, i);
12531 i += p.data.length;
12539 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12544 var processNextTick = require('process-nextick-args');
12547 // undocumented cb() API, needed for core, not for public API
12548 function destroy(err, cb) {
12551 var readableDestroyed = this._readableState && this._readableState.destroyed;
12552 var writableDestroyed = this._writableState && this._writableState.destroyed;
12554 if (readableDestroyed || writableDestroyed) {
12557 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12558 processNextTick(emitErrorNT, this, err);
12563 // we set destroyed to true before firing error callbacks in order
12564 // to make it re-entrance safe in case destroy() is called within callbacks
12566 if (this._readableState) {
12567 this._readableState.destroyed = true;
12570 // if this is a duplex stream mark the writable part as destroyed as well
12571 if (this._writableState) {
12572 this._writableState.destroyed = true;
12575 this._destroy(err || null, function (err) {
12577 processNextTick(emitErrorNT, _this, err);
12578 if (_this._writableState) {
12579 _this._writableState.errorEmitted = true;
12587 function undestroy() {
12588 if (this._readableState) {
12589 this._readableState.destroyed = false;
12590 this._readableState.reading = false;
12591 this._readableState.ended = false;
12592 this._readableState.endEmitted = false;
12595 if (this._writableState) {
12596 this._writableState.destroyed = false;
12597 this._writableState.ended = false;
12598 this._writableState.ending = false;
12599 this._writableState.finished = false;
12600 this._writableState.errorEmitted = false;
12604 function emitErrorNT(self, err) {
12605 self.emit('error', err);
12610 undestroy: undestroy
12612 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12613 module.exports = require('events').EventEmitter;
12615 },{"events":
6}],
22:[function(require,module,exports){
12616 module.exports = require('./readable').PassThrough
12618 },{"./readable":
23}],
23:[function(require,module,exports){
12619 exports = module.exports = require('./lib/_stream_readable.js');
12620 exports.Stream = exports;
12621 exports.Readable = exports;
12622 exports.Writable = require('./lib/_stream_writable.js');
12623 exports.Duplex = require('./lib/_stream_duplex.js');
12624 exports.Transform = require('./lib/_stream_transform.js');
12625 exports.PassThrough = require('./lib/_stream_passthrough.js');
12627 },{"./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){
12628 module.exports = require('./readable').Transform
12630 },{"./readable":
23}],
25:[function(require,module,exports){
12631 module.exports = require('./lib/_stream_writable.js');
12633 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12634 /* eslint-disable node/no-deprecated-api */
12635 var buffer = require('buffer')
12636 var Buffer = buffer.Buffer
12638 // alternative to using Object.keys for old browsers
12639 function copyProps (src, dst) {
12640 for (var key in src) {
12641 dst[key] = src[key]
12644 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12645 module.exports = buffer
12647 // Copy properties from require('buffer')
12648 copyProps(buffer, exports)
12649 exports.Buffer = SafeBuffer
12652 function SafeBuffer (arg, encodingOrOffset, length) {
12653 return Buffer(arg, encodingOrOffset, length)
12656 // Copy static methods from Buffer
12657 copyProps(Buffer, SafeBuffer)
12659 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12660 if (typeof arg === 'number') {
12661 throw new TypeError('Argument must not be a number')
12663 return Buffer(arg, encodingOrOffset, length)
12666 SafeBuffer.alloc = function (size, fill, encoding) {
12667 if (typeof size !== 'number') {
12668 throw new TypeError('Argument must be a number')
12670 var buf = Buffer(size)
12671 if (fill !== undefined) {
12672 if (typeof encoding === 'string') {
12673 buf.fill(fill, encoding)
12683 SafeBuffer.allocUnsafe = function (size) {
12684 if (typeof size !== 'number') {
12685 throw new TypeError('Argument must be a number')
12687 return Buffer(size)
12690 SafeBuffer.allocUnsafeSlow = function (size) {
12691 if (typeof size !== 'number') {
12692 throw new TypeError('Argument must be a number')
12694 return buffer.SlowBuffer(size)
12697 },{"buffer":
4}],
27:[function(require,module,exports){
12698 // Copyright Joyent, Inc. and other Node contributors.
12700 // Permission is hereby granted, free of charge, to any person obtaining a
12701 // copy of this software and associated documentation files (the
12702 // "Software"), to deal in the Software without restriction, including
12703 // without limitation the rights to use, copy, modify, merge, publish,
12704 // distribute, sublicense, and/or sell copies of the Software, and to permit
12705 // persons to whom the Software is furnished to do so, subject to the
12706 // following conditions:
12708 // The above copyright notice and this permission notice shall be included
12709 // in all copies or substantial portions of the Software.
12711 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12712 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12713 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12714 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12715 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12716 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12717 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12719 module.exports = Stream;
12721 var EE = require('events').EventEmitter;
12722 var inherits = require('inherits');
12724 inherits(Stream, EE);
12725 Stream.Readable = require('readable-stream/readable.js');
12726 Stream.Writable = require('readable-stream/writable.js');
12727 Stream.Duplex = require('readable-stream/duplex.js');
12728 Stream.Transform = require('readable-stream/transform.js');
12729 Stream.PassThrough = require('readable-stream/passthrough.js');
12731 // Backwards-compat with node
0.4.x
12732 Stream.Stream = Stream;
12736 // old-style streams. Note that the pipe method (the only relevant
12737 // part of this class) is overridden in the Readable class.
12739 function Stream() {
12743 Stream.prototype.pipe = function(dest, options) {
12746 function ondata(chunk) {
12747 if (dest.writable) {
12748 if (false === dest.write(chunk) && source.pause) {
12754 source.on('data', ondata);
12756 function ondrain() {
12757 if (source.readable && source.resume) {
12762 dest.on('drain', ondrain);
12764 // If the 'end' option is not supplied, dest.end() will be called when
12765 // source gets the 'end' or 'close' events. Only dest.end() once.
12766 if (!dest._isStdio && (!options || options.end !== false)) {
12767 source.on('end', onend);
12768 source.on('close', onclose);
12771 var didOnEnd = false;
12773 if (didOnEnd) return;
12780 function onclose() {
12781 if (didOnEnd) return;
12784 if (typeof dest.destroy === 'function') dest.destroy();
12787 // don't leave dangling pipes when there are errors.
12788 function onerror(er) {
12790 if (EE.listenerCount(this, 'error') ===
0) {
12791 throw er; // Unhandled stream error in pipe.
12795 source.on('error', onerror);
12796 dest.on('error', onerror);
12798 // remove all the event listeners that were added.
12799 function cleanup() {
12800 source.removeListener('data', ondata);
12801 dest.removeListener('drain', ondrain);
12803 source.removeListener('end', onend);
12804 source.removeListener('close', onclose);
12806 source.removeListener('error', onerror);
12807 dest.removeListener('error', onerror);
12809 source.removeListener('end', cleanup);
12810 source.removeListener('close', cleanup);
12812 dest.removeListener('close', cleanup);
12815 source.on('end', cleanup);
12816 source.on('close', cleanup);
12818 dest.on('close', cleanup);
12820 dest.emit('pipe', source);
12822 // Allow for unix-like usage: A.pipe(B).pipe(C)
12826 },{"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){
12829 var Buffer = require('safe-buffer').Buffer;
12831 var isEncoding = Buffer.isEncoding || function (encoding) {
12832 encoding = '' + encoding;
12833 switch (encoding && encoding.toLowerCase()) {
12834 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':
12841 function _normalizeEncoding(enc) {
12842 if (!enc) return 'utf8';
12862 if (retried) return; // undefined
12863 enc = ('' + enc).toLowerCase();
12869 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12870 // modules monkey-patch it to support additional encodings
12871 function normalizeEncoding(enc) {
12872 var nenc = _normalizeEncoding(enc);
12873 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12874 return nenc || enc;
12877 // StringDecoder provides an interface for efficiently splitting a series of
12878 // buffers into a series of JS strings without breaking apart multi-byte
12880 exports.StringDecoder = StringDecoder;
12881 function StringDecoder(encoding) {
12882 this.encoding = normalizeEncoding(encoding);
12884 switch (this.encoding) {
12886 this.text = utf16Text;
12887 this.end = utf16End;
12891 this.fillLast = utf8FillLast;
12895 this.text = base64Text;
12896 this.end = base64End;
12900 this.write = simpleWrite;
12901 this.end = simpleEnd;
12905 this.lastTotal =
0;
12906 this.lastChar = Buffer.allocUnsafe(nb);
12909 StringDecoder.prototype.write = function (buf) {
12910 if (buf.length ===
0) return '';
12913 if (this.lastNeed) {
12914 r = this.fillLast(buf);
12915 if (r === undefined) return '';
12921 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12925 StringDecoder.prototype.end = utf8End;
12927 // Returns only complete characters in a Buffer
12928 StringDecoder.prototype.text = utf8Text;
12930 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12931 StringDecoder.prototype.fillLast = function (buf) {
12932 if (this.lastNeed <= buf.length) {
12933 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12934 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12936 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12937 this.lastNeed -= buf.length;
12940 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12941 // continuation byte.
12942 function utf8CheckByte(byte) {
12943 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;
12947 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12948 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12949 // needed to complete the UTF-
8 character (if applicable) are returned.
12950 function utf8CheckIncomplete(self, buf, i) {
12951 var j = buf.length -
1;
12952 if (j < i) return
0;
12953 var nb = utf8CheckByte(buf[j]);
12955 if (nb
> 0) self.lastNeed = nb -
1;
12958 if (--j < i) return
0;
12959 nb = utf8CheckByte(buf[j]);
12961 if (nb
> 0) self.lastNeed = nb -
2;
12964 if (--j < i) return
0;
12965 nb = utf8CheckByte(buf[j]);
12968 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
12975 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
12976 // needed or are available. If we see a non-continuation byte where we expect
12977 // one, we
"replace" the validated continuation bytes we've seen so far with
12978 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
12979 // behavior. The continuation byte check is included three times in the case
12980 // where all of the continuation bytes for a character exist in the same buffer.
12981 // It is also done this way as a slight performance increase instead of using a
12983 function utf8CheckExtraBytes(self, buf, p) {
12984 if ((buf[
0] &
0xC0) !==
0x80) {
12986 return '\ufffd'.repeat(p);
12988 if (self.lastNeed
> 1 && buf.length
> 1) {
12989 if ((buf[
1] &
0xC0) !==
0x80) {
12991 return '\ufffd'.repeat(p +
1);
12993 if (self.lastNeed
> 2 && buf.length
> 2) {
12994 if ((buf[
2] &
0xC0) !==
0x80) {
12996 return '\ufffd'.repeat(p +
2);
13002 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13003 function utf8FillLast(buf) {
13004 var p = this.lastTotal - this.lastNeed;
13005 var r = utf8CheckExtraBytes(this, buf, p);
13006 if (r !== undefined) return r;
13007 if (this.lastNeed <= buf.length) {
13008 buf.copy(this.lastChar, p,
0, this.lastNeed);
13009 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13011 buf.copy(this.lastChar, p,
0, buf.length);
13012 this.lastNeed -= buf.length;
13015 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13016 // partial character, the character's bytes are buffered until the required
13017 // number of bytes are available.
13018 function utf8Text(buf, i) {
13019 var total = utf8CheckIncomplete(this, buf, i);
13020 if (!this.lastNeed) return buf.toString('utf8', i);
13021 this.lastTotal = total;
13022 var end = buf.length - (total - this.lastNeed);
13023 buf.copy(this.lastChar,
0, end);
13024 return buf.toString('utf8', i, end);
13027 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13028 // character needs to be added to the output.
13029 function utf8End(buf) {
13030 var r = buf && buf.length ? this.write(buf) : '';
13031 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13035 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13036 // number of bytes available, we need to check if we end on a leading/high
13037 // surrogate. In that case, we need to wait for the next two bytes in order to
13038 // decode the last character properly.
13039 function utf16Text(buf, i) {
13040 if ((buf.length - i) %
2 ===
0) {
13041 var r = buf.toString('utf16le', i);
13043 var c = r.charCodeAt(r.length -
1);
13044 if (c
>=
0xD800 && c <=
0xDBFF) {
13046 this.lastTotal =
4;
13047 this.lastChar[
0] = buf[buf.length -
2];
13048 this.lastChar[
1] = buf[buf.length -
1];
13049 return r.slice(
0, -
1);
13055 this.lastTotal =
2;
13056 this.lastChar[
0] = buf[buf.length -
1];
13057 return buf.toString('utf16le', i, buf.length -
1);
13060 // For UTF-
16LE we do not explicitly append special replacement characters if we
13061 // end on a partial character, we simply let v8 handle that.
13062 function utf16End(buf) {
13063 var r = buf && buf.length ? this.write(buf) : '';
13064 if (this.lastNeed) {
13065 var end = this.lastTotal - this.lastNeed;
13066 return r + this.lastChar.toString('utf16le',
0, end);
13071 function base64Text(buf, i) {
13072 var n = (buf.length - i) %
3;
13073 if (n ===
0) return buf.toString('base64', i);
13074 this.lastNeed =
3 - n;
13075 this.lastTotal =
3;
13077 this.lastChar[
0] = buf[buf.length -
1];
13079 this.lastChar[
0] = buf[buf.length -
2];
13080 this.lastChar[
1] = buf[buf.length -
1];
13082 return buf.toString('base64', i, buf.length - n);
13085 function base64End(buf) {
13086 var r = buf && buf.length ? this.write(buf) : '';
13087 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13091 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13092 function simpleWrite(buf) {
13093 return buf.toString(this.encoding);
13096 function simpleEnd(buf) {
13097 return buf && buf.length ? this.write(buf) : '';
13099 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13100 (function (global){
13106 module.exports = deprecate;
13109 * Mark that a method should not be used.
13110 * Returns a modified function which warns once by default.
13112 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13114 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13115 * will throw an Error when invoked.
13117 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13118 * will invoke `console.trace()` instead of `console.error()`.
13120 * @param {Function} fn - the function to deprecate
13121 * @param {String} msg - the string to print to the console when `fn` is invoked
13122 * @returns {Function} a new "deprecated" version of `fn`
13126 function deprecate (fn, msg) {
13127 if (config('noDeprecation')) {
13131 var warned = false;
13132 function deprecated() {
13134 if (config('throwDeprecation')) {
13135 throw new Error(msg);
13136 } else if (config('traceDeprecation')) {
13137 console.trace(msg);
13143 return fn.apply(this, arguments);
13150 * Checks `localStorage` for boolean values for the given `name`.
13152 * @param {String} name
13153 * @returns {Boolean}
13157 function config (name) {
13158 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13160 if (!global.localStorage) return false;
13164 var val = global.localStorage[name];
13165 if (null == val) return false;
13166 return String(val).toLowerCase() === 'true';
13169 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13170 },{}],
30:[function(require,module,exports){
13171 arguments[
4][
8][
0].apply(exports,arguments)
13172 },{"dup":
8}],
31:[function(require,module,exports){
13173 module.exports = function isBuffer(arg) {
13174 return arg && typeof arg === 'object'
13175 && typeof arg.copy === 'function'
13176 && typeof arg.fill === 'function'
13177 && typeof arg.readUInt8 === 'function';
13179 },{}],
32:[function(require,module,exports){
13180 (function (process,global){
13181 // Copyright Joyent, Inc. and other Node contributors.
13183 // Permission is hereby granted, free of charge, to any person obtaining a
13184 // copy of this software and associated documentation files (the
13185 // "Software"), to deal in the Software without restriction, including
13186 // without limitation the rights to use, copy, modify, merge, publish,
13187 // distribute, sublicense, and/or sell copies of the Software, and to permit
13188 // persons to whom the Software is furnished to do so, subject to the
13189 // following conditions:
13191 // The above copyright notice and this permission notice shall be included
13192 // in all copies or substantial portions of the Software.
13194 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13195 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13196 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13197 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13198 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13199 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13200 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13202 var formatRegExp = /%[sdj%]/g;
13203 exports.format = function(f) {
13204 if (!isString(f)) {
13206 for (var i =
0; i < arguments.length; i++) {
13207 objects.push(inspect(arguments[i]));
13209 return objects.join(' ');
13213 var args = arguments;
13214 var len = args.length;
13215 var str = String(f).replace(formatRegExp, function(x) {
13216 if (x === '%%') return '%';
13217 if (i
>= len) return x;
13219 case '%s': return String(args[i++]);
13220 case '%d': return Number(args[i++]);
13223 return JSON.stringify(args[i++]);
13225 return '[Circular]';
13231 for (var x = args[i]; i < len; x = args[++i]) {
13232 if (isNull(x) || !isObject(x)) {
13235 str += ' ' + inspect(x);
13242 // Mark that a method should not be used.
13243 // Returns a modified function which warns once by default.
13244 // If --no-deprecation is set, then it is a no-op.
13245 exports.deprecate = function(fn, msg) {
13246 // Allow for deprecating things in the process of starting up.
13247 if (isUndefined(global.process)) {
13248 return function() {
13249 return exports.deprecate(fn, msg).apply(this, arguments);
13253 if (process.noDeprecation === true) {
13257 var warned = false;
13258 function deprecated() {
13260 if (process.throwDeprecation) {
13261 throw new Error(msg);
13262 } else if (process.traceDeprecation) {
13263 console.trace(msg);
13265 console.error(msg);
13269 return fn.apply(this, arguments);
13278 exports.debuglog = function(set) {
13279 if (isUndefined(debugEnviron))
13280 debugEnviron = process.env.NODE_DEBUG || '';
13281 set = set.toUpperCase();
13282 if (!debugs[set]) {
13283 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13284 var pid = process.pid;
13285 debugs[set] = function() {
13286 var msg = exports.format.apply(exports, arguments);
13287 console.error('%s %d: %s', set, pid, msg);
13290 debugs[set] = function() {};
13293 return debugs[set];
13298 * Echos the value of a value. Trys to print the value out
13299 * in the best way possible given the different types.
13301 * @param {Object} obj The object to print out.
13302 * @param {Object} opts Optional options object that alters the output.
13304 /* legacy: obj, showHidden, depth, colors*/
13305 function inspect(obj, opts) {
13309 stylize: stylizeNoColor
13312 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13313 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13314 if (isBoolean(opts)) {
13316 ctx.showHidden = opts;
13318 // got an "options" object
13319 exports._extend(ctx, opts);
13321 // set default options
13322 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13323 if (isUndefined(ctx.depth)) ctx.depth =
2;
13324 if (isUndefined(ctx.colors)) ctx.colors = false;
13325 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13326 if (ctx.colors) ctx.stylize = stylizeWithColor;
13327 return formatValue(ctx, obj, ctx.depth);
13329 exports.inspect = inspect;
13332 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13335 'italic' : [
3,
23],
13336 'underline' : [
4,
24],
13337 'inverse' : [
7,
27],
13338 'white' : [
37,
39],
13340 'black' : [
30,
39],
13343 'green' : [
32,
39],
13344 'magenta' : [
35,
39],
13346 'yellow' : [
33,
39]
13349 // Don't use 'blue' not visible on cmd.exe
13352 'number': 'yellow',
13353 'boolean': 'yellow',
13354 'undefined': 'grey',
13358 // "name": intentionally not styling
13363 function stylizeWithColor(str, styleType) {
13364 var style = inspect.styles[styleType];
13367 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13368 '\u001b[' + inspect.colors[style][
1] + 'm';
13375 function stylizeNoColor(str, styleType) {
13380 function arrayToHash(array) {
13383 array.forEach(function(val, idx) {
13391 function formatValue(ctx, value, recurseTimes) {
13392 // Provide a hook for user-specified inspect functions.
13393 // Check that value is an object with an inspect function on it
13394 if (ctx.customInspect &&
13396 isFunction(value.inspect) &&
13397 // Filter out the util module, it's inspect function is special
13398 value.inspect !== exports.inspect &&
13399 // Also filter out any prototype objects using the circular check.
13400 !(value.constructor && value.constructor.prototype === value)) {
13401 var ret = value.inspect(recurseTimes, ctx);
13402 if (!isString(ret)) {
13403 ret = formatValue(ctx, ret, recurseTimes);
13408 // Primitive types cannot have properties
13409 var primitive = formatPrimitive(ctx, value);
13414 // Look up the keys of the object.
13415 var keys = Object.keys(value);
13416 var visibleKeys = arrayToHash(keys);
13418 if (ctx.showHidden) {
13419 keys = Object.getOwnPropertyNames(value);
13422 // IE doesn't make error fields non-enumerable
13423 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13425 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13426 return formatError(value);
13429 // Some type of object without properties can be shortcutted.
13430 if (keys.length ===
0) {
13431 if (isFunction(value)) {
13432 var name = value.name ? ': ' + value.name : '';
13433 return ctx.stylize('[Function' + name + ']', 'special');
13435 if (isRegExp(value)) {
13436 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13438 if (isDate(value)) {
13439 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13441 if (isError(value)) {
13442 return formatError(value);
13446 var base = '', array = false, braces = ['{', '}'];
13448 // Make Array say that they are Array
13449 if (isArray(value)) {
13451 braces = ['[', ']'];
13454 // Make functions say that they are functions
13455 if (isFunction(value)) {
13456 var n = value.name ? ': ' + value.name : '';
13457 base = ' [Function' + n + ']';
13460 // Make RegExps say that they are RegExps
13461 if (isRegExp(value)) {
13462 base = ' ' + RegExp.prototype.toString.call(value);
13465 // Make dates with properties first say the date
13466 if (isDate(value)) {
13467 base = ' ' + Date.prototype.toUTCString.call(value);
13470 // Make error with message first say the error
13471 if (isError(value)) {
13472 base = ' ' + formatError(value);
13475 if (keys.length ===
0 && (!array || value.length ==
0)) {
13476 return braces[
0] + base + braces[
1];
13479 if (recurseTimes <
0) {
13480 if (isRegExp(value)) {
13481 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13483 return ctx.stylize('[Object]', 'special');
13487 ctx.seen.push(value);
13491 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13493 output = keys.map(function(key) {
13494 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13500 return reduceToSingleString(output, base, braces);
13504 function formatPrimitive(ctx, value) {
13505 if (isUndefined(value))
13506 return ctx.stylize('undefined', 'undefined');
13507 if (isString(value)) {
13508 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13509 .replace(/'/g, "\\'")
13510 .replace(/\\"/g, '"') + '\'';
13511 return ctx.stylize(simple, 'string');
13513 if (isNumber(value))
13514 return ctx.stylize('' + value, 'number');
13515 if (isBoolean(value))
13516 return ctx.stylize('' + value, 'boolean');
13517 // For some reason typeof null is "object", so special case here.
13519 return ctx.stylize('null', 'null');
13523 function formatError(value) {
13524 return '[' + Error.prototype.toString.call(value) + ']';
13528 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13530 for (var i =
0, l = value.length; i < l; ++i) {
13531 if (hasOwnProperty(value, String(i))) {
13532 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13538 keys.forEach(function(key) {
13539 if (!key.match(/^\d+$/)) {
13540 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13548 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13549 var name, str, desc;
13550 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13553 str = ctx.stylize('[Getter/Setter]', 'special');
13555 str = ctx.stylize('[Getter]', 'special');
13559 str = ctx.stylize('[Setter]', 'special');
13562 if (!hasOwnProperty(visibleKeys, key)) {
13563 name = '[' + key + ']';
13566 if (ctx.seen.indexOf(desc.value) <
0) {
13567 if (isNull(recurseTimes)) {
13568 str = formatValue(ctx, desc.value, null);
13570 str = formatValue(ctx, desc.value, recurseTimes -
1);
13572 if (str.indexOf('\n')
> -
1) {
13574 str = str.split('\n').map(function(line) {
13576 }).join('\n').substr(
2);
13578 str = '\n' + str.split('\n').map(function(line) {
13584 str = ctx.stylize('[Circular]', 'special');
13587 if (isUndefined(name)) {
13588 if (array && key.match(/^\d+$/)) {
13591 name = JSON.stringify('' + key);
13592 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13593 name = name.substr(
1, name.length -
2);
13594 name = ctx.stylize(name, 'name');
13596 name = name.replace(/'/g, "\\'")
13597 .replace(/\\"/g, '"')
13598 .replace(/(^"|"$)/g, "'");
13599 name = ctx.stylize(name, 'string');
13603 return name + ': ' + str;
13607 function reduceToSingleString(output, base, braces) {
13608 var numLinesEst =
0;
13609 var length = output.reduce(function(prev, cur) {
13611 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13612 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13617 (base === '' ? '' : base + '\n ') +
13619 output.join(',\n ') +
13624 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13628 // NOTE: These type checking functions intentionally don't use `instanceof`
13629 // because it is fragile and can be easily faked with `Object.create()`.
13630 function isArray(ar) {
13631 return Array.isArray(ar);
13633 exports.isArray = isArray;
13635 function isBoolean(arg) {
13636 return typeof arg === 'boolean';
13638 exports.isBoolean = isBoolean;
13640 function isNull(arg) {
13641 return arg === null;
13643 exports.isNull = isNull;
13645 function isNullOrUndefined(arg) {
13646 return arg == null;
13648 exports.isNullOrUndefined = isNullOrUndefined;
13650 function isNumber(arg) {
13651 return typeof arg === 'number';
13653 exports.isNumber = isNumber;
13655 function isString(arg) {
13656 return typeof arg === 'string';
13658 exports.isString = isString;
13660 function isSymbol(arg) {
13661 return typeof arg === 'symbol';
13663 exports.isSymbol = isSymbol;
13665 function isUndefined(arg) {
13666 return arg === void
0;
13668 exports.isUndefined = isUndefined;
13670 function isRegExp(re) {
13671 return isObject(re) && objectToString(re) === '[object RegExp]';
13673 exports.isRegExp = isRegExp;
13675 function isObject(arg) {
13676 return typeof arg === 'object' && arg !== null;
13678 exports.isObject = isObject;
13680 function isDate(d) {
13681 return isObject(d) && objectToString(d) === '[object Date]';
13683 exports.isDate = isDate;
13685 function isError(e) {
13686 return isObject(e) &&
13687 (objectToString(e) === '[object Error]' || e instanceof Error);
13689 exports.isError = isError;
13691 function isFunction(arg) {
13692 return typeof arg === 'function';
13694 exports.isFunction = isFunction;
13696 function isPrimitive(arg) {
13697 return arg === null ||
13698 typeof arg === 'boolean' ||
13699 typeof arg === 'number' ||
13700 typeof arg === 'string' ||
13701 typeof arg === 'symbol' || // ES6 symbol
13702 typeof arg === 'undefined';
13704 exports.isPrimitive = isPrimitive;
13706 exports.isBuffer = require('./support/isBuffer');
13708 function objectToString(o) {
13709 return Object.prototype.toString.call(o);
13714 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13718 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13719 'Oct', 'Nov', 'Dec'];
13722 function timestamp() {
13723 var d = new Date();
13724 var time = [pad(d.getHours()),
13725 pad(d.getMinutes()),
13726 pad(d.getSeconds())].join(':');
13727 return [d.getDate(), months[d.getMonth()], time].join(' ');
13731 // log is just a thin wrapper to console.log that prepends a timestamp
13732 exports.log = function() {
13733 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13738 * Inherit the prototype methods from one constructor into another.
13740 * The Function.prototype.inherits from lang.js rewritten as a standalone
13741 * function (not on Function.prototype). NOTE: If this file is to be loaded
13742 * during bootstrapping this function needs to be rewritten using some native
13743 * functions as prototype setup using normal JavaScript does not work as
13744 * expected during bootstrapping (see mirror.js in r114903).
13746 * @param {function} ctor Constructor function which needs to inherit the
13748 * @param {function} superCtor Constructor function to inherit prototype from.
13750 exports.inherits = require('inherits');
13752 exports._extend = function(origin, add) {
13753 // Don't do anything if add isn't an object
13754 if (!add || !isObject(add)) return origin;
13756 var keys = Object.keys(add);
13757 var i = keys.length;
13759 origin[keys[i]] = add[keys[i]];
13764 function hasOwnProperty(obj, prop) {
13765 return Object.prototype.hasOwnProperty.call(obj, prop);
13768 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13769 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13771 base58: require('bs58'),
13772 bitcoin: require('bitcoinjs-lib'),
13773 ecurve: require('ecurve'),
13774 BigInteger: require('bigi')
13777 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13779 // Forked from https://github.com/cryptocoinjs/bs58
13780 // Originally written by Mike Hearn for BitcoinJ
13781 // Copyright (c)
2011 Google Inc
13782 // Ported to JavaScript by Stefan Thomas
13783 // Merged Buffer refactorings from base58-native by Stephen Pair
13784 // Copyright (c)
2013 BitPay Inc
13786 var Buffer = require('safe-buffer').Buffer
13788 module.exports = function base (ALPHABET) {
13789 var ALPHABET_MAP = {}
13790 var BASE = ALPHABET.length
13791 var LEADER = ALPHABET.charAt(
0)
13793 // pre-compute lookup table
13794 for (var z =
0; z < ALPHABET.length; z++) {
13795 var x = ALPHABET.charAt(z)
13797 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13798 ALPHABET_MAP[x] = z
13801 function encode (source) {
13802 if (source.length ===
0) return ''
13805 for (var i =
0; i < source.length; ++i) {
13806 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13807 carry += digits[j] <<
8
13808 digits[j] = carry % BASE
13809 carry = (carry / BASE) |
0
13812 while (carry
> 0) {
13813 digits.push(carry % BASE)
13814 carry = (carry / BASE) |
0
13820 // deal with leading zeros
13821 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13822 // convert digits to a string
13823 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13828 function decodeUnsafe (string) {
13829 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13832 for (var i =
0; i < string.length; i++) {
13833 var value = ALPHABET_MAP[string[i]]
13834 if (value === undefined) return
13836 for (var j =
0, carry = value; j < bytes.length; ++j) {
13837 carry += bytes[j] * BASE
13838 bytes[j] = carry &
0xff
13842 while (carry
> 0) {
13843 bytes.push(carry &
0xff)
13848 // deal with leading zeros
13849 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13853 return Buffer.from(bytes.reverse())
13856 function decode (string) {
13857 var buffer = decodeUnsafe(string)
13858 if (buffer) return buffer
13860 throw new Error('Non-base' + BASE + ' character')
13865 decodeUnsafe: decodeUnsafe,
13870 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13871 // (public) Constructor
13872 function BigInteger(a, b, c) {
13873 if (!(this instanceof BigInteger))
13874 return new BigInteger(a, b, c)
13877 if ("number" == typeof a) this.fromNumber(a, b, c)
13878 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13879 else this.fromString(a, b)
13883 var proto = BigInteger.prototype
13885 // duck-typed isBigInteger
13886 proto.__bigi = require('../package.json').version
13887 BigInteger.isBigInteger = function (obj, check_ver) {
13888 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13894 // am: Compute w_j += (x*this_i), propagate carries,
13895 // c is initial carry, returns final carry.
13896 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13897 // We need to select the fastest one that works in this environment.
13899 // am1: use a single mult and divide to get the high bits,
13900 // max digit bits should be
26 because
13901 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13902 function am1(i, x, w, j, c, n) {
13904 var v = x * this[i++] + w[j] + c
13905 c = Math.floor(v /
0x4000000)
13906 w[j++] = v &
0x3ffffff
13910 // am2 avoids a big mult-and-extract completely.
13911 // Max digit bits should be <=
30 because we do bitwise ops
13912 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13913 function am2(i, x, w, j, c, n) {
13914 var xl = x &
0x7fff,
13917 var l = this[i] &
0x7fff
13918 var h = this[i++]
>> 15
13919 var m = xh * l + h * xl
13920 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13921 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13922 w[j++] = l &
0x3fffffff
13926 // Alternately, set max digit bits to
28 since some
13927 // browsers slow down when dealing with
32-bit numbers.
13928 function am3(i, x, w, j, c, n) {
13929 var xl = x &
0x3fff,
13932 var l = this[i] &
0x3fff
13933 var h = this[i++]
>> 14
13934 var m = xh * l + h * xl
13935 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13936 c = (l
>> 28) + (m
>> 14) + xh * h
13937 w[j++] = l &
0xfffffff
13943 BigInteger.prototype.am = am1
13946 BigInteger.prototype.DB = dbits
13947 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13948 var DV = BigInteger.prototype.DV = (
1 << dbits)
13951 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13952 BigInteger.prototype.F1 = BI_FP - dbits
13953 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13955 // Digit conversions
13956 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13957 var BI_RC = new Array()
13959 rr =
"0".charCodeAt(
0)
13960 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13961 rr =
"a".charCodeAt(
0)
13962 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13963 rr =
"A".charCodeAt(
0)
13964 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13966 function int2char(n) {
13967 return BI_RM.charAt(n)
13970 function intAt(s, i) {
13971 var c = BI_RC[s.charCodeAt(i)]
13972 return (c == null) ? -
1 : c
13975 // (protected) copy this to r
13976 function bnpCopyTo(r) {
13977 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
13982 // (protected) set from integer value x, -DV <= x < DV
13983 function bnpFromInt(x) {
13985 this.s = (x <
0) ? -
1 :
0
13986 if (x
> 0) this[
0] = x
13987 else if (x < -
1) this[
0] = x + DV
13991 // return bigint initialized to value
13993 var r = new BigInteger()
13998 // (protected) set from string and radix
13999 function bnpFromString(s, b) {
14004 else if (b ==
8) k =
3
14005 else if (b ==
256) k =
8; // byte array
14006 else if (b ==
2) k =
1
14007 else if (b ==
32) k =
5
14008 else if (b ==
4) k =
2
14010 self.fromRadix(s, b)
14019 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14021 if (s.charAt(i) == "-") mi = true
14027 else if (sh + k
> self.DB) {
14028 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14029 self[self.t++] = (x
>> (self.DB - sh))
14031 self[self.t -
1] |= x << sh
14033 if (sh
>= self.DB) sh -= self.DB
14035 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14037 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14040 if (mi) BigInteger.ZERO.subTo(self, self)
14043 // (protected) clamp off excess high words
14044 function bnpClamp() {
14045 var c = this.s & this.DM
14046 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14049 // (public) return string representation in given radix
14050 function bnToString(b) {
14052 if (self.s <
0) return
"-" + self.negate()
14056 else if (b ==
8) k =
3
14057 else if (b ==
2) k =
1
14058 else if (b ==
32) k =
5
14059 else if (b ==
4) k =
2
14060 else return self.toRadix(b)
14061 var km = (
1 << k) -
1,
14065 var p = self.DB - (i * self.DB) % k
14067 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14073 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14074 d |= self[--i]
>> (p += self.DB - k)
14076 d = (self[i]
>> (p -= k)) & km
14082 if (d
> 0) m = true
14083 if (m) r += int2char(d)
14090 function bnNegate() {
14091 var r = new BigInteger()
14092 BigInteger.ZERO.subTo(this, r)
14098 return (this.s <
0) ? this.negate() : this
14101 // (public) return + if this
> a, - if this < a,
0 if equal
14102 function bnCompareTo(a) {
14103 var r = this.s - a.s
14104 if (r !=
0) return r
14107 if (r !=
0) return (this.s <
0) ? -r : r
14109 if ((r = this[i] - a[i]) !=
0) return r
14113 // returns bit length of the integer x
14114 function nbits(x) {
14117 if ((t = x
>>> 16) !=
0) {
14121 if ((t = x
>> 8) !=
0) {
14125 if ((t = x
>> 4) !=
0) {
14129 if ((t = x
>> 2) !=
0) {
14133 if ((t = x
>> 1) !=
0) {
14140 // (public) return the number of bits in
"this"
14141 function bnBitLength() {
14142 if (this.t <=
0) return
0
14143 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14146 // (public) return the number of bytes in
"this"
14147 function bnByteLength() {
14148 return this.bitLength()
>> 3
14151 // (protected) r = this << n*DB
14152 function bnpDLShiftTo(n, r) {
14154 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14155 for (i = n -
1; i
>=
0; --i) r[i] =
0
14160 // (protected) r = this
>> n*DB
14161 function bnpDRShiftTo(n, r) {
14162 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14163 r.t = Math.max(this.t - n,
0)
14167 // (protected) r = this << n
14168 function bnpLShiftTo(n, r) {
14170 var bs = n % self.DB
14171 var cbs = self.DB - bs
14172 var bm = (
1 << cbs) -
1
14173 var ds = Math.floor(n / self.DB),
14174 c = (self.s << bs) & self.DM,
14176 for (i = self.t -
1; i
>=
0; --i) {
14177 r[i + ds +
1] = (self[i]
>> cbs) | c
14178 c = (self[i] & bm) << bs
14180 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14182 r.t = self.t + ds +
1
14187 // (protected) r = this
>> n
14188 function bnpRShiftTo(n, r) {
14191 var ds = Math.floor(n / self.DB)
14192 if (ds
>= self.t) {
14196 var bs = n % self.DB
14197 var cbs = self.DB - bs
14198 var bm = (
1 << bs) -
1
14199 r[
0] = self[ds]
>> bs
14200 for (var i = ds +
1; i < self.t; ++i) {
14201 r[i - ds -
1] |= (self[i] & bm) << cbs
14202 r[i - ds] = self[i]
>> bs
14204 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14209 // (protected) r = this - a
14210 function bnpSubTo(a, r) {
14214 m = Math.min(a.t, self.t)
14216 c += self[i] - a[i]
14217 r[i++] = c & self.DM
14220 if (a.t < self.t) {
14222 while (i < self.t) {
14224 r[i++] = c & self.DM
14232 r[i++] = c & self.DM
14237 r.s = (c <
0) ? -
1 :
0
14238 if (c < -
1) r[i++] = self.DV + c
14239 else if (c
> 0) r[i++] = c
14244 // (protected) r = this * a, r != this,a (HAC
14.12)
14245 //
"this" should be the larger one if appropriate.
14246 function bnpMultiplyTo(a, r) {
14247 var x = this.abs(),
14251 while (--i
>=
0) r[i] =
0
14252 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14255 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14258 // (protected) r = this^
2, r != this (HAC
14.16)
14259 function bnpSquareTo(r) {
14261 var i = r.t =
2 * x.t
14262 while (--i
>=
0) r[i] =
0
14263 for (i =
0; i < x.t -
1; ++i) {
14264 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14265 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14270 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14275 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14276 // r != q, this != m. q or r may be null.
14277 function bnpDivRemTo(m, q, r) {
14280 if (pm.t <=
0) return
14281 var pt = self.abs()
14283 if (q != null) q.fromInt(
0)
14284 if (r != null) self.copyTo(r)
14287 if (r == null) r = new BigInteger()
14288 var y = new BigInteger(),
14291 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14293 pm.lShiftTo(nsh, y)
14294 pt.lShiftTo(nsh, r)
14301 if (y0 ==
0) return
14302 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14303 var d1 = self.FV / yt,
14304 d2 = (
1 << self.F1) / yt,
14308 t = (q == null) ? new BigInteger() : q
14310 if (r.compareTo(t)
>=
0) {
14314 BigInteger.ONE.dlShiftTo(ys, t)
14315 t.subTo(y, y); // "negative" y so we can replace sub with am later
14316 while (y.t < ys) y[y.t++] =
0
14318 // Estimate quotient digit
14319 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14320 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14323 while (r[i] < --qd) r.subTo(t, r)
14328 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14332 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14333 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14336 // (public) this mod a
14337 function bnMod(a) {
14338 var r = new BigInteger()
14340 .divRemTo(a, null, r)
14341 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14345 // Modular reduction using
"classic" algorithm
14346 function Classic(m) {
14350 function cConvert(x) {
14351 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14355 function cRevert(x) {
14359 function cReduce(x) {
14360 x.divRemTo(this.m, null, x)
14363 function cMulTo(x, y, r) {
14368 function cSqrTo(x, r) {
14373 Classic.prototype.convert = cConvert
14374 Classic.prototype.revert = cRevert
14375 Classic.prototype.reduce = cReduce
14376 Classic.prototype.mulTo = cMulTo
14377 Classic.prototype.sqrTo = cSqrTo
14379 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14383 // xy(
2-xy) = (
1+km)(
1-km)
14384 // x[y(
2-xy)] =
1-k^
2m^
2
14385 // x[y(
2-xy)] ==
1 (mod m^
2)
14386 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14387 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14388 // JS multiply "overflows" differently from C/C++, so care is needed here.
14389 function bnpInvDigit() {
14390 if (this.t <
1) return
0
14392 if ((x &
1) ==
0) return
0
14393 var y = x &
3; // y ==
1/x mod
2^
2
14394 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14395 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14396 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14397 // last step - calculate inverse mod DV directly
14398 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14399 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14400 // we really want the negative inverse, and -DV < y < DV
14401 return (y
> 0) ? this.DV - y : -y
14404 // Montgomery reduction
14405 function Montgomery(m) {
14407 this.mp = m.invDigit()
14408 this.mpl = this.mp &
0x7fff
14409 this.mph = this.mp
>> 15
14410 this.um = (
1 << (m.DB -
15)) -
1
14415 function montConvert(x) {
14416 var r = new BigInteger()
14418 .dlShiftTo(this.m.t, r)
14419 r.divRemTo(this.m, null, r)
14420 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14425 function montRevert(x) {
14426 var r = new BigInteger()
14432 // x = x/R mod m (HAC
14.32)
14433 function montReduce(x) {
14434 while (x.t <= this.mt2) // pad x so am has enough room later
14436 for (var i =
0; i < this.m.t; ++i) {
14437 // faster way of calculating u0 = x[i]*mp mod DV
14438 var j = x[i] &
0x7fff
14439 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14440 // use am to combine the multiply-shift-add into one call
14442 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14444 while (x[j]
>= x.DV) {
14450 x.drShiftTo(this.m.t, x)
14451 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14454 // r = "x^
2/R mod m"; x != r
14455 function montSqrTo(x, r) {
14460 // r = "xy/R mod m"; x,y != r
14461 function montMulTo(x, y, r) {
14466 Montgomery.prototype.convert = montConvert
14467 Montgomery.prototype.revert = montRevert
14468 Montgomery.prototype.reduce = montReduce
14469 Montgomery.prototype.mulTo = montMulTo
14470 Montgomery.prototype.sqrTo = montSqrTo
14472 // (protected) true iff this is even
14473 function bnpIsEven() {
14474 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14477 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14478 function bnpExp(e, z) {
14479 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14480 var r = new BigInteger(),
14481 r2 = new BigInteger(),
14482 g = z.convert(this),
14487 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14497 // (public) this^e % m,
0 <= e <
2^
32
14498 function bnModPowInt(e, m) {
14500 if (e <
256 || m.isEven()) z = new Classic(m)
14501 else z = new Montgomery(m)
14502 return this.exp(e, z)
14506 proto.copyTo = bnpCopyTo
14507 proto.fromInt = bnpFromInt
14508 proto.fromString = bnpFromString
14509 proto.clamp = bnpClamp
14510 proto.dlShiftTo = bnpDLShiftTo
14511 proto.drShiftTo = bnpDRShiftTo
14512 proto.lShiftTo = bnpLShiftTo
14513 proto.rShiftTo = bnpRShiftTo
14514 proto.subTo = bnpSubTo
14515 proto.multiplyTo = bnpMultiplyTo
14516 proto.squareTo = bnpSquareTo
14517 proto.divRemTo = bnpDivRemTo
14518 proto.invDigit = bnpInvDigit
14519 proto.isEven = bnpIsEven
14523 proto.toString = bnToString
14524 proto.negate = bnNegate
14526 proto.compareTo = bnCompareTo
14527 proto.bitLength = bnBitLength
14528 proto.byteLength = bnByteLength
14530 proto.modPowInt = bnModPowInt
14533 function bnClone() {
14534 var r = new BigInteger()
14539 // (public) return value as integer
14540 function bnIntValue() {
14542 if (this.t ==
1) return this[
0] - this.DV
14543 else if (this.t ==
0) return -
1
14544 } else if (this.t ==
1) return this[
0]
14545 else if (this.t ==
0) return
0
14546 // assumes
16 < DB <
32
14547 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14550 // (public) return value as byte
14551 function bnByteValue() {
14552 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14555 // (public) return value as short (assumes DB
>=
16)
14556 function bnShortValue() {
14557 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14560 // (protected) return x s.t. r^x < DV
14561 function bnpChunkSize(r) {
14562 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14565 // (public)
0 if this ==
0,
1 if this
> 0
14566 function bnSigNum() {
14567 if (this.s <
0) return -
1
14568 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14572 // (protected) convert to radix string
14573 function bnpToRadix(b) {
14574 if (b == null) b =
10
14575 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14576 var cs = this.chunkSize(b)
14577 var a = Math.pow(b, cs)
14579 y = new BigInteger(),
14580 z = new BigInteger(),
14582 this.divRemTo(d, y, z)
14583 while (y.signum()
> 0) {
14584 r = (a + z.intValue())
14587 y.divRemTo(d, y, z)
14589 return z.intValue()
14593 // (protected) convert from radix string
14594 function bnpFromRadix(s, b) {
14597 if (b == null) b =
10
14598 var cs = self.chunkSize(b)
14599 var d = Math.pow(b, cs),
14603 for (var i =
0; i < s.length; ++i) {
14604 var x = intAt(s, i)
14606 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14612 self.dAddOffset(w,
0)
14618 self.dMultiply(Math.pow(b, j))
14619 self.dAddOffset(w,
0)
14621 if (mi) BigInteger.ZERO.subTo(self, self)
14624 // (protected) alternate constructor
14625 function bnpFromNumber(a, b, c) {
14627 if (
"number" == typeof b) {
14628 // new BigInteger(int,int,RNG)
14629 if (a <
2) self.fromInt(
1)
14631 self.fromNumber(a, c)
14632 if (!self.testBit(a -
1)) // force MSB set
14633 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14634 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14635 while (!self.isProbablePrime(b)) {
14636 self.dAddOffset(
2,
0)
14637 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14641 // new BigInteger(int,RNG)
14642 var x = new Array(),
14644 x.length = (a
>> 3) +
1
14646 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14648 self.fromString(x,
256)
14652 // (public) convert to bigendian byte array
14653 function bnToByteArray() {
14658 var p = self.DB - (i * self.DB) %
8,
14661 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14662 r[k++] = d | (self.s << (self.DB - p))
14665 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14666 d |= self[--i]
>> (p += self.DB -
8)
14668 d = (self[i]
>> (p -=
8)) &
0xff
14674 if ((d &
0x80) !=
0) d |= -
256
14675 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14676 if (k
> 0 || d != self.s) r[k++] = d
14682 function bnEquals(a) {
14683 return (this.compareTo(a) ==
0)
14686 function bnMin(a) {
14687 return (this.compareTo(a) <
0) ? this : a
14690 function bnMax(a) {
14691 return (this.compareTo(a)
> 0) ? this : a
14694 // (protected) r = this op a (bitwise)
14695 function bnpBitwiseTo(a, op, r) {
14697 var i, f, m = Math.min(a.t, self.t)
14698 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14699 if (a.t < self.t) {
14701 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14704 f = self.s & self.DM
14705 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14708 r.s = op(self.s, a.s)
14712 // (public) this & a
14713 function op_and(x, y) {
14717 function bnAnd(a) {
14718 var r = new BigInteger()
14719 this.bitwiseTo(a, op_and, r)
14723 // (public) this | a
14724 function op_or(x, y) {
14729 var r = new BigInteger()
14730 this.bitwiseTo(a, op_or, r)
14734 // (public) this ^ a
14735 function op_xor(x, y) {
14739 function bnXor(a) {
14740 var r = new BigInteger()
14741 this.bitwiseTo(a, op_xor, r)
14745 // (public) this & ~a
14746 function op_andnot(x, y) {
14750 function bnAndNot(a) {
14751 var r = new BigInteger()
14752 this.bitwiseTo(a, op_andnot, r)
14758 var r = new BigInteger()
14759 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14765 // (public) this << n
14766 function bnShiftLeft(n) {
14767 var r = new BigInteger()
14768 if (n <
0) this.rShiftTo(-n, r)
14769 else this.lShiftTo(n, r)
14773 // (public) this
>> n
14774 function bnShiftRight(n) {
14775 var r = new BigInteger()
14776 if (n <
0) this.lShiftTo(-n, r)
14777 else this.rShiftTo(n, r)
14781 // return index of lowest
1-bit in x, x <
2^
31
14783 if (x ==
0) return -
1
14785 if ((x &
0xffff) ==
0) {
14789 if ((x &
0xff) ==
0) {
14793 if ((x &
0xf) ==
0) {
14797 if ((x &
3) ==
0) {
14801 if ((x &
1) ==
0)++r
14805 // (public) returns index of lowest
1-bit (or -
1 if none)
14806 function bnGetLowestSetBit() {
14807 for (var i =
0; i < this.t; ++i)
14808 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14809 if (this.s <
0) return this.t * this.DB
14813 // return number of
1 bits in x
14823 // (public) return number of set bits
14824 function bnBitCount() {
14826 x = this.s & this.DM
14827 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14831 // (public) true iff nth bit is set
14832 function bnTestBit(n) {
14833 var j = Math.floor(n / this.DB)
14834 if (j
>= this.t) return (this.s !=
0)
14835 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14838 // (protected) this op (
1<
<n)
14839 function bnpChangeBit(n, op) {
14840 var r = BigInteger.ONE.shiftLeft(n)
14841 this.bitwiseTo(r, op, r)
14845 // (public) this | (
1<
<n)
14846 function bnSetBit(n) {
14847 return this.changeBit(n, op_or)
14850 // (public) this & ~(
1<
<n)
14851 function bnClearBit(n) {
14852 return this.changeBit(n, op_andnot)
14855 // (public) this ^ (
1<
<n)
14856 function bnFlipBit(n) {
14857 return this.changeBit(n, op_xor)
14860 // (protected) r = this + a
14861 function bnpAddTo(a, r) {
14866 m = Math.min(a.t, self.t)
14868 c += self[i] + a[i]
14869 r[i++] = c & self.DM
14872 if (a.t < self.t) {
14874 while (i < self.t) {
14876 r[i++] = c & self.DM
14884 r[i++] = c & self.DM
14889 r.s = (c <
0) ? -
1 :
0
14890 if (c
> 0) r[i++] = c
14891 else if (c < -
1) r[i++] = self.DV + c
14896 // (public) this + a
14897 function bnAdd(a) {
14898 var r = new BigInteger()
14903 // (public) this - a
14904 function bnSubtract(a) {
14905 var r = new BigInteger()
14910 // (public) this * a
14911 function bnMultiply(a) {
14912 var r = new BigInteger()
14913 this.multiplyTo(a, r)
14918 function bnSquare() {
14919 var r = new BigInteger()
14924 // (public) this / a
14925 function bnDivide(a) {
14926 var r = new BigInteger()
14927 this.divRemTo(a, r, null)
14931 // (public) this % a
14932 function bnRemainder(a) {
14933 var r = new BigInteger()
14934 this.divRemTo(a, null, r)
14938 // (public) [this/a,this%a]
14939 function bnDivideAndRemainder(a) {
14940 var q = new BigInteger(),
14941 r = new BigInteger()
14942 this.divRemTo(a, q, r)
14943 return new Array(q, r)
14946 // (protected) this *= n, this
>=
0,
1 < n < DV
14947 function bnpDMultiply(n) {
14948 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14953 // (protected) this += n << w words, this
>=
0
14954 function bnpDAddOffset(n, w) {
14956 while (this.t <= w) this[this.t++] =
0
14958 while (this[w]
>= this.DV) {
14960 if (++w
>= this.t) this[this.t++] =
0
14965 // A "null" reducer
14966 function NullExp() {}
14972 function nMulTo(x, y, r) {
14976 function nSqrTo(x, r) {
14980 NullExp.prototype.convert = nNop
14981 NullExp.prototype.revert = nNop
14982 NullExp.prototype.mulTo = nMulTo
14983 NullExp.prototype.sqrTo = nSqrTo
14986 function bnPow(e) {
14987 return this.exp(e, new NullExp())
14990 // (protected) r = lower n words of "this * a", a.t <= n
14991 // "this" should be the larger one if appropriate.
14992 function bnpMultiplyLowerTo(a, n, r) {
14993 var i = Math.min(this.t + a.t, n)
14994 r.s =
0; // assumes a,this
>=
0
14996 while (i
> 0) r[--i] =
0
14998 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
14999 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15003 // (protected) r =
"this * a" without lower n words, n
> 0
15004 //
"this" should be the larger one if appropriate.
15005 function bnpMultiplyUpperTo(a, n, r) {
15007 var i = r.t = this.t + a.t - n
15008 r.s =
0; // assumes a,this
>=
0
15009 while (--i
>=
0) r[i] =
0
15010 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15011 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15016 // Barrett modular reduction
15017 function Barrett(m) {
15019 this.r2 = new BigInteger()
15020 this.q3 = new BigInteger()
15021 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15022 this.mu = this.r2.divide(m)
15026 function barrettConvert(x) {
15027 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15028 else if (x.compareTo(this.m) <
0) return x
15030 var r = new BigInteger()
15037 function barrettRevert(x) {
15041 // x = x mod m (HAC
14.42)
15042 function barrettReduce(x) {
15044 x.drShiftTo(self.m.t -
1, self.r2)
15045 if (x.t
> self.m.t +
1) {
15049 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15050 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15051 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15052 x.subTo(self.r2, x)
15053 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15056 // r = x^
2 mod m; x != r
15057 function barrettSqrTo(x, r) {
15062 // r = x*y mod m; x,y != r
15063 function barrettMulTo(x, y, r) {
15068 Barrett.prototype.convert = barrettConvert
15069 Barrett.prototype.revert = barrettRevert
15070 Barrett.prototype.reduce = barrettReduce
15071 Barrett.prototype.mulTo = barrettMulTo
15072 Barrett.prototype.sqrTo = barrettSqrTo
15074 // (public) this^e % m (HAC
14.85)
15075 function bnModPow(e, m) {
15076 var i = e.bitLength(),
15079 if (i <=
0) return r
15080 else if (i <
18) k =
1
15081 else if (i <
48) k =
3
15082 else if (i <
144) k =
4
15083 else if (i <
768) k =
5
15087 else if (m.isEven())
15090 z = new Montgomery(m)
15093 var g = new Array(),
15097 g[
1] = z.convert(this)
15099 var g2 = new BigInteger()
15102 g[n] = new BigInteger()
15103 z.mulTo(g2, g[n -
2], g[n])
15110 r2 = new BigInteger(),
15112 i = nbits(e[j]) -
1
15114 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15116 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15117 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15121 while ((w &
1) ==
0) {
15125 if ((i -= n) <
0) {
15129 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15138 if (n
> 0) z.sqrTo(r, r2)
15144 z.mulTo(r2, g[w], r)
15147 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15161 // (public) gcd(this,a) (HAC
14.54)
15162 function bnGCD(a) {
15163 var x = (this.s <
0) ? this.negate() : this.clone()
15164 var y = (a.s <
0) ? a.negate() : a.clone()
15165 if (x.compareTo(y) <
0) {
15170 var i = x.getLowestSetBit(),
15171 g = y.getLowestSetBit()
15172 if (g <
0) return x
15178 while (x.signum()
> 0) {
15179 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15180 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15181 if (x.compareTo(y)
>=
0) {
15189 if (g
> 0) y.lShiftTo(g, y)
15193 // (protected) this % n, n <
2^
26
15194 function bnpModInt(n) {
15195 if (n <=
0) return
0
15196 var d = this.DV % n,
15197 r = (this.s <
0) ? n -
1 :
0
15199 if (d ==
0) r = this[
0] % n
15201 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15205 // (public)
1/this % m (HAC
14.61)
15206 function bnModInverse(m) {
15207 var ac = m.isEven()
15208 if (this.signum() ===
0) throw new Error('division by zero')
15209 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15216 while (u.signum() !=
0) {
15217 while (u.isEven()) {
15220 if (!a.isEven() || !b.isEven()) {
15225 } else if (!b.isEven()) b.subTo(m, b)
15228 while (v.isEven()) {
15231 if (!c.isEven() || !d.isEven()) {
15236 } else if (!d.isEven()) d.subTo(m, d)
15239 if (u.compareTo(v)
>=
0) {
15241 if (ac) a.subTo(c, a)
15245 if (ac) c.subTo(a, c)
15249 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15250 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15251 while (d.signum() <
0) d.addTo(m, d)
15256 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15257 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15258 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15259 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15260 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15261 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15262 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15263 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15264 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15265 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15266 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15269 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15271 // (public) test primality with certainty
>=
1-
.5^t
15272 function bnIsProbablePrime(t) {
15273 var i, x = this.abs()
15274 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15275 for (i =
0; i < lowprimes.length; ++i)
15276 if (x[
0] == lowprimes[i]) return true
15279 if (x.isEven()) return false
15281 while (i < lowprimes.length) {
15282 var m = lowprimes[i],
15284 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15286 while (i < j) if (m % lowprimes[i++] ==
0) return false
15288 return x.millerRabin(t)
15291 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15292 function bnpMillerRabin(t) {
15293 var n1 = this.subtract(BigInteger.ONE)
15294 var k = n1.getLowestSetBit()
15295 if (k <=
0) return false
15296 var r = n1.shiftRight(k)
15298 if (t
> lowprimes.length) t = lowprimes.length
15299 var a = new BigInteger(null)
15301 for (var i =
0; i < t; ++i) {
15303 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15304 if (bases.indexOf(j) == -
1) break
15308 var y = a.modPow(r, this)
15309 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15311 while (j++ < k && y.compareTo(n1) !=
0) {
15312 y = y.modPowInt(
2, this)
15313 if (y.compareTo(BigInteger.ONE) ==
0) return false
15315 if (y.compareTo(n1) !=
0) return false
15322 proto.chunkSize = bnpChunkSize
15323 proto.toRadix = bnpToRadix
15324 proto.fromRadix = bnpFromRadix
15325 proto.fromNumber = bnpFromNumber
15326 proto.bitwiseTo = bnpBitwiseTo
15327 proto.changeBit = bnpChangeBit
15328 proto.addTo = bnpAddTo
15329 proto.dMultiply = bnpDMultiply
15330 proto.dAddOffset = bnpDAddOffset
15331 proto.multiplyLowerTo = bnpMultiplyLowerTo
15332 proto.multiplyUpperTo = bnpMultiplyUpperTo
15333 proto.modInt = bnpModInt
15334 proto.millerRabin = bnpMillerRabin
15337 proto.clone = bnClone
15338 proto.intValue = bnIntValue
15339 proto.byteValue = bnByteValue
15340 proto.shortValue = bnShortValue
15341 proto.signum = bnSigNum
15342 proto.toByteArray = bnToByteArray
15343 proto.equals = bnEquals
15349 proto.andNot = bnAndNot
15351 proto.shiftLeft = bnShiftLeft
15352 proto.shiftRight = bnShiftRight
15353 proto.getLowestSetBit = bnGetLowestSetBit
15354 proto.bitCount = bnBitCount
15355 proto.testBit = bnTestBit
15356 proto.setBit = bnSetBit
15357 proto.clearBit = bnClearBit
15358 proto.flipBit = bnFlipBit
15360 proto.subtract = bnSubtract
15361 proto.multiply = bnMultiply
15362 proto.divide = bnDivide
15363 proto.remainder = bnRemainder
15364 proto.divideAndRemainder = bnDivideAndRemainder
15365 proto.modPow = bnModPow
15366 proto.modInverse = bnModInverse
15369 proto.isProbablePrime = bnIsProbablePrime
15371 // JSBN-specific extension
15372 proto.square = bnSquare
15375 BigInteger.ZERO = nbv(
0)
15376 BigInteger.ONE = nbv(
1)
15377 BigInteger.valueOf = nbv
15379 module.exports = BigInteger
15381 },{"../package.json":
38}],
36:[function(require,module,exports){
15382 (function (Buffer){
15383 // FIXME: Kind of a weird way to throw exceptions, consider removing
15384 var assert = require('assert')
15385 var BigInteger = require('./bigi')
15388 * Turns a byte array into a big integer.
15390 * This function will interpret a byte array as a big integer in big
15393 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15394 // BigInteger expects a DER integer conformant byte array
15395 if (byteArray[
0] &
0x80) {
15396 return new BigInteger([
0].concat(byteArray))
15399 return new BigInteger(byteArray)
15403 * Returns a byte array representation of the big integer.
15405 * This returns the absolute of the contained value in big endian
15406 * form. A value of zero results in an empty array.
15408 BigInteger.prototype.toByteArrayUnsigned = function() {
15409 var byteArray = this.toByteArray()
15410 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15413 BigInteger.fromDERInteger = function(byteArray) {
15414 return new BigInteger(byteArray)
15418 * Converts BigInteger to a DER integer representation.
15420 * The format for this value uses the most significant bit as a sign
15421 * bit. If the most significant bit is already set and the integer is
15422 * positive, a
0x00 is prepended.
15437 *
62300 =
> 0x00f35c
15438 * -
62300 =
> 0xff0ca4
15440 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15442 BigInteger.fromBuffer = function(buffer) {
15443 // BigInteger expects a DER integer conformant byte array
15444 if (buffer[
0] &
0x80) {
15445 var byteArray = Array.prototype.slice.call(buffer)
15447 return new BigInteger([
0].concat(byteArray))
15450 return new BigInteger(buffer)
15453 BigInteger.fromHex = function(hex) {
15454 if (hex === '') return BigInteger.ZERO
15456 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15457 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15458 return new BigInteger(hex,
16)
15461 BigInteger.prototype.toBuffer = function(size) {
15462 var byteArray = this.toByteArrayUnsigned()
15465 var padding = size - byteArray.length
15466 while (zeros.length < padding) zeros.push(
0)
15468 return new Buffer(zeros.concat(byteArray))
15471 BigInteger.prototype.toHex = function(size) {
15472 return this.toBuffer(size).toString('hex')
15475 }).call(this,require(
"buffer").Buffer)
15476 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15477 var BigInteger = require('./bigi')
15480 require('./convert')
15482 module.exports = BigInteger
15483 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15488 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15491 "_from":
"bigi@latest",
15492 "_id":
"bigi@1.4.2",
15494 "_installable": true,
15495 "_location":
"/bigi",
15496 "_nodeVersion":
"6.1.0",
15497 "_npmOperationalInternal": {
15498 "host":
"packages-12-west.internal.npmjs.com",
15499 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15502 "email":
"jprichardson@gmail.com",
15503 "name":
"jprichardson"
15505 "_npmVersion":
"3.8.6",
15506 "_phantomChildren": {},
15520 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15521 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15522 "_shrinkwrap": null,
15524 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15526 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15528 "dependencies": {},
15529 "description":
"Big integers.",
15530 "devDependencies": {
15531 "coveralls":
"^2.11.2",
15532 "istanbul":
"^0.3.5",
15533 "jshint":
"^2.5.1",
15535 "mochify":
"^2.1.0"
15539 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15540 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15542 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15543 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15561 "main":
"./lib/index.js",
15564 "email":
"boydb@midnightdesign.ws",
15565 "name":
"midnightlightning"
15568 "email":
"sidazhang89@gmail.com",
15569 "name":
"sidazhang"
15572 "email":
"npm@shesek.info",
15576 "email":
"jprichardson@gmail.com",
15577 "name":
"jprichardson"
15581 "optionalDependencies": {},
15582 "readme":
"ERROR: No README data found!",
15585 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15588 "browser-test":
"mochify --wd -R spec",
15589 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15590 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15591 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15592 "test":
"_mocha -- test/*.js",
15600 "safari/6.0..latest",
15601 "iphone/6.0..latest",
15602 "android-browser/4.2..latest"
15604 "files":
"test/*.js",
15610 },{}],
39:[function(require,module,exports){
15611 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15612 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15613 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15615 var Buffer = require('safe-buffer').Buffer
15617 function check (buffer) {
15618 if (buffer.length <
8) return false
15619 if (buffer.length
> 72) return false
15620 if (buffer[
0] !==
0x30) return false
15621 if (buffer[
1] !== buffer.length -
2) return false
15622 if (buffer[
2] !==
0x02) return false
15624 var lenR = buffer[
3]
15625 if (lenR ===
0) return false
15626 if (
5 + lenR
>= buffer.length) return false
15627 if (buffer[
4 + lenR] !==
0x02) return false
15629 var lenS = buffer[
5 + lenR]
15630 if (lenS ===
0) return false
15631 if ((
6 + lenR + lenS) !== buffer.length) return false
15633 if (buffer[
4] &
0x80) return false
15634 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15636 if (buffer[lenR +
6] &
0x80) return false
15637 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15641 function decode (buffer) {
15642 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15643 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15644 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15645 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15646 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15648 var lenR = buffer[
3]
15649 if (lenR ===
0) throw new Error('R length is zero')
15650 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15651 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15653 var lenS = buffer[
5 + lenR]
15654 if (lenS ===
0) throw new Error('S length is zero')
15655 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15657 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15658 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15660 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15661 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15663 // non-BIP66 - extract R, S values
15665 r: buffer.slice(
4,
4 + lenR),
15666 s: buffer.slice(
6 + lenR)
15671 * Expects r and s to be positive DER integers.
15673 * The DER format uses the most significant bit as a sign bit (&
0x80).
15674 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15689 *
62300 =
> 0x00f35c
15690 * -
62300 =
> 0xff0ca4
15692 function encode (r, s) {
15693 var lenR = r.length
15694 var lenS = s.length
15695 if (lenR ===
0) throw new Error('R length is zero')
15696 if (lenS ===
0) throw new Error('S length is zero')
15697 if (lenR
> 33) throw new Error('R length is too long')
15698 if (lenS
> 33) throw new Error('S length is too long')
15699 if (r[
0] &
0x80) throw new Error('R value is negative')
15700 if (s[
0] &
0x80) throw new Error('S value is negative')
15701 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15702 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15704 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15706 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15707 signature[
0] =
0x30
15708 signature[
1] = signature.length -
2
15709 signature[
2] =
0x02
15710 signature[
3] = r.length
15711 r.copy(signature,
4)
15712 signature[
4 + lenR] =
0x02
15713 signature[
5 + lenR] = s.length
15714 s.copy(signature,
6 + lenR)
15725 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15729 "OP_PUSHDATA1":
76,
15730 "OP_PUSHDATA2":
77,
15731 "OP_PUSHDATA4":
78,
15757 "OP_VERNOTIF":
102,
15763 "OP_TOALTSTACK":
107,
15764 "OP_FROMALTSTACK":
108,
15794 "OP_EQUALVERIFY":
136,
15795 "OP_RESERVED1":
137,
15796 "OP_RESERVED2":
138,
15805 "OP_0NOTEQUAL":
146,
15816 "OP_NUMEQUAL":
156,
15817 "OP_NUMEQUALVERIFY":
157,
15818 "OP_NUMNOTEQUAL":
158,
15819 "OP_LESSTHAN":
159,
15820 "OP_GREATERTHAN":
160,
15821 "OP_LESSTHANOREQUAL":
161,
15822 "OP_GREATERTHANOREQUAL":
162,
15828 "OP_RIPEMD160":
166,
15833 "OP_CODESEPARATOR":
171,
15834 "OP_CHECKSIG":
172,
15835 "OP_CHECKSIGVERIFY":
173,
15836 "OP_CHECKMULTISIG":
174,
15837 "OP_CHECKMULTISIGVERIFY":
175,
15841 "OP_CHECKLOCKTIMEVERIFY":
177,
15852 "OP_PUBKEYHASH":
253,
15854 "OP_INVALIDOPCODE":
255
15857 },{}],
41:[function(require,module,exports){
15858 var OPS = require('./index.json')
15861 for (var op in OPS) {
15866 module.exports = map
15868 },{
"./index.json":
40}],
42:[function(require,module,exports){
15869 var Buffer = require('safe-buffer').Buffer
15870 var bs58check = require('bs58check')
15871 var bscript = require('./script')
15872 var networks = require('./networks')
15873 var typeforce = require('typeforce')
15874 var types = require('./types')
15876 function fromBase58Check (address) {
15877 var payload = bs58check.decode(address)
15878 if (payload.length <
21) throw new TypeError(address + ' is too short')
15879 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15881 var version = payload.readUInt8(
0)
15882 var hash = payload.slice(
1)
15884 return { hash: hash, version: version }
15887 function toBase58Check (hash, version) {
15888 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15890 var payload = Buffer.allocUnsafe(
21)
15891 payload.writeUInt8(version,
0)
15892 hash.copy(payload,
1)
15894 return bs58check.encode(payload)
15897 function fromOutputScript (outputScript, network) {
15898 network = network || networks.bitcoin
15900 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15901 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15903 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15906 function toOutputScript (address, network) {
15907 network = network || networks.bitcoin
15909 var decode = fromBase58Check(address)
15910 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15911 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15913 throw new Error(address + ' has no matching Script')
15917 fromBase58Check: fromBase58Check,
15918 fromOutputScript: fromOutputScript,
15919 toBase58Check: toBase58Check,
15920 toOutputScript: toOutputScript
15923 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15924 var Buffer = require('safe-buffer').Buffer
15925 var bcrypto = require('./crypto')
15926 var fastMerkleRoot = require('merkle-lib/fastRoot')
15927 var typeforce = require('typeforce')
15928 var types = require('./types')
15929 var varuint = require('varuint-bitcoin')
15931 var Transaction = require('./transaction')
15933 function Block () {
15935 this.prevHash = null
15936 this.merkleRoot = null
15942 Block.fromBuffer = function (buffer) {
15943 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15946 function readSlice (n) {
15948 return buffer.slice(offset - n, offset)
15951 function readUInt32 () {
15952 var i = buffer.readUInt32LE(offset)
15957 function readInt32 () {
15958 var i = buffer.readInt32LE(offset)
15963 var block = new Block()
15964 block.version = readInt32()
15965 block.prevHash = readSlice(
32)
15966 block.merkleRoot = readSlice(
32)
15967 block.timestamp = readUInt32()
15968 block.bits = readUInt32()
15969 block.nonce = readUInt32()
15971 if (buffer.length ===
80) return block
15973 function readVarInt () {
15974 var vi = varuint.decode(buffer, offset)
15975 offset += varuint.decode.bytes
15979 function readTransaction () {
15980 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
15981 offset += tx.byteLength()
15985 var nTransactions = readVarInt()
15986 block.transactions = []
15988 for (var i =
0; i < nTransactions; ++i) {
15989 var tx = readTransaction()
15990 block.transactions.push(tx)
15996 Block.prototype.byteLength = function (headersOnly) {
15997 if (headersOnly || !this.transactions) return
80
15999 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16000 return a + x.byteLength()
16004 Block.fromHex = function (hex) {
16005 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16008 Block.prototype.getHash = function () {
16009 return bcrypto.hash256(this.toBuffer(true))
16012 Block.prototype.getId = function () {
16013 return this.getHash().reverse().toString('hex')
16016 Block.prototype.getUTCDate = function () {
16017 var date = new Date(
0) // epoch
16018 date.setUTCSeconds(this.timestamp)
16023 // TODO: buffer, offset compatibility
16024 Block.prototype.toBuffer = function (headersOnly) {
16025 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16028 function writeSlice (slice) {
16029 slice.copy(buffer, offset)
16030 offset += slice.length
16033 function writeInt32 (i) {
16034 buffer.writeInt32LE(i, offset)
16037 function writeUInt32 (i) {
16038 buffer.writeUInt32LE(i, offset)
16042 writeInt32(this.version)
16043 writeSlice(this.prevHash)
16044 writeSlice(this.merkleRoot)
16045 writeUInt32(this.timestamp)
16046 writeUInt32(this.bits)
16047 writeUInt32(this.nonce)
16049 if (headersOnly || !this.transactions) return buffer
16051 varuint.encode(this.transactions.length, buffer, offset)
16052 offset += varuint.encode.bytes
16054 this.transactions.forEach(function (tx) {
16055 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16056 tx.toBuffer(buffer, offset)
16063 Block.prototype.toHex = function (headersOnly) {
16064 return this.toBuffer(headersOnly).toString('hex')
16067 Block.calculateTarget = function (bits) {
16068 var exponent = ((bits &
0xff000000)
>> 24) -
3
16069 var mantissa = bits &
0x007fffff
16070 var target = Buffer.alloc(
32,
0)
16071 target.writeUInt32BE(mantissa,
28 - exponent)
16075 Block.calculateMerkleRoot = function (transactions) {
16076 typeforce([{ getHash: types.Function }], transactions)
16077 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16079 var hashes = transactions.map(function (transaction) {
16080 return transaction.getHash()
16083 return fastMerkleRoot(hashes, bcrypto.hash256)
16086 Block.prototype.checkMerkleRoot = function () {
16087 if (!this.transactions) return false
16089 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16090 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16093 Block.prototype.checkProofOfWork = function () {
16094 var hash = this.getHash().reverse()
16095 var target = Block.calculateTarget(this.bits)
16097 return hash.compare(target) <=
0
16100 module.exports = Block
16102 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16103 var pushdata = require('pushdata-bitcoin')
16104 var varuint = require('varuint-bitcoin')
16106 // https://github.com/feross/buffer/blob/master/index.js#L1127
16107 function verifuint (value, max) {
16108 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16109 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16110 if (value
> max) throw new Error('RangeError: value out of range')
16111 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16114 function readUInt64LE (buffer, offset) {
16115 var a = buffer.readUInt32LE(offset)
16116 var b = buffer.readUInt32LE(offset +
4)
16119 verifuint(b + a,
0x001fffffffffffff)
16124 function writeUInt64LE (buffer, value, offset) {
16125 verifuint(value,
0x001fffffffffffff)
16127 buffer.writeInt32LE(value & -
1, offset)
16128 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16132 // TODO: remove in
4.0.0?
16133 function readVarInt (buffer, offset) {
16134 var result = varuint.decode(buffer, offset)
16138 size: varuint.decode.bytes
16142 // TODO: remove in
4.0.0?
16143 function writeVarInt (buffer, number, offset) {
16144 varuint.encode(number, buffer, offset)
16145 return varuint.encode.bytes
16149 pushDataSize: pushdata.encodingLength,
16150 readPushDataInt: pushdata.decode,
16151 readUInt64LE: readUInt64LE,
16152 readVarInt: readVarInt,
16153 varIntBuffer: varuint.encode,
16154 varIntSize: varuint.encodingLength,
16155 writePushDataInt: pushdata.encode,
16156 writeUInt64LE: writeUInt64LE,
16157 writeVarInt: writeVarInt
16160 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16161 var createHash = require('create-hash')
16163 function ripemd160 (buffer) {
16164 return createHash('rmd160').update(buffer).digest()
16167 function sha1 (buffer) {
16168 return createHash('sha1').update(buffer).digest()
16171 function sha256 (buffer) {
16172 return createHash('sha256').update(buffer).digest()
16175 function hash160 (buffer) {
16176 return ripemd160(sha256(buffer))
16179 function hash256 (buffer) {
16180 return sha256(sha256(buffer))
16186 ripemd160: ripemd160,
16191 },{"create-hash":
82}],
46:[function(require,module,exports){
16192 var Buffer = require('safe-buffer').Buffer
16193 var createHmac = require('create-hmac')
16194 var typeforce = require('typeforce')
16195 var types = require('./types')
16197 var BigInteger = require('bigi')
16198 var ECSignature = require('./ecsignature')
16200 var ZERO = Buffer.alloc(
1,
0)
16201 var ONE = Buffer.alloc(
1,
1)
16203 var ecurve = require('ecurve')
16204 var secp256k1 = ecurve.getCurveByName('secp256k1')
16206 // https://tools.ietf.org/html/rfc6979#section-
3.2
16207 function deterministicGenerateK (hash, x, checkSig) {
16208 typeforce(types.tuple(
16210 types.Buffer256bit,
16214 // Step A, ignored as hash already provided
16217 var k = Buffer.alloc(
32,
0)
16218 var v = Buffer.alloc(
32,
1)
16221 k = createHmac('sha256', k)
16229 v = createHmac('sha256', k).update(v).digest()
16232 k = createHmac('sha256', k)
16240 v = createHmac('sha256', k).update(v).digest()
16242 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16244 v = createHmac('sha256', k).update(v).digest()
16246 var T = BigInteger.fromBuffer(v)
16248 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16249 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16250 k = createHmac('sha256', k)
16255 v = createHmac('sha256', k).update(v).digest()
16257 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16259 v = createHmac('sha256', k).update(v).digest()
16260 T = BigInteger.fromBuffer(v)
16266 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16268 function sign (hash, d) {
16269 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16271 var x = d.toBuffer(
32)
16272 var e = BigInteger.fromBuffer(hash)
16273 var n = secp256k1.n
16274 var G = secp256k1.G
16277 deterministicGenerateK(hash, x, function (k) {
16278 var Q = G.multiply(k)
16280 if (secp256k1.isInfinity(Q)) return false
16282 r = Q.affineX.mod(n)
16283 if (r.signum() ===
0) return false
16285 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16286 if (s.signum() ===
0) return false
16291 // enforce low S values, see bip62: 'low s values in signatures'
16292 if (s.compareTo(N_OVER_TWO)
> 0) {
16296 return new ECSignature(r, s)
16299 function verify (hash, signature, Q) {
16300 typeforce(types.tuple(
16306 var n = secp256k1.n
16307 var G = secp256k1.G
16309 var r = signature.r
16310 var s = signature.s
16312 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16313 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16314 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16316 //
1.4.2 H = Hash(M), already done by the user
16318 var e = BigInteger.fromBuffer(hash)
16321 var sInv = s.modInverse(n)
16323 //
1.4.4 Compute u1 = es^−
1 mod n
16324 // u2 = rs^−
1 mod n
16325 var u1 = e.multiply(sInv).mod(n)
16326 var u2 = r.multiply(sInv).mod(n)
16328 //
1.4.5 Compute R = (xR, yR)
16330 var R = G.multiplyTwo(u1, Q, u2)
16332 //
1.4.5 (cont.) Enforce R is not at infinity
16333 if (secp256k1.isInfinity(R)) return false
16335 //
1.4.6 Convert the field element R.x to an integer
16338 //
1.4.7 Set v = xR mod n
16341 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16346 deterministicGenerateK: deterministicGenerateK,
16354 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16355 var baddress = require('./address')
16356 var bcrypto = require('./crypto')
16357 var ecdsa = require('./ecdsa')
16358 var randomBytes = require('randombytes')
16359 var typeforce = require('typeforce')
16360 var types = require('./types')
16361 var wif = require('wif')
16363 var NETWORKS = require('./networks')
16364 var BigInteger = require('bigi')
16366 var ecurve = require('ecurve')
16367 var secp256k1 = ecdsa.__curve
16369 function ECPair (d, Q, options) {
16372 compressed: types.maybe(types.Boolean),
16373 network: types.maybe(types.Network)
16377 options = options || {}
16380 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16381 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16382 if (Q) throw new TypeError('Unexpected publicKey parameter')
16386 typeforce(types.ECPoint, Q)
16391 this.compressed = options.compressed === undefined ? true : options.compressed
16392 this.network = options.network || NETWORKS.bitcoin
16395 Object.defineProperty(ECPair.prototype, 'Q', {
16397 if (!this.__Q && this.d) {
16398 this.__Q = secp256k1.G.multiply(this.d)
16405 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16406 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16408 return new ECPair(null, Q, {
16409 compressed: Q.compressed,
16414 ECPair.fromWIF = function (string, network) {
16415 var decoded = wif.decode(string)
16416 var version = decoded.version
16418 // list of networks?
16419 if (types.Array(network)) {
16420 network = network.filter(function (x) {
16421 return version === x.wif
16424 if (!network) throw new Error('Unknown network version')
16426 // otherwise, assume a network object (or default to bitcoin)
16428 network = network || NETWORKS.bitcoin
16430 if (version !== network.wif) throw new Error('Invalid network version')
16433 var d = BigInteger.fromBuffer(decoded.privateKey)
16435 return new ECPair(d, null, {
16436 compressed: decoded.compressed,
16441 ECPair.makeRandom = function (options) {
16442 options = options || {}
16444 var rng = options.rng || randomBytes
16448 var buffer = rng(
32)
16449 typeforce(types.Buffer256bit, buffer)
16451 d = BigInteger.fromBuffer(buffer)
16452 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16454 return new ECPair(d, null, options)
16457 ECPair.prototype.getAddress = function () {
16458 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16461 ECPair.prototype.getNetwork = function () {
16462 return this.network
16465 ECPair.prototype.getPublicKeyBuffer = function () {
16466 return this.Q.getEncoded(this.compressed)
16469 ECPair.prototype.sign = function (hash) {
16470 if (!this.d) throw new Error('Missing private key')
16472 return ecdsa.sign(hash, this.d)
16475 ECPair.prototype.toWIF = function () {
16476 if (!this.d) throw new Error('Missing private key')
16478 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16481 ECPair.prototype.verify = function (hash, signature) {
16482 return ecdsa.verify(hash, signature, this.Q)
16485 module.exports = ECPair
16487 },{"./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){
16488 (function (Buffer){
16489 var bip66 = require('bip66')
16490 var typeforce = require('typeforce')
16491 var types = require('./types')
16493 var BigInteger = require('bigi')
16495 function ECSignature (r, s) {
16496 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16502 ECSignature.parseCompact = function (buffer) {
16503 if (buffer.length !==
65) throw new Error('Invalid signature length')
16505 var flagByte = buffer.readUInt8(
0) -
27
16506 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16508 var compressed = !!(flagByte &
4)
16509 var recoveryParam = flagByte &
3
16511 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16512 var s = BigInteger.fromBuffer(buffer.slice(
33))
16515 compressed: compressed,
16517 signature: new ECSignature(r, s)
16521 ECSignature.fromDER = function (buffer) {
16522 var decode = bip66.decode(buffer)
16523 var r = BigInteger.fromDERInteger(decode.r)
16524 var s = BigInteger.fromDERInteger(decode.s)
16526 return new ECSignature(r, s)
16529 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16530 ECSignature.parseScriptSignature = function (buffer) {
16531 var hashType = buffer.readUInt8(buffer.length -
1)
16532 var hashTypeMod = hashType & ~
0x80
16534 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16537 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16542 ECSignature.prototype.toCompact = function (i, compressed) {
16549 var buffer = Buffer.alloc(
65)
16550 buffer.writeUInt8(i,
0)
16551 this.r.toBuffer(
32).copy(buffer,
1)
16552 this.s.toBuffer(
32).copy(buffer,
33)
16557 ECSignature.prototype.toDER = function () {
16558 var r = Buffer.from(this.r.toDERInteger())
16559 var s = Buffer.from(this.s.toDERInteger())
16561 return bip66.encode(r, s)
16564 ECSignature.prototype.toScriptSignature = function (hashType) {
16565 var hashTypeMod = hashType & ~
0x80
16566 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16568 var hashTypeBuffer = Buffer.alloc(
1)
16569 hashTypeBuffer.writeUInt8(hashType,
0)
16571 return Buffer.concat([this.toDER(), hashTypeBuffer])
16574 module.exports = ECSignature
16576 }).call(this,require("buffer").Buffer)
16577 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16578 var Buffer = require('safe-buffer').Buffer
16579 var base58check = require('bs58check')
16580 var bcrypto = require('./crypto')
16581 var createHmac = require('create-hmac')
16582 var typeforce = require('typeforce')
16583 var types = require('./types')
16584 var NETWORKS = require('./networks')
16586 var BigInteger = require('bigi')
16587 var ECPair = require('./ecpair')
16589 var ecurve = require('ecurve')
16590 var curve = ecurve.getCurveByName('secp256k1')
16592 function HDNode (keyPair, chainCode) {
16593 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16595 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16597 this.keyPair = keyPair
16598 this.chainCode = chainCode
16601 this.parentFingerprint =
0x00000000
16604 HDNode.HIGHEST_BIT =
0x80000000
16606 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16608 HDNode.fromSeedBuffer = function (seed, network) {
16609 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16611 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16612 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16614 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16615 var IL = I.slice(
0,
32)
16616 var IR = I.slice(
32)
16618 // In case IL is
0 or
>= n, the master key is invalid
16619 // This is handled by the ECPair constructor
16620 var pIL = BigInteger.fromBuffer(IL)
16621 var keyPair = new ECPair(pIL, null, {
16625 return new HDNode(keyPair, IR)
16628 HDNode.fromSeedHex = function (hex, network) {
16629 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16632 HDNode.fromBase58 = function (string, networks) {
16633 var buffer = base58check.decode(string)
16634 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16636 //
4 bytes: version bytes
16637 var version = buffer.readUInt32BE(
0)
16640 // list of networks?
16641 if (Array.isArray(networks)) {
16642 network = networks.filter(function (x) {
16643 return version === x.bip32.private ||
16644 version === x.bip32.public
16647 if (!network) throw new Error('Unknown network version')
16649 // otherwise, assume a network object (or default to bitcoin)
16651 network = networks || NETWORKS.bitcoin
16654 if (version !== network.bip32.private &&
16655 version !== network.bip32.public) throw new Error('Invalid network version')
16657 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16658 var depth = buffer[
4]
16660 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16661 var parentFingerprint = buffer.readUInt32BE(
5)
16663 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16666 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16667 // This is encoded in MSB order. (
0x00000000 if master key)
16668 var index = buffer.readUInt32BE(
9)
16669 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16671 //
32 bytes: the chain code
16672 var chainCode = buffer.slice(
13,
45)
16675 //
33 bytes: private key data (
0x00 + k)
16676 if (version === network.bip32.private) {
16677 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16679 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16680 keyPair = new ECPair(d, null, { network: network })
16682 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16684 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16685 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16687 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16688 // If not, the extended public key is invalid.
16691 keyPair = new ECPair(null, Q, { network: network })
16694 var hd = new HDNode(keyPair, chainCode)
16697 hd.parentFingerprint = parentFingerprint
16702 HDNode.prototype.getAddress = function () {
16703 return this.keyPair.getAddress()
16706 HDNode.prototype.getIdentifier = function () {
16707 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16710 HDNode.prototype.getFingerprint = function () {
16711 return this.getIdentifier().slice(
0,
4)
16714 HDNode.prototype.getNetwork = function () {
16715 return this.keyPair.getNetwork()
16718 HDNode.prototype.getPublicKeyBuffer = function () {
16719 return this.keyPair.getPublicKeyBuffer()
16722 HDNode.prototype.neutered = function () {
16723 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16724 network: this.keyPair.network
16727 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16728 neutered.depth = this.depth
16729 neutered.index = this.index
16730 neutered.parentFingerprint = this.parentFingerprint
16735 HDNode.prototype.sign = function (hash) {
16736 return this.keyPair.sign(hash)
16739 HDNode.prototype.verify = function (hash, signature) {
16740 return this.keyPair.verify(hash, signature)
16743 HDNode.prototype.toBase58 = function (__isPrivate) {
16744 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16747 var network = this.keyPair.network
16748 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16749 var buffer = Buffer.allocUnsafe(
78)
16751 //
4 bytes: version bytes
16752 buffer.writeUInt32BE(version,
0)
16754 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16755 buffer.writeUInt8(this.depth,
4)
16757 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16758 buffer.writeUInt32BE(this.parentFingerprint,
5)
16760 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16761 // This is encoded in big endian. (
0x00000000 if master key)
16762 buffer.writeUInt32BE(this.index,
9)
16764 //
32 bytes: the chain code
16765 this.chainCode.copy(buffer,
13)
16767 //
33 bytes: the public key or private key data
16768 if (!this.isNeutered()) {
16769 //
0x00 + k for private keys
16770 buffer.writeUInt8(
0,
45)
16771 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16773 //
33 bytes: the public key
16775 // X9.62 encoding for public keys
16776 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16779 return base58check.encode(buffer)
16782 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16783 HDNode.prototype.derive = function (index) {
16784 typeforce(types.UInt32, index)
16786 var isHardened = index
>= HDNode.HIGHEST_BIT
16787 var data = Buffer.allocUnsafe(
37)
16791 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16793 // data =
0x00 || ser256(kpar) || ser32(index)
16795 this.keyPair.d.toBuffer(
32).copy(data,
1)
16796 data.writeUInt32BE(index,
33)
16800 // data = serP(point(kpar)) || ser32(index)
16801 // = serP(Kpar) || ser32(index)
16802 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16803 data.writeUInt32BE(index,
33)
16806 var I = createHmac('sha512', this.chainCode).update(data).digest()
16807 var IL = I.slice(
0,
32)
16808 var IR = I.slice(
32)
16810 var pIL = BigInteger.fromBuffer(IL)
16812 // In case parse256(IL)
>= n, proceed with the next value for i
16813 if (pIL.compareTo(curve.n)
>=
0) {
16814 return this.derive(index +
1)
16817 // Private parent key -
> private child key
16819 if (!this.isNeutered()) {
16820 // ki = parse256(IL) + kpar (mod n)
16821 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16823 // In case ki ==
0, proceed with the next value for i
16824 if (ki.signum() ===
0) {
16825 return this.derive(index +
1)
16828 derivedKeyPair = new ECPair(ki, null, {
16829 network: this.keyPair.network
16832 // Public parent key -
> public child key
16834 // Ki = point(parse256(IL)) + Kpar
16836 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16838 // In case Ki is the point at infinity, proceed with the next value for i
16839 if (curve.isInfinity(Ki)) {
16840 return this.derive(index +
1)
16843 derivedKeyPair = new ECPair(null, Ki, {
16844 network: this.keyPair.network
16848 var hd = new HDNode(derivedKeyPair, IR)
16849 hd.depth = this.depth +
1
16851 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16856 HDNode.prototype.deriveHardened = function (index) {
16857 typeforce(types.UInt31, index)
16859 // Only derives hardened private keys by default
16860 return this.derive(index + HDNode.HIGHEST_BIT)
16863 // Private === not neutered
16864 // Public === neutered
16865 HDNode.prototype.isNeutered = function () {
16866 return !(this.keyPair.d)
16869 HDNode.prototype.derivePath = function (path) {
16870 typeforce(types.BIP32Path, path)
16872 var splitPath = path.split('/')
16873 if (splitPath[
0] === 'm') {
16874 if (this.parentFingerprint) {
16875 throw new Error('Not a master node')
16878 splitPath = splitPath.slice(
1)
16881 return splitPath.reduce(function (prevHd, indexStr) {
16883 if (indexStr.slice(-
1) === "'") {
16884 index = parseInt(indexStr.slice(
0, -
1),
10)
16885 return prevHd.deriveHardened(index)
16887 index = parseInt(indexStr,
10)
16888 return prevHd.derive(index)
16893 module.exports = HDNode
16895 },{"./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){
16897 Block: require('./block'),
16898 ECPair: require('./ecpair'),
16899 ECSignature: require('./ecsignature'),
16900 HDNode: require('./hdnode'),
16901 Transaction: require('./transaction'),
16902 TransactionBuilder: require('./transaction_builder'),
16904 address: require('./address'),
16905 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16906 crypto: require('./crypto'),
16907 networks: require('./networks'),
16908 opcodes: require('bitcoin-ops'),
16909 script: require('./script')
16912 },{"./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){
16913 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16914 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16918 messagePrefix: '\x18Bitcoin Signed Message:\n',
16920 public:
0x0488b21e,
16921 private:
0x0488ade4
16928 messagePrefix: '\x18Bitcoin Signed Message:\n',
16930 public:
0x043587cf,
16931 private:
0x04358394
16938 messagePrefix: '\x19Litecoin Signed Message:\n',
16940 public:
0x0488b21e,
16941 private:
0x0488ade4,
16948 messagePrefix: '\x19Litecoin Signed Message:\n',
16950 public:
0x019da462,
16951 private:
0x019d9cfe
16959 },{}],
52:[function(require,module,exports){
16960 var Buffer = require('safe-buffer').Buffer
16961 var bip66 = require('bip66')
16962 var pushdata = require('pushdata-bitcoin')
16963 var typeforce = require('typeforce')
16964 var types = require('./types')
16965 var scriptNumber = require('./script_number')
16967 var OPS = require('bitcoin-ops')
16968 var REVERSE_OPS = require('bitcoin-ops/map')
16969 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
16971 function isOPInt (value) {
16972 return types.Number(value) &&
16973 ((value === OPS.OP_0) ||
16974 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
16975 (value === OPS.OP_1NEGATE))
16978 function isPushOnlyChunk (value) {
16979 return types.Buffer(value) || isOPInt(value)
16982 function isPushOnly (value) {
16983 return types.Array(value) && value.every(isPushOnlyChunk)
16986 function compile (chunks) {
16988 if (Buffer.isBuffer(chunks)) return chunks
16990 typeforce(types.Array, chunks)
16992 var bufferSize = chunks.reduce(function (accum, chunk) {
16994 if (Buffer.isBuffer(chunk)) {
16995 // adhere to BIP62.3, minimal push policy
16996 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17000 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17007 var buffer = Buffer.allocUnsafe(bufferSize)
17010 chunks.forEach(function (chunk) {
17012 if (Buffer.isBuffer(chunk)) {
17013 // adhere to BIP62.3, minimal push policy
17014 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17015 var opcode = OP_INT_BASE + chunk[
0]
17016 buffer.writeUInt8(opcode, offset)
17021 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17022 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17027 offset += pushdata.encode(buffer, chunk.length, offset)
17029 chunk.copy(buffer, offset)
17030 offset += chunk.length
17034 buffer.writeUInt8(chunk, offset)
17039 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17043 function decompile (buffer) {
17045 if (types.Array(buffer)) return buffer
17047 typeforce(types.Buffer, buffer)
17052 while (i < buffer.length) {
17053 var opcode = buffer[i]
17056 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17057 var d = pushdata.decode(buffer, i)
17059 // did reading a pushDataInt fail? empty script
17060 if (d === null) return []
17063 // attempt to read too much data? empty script
17064 if (i + d.number
> buffer.length) return []
17066 var data = buffer.slice(i, i + d.number)
17073 chunks.push(opcode)
17082 function toASM (chunks) {
17083 if (Buffer.isBuffer(chunks)) {
17084 chunks = decompile(chunks)
17087 return chunks.map(function (chunk) {
17089 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17092 return REVERSE_OPS[chunk]
17096 function fromASM (asm) {
17097 typeforce(types.String, asm)
17099 return compile(asm.split(' ').map(function (chunkStr) {
17101 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17102 typeforce(types.Hex, chunkStr)
17105 return Buffer.from(chunkStr, 'hex')
17109 function toStack (chunks) {
17110 chunks = decompile(chunks)
17111 typeforce(isPushOnly, chunks)
17113 return chunks.map(function (op) {
17114 if (Buffer.isBuffer(op)) return op
17115 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17117 return scriptNumber.encode(op - OP_INT_BASE)
17121 function isCanonicalPubKey (buffer) {
17122 if (!Buffer.isBuffer(buffer)) return false
17123 if (buffer.length <
33) return false
17125 switch (buffer[
0]) {
17128 return buffer.length ===
33
17130 return buffer.length ===
65
17136 function isDefinedHashType (hashType) {
17137 var hashTypeMod = hashType & ~
0x80
17139 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17140 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17143 function isCanonicalSignature (buffer) {
17144 if (!Buffer.isBuffer(buffer)) return false
17145 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17147 return bip66.check(buffer.slice(
0, -
1))
17152 decompile: decompile,
17157 number: require('./script_number'),
17159 isCanonicalPubKey: isCanonicalPubKey,
17160 isCanonicalSignature: isCanonicalSignature,
17161 isPushOnly: isPushOnly,
17162 isDefinedHashType: isDefinedHashType
17165 var templates = require('./templates')
17166 for (var key in templates) {
17167 module.exports[key] = templates[key]
17170 },{
"./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){
17171 var Buffer = require('safe-buffer').Buffer
17173 function decode (buffer, maxLength, minimal) {
17174 maxLength = maxLength ||
4
17175 minimal = minimal === undefined ? true : minimal
17177 var length = buffer.length
17178 if (length ===
0) return
0
17179 if (length
> maxLength) throw new TypeError('Script number overflow')
17181 if ((buffer[length -
1] &
0x7f) ===
0) {
17182 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17187 if (length ===
5) {
17188 var a = buffer.readUInt32LE(
0)
17189 var b = buffer.readUInt8(
4)
17191 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17192 return (b *
0x100000000) + a
17197 //
32-bit /
24-bit /
16-bit /
8-bit
17198 for (var i =
0; i < length; ++i) {
17199 result |= buffer[i] << (
8 * i)
17202 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17206 function scriptNumSize (i) {
17207 return i
> 0x7fffffff ?
5
17215 function encode (number) {
17216 var value = Math.abs(number)
17217 var size = scriptNumSize(value)
17218 var buffer = Buffer.allocUnsafe(size)
17219 var negative = number <
0
17221 for (var i =
0; i < size; ++i) {
17222 buffer.writeUInt8(value &
0xff, i)
17226 if (buffer[size -
1] &
0x80) {
17227 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17228 } else if (negative) {
17229 buffer[size -
1] |=
0x80
17240 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17241 var decompile = require('../script').decompile
17242 var multisig = require('./multisig')
17243 var nullData = require('./nulldata')
17244 var pubKey = require('./pubkey')
17245 var pubKeyHash = require('./pubkeyhash')
17246 var scriptHash = require('./scripthash')
17247 var witnessPubKeyHash = require('./witnesspubkeyhash')
17248 var witnessScriptHash = require('./witnessscripthash')
17249 var witnessCommitment = require('./witnesscommitment')
17252 MULTISIG: 'multisig',
17253 NONSTANDARD: 'nonstandard',
17254 NULLDATA: 'nulldata',
17256 P2PKH: 'pubkeyhash',
17257 P2SH: 'scripthash',
17258 P2WPKH: 'witnesspubkeyhash',
17259 P2WSH: 'witnessscripthash',
17260 WITNESS_COMMITMENT: 'witnesscommitment'
17263 function classifyOutput (script) {
17264 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17265 if (witnessScriptHash.output.check(script)) return types.P2WSH
17266 if (pubKeyHash.output.check(script)) return types.P2PKH
17267 if (scriptHash.output.check(script)) return types.P2SH
17269 // XXX: optimization, below functions .decompile before use
17270 var chunks = decompile(script)
17271 if (multisig.output.check(chunks)) return types.MULTISIG
17272 if (pubKey.output.check(chunks)) return types.P2PK
17273 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17274 if (nullData.output.check(chunks)) return types.NULLDATA
17276 return types.NONSTANDARD
17279 function classifyInput (script, allowIncomplete) {
17280 // XXX: optimization, below functions .decompile before use
17281 var chunks = decompile(script)
17283 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17284 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17285 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17286 if (pubKey.input.check(chunks)) return types.P2PK
17288 return types.NONSTANDARD
17291 function classifyWitness (script, allowIncomplete) {
17292 // XXX: optimization, below functions .decompile before use
17293 var chunks = decompile(script)
17295 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17296 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17298 return types.NONSTANDARD
17302 classifyInput: classifyInput,
17303 classifyOutput: classifyOutput,
17304 classifyWitness: classifyWitness,
17305 multisig: multisig,
17306 nullData: nullData,
17308 pubKeyHash: pubKeyHash,
17309 scriptHash: scriptHash,
17310 witnessPubKeyHash: witnessPubKeyHash,
17311 witnessScriptHash: witnessScriptHash,
17312 witnessCommitment: witnessCommitment,
17316 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17318 input: require('./input'),
17319 output: require('./output')
17322 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17323 // OP_0 [signatures ...]
17325 var Buffer = require('safe-buffer').Buffer
17326 var bscript = require('../../script')
17327 var typeforce = require('typeforce')
17328 var OPS = require('bitcoin-ops')
17330 function partialSignature (value) {
17331 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17334 function check (script, allowIncomplete) {
17335 var chunks = bscript.decompile(script)
17336 if (chunks.length <
2) return false
17337 if (chunks[
0] !== OPS.OP_0) return false
17339 if (allowIncomplete) {
17340 return chunks.slice(
1).every(partialSignature)
17343 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17345 check.toJSON = function () { return 'multisig input' }
17347 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17349 function encodeStack (signatures, scriptPubKey) {
17350 typeforce([partialSignature], signatures)
17352 if (scriptPubKey) {
17353 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17355 if (signatures.length < scriptData.m) {
17356 throw new TypeError('Not enough signatures provided')
17359 if (signatures.length
> scriptData.pubKeys.length) {
17360 throw new TypeError('Too many signatures provided')
17364 return [].concat(EMPTY_BUFFER, signatures)
17367 function encode (signatures, scriptPubKey) {
17368 return bscript.compile(encodeStack(signatures, scriptPubKey))
17371 function decodeStack (stack, allowIncomplete) {
17372 typeforce(check, stack, allowIncomplete)
17373 return stack.slice(
1)
17376 function decode (buffer, allowIncomplete) {
17377 var stack = bscript.decompile(buffer)
17378 return decodeStack(stack, allowIncomplete)
17384 decodeStack: decodeStack,
17386 encodeStack: encodeStack
17389 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17390 // m [pubKeys ...] n OP_CHECKMULTISIG
17392 var bscript = require('../../script')
17393 var types = require('../../types')
17394 var typeforce = require('typeforce')
17395 var OPS = require('bitcoin-ops')
17396 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17398 function check (script, allowIncomplete) {
17399 var chunks = bscript.decompile(script)
17401 if (chunks.length <
4) return false
17402 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17403 if (!types.Number(chunks[
0])) return false
17404 if (!types.Number(chunks[chunks.length -
2])) return false
17405 var m = chunks[
0] - OP_INT_BASE
17406 var n = chunks[chunks.length -
2] - OP_INT_BASE
17408 if (m <=
0) return false
17409 if (n
> 16) return false
17410 if (m
> n) return false
17411 if (n !== chunks.length -
3) return false
17412 if (allowIncomplete) return true
17414 var keys = chunks.slice(
1, -
2)
17415 return keys.every(bscript.isCanonicalPubKey)
17417 check.toJSON = function () { return 'multi-sig output' }
17419 function encode (m, pubKeys) {
17422 pubKeys: [bscript.isCanonicalPubKey]
17428 var n = pubKeys.length
17429 if (n < m) throw new TypeError('Not enough pubKeys provided')
17431 return bscript.compile([].concat(
17435 OPS.OP_CHECKMULTISIG
17439 function decode (buffer, allowIncomplete) {
17440 var chunks = bscript.decompile(buffer)
17441 typeforce(check, chunks, allowIncomplete)
17444 m: chunks[
0] - OP_INT_BASE,
17445 pubKeys: chunks.slice(
1, -
2)
17455 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17456 // OP_RETURN {data}
17458 var bscript = require('../script')
17459 var types = require('../types')
17460 var typeforce = require('typeforce')
17461 var OPS = require('bitcoin-ops')
17463 function check (script) {
17464 var buffer = bscript.compile(script)
17466 return buffer.length
> 1 &&
17467 buffer[
0] === OPS.OP_RETURN
17469 check.toJSON = function () { return 'null data output' }
17471 function encode (data) {
17472 typeforce(types.Buffer, data)
17474 return bscript.compile([OPS.OP_RETURN, data])
17477 function decode (buffer) {
17478 typeforce(check, buffer)
17480 return buffer.slice(
2)
17491 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17492 arguments[
4][
55][
0].apply(exports,arguments)
17493 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17496 var bscript = require('../../script')
17497 var types = require('../../types')
17498 var typeforce = require('typeforce')
17500 function check (script) {
17501 var chunks = bscript.decompile(script)
17503 return chunks.length ===
1 &&
17504 bscript.isCanonicalSignature(chunks[
0])
17506 check.toJSON = function () { return 'pubKey input' }
17508 function encodeStack (signature) {
17509 typeforce(types.Buffer, signature)
17513 function encode (signature) {
17514 return bscript.compile(encodeStack(signature))
17517 function decodeStack (stack) {
17518 typeforce(check, stack)
17522 function decode (buffer) {
17523 var stack = bscript.decompile(buffer)
17524 return decodeStack(stack)
17530 decodeStack: decodeStack,
17532 encodeStack: encodeStack
17535 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17536 // {pubKey} OP_CHECKSIG
17538 var bscript = require('../../script')
17539 var typeforce = require('typeforce')
17540 var OPS = require('bitcoin-ops')
17542 function check (script) {
17543 var chunks = bscript.decompile(script)
17545 return chunks.length ===
2 &&
17546 bscript.isCanonicalPubKey(chunks[
0]) &&
17547 chunks[
1] === OPS.OP_CHECKSIG
17549 check.toJSON = function () { return 'pubKey output' }
17551 function encode (pubKey) {
17552 typeforce(bscript.isCanonicalPubKey, pubKey)
17554 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17557 function decode (buffer) {
17558 var chunks = bscript.decompile(buffer)
17559 typeforce(check, chunks)
17570 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17571 arguments[
4][
55][
0].apply(exports,arguments)
17572 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17573 // {signature} {pubKey}
17575 var bscript = require('../../script')
17576 var types = require('../../types')
17577 var typeforce = require('typeforce')
17579 function check (script) {
17580 var chunks = bscript.decompile(script)
17582 return chunks.length ===
2 &&
17583 bscript.isCanonicalSignature(chunks[
0]) &&
17584 bscript.isCanonicalPubKey(chunks[
1])
17586 check.toJSON = function () { return 'pubKeyHash input' }
17588 function encodeStack (signature, pubKey) {
17590 signature: types.Buffer, pubKey: types.Buffer
17592 signature: signature, pubKey: pubKey
17595 return [signature, pubKey]
17598 function encode (signature, pubKey) {
17599 return bscript.compile(encodeStack(signature, pubKey))
17602 function decodeStack (stack) {
17603 typeforce(check, stack)
17606 signature: stack[
0],
17611 function decode (buffer) {
17612 var stack = bscript.decompile(buffer)
17613 return decodeStack(stack)
17619 decodeStack: decodeStack,
17621 encodeStack: encodeStack
17624 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17625 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17627 var bscript = require('../../script')
17628 var types = require('../../types')
17629 var typeforce = require('typeforce')
17630 var OPS = require('bitcoin-ops')
17632 function check (script) {
17633 var buffer = bscript.compile(script)
17635 return buffer.length ===
25 &&
17636 buffer[
0] === OPS.OP_DUP &&
17637 buffer[
1] === OPS.OP_HASH160 &&
17638 buffer[
2] ===
0x14 &&
17639 buffer[
23] === OPS.OP_EQUALVERIFY &&
17640 buffer[
24] === OPS.OP_CHECKSIG
17642 check.toJSON = function () { return 'pubKeyHash output' }
17644 function encode (pubKeyHash) {
17645 typeforce(types.Hash160bit, pubKeyHash)
17647 return bscript.compile([
17651 OPS.OP_EQUALVERIFY,
17656 function decode (buffer) {
17657 typeforce(check, buffer)
17659 return buffer.slice(
3,
23)
17668 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17669 arguments[
4][
55][
0].apply(exports,arguments)
17670 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17671 //
<scriptSig> {serialized scriptPubKey script}
17673 var Buffer = require('safe-buffer').Buffer
17674 var bscript = require('../../script')
17675 var typeforce = require('typeforce')
17677 function check (script, allowIncomplete) {
17678 var chunks = bscript.decompile(script)
17679 if (chunks.length <
1) return false
17681 var lastChunk = chunks[chunks.length -
1]
17682 if (!Buffer.isBuffer(lastChunk)) return false
17684 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17685 var redeemScriptChunks = bscript.decompile(lastChunk)
17687 // is redeemScript a valid script?
17688 if (redeemScriptChunks.length ===
0) return false
17690 // is redeemScriptSig push only?
17691 if (!bscript.isPushOnly(scriptSigChunks)) return false
17693 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17694 var outputType = bscript.classifyOutput(redeemScriptChunks)
17695 if (chunks.length ===
1) {
17696 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17698 return inputType === outputType
17700 check.toJSON = function () { return 'scriptHash input' }
17702 function encodeStack (redeemScriptStack, redeemScript) {
17703 var serializedScriptPubKey = bscript.compile(redeemScript)
17705 return [].concat(redeemScriptStack, serializedScriptPubKey)
17708 function encode (redeemScriptSig, redeemScript) {
17709 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17711 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17714 function decodeStack (stack) {
17715 typeforce(check, stack)
17718 redeemScriptStack: stack.slice(
0, -
1),
17719 redeemScript: stack[stack.length -
1]
17723 function decode (buffer) {
17724 var stack = bscript.decompile(buffer)
17725 var result = decodeStack(stack)
17726 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17727 delete result.redeemScriptStack
17734 decodeStack: decodeStack,
17736 encodeStack: encodeStack
17739 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17740 // OP_HASH160 {scriptHash} OP_EQUAL
17742 var bscript = require('../../script')
17743 var types = require('../../types')
17744 var typeforce = require('typeforce')
17745 var OPS = require('bitcoin-ops')
17747 function check (script) {
17748 var buffer = bscript.compile(script)
17750 return buffer.length ===
23 &&
17751 buffer[
0] === OPS.OP_HASH160 &&
17752 buffer[
1] ===
0x14 &&
17753 buffer[
22] === OPS.OP_EQUAL
17755 check.toJSON = function () { return 'scriptHash output' }
17757 function encode (scriptHash) {
17758 typeforce(types.Hash160bit, scriptHash)
17760 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17763 function decode (buffer) {
17764 typeforce(check, buffer)
17766 return buffer.slice(
2,
22)
17775 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17777 output: require('./output')
17780 },{"./output":
69}],
69:[function(require,module,exports){
17781 // OP_RETURN {aa21a9ed} {commitment}
17783 var Buffer = require('safe-buffer').Buffer
17784 var bscript = require('../../script')
17785 var types = require('../../types')
17786 var typeforce = require('typeforce')
17787 var OPS = require('bitcoin-ops')
17789 var HEADER = Buffer.from('aa21a9ed', 'hex')
17791 function check (script) {
17792 var buffer = bscript.compile(script)
17794 return buffer.length
> 37 &&
17795 buffer[
0] === OPS.OP_RETURN &&
17796 buffer[
1] ===
0x24 &&
17797 buffer.slice(
2,
6).equals(HEADER)
17800 check.toJSON = function () { return 'Witness commitment output' }
17802 function encode (commitment) {
17803 typeforce(types.Hash256bit, commitment)
17805 var buffer = Buffer.allocUnsafe(
36)
17806 HEADER.copy(buffer,
0)
17807 commitment.copy(buffer,
4)
17809 return bscript.compile([OPS.OP_RETURN, buffer])
17812 function decode (buffer) {
17813 typeforce(check, buffer)
17815 return bscript.decompile(buffer)[
1].slice(
4,
36)
17824 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17825 arguments[
4][
55][
0].apply(exports,arguments)
17826 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17827 // {signature} {pubKey}
17829 var pkh = require('../pubkeyhash/input')
17833 decodeStack: pkh.decodeStack,
17834 encodeStack: pkh.encodeStack
17837 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17838 // OP_0 {pubKeyHash}
17840 var bscript = require('../../script')
17841 var types = require('../../types')
17842 var typeforce = require('typeforce')
17843 var OPS = require('bitcoin-ops')
17845 function check (script) {
17846 var buffer = bscript.compile(script)
17848 return buffer.length ===
22 &&
17849 buffer[
0] === OPS.OP_0 &&
17852 check.toJSON = function () { return 'Witness pubKeyHash output' }
17854 function encode (pubKeyHash) {
17855 typeforce(types.Hash160bit, pubKeyHash)
17857 return bscript.compile([OPS.OP_0, pubKeyHash])
17860 function decode (buffer) {
17861 typeforce(check, buffer)
17863 return buffer.slice(
2)
17872 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17873 arguments[
4][
55][
0].apply(exports,arguments)
17874 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17875 // {signature} {pubKey}
17877 var p2sh = require('../scripthash/input')
17881 decodeStack: p2sh.decodeStack,
17882 encodeStack: p2sh.encodeStack
17885 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17886 // OP_0 {scriptHash}
17888 var bscript = require('../../script')
17889 var types = require('../../types')
17890 var typeforce = require('typeforce')
17891 var OPS = require('bitcoin-ops')
17893 function check (script) {
17894 var buffer = bscript.compile(script)
17896 return buffer.length ===
34 &&
17897 buffer[
0] === OPS.OP_0 &&
17900 check.toJSON = function () { return 'Witness scriptHash output' }
17902 function encode (scriptHash) {
17903 typeforce(types.Hash256bit, scriptHash)
17905 return bscript.compile([OPS.OP_0, scriptHash])
17908 function decode (buffer) {
17909 typeforce(check, buffer)
17911 return buffer.slice(
2)
17920 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17921 var Buffer = require('safe-buffer').Buffer
17922 var bcrypto = require('./crypto')
17923 var bscript = require('./script')
17924 var bufferutils = require('./bufferutils')
17925 var opcodes = require('bitcoin-ops')
17926 var typeforce = require('typeforce')
17927 var types = require('./types')
17928 var varuint = require('varuint-bitcoin')
17930 function varSliceSize (someScript) {
17931 var length = someScript.length
17933 return varuint.encodingLength(length) + length
17936 function vectorSize (someVector) {
17937 var length = someVector.length
17939 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17940 return sum + varSliceSize(witness)
17944 function Transaction () {
17951 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17952 Transaction.SIGHASH_ALL =
0x01
17953 Transaction.SIGHASH_NONE =
0x02
17954 Transaction.SIGHASH_SINGLE =
0x03
17955 Transaction.SIGHASH_ANYONECANPAY =
0x80
17956 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17957 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17959 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17960 var EMPTY_WITNESS = []
17961 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17962 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17963 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17964 var BLANK_OUTPUT = {
17965 script: EMPTY_SCRIPT,
17966 valueBuffer: VALUE_UINT64_MAX
17969 Transaction.fromBuffer = function (buffer, __noStrict) {
17971 function readSlice (n) {
17973 return buffer.slice(offset - n, offset)
17976 function readUInt32 () {
17977 var i = buffer.readUInt32LE(offset)
17982 function readInt32 () {
17983 var i = buffer.readInt32LE(offset)
17988 function readUInt64 () {
17989 var i = bufferutils.readUInt64LE(buffer, offset)
17994 function readVarInt () {
17995 var vi = varuint.decode(buffer, offset)
17996 offset += varuint.decode.bytes
18000 function readVarSlice () {
18001 return readSlice(readVarInt())
18004 function readVector () {
18005 var count = readVarInt()
18007 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18011 var tx = new Transaction()
18012 tx.version = readInt32()
18014 var marker = buffer.readUInt8(offset)
18015 var flag = buffer.readUInt8(offset +
1)
18017 var hasWitnesses = false
18018 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18019 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18021 hasWitnesses = true
18024 var vinLen = readVarInt()
18025 for (var i =
0; i < vinLen; ++i) {
18027 hash: readSlice(
32),
18028 index: readUInt32(),
18029 script: readVarSlice(),
18030 sequence: readUInt32(),
18031 witness: EMPTY_WITNESS
18035 var voutLen = readVarInt()
18036 for (i =
0; i < voutLen; ++i) {
18038 value: readUInt64(),
18039 script: readVarSlice()
18043 if (hasWitnesses) {
18044 for (i =
0; i < vinLen; ++i) {
18045 tx.ins[i].witness = readVector()
18048 // was this pointless?
18049 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18052 tx.locktime = readUInt32()
18054 if (__noStrict) return tx
18055 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18060 Transaction.fromHex = function (hex) {
18061 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18064 Transaction.isCoinbaseHash = function (buffer) {
18065 typeforce(types.Hash256bit, buffer)
18066 for (var i =
0; i <
32; ++i) {
18067 if (buffer[i] !==
0) return false
18072 Transaction.prototype.isCoinbase = function () {
18073 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18076 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18077 typeforce(types.tuple(
18080 types.maybe(types.UInt32),
18081 types.maybe(types.Buffer)
18084 if (types.Null(sequence)) {
18085 sequence = Transaction.DEFAULT_SEQUENCE
18088 // Add the input and return the input's index
18089 return (this.ins.push({
18092 script: scriptSig || EMPTY_SCRIPT,
18093 sequence: sequence,
18094 witness: EMPTY_WITNESS
18098 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18099 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18101 // Add the output and return the output's index
18102 return (this.outs.push({
18103 script: scriptPubKey,
18108 Transaction.prototype.hasWitnesses = function () {
18109 return this.ins.some(function (x) {
18110 return x.witness.length !==
0
18114 Transaction.prototype.weight = function () {
18115 var base = this.__byteLength(false)
18116 var total = this.__byteLength(true)
18117 return base *
3 + total
18120 Transaction.prototype.virtualSize = function () {
18121 return Math.ceil(this.weight() /
4)
18124 Transaction.prototype.byteLength = function () {
18125 return this.__byteLength(true)
18128 Transaction.prototype.__byteLength = function (__allowWitness) {
18129 var hasWitnesses = __allowWitness && this.hasWitnesses()
18132 (hasWitnesses ?
10 :
8) +
18133 varuint.encodingLength(this.ins.length) +
18134 varuint.encodingLength(this.outs.length) +
18135 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18136 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18137 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18141 Transaction.prototype.clone = function () {
18142 var newTx = new Transaction()
18143 newTx.version = this.version
18144 newTx.locktime = this.locktime
18146 newTx.ins = this.ins.map(function (txIn) {
18150 script: txIn.script,
18151 sequence: txIn.sequence,
18152 witness: txIn.witness
18156 newTx.outs = this.outs.map(function (txOut) {
18158 script: txOut.script,
18167 * Hash transaction for signing a specific input.
18169 * Bitcoin uses a different hash for each signed transaction input.
18170 * This method copies the transaction, makes the necessary changes based on the
18171 * hashType, and then hashes the result.
18172 * This hash can then be used to sign the provided transaction input.
18174 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18175 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18177 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18178 if (inIndex
>= this.ins.length) return ONE
18180 // ignore OP_CODESEPARATOR
18181 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18182 return x !== opcodes.OP_CODESEPARATOR
18185 var txTmp = this.clone()
18187 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18188 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18191 // ignore sequence numbers (except at inIndex)
18192 txTmp.ins.forEach(function (input, i) {
18193 if (i === inIndex) return
18198 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18199 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18200 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18201 if (inIndex
>= this.outs.length) return ONE
18203 // truncate outputs after
18204 txTmp.outs.length = inIndex +
1
18206 // "blank" outputs before
18207 for (var i =
0; i < inIndex; i++) {
18208 txTmp.outs[i] = BLANK_OUTPUT
18211 // ignore sequence numbers (except at inIndex)
18212 txTmp.ins.forEach(function (input, y) {
18213 if (y === inIndex) return
18219 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18220 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18221 txTmp.ins = [txTmp.ins[inIndex]]
18222 txTmp.ins[
0].script = ourScript
18224 // SIGHASH_ALL: only ignore input scripts
18226 // "blank" others input scripts
18227 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18228 txTmp.ins[inIndex].script = ourScript
18231 // serialize and hash
18232 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18233 buffer.writeInt32LE(hashType, buffer.length -
4)
18234 txTmp.__toBuffer(buffer,
0, false)
18236 return bcrypto.hash256(buffer)
18239 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18240 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18242 var tbuffer, toffset
18243 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18244 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18245 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18246 function writeVarInt (i) {
18247 varuint.encode(i, tbuffer, toffset)
18248 toffset += varuint.encode.bytes
18250 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18252 var hashOutputs = ZERO
18253 var hashPrevouts = ZERO
18254 var hashSequence = ZERO
18256 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18257 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18260 this.ins.forEach(function (txIn) {
18261 writeSlice(txIn.hash)
18262 writeUInt32(txIn.index)
18265 hashPrevouts = bcrypto.hash256(tbuffer)
18268 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18269 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18270 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18271 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18274 this.ins.forEach(function (txIn) {
18275 writeUInt32(txIn.sequence)
18278 hashSequence = bcrypto.hash256(tbuffer)
18281 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18282 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18283 var txOutsSize = this.outs.reduce(function (sum, output) {
18284 return sum +
8 + varSliceSize(output.script)
18287 tbuffer = Buffer.allocUnsafe(txOutsSize)
18290 this.outs.forEach(function (out) {
18291 writeUInt64(out.value)
18292 writeVarSlice(out.script)
18295 hashOutputs = bcrypto.hash256(tbuffer)
18296 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18297 var output = this.outs[inIndex]
18299 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18301 writeUInt64(output.value)
18302 writeVarSlice(output.script)
18304 hashOutputs = bcrypto.hash256(tbuffer)
18307 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18310 var input = this.ins[inIndex]
18311 writeUInt32(this.version)
18312 writeSlice(hashPrevouts)
18313 writeSlice(hashSequence)
18314 writeSlice(input.hash)
18315 writeUInt32(input.index)
18316 writeVarSlice(prevOutScript)
18318 writeUInt32(input.sequence)
18319 writeSlice(hashOutputs)
18320 writeUInt32(this.locktime)
18321 writeUInt32(hashType)
18322 return bcrypto.hash256(tbuffer)
18325 Transaction.prototype.getHash = function () {
18326 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18329 Transaction.prototype.getId = function () {
18330 // transaction hash's are displayed in reverse order
18331 return this.getHash().reverse().toString('hex')
18334 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18335 return this.__toBuffer(buffer, initialOffset, true)
18338 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18339 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18341 var offset = initialOffset ||
0
18342 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18343 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18344 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18345 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18346 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18347 function writeVarInt (i) {
18348 varuint.encode(i, buffer, offset)
18349 offset += varuint.encode.bytes
18351 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18352 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18354 writeInt32(this.version)
18356 var hasWitnesses = __allowWitness && this.hasWitnesses()
18358 if (hasWitnesses) {
18359 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18360 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18363 writeVarInt(this.ins.length)
18365 this.ins.forEach(function (txIn) {
18366 writeSlice(txIn.hash)
18367 writeUInt32(txIn.index)
18368 writeVarSlice(txIn.script)
18369 writeUInt32(txIn.sequence)
18372 writeVarInt(this.outs.length)
18373 this.outs.forEach(function (txOut) {
18374 if (!txOut.valueBuffer) {
18375 writeUInt64(txOut.value)
18377 writeSlice(txOut.valueBuffer)
18380 writeVarSlice(txOut.script)
18383 if (hasWitnesses) {
18384 this.ins.forEach(function (input) {
18385 writeVector(input.witness)
18389 writeUInt32(this.locktime)
18391 // avoid slicing unless necessary
18392 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18396 Transaction.prototype.toHex = function () {
18397 return this.toBuffer().toString('hex')
18400 Transaction.prototype.setInputScript = function (index, scriptSig) {
18401 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18403 this.ins[index].script = scriptSig
18406 Transaction.prototype.setWitness = function (index, witness) {
18407 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18409 this.ins[index].witness = witness
18412 module.exports = Transaction
18414 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18415 var Buffer = require('safe-buffer').Buffer
18416 var baddress = require('./address')
18417 var bcrypto = require('./crypto')
18418 var bscript = require('./script')
18419 var networks = require('./networks')
18420 var ops = require('bitcoin-ops')
18421 var typeforce = require('typeforce')
18422 var types = require('./types')
18423 var scriptTypes = bscript.types
18424 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18425 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18427 var ECPair = require('./ecpair')
18428 var ECSignature = require('./ecsignature')
18429 var Transaction = require('./transaction')
18431 function extractChunks (type, chunks, script) {
18433 var signatures = []
18435 case scriptTypes.P2PKH:
18436 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18437 pubKeys = chunks.slice(
1)
18438 signatures = chunks.slice(
0,
1)
18441 case scriptTypes.P2PK:
18442 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18443 signatures = chunks.slice(
0,
1)
18446 case scriptTypes.MULTISIG:
18448 var multisig = bscript.multisig.output.decode(script)
18449 pubKeys = multisig.pubKeys
18452 signatures = chunks.slice(
1).map(function (chunk) {
18453 return chunk.length ===
0 ? undefined : chunk
18460 signatures: signatures
18463 function expandInput (scriptSig, witnessStack) {
18464 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18472 var witnessScriptType
18473 var redeemScriptType
18474 var witness = false
18480 var scriptSigChunks = bscript.decompile(scriptSig)
18481 var sigType = bscript.classifyInput(scriptSigChunks, true)
18482 if (sigType === scriptTypes.P2SH) {
18484 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18485 redeemScriptType = bscript.classifyOutput(redeemScript)
18486 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18487 prevOutType = scriptTypes.P2SH
18488 script = redeemScript
18491 var classifyWitness = bscript.classifyWitness(witnessStack)
18492 if (classifyWitness === scriptTypes.P2WSH) {
18493 witnessScript = witnessStack[witnessStack.length -
1]
18494 witnessScriptType = bscript.classifyOutput(witnessScript)
18496 if (scriptSig.length ===
0) {
18497 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18498 prevOutType = scriptTypes.P2WSH
18499 if (typeof redeemScript !== 'undefined') {
18500 throw new Error('Redeem script given when unnecessary')
18504 if (!redeemScript) {
18505 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18507 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18508 if (!redeemScript.equals(witnessProgram)) {
18509 throw new Error('Redeem script didn\'t match witnessScript')
18513 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18514 throw new Error('unsupported witness script')
18516 script = witnessScript
18517 scriptType = witnessScriptType
18518 chunks = witnessStack.slice(
0, -
1)
18519 } else if (classifyWitness === scriptTypes.P2WPKH) {
18520 var key = witnessStack[witnessStack.length -
1]
18521 var keyHash = bcrypto.hash160(key)
18522 if (scriptSig.length ===
0) {
18523 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18524 prevOutType = scriptTypes.P2WPKH
18525 if (typeof redeemScript !== 'undefined') {
18526 throw new Error('Redeem script given when unnecessary')
18529 if (!redeemScript) {
18530 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18532 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18533 if (!redeemScript.equals(witnessProgram)) {
18534 throw new Error('Redeem script did not have the right witness program')
18538 scriptType = scriptTypes.P2PKH
18539 chunks = witnessStack
18540 } else if (redeemScript) {
18541 if (P2SH.indexOf(redeemScriptType) === -
1) {
18542 throw new Error('Bad redeemscript!')
18545 script = redeemScript
18546 scriptType = redeemScriptType
18547 chunks = scriptSigChunks.slice(
0, -
1)
18549 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18550 chunks = scriptSigChunks
18553 var expanded = extractChunks(scriptType, chunks, script)
18556 pubKeys: expanded.pubKeys,
18557 signatures: expanded.signatures,
18558 prevOutScript: prevOutScript,
18559 prevOutType: prevOutType,
18560 signType: scriptType,
18561 signScript: script,
18562 witness: Boolean(witness)
18566 result.redeemScript = redeemScript
18567 result.redeemScriptType = redeemScriptType
18571 result.witnessScript = witnessScript
18572 result.witnessScriptType = witnessScriptType
18578 // could be done in expandInput, but requires the original Transaction for hashForSignature
18579 function fixMultisigOrder (input, transaction, vin) {
18580 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18581 if (input.pubKeys.length === input.signatures.length) return
18583 var unmatched = input.signatures.concat()
18585 input.signatures = input.pubKeys.map(function (pubKey) {
18586 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18589 // check for a signature
18590 unmatched.some(function (signature, i) {
18591 // skip if undefined || OP_0
18592 if (!signature) return false
18594 // TODO: avoid O(n) hashForSignature
18595 var parsed = ECSignature.parseScriptSignature(signature)
18596 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18598 // skip if signature does not match pubKey
18599 if (!keyPair.verify(hash, parsed.signature)) return false
18601 // remove matched signature from unmatched
18602 unmatched[i] = undefined
18612 function expandOutput (script, scriptType, ourPubKey) {
18613 typeforce(types.Buffer, script)
18615 var scriptChunks = bscript.decompile(script)
18617 scriptType = bscript.classifyOutput(script)
18622 switch (scriptType) {
18623 // does our hash160(pubKey) match the output scripts?
18624 case scriptTypes.P2PKH:
18625 if (!ourPubKey) break
18627 var pkh1 = scriptChunks[
2]
18628 var pkh2 = bcrypto.hash160(ourPubKey)
18629 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18632 // does our hash160(pubKey) match the output scripts?
18633 case scriptTypes.P2WPKH:
18634 if (!ourPubKey) break
18636 var wpkh1 = scriptChunks[
1]
18637 var wpkh2 = bcrypto.hash160(ourPubKey)
18638 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18641 case scriptTypes.P2PK:
18642 pubKeys = scriptChunks.slice(
0,
1)
18645 case scriptTypes.MULTISIG:
18646 pubKeys = scriptChunks.slice(
1, -
2)
18649 default: return { scriptType: scriptType }
18654 scriptType: scriptType,
18655 signatures: pubKeys.map(function () { return undefined })
18659 function checkP2shInput (input, redeemScriptHash) {
18660 if (input.prevOutType) {
18661 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18663 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18664 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18668 function checkP2WSHInput (input, witnessScriptHash) {
18669 if (input.prevOutType) {
18670 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18672 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18673 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18677 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18684 var redeemScriptHash
18686 var witness = false
18689 var witnessScriptHash
18694 if (redeemScript && witnessScript) {
18695 redeemScriptHash = bcrypto.hash160(redeemScript)
18696 witnessScriptHash = bcrypto.sha256(witnessScript)
18697 checkP2shInput(input, redeemScriptHash)
18699 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18701 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18702 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18703 prevOutType = bscript.types.P2SH
18704 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18705 p2sh = witness = p2wsh = true
18706 p2shType = bscript.types.P2WSH
18707 signType = witnessType = expanded.scriptType
18708 signScript = witnessScript
18709 } else if (redeemScript) {
18710 redeemScriptHash = bcrypto.hash160(redeemScript)
18711 checkP2shInput(input, redeemScriptHash)
18713 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18714 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18716 prevOutType = bscript.types.P2SH
18717 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18719 signType = p2shType = expanded.scriptType
18720 signScript = redeemScript
18721 witness = signType === bscript.types.P2WPKH
18722 } else if (witnessScript) {
18723 witnessScriptHash = bcrypto.sha256(witnessScript)
18724 checkP2WSHInput(input, witnessScriptHash)
18726 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18727 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18729 prevOutType = bscript.types.P2WSH
18730 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18731 witness = p2wsh = true
18732 signType = witnessType = expanded.scriptType
18733 signScript = witnessScript
18734 } else if (input.prevOutType) {
18735 // embedded scripts are not possible without a redeemScript
18736 if (input.prevOutType === scriptTypes.P2SH ||
18737 input.prevOutType === scriptTypes.P2WSH) {
18738 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18741 prevOutType = input.prevOutType
18742 prevOutScript = input.prevOutScript
18743 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18744 if (!expanded.pubKeys) return
18746 witness = (input.prevOutType === scriptTypes.P2WPKH)
18747 signType = prevOutType
18748 signScript = prevOutScript
18750 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18751 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18752 prevOutType = scriptTypes.P2PKH
18754 signType = prevOutType
18755 signScript = prevOutScript
18758 if (witness && !types.Satoshi(witnessValue)) {
18759 throw new Error('Input was witness but not given witness value')
18762 if (signType === scriptTypes.P2WPKH) {
18763 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18767 input.redeemScript = redeemScript
18768 input.redeemScriptType = p2shType
18772 input.witnessScript = witnessScript
18773 input.witnessScriptType = witnessType
18776 input.pubKeys = expanded.pubKeys
18777 input.signatures = expanded.signatures
18778 input.signScript = signScript
18779 input.signType = signType
18780 input.prevOutScript = prevOutScript
18781 input.prevOutType = prevOutType
18782 input.witness = witness
18785 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18786 if (type === scriptTypes.P2PKH) {
18787 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18788 } else if (type === scriptTypes.P2PK) {
18789 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18790 } else if (type === scriptTypes.MULTISIG) {
18791 if (signatures.length
> 0) {
18792 signatures = signatures.map(function (signature) {
18793 return signature || ops.OP_0
18795 if (!allowIncomplete) {
18796 // remove blank signatures
18797 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18800 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18803 throw new Error('Not yet supported')
18806 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18811 function buildInput (input, allowIncomplete) {
18812 var scriptType = input.prevOutType
18815 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18816 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18820 if (scriptType === bscript.types.P2SH) {
18821 // We can remove this error later when we have a guarantee prepareInput
18822 // rejects unsignable scripts - it MUST be signable at this point.
18823 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18824 throw new Error('Impossible to sign this type')
18827 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18828 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18830 // If it wasn't SIGNABLE, it's witness, defer to that
18831 scriptType = input.redeemScriptType
18834 if (scriptType === bscript.types.P2WPKH) {
18835 // P2WPKH is a special case of P2PKH
18836 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18837 } else if (scriptType === bscript.types.P2WSH) {
18838 // We can remove this check later
18839 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18840 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18841 witness.push(input.witnessScript)
18843 // We can remove this error later when we have a guarantee prepareInput
18844 // rejects unsignble scripts - it MUST be signable at this point.
18848 scriptType = input.witnessScriptType
18851 // append redeemScript if necessary
18853 sig.push(input.redeemScript)
18858 script: bscript.compile(sig),
18863 function TransactionBuilder (network, maximumFeeRate) {
18864 this.prevTxMap = {}
18865 this.network = network || networks.bitcoin
18867 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18868 this.maximumFeeRate = maximumFeeRate ||
1000
18871 this.tx = new Transaction()
18874 TransactionBuilder.prototype.setLockTime = function (locktime) {
18875 typeforce(types.UInt32, locktime)
18877 // if any signatures exist, throw
18878 if (this.inputs.some(function (input) {
18879 if (!input.signatures) return false
18881 return input.signatures.some(function (s) { return s })
18883 throw new Error('No, this would invalidate signatures')
18886 this.tx.locktime = locktime
18889 TransactionBuilder.prototype.setVersion = function (version) {
18890 typeforce(types.UInt32, version)
18892 // XXX: this might eventually become more complex depending on what the versions represent
18893 this.tx.version = version
18896 TransactionBuilder.fromTransaction = function (transaction, network) {
18897 var txb = new TransactionBuilder(network)
18899 // Copy transaction fields
18900 txb.setVersion(transaction.version)
18901 txb.setLockTime(transaction.locktime)
18903 // Copy outputs (done first to avoid signature invalidation)
18904 transaction.outs.forEach(function (txOut) {
18905 txb.addOutput(txOut.script, txOut.value)
18909 transaction.ins.forEach(function (txIn) {
18910 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18911 sequence: txIn.sequence,
18912 script: txIn.script,
18913 witness: txIn.witness
18917 // fix some things not possible through the public API
18918 txb.inputs.forEach(function (input, i) {
18919 fixMultisigOrder(input, transaction, i)
18925 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18926 if (!this.__canModifyInputs()) {
18927 throw new Error('No, this would invalidate signatures')
18932 // is it a hex string?
18933 if (typeof txHash === 'string') {
18934 // transaction hashs's are displayed in reverse order, un-reverse it
18935 txHash = Buffer.from(txHash, 'hex').reverse()
18937 // is it a Transaction object?
18938 } else if (txHash instanceof Transaction) {
18939 var txOut = txHash.outs[vout]
18940 prevOutScript = txOut.script
18941 value = txOut.value
18943 txHash = txHash.getHash()
18946 return this.__addInputUnsafe(txHash, vout, {
18947 sequence: sequence,
18948 prevOutScript: prevOutScript,
18953 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18954 if (Transaction.isCoinbaseHash(txHash)) {
18955 throw new Error('coinbase inputs not supported')
18958 var prevTxOut = txHash.toString('hex') + ':' + vout
18959 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18963 // derive what we can from the scriptSig
18964 if (options.script !== undefined) {
18965 input = expandInput(options.script, options.witness || [])
18968 // if an input value was given, retain it
18969 if (options.value !== undefined) {
18970 input.value = options.value
18973 // derive what we can from the previous transactions output script
18974 if (!input.prevOutScript && options.prevOutScript) {
18977 if (!input.pubKeys && !input.signatures) {
18978 var expanded = expandOutput(options.prevOutScript)
18980 if (expanded.pubKeys) {
18981 input.pubKeys = expanded.pubKeys
18982 input.signatures = expanded.signatures
18985 prevOutType = expanded.scriptType
18988 input.prevOutScript = options.prevOutScript
18989 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
18992 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
18993 this.inputs[vin] = input
18994 this.prevTxMap[prevTxOut] = vin
18999 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19000 if (!this.__canModifyOutputs()) {
19001 throw new Error('No, this would invalidate signatures')
19004 // Attempt to get a script if it's a base58 address string
19005 if (typeof scriptPubKey === 'string') {
19006 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19009 return this.tx.addOutput(scriptPubKey, value)
19012 TransactionBuilder.prototype.build = function () {
19013 return this.__build(false)
19015 TransactionBuilder.prototype.buildIncomplete = function () {
19016 return this.__build(true)
19019 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19020 if (!allowIncomplete) {
19021 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19022 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19025 var tx = this.tx.clone()
19026 // Create script signatures from inputs
19027 this.inputs.forEach(function (input, i) {
19028 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19029 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19030 var result = buildInput(input, allowIncomplete)
19032 // skip if no result
19033 if (!allowIncomplete) {
19034 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19035 throw new Error(result.type + ' not supported')
19039 tx.setInputScript(i, result.script)
19040 tx.setWitness(i, result.witness)
19043 if (!allowIncomplete) {
19044 // do not rely on this, its merely a last resort
19045 if (this.__overMaximumFees(tx.byteLength())) {
19046 throw new Error('Transaction has absurd fees')
19053 function canSign (input) {
19054 return input.prevOutScript !== undefined &&
19055 input.signScript !== undefined &&
19056 input.pubKeys !== undefined &&
19057 input.signatures !== undefined &&
19058 input.signatures.length === input.pubKeys.length &&
19059 input.pubKeys.length
> 0 &&
19060 input.witness !== undefined
19063 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19064 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19065 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19066 hashType = hashType || Transaction.SIGHASH_ALL
19068 var input = this.inputs[vin]
19070 // if redeemScript was previously provided, enforce consistency
19071 if (input.redeemScript !== undefined &&
19073 !input.redeemScript.equals(redeemScript)) {
19074 throw new Error('Inconsistent redeemScript')
19077 var kpPubKey = keyPair.getPublicKeyBuffer()
19078 if (!canSign(input)) {
19079 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19080 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19085 if (input.witness) {
19086 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19088 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19090 // enforce in order signing of public keys
19091 var signed = input.pubKeys.some(function (pubKey, i) {
19092 if (!kpPubKey.equals(pubKey)) return false
19093 if (input.signatures[i]) throw new Error('Signature already exists')
19095 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19099 if (!signed) throw new Error('Key pair cannot sign for this input')
19102 function signatureHashType (buffer) {
19103 return buffer.readUInt8(buffer.length -
1)
19106 TransactionBuilder.prototype.__canModifyInputs = function () {
19107 return this.inputs.every(function (input) {
19109 if (input.signatures === undefined) return true
19111 return input.signatures.every(function (signature) {
19112 if (!signature) return true
19113 var hashType = signatureHashType(signature)
19115 // if SIGHASH_ANYONECANPAY is set, signatures would not
19116 // be invalidated by more inputs
19117 return hashType & Transaction.SIGHASH_ANYONECANPAY
19122 TransactionBuilder.prototype.__canModifyOutputs = function () {
19123 var nInputs = this.tx.ins.length
19124 var nOutputs = this.tx.outs.length
19126 return this.inputs.every(function (input) {
19127 if (input.signatures === undefined) return true
19129 return input.signatures.every(function (signature) {
19130 if (!signature) return true
19131 var hashType = signatureHashType(signature)
19133 var hashTypeMod = hashType &
0x1f
19134 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19135 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19136 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19137 // some signatures would be invalidated by the addition
19139 return nInputs <= nOutputs
19145 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19146 // not all inputs will have .value defined
19147 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19149 // but all outputs do, and if we have any input value
19150 // we can immediately determine if the outputs are too small
19151 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19152 var fee = incoming - outgoing
19153 var feeRate = fee / bytes
19155 return feeRate
> this.maximumFeeRate
19158 module.exports = TransactionBuilder
19160 },{"./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){
19161 var typeforce = require('typeforce')
19163 var UINT31_MAX = Math.pow(
2,
31) -
1
19164 function UInt31 (value) {
19165 return typeforce.UInt32(value) && value <= UINT31_MAX
19168 function BIP32Path (value) {
19169 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19171 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19173 var SATOSHI_MAX =
21 *
1e14
19174 function Satoshi (value) {
19175 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19178 // external dependent types
19179 var BigInt = typeforce.quacksLike('BigInteger')
19180 var ECPoint = typeforce.quacksLike('Point')
19182 // exposed, external API
19183 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19184 var Network = typeforce.compile({
19185 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19187 public: typeforce.UInt32,
19188 private: typeforce.UInt32
19190 pubKeyHash: typeforce.UInt8,
19191 scriptHash: typeforce.UInt8,
19192 wif: typeforce.UInt8
19195 // extend typeforce types with ours
19198 BIP32Path: BIP32Path,
19199 Buffer256bit: typeforce.BufferN(
32),
19201 ECSignature: ECSignature,
19202 Hash160bit: typeforce.BufferN(
20),
19203 Hash256bit: typeforce.BufferN(
32),
19209 for (var typeName in typeforce) {
19210 types[typeName] = typeforce[typeName]
19213 module.exports = types
19215 },{"typeforce":
109}],
79:[function(require,module,exports){
19216 var basex = require('base-x')
19217 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19219 module.exports = basex(ALPHABET)
19221 },{"base-x":
34}],
80:[function(require,module,exports){
19222 (function (Buffer){
19225 var base58 = require('bs58')
19226 var createHash = require('create-hash')
19228 // SHA256(SHA256(buffer))
19229 function sha256x2 (buffer) {
19230 var tmp = createHash('sha256').update(buffer).digest()
19231 return createHash('sha256').update(tmp).digest()
19234 // Encode a buffer as a base58-check encoded string
19235 function encode (payload) {
19236 var checksum = sha256x2(payload)
19238 return base58.encode(Buffer.concat([
19241 ], payload.length +
4))
19244 function decodeRaw (buffer) {
19245 var payload = buffer.slice(
0, -
4)
19246 var checksum = buffer.slice(-
4)
19247 var newChecksum = sha256x2(payload)
19249 if (checksum[
0] ^ newChecksum[
0] |
19250 checksum[
1] ^ newChecksum[
1] |
19251 checksum[
2] ^ newChecksum[
2] |
19252 checksum[
3] ^ newChecksum[
3]) return
19257 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19258 function decodeUnsafe (string) {
19259 var buffer = base58.decodeUnsafe(string)
19260 if (!buffer) return
19262 return decodeRaw(buffer)
19265 function decode (string) {
19266 var buffer = base58.decode(string)
19267 var payload = decodeRaw(buffer)
19268 if (!payload) throw new Error('Invalid checksum')
19275 decodeUnsafe: decodeUnsafe
19278 }).call(this,require("buffer").Buffer)
19279 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19280 var Buffer = require('safe-buffer').Buffer
19281 var Transform = require('stream').Transform
19282 var StringDecoder = require('string_decoder').StringDecoder
19283 var inherits = require('inherits')
19285 function CipherBase (hashMode) {
19286 Transform.call(this)
19287 this.hashMode = typeof hashMode === 'string'
19288 if (this.hashMode) {
19289 this[hashMode] = this._finalOrDigest
19291 this.final = this._finalOrDigest
19294 this.__final = this._final
19297 this._decoder = null
19298 this._encoding = null
19300 inherits(CipherBase, Transform)
19302 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19303 if (typeof data === 'string') {
19304 data = Buffer.from(data, inputEnc)
19307 var outData = this._update(data)
19308 if (this.hashMode) return this
19311 outData = this._toString(outData, outputEnc)
19317 CipherBase.prototype.setAutoPadding = function () {}
19318 CipherBase.prototype.getAuthTag = function () {
19319 throw new Error('trying to get auth tag in unsupported state')
19322 CipherBase.prototype.setAuthTag = function () {
19323 throw new Error('trying to set auth tag in unsupported state')
19326 CipherBase.prototype.setAAD = function () {
19327 throw new Error('trying to set aad in unsupported state')
19330 CipherBase.prototype._transform = function (data, _, next) {
19333 if (this.hashMode) {
19336 this.push(this._update(data))
19344 CipherBase.prototype._flush = function (done) {
19347 this.push(this.__final())
19354 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19355 var outData = this.__final() || Buffer.alloc(
0)
19357 outData = this._toString(outData, outputEnc, true)
19362 CipherBase.prototype._toString = function (value, enc, fin) {
19363 if (!this._decoder) {
19364 this._decoder = new StringDecoder(enc)
19365 this._encoding = enc
19368 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19370 var out = this._decoder.write(value)
19372 out += this._decoder.end()
19378 module.exports = CipherBase
19380 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19381 (function (Buffer){
19383 var inherits = require('inherits')
19384 var md5 = require('./md5')
19385 var RIPEMD160 = require('ripemd160')
19386 var sha = require('sha.js')
19388 var Base = require('cipher-base')
19390 function HashNoConstructor (hash) {
19391 Base.call(this, 'digest')
19397 inherits(HashNoConstructor, Base)
19399 HashNoConstructor.prototype._update = function (data) {
19400 this.buffers.push(data)
19403 HashNoConstructor.prototype._final = function () {
19404 var buf = Buffer.concat(this.buffers)
19405 var r = this._hash(buf)
19406 this.buffers = null
19411 function Hash (hash) {
19412 Base.call(this, 'digest')
19417 inherits(Hash, Base)
19419 Hash.prototype._update = function (data) {
19420 this._hash.update(data)
19423 Hash.prototype._final = function () {
19424 return this._hash.digest()
19427 module.exports = function createHash (alg) {
19428 alg = alg.toLowerCase()
19429 if (alg === 'md5') return new HashNoConstructor(md5)
19430 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19432 return new Hash(sha(alg))
19435 }).call(this,require("buffer").Buffer)
19436 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19437 (function (Buffer){
19440 var zeroBuffer = new Buffer(intSize)
19446 function toArray (buf) {
19447 if ((buf.length % intSize) !==
0) {
19448 var len = buf.length + (intSize - (buf.length % intSize))
19449 buf = Buffer.concat([buf, zeroBuffer], len)
19452 var arr = new Array(buf.length
>>> 2)
19453 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19454 arr[j] = buf.readInt32LE(i)
19460 module.exports = function hash (buf, fn) {
19461 var arr = fn(toArray(buf), buf.length * charSize)
19462 buf = new Buffer(hashSize)
19463 for (var i =
0; i < arr.length; i++) {
19464 buf.writeInt32LE(arr[i], i <<
2, true)
19469 }).call(this,require(
"buffer").Buffer)
19470 },{
"buffer":
4}],
84:[function(require,module,exports){
19473 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19474 * Digest Algorithm, as defined in RFC
1321.
19475 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19476 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19477 * Distributed under the BSD License
19478 * See http://pajhome.org.uk/crypt/md5 for more info.
19481 var makeHash = require('./make-hash')
19484 * Calculate the MD5 of an array of little-endian words, and a bit length
19486 function core_md5 (x, len) {
19487 /* append padding */
19488 x[len
>> 5] |=
0x80 << ((len) %
32)
19489 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19493 var c = -
1732584194
19496 for (var i =
0; i < x.length; i +=
16) {
19502 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19503 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19504 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19505 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19506 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19507 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19508 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19509 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19510 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19511 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19512 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19513 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19514 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19515 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19516 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19517 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19519 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19520 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19521 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19522 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19523 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19524 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19525 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19526 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19527 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19528 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19529 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19530 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19531 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19532 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19533 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19534 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19536 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19537 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19538 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19539 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19540 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19541 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19542 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19543 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19544 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19545 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19546 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19547 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19548 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19549 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19550 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19551 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19553 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19554 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19555 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19556 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19557 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19558 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19559 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19560 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19561 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19562 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19563 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19564 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19565 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19566 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19567 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19568 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19570 a = safe_add(a, olda)
19571 b = safe_add(b, oldb)
19572 c = safe_add(c, oldc)
19573 d = safe_add(d, oldd)
19576 return [a, b, c, d]
19580 * These functions implement the four basic operations the algorithm uses.
19582 function md5_cmn (q, a, b, x, s, t) {
19583 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19586 function md5_ff (a, b, c, d, x, s, t) {
19587 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19590 function md5_gg (a, b, c, d, x, s, t) {
19591 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19594 function md5_hh (a, b, c, d, x, s, t) {
19595 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19598 function md5_ii (a, b, c, d, x, s, t) {
19599 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19603 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19604 * to work around bugs in some JS interpreters.
19606 function safe_add (x, y) {
19607 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19608 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19609 return (msw <<
16) | (lsw &
0xFFFF)
19613 * Bitwise rotate a
32-bit number to the left.
19615 function bit_rol (num, cnt) {
19616 return (num << cnt) | (num
>>> (
32 - cnt))
19619 module.exports = function md5 (buf) {
19620 return makeHash(buf, core_md5)
19623 },{"./make-hash":
83}],
85:[function(require,module,exports){
19625 var inherits = require('inherits')
19626 var Legacy = require('./legacy')
19627 var Base = require('cipher-base')
19628 var Buffer = require('safe-buffer').Buffer
19629 var md5 = require('create-hash/md5')
19630 var RIPEMD160 = require('ripemd160')
19632 var sha = require('sha.js')
19634 var ZEROS = Buffer.alloc(
128)
19636 function Hmac (alg, key) {
19637 Base.call(this, 'digest')
19638 if (typeof key === 'string') {
19639 key = Buffer.from(key)
19642 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19646 if (key.length
> blocksize) {
19647 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19648 key = hash.update(key).digest()
19649 } else if (key.length < blocksize) {
19650 key = Buffer.concat([key, ZEROS], blocksize)
19653 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19654 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19656 for (var i =
0; i < blocksize; i++) {
19657 ipad[i] = key[i] ^
0x36
19658 opad[i] = key[i] ^
0x5C
19660 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19661 this._hash.update(ipad)
19664 inherits(Hmac, Base)
19666 Hmac.prototype._update = function (data) {
19667 this._hash.update(data)
19670 Hmac.prototype._final = function () {
19671 var h = this._hash.digest()
19672 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19673 return hash.update(this._opad).update(h).digest()
19676 module.exports = function createHmac (alg, key) {
19677 alg = alg.toLowerCase()
19678 if (alg === 'rmd160' || alg === 'ripemd160') {
19679 return new Hmac('rmd160', key)
19681 if (alg === 'md5') {
19682 return new Legacy(md5, key)
19684 return new Hmac(alg, key)
19687 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19689 var inherits = require('inherits')
19690 var Buffer = require('safe-buffer').Buffer
19692 var Base = require('cipher-base')
19694 var ZEROS = Buffer.alloc(
128)
19697 function Hmac (alg, key) {
19698 Base.call(this, 'digest')
19699 if (typeof key === 'string') {
19700 key = Buffer.from(key)
19706 if (key.length
> blocksize) {
19708 } else if (key.length < blocksize) {
19709 key = Buffer.concat([key, ZEROS], blocksize)
19712 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19713 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19715 for (var i =
0; i < blocksize; i++) {
19716 ipad[i] = key[i] ^
0x36
19717 opad[i] = key[i] ^
0x5C
19720 this._hash = [ipad]
19723 inherits(Hmac, Base)
19725 Hmac.prototype._update = function (data) {
19726 this._hash.push(data)
19729 Hmac.prototype._final = function () {
19730 var h = this._alg(Buffer.concat(this._hash))
19731 return this._alg(Buffer.concat([this._opad, h]))
19733 module.exports = Hmac
19735 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19736 var assert = require('assert')
19737 var BigInteger = require('bigi')
19739 var Point = require('./point')
19741 function Curve (p, a, b, Gx, Gy, n, h) {
19745 this.G = Point.fromAffine(this, Gx, Gy)
19749 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19752 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19754 // determine size of p in bytes
19755 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19758 Curve.prototype.pointFromX = function (isOdd, x) {
19759 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19760 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19763 if (beta.isEven() ^ !isOdd) {
19764 y = this.p.subtract(y) // -y % p
19767 return Point.fromAffine(this, x, y)
19770 Curve.prototype.isInfinity = function (Q) {
19771 if (Q === this.infinity) return true
19773 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19776 Curve.prototype.isOnCurve = function (Q) {
19777 if (this.isInfinity(Q)) return true
19785 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19786 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19787 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19789 // and check that y^
2 = x^
3 + ax + b (mod p)
19790 var lhs = y.square().mod(p)
19791 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19792 return lhs.equals(rhs)
19796 * Validate an elliptic curve point.
19798 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19800 Curve.prototype.validate = function (Q) {
19802 assert(!this.isInfinity(Q), 'Point is at infinity')
19803 assert(this.isOnCurve(Q), 'Point is not on the curve')
19805 // Check nQ = O (where Q is a scalar multiple of G)
19806 var nQ = Q.multiply(this.n)
19807 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19812 module.exports = Curve
19814 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19817 "p": "fffffffdffffffffffffffffffffffff",
19818 "a": "fffffffdfffffffffffffffffffffffc",
19819 "b": "e87579c11079f43dd824993c2cee5ed3",
19820 "n": "fffffffe0000000075a30d1b9038a115",
19822 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19823 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19826 "p": "fffffffffffffffffffffffffffffffeffffac73",
19829 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19831 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19832 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19835 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19836 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19837 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19838 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19840 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19841 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19844 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19847 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19849 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19850 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19853 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19854 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19855 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19856 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19858 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19859 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19862 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19865 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19867 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19868 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19871 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19872 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19873 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19874 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19876 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19877 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19881 },{}],
89:[function(require,module,exports){
19882 var Point = require('./point')
19883 var Curve = require('./curve')
19885 var getCurveByName = require('./names')
19890 getCurveByName: getCurveByName
19893 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19894 var BigInteger = require('bigi')
19896 var curves = require('./curves.json')
19897 var Curve = require('./curve')
19899 function getCurveByName (name) {
19900 var curve = curves[name]
19901 if (!curve) return null
19903 var p = new BigInteger(curve.p,
16)
19904 var a = new BigInteger(curve.a,
16)
19905 var b = new BigInteger(curve.b,
16)
19906 var n = new BigInteger(curve.n,
16)
19907 var h = new BigInteger(curve.h,
16)
19908 var Gx = new BigInteger(curve.Gx,
16)
19909 var Gy = new BigInteger(curve.Gy,
16)
19911 return new Curve(p, a, b, Gx, Gy, n, h)
19914 module.exports = getCurveByName
19916 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19917 (function (Buffer){
19918 var assert = require('assert')
19919 var BigInteger = require('bigi')
19921 var THREE = BigInteger.valueOf(
3)
19923 function Point (curve, x, y, z) {
19924 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19932 this.compressed = true
19935 Object.defineProperty(Point.prototype, 'zInv', {
19937 if (this._zInv === null) {
19938 this._zInv = this.z.modInverse(this.curve.p)
19945 Object.defineProperty(Point.prototype, 'affineX', {
19947 return this.x.multiply(this.zInv).mod(this.curve.p)
19951 Object.defineProperty(Point.prototype, 'affineY', {
19953 return this.y.multiply(this.zInv).mod(this.curve.p)
19957 Point.fromAffine = function (curve, x, y) {
19958 return new Point(curve, x, y, BigInteger.ONE)
19961 Point.prototype.equals = function (other) {
19962 if (other === this) return true
19963 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19964 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
19966 // u = Y2 * Z1 - Y1 * Z2
19967 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
19969 if (u.signum() !==
0) return false
19971 // v = X2 * Z1 - X1 * Z2
19972 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
19974 return v.signum() ===
0
19977 Point.prototype.negate = function () {
19978 var y = this.curve.p.subtract(this.y)
19980 return new Point(this.curve, this.x, y, this.z)
19983 Point.prototype.add = function (b) {
19984 if (this.curve.isInfinity(this)) return b
19985 if (this.curve.isInfinity(b)) return this
19992 // u = Y2 * Z1 - Y1 * Z2
19993 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
19994 // v = X2 * Z1 - X1 * Z2
19995 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
19997 if (v.signum() ===
0) {
19998 if (u.signum() ===
0) {
19999 return this.twice() // this == b, so double
20002 return this.curve.infinity // this = -b, so infinity
20005 var v2 = v.square()
20006 var v3 = v2.multiply(v)
20007 var x1v2 = x1.multiply(v2)
20008 var zu2 = u.square().multiply(this.z)
20010 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20011 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20012 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20013 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)
20014 // z3 = v^
3 * z1 * z2
20015 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20017 return new Point(this.curve, x3, y3, z3)
20020 Point.prototype.twice = function () {
20021 if (this.curve.isInfinity(this)) return this
20022 if (this.y.signum() ===
0) return this.curve.infinity
20027 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20028 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20029 var a = this.curve.a
20031 // w =
3 * x1^
2 + a * z1^
2
20032 var w = x1.square().multiply(THREE)
20034 if (a.signum() !==
0) {
20035 w = w.add(this.z.square().multiply(a))
20038 w = w.mod(this.curve.p)
20039 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20040 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20041 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20042 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20043 // z3 =
8 * (y1 * z1)^
3
20044 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20046 return new Point(this.curve, x3, y3, z3)
20049 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20050 // TODO: modularize the multiplication algorithm
20051 Point.prototype.multiply = function (k) {
20052 if (this.curve.isInfinity(this)) return this
20053 if (k.signum() ===
0) return this.curve.infinity
20056 var h = e.multiply(THREE)
20058 var neg = this.negate()
20061 for (var i = h.bitLength() -
2; i
> 0; --i) {
20062 var hBit = h.testBit(i)
20063 var eBit = e.testBit(i)
20067 if (hBit !== eBit) {
20068 R = R.add(hBit ? this : neg)
20075 // Compute this*j + x*k (simultaneous multiplication)
20076 Point.prototype.multiplyTwo = function (j, x, k) {
20077 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20078 var R = this.curve.infinity
20079 var both = this.add(x)
20082 var jBit = j.testBit(i)
20083 var kBit = k.testBit(i)
20102 Point.prototype.getEncoded = function (compressed) {
20103 if (compressed == null) compressed = this.compressed
20104 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20106 var x = this.affineX
20107 var y = this.affineY
20108 var byteLength = this.curve.pLength
20113 buffer = new Buffer(
1 + byteLength)
20114 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20118 buffer = new Buffer(
1 + byteLength + byteLength)
20119 buffer.writeUInt8(
0x04,
0)
20121 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20124 x.toBuffer(byteLength).copy(buffer,
1)
20129 Point.decodeFrom = function (curve, buffer) {
20130 var type = buffer.readUInt8(
0)
20131 var compressed = (type !==
4)
20133 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20134 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20138 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20139 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20141 var isOdd = (type ===
0x03)
20142 Q = curve.pointFromX(isOdd, x)
20144 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20146 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20147 Q = Point.fromAffine(curve, x, y)
20150 Q.compressed = compressed
20154 Point.prototype.toString = function () {
20155 if (this.curve.isInfinity(this)) return '(INFINITY)'
20157 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20160 module.exports = Point
20162 }).call(this,require("buffer").Buffer)
20163 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20164 (function (Buffer){
20166 var Transform = require('stream').Transform
20167 var inherits = require('inherits')
20169 function HashBase (blockSize) {
20170 Transform.call(this)
20172 this._block = new Buffer(blockSize)
20173 this._blockSize = blockSize
20174 this._blockOffset =
0
20175 this._length = [
0,
0,
0,
0]
20177 this._finalized = false
20180 inherits(HashBase, Transform)
20182 HashBase.prototype._transform = function (chunk, encoding, callback) {
20185 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20194 HashBase.prototype._flush = function (callback) {
20197 this.push(this._digest())
20205 HashBase.prototype.update = function (data, encoding) {
20206 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20207 if (this._finalized) throw new Error('Digest already called')
20208 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20211 var block = this._block
20213 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20214 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20216 this._blockOffset =
0
20218 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20221 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20222 this._length[j] += carry
20223 carry = (this._length[j] /
0x0100000000) |
0
20224 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20230 HashBase.prototype._update = function (data) {
20231 throw new Error('_update is not implemented')
20234 HashBase.prototype.digest = function (encoding) {
20235 if (this._finalized) throw new Error('Digest already called')
20236 this._finalized = true
20238 var digest = this._digest()
20239 if (encoding !== undefined) digest = digest.toString(encoding)
20243 HashBase.prototype._digest = function () {
20244 throw new Error('_digest is not implemented')
20247 module.exports = HashBase
20249 }).call(this,require(
"buffer").Buffer)
20250 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20251 arguments[
4][
8][
0].apply(exports,arguments)
20252 },{
"dup":
8}],
94:[function(require,module,exports){
20253 (function (Buffer){
20254 // constant-space merkle root calculation algorithm
20255 module.exports = function fastRoot (values, digestFn) {
20256 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20257 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20259 var length = values.length
20260 var results = values.concat()
20262 while (length
> 1) {
20265 for (var i =
0; i < length; i +=
2, ++j) {
20266 var left = results[i]
20267 var right = i +
1 === length ? left : results[i +
1]
20268 var data = Buffer.concat([left, right])
20270 results[j] = digestFn(data)
20279 }).call(this,require(
"buffer").Buffer)
20280 },{
"buffer":
4}],
95:[function(require,module,exports){
20281 var OPS = require('bitcoin-ops')
20283 function encodingLength (i) {
20284 return i < OPS.OP_PUSHDATA1 ?
1
20290 function encode (buffer, number, offset) {
20291 var size = encodingLength(number)
20295 buffer.writeUInt8(number, offset)
20298 } else if (size ===
2) {
20299 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20300 buffer.writeUInt8(number, offset +
1)
20303 } else if (size ===
3) {
20304 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20305 buffer.writeUInt16LE(number, offset +
1)
20309 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20310 buffer.writeUInt32LE(number, offset +
1)
20316 function decode (buffer, offset) {
20317 var opcode = buffer.readUInt8(offset)
20321 if (opcode < OPS.OP_PUSHDATA1) {
20326 } else if (opcode === OPS.OP_PUSHDATA1) {
20327 if (offset +
2 > buffer.length) return null
20328 number = buffer.readUInt8(offset +
1)
20332 } else if (opcode === OPS.OP_PUSHDATA2) {
20333 if (offset +
3 > buffer.length) return null
20334 number = buffer.readUInt16LE(offset +
1)
20339 if (offset +
5 > buffer.length) return null
20340 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20342 number = buffer.readUInt32LE(offset +
1)
20354 encodingLength: encodingLength,
20359 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20360 (function (process,global){
20363 function oldBrowser () {
20364 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20367 var Buffer = require('safe-buffer').Buffer
20368 var crypto = global.crypto || global.msCrypto
20370 if (crypto && crypto.getRandomValues) {
20371 module.exports = randomBytes
20373 module.exports = oldBrowser
20376 function randomBytes (size, cb) {
20377 // phantomjs needs to throw
20378 if (size
> 65536) throw new Error('requested too many random bytes')
20379 // in case browserify isn't using the Uint8Array version
20380 var rawBytes = new global.Uint8Array(size)
20382 // This will not work in older browsers.
20383 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20384 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20385 crypto.getRandomValues(rawBytes)
20388 // XXX: phantomjs doesn't like a buffer being passed here
20389 var bytes = Buffer.from(rawBytes.buffer)
20391 if (typeof cb === 'function') {
20392 return process.nextTick(function () {
20400 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20401 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20402 (function (Buffer){
20404 var inherits = require('inherits')
20405 var HashBase = require('hash-base')
20407 function RIPEMD160 () {
20408 HashBase.call(this,
64)
20411 this._a =
0x67452301
20412 this._b =
0xefcdab89
20413 this._c =
0x98badcfe
20414 this._d =
0x10325476
20415 this._e =
0xc3d2e1f0
20418 inherits(RIPEMD160, HashBase)
20420 RIPEMD160.prototype._update = function () {
20421 var m = new Array(
16)
20422 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20430 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20432 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20433 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20434 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20435 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20436 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20437 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20438 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20439 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20440 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20441 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20442 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20443 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20444 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20445 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20446 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20447 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20448 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20450 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20452 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20453 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20454 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20455 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20456 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20457 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20458 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20459 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20460 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20461 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20462 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20463 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20464 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20465 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20466 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20467 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20468 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20470 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20472 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20473 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20474 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20475 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20476 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20477 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20478 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20479 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20480 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20481 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20482 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20483 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20484 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20485 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20486 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20487 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20488 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20490 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20492 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20493 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20494 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20495 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20496 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20497 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20498 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20499 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20500 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20501 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20502 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20503 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20504 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20505 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20506 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20507 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20508 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20510 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20512 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20513 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20514 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20515 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20516 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20517 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20518 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20519 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20520 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20521 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20522 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20523 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20524 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20525 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20526 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20527 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20528 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20536 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20538 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20539 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20540 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20541 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20542 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20543 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20544 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20545 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20546 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20547 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20548 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20549 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20550 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20551 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20552 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20553 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20554 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20556 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20558 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20559 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20560 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20561 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20562 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20563 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20564 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20565 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20566 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20567 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20568 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20569 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20570 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20571 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20572 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20573 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20574 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20576 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20578 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20579 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20580 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20581 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20582 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20583 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20584 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20585 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20586 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20587 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20588 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20589 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20590 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20591 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20592 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20593 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20594 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20596 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20598 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20599 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20600 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20601 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20602 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20603 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20604 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20605 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20606 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20607 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20608 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20609 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20610 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20611 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20612 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20613 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20614 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20616 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20618 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20619 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20620 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20621 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20622 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20623 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20624 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20625 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20626 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20627 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20628 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20629 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20630 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20631 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20632 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20633 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20634 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20637 var t = (this._b + cl + dr) |
0
20638 this._b = (this._c + dl + er) |
0
20639 this._c = (this._d + el + ar) |
0
20640 this._d = (this._e + al + br) |
0
20641 this._e = (this._a + bl + cr) |
0
20645 RIPEMD160.prototype._digest = function () {
20646 // create padding and handle blocks
20647 this._block[this._blockOffset++] =
0x80
20648 if (this._blockOffset
> 56) {
20649 this._block.fill(
0, this._blockOffset,
64)
20651 this._blockOffset =
0
20654 this._block.fill(
0, this._blockOffset,
56)
20655 this._block.writeUInt32LE(this._length[
0],
56)
20656 this._block.writeUInt32LE(this._length[
1],
60)
20660 var buffer = new Buffer(
20)
20661 buffer.writeInt32LE(this._a,
0)
20662 buffer.writeInt32LE(this._b,
4)
20663 buffer.writeInt32LE(this._c,
8)
20664 buffer.writeInt32LE(this._d,
12)
20665 buffer.writeInt32LE(this._e,
16)
20669 function rotl (x, n) {
20670 return (x << n) | (x
>>> (
32 - n))
20673 function fn1 (a, b, c, d, e, m, k, s) {
20674 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20677 function fn2 (a, b, c, d, e, m, k, s) {
20678 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20681 function fn3 (a, b, c, d, e, m, k, s) {
20682 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20685 function fn4 (a, b, c, d, e, m, k, s) {
20686 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20689 function fn5 (a, b, c, d, e, m, k, s) {
20690 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20693 module.exports = RIPEMD160
20695 }).call(this,require("buffer").Buffer)
20696 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20697 arguments[
4][
26][
0].apply(exports,arguments)
20698 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20699 (function (Buffer){
20700 // prototype class for hash functions
20701 function Hash (blockSize, finalSize) {
20702 this._block = new Buffer(blockSize)
20703 this._finalSize = finalSize
20704 this._blockSize = blockSize
20709 Hash.prototype.update = function (data, enc) {
20710 if (typeof data === 'string') {
20711 enc = enc || 'utf8'
20712 data = new Buffer(data, enc)
20715 var l = this._len += data.length
20716 var s = this._s ||
0
20718 var buffer = this._block
20721 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20724 for (var i =
0; i < ch; i++) {
20725 buffer[(s % this._blockSize) + i] = data[i + f]
20731 if ((s % this._blockSize) ===
0) {
20732 this._update(buffer)
20740 Hash.prototype.digest = function (enc) {
20741 // Suppose the length of the message M, in bits, is l
20742 var l = this._len *
8
20744 // Append the bit
1 to the end of the message
20745 this._block[this._len % this._blockSize] =
0x80
20747 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20748 this._block.fill(
0, this._len % this._blockSize +
1)
20750 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20751 this._update(this._block)
20752 this._block.fill(
0)
20755 // to this append the block which is equal to the number l written in binary
20756 // TODO: handle case where l is
> Math.pow(
2,
29)
20757 this._block.writeInt32BE(l, this._blockSize -
4)
20759 var hash = this._update(this._block) || this._hash()
20761 return enc ? hash.toString(enc) : hash
20764 Hash.prototype._update = function () {
20765 throw new Error('_update must be implemented by subclass')
20768 module.exports = Hash
20770 }).call(this,require("buffer").Buffer)
20771 },{"buffer":
4}],
100:[function(require,module,exports){
20772 var exports = module.exports = function SHA (algorithm) {
20773 algorithm = algorithm.toLowerCase()
20775 var Algorithm = exports[algorithm]
20776 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20778 return new Algorithm()
20781 exports.sha = require('./sha')
20782 exports.sha1 = require('./sha1')
20783 exports.sha224 = require('./sha224')
20784 exports.sha256 = require('./sha256')
20785 exports.sha384 = require('./sha384')
20786 exports.sha512 = require('./sha512')
20788 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20789 (function (Buffer){
20791 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20792 * in FIPS PUB
180-
1
20793 * This source code is derived from sha1.js of the same repository.
20794 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20795 * operation was added.
20798 var inherits = require('inherits')
20799 var Hash = require('./hash')
20802 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20805 var W = new Array(
80)
20811 Hash.call(this,
64,
56)
20814 inherits(Sha, Hash)
20816 Sha.prototype.init = function () {
20817 this._a =
0x67452301
20818 this._b =
0xefcdab89
20819 this._c =
0x98badcfe
20820 this._d =
0x10325476
20821 this._e =
0xc3d2e1f0
20826 function rotl5 (num) {
20827 return (num <<
5) | (num
>>> 27)
20830 function rotl30 (num) {
20831 return (num <<
30) | (num
>>> 2)
20834 function ft (s, b, c, d) {
20835 if (s ===
0) return (b & c) | ((~b) & d)
20836 if (s ===
2) return (b & c) | (b & d) | (c & d)
20840 Sha.prototype._update = function (M) {
20843 var a = this._a |
0
20844 var b = this._b |
0
20845 var c = this._c |
0
20846 var d = this._d |
0
20847 var e = this._e |
0
20849 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20850 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20852 for (var j =
0; j <
80; ++j) {
20854 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20863 this._a = (a + this._a) |
0
20864 this._b = (b + this._b) |
0
20865 this._c = (c + this._c) |
0
20866 this._d = (d + this._d) |
0
20867 this._e = (e + this._e) |
0
20870 Sha.prototype._hash = function () {
20871 var H = new Buffer(
20)
20873 H.writeInt32BE(this._a |
0,
0)
20874 H.writeInt32BE(this._b |
0,
4)
20875 H.writeInt32BE(this._c |
0,
8)
20876 H.writeInt32BE(this._d |
0,
12)
20877 H.writeInt32BE(this._e |
0,
16)
20882 module.exports = Sha
20884 }).call(this,require(
"buffer").Buffer)
20885 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20886 (function (Buffer){
20888 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20889 * in FIPS PUB
180-
1
20890 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20891 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20892 * Distributed under the BSD License
20893 * See http://pajhome.org.uk/crypt/md5 for details.
20896 var inherits = require('inherits')
20897 var Hash = require('./hash')
20900 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20903 var W = new Array(
80)
20909 Hash.call(this,
64,
56)
20912 inherits(Sha1, Hash)
20914 Sha1.prototype.init = function () {
20915 this._a =
0x67452301
20916 this._b =
0xefcdab89
20917 this._c =
0x98badcfe
20918 this._d =
0x10325476
20919 this._e =
0xc3d2e1f0
20924 function rotl1 (num) {
20925 return (num <<
1) | (num
>>> 31)
20928 function rotl5 (num) {
20929 return (num <<
5) | (num
>>> 27)
20932 function rotl30 (num) {
20933 return (num <<
30) | (num
>>> 2)
20936 function ft (s, b, c, d) {
20937 if (s ===
0) return (b & c) | ((~b) & d)
20938 if (s ===
2) return (b & c) | (b & d) | (c & d)
20942 Sha1.prototype._update = function (M) {
20945 var a = this._a |
0
20946 var b = this._b |
0
20947 var c = this._c |
0
20948 var d = this._d |
0
20949 var e = this._e |
0
20951 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20952 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20954 for (var j =
0; j <
80; ++j) {
20956 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20965 this._a = (a + this._a) |
0
20966 this._b = (b + this._b) |
0
20967 this._c = (c + this._c) |
0
20968 this._d = (d + this._d) |
0
20969 this._e = (e + this._e) |
0
20972 Sha1.prototype._hash = function () {
20973 var H = new Buffer(
20)
20975 H.writeInt32BE(this._a |
0,
0)
20976 H.writeInt32BE(this._b |
0,
4)
20977 H.writeInt32BE(this._c |
0,
8)
20978 H.writeInt32BE(this._d |
0,
12)
20979 H.writeInt32BE(this._e |
0,
16)
20984 module.exports = Sha1
20986 }).call(this,require(
"buffer").Buffer)
20987 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
20988 (function (Buffer){
20990 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
20992 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
20993 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20997 var inherits = require('inherits')
20998 var Sha256 = require('./sha256')
20999 var Hash = require('./hash')
21001 var W = new Array(
64)
21003 function Sha224 () {
21006 this._w = W // new Array(
64)
21008 Hash.call(this,
64,
56)
21011 inherits(Sha224, Sha256)
21013 Sha224.prototype.init = function () {
21014 this._a =
0xc1059ed8
21015 this._b =
0x367cd507
21016 this._c =
0x3070dd17
21017 this._d =
0xf70e5939
21018 this._e =
0xffc00b31
21019 this._f =
0x68581511
21020 this._g =
0x64f98fa7
21021 this._h =
0xbefa4fa4
21026 Sha224.prototype._hash = function () {
21027 var H = new Buffer(
28)
21029 H.writeInt32BE(this._a,
0)
21030 H.writeInt32BE(this._b,
4)
21031 H.writeInt32BE(this._c,
8)
21032 H.writeInt32BE(this._d,
12)
21033 H.writeInt32BE(this._e,
16)
21034 H.writeInt32BE(this._f,
20)
21035 H.writeInt32BE(this._g,
24)
21040 module.exports = Sha224
21042 }).call(this,require(
"buffer").Buffer)
21043 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21044 (function (Buffer){
21046 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21048 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21049 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21053 var inherits = require('inherits')
21054 var Hash = require('./hash')
21057 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21058 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21059 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21060 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21061 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21062 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21063 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21064 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21065 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21066 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21067 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21068 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21069 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21070 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21071 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21072 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21075 var W = new Array(
64)
21077 function Sha256 () {
21080 this._w = W // new Array(
64)
21082 Hash.call(this,
64,
56)
21085 inherits(Sha256, Hash)
21087 Sha256.prototype.init = function () {
21088 this._a =
0x6a09e667
21089 this._b =
0xbb67ae85
21090 this._c =
0x3c6ef372
21091 this._d =
0xa54ff53a
21092 this._e =
0x510e527f
21093 this._f =
0x9b05688c
21094 this._g =
0x1f83d9ab
21095 this._h =
0x5be0cd19
21100 function ch (x, y, z) {
21101 return z ^ (x & (y ^ z))
21104 function maj (x, y, z) {
21105 return (x & y) | (z & (x | y))
21108 function sigma0 (x) {
21109 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21112 function sigma1 (x) {
21113 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21116 function gamma0 (x) {
21117 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21120 function gamma1 (x) {
21121 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21124 Sha256.prototype._update = function (M) {
21127 var a = this._a |
0
21128 var b = this._b |
0
21129 var c = this._c |
0
21130 var d = this._d |
0
21131 var e = this._e |
0
21132 var f = this._f |
0
21133 var g = this._g |
0
21134 var h = this._h |
0
21136 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21137 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21139 for (var j =
0; j <
64; ++j) {
21140 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21141 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21153 this._a = (a + this._a) |
0
21154 this._b = (b + this._b) |
0
21155 this._c = (c + this._c) |
0
21156 this._d = (d + this._d) |
0
21157 this._e = (e + this._e) |
0
21158 this._f = (f + this._f) |
0
21159 this._g = (g + this._g) |
0
21160 this._h = (h + this._h) |
0
21163 Sha256.prototype._hash = function () {
21164 var H = new Buffer(
32)
21166 H.writeInt32BE(this._a,
0)
21167 H.writeInt32BE(this._b,
4)
21168 H.writeInt32BE(this._c,
8)
21169 H.writeInt32BE(this._d,
12)
21170 H.writeInt32BE(this._e,
16)
21171 H.writeInt32BE(this._f,
20)
21172 H.writeInt32BE(this._g,
24)
21173 H.writeInt32BE(this._h,
28)
21178 module.exports = Sha256
21180 }).call(this,require(
"buffer").Buffer)
21181 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21182 (function (Buffer){
21183 var inherits = require('inherits')
21184 var SHA512 = require('./sha512')
21185 var Hash = require('./hash')
21187 var W = new Array(
160)
21189 function Sha384 () {
21193 Hash.call(this,
128,
112)
21196 inherits(Sha384, SHA512)
21198 Sha384.prototype.init = function () {
21199 this._ah =
0xcbbb9d5d
21200 this._bh =
0x629a292a
21201 this._ch =
0x9159015a
21202 this._dh =
0x152fecd8
21203 this._eh =
0x67332667
21204 this._fh =
0x8eb44a87
21205 this._gh =
0xdb0c2e0d
21206 this._hh =
0x47b5481d
21208 this._al =
0xc1059ed8
21209 this._bl =
0x367cd507
21210 this._cl =
0x3070dd17
21211 this._dl =
0xf70e5939
21212 this._el =
0xffc00b31
21213 this._fl =
0x68581511
21214 this._gl =
0x64f98fa7
21215 this._hl =
0xbefa4fa4
21220 Sha384.prototype._hash = function () {
21221 var H = new Buffer(
48)
21223 function writeInt64BE (h, l, offset) {
21224 H.writeInt32BE(h, offset)
21225 H.writeInt32BE(l, offset +
4)
21228 writeInt64BE(this._ah, this._al,
0)
21229 writeInt64BE(this._bh, this._bl,
8)
21230 writeInt64BE(this._ch, this._cl,
16)
21231 writeInt64BE(this._dh, this._dl,
24)
21232 writeInt64BE(this._eh, this._el,
32)
21233 writeInt64BE(this._fh, this._fl,
40)
21238 module.exports = Sha384
21240 }).call(this,require(
"buffer").Buffer)
21241 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21242 (function (Buffer){
21243 var inherits = require('inherits')
21244 var Hash = require('./hash')
21247 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21248 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21249 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21250 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21251 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21252 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21253 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21254 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21255 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21256 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21257 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21258 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21259 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21260 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21261 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21262 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21263 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21264 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21265 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21266 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21267 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21268 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21269 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21270 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21271 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21272 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21273 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21274 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21275 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21276 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21277 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21278 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21279 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21280 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21281 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21282 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21283 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21284 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21285 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21286 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21289 var W = new Array(
160)
21291 function Sha512 () {
21295 Hash.call(this,
128,
112)
21298 inherits(Sha512, Hash)
21300 Sha512.prototype.init = function () {
21301 this._ah =
0x6a09e667
21302 this._bh =
0xbb67ae85
21303 this._ch =
0x3c6ef372
21304 this._dh =
0xa54ff53a
21305 this._eh =
0x510e527f
21306 this._fh =
0x9b05688c
21307 this._gh =
0x1f83d9ab
21308 this._hh =
0x5be0cd19
21310 this._al =
0xf3bcc908
21311 this._bl =
0x84caa73b
21312 this._cl =
0xfe94f82b
21313 this._dl =
0x5f1d36f1
21314 this._el =
0xade682d1
21315 this._fl =
0x2b3e6c1f
21316 this._gl =
0xfb41bd6b
21317 this._hl =
0x137e2179
21322 function Ch (x, y, z) {
21323 return z ^ (x & (y ^ z))
21326 function maj (x, y, z) {
21327 return (x & y) | (z & (x | y))
21330 function sigma0 (x, xl) {
21331 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21334 function sigma1 (x, xl) {
21335 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21338 function Gamma0 (x, xl) {
21339 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21342 function Gamma0l (x, xl) {
21343 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21346 function Gamma1 (x, xl) {
21347 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21350 function Gamma1l (x, xl) {
21351 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21354 function getCarry (a, b) {
21355 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21358 Sha512.prototype._update = function (M) {
21361 var ah = this._ah |
0
21362 var bh = this._bh |
0
21363 var ch = this._ch |
0
21364 var dh = this._dh |
0
21365 var eh = this._eh |
0
21366 var fh = this._fh |
0
21367 var gh = this._gh |
0
21368 var hh = this._hh |
0
21370 var al = this._al |
0
21371 var bl = this._bl |
0
21372 var cl = this._cl |
0
21373 var dl = this._dl |
0
21374 var el = this._el |
0
21375 var fl = this._fl |
0
21376 var gl = this._gl |
0
21377 var hl = this._hl |
0
21379 for (var i =
0; i <
32; i +=
2) {
21380 W[i] = M.readInt32BE(i *
4)
21381 W[i +
1] = M.readInt32BE(i *
4 +
4)
21383 for (; i <
160; i +=
2) {
21384 var xh = W[i -
15 *
2]
21385 var xl = W[i -
15 *
2 +
1]
21386 var gamma0 = Gamma0(xh, xl)
21387 var gamma0l = Gamma0l(xl, xh)
21390 xl = W[i -
2 *
2 +
1]
21391 var gamma1 = Gamma1(xh, xl)
21392 var gamma1l = Gamma1l(xl, xh)
21394 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21395 var Wi7h = W[i -
7 *
2]
21396 var Wi7l = W[i -
7 *
2 +
1]
21398 var Wi16h = W[i -
16 *
2]
21399 var Wi16l = W[i -
16 *
2 +
1]
21401 var Wil = (gamma0l + Wi7l) |
0
21402 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21403 Wil = (Wil + gamma1l) |
0
21404 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21405 Wil = (Wil + Wi16l) |
0
21406 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21412 for (var j =
0; j <
160; j +=
2) {
21416 var majh = maj(ah, bh, ch)
21417 var majl = maj(al, bl, cl)
21419 var sigma0h = sigma0(ah, al)
21420 var sigma0l = sigma0(al, ah)
21421 var sigma1h = sigma1(eh, el)
21422 var sigma1l = sigma1(el, eh)
21424 // t1 = h + sigma1 + ch + K[j] + W[j]
21428 var chh = Ch(eh, fh, gh)
21429 var chl = Ch(el, fl, gl)
21431 var t1l = (hl + sigma1l) |
0
21432 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21433 t1l = (t1l + chl) |
0
21434 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21435 t1l = (t1l + Kil) |
0
21436 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21437 t1l = (t1l + Wil) |
0
21438 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21440 // t2 = sigma0 + maj
21441 var t2l = (sigma0l + majl) |
0
21442 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21450 el = (dl + t1l) |
0
21451 eh = (dh + t1h + getCarry(el, dl)) |
0
21458 al = (t1l + t2l) |
0
21459 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21462 this._al = (this._al + al) |
0
21463 this._bl = (this._bl + bl) |
0
21464 this._cl = (this._cl + cl) |
0
21465 this._dl = (this._dl + dl) |
0
21466 this._el = (this._el + el) |
0
21467 this._fl = (this._fl + fl) |
0
21468 this._gl = (this._gl + gl) |
0
21469 this._hl = (this._hl + hl) |
0
21471 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21472 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21473 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21474 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21475 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21476 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21477 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21478 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21481 Sha512.prototype._hash = function () {
21482 var H = new Buffer(
64)
21484 function writeInt64BE (h, l, offset) {
21485 H.writeInt32BE(h, offset)
21486 H.writeInt32BE(l, offset +
4)
21489 writeInt64BE(this._ah, this._al,
0)
21490 writeInt64BE(this._bh, this._bl,
8)
21491 writeInt64BE(this._ch, this._cl,
16)
21492 writeInt64BE(this._dh, this._dl,
24)
21493 writeInt64BE(this._eh, this._el,
32)
21494 writeInt64BE(this._fh, this._fl,
40)
21495 writeInt64BE(this._gh, this._gl,
48)
21496 writeInt64BE(this._hh, this._hl,
56)
21501 module.exports = Sha512
21503 }).call(this,require(
"buffer").Buffer)
21504 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21505 var inherits = require('inherits')
21506 var native = require('./native')
21508 function TfTypeError (type, value, valueTypeName) {
21509 this.__error = Error.call(this)
21511 this.__value = value
21512 this.__valueTypeName = valueTypeName
21515 Object.defineProperty(this, 'message', {
21518 if (message) return message
21520 valueTypeName = valueTypeName || getValueTypeName(value)
21521 message = tfErrorString(type, value, valueTypeName)
21528 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21529 this.__error = error || Error.call(this)
21530 this.__label = label
21531 this.__property = property
21533 this.__value = value
21534 this.__valueTypeName = valueTypeName
21537 Object.defineProperty(this, 'message', {
21540 if (message) return message
21542 valueTypeName = valueTypeName || getValueTypeName(value)
21543 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21545 message = 'Unexpected property
"' + property + '"'
21553 // inherit from Error, assign stack
21554 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21555 inherits(tfErrorType, Error)
21556 Object.defineProperty(tfErrorType, 'stack', {
21557 get: function () { return this.__error.stack }
21561 function tfCustomError (expected, actual) {
21562 return new TfTypeError(expected, {}, actual)
21565 function tfSubError (e, property, label) {
21567 if (e instanceof TfPropertyTypeError) {
21568 property = property + '.' + e.__property
21571 return new TfPropertyTypeError(
21572 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21577 if (e instanceof TfTypeError) {
21578 return new TfPropertyTypeError(
21579 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21586 function getTypeName (fn) {
21587 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21590 function getValueTypeName (value) {
21591 return native.Nil(value) ? '' : getTypeName(value.constructor)
21594 function getValue (value) {
21595 if (native.Function(value)) return ''
21596 if (native.String(value)) return JSON.stringify(value)
21597 if (value && native.Object(value)) return ''
21601 function tfJSON (type) {
21602 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21603 if (native.Array(type)) return 'Array'
21604 if (type && native.Object(type)) return 'Object'
21606 return type !== undefined ? type : ''
21609 function tfErrorString (type, value, valueTypeName) {
21610 var valueJson = getValue(value)
21612 return 'Expected ' + tfJSON(type) + ', got' +
21613 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21614 (valueJson !== '' ? ' ' + valueJson : '')
21617 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21618 var description = '
" of type '
21619 if (label === 'key') description = '" with key type '
21621 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21625 TfTypeError: TfTypeError,
21626 TfPropertyTypeError: TfPropertyTypeError,
21627 tfCustomError: tfCustomError,
21628 tfSubError: tfSubError,
21630 getValueTypeName: getValueTypeName
21633 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21634 (function (Buffer){
21635 var NATIVE = require('./native')
21636 var ERRORS = require('./errors')
21638 function _Buffer (value) {
21639 return Buffer.isBuffer(value)
21642 function Hex (value) {
21643 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21646 function _LengthN (type, length) {
21647 var name = type.toJSON()
21649 function Length (value) {
21650 if (!type(value)) return false
21651 if (value.length === length) return true
21653 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21655 Length.toJSON = function () { return name }
21660 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21661 var _BufferN = _LengthN.bind(null, _Buffer)
21662 var _HexN = _LengthN.bind(null, Hex)
21664 var UINT53_MAX = Math.pow(2, 53) - 1
21666 function Finite (value) {
21667 return typeof value === 'number' && isFinite(value)
21669 function Int8 (value) { return ((value << 24) >> 24) === value }
21670 function Int16 (value) { return ((value << 16) >> 16) === value }
21671 function Int32 (value) { return (value | 0) === value }
21672 function UInt8 (value) { return (value & 0xff) === value }
21673 function UInt16 (value) { return (value & 0xffff) === value }
21674 function UInt32 (value) { return (value >>> 0) === value }
21675 function UInt53 (value) {
21676 return typeof value === 'number' &&
21678 value <= UINT53_MAX &&
21679 Math.floor(value) === value
21698 for (var typeName in types) {
21699 types[typeName].toJSON = function (t) {
21701 }.bind(null, typeName)
21704 module.exports = types
21706 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21707 },{"../../../../../.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){
21708 var ERRORS = require('./errors')
21709 var NATIVE = require('./native')
21712 var tfJSON = ERRORS.tfJSON
21713 var TfTypeError = ERRORS.TfTypeError
21714 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21715 var tfSubError = ERRORS.tfSubError
21716 var getValueTypeName = ERRORS.getValueTypeName
21719 arrayOf: function arrayOf (type) {
21720 type = compile(type)
21722 function _arrayOf (array, strict) {
21723 if (!NATIVE.Array(array)) return false
21725 return array.every(function (value, i) {
21727 return typeforce(type, value, strict)
21729 throw tfSubError(e, i)
21733 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21738 maybe: function maybe (type) {
21739 type = compile(type)
21741 function _maybe (value, strict) {
21742 return NATIVE.Nil(value) || type(value, strict, maybe)
21744 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21749 map: function map (propertyType, propertyKeyType) {
21750 propertyType = compile(propertyType)
21751 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21753 function _map (value, strict) {
21754 if (!NATIVE.Object(value, strict)) return false
21755 if (NATIVE.Nil(value, strict)) return false
21757 for (var propertyName in value) {
21759 if (propertyKeyType) {
21760 typeforce(propertyKeyType, propertyName, strict)
21763 throw tfSubError(e, propertyName, 'key')
21767 var propertyValue = value[propertyName]
21768 typeforce(propertyType, propertyValue, strict)
21770 throw tfSubError(e, propertyName)
21777 if (propertyKeyType) {
21778 _map.toJSON = function () {
21779 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21782 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21788 object: function object (uncompiled) {
21791 for (var typePropertyName in uncompiled) {
21792 type[typePropertyName] = compile(uncompiled[typePropertyName])
21795 function _object (value, strict) {
21796 if (!NATIVE.Object(value)) return false
21797 if (NATIVE.Nil(value)) return false
21802 for (propertyName in type) {
21803 var propertyType = type[propertyName]
21804 var propertyValue = value[propertyName]
21806 typeforce(propertyType, propertyValue, strict)
21809 throw tfSubError(e, propertyName)
21813 for (propertyName in value) {
21814 if (type[propertyName]) continue
21816 throw new TfPropertyTypeError(undefined, propertyName)
21822 _object.toJSON = function () { return tfJSON(type) }
21827 oneOf: function oneOf () {
21828 var types = [].slice.call(arguments).map(compile)
21830 function _oneOf (value, strict) {
21831 return types.some(function (type) {
21833 return typeforce(type, value, strict)
21839 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21844 quacksLike: function quacksLike (type) {
21845 function _quacksLike (value) {
21846 return type === getValueTypeName(value)
21848 _quacksLike.toJSON = function () { return type }
21853 tuple: function tuple () {
21854 var types = [].slice.call(arguments).map(compile)
21856 function _tuple (values, strict) {
21857 return types.every(function (type, i) {
21859 return typeforce(type, values[i], strict)
21861 throw tfSubError(e, i)
21863 }) && (!strict || values.length === arguments.length)
21865 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21870 value: function value (expected) {
21871 function _value (actual) {
21872 return actual === expected
21874 _value.toJSON = function () { return expected }
21880 function compile (type) {
21881 if (NATIVE.String(type)) {
21882 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21884 return NATIVE[type] || TYPES.quacksLike(type)
21885 } else if (type && NATIVE.Object(type)) {
21886 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21888 return TYPES.object(type)
21889 } else if (NATIVE.Function(type)) {
21893 return TYPES.value(type)
21896 function typeforce (type, value, strict, surrogate) {
21897 if (NATIVE.Function(type)) {
21898 if (type(value, strict)) return true
21900 throw new TfTypeError(surrogate || type, value)
21904 return typeforce(compile(type), value, strict)
21907 // assign types to typeforce function
21908 for (var typeName in NATIVE) {
21909 typeforce[typeName] = NATIVE[typeName]
21912 for (typeName in TYPES) {
21913 typeforce[typeName] = TYPES[typeName]
21916 var EXTRA = require('./extra')
21917 for (typeName in EXTRA) {
21918 typeforce[typeName] = EXTRA[typeName]
21922 function __async (type, value, strict, callback) {
21923 // default to falsy strict if using shorthand overload
21924 if (typeof strict === 'function') return __async(type, value, false, strict)
21927 typeforce(type, value, strict)
21935 typeforce.async = __async
21936 typeforce.compile = compile
21937 typeforce.TfTypeError = TfTypeError
21938 typeforce.TfPropertyTypeError = TfPropertyTypeError
21940 module.exports = typeforce
21942 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21944 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21945 Boolean: function (value) { return typeof value === 'boolean' },
21946 Function: function (value) { return typeof value === 'function' },
21947 Nil: function (value) { return value === undefined || value === null },
21948 Number: function (value) { return typeof value === 'number' },
21949 Object: function (value) { return typeof value === 'object' },
21950 String: function (value) { return typeof value === 'string' },
21951 '': function () { return true }
21955 types.Null = types.Nil
21957 for (var typeName in types) {
21958 types[typeName].toJSON = function (t) {
21960 }.bind(null, typeName)
21963 module.exports = types
21965 },{}],111:[function(require,module,exports){
21966 (function (Buffer){
21969 // Number.MAX_SAFE_INTEGER
21970 var MAX_SAFE_INTEGER = 9007199254740991
21972 function checkUInt53 (n) {
21973 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
21976 function encode (number, buffer, offset) {
21977 checkUInt53(number)
21979 if (!buffer) buffer = new Buffer(encodingLength(number))
21980 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
21981 if (!offset) offset = 0
21984 if (number < 0xfd) {
21985 buffer.writeUInt8(number, offset)
21989 } else if (number <= 0xffff) {
21990 buffer.writeUInt8(0xfd, offset)
21991 buffer.writeUInt16LE(number, offset + 1)
21995 } else if (number <= 0xffffffff) {
21996 buffer.writeUInt8(0xfe, offset)
21997 buffer.writeUInt32LE(number, offset + 1)
22002 buffer.writeUInt8(0xff, offset)
22003 buffer.writeUInt32LE(number >>> 0, offset + 1)
22004 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22011 function decode (buffer, offset) {
22012 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22013 if (!offset) offset = 0
22015 var first = buffer.readUInt8(offset)
22018 if (first < 0xfd) {
22023 } else if (first === 0xfd) {
22025 return buffer.readUInt16LE(offset + 1)
22028 } else if (first === 0xfe) {
22030 return buffer.readUInt32LE(offset + 1)
22035 var lo = buffer.readUInt32LE(offset + 1)
22036 var hi = buffer.readUInt32LE(offset + 5)
22037 var number = hi * 0x0100000000 + lo
22038 checkUInt53(number)
22044 function encodingLength (number) {
22045 checkUInt53(number)
22049 : number <= 0xffff ? 3
22050 : number <= 0xffffffff ? 5
22055 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22057 }).call(this,require("buffer
").Buffer)
22058 },{"buffer
":4}],112:[function(require,module,exports){
22059 (function (Buffer){
22060 var bs58check = require('bs58check')
22062 function decodeRaw (buffer, version) {
22063 // check version only if defined
22064 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22067 if (buffer.length === 33) {
22069 version: buffer[0],
22070 privateKey: buffer.slice(1, 33),
22076 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22078 // invalid compression flag
22079 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22082 version: buffer[0],
22083 privateKey: buffer.slice(1, 33),
22088 function encodeRaw (version, privateKey, compressed) {
22089 var result = new Buffer(compressed ? 34 : 33)
22091 result.writeUInt8(version, 0)
22092 privateKey.copy(result, 1)
22101 function decode (string, version) {
22102 return decodeRaw(bs58check.decode(string), version)
22105 function encode (version, privateKey, compressed) {
22106 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22108 return bs58check.encode(
22111 version.privateKey,
22119 decodeRaw: decodeRaw,
22121 encodeRaw: encodeRaw
22124 }).call(this,require("buffer
").Buffer)
22125 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22128 <script>bitcoinjs.bitcoin.networks.shadow = {
22129 messagePrefix: "unused",
22131 public:
0xEE80286A,
22132 private:
0xEE8031E8
22139 bitcoinjs.bitcoin.networks.shadowtn = {
22140 messagePrefix: "unused",
22142 public:
0x76C0FDFB,
22143 private:
0x76C1077A
22150 bitcoinjs.bitcoin.networks.clam = {
22151 messagePrefix: "unused",
22153 public:
0xa8c26d64,
22154 private:
0xa8c17826
22157 scriptHash:
0x00, // TODO set this correctly
22161 bitcoinjs.bitcoin.networks.crown = {
22162 messagePrefix: "unused",
22164 public:
0x0488b21e,
22165 private:
0x0488ade4
22172 bitcoinjs.bitcoin.networks.dash = {
22173 messagePrefix: "unused",
22175 public:
0x0488b21e,
22176 private:
0x0488ade4
22183 bitcoinjs.bitcoin.networks.maza = {
22184 messagePrefix: "unused",
22186 public:
0x0488b21e,
22187 private:
0x0488ade4
22194 bitcoinjs.bitcoin.networks.dashtn = {
22195 messagePrefix: "unused",
22197 public:
0x043587cf,
22198 private:
0x04358394
22205 bitcoinjs.bitcoin.networks.game = {
22206 messagePrefix: "unused",
22208 public:
0x0488b21e,
22209 private:
0x0488ade4
22216 bitcoinjs.bitcoin.networks.namecoin = {
22217 messagePrefix: "unused",
22219 public:
0x0488b21e,
22220 private:
0x0488ade4
22223 scriptHash:
0x00, // TODO set this correctly
22227 bitcoinjs.bitcoin.networks.peercoin = {
22228 messagePrefix: "unused",
22230 public:
0x0488b21e,
22231 private:
0x0488ade4
22234 scriptHash:
0x00, // TODO set this correctly
22238 bitcoinjs.bitcoin.networks.slimcoin = {
22239 messagePrefix: "unused",
22241 public:
0xef6adf10,
22242 private:
0xef69ea80
22249 bitcoinjs.bitcoin.networks.slimcointn = {
22250 messagePrefix: "unused",
22252 public:
0x043587CF,
22253 private:
0x04358394
22260 bitcoinjs.bitcoin.networks.dogecoin = {
22261 messagePrefix: '\x19Dogecoin Signed Message:\n',
22263 public:
0x02facafd,
22264 private:
0x02fac398
22271 bitcoinjs.bitcoin.networks.viacoin = {
22272 messagePrefix: '\x18Viacoin Signed Message:\n',
22274 public:
0x0488b21e,
22275 private:
0x0488ade4
22282 bitcoinjs.bitcoin.networks.viacointestnet = {
22283 messagePrefix: '\x18Viacoin Signed Message:\n',
22285 public:
0x043587cf,
22286 private:
0x04358394
22293 bitcoinjs.bitcoin.networks.gamerscoin = {
22294 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22296 public:
0x019da462,
22297 private:
0x019d9cfe
22304 bitcoinjs.bitcoin.networks.jumbucks = {
22305 messagePrefix: '\x19Jumbucks Signed Message:\n',
22307 public:
0x037a689a,
22308 private:
0x037a6460
22315 bitcoinjs.bitcoin.networks.zetacoin = {
22316 messagePrefix: '\x18Zetacoin Signed Message:\n',
22318 public:
0x0488b21e,
22319 private:
0x0488ade4
22326 bitcoinjs.bitcoin.networks.myriadcoin = {
22327 messagePrefix: "unused",
22329 public:
0x0488b21e,
22330 private:
0x0488ade4
22333 scriptHash:
0x00, // TODO set this correctly
22337 bitcoinjs.bitcoin.networks.pivx = {
22338 messagePrefix: "unused",
22340 public:
0x022d2533,
22341 private:
0x0221312b
22348 bitcoinjs.bitcoin.networks.pivxtestnet = {
22349 messagePrefix: "unused",
22351 public:
0x3a8061a0,
22352 private:
0x3a805837
22359 <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){
22360 (function (global){
22363 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22364 // original notice:
22367 * The buffer module from node.js, for the browser.
22369 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22372 function compare(a, b) {
22380 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22381 if (a[i] !== b[i]) {
22396 function isBuffer(b) {
22397 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22398 return global.Buffer.isBuffer(b);
22400 return !!(b != null && b._isBuffer);
22403 // based on node assert, original notice:
22405 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22407 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22409 // Originally from narwhal.js (http://narwhaljs.org)
22410 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22412 // Permission is hereby granted, free of charge, to any person obtaining a copy
22413 // of this software and associated documentation files (the 'Software'), to
22414 // deal in the Software without restriction, including without limitation the
22415 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22416 // sell copies of the Software, and to permit persons to whom the Software is
22417 // furnished to do so, subject to the following conditions:
22419 // The above copyright notice and this permission notice shall be included in
22420 // all copies or substantial portions of the Software.
22422 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22423 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22424 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22425 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22426 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22427 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22429 var util = require('util/');
22430 var hasOwn = Object.prototype.hasOwnProperty;
22431 var pSlice = Array.prototype.slice;
22432 var functionsHaveNames = (function () {
22433 return function foo() {}.name === 'foo';
22435 function pToString (obj) {
22436 return Object.prototype.toString.call(obj);
22438 function isView(arrbuf) {
22439 if (isBuffer(arrbuf)) {
22442 if (typeof global.ArrayBuffer !== 'function') {
22445 if (typeof ArrayBuffer.isView === 'function') {
22446 return ArrayBuffer.isView(arrbuf);
22451 if (arrbuf instanceof DataView) {
22454 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22459 //
1. The assert module provides functions that throw
22460 // AssertionError's when particular conditions are not met. The
22461 // assert module must conform to the following interface.
22463 var assert = module.exports = ok;
22465 //
2. The AssertionError is defined in assert.
22466 // new assert.AssertionError({ message: message,
22468 // expected: expected })
22470 var regex = /\s*function\s+([^\(\s]*)\s*/;
22471 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22472 function getName(func) {
22473 if (!util.isFunction(func)) {
22476 if (functionsHaveNames) {
22479 var str = func.toString();
22480 var match = str.match(regex);
22481 return match && match[
1];
22483 assert.AssertionError = function AssertionError(options) {
22484 this.name = 'AssertionError';
22485 this.actual = options.actual;
22486 this.expected = options.expected;
22487 this.operator = options.operator;
22488 if (options.message) {
22489 this.message = options.message;
22490 this.generatedMessage = false;
22492 this.message = getMessage(this);
22493 this.generatedMessage = true;
22495 var stackStartFunction = options.stackStartFunction || fail;
22496 if (Error.captureStackTrace) {
22497 Error.captureStackTrace(this, stackStartFunction);
22499 // non v8 browsers so we can have a stacktrace
22500 var err = new Error();
22502 var out = err.stack;
22504 // try to strip useless frames
22505 var fn_name = getName(stackStartFunction);
22506 var idx = out.indexOf('\n' + fn_name);
22508 // once we have located the function frame
22509 // we need to strip out everything before it (and its line)
22510 var next_line = out.indexOf('\n', idx +
1);
22511 out = out.substring(next_line +
1);
22519 // assert.AssertionError instanceof Error
22520 util.inherits(assert.AssertionError, Error);
22522 function truncate(s, n) {
22523 if (typeof s === 'string') {
22524 return s.length < n ? s : s.slice(
0, n);
22529 function inspect(something) {
22530 if (functionsHaveNames || !util.isFunction(something)) {
22531 return util.inspect(something);
22533 var rawname = getName(something);
22534 var name = rawname ? ': ' + rawname : '';
22535 return '[Function' + name + ']';
22537 function getMessage(self) {
22538 return truncate(inspect(self.actual),
128) + ' ' +
22539 self.operator + ' ' +
22540 truncate(inspect(self.expected),
128);
22543 // At present only the three keys mentioned above are used and
22544 // understood by the spec. Implementations or sub modules can pass
22545 // other keys to the AssertionError's constructor - they will be
22548 //
3. All of the following functions must throw an AssertionError
22549 // when a corresponding condition is not met, with a message that
22550 // may be undefined if not provided. All assertion methods provide
22551 // both the actual and expected values to the assertion error for
22552 // display purposes.
22554 function fail(actual, expected, message, operator, stackStartFunction) {
22555 throw new assert.AssertionError({
22558 expected: expected,
22559 operator: operator,
22560 stackStartFunction: stackStartFunction
22564 // EXTENSION! allows for well behaved errors defined elsewhere.
22565 assert.fail = fail;
22567 //
4. Pure assertion tests whether a value is truthy, as determined
22569 // assert.ok(guard, message_opt);
22570 // This statement is equivalent to assert.equal(true, !!guard,
22571 // message_opt);. To test strictly for the value true, use
22572 // assert.strictEqual(true, guard, message_opt);.
22574 function ok(value, message) {
22575 if (!value) fail(value, true, message, '==', assert.ok);
22579 //
5. The equality assertion tests shallow, coercive equality with
22581 // assert.equal(actual, expected, message_opt);
22583 assert.equal = function equal(actual, expected, message) {
22584 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22587 //
6. The non-equality assertion tests for whether two objects are not equal
22588 // with != assert.notEqual(actual, expected, message_opt);
22590 assert.notEqual = function notEqual(actual, expected, message) {
22591 if (actual == expected) {
22592 fail(actual, expected, message, '!=', assert.notEqual);
22596 //
7. The equivalence assertion tests a deep equality relation.
22597 // assert.deepEqual(actual, expected, message_opt);
22599 assert.deepEqual = function deepEqual(actual, expected, message) {
22600 if (!_deepEqual(actual, expected, false)) {
22601 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22605 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22606 if (!_deepEqual(actual, expected, true)) {
22607 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22611 function _deepEqual(actual, expected, strict, memos) {
22612 //
7.1. All identical values are equivalent, as determined by ===.
22613 if (actual === expected) {
22615 } else if (isBuffer(actual) && isBuffer(expected)) {
22616 return compare(actual, expected) ===
0;
22618 //
7.2. If the expected value is a Date object, the actual value is
22619 // equivalent if it is also a Date object that refers to the same time.
22620 } else if (util.isDate(actual) && util.isDate(expected)) {
22621 return actual.getTime() === expected.getTime();
22623 //
7.3 If the expected value is a RegExp object, the actual value is
22624 // equivalent if it is also a RegExp object with the same source and
22625 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22626 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22627 return actual.source === expected.source &&
22628 actual.global === expected.global &&
22629 actual.multiline === expected.multiline &&
22630 actual.lastIndex === expected.lastIndex &&
22631 actual.ignoreCase === expected.ignoreCase;
22633 //
7.4. Other pairs that do not both pass typeof value == 'object',
22634 // equivalence is determined by ==.
22635 } else if ((actual === null || typeof actual !== 'object') &&
22636 (expected === null || typeof expected !== 'object')) {
22637 return strict ? actual === expected : actual == expected;
22639 // If both values are instances of typed arrays, wrap their underlying
22640 // ArrayBuffers in a Buffer each to increase performance
22641 // This optimization requires the arrays to have the same type as checked by
22642 // Object.prototype.toString (aka pToString). Never perform binary
22643 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22644 // bit patterns are not identical.
22645 } else if (isView(actual) && isView(expected) &&
22646 pToString(actual) === pToString(expected) &&
22647 !(actual instanceof Float32Array ||
22648 actual instanceof Float64Array)) {
22649 return compare(new Uint8Array(actual.buffer),
22650 new Uint8Array(expected.buffer)) ===
0;
22652 //
7.5 For all other Object pairs, including Array objects, equivalence is
22653 // determined by having the same number of owned properties (as verified
22654 // with Object.prototype.hasOwnProperty.call), the same set of keys
22655 // (although not necessarily the same order), equivalent values for every
22656 // corresponding key, and an identical 'prototype' property. Note: this
22657 // accounts for both named and indexed properties on Arrays.
22658 } else if (isBuffer(actual) !== isBuffer(expected)) {
22661 memos = memos || {actual: [], expected: []};
22663 var actualIndex = memos.actual.indexOf(actual);
22664 if (actualIndex !== -
1) {
22665 if (actualIndex === memos.expected.indexOf(expected)) {
22670 memos.actual.push(actual);
22671 memos.expected.push(expected);
22673 return objEquiv(actual, expected, strict, memos);
22677 function isArguments(object) {
22678 return Object.prototype.toString.call(object) == '[object Arguments]';
22681 function objEquiv(a, b, strict, actualVisitedObjects) {
22682 if (a === null || a === undefined || b === null || b === undefined)
22684 // if one is a primitive, the other must be same
22685 if (util.isPrimitive(a) || util.isPrimitive(b))
22687 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22689 var aIsArgs = isArguments(a);
22690 var bIsArgs = isArguments(b);
22691 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22694 a = pSlice.call(a);
22695 b = pSlice.call(b);
22696 return _deepEqual(a, b, strict);
22698 var ka = objectKeys(a);
22699 var kb = objectKeys(b);
22701 // having the same number of owned properties (keys incorporates
22703 if (ka.length !== kb.length)
22705 //the same set of keys (although not necessarily the same order),
22708 //~~~cheap key test
22709 for (i = ka.length -
1; i
>=
0; i--) {
22710 if (ka[i] !== kb[i])
22713 //equivalent values for every corresponding key, and
22714 //~~~possibly expensive deep test
22715 for (i = ka.length -
1; i
>=
0; i--) {
22717 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22723 //
8. The non-equivalence assertion tests for any deep inequality.
22724 // assert.notDeepEqual(actual, expected, message_opt);
22726 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22727 if (_deepEqual(actual, expected, false)) {
22728 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22732 assert.notDeepStrictEqual = notDeepStrictEqual;
22733 function notDeepStrictEqual(actual, expected, message) {
22734 if (_deepEqual(actual, expected, true)) {
22735 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22740 //
9. The strict equality assertion tests strict equality, as determined by ===.
22741 // assert.strictEqual(actual, expected, message_opt);
22743 assert.strictEqual = function strictEqual(actual, expected, message) {
22744 if (actual !== expected) {
22745 fail(actual, expected, message, '===', assert.strictEqual);
22749 //
10. The strict non-equality assertion tests for strict inequality, as
22750 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22752 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22753 if (actual === expected) {
22754 fail(actual, expected, message, '!==', assert.notStrictEqual);
22758 function expectedException(actual, expected) {
22759 if (!actual || !expected) {
22763 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22764 return expected.test(actual);
22768 if (actual instanceof expected) {
22772 // Ignore. The instanceof check doesn't work for arrow functions.
22775 if (Error.isPrototypeOf(expected)) {
22779 return expected.call({}, actual) === true;
22782 function _tryBlock(block) {
22792 function _throws(shouldThrow, block, expected, message) {
22795 if (typeof block !== 'function') {
22796 throw new TypeError('"block" argument must be a function');
22799 if (typeof expected === 'string') {
22800 message = expected;
22804 actual = _tryBlock(block);
22806 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22807 (message ? ' ' + message : '.');
22809 if (shouldThrow && !actual) {
22810 fail(actual, expected, 'Missing expected exception' + message);
22813 var userProvidedMessage = typeof message === 'string';
22814 var isUnwantedException = !shouldThrow && util.isError(actual);
22815 var isUnexpectedException = !shouldThrow && actual && !expected;
22817 if ((isUnwantedException &&
22818 userProvidedMessage &&
22819 expectedException(actual, expected)) ||
22820 isUnexpectedException) {
22821 fail(actual, expected, 'Got unwanted exception' + message);
22824 if ((shouldThrow && actual && expected &&
22825 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22830 //
11. Expected to throw an error:
22831 // assert.throws(block, Error_opt, message_opt);
22833 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22834 _throws(true, block, error, message);
22837 // EXTENSION! This is annoying to write outside this module.
22838 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22839 _throws(false, block, error, message);
22842 assert.ifError = function(err) { if (err) throw err; };
22844 var objectKeys = Object.keys || function (obj) {
22846 for (var key in obj) {
22847 if (hasOwn.call(obj, key)) keys.push(key);
22852 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22853 },{"util/":
30}],
2:[function(require,module,exports){
22856 exports.byteLength = byteLength
22857 exports.toByteArray = toByteArray
22858 exports.fromByteArray = fromByteArray
22862 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22864 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22865 for (var i =
0, len = code.length; i < len; ++i) {
22866 lookup[i] = code[i]
22867 revLookup[code.charCodeAt(i)] = i
22870 revLookup['-'.charCodeAt(
0)] =
62
22871 revLookup['_'.charCodeAt(
0)] =
63
22873 function placeHoldersCount (b64) {
22874 var len = b64.length
22876 throw new Error('Invalid string. Length must be a multiple of
4')
22879 // the number of equal signs (place holders)
22880 // if there are two placeholders, than the two characters before it
22881 // represent one byte
22882 // if there is only one, then the three characters before it represent
2 bytes
22883 // this is just a cheap hack to not do indexOf twice
22884 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22887 function byteLength (b64) {
22888 // base64 is
4/
3 + up to two characters of the original data
22889 return b64.length *
3 /
4 - placeHoldersCount(b64)
22892 function toByteArray (b64) {
22893 var i, j, l, tmp, placeHolders, arr
22894 var len = b64.length
22895 placeHolders = placeHoldersCount(b64)
22897 arr = new Arr(len *
3 /
4 - placeHolders)
22899 // if there are placeholders, only get up to the last complete
4 chars
22900 l = placeHolders
> 0 ? len -
4 : len
22904 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22905 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22906 arr[L++] = (tmp
>> 16) &
0xFF
22907 arr[L++] = (tmp
>> 8) &
0xFF
22908 arr[L++] = tmp &
0xFF
22911 if (placeHolders ===
2) {
22912 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22913 arr[L++] = tmp &
0xFF
22914 } else if (placeHolders ===
1) {
22915 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22916 arr[L++] = (tmp
>> 8) &
0xFF
22917 arr[L++] = tmp &
0xFF
22923 function tripletToBase64 (num) {
22924 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22927 function encodeChunk (uint8, start, end) {
22930 for (var i = start; i < end; i +=
3) {
22931 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22932 output.push(tripletToBase64(tmp))
22934 return output.join('')
22937 function fromByteArray (uint8) {
22939 var len = uint8.length
22940 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22943 var maxChunkLength =
16383 // must be multiple of
3
22945 // go through the array every three bytes, we'll deal with trailing stuff later
22946 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22947 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22950 // pad the end with zeros, but make sure to not forget the extra bytes
22951 if (extraBytes ===
1) {
22952 tmp = uint8[len -
1]
22953 output += lookup[tmp
>> 2]
22954 output += lookup[(tmp <<
4) &
0x3F]
22956 } else if (extraBytes ===
2) {
22957 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
22958 output += lookup[tmp
>> 10]
22959 output += lookup[(tmp
>> 4) &
0x3F]
22960 output += lookup[(tmp <<
2) &
0x3F]
22966 return parts.join('')
22969 },{}],
3:[function(require,module,exports){
22971 },{}],
4:[function(require,module,exports){
22972 (function (global){
22975 var buffer = require('buffer');
22976 var Buffer = buffer.Buffer;
22977 var SlowBuffer = buffer.SlowBuffer;
22978 var MAX_LEN = buffer.kMaxLength ||
2147483647;
22979 exports.alloc = function alloc(size, fill, encoding) {
22980 if (typeof Buffer.alloc === 'function') {
22981 return Buffer.alloc(size, fill, encoding);
22983 if (typeof encoding === 'number') {
22984 throw new TypeError('encoding must not be number');
22986 if (typeof size !== 'number') {
22987 throw new TypeError('size must be a number');
22989 if (size
> MAX_LEN) {
22990 throw new RangeError('size is too large');
22992 var enc = encoding;
22994 if (_fill === undefined) {
22998 var buf = new Buffer(size);
22999 if (typeof _fill === 'string') {
23000 var fillBuf = new Buffer(_fill, enc);
23001 var flen = fillBuf.length;
23003 while (++i < size) {
23004 buf[i] = fillBuf[i % flen];
23011 exports.allocUnsafe = function allocUnsafe(size) {
23012 if (typeof Buffer.allocUnsafe === 'function') {
23013 return Buffer.allocUnsafe(size);
23015 if (typeof size !== 'number') {
23016 throw new TypeError('size must be a number');
23018 if (size
> MAX_LEN) {
23019 throw new RangeError('size is too large');
23021 return new Buffer(size);
23023 exports.from = function from(value, encodingOrOffset, length) {
23024 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23025 return Buffer.from(value, encodingOrOffset, length);
23027 if (typeof value === 'number') {
23028 throw new TypeError('"value" argument must not be a number');
23030 if (typeof value === 'string') {
23031 return new Buffer(value, encodingOrOffset);
23033 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23034 var offset = encodingOrOffset;
23035 if (arguments.length ===
1) {
23036 return new Buffer(value);
23038 if (typeof offset === 'undefined') {
23042 if (typeof len === 'undefined') {
23043 len = value.byteLength - offset;
23045 if (offset
>= value.byteLength) {
23046 throw new RangeError('\'offset\' is out of bounds');
23048 if (len
> value.byteLength - offset) {
23049 throw new RangeError('\'length\' is out of bounds');
23051 return new Buffer(value.slice(offset, offset + len));
23053 if (Buffer.isBuffer(value)) {
23054 var out = new Buffer(value.length);
23055 value.copy(out,
0,
0, value.length);
23059 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23060 return new Buffer(value);
23062 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23063 return new Buffer(value.data);
23067 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23069 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23070 if (typeof Buffer.allocUnsafeSlow === 'function') {
23071 return Buffer.allocUnsafeSlow(size);
23073 if (typeof size !== 'number') {
23074 throw new TypeError('size must be a number');
23076 if (size
>= MAX_LEN) {
23077 throw new RangeError('size is too large');
23079 return new SlowBuffer(size);
23082 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23083 },{"buffer":
5}],
5:[function(require,module,exports){
23085 * The buffer module from node.js, for the browser.
23087 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23090 /* eslint-disable no-proto */
23094 var base64 = require('base64-js')
23095 var ieee754 = require('ieee754')
23097 exports.Buffer = Buffer
23098 exports.SlowBuffer = SlowBuffer
23099 exports.INSPECT_MAX_BYTES =
50
23101 var K_MAX_LENGTH =
0x7fffffff
23102 exports.kMaxLength = K_MAX_LENGTH
23105 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23106 * === true Use Uint8Array implementation (fastest)
23107 * === false Print warning and recommend using `buffer` v4.x which has an Object
23108 * implementation (most compatible, even IE6)
23110 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23111 * Opera
11.6+, iOS
4.2+.
23113 * We report that the browser does not support typed arrays if the are not subclassable
23114 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23115 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23116 * for __proto__ and has a buggy typed array implementation.
23118 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23120 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23121 typeof console.error === 'function') {
23123 'This browser lacks typed array (Uint8Array) support which is required by ' +
23124 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23128 function typedArraySupport () {
23129 // Can typed array instances can be augmented?
23131 var arr = new Uint8Array(
1)
23132 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23133 return arr.foo() ===
42
23139 function createBuffer (length) {
23140 if (length
> K_MAX_LENGTH) {
23141 throw new RangeError('Invalid typed array length')
23143 // Return an augmented `Uint8Array` instance
23144 var buf = new Uint8Array(length)
23145 buf.__proto__ = Buffer.prototype
23150 * The Buffer constructor returns instances of `Uint8Array` that have their
23151 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23152 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23153 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23154 * returns a single octet.
23156 * The `Uint8Array` prototype remains unmodified.
23159 function Buffer (arg, encodingOrOffset, length) {
23161 if (typeof arg === 'number') {
23162 if (typeof encodingOrOffset === 'string') {
23164 'If encoding is specified then the first argument must be a string'
23167 return allocUnsafe(arg)
23169 return from(arg, encodingOrOffset, length)
23172 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23173 if (typeof Symbol !== 'undefined' && Symbol.species &&
23174 Buffer[Symbol.species] === Buffer) {
23175 Object.defineProperty(Buffer, Symbol.species, {
23177 configurable: true,
23183 Buffer.poolSize =
8192 // not used by this implementation
23185 function from (value, encodingOrOffset, length) {
23186 if (typeof value === 'number') {
23187 throw new TypeError('"value" argument must not be a number')
23190 if (value instanceof ArrayBuffer) {
23191 return fromArrayBuffer(value, encodingOrOffset, length)
23194 if (typeof value === 'string') {
23195 return fromString(value, encodingOrOffset)
23198 return fromObject(value)
23202 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23203 * if value is a number.
23204 * Buffer.from(str[, encoding])
23205 * Buffer.from(array)
23206 * Buffer.from(buffer)
23207 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23209 Buffer.from = function (value, encodingOrOffset, length) {
23210 return from(value, encodingOrOffset, length)
23213 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23214 // https://github.com/feross/buffer/pull/
148
23215 Buffer.prototype.__proto__ = Uint8Array.prototype
23216 Buffer.__proto__ = Uint8Array
23218 function assertSize (size) {
23219 if (typeof size !== 'number') {
23220 throw new TypeError('"size" argument must be a number')
23221 } else if (size <
0) {
23222 throw new RangeError('"size" argument must not be negative')
23226 function alloc (size, fill, encoding) {
23229 return createBuffer(size)
23231 if (fill !== undefined) {
23232 // Only pay attention to encoding if it's a string. This
23233 // prevents accidentally sending in a number that would
23234 // be interpretted as a start offset.
23235 return typeof encoding === 'string'
23236 ? createBuffer(size).fill(fill, encoding)
23237 : createBuffer(size).fill(fill)
23239 return createBuffer(size)
23243 * Creates a new filled Buffer instance.
23244 * alloc(size[, fill[, encoding]])
23246 Buffer.alloc = function (size, fill, encoding) {
23247 return alloc(size, fill, encoding)
23250 function allocUnsafe (size) {
23252 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23256 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23258 Buffer.allocUnsafe = function (size) {
23259 return allocUnsafe(size)
23262 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23264 Buffer.allocUnsafeSlow = function (size) {
23265 return allocUnsafe(size)
23268 function fromString (string, encoding) {
23269 if (typeof encoding !== 'string' || encoding === '') {
23273 if (!Buffer.isEncoding(encoding)) {
23274 throw new TypeError('"encoding" must be a valid string encoding')
23277 var length = byteLength(string, encoding) |
0
23278 var buf = createBuffer(length)
23280 var actual = buf.write(string, encoding)
23282 if (actual !== length) {
23283 // Writing a hex string, for example, that contains invalid characters will
23284 // cause everything after the first invalid character to be ignored. (e.g.
23285 // 'abxxcd' will be treated as 'ab')
23286 buf = buf.slice(
0, actual)
23292 function fromArrayLike (array) {
23293 var length = array.length <
0 ?
0 : checked(array.length) |
0
23294 var buf = createBuffer(length)
23295 for (var i =
0; i < length; i +=
1) {
23296 buf[i] = array[i] &
255
23301 function fromArrayBuffer (array, byteOffset, length) {
23302 if (byteOffset <
0 || array.byteLength < byteOffset) {
23303 throw new RangeError('\'offset\' is out of bounds')
23306 if (array.byteLength < byteOffset + (length ||
0)) {
23307 throw new RangeError('\'length\' is out of bounds')
23311 if (byteOffset === undefined && length === undefined) {
23312 buf = new Uint8Array(array)
23313 } else if (length === undefined) {
23314 buf = new Uint8Array(array, byteOffset)
23316 buf = new Uint8Array(array, byteOffset, length)
23319 // Return an augmented `Uint8Array` instance
23320 buf.__proto__ = Buffer.prototype
23324 function fromObject (obj) {
23325 if (Buffer.isBuffer(obj)) {
23326 var len = checked(obj.length) |
0
23327 var buf = createBuffer(len)
23329 if (buf.length ===
0) {
23333 obj.copy(buf,
0,
0, len)
23338 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23339 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23340 return createBuffer(
0)
23342 return fromArrayLike(obj)
23345 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23346 return fromArrayLike(obj.data)
23350 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23353 function checked (length) {
23354 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23355 // length is NaN (which is otherwise coerced to zero.)
23356 if (length
>= K_MAX_LENGTH) {
23357 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23358 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23363 function SlowBuffer (length) {
23364 if (+length != length) { // eslint-disable-line eqeqeq
23367 return Buffer.alloc(+length)
23370 Buffer.isBuffer = function isBuffer (b) {
23371 return b != null && b._isBuffer === true
23374 Buffer.compare = function compare (a, b) {
23375 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23376 throw new TypeError('Arguments must be Buffers')
23379 if (a === b) return
0
23384 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23385 if (a[i] !== b[i]) {
23392 if (x < y) return -
1
23393 if (y < x) return
1
23397 Buffer.isEncoding = function isEncoding (encoding) {
23398 switch (String(encoding).toLowerCase()) {
23416 Buffer.concat = function concat (list, length) {
23417 if (!Array.isArray(list)) {
23418 throw new TypeError('"list" argument must be an Array of Buffers')
23421 if (list.length ===
0) {
23422 return Buffer.alloc(
0)
23426 if (length === undefined) {
23428 for (i =
0; i < list.length; ++i) {
23429 length += list[i].length
23433 var buffer = Buffer.allocUnsafe(length)
23435 for (i =
0; i < list.length; ++i) {
23437 if (!Buffer.isBuffer(buf)) {
23438 throw new TypeError('"list" argument must be an Array of Buffers')
23440 buf.copy(buffer, pos)
23446 function byteLength (string, encoding) {
23447 if (Buffer.isBuffer(string)) {
23448 return string.length
23450 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23451 return string.byteLength
23453 if (typeof string !== 'string') {
23454 string = '' + string
23457 var len = string.length
23458 if (len ===
0) return
0
23460 // Use a for loop to avoid recursion
23461 var loweredCase = false
23463 switch (encoding) {
23471 return utf8ToBytes(string).length
23480 return base64ToBytes(string).length
23482 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23483 encoding = ('' + encoding).toLowerCase()
23488 Buffer.byteLength = byteLength
23490 function slowToString (encoding, start, end) {
23491 var loweredCase = false
23493 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23494 // property of a typed array.
23496 // This behaves neither like String nor Uint8Array in that we set start/end
23497 // to their upper/lower bounds if the value passed is out of range.
23498 // undefined is handled specially as per ECMA-
262 6th Edition,
23499 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23500 if (start === undefined || start <
0) {
23503 // Return early if start
> this.length. Done here to prevent potential uint32
23504 // coercion fail below.
23505 if (start
> this.length) {
23509 if (end === undefined || end
> this.length) {
23517 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23521 if (end <= start) {
23525 if (!encoding) encoding = 'utf8'
23528 switch (encoding) {
23530 return hexSlice(this, start, end)
23534 return utf8Slice(this, start, end)
23537 return asciiSlice(this, start, end)
23541 return latin1Slice(this, start, end)
23544 return base64Slice(this, start, end)
23550 return utf16leSlice(this, start, end)
23553 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23554 encoding = (encoding + '').toLowerCase()
23560 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23561 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23562 // reliably in a browserify context because there could be multiple different
23563 // copies of the 'buffer' package in use. This method works even for Buffer
23564 // instances that were created from another copy of the `buffer` package.
23565 // See: https://github.com/feross/buffer/issues/
154
23566 Buffer.prototype._isBuffer = true
23568 function swap (b, n, m) {
23574 Buffer.prototype.swap16 = function swap16 () {
23575 var len = this.length
23576 if (len %
2 !==
0) {
23577 throw new RangeError('Buffer size must be a multiple of
16-bits')
23579 for (var i =
0; i < len; i +=
2) {
23580 swap(this, i, i +
1)
23585 Buffer.prototype.swap32 = function swap32 () {
23586 var len = this.length
23587 if (len %
4 !==
0) {
23588 throw new RangeError('Buffer size must be a multiple of
32-bits')
23590 for (var i =
0; i < len; i +=
4) {
23591 swap(this, i, i +
3)
23592 swap(this, i +
1, i +
2)
23597 Buffer.prototype.swap64 = function swap64 () {
23598 var len = this.length
23599 if (len %
8 !==
0) {
23600 throw new RangeError('Buffer size must be a multiple of
64-bits')
23602 for (var i =
0; i < len; i +=
8) {
23603 swap(this, i, i +
7)
23604 swap(this, i +
1, i +
6)
23605 swap(this, i +
2, i +
5)
23606 swap(this, i +
3, i +
4)
23611 Buffer.prototype.toString = function toString () {
23612 var length = this.length
23613 if (length ===
0) return ''
23614 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23615 return slowToString.apply(this, arguments)
23618 Buffer.prototype.equals = function equals (b) {
23619 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23620 if (this === b) return true
23621 return Buffer.compare(this, b) ===
0
23624 Buffer.prototype.inspect = function inspect () {
23626 var max = exports.INSPECT_MAX_BYTES
23627 if (this.length
> 0) {
23628 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23629 if (this.length
> max) str += ' ... '
23631 return '
<Buffer ' + str + '
>'
23634 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23635 if (!Buffer.isBuffer(target)) {
23636 throw new TypeError('Argument must be a Buffer')
23639 if (start === undefined) {
23642 if (end === undefined) {
23643 end = target ? target.length :
0
23645 if (thisStart === undefined) {
23648 if (thisEnd === undefined) {
23649 thisEnd = this.length
23652 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23653 throw new RangeError('out of range index')
23656 if (thisStart
>= thisEnd && start
>= end) {
23659 if (thisStart
>= thisEnd) {
23662 if (start
>= end) {
23671 if (this === target) return
0
23673 var x = thisEnd - thisStart
23674 var y = end - start
23675 var len = Math.min(x, y)
23677 var thisCopy = this.slice(thisStart, thisEnd)
23678 var targetCopy = target.slice(start, end)
23680 for (var i =
0; i < len; ++i) {
23681 if (thisCopy[i] !== targetCopy[i]) {
23688 if (x < y) return -
1
23689 if (y < x) return
1
23693 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23694 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23697 // - buffer - a Buffer to search
23698 // - val - a string, Buffer, or number
23699 // - byteOffset - an index into `buffer`; will be clamped to an int32
23700 // - encoding - an optional encoding, relevant is val is a string
23701 // - dir - true for indexOf, false for lastIndexOf
23702 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23703 // Empty buffer means no match
23704 if (buffer.length ===
0) return -
1
23706 // Normalize byteOffset
23707 if (typeof byteOffset === 'string') {
23708 encoding = byteOffset
23710 } else if (byteOffset
> 0x7fffffff) {
23711 byteOffset =
0x7fffffff
23712 } else if (byteOffset < -
0x80000000) {
23713 byteOffset = -
0x80000000
23715 byteOffset = +byteOffset // Coerce to Number.
23716 if (isNaN(byteOffset)) {
23717 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23718 byteOffset = dir ?
0 : (buffer.length -
1)
23721 // Normalize byteOffset: negative offsets start from the end of the buffer
23722 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23723 if (byteOffset
>= buffer.length) {
23725 else byteOffset = buffer.length -
1
23726 } else if (byteOffset <
0) {
23727 if (dir) byteOffset =
0
23732 if (typeof val === 'string') {
23733 val = Buffer.from(val, encoding)
23736 // Finally, search either indexOf (if dir is true) or lastIndexOf
23737 if (Buffer.isBuffer(val)) {
23738 // Special case: looking for empty string/buffer always fails
23739 if (val.length ===
0) {
23742 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23743 } else if (typeof val === 'number') {
23744 val = val &
0xFF // Search for a byte value [
0-
255]
23745 if (typeof Uint8Array.prototype.indexOf === 'function') {
23747 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23749 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23752 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23755 throw new TypeError('val must be string, number or Buffer')
23758 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23760 var arrLength = arr.length
23761 var valLength = val.length
23763 if (encoding !== undefined) {
23764 encoding = String(encoding).toLowerCase()
23765 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23766 encoding === 'utf16le' || encoding === 'utf-
16le') {
23767 if (arr.length <
2 || val.length <
2) {
23777 function read (buf, i) {
23778 if (indexSize ===
1) {
23781 return buf.readUInt16BE(i * indexSize)
23787 var foundIndex = -
1
23788 for (i = byteOffset; i < arrLength; i++) {
23789 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23790 if (foundIndex === -
1) foundIndex = i
23791 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23793 if (foundIndex !== -
1) i -= i - foundIndex
23798 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23799 for (i = byteOffset; i
>=
0; i--) {
23801 for (var j =
0; j < valLength; j++) {
23802 if (read(arr, i + j) !== read(val, j)) {
23807 if (found) return i
23814 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23815 return this.indexOf(val, byteOffset, encoding) !== -
1
23818 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23819 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23822 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23823 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23826 function hexWrite (buf, string, offset, length) {
23827 offset = Number(offset) ||
0
23828 var remaining = buf.length - offset
23832 length = Number(length)
23833 if (length
> remaining) {
23838 // must be an even number of digits
23839 var strLen = string.length
23840 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23842 if (length
> strLen /
2) {
23843 length = strLen /
2
23845 for (var i =
0; i < length; ++i) {
23846 var parsed = parseInt(string.substr(i *
2,
2),
16)
23847 if (isNaN(parsed)) return i
23848 buf[offset + i] = parsed
23853 function utf8Write (buf, string, offset, length) {
23854 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23857 function asciiWrite (buf, string, offset, length) {
23858 return blitBuffer(asciiToBytes(string), buf, offset, length)
23861 function latin1Write (buf, string, offset, length) {
23862 return asciiWrite(buf, string, offset, length)
23865 function base64Write (buf, string, offset, length) {
23866 return blitBuffer(base64ToBytes(string), buf, offset, length)
23869 function ucs2Write (buf, string, offset, length) {
23870 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23873 Buffer.prototype.write = function write (string, offset, length, encoding) {
23874 // Buffer#write(string)
23875 if (offset === undefined) {
23877 length = this.length
23879 // Buffer#write(string, encoding)
23880 } else if (length === undefined && typeof offset === 'string') {
23882 length = this.length
23884 // Buffer#write(string, offset[, length][, encoding])
23885 } else if (isFinite(offset)) {
23886 offset = offset
>>> 0
23887 if (isFinite(length)) {
23888 length = length
>>> 0
23889 if (encoding === undefined) encoding = 'utf8'
23896 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23900 var remaining = this.length - offset
23901 if (length === undefined || length
> remaining) length = remaining
23903 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23904 throw new RangeError('Attempt to write outside buffer bounds')
23907 if (!encoding) encoding = 'utf8'
23909 var loweredCase = false
23911 switch (encoding) {
23913 return hexWrite(this, string, offset, length)
23917 return utf8Write(this, string, offset, length)
23920 return asciiWrite(this, string, offset, length)
23924 return latin1Write(this, string, offset, length)
23927 // Warning: maxLength not taken into account in base64Write
23928 return base64Write(this, string, offset, length)
23934 return ucs2Write(this, string, offset, length)
23937 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23938 encoding = ('' + encoding).toLowerCase()
23944 Buffer.prototype.toJSON = function toJSON () {
23947 data: Array.prototype.slice.call(this._arr || this,
0)
23951 function base64Slice (buf, start, end) {
23952 if (start ===
0 && end === buf.length) {
23953 return base64.fromByteArray(buf)
23955 return base64.fromByteArray(buf.slice(start, end))
23959 function utf8Slice (buf, start, end) {
23960 end = Math.min(buf.length, end)
23965 var firstByte = buf[i]
23966 var codePoint = null
23967 var bytesPerSequence = (firstByte
> 0xEF) ?
4
23968 : (firstByte
> 0xDF) ?
3
23969 : (firstByte
> 0xBF) ?
2
23972 if (i + bytesPerSequence <= end) {
23973 var secondByte, thirdByte, fourthByte, tempCodePoint
23975 switch (bytesPerSequence) {
23977 if (firstByte <
0x80) {
23978 codePoint = firstByte
23982 secondByte = buf[i +
1]
23983 if ((secondByte &
0xC0) ===
0x80) {
23984 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
23985 if (tempCodePoint
> 0x7F) {
23986 codePoint = tempCodePoint
23991 secondByte = buf[i +
1]
23992 thirdByte = buf[i +
2]
23993 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
23994 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
23995 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
23996 codePoint = tempCodePoint
24001 secondByte = buf[i +
1]
24002 thirdByte = buf[i +
2]
24003 fourthByte = buf[i +
3]
24004 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24005 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24006 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24007 codePoint = tempCodePoint
24013 if (codePoint === null) {
24014 // we did not generate a valid codePoint so insert a
24015 // replacement char (U+FFFD) and advance only
1 byte
24017 bytesPerSequence =
1
24018 } else if (codePoint
> 0xFFFF) {
24019 // encode to utf16 (surrogate pair dance)
24020 codePoint -=
0x10000
24021 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24022 codePoint =
0xDC00 | codePoint &
0x3FF
24025 res.push(codePoint)
24026 i += bytesPerSequence
24029 return decodeCodePointsArray(res)
24032 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24033 // the lowest limit is Chrome, with
0x10000 args.
24034 // We go
1 magnitude less, for safety
24035 var MAX_ARGUMENTS_LENGTH =
0x1000
24037 function decodeCodePointsArray (codePoints) {
24038 var len = codePoints.length
24039 if (len <= MAX_ARGUMENTS_LENGTH) {
24040 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24043 // Decode in chunks to avoid
"call stack size exceeded".
24047 res += String.fromCharCode.apply(
24049 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24055 function asciiSlice (buf, start, end) {
24057 end = Math.min(buf.length, end)
24059 for (var i = start; i < end; ++i) {
24060 ret += String.fromCharCode(buf[i] &
0x7F)
24065 function latin1Slice (buf, start, end) {
24067 end = Math.min(buf.length, end)
24069 for (var i = start; i < end; ++i) {
24070 ret += String.fromCharCode(buf[i])
24075 function hexSlice (buf, start, end) {
24076 var len = buf.length
24078 if (!start || start <
0) start =
0
24079 if (!end || end <
0 || end
> len) end = len
24082 for (var i = start; i < end; ++i) {
24083 out += toHex(buf[i])
24088 function utf16leSlice (buf, start, end) {
24089 var bytes = buf.slice(start, end)
24091 for (var i =
0; i < bytes.length; i +=
2) {
24092 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24097 Buffer.prototype.slice = function slice (start, end) {
24098 var len = this.length
24100 end = end === undefined ? len : ~~end
24104 if (start <
0) start =
0
24105 } else if (start
> len) {
24111 if (end <
0) end =
0
24112 } else if (end
> len) {
24116 if (end < start) end = start
24118 var newBuf = this.subarray(start, end)
24119 // Return an augmented `Uint8Array` instance
24120 newBuf.__proto__ = Buffer.prototype
24125 * Need to make sure that buffer isn't trying to write out of bounds.
24127 function checkOffset (offset, ext, length) {
24128 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24129 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24132 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24133 offset = offset
>>> 0
24134 byteLength = byteLength
>>> 0
24135 if (!noAssert) checkOffset(offset, byteLength, this.length)
24137 var val = this[offset]
24140 while (++i < byteLength && (mul *=
0x100)) {
24141 val += this[offset + i] * mul
24147 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24148 offset = offset
>>> 0
24149 byteLength = byteLength
>>> 0
24151 checkOffset(offset, byteLength, this.length)
24154 var val = this[offset + --byteLength]
24156 while (byteLength
> 0 && (mul *=
0x100)) {
24157 val += this[offset + --byteLength] * mul
24163 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24164 offset = offset
>>> 0
24165 if (!noAssert) checkOffset(offset,
1, this.length)
24166 return this[offset]
24169 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24170 offset = offset
>>> 0
24171 if (!noAssert) checkOffset(offset,
2, this.length)
24172 return this[offset] | (this[offset +
1] <<
8)
24175 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24176 offset = offset
>>> 0
24177 if (!noAssert) checkOffset(offset,
2, this.length)
24178 return (this[offset] <<
8) | this[offset +
1]
24181 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24182 offset = offset
>>> 0
24183 if (!noAssert) checkOffset(offset,
4, this.length)
24185 return ((this[offset]) |
24186 (this[offset +
1] <<
8) |
24187 (this[offset +
2] <<
16)) +
24188 (this[offset +
3] *
0x1000000)
24191 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24192 offset = offset
>>> 0
24193 if (!noAssert) checkOffset(offset,
4, this.length)
24195 return (this[offset] *
0x1000000) +
24196 ((this[offset +
1] <<
16) |
24197 (this[offset +
2] <<
8) |
24201 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24202 offset = offset
>>> 0
24203 byteLength = byteLength
>>> 0
24204 if (!noAssert) checkOffset(offset, byteLength, this.length)
24206 var val = this[offset]
24209 while (++i < byteLength && (mul *=
0x100)) {
24210 val += this[offset + i] * mul
24214 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24219 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24220 offset = offset
>>> 0
24221 byteLength = byteLength
>>> 0
24222 if (!noAssert) checkOffset(offset, byteLength, this.length)
24226 var val = this[offset + --i]
24227 while (i
> 0 && (mul *=
0x100)) {
24228 val += this[offset + --i] * mul
24232 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24237 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24238 offset = offset
>>> 0
24239 if (!noAssert) checkOffset(offset,
1, this.length)
24240 if (!(this[offset] &
0x80)) return (this[offset])
24241 return ((
0xff - this[offset] +
1) * -
1)
24244 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24245 offset = offset
>>> 0
24246 if (!noAssert) checkOffset(offset,
2, this.length)
24247 var val = this[offset] | (this[offset +
1] <<
8)
24248 return (val &
0x8000) ? val |
0xFFFF0000 : val
24251 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24252 offset = offset
>>> 0
24253 if (!noAssert) checkOffset(offset,
2, this.length)
24254 var val = this[offset +
1] | (this[offset] <<
8)
24255 return (val &
0x8000) ? val |
0xFFFF0000 : val
24258 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24259 offset = offset
>>> 0
24260 if (!noAssert) checkOffset(offset,
4, this.length)
24262 return (this[offset]) |
24263 (this[offset +
1] <<
8) |
24264 (this[offset +
2] <<
16) |
24265 (this[offset +
3] <<
24)
24268 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24269 offset = offset
>>> 0
24270 if (!noAssert) checkOffset(offset,
4, this.length)
24272 return (this[offset] <<
24) |
24273 (this[offset +
1] <<
16) |
24274 (this[offset +
2] <<
8) |
24278 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24279 offset = offset
>>> 0
24280 if (!noAssert) checkOffset(offset,
4, this.length)
24281 return ieee754.read(this, offset, true,
23,
4)
24284 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24285 offset = offset
>>> 0
24286 if (!noAssert) checkOffset(offset,
4, this.length)
24287 return ieee754.read(this, offset, false,
23,
4)
24290 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24291 offset = offset
>>> 0
24292 if (!noAssert) checkOffset(offset,
8, this.length)
24293 return ieee754.read(this, offset, true,
52,
8)
24296 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24297 offset = offset
>>> 0
24298 if (!noAssert) checkOffset(offset,
8, this.length)
24299 return ieee754.read(this, offset, false,
52,
8)
24302 function checkInt (buf, value, offset, ext, max, min) {
24303 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24304 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24305 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24308 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24310 offset = offset
>>> 0
24311 byteLength = byteLength
>>> 0
24313 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24314 checkInt(this, value, offset, byteLength, maxBytes,
0)
24319 this[offset] = value &
0xFF
24320 while (++i < byteLength && (mul *=
0x100)) {
24321 this[offset + i] = (value / mul) &
0xFF
24324 return offset + byteLength
24327 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24329 offset = offset
>>> 0
24330 byteLength = byteLength
>>> 0
24332 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24333 checkInt(this, value, offset, byteLength, maxBytes,
0)
24336 var i = byteLength -
1
24338 this[offset + i] = value &
0xFF
24339 while (--i
>=
0 && (mul *=
0x100)) {
24340 this[offset + i] = (value / mul) &
0xFF
24343 return offset + byteLength
24346 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24348 offset = offset
>>> 0
24349 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24350 this[offset] = (value &
0xff)
24354 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24356 offset = offset
>>> 0
24357 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24358 this[offset] = (value &
0xff)
24359 this[offset +
1] = (value
>>> 8)
24363 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24365 offset = offset
>>> 0
24366 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24367 this[offset] = (value
>>> 8)
24368 this[offset +
1] = (value &
0xff)
24372 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24374 offset = offset
>>> 0
24375 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24376 this[offset +
3] = (value
>>> 24)
24377 this[offset +
2] = (value
>>> 16)
24378 this[offset +
1] = (value
>>> 8)
24379 this[offset] = (value &
0xff)
24383 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24385 offset = offset
>>> 0
24386 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24387 this[offset] = (value
>>> 24)
24388 this[offset +
1] = (value
>>> 16)
24389 this[offset +
2] = (value
>>> 8)
24390 this[offset +
3] = (value &
0xff)
24394 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24396 offset = offset
>>> 0
24398 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24400 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24406 this[offset] = value &
0xFF
24407 while (++i < byteLength && (mul *=
0x100)) {
24408 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24411 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24414 return offset + byteLength
24417 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24419 offset = offset
>>> 0
24421 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24423 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24426 var i = byteLength -
1
24429 this[offset + i] = value &
0xFF
24430 while (--i
>=
0 && (mul *=
0x100)) {
24431 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24434 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24437 return offset + byteLength
24440 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24442 offset = offset
>>> 0
24443 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24444 if (value <
0) value =
0xff + value +
1
24445 this[offset] = (value &
0xff)
24449 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24451 offset = offset
>>> 0
24452 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24453 this[offset] = (value &
0xff)
24454 this[offset +
1] = (value
>>> 8)
24458 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24460 offset = offset
>>> 0
24461 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24462 this[offset] = (value
>>> 8)
24463 this[offset +
1] = (value &
0xff)
24467 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24469 offset = offset
>>> 0
24470 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24471 this[offset] = (value &
0xff)
24472 this[offset +
1] = (value
>>> 8)
24473 this[offset +
2] = (value
>>> 16)
24474 this[offset +
3] = (value
>>> 24)
24478 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24480 offset = offset
>>> 0
24481 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24482 if (value <
0) value =
0xffffffff + value +
1
24483 this[offset] = (value
>>> 24)
24484 this[offset +
1] = (value
>>> 16)
24485 this[offset +
2] = (value
>>> 8)
24486 this[offset +
3] = (value &
0xff)
24490 function checkIEEE754 (buf, value, offset, ext, max, min) {
24491 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24492 if (offset <
0) throw new RangeError('Index out of range')
24495 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24497 offset = offset
>>> 0
24499 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24501 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24505 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24506 return writeFloat(this, value, offset, true, noAssert)
24509 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24510 return writeFloat(this, value, offset, false, noAssert)
24513 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24515 offset = offset
>>> 0
24517 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24519 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24523 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24524 return writeDouble(this, value, offset, true, noAssert)
24527 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24528 return writeDouble(this, value, offset, false, noAssert)
24531 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24532 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24533 if (!start) start =
0
24534 if (!end && end !==
0) end = this.length
24535 if (targetStart
>= target.length) targetStart = target.length
24536 if (!targetStart) targetStart =
0
24537 if (end
> 0 && end < start) end = start
24539 // Copy
0 bytes; we're done
24540 if (end === start) return
0
24541 if (target.length ===
0 || this.length ===
0) return
0
24543 // Fatal error conditions
24544 if (targetStart <
0) {
24545 throw new RangeError('targetStart out of bounds')
24547 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24548 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24551 if (end
> this.length) end = this.length
24552 if (target.length - targetStart < end - start) {
24553 end = target.length - targetStart + start
24556 var len = end - start
24559 if (this === target && start < targetStart && targetStart < end) {
24560 // descending copy from end
24561 for (i = len -
1; i
>=
0; --i) {
24562 target[i + targetStart] = this[i + start]
24564 } else if (len <
1000) {
24565 // ascending copy from start
24566 for (i =
0; i < len; ++i) {
24567 target[i + targetStart] = this[i + start]
24570 Uint8Array.prototype.set.call(
24572 this.subarray(start, start + len),
24581 // buffer.fill(number[, offset[, end]])
24582 // buffer.fill(buffer[, offset[, end]])
24583 // buffer.fill(string[, offset[, end]][, encoding])
24584 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24585 // Handle string cases:
24586 if (typeof val === 'string') {
24587 if (typeof start === 'string') {
24591 } else if (typeof end === 'string') {
24595 if (val.length ===
1) {
24596 var code = val.charCodeAt(
0)
24601 if (encoding !== undefined && typeof encoding !== 'string') {
24602 throw new TypeError('encoding must be a string')
24604 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24605 throw new TypeError('Unknown encoding: ' + encoding)
24607 } else if (typeof val === 'number') {
24611 // Invalid ranges are not set to a default, so can range check early.
24612 if (start <
0 || this.length < start || this.length < end) {
24613 throw new RangeError('Out of range index')
24616 if (end <= start) {
24620 start = start
>>> 0
24621 end = end === undefined ? this.length : end
>>> 0
24626 if (typeof val === 'number') {
24627 for (i = start; i < end; ++i) {
24631 var bytes = Buffer.isBuffer(val)
24633 : new Buffer(val, encoding)
24634 var len = bytes.length
24635 for (i =
0; i < end - start; ++i) {
24636 this[i + start] = bytes[i % len]
24643 // HELPER FUNCTIONS
24644 // ================
24646 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24648 function base64clean (str) {
24649 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24650 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24651 // Node converts strings with length <
2 to ''
24652 if (str.length <
2) return ''
24653 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24654 while (str.length %
4 !==
0) {
24660 function stringtrim (str) {
24661 if (str.trim) return str.trim()
24662 return str.replace(/^\s+|\s+$/g, '')
24665 function toHex (n) {
24666 if (n <
16) return '
0' + n.toString(
16)
24667 return n.toString(
16)
24670 function utf8ToBytes (string, units) {
24671 units = units || Infinity
24673 var length = string.length
24674 var leadSurrogate = null
24677 for (var i =
0; i < length; ++i) {
24678 codePoint = string.charCodeAt(i)
24680 // is surrogate component
24681 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24682 // last char was a lead
24683 if (!leadSurrogate) {
24685 if (codePoint
> 0xDBFF) {
24686 // unexpected trail
24687 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24689 } else if (i +
1 === length) {
24691 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24696 leadSurrogate = codePoint
24701 //
2 leads in a row
24702 if (codePoint <
0xDC00) {
24703 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24704 leadSurrogate = codePoint
24708 // valid surrogate pair
24709 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24710 } else if (leadSurrogate) {
24711 // valid bmp char, but last char was a lead
24712 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24715 leadSurrogate = null
24718 if (codePoint <
0x80) {
24719 if ((units -=
1) <
0) break
24720 bytes.push(codePoint)
24721 } else if (codePoint <
0x800) {
24722 if ((units -=
2) <
0) break
24724 codePoint
>> 0x6 |
0xC0,
24725 codePoint &
0x3F |
0x80
24727 } else if (codePoint <
0x10000) {
24728 if ((units -=
3) <
0) break
24730 codePoint
>> 0xC |
0xE0,
24731 codePoint
>> 0x6 &
0x3F |
0x80,
24732 codePoint &
0x3F |
0x80
24734 } else if (codePoint <
0x110000) {
24735 if ((units -=
4) <
0) break
24737 codePoint
>> 0x12 |
0xF0,
24738 codePoint
>> 0xC &
0x3F |
0x80,
24739 codePoint
>> 0x6 &
0x3F |
0x80,
24740 codePoint &
0x3F |
0x80
24743 throw new Error('Invalid code point')
24750 function asciiToBytes (str) {
24752 for (var i =
0; i < str.length; ++i) {
24753 // Node's code seems to be doing this and not &
0x7F..
24754 byteArray.push(str.charCodeAt(i) &
0xFF)
24759 function utf16leToBytes (str, units) {
24762 for (var i =
0; i < str.length; ++i) {
24763 if ((units -=
2) <
0) break
24765 c = str.charCodeAt(i)
24775 function base64ToBytes (str) {
24776 return base64.toByteArray(base64clean(str))
24779 function blitBuffer (src, dst, offset, length) {
24780 for (var i =
0; i < length; ++i) {
24781 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24782 dst[i + offset] = src[i]
24787 function isnan (val) {
24788 return val !== val // eslint-disable-line no-self-compare
24791 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24792 (function (Buffer){
24793 // Copyright Joyent, Inc. and other Node contributors.
24795 // Permission is hereby granted, free of charge, to any person obtaining a
24796 // copy of this software and associated documentation files (the
24797 // "Software"), to deal in the Software without restriction, including
24798 // without limitation the rights to use, copy, modify, merge, publish,
24799 // distribute, sublicense, and/or sell copies of the Software, and to permit
24800 // persons to whom the Software is furnished to do so, subject to the
24801 // following conditions:
24803 // The above copyright notice and this permission notice shall be included
24804 // in all copies or substantial portions of the Software.
24806 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24807 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24808 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24809 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24810 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24811 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24812 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24814 // NOTE: These type checking functions intentionally don't use `instanceof`
24815 // because it is fragile and can be easily faked with `Object.create()`.
24817 function isArray(arg) {
24818 if (Array.isArray) {
24819 return Array.isArray(arg);
24821 return objectToString(arg) === '[object Array]';
24823 exports.isArray = isArray;
24825 function isBoolean(arg) {
24826 return typeof arg === 'boolean';
24828 exports.isBoolean = isBoolean;
24830 function isNull(arg) {
24831 return arg === null;
24833 exports.isNull = isNull;
24835 function isNullOrUndefined(arg) {
24836 return arg == null;
24838 exports.isNullOrUndefined = isNullOrUndefined;
24840 function isNumber(arg) {
24841 return typeof arg === 'number';
24843 exports.isNumber = isNumber;
24845 function isString(arg) {
24846 return typeof arg === 'string';
24848 exports.isString = isString;
24850 function isSymbol(arg) {
24851 return typeof arg === 'symbol';
24853 exports.isSymbol = isSymbol;
24855 function isUndefined(arg) {
24856 return arg === void
0;
24858 exports.isUndefined = isUndefined;
24860 function isRegExp(re) {
24861 return objectToString(re) === '[object RegExp]';
24863 exports.isRegExp = isRegExp;
24865 function isObject(arg) {
24866 return typeof arg === 'object' && arg !== null;
24868 exports.isObject = isObject;
24870 function isDate(d) {
24871 return objectToString(d) === '[object Date]';
24873 exports.isDate = isDate;
24875 function isError(e) {
24876 return (objectToString(e) === '[object Error]' || e instanceof Error);
24878 exports.isError = isError;
24880 function isFunction(arg) {
24881 return typeof arg === 'function';
24883 exports.isFunction = isFunction;
24885 function isPrimitive(arg) {
24886 return arg === null ||
24887 typeof arg === 'boolean' ||
24888 typeof arg === 'number' ||
24889 typeof arg === 'string' ||
24890 typeof arg === 'symbol' || // ES6 symbol
24891 typeof arg === 'undefined';
24893 exports.isPrimitive = isPrimitive;
24895 exports.isBuffer = Buffer.isBuffer;
24897 function objectToString(o) {
24898 return Object.prototype.toString.call(o);
24901 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24902 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24903 // Copyright Joyent, Inc. and other Node contributors.
24905 // Permission is hereby granted, free of charge, to any person obtaining a
24906 // copy of this software and associated documentation files (the
24907 // "Software"), to deal in the Software without restriction, including
24908 // without limitation the rights to use, copy, modify, merge, publish,
24909 // distribute, sublicense, and/or sell copies of the Software, and to permit
24910 // persons to whom the Software is furnished to do so, subject to the
24911 // following conditions:
24913 // The above copyright notice and this permission notice shall be included
24914 // in all copies or substantial portions of the Software.
24916 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24917 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24918 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24919 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24920 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24921 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24922 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24924 function EventEmitter() {
24925 this._events = this._events || {};
24926 this._maxListeners = this._maxListeners || undefined;
24928 module.exports = EventEmitter;
24930 // Backwards-compat with node
0.10.x
24931 EventEmitter.EventEmitter = EventEmitter;
24933 EventEmitter.prototype._events = undefined;
24934 EventEmitter.prototype._maxListeners = undefined;
24936 // By default EventEmitters will print a warning if more than
10 listeners are
24937 // added to it. This is a useful default which helps finding memory leaks.
24938 EventEmitter.defaultMaxListeners =
10;
24940 // Obviously not all Emitters should be limited to
10. This function allows
24941 // that to be increased. Set to zero for unlimited.
24942 EventEmitter.prototype.setMaxListeners = function(n) {
24943 if (!isNumber(n) || n <
0 || isNaN(n))
24944 throw TypeError('n must be a positive number');
24945 this._maxListeners = n;
24949 EventEmitter.prototype.emit = function(type) {
24950 var er, handler, len, args, i, listeners;
24955 // If there is no 'error' event listener then throw.
24956 if (type === 'error') {
24957 if (!this._events.error ||
24958 (isObject(this._events.error) && !this._events.error.length)) {
24960 if (er instanceof Error) {
24961 throw er; // Unhandled 'error' event
24963 // At least give some kind of context to the user
24964 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
24971 handler = this._events[type];
24973 if (isUndefined(handler))
24976 if (isFunction(handler)) {
24977 switch (arguments.length) {
24980 handler.call(this);
24983 handler.call(this, arguments[
1]);
24986 handler.call(this, arguments[
1], arguments[
2]);
24990 args = Array.prototype.slice.call(arguments,
1);
24991 handler.apply(this, args);
24993 } else if (isObject(handler)) {
24994 args = Array.prototype.slice.call(arguments,
1);
24995 listeners = handler.slice();
24996 len = listeners.length;
24997 for (i =
0; i < len; i++)
24998 listeners[i].apply(this, args);
25004 EventEmitter.prototype.addListener = function(type, listener) {
25007 if (!isFunction(listener))
25008 throw TypeError('listener must be a function');
25013 // To avoid recursion in the case that type === "newListener"! Before
25014 // adding it to the listeners, first emit "newListener".
25015 if (this._events.newListener)
25016 this.emit('newListener', type,
25017 isFunction(listener.listener) ?
25018 listener.listener : listener);
25020 if (!this._events[type])
25021 // Optimize the case of one listener. Don't need the extra array object.
25022 this._events[type] = listener;
25023 else if (isObject(this._events[type]))
25024 // If we've already got an array, just append.
25025 this._events[type].push(listener);
25027 // Adding the second element, need to change to array.
25028 this._events[type] = [this._events[type], listener];
25030 // Check for listener leak
25031 if (isObject(this._events[type]) && !this._events[type].warned) {
25032 if (!isUndefined(this._maxListeners)) {
25033 m = this._maxListeners;
25035 m = EventEmitter.defaultMaxListeners;
25038 if (m && m
> 0 && this._events[type].length
> m) {
25039 this._events[type].warned = true;
25040 console.error('(node) warning: possible EventEmitter memory ' +
25041 'leak detected. %d listeners added. ' +
25042 'Use emitter.setMaxListeners() to increase limit.',
25043 this._events[type].length);
25044 if (typeof console.trace === 'function') {
25045 // not supported in IE
10
25054 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25056 EventEmitter.prototype.once = function(type, listener) {
25057 if (!isFunction(listener))
25058 throw TypeError('listener must be a function');
25063 this.removeListener(type, g);
25067 listener.apply(this, arguments);
25071 g.listener = listener;
25077 // emits a 'removeListener' event iff the listener was removed
25078 EventEmitter.prototype.removeListener = function(type, listener) {
25079 var list, position, length, i;
25081 if (!isFunction(listener))
25082 throw TypeError('listener must be a function');
25084 if (!this._events || !this._events[type])
25087 list = this._events[type];
25088 length = list.length;
25091 if (list === listener ||
25092 (isFunction(list.listener) && list.listener === listener)) {
25093 delete this._events[type];
25094 if (this._events.removeListener)
25095 this.emit('removeListener', type, listener);
25097 } else if (isObject(list)) {
25098 for (i = length; i--
> 0;) {
25099 if (list[i] === listener ||
25100 (list[i].listener && list[i].listener === listener)) {
25109 if (list.length ===
1) {
25111 delete this._events[type];
25113 list.splice(position,
1);
25116 if (this._events.removeListener)
25117 this.emit('removeListener', type, listener);
25123 EventEmitter.prototype.removeAllListeners = function(type) {
25124 var key, listeners;
25129 // not listening for removeListener, no need to emit
25130 if (!this._events.removeListener) {
25131 if (arguments.length ===
0)
25133 else if (this._events[type])
25134 delete this._events[type];
25138 // emit removeListener for all listeners on all events
25139 if (arguments.length ===
0) {
25140 for (key in this._events) {
25141 if (key === 'removeListener') continue;
25142 this.removeAllListeners(key);
25144 this.removeAllListeners('removeListener');
25149 listeners = this._events[type];
25151 if (isFunction(listeners)) {
25152 this.removeListener(type, listeners);
25153 } else if (listeners) {
25155 while (listeners.length)
25156 this.removeListener(type, listeners[listeners.length -
1]);
25158 delete this._events[type];
25163 EventEmitter.prototype.listeners = function(type) {
25165 if (!this._events || !this._events[type])
25167 else if (isFunction(this._events[type]))
25168 ret = [this._events[type]];
25170 ret = this._events[type].slice();
25174 EventEmitter.prototype.listenerCount = function(type) {
25175 if (this._events) {
25176 var evlistener = this._events[type];
25178 if (isFunction(evlistener))
25180 else if (evlistener)
25181 return evlistener.length;
25186 EventEmitter.listenerCount = function(emitter, type) {
25187 return emitter.listenerCount(type);
25190 function isFunction(arg) {
25191 return typeof arg === 'function';
25194 function isNumber(arg) {
25195 return typeof arg === 'number';
25198 function isObject(arg) {
25199 return typeof arg === 'object' && arg !== null;
25202 function isUndefined(arg) {
25203 return arg === void
0;
25206 },{}],
8:[function(require,module,exports){
25207 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25209 var eLen = nBytes *
8 - mLen -
1
25210 var eMax = (
1 << eLen) -
1
25211 var eBias = eMax
>> 1
25213 var i = isLE ? (nBytes -
1) :
0
25214 var d = isLE ? -
1 :
1
25215 var s = buffer[offset + i]
25219 e = s & ((
1 << (-nBits)) -
1)
25222 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25224 m = e & ((
1 << (-nBits)) -
1)
25227 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25231 } else if (e === eMax) {
25232 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25234 m = m + Math.pow(
2, mLen)
25237 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25240 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25242 var eLen = nBytes *
8 - mLen -
1
25243 var eMax = (
1 << eLen) -
1
25244 var eBias = eMax
>> 1
25245 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25246 var i = isLE ?
0 : (nBytes -
1)
25247 var d = isLE ?
1 : -
1
25248 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25250 value = Math.abs(value)
25252 if (isNaN(value) || value === Infinity) {
25253 m = isNaN(value) ?
1 :
0
25256 e = Math.floor(Math.log(value) / Math.LN2)
25257 if (value * (c = Math.pow(
2, -e)) <
1) {
25261 if (e + eBias
>=
1) {
25264 value += rt * Math.pow(
2,
1 - eBias)
25266 if (value * c
>=
2) {
25271 if (e + eBias
>= eMax) {
25274 } else if (e + eBias
>=
1) {
25275 m = (value * c -
1) * Math.pow(
2, mLen)
25278 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25283 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25285 e = (e << mLen) | m
25287 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25289 buffer[offset + i - d] |= s *
128
25292 },{}],
9:[function(require,module,exports){
25293 if (typeof Object.create === 'function') {
25294 // implementation from standard node.js 'util' module
25295 module.exports = function inherits(ctor, superCtor) {
25296 ctor.super_ = superCtor
25297 ctor.prototype = Object.create(superCtor.prototype, {
25307 // old school shim for old browsers
25308 module.exports = function inherits(ctor, superCtor) {
25309 ctor.super_ = superCtor
25310 var TempCtor = function () {}
25311 TempCtor.prototype = superCtor.prototype
25312 ctor.prototype = new TempCtor()
25313 ctor.prototype.constructor = ctor
25317 },{}],
10:[function(require,module,exports){
25319 * Determine if an object is a Buffer
25321 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25325 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25326 // Object.prototype.constructor. Remove this eventually
25327 module.exports = function (obj) {
25328 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25331 function isBuffer (obj) {
25332 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25335 // For Node v0.10 support. Remove this eventually.
25336 function isSlowBuffer (obj) {
25337 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25340 },{}],
11:[function(require,module,exports){
25341 var toString = {}.toString;
25343 module.exports = Array.isArray || function (arr) {
25344 return toString.call(arr) == '[object Array]';
25347 },{}],
12:[function(require,module,exports){
25348 (function (process){
25351 if (!process.version ||
25352 process.version.indexOf('v0.') ===
0 ||
25353 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25354 module.exports = nextTick;
25356 module.exports = process.nextTick;
25359 function nextTick(fn, arg1, arg2, arg3) {
25360 if (typeof fn !== 'function') {
25361 throw new TypeError('"callback" argument must be a function');
25363 var len = arguments.length;
25368 return process.nextTick(fn);
25370 return process.nextTick(function afterTickOne() {
25371 fn.call(null, arg1);
25374 return process.nextTick(function afterTickTwo() {
25375 fn.call(null, arg1, arg2);
25378 return process.nextTick(function afterTickThree() {
25379 fn.call(null, arg1, arg2, arg3);
25382 args = new Array(len -
1);
25384 while (i < args.length) {
25385 args[i++] = arguments[i];
25387 return process.nextTick(function afterTick() {
25388 fn.apply(null, args);
25393 }).call(this,require('_process'))
25394 },{"_process":
13}],
13:[function(require,module,exports){
25395 // shim for using process in browser
25396 var process = module.exports = {};
25398 // cached from whatever global is present so that test runners that stub it
25399 // don't break things. But we need to wrap it in a try catch in case it is
25400 // wrapped in strict mode code which doesn't define any globals. It's inside a
25401 // function because try/catches deoptimize in certain engines.
25403 var cachedSetTimeout;
25404 var cachedClearTimeout;
25406 function defaultSetTimout() {
25407 throw new Error('setTimeout has not been defined');
25409 function defaultClearTimeout () {
25410 throw new Error('clearTimeout has not been defined');
25414 if (typeof setTimeout === 'function') {
25415 cachedSetTimeout = setTimeout;
25417 cachedSetTimeout = defaultSetTimout;
25420 cachedSetTimeout = defaultSetTimout;
25423 if (typeof clearTimeout === 'function') {
25424 cachedClearTimeout = clearTimeout;
25426 cachedClearTimeout = defaultClearTimeout;
25429 cachedClearTimeout = defaultClearTimeout;
25432 function runTimeout(fun) {
25433 if (cachedSetTimeout === setTimeout) {
25434 //normal enviroments in sane situations
25435 return setTimeout(fun,
0);
25437 // if setTimeout wasn't available but was latter defined
25438 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25439 cachedSetTimeout = setTimeout;
25440 return setTimeout(fun,
0);
25443 // when when somebody has screwed with setTimeout but no I.E. maddness
25444 return cachedSetTimeout(fun,
0);
25447 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25448 return cachedSetTimeout.call(null, fun,
0);
25450 // 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
25451 return cachedSetTimeout.call(this, fun,
0);
25457 function runClearTimeout(marker) {
25458 if (cachedClearTimeout === clearTimeout) {
25459 //normal enviroments in sane situations
25460 return clearTimeout(marker);
25462 // if clearTimeout wasn't available but was latter defined
25463 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25464 cachedClearTimeout = clearTimeout;
25465 return clearTimeout(marker);
25468 // when when somebody has screwed with setTimeout but no I.E. maddness
25469 return cachedClearTimeout(marker);
25472 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25473 return cachedClearTimeout.call(null, marker);
25475 // 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.
25476 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25477 return cachedClearTimeout.call(this, marker);
25485 var draining = false;
25487 var queueIndex = -
1;
25489 function cleanUpNextTick() {
25490 if (!draining || !currentQueue) {
25494 if (currentQueue.length) {
25495 queue = currentQueue.concat(queue);
25499 if (queue.length) {
25504 function drainQueue() {
25508 var timeout = runTimeout(cleanUpNextTick);
25511 var len = queue.length;
25513 currentQueue = queue;
25515 while (++queueIndex < len) {
25516 if (currentQueue) {
25517 currentQueue[queueIndex].run();
25521 len = queue.length;
25523 currentQueue = null;
25525 runClearTimeout(timeout);
25528 process.nextTick = function (fun) {
25529 var args = new Array(arguments.length -
1);
25530 if (arguments.length
> 1) {
25531 for (var i =
1; i < arguments.length; i++) {
25532 args[i -
1] = arguments[i];
25535 queue.push(new Item(fun, args));
25536 if (queue.length ===
1 && !draining) {
25537 runTimeout(drainQueue);
25541 // v8 likes predictible objects
25542 function Item(fun, array) {
25544 this.array = array;
25546 Item.prototype.run = function () {
25547 this.fun.apply(null, this.array);
25549 process.title = 'browser';
25550 process.browser = true;
25553 process.version = ''; // empty string to avoid regexp issues
25554 process.versions = {};
25559 process.addListener = noop;
25560 process.once = noop;
25561 process.off = noop;
25562 process.removeListener = noop;
25563 process.removeAllListeners = noop;
25564 process.emit = noop;
25566 process.binding = function (name) {
25567 throw new Error('process.binding is not supported');
25570 process.cwd = function () { return '/' };
25571 process.chdir = function (dir) {
25572 throw new Error('process.chdir is not supported');
25574 process.umask = function() { return
0; };
25576 },{}],
14:[function(require,module,exports){
25577 module.exports = require(
"./lib/_stream_duplex.js")
25579 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25580 // a duplex stream is just a stream that is both readable and writable.
25581 // Since JS doesn't have multiple prototypal inheritance, this class
25582 // prototypally inherits from Readable, and then parasitically from
25589 var objectKeys = Object.keys || function (obj) {
25591 for (var key in obj) {
25597 module.exports = Duplex;
25600 var processNextTick = require('process-nextick-args');
25604 var util = require('core-util-is');
25605 util.inherits = require('inherits');
25608 var Readable = require('./_stream_readable');
25609 var Writable = require('./_stream_writable');
25611 util.inherits(Duplex, Readable);
25613 var keys = objectKeys(Writable.prototype);
25614 for (var v =
0; v < keys.length; v++) {
25615 var method = keys[v];
25616 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25619 function Duplex(options) {
25620 if (!(this instanceof Duplex)) return new Duplex(options);
25622 Readable.call(this, options);
25623 Writable.call(this, options);
25625 if (options && options.readable === false) this.readable = false;
25627 if (options && options.writable === false) this.writable = false;
25629 this.allowHalfOpen = true;
25630 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25632 this.once('end', onend);
25635 // the no-half-open enforcer
25637 // if we allow half-open state, or if the writable side ended,
25639 if (this.allowHalfOpen || this._writableState.ended) return;
25641 // no more data can be written.
25642 // But allow more writes to happen in this tick.
25643 processNextTick(onEndNT, this);
25646 function onEndNT(self) {
25650 function forEach(xs, f) {
25651 for (var i =
0, l = xs.length; i < l; i++) {
25655 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25656 // a passthrough stream.
25657 // basically just the most minimal sort of Transform stream.
25658 // Every written chunk gets output as-is.
25662 module.exports = PassThrough;
25664 var Transform = require('./_stream_transform');
25667 var util = require('core-util-is');
25668 util.inherits = require('inherits');
25671 util.inherits(PassThrough, Transform);
25673 function PassThrough(options) {
25674 if (!(this instanceof PassThrough)) return new PassThrough(options);
25676 Transform.call(this, options);
25679 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25682 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25683 (function (process){
25686 module.exports = Readable;
25689 var processNextTick = require('process-nextick-args');
25693 var isArray = require('isarray');
25700 Readable.ReadableState = ReadableState;
25703 var EE = require('events').EventEmitter;
25705 var EElistenerCount = function (emitter, type) {
25706 return emitter.listeners(type).length;
25714 Stream = require('st' + 'ream');
25715 } catch (_) {} finally {
25716 if (!Stream) Stream = require('events').EventEmitter;
25721 var Buffer = require('buffer').Buffer;
25723 var bufferShim = require('buffer-shims');
25727 var util = require('core-util-is');
25728 util.inherits = require('inherits');
25732 var debugUtil = require('util');
25733 var debug = void
0;
25734 if (debugUtil && debugUtil.debuglog) {
25735 debug = debugUtil.debuglog('stream');
25737 debug = function () {};
25741 var BufferList = require('./internal/streams/BufferList');
25744 util.inherits(Readable, Stream);
25746 function prependListener(emitter, event, fn) {
25747 // Sadly this is not cacheable as some libraries bundle their own
25748 // event emitter implementation with them.
25749 if (typeof emitter.prependListener === 'function') {
25750 return emitter.prependListener(event, fn);
25752 // This is a hack to make sure that our error handler is attached before any
25753 // userland ones. NEVER DO THIS. This is here only because this code needs
25754 // to continue to work with older versions of Node.js that do not include
25755 // the prependListener() method. The goal is to eventually remove this hack.
25756 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]];
25760 function ReadableState(options, stream) {
25761 Duplex = Duplex || require('./_stream_duplex');
25763 options = options || {};
25765 // object stream flag. Used to make read(n) ignore n and to
25766 // make all the buffer merging and length checks go away
25767 this.objectMode = !!options.objectMode;
25769 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25771 // the point at which it stops calling _read() to fill the buffer
25772 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25773 var hwm = options.highWaterMark;
25774 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25775 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25778 this.highWaterMark = ~ ~this.highWaterMark;
25780 // A linked list is used to store data chunks instead of an array because the
25781 // linked list can remove elements from the beginning faster than
25783 this.buffer = new BufferList();
25786 this.pipesCount =
0;
25787 this.flowing = null;
25788 this.ended = false;
25789 this.endEmitted = false;
25790 this.reading = false;
25792 // a flag to be able to tell if the onwrite cb is called immediately,
25793 // or on a later tick. We set this to true at first, because any
25794 // actions that shouldn't happen until "later" should generally also
25795 // not happen before the first write call.
25798 // whenever we return null, then we set a flag to say
25799 // that we're awaiting a 'readable' event emission.
25800 this.needReadable = false;
25801 this.emittedReadable = false;
25802 this.readableListening = false;
25803 this.resumeScheduled = false;
25805 // Crypto is kind of old and crusty. Historically, its default string
25806 // encoding is 'binary' so we have to make this configurable.
25807 // Everything else in the universe uses 'utf8', though.
25808 this.defaultEncoding = options.defaultEncoding || 'utf8';
25810 // when piping, we only care about 'readable' events that happen
25811 // after read()ing all the bytes and not getting any pushback.
25812 this.ranOut = false;
25814 // the number of writers that are awaiting a drain event in .pipe()s
25815 this.awaitDrain =
0;
25817 // if true, a maybeReadMore has been scheduled
25818 this.readingMore = false;
25820 this.decoder = null;
25821 this.encoding = null;
25822 if (options.encoding) {
25823 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25824 this.decoder = new StringDecoder(options.encoding);
25825 this.encoding = options.encoding;
25829 function Readable(options) {
25830 Duplex = Duplex || require('./_stream_duplex');
25832 if (!(this instanceof Readable)) return new Readable(options);
25834 this._readableState = new ReadableState(options, this);
25837 this.readable = true;
25839 if (options && typeof options.read === 'function') this._read = options.read;
25844 // Manually shove something into the read() buffer.
25845 // This returns true if the highWaterMark has not been hit yet,
25846 // similar to how Writable.write() returns true if you should
25847 // write() some more.
25848 Readable.prototype.push = function (chunk, encoding) {
25849 var state = this._readableState;
25851 if (!state.objectMode && typeof chunk === 'string') {
25852 encoding = encoding || state.defaultEncoding;
25853 if (encoding !== state.encoding) {
25854 chunk = bufferShim.from(chunk, encoding);
25859 return readableAddChunk(this, state, chunk, encoding, false);
25862 // Unshift should *always* be something directly out of read()
25863 Readable.prototype.unshift = function (chunk) {
25864 var state = this._readableState;
25865 return readableAddChunk(this, state, chunk, '', true);
25868 Readable.prototype.isPaused = function () {
25869 return this._readableState.flowing === false;
25872 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25873 var er = chunkInvalid(state, chunk);
25875 stream.emit('error', er);
25876 } else if (chunk === null) {
25877 state.reading = false;
25878 onEofChunk(stream, state);
25879 } else if (state.objectMode || chunk && chunk.length
> 0) {
25880 if (state.ended && !addToFront) {
25881 var e = new Error('stream.push() after EOF');
25882 stream.emit('error', e);
25883 } else if (state.endEmitted && addToFront) {
25884 var _e = new Error('stream.unshift() after end event');
25885 stream.emit('error', _e);
25888 if (state.decoder && !addToFront && !encoding) {
25889 chunk = state.decoder.write(chunk);
25890 skipAdd = !state.objectMode && chunk.length ===
0;
25893 if (!addToFront) state.reading = false;
25895 // Don't add to the buffer if we've decoded to an empty string chunk and
25896 // we're not in object mode
25898 // if we want the data now, just emit it.
25899 if (state.flowing && state.length ===
0 && !state.sync) {
25900 stream.emit('data', chunk);
25903 // update the buffer info.
25904 state.length += state.objectMode ?
1 : chunk.length;
25905 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25907 if (state.needReadable) emitReadable(stream);
25911 maybeReadMore(stream, state);
25913 } else if (!addToFront) {
25914 state.reading = false;
25917 return needMoreData(state);
25920 // if it's past the high water mark, we can push in some more.
25921 // Also, if we have no data yet, we can stand some
25922 // more bytes. This is to work around cases where hwm=
0,
25923 // such as the repl. Also, if the push() triggered a
25924 // readable event, and the user called read(largeNumber) such that
25925 // needReadable was set, then we ought to push more, so that another
25926 // 'readable' event will be triggered.
25927 function needMoreData(state) {
25928 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25931 // backwards compatibility.
25932 Readable.prototype.setEncoding = function (enc) {
25933 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25934 this._readableState.decoder = new StringDecoder(enc);
25935 this._readableState.encoding = enc;
25939 // Don't raise the hwm
> 8MB
25940 var MAX_HWM =
0x800000;
25941 function computeNewHighWaterMark(n) {
25942 if (n
>= MAX_HWM) {
25945 // Get the next highest power of
2 to prevent increasing hwm excessively in
25958 // This function is designed to be inlinable, so please take care when making
25959 // changes to the function body.
25960 function howMuchToRead(n, state) {
25961 if (n <=
0 || state.length ===
0 && state.ended) return
0;
25962 if (state.objectMode) return
1;
25964 // Only flow one buffer at a time
25965 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
25967 // If we're asking for more than the current hwm, then raise the hwm.
25968 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
25969 if (n <= state.length) return n;
25970 // Don't have enough
25971 if (!state.ended) {
25972 state.needReadable = true;
25975 return state.length;
25978 // you can override either this method, or the async _read(n) below.
25979 Readable.prototype.read = function (n) {
25981 n = parseInt(n,
10);
25982 var state = this._readableState;
25985 if (n !==
0) state.emittedReadable = false;
25987 // if we're doing read(
0) to trigger a readable event, but we
25988 // already have a bunch of data in the buffer, then just trigger
25989 // the 'readable' event and move on.
25990 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
25991 debug('read: emitReadable', state.length, state.ended);
25992 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
25996 n = howMuchToRead(n, state);
25998 // if we've ended, and we're now clear, then finish it up.
25999 if (n ===
0 && state.ended) {
26000 if (state.length ===
0) endReadable(this);
26004 // All the actual chunk generation logic needs to be
26005 // *below* the call to _read. The reason is that in certain
26006 // synthetic stream cases, such as passthrough streams, _read
26007 // may be a completely synchronous operation which may change
26008 // the state of the read buffer, providing enough data when
26009 // before there was *not* enough.
26011 // So, the steps are:
26012 //
1. Figure out what the state of things will be after we do
26013 // a read from the buffer.
26015 //
2. If that resulting state will trigger a _read, then call _read.
26016 // Note that this may be asynchronous, or synchronous. Yes, it is
26017 // deeply ugly to write APIs this way, but that still doesn't mean
26018 // that the Readable class should behave improperly, as streams are
26019 // designed to be sync/async agnostic.
26020 // Take note if the _read call is sync or async (ie, if the read call
26021 // has returned yet), so that we know whether or not it's safe to emit
26024 //
3. Actually pull the requested chunks out of the buffer and return.
26026 // if we need a readable event, then we need to do some reading.
26027 var doRead = state.needReadable;
26028 debug('need readable', doRead);
26030 // if we currently have less than the highWaterMark, then also read some
26031 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26033 debug('length less than watermark', doRead);
26036 // however, if we've ended, then there's no point, and if we're already
26037 // reading, then it's unnecessary.
26038 if (state.ended || state.reading) {
26040 debug('reading or ended', doRead);
26041 } else if (doRead) {
26043 state.reading = true;
26045 // if the length is currently zero, then we *need* a readable event.
26046 if (state.length ===
0) state.needReadable = true;
26047 // call internal read method
26048 this._read(state.highWaterMark);
26049 state.sync = false;
26050 // If _read pushed data synchronously, then `reading` will be false,
26051 // and we need to re-evaluate how much data we can return to the user.
26052 if (!state.reading) n = howMuchToRead(nOrig, state);
26056 if (n
> 0) ret = fromList(n, state);else ret = null;
26058 if (ret === null) {
26059 state.needReadable = true;
26065 if (state.length ===
0) {
26066 // If we have nothing in the buffer, then we want to know
26067 // as soon as we *do* get something into the buffer.
26068 if (!state.ended) state.needReadable = true;
26070 // If we tried to read() past the EOF, then emit end on the next tick.
26071 if (nOrig !== n && state.ended) endReadable(this);
26074 if (ret !== null) this.emit('data', ret);
26079 function chunkInvalid(state, chunk) {
26081 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26082 er = new TypeError('Invalid non-string/buffer chunk');
26087 function onEofChunk(stream, state) {
26088 if (state.ended) return;
26089 if (state.decoder) {
26090 var chunk = state.decoder.end();
26091 if (chunk && chunk.length) {
26092 state.buffer.push(chunk);
26093 state.length += state.objectMode ?
1 : chunk.length;
26096 state.ended = true;
26098 // emit 'readable' now to make sure it gets picked up.
26099 emitReadable(stream);
26102 // Don't emit readable right away in sync mode, because this can trigger
26103 // another read() call =
> stack overflow. This way, it might trigger
26104 // a nextTick recursion warning, but that's not so bad.
26105 function emitReadable(stream) {
26106 var state = stream._readableState;
26107 state.needReadable = false;
26108 if (!state.emittedReadable) {
26109 debug('emitReadable', state.flowing);
26110 state.emittedReadable = true;
26111 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26115 function emitReadable_(stream) {
26116 debug('emit readable');
26117 stream.emit('readable');
26121 // at this point, the user has presumably seen the 'readable' event,
26122 // and called read() to consume some data. that may have triggered
26123 // in turn another _read(n) call, in which case reading = true if
26124 // it's in progress.
26125 // However, if we're not ended, or reading, and the length < hwm,
26126 // then go ahead and try to read some more preemptively.
26127 function maybeReadMore(stream, state) {
26128 if (!state.readingMore) {
26129 state.readingMore = true;
26130 processNextTick(maybeReadMore_, stream, state);
26134 function maybeReadMore_(stream, state) {
26135 var len = state.length;
26136 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26137 debug('maybeReadMore read
0');
26139 if (len === state.length)
26140 // didn't get any data, stop spinning.
26141 break;else len = state.length;
26143 state.readingMore = false;
26146 // abstract method. to be overridden in specific implementation classes.
26147 // call cb(er, data) where data is <= n in length.
26148 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26149 // arbitrary, and perhaps not very meaningful.
26150 Readable.prototype._read = function (n) {
26151 this.emit('error', new Error('_read() is not implemented'));
26154 Readable.prototype.pipe = function (dest, pipeOpts) {
26156 var state = this._readableState;
26158 switch (state.pipesCount) {
26160 state.pipes = dest;
26163 state.pipes = [state.pipes, dest];
26166 state.pipes.push(dest);
26169 state.pipesCount +=
1;
26170 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26172 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26174 var endFn = doEnd ? onend : cleanup;
26175 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26177 dest.on('unpipe', onunpipe);
26178 function onunpipe(readable) {
26180 if (readable === src) {
26190 // when the dest drains, it reduces the awaitDrain counter
26191 // on the source. This would be more elegant with a .once()
26192 // handler in flow(), but adding and removing repeatedly is
26194 var ondrain = pipeOnDrain(src);
26195 dest.on('drain', ondrain);
26197 var cleanedUp = false;
26198 function cleanup() {
26200 // cleanup event handlers once the pipe is broken
26201 dest.removeListener('close', onclose);
26202 dest.removeListener('finish', onfinish);
26203 dest.removeListener('drain', ondrain);
26204 dest.removeListener('error', onerror);
26205 dest.removeListener('unpipe', onunpipe);
26206 src.removeListener('end', onend);
26207 src.removeListener('end', cleanup);
26208 src.removeListener('data', ondata);
26212 // if the reader is waiting for a drain event from this
26213 // specific writer, then it would cause it to never start
26215 // So, if this is awaiting a drain, then we just call it now.
26216 // If we don't know, then assume that we are waiting for one.
26217 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26220 // If the user pushes more data while we're writing to dest then we'll end up
26221 // in ondata again. However, we only want to increase awaitDrain once because
26222 // dest will only emit one 'drain' event for the multiple writes.
26223 // =
> Introduce a guard on increasing awaitDrain.
26224 var increasedAwaitDrain = false;
26225 src.on('data', ondata);
26226 function ondata(chunk) {
26228 increasedAwaitDrain = false;
26229 var ret = dest.write(chunk);
26230 if (false === ret && !increasedAwaitDrain) {
26231 // If the user unpiped during `dest.write()`, it is possible
26232 // to get stuck in a permanently paused state if that write
26233 // also returned false.
26234 // =
> Check whether `dest` is still a piping destination.
26235 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26236 debug('false write response, pause', src._readableState.awaitDrain);
26237 src._readableState.awaitDrain++;
26238 increasedAwaitDrain = true;
26244 // if the dest has an error, then stop piping into it.
26245 // however, don't suppress the throwing behavior for this.
26246 function onerror(er) {
26247 debug('onerror', er);
26249 dest.removeListener('error', onerror);
26250 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26253 // Make sure our error handler is attached before userland ones.
26254 prependListener(dest, 'error', onerror);
26256 // Both close and finish should trigger unpipe, but only once.
26257 function onclose() {
26258 dest.removeListener('finish', onfinish);
26261 dest.once('close', onclose);
26262 function onfinish() {
26264 dest.removeListener('close', onclose);
26267 dest.once('finish', onfinish);
26269 function unpipe() {
26274 // tell the dest that it's being piped to
26275 dest.emit('pipe', src);
26277 // start the flow if it hasn't been started already.
26278 if (!state.flowing) {
26279 debug('pipe resume');
26286 function pipeOnDrain(src) {
26287 return function () {
26288 var state = src._readableState;
26289 debug('pipeOnDrain', state.awaitDrain);
26290 if (state.awaitDrain) state.awaitDrain--;
26291 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26292 state.flowing = true;
26298 Readable.prototype.unpipe = function (dest) {
26299 var state = this._readableState;
26301 // if we're not piping anywhere, then do nothing.
26302 if (state.pipesCount ===
0) return this;
26304 // just one destination. most common case.
26305 if (state.pipesCount ===
1) {
26306 // passed in one, but it's not the right one.
26307 if (dest && dest !== state.pipes) return this;
26309 if (!dest) dest = state.pipes;
26312 state.pipes = null;
26313 state.pipesCount =
0;
26314 state.flowing = false;
26315 if (dest) dest.emit('unpipe', this);
26319 // slow case. multiple pipe destinations.
26323 var dests = state.pipes;
26324 var len = state.pipesCount;
26325 state.pipes = null;
26326 state.pipesCount =
0;
26327 state.flowing = false;
26329 for (var i =
0; i < len; i++) {
26330 dests[i].emit('unpipe', this);
26334 // try to find the right one.
26335 var index = indexOf(state.pipes, dest);
26336 if (index === -
1) return this;
26338 state.pipes.splice(index,
1);
26339 state.pipesCount -=
1;
26340 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26342 dest.emit('unpipe', this);
26347 // set up data events if they are asked for
26348 // Ensure readable listeners eventually get something
26349 Readable.prototype.on = function (ev, fn) {
26350 var res = Stream.prototype.on.call(this, ev, fn);
26352 if (ev === 'data') {
26353 // Start flowing on next tick if stream isn't explicitly paused
26354 if (this._readableState.flowing !== false) this.resume();
26355 } else if (ev === 'readable') {
26356 var state = this._readableState;
26357 if (!state.endEmitted && !state.readableListening) {
26358 state.readableListening = state.needReadable = true;
26359 state.emittedReadable = false;
26360 if (!state.reading) {
26361 processNextTick(nReadingNextTick, this);
26362 } else if (state.length) {
26363 emitReadable(this, state);
26370 Readable.prototype.addListener = Readable.prototype.on;
26372 function nReadingNextTick(self) {
26373 debug('readable nexttick read
0');
26377 // pause() and resume() are remnants of the legacy readable stream API
26378 // If the user uses them, then switch into old mode.
26379 Readable.prototype.resume = function () {
26380 var state = this._readableState;
26381 if (!state.flowing) {
26383 state.flowing = true;
26384 resume(this, state);
26389 function resume(stream, state) {
26390 if (!state.resumeScheduled) {
26391 state.resumeScheduled = true;
26392 processNextTick(resume_, stream, state);
26396 function resume_(stream, state) {
26397 if (!state.reading) {
26398 debug('resume read
0');
26402 state.resumeScheduled = false;
26403 state.awaitDrain =
0;
26404 stream.emit('resume');
26406 if (state.flowing && !state.reading) stream.read(
0);
26409 Readable.prototype.pause = function () {
26410 debug('call pause flowing=%j', this._readableState.flowing);
26411 if (false !== this._readableState.flowing) {
26413 this._readableState.flowing = false;
26414 this.emit('pause');
26419 function flow(stream) {
26420 var state = stream._readableState;
26421 debug('flow', state.flowing);
26422 while (state.flowing && stream.read() !== null) {}
26425 // wrap an old-style stream as the async data source.
26426 // This is *not* part of the readable stream interface.
26427 // It is an ugly unfortunate mess of history.
26428 Readable.prototype.wrap = function (stream) {
26429 var state = this._readableState;
26430 var paused = false;
26433 stream.on('end', function () {
26434 debug('wrapped end');
26435 if (state.decoder && !state.ended) {
26436 var chunk = state.decoder.end();
26437 if (chunk && chunk.length) self.push(chunk);
26443 stream.on('data', function (chunk) {
26444 debug('wrapped data');
26445 if (state.decoder) chunk = state.decoder.write(chunk);
26447 // don't skip over falsy values in objectMode
26448 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26450 var ret = self.push(chunk);
26457 // proxy all the other methods.
26458 // important when wrapping filters and duplexes.
26459 for (var i in stream) {
26460 if (this[i] === undefined && typeof stream[i] === 'function') {
26461 this[i] = function (method) {
26462 return function () {
26463 return stream[method].apply(stream, arguments);
26469 // proxy certain important events.
26470 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26471 forEach(events, function (ev) {
26472 stream.on(ev, self.emit.bind(self, ev));
26475 // when we try to consume some more bytes, simply unpause the
26476 // underlying stream.
26477 self._read = function (n) {
26478 debug('wrapped _read', n);
26488 // exposed for testing purposes only.
26489 Readable._fromList = fromList;
26491 // Pluck off n bytes from an array of buffers.
26492 // Length is the combined lengths of all the buffers in the list.
26493 // This function is designed to be inlinable, so please take care when making
26494 // changes to the function body.
26495 function fromList(n, state) {
26496 // nothing buffered
26497 if (state.length ===
0) return null;
26500 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26501 // read it all, truncate the list
26502 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);
26503 state.buffer.clear();
26505 // read part of list
26506 ret = fromListPartial(n, state.buffer, state.decoder);
26512 // Extracts only enough buffered data to satisfy the amount requested.
26513 // This function is designed to be inlinable, so please take care when making
26514 // changes to the function body.
26515 function fromListPartial(n, list, hasStrings) {
26517 if (n < list.head.data.length) {
26518 // slice is the same for buffers and strings
26519 ret = list.head.data.slice(
0, n);
26520 list.head.data = list.head.data.slice(n);
26521 } else if (n === list.head.data.length) {
26522 // first chunk is a perfect match
26523 ret = list.shift();
26525 // result spans more than one buffer
26526 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26531 // Copies a specified amount of characters from the list of buffered data
26533 // This function is designed to be inlinable, so please take care when making
26534 // changes to the function body.
26535 function copyFromBufferString(n, list) {
26540 while (p = p.next) {
26542 var nb = n
> str.length ? str.length : n;
26543 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26546 if (nb === str.length) {
26548 if (p.next) list.head = p.next;else list.head = list.tail = null;
26551 p.data = str.slice(nb);
26561 // Copies a specified amount of bytes from the list of buffered data chunks.
26562 // This function is designed to be inlinable, so please take care when making
26563 // changes to the function body.
26564 function copyFromBuffer(n, list) {
26565 var ret = bufferShim.allocUnsafe(n);
26569 n -= p.data.length;
26570 while (p = p.next) {
26572 var nb = n
> buf.length ? buf.length : n;
26573 buf.copy(ret, ret.length - n,
0, nb);
26576 if (nb === buf.length) {
26578 if (p.next) list.head = p.next;else list.head = list.tail = null;
26581 p.data = buf.slice(nb);
26591 function endReadable(stream) {
26592 var state = stream._readableState;
26594 // If we get here before consuming all the bytes, then that is a
26595 // bug in node. Should never happen.
26596 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26598 if (!state.endEmitted) {
26599 state.ended = true;
26600 processNextTick(endReadableNT, state, stream);
26604 function endReadableNT(state, stream) {
26605 // Check that we didn't get one last unshift.
26606 if (!state.endEmitted && state.length ===
0) {
26607 state.endEmitted = true;
26608 stream.readable = false;
26609 stream.emit('end');
26613 function forEach(xs, f) {
26614 for (var i =
0, l = xs.length; i < l; i++) {
26619 function indexOf(xs, x) {
26620 for (var i =
0, l = xs.length; i < l; i++) {
26621 if (xs[i] === x) return i;
26625 }).call(this,require('_process'))
26626 },{
"./_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){
26627 // a transform stream is a readable/writable stream where you do
26628 // something with the data. Sometimes it's called a
"filter",
26629 // but that's not a great name for it, since that implies a thing where
26630 // some bits pass through, and others are simply ignored. (That would
26631 // be a valid example of a transform, of course.)
26633 // While the output is causally related to the input, it's not a
26634 // necessarily symmetric or synchronous transformation. For example,
26635 // a zlib stream might take multiple plain-text writes(), and then
26636 // emit a single compressed chunk some time in the future.
26638 // Here's how this works:
26640 // The Transform stream has all the aspects of the readable and writable
26641 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26642 // internally, and returns false if there's a lot of pending writes
26643 // buffered up. When you call read(), that calls _read(n) until
26644 // there's enough pending readable data buffered up.
26646 // In a transform stream, the written data is placed in a buffer. When
26647 // _read(n) is called, it transforms the queued up data, calling the
26648 // buffered _write cb's as it consumes chunks. If consuming a single
26649 // written chunk would result in multiple output chunks, then the first
26650 // outputted bit calls the readcb, and subsequent chunks just go into
26651 // the read buffer, and will cause it to emit 'readable' if necessary.
26653 // This way, back-pressure is actually determined by the reading side,
26654 // since _read has to be called to start processing a new chunk. However,
26655 // a pathological inflate type of transform can cause excessive buffering
26656 // here. For example, imagine a stream where every byte of input is
26657 // interpreted as an integer from
0-
255, and then results in that many
26658 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26659 //
1kb of data being output. In this case, you could write a very small
26660 // amount of input, and end up with a very large amount of output. In
26661 // such a pathological inflating mechanism, there'd be no way to tell
26662 // the system to stop doing the transform. A single
4MB write could
26663 // cause the system to run out of memory.
26665 // However, even in such a pathological case, only a single written chunk
26666 // would be consumed, and then the rest would wait (un-transformed) until
26667 // the results of the previous transformed chunk were consumed.
26671 module.exports = Transform;
26673 var Duplex = require('./_stream_duplex');
26676 var util = require('core-util-is');
26677 util.inherits = require('inherits');
26680 util.inherits(Transform, Duplex);
26682 function TransformState(stream) {
26683 this.afterTransform = function (er, data) {
26684 return afterTransform(stream, er, data);
26687 this.needTransform = false;
26688 this.transforming = false;
26689 this.writecb = null;
26690 this.writechunk = null;
26691 this.writeencoding = null;
26694 function afterTransform(stream, er, data) {
26695 var ts = stream._transformState;
26696 ts.transforming = false;
26698 var cb = ts.writecb;
26700 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26702 ts.writechunk = null;
26705 if (data !== null && data !== undefined) stream.push(data);
26709 var rs = stream._readableState;
26710 rs.reading = false;
26711 if (rs.needReadable || rs.length < rs.highWaterMark) {
26712 stream._read(rs.highWaterMark);
26716 function Transform(options) {
26717 if (!(this instanceof Transform)) return new Transform(options);
26719 Duplex.call(this, options);
26721 this._transformState = new TransformState(this);
26725 // start out asking for a readable event once data is transformed.
26726 this._readableState.needReadable = true;
26728 // we have implemented the _read method, and done the other things
26729 // that Readable wants before the first _read call, so unset the
26730 // sync guard flag.
26731 this._readableState.sync = false;
26734 if (typeof options.transform === 'function') this._transform = options.transform;
26736 if (typeof options.flush === 'function') this._flush = options.flush;
26739 // When the writable side finishes, then flush out anything remaining.
26740 this.once('prefinish', function () {
26741 if (typeof this._flush === 'function') this._flush(function (er, data) {
26742 done(stream, er, data);
26743 });else done(stream);
26747 Transform.prototype.push = function (chunk, encoding) {
26748 this._transformState.needTransform = false;
26749 return Duplex.prototype.push.call(this, chunk, encoding);
26752 // This is the part where you do stuff!
26753 // override this function in implementation classes.
26754 // 'chunk' is an input chunk.
26756 // Call `push(newChunk)` to pass along transformed output
26757 // to the readable side. You may call 'push' zero or more times.
26759 // Call `cb(err)` when you are done with this chunk. If you pass
26760 // an error, then that'll put the hurt on the whole operation. If you
26761 // never call cb(), then you'll never get another chunk.
26762 Transform.prototype._transform = function (chunk, encoding, cb) {
26763 throw new Error('_transform() is not implemented');
26766 Transform.prototype._write = function (chunk, encoding, cb) {
26767 var ts = this._transformState;
26769 ts.writechunk = chunk;
26770 ts.writeencoding = encoding;
26771 if (!ts.transforming) {
26772 var rs = this._readableState;
26773 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26777 // Doesn't matter what the args are here.
26778 // _transform does all the work.
26779 // That we got here means that the readable side wants more data.
26780 Transform.prototype._read = function (n) {
26781 var ts = this._transformState;
26783 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26784 ts.transforming = true;
26785 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26787 // mark that we need a transform, so that any data that comes in
26788 // will get processed, now that we've asked for it.
26789 ts.needTransform = true;
26793 function done(stream, er, data) {
26794 if (er) return stream.emit('error', er);
26796 if (data !== null && data !== undefined) stream.push(data);
26798 // if there's nothing in the write buffer, then that means
26799 // that nothing more will ever be provided
26800 var ws = stream._writableState;
26801 var ts = stream._transformState;
26803 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26805 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26807 return stream.push(null);
26809 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26810 (function (process){
26811 // A bit simpler than readable streams.
26812 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26813 // the drain event emission and buffering.
26817 module.exports = Writable;
26820 var processNextTick = require('process-nextick-args');
26824 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26831 Writable.WritableState = WritableState;
26834 var util = require('core-util-is');
26835 util.inherits = require('inherits');
26839 var internalUtil = {
26840 deprecate: require('util-deprecate')
26848 Stream = require('st' + 'ream');
26849 } catch (_) {} finally {
26850 if (!Stream) Stream = require('events').EventEmitter;
26855 var Buffer = require('buffer').Buffer;
26857 var bufferShim = require('buffer-shims');
26860 util.inherits(Writable, Stream);
26864 function WriteReq(chunk, encoding, cb) {
26865 this.chunk = chunk;
26866 this.encoding = encoding;
26867 this.callback = cb;
26871 function WritableState(options, stream) {
26872 Duplex = Duplex || require('./_stream_duplex');
26874 options = options || {};
26876 // object stream flag to indicate whether or not this stream
26877 // contains buffers or objects.
26878 this.objectMode = !!options.objectMode;
26880 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26882 // the point at which write() starts returning false
26883 // Note:
0 is a valid value, means that we always return false if
26884 // the entire buffer is not flushed immediately on write()
26885 var hwm = options.highWaterMark;
26886 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26887 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26890 this.highWaterMark = ~ ~this.highWaterMark;
26892 // drain event flag.
26893 this.needDrain = false;
26894 // at the start of calling end()
26895 this.ending = false;
26896 // when end() has been called, and returned
26897 this.ended = false;
26898 // when 'finish' is emitted
26899 this.finished = false;
26901 // should we decode strings into buffers before passing to _write?
26902 // this is here so that some node-core streams can optimize string
26903 // handling at a lower level.
26904 var noDecode = options.decodeStrings === false;
26905 this.decodeStrings = !noDecode;
26907 // Crypto is kind of old and crusty. Historically, its default string
26908 // encoding is 'binary' so we have to make this configurable.
26909 // Everything else in the universe uses 'utf8', though.
26910 this.defaultEncoding = options.defaultEncoding || 'utf8';
26912 // not an actual buffer we keep track of, but a measurement
26913 // of how much we're waiting to get pushed to some underlying
26917 // a flag to see when we're in the middle of a write.
26918 this.writing = false;
26920 // when true all writes will be buffered until .uncork() call
26923 // a flag to be able to tell if the onwrite cb is called immediately,
26924 // or on a later tick. We set this to true at first, because any
26925 // actions that shouldn't happen until "later" should generally also
26926 // not happen before the first write call.
26929 // a flag to know if we're processing previously buffered items, which
26930 // may call the _write() callback in the same tick, so that we don't
26931 // end up in an overlapped onwrite situation.
26932 this.bufferProcessing = false;
26934 // the callback that's passed to _write(chunk,cb)
26935 this.onwrite = function (er) {
26936 onwrite(stream, er);
26939 // the callback that the user supplies to write(chunk,encoding,cb)
26940 this.writecb = null;
26942 // the amount that is being written when _write is called.
26945 this.bufferedRequest = null;
26946 this.lastBufferedRequest = null;
26948 // number of pending user-supplied write callbacks
26949 // this must be
0 before 'finish' can be emitted
26950 this.pendingcb =
0;
26952 // emit prefinish if the only thing we're waiting for is _write cbs
26953 // This is relevant for synchronous Transform streams
26954 this.prefinished = false;
26956 // True if the error was already emitted and should not be thrown again
26957 this.errorEmitted = false;
26959 // count buffered requests
26960 this.bufferedRequestCount =
0;
26962 // allocate the first CorkedRequest, there is always
26963 // one allocated and free to use, and we maintain at most two
26964 this.corkedRequestsFree = new CorkedRequest(this);
26967 WritableState.prototype.getBuffer = function getBuffer() {
26968 var current = this.bufferedRequest;
26972 current = current.next;
26979 Object.defineProperty(WritableState.prototype, 'buffer', {
26980 get: internalUtil.deprecate(function () {
26981 return this.getBuffer();
26982 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
26987 // Test _writableState for inheritance to account for Duplex streams,
26988 // whose prototype chain only points to Readable.
26989 var realHasInstance;
26990 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
26991 realHasInstance = Function.prototype[Symbol.hasInstance];
26992 Object.defineProperty(Writable, Symbol.hasInstance, {
26993 value: function (object) {
26994 if (realHasInstance.call(this, object)) return true;
26996 return object && object._writableState instanceof WritableState;
27000 realHasInstance = function (object) {
27001 return object instanceof this;
27005 function Writable(options) {
27006 Duplex = Duplex || require('./_stream_duplex');
27008 // Writable ctor is applied to Duplexes, too.
27009 // `realHasInstance` is necessary because using plain `instanceof`
27010 // would return false, as no `_writableState` property is attached.
27012 // Trying to use the custom `instanceof` for Writable here will also break the
27013 // Node.js LazyTransform implementation, which has a non-trivial getter for
27014 // `_writableState` that would lead to infinite recursion.
27015 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27016 return new Writable(options);
27019 this._writableState = new WritableState(options, this);
27022 this.writable = true;
27025 if (typeof options.write === 'function') this._write = options.write;
27027 if (typeof options.writev === 'function') this._writev = options.writev;
27033 // Otherwise people can pipe Writable streams, which is just wrong.
27034 Writable.prototype.pipe = function () {
27035 this.emit('error', new Error('Cannot pipe, not readable'));
27038 function writeAfterEnd(stream, cb) {
27039 var er = new Error('write after end');
27040 // TODO: defer error events consistently everywhere, not just the cb
27041 stream.emit('error', er);
27042 processNextTick(cb, er);
27045 // If we get something that is not a buffer, string, null, or undefined,
27046 // and we're not in objectMode, then that's an error.
27047 // Otherwise stream chunks are all considered to be of length=
1, and the
27048 // watermarks determine how many objects to keep in the buffer, rather than
27049 // how many bytes or characters.
27050 function validChunk(stream, state, chunk, cb) {
27053 // Always throw error if a null is written
27054 // if we are not in object mode then throw
27055 // if it is not a buffer, string, or undefined.
27056 if (chunk === null) {
27057 er = new TypeError('May not write null values to stream');
27058 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27059 er = new TypeError('Invalid non-string/buffer chunk');
27062 stream.emit('error', er);
27063 processNextTick(cb, er);
27069 Writable.prototype.write = function (chunk, encoding, cb) {
27070 var state = this._writableState;
27073 if (typeof encoding === 'function') {
27078 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27080 if (typeof cb !== 'function') cb = nop;
27082 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27084 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27090 Writable.prototype.cork = function () {
27091 var state = this._writableState;
27096 Writable.prototype.uncork = function () {
27097 var state = this._writableState;
27099 if (state.corked) {
27102 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27106 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27107 // node::ParseEncoding() requires lower case.
27108 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27109 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);
27110 this._writableState.defaultEncoding = encoding;
27114 function decodeChunk(state, chunk, encoding) {
27115 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27116 chunk = bufferShim.from(chunk, encoding);
27121 // if we're already writing something, then just put this
27122 // in the queue, and wait our turn. Otherwise, call _write
27123 // If we return false, then we need a drain event, so set that flag.
27124 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27125 chunk = decodeChunk(state, chunk, encoding);
27127 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27128 var len = state.objectMode ?
1 : chunk.length;
27130 state.length += len;
27132 var ret = state.length < state.highWaterMark;
27133 // we must ensure that previous needDrain will not be reset to false.
27134 if (!ret) state.needDrain = true;
27136 if (state.writing || state.corked) {
27137 var last = state.lastBufferedRequest;
27138 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27140 last.next = state.lastBufferedRequest;
27142 state.bufferedRequest = state.lastBufferedRequest;
27144 state.bufferedRequestCount +=
1;
27146 doWrite(stream, state, false, len, chunk, encoding, cb);
27152 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27153 state.writelen = len;
27154 state.writecb = cb;
27155 state.writing = true;
27157 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27158 state.sync = false;
27161 function onwriteError(stream, state, sync, er, cb) {
27163 if (sync) processNextTick(cb, er);else cb(er);
27165 stream._writableState.errorEmitted = true;
27166 stream.emit('error', er);
27169 function onwriteStateUpdate(state) {
27170 state.writing = false;
27171 state.writecb = null;
27172 state.length -= state.writelen;
27173 state.writelen =
0;
27176 function onwrite(stream, er) {
27177 var state = stream._writableState;
27178 var sync = state.sync;
27179 var cb = state.writecb;
27181 onwriteStateUpdate(state);
27183 if (er) onwriteError(stream, state, sync, er, cb);else {
27184 // Check if we're actually ready to finish, but don't emit yet
27185 var finished = needFinish(state);
27187 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27188 clearBuffer(stream, state);
27193 asyncWrite(afterWrite, stream, state, finished, cb);
27196 afterWrite(stream, state, finished, cb);
27201 function afterWrite(stream, state, finished, cb) {
27202 if (!finished) onwriteDrain(stream, state);
27205 finishMaybe(stream, state);
27208 // Must force callback to be called on nextTick, so that we don't
27209 // emit 'drain' before the write() consumer gets the 'false' return
27210 // value, and has a chance to attach a 'drain' listener.
27211 function onwriteDrain(stream, state) {
27212 if (state.length ===
0 && state.needDrain) {
27213 state.needDrain = false;
27214 stream.emit('drain');
27218 // if there's something in the buffer waiting, then process it
27219 function clearBuffer(stream, state) {
27220 state.bufferProcessing = true;
27221 var entry = state.bufferedRequest;
27223 if (stream._writev && entry && entry.next) {
27224 // Fast case, write everything using _writev()
27225 var l = state.bufferedRequestCount;
27226 var buffer = new Array(l);
27227 var holder = state.corkedRequestsFree;
27228 holder.entry = entry;
27232 buffer[count] = entry;
27233 entry = entry.next;
27237 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27239 // doWrite is almost always async, defer these to save a bit of time
27240 // as the hot path ends with doWrite
27242 state.lastBufferedRequest = null;
27244 state.corkedRequestsFree = holder.next;
27245 holder.next = null;
27247 state.corkedRequestsFree = new CorkedRequest(state);
27250 // Slow case, write chunks one-by-one
27252 var chunk = entry.chunk;
27253 var encoding = entry.encoding;
27254 var cb = entry.callback;
27255 var len = state.objectMode ?
1 : chunk.length;
27257 doWrite(stream, state, false, len, chunk, encoding, cb);
27258 entry = entry.next;
27259 // if we didn't call the onwrite immediately, then
27260 // it means that we need to wait until it does.
27261 // also, that means that the chunk and cb are currently
27262 // being processed, so move the buffer counter past them.
27263 if (state.writing) {
27268 if (entry === null) state.lastBufferedRequest = null;
27271 state.bufferedRequestCount =
0;
27272 state.bufferedRequest = entry;
27273 state.bufferProcessing = false;
27276 Writable.prototype._write = function (chunk, encoding, cb) {
27277 cb(new Error('_write() is not implemented'));
27280 Writable.prototype._writev = null;
27282 Writable.prototype.end = function (chunk, encoding, cb) {
27283 var state = this._writableState;
27285 if (typeof chunk === 'function') {
27289 } else if (typeof encoding === 'function') {
27294 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27296 // .end() fully uncorks
27297 if (state.corked) {
27302 // ignore unnecessary end() calls.
27303 if (!state.ending && !state.finished) endWritable(this, state, cb);
27306 function needFinish(state) {
27307 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27310 function prefinish(stream, state) {
27311 if (!state.prefinished) {
27312 state.prefinished = true;
27313 stream.emit('prefinish');
27317 function finishMaybe(stream, state) {
27318 var need = needFinish(state);
27320 if (state.pendingcb ===
0) {
27321 prefinish(stream, state);
27322 state.finished = true;
27323 stream.emit('finish');
27325 prefinish(stream, state);
27331 function endWritable(stream, state, cb) {
27332 state.ending = true;
27333 finishMaybe(stream, state);
27335 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27337 state.ended = true;
27338 stream.writable = false;
27341 // It seems a linked list but it is not
27342 // there will be only
2 of these for each stream
27343 function CorkedRequest(state) {
27349 this.finish = function (err) {
27350 var entry = _this.entry;
27351 _this.entry = null;
27353 var cb = entry.callback;
27356 entry = entry.next;
27358 if (state.corkedRequestsFree) {
27359 state.corkedRequestsFree.next = _this;
27361 state.corkedRequestsFree = _this;
27365 }).call(this,require('_process'))
27366 },{"./_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){
27369 var Buffer = require('buffer').Buffer;
27371 var bufferShim = require('buffer-shims');
27374 module.exports = BufferList;
27376 function BufferList() {
27382 BufferList.prototype.push = function (v) {
27383 var entry = { data: v, next: null };
27384 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27389 BufferList.prototype.unshift = function (v) {
27390 var entry = { data: v, next: this.head };
27391 if (this.length ===
0) this.tail = entry;
27396 BufferList.prototype.shift = function () {
27397 if (this.length ===
0) return;
27398 var ret = this.head.data;
27399 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27404 BufferList.prototype.clear = function () {
27405 this.head = this.tail = null;
27409 BufferList.prototype.join = function (s) {
27410 if (this.length ===
0) return '';
27412 var ret = '' + p.data;
27413 while (p = p.next) {
27418 BufferList.prototype.concat = function (n) {
27419 if (this.length ===
0) return bufferShim.alloc(
0);
27420 if (this.length ===
1) return this.head.data;
27421 var ret = bufferShim.allocUnsafe(n
>>> 0);
27425 p.data.copy(ret, i);
27426 i += p.data.length;
27431 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27432 module.exports = require(
"./lib/_stream_passthrough.js")
27434 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27435 (function (process){
27436 var Stream = (function (){
27438 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27441 exports = module.exports = require('./lib/_stream_readable.js');
27442 exports.Stream = Stream || exports;
27443 exports.Readable = exports;
27444 exports.Writable = require('./lib/_stream_writable.js');
27445 exports.Duplex = require('./lib/_stream_duplex.js');
27446 exports.Transform = require('./lib/_stream_transform.js');
27447 exports.PassThrough = require('./lib/_stream_passthrough.js');
27449 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27450 module.exports = Stream;
27453 }).call(this,require('_process'))
27454 },{
"./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){
27455 module.exports = require(
"./lib/_stream_transform.js")
27457 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27458 module.exports = require(
"./lib/_stream_writable.js")
27460 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27461 // Copyright Joyent, Inc. and other Node contributors.
27463 // Permission is hereby granted, free of charge, to any person obtaining a
27464 // copy of this software and associated documentation files (the
27465 //
"Software"), to deal in the Software without restriction, including
27466 // without limitation the rights to use, copy, modify, merge, publish,
27467 // distribute, sublicense, and/or sell copies of the Software, and to permit
27468 // persons to whom the Software is furnished to do so, subject to the
27469 // following conditions:
27471 // The above copyright notice and this permission notice shall be included
27472 // in all copies or substantial portions of the Software.
27474 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27475 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27476 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27477 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27478 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27479 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27480 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27482 module.exports = Stream;
27484 var EE = require('events').EventEmitter;
27485 var inherits = require('inherits');
27487 inherits(Stream, EE);
27488 Stream.Readable = require('readable-stream/readable.js');
27489 Stream.Writable = require('readable-stream/writable.js');
27490 Stream.Duplex = require('readable-stream/duplex.js');
27491 Stream.Transform = require('readable-stream/transform.js');
27492 Stream.PassThrough = require('readable-stream/passthrough.js');
27494 // Backwards-compat with node
0.4.x
27495 Stream.Stream = Stream;
27499 // old-style streams. Note that the pipe method (the only relevant
27500 // part of this class) is overridden in the Readable class.
27502 function Stream() {
27506 Stream.prototype.pipe = function(dest, options) {
27509 function ondata(chunk) {
27510 if (dest.writable) {
27511 if (false === dest.write(chunk) && source.pause) {
27517 source.on('data', ondata);
27519 function ondrain() {
27520 if (source.readable && source.resume) {
27525 dest.on('drain', ondrain);
27527 // If the 'end' option is not supplied, dest.end() will be called when
27528 // source gets the 'end' or 'close' events. Only dest.end() once.
27529 if (!dest._isStdio && (!options || options.end !== false)) {
27530 source.on('end', onend);
27531 source.on('close', onclose);
27534 var didOnEnd = false;
27536 if (didOnEnd) return;
27543 function onclose() {
27544 if (didOnEnd) return;
27547 if (typeof dest.destroy === 'function') dest.destroy();
27550 // don't leave dangling pipes when there are errors.
27551 function onerror(er) {
27553 if (EE.listenerCount(this, 'error') ===
0) {
27554 throw er; // Unhandled stream error in pipe.
27558 source.on('error', onerror);
27559 dest.on('error', onerror);
27561 // remove all the event listeners that were added.
27562 function cleanup() {
27563 source.removeListener('data', ondata);
27564 dest.removeListener('drain', ondrain);
27566 source.removeListener('end', onend);
27567 source.removeListener('close', onclose);
27569 source.removeListener('error', onerror);
27570 dest.removeListener('error', onerror);
27572 source.removeListener('end', cleanup);
27573 source.removeListener('close', cleanup);
27575 dest.removeListener('close', cleanup);
27578 source.on('end', cleanup);
27579 source.on('close', cleanup);
27581 dest.on('close', cleanup);
27583 dest.emit('pipe', source);
27585 // Allow for unix-like usage: A.pipe(B).pipe(C)
27589 },{
"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){
27590 // Copyright Joyent, Inc. and other Node contributors.
27592 // Permission is hereby granted, free of charge, to any person obtaining a
27593 // copy of this software and associated documentation files (the
27594 //
"Software"), to deal in the Software without restriction, including
27595 // without limitation the rights to use, copy, modify, merge, publish,
27596 // distribute, sublicense, and/or sell copies of the Software, and to permit
27597 // persons to whom the Software is furnished to do so, subject to the
27598 // following conditions:
27600 // The above copyright notice and this permission notice shall be included
27601 // in all copies or substantial portions of the Software.
27603 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27604 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27605 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27606 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27607 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27608 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27609 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27611 var Buffer = require('buffer').Buffer;
27613 var isBufferEncoding = Buffer.isEncoding
27614 || function(encoding) {
27615 switch (encoding && encoding.toLowerCase()) {
27616 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;
27617 default: return false;
27622 function assertEncoding(encoding) {
27623 if (encoding && !isBufferEncoding(encoding)) {
27624 throw new Error('Unknown encoding: ' + encoding);
27628 // StringDecoder provides an interface for efficiently splitting a series of
27629 // buffers into a series of JS strings without breaking apart multi-byte
27630 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27632 // @TODO Handling all encodings inside a single object makes it very difficult
27633 // to reason about this code, so it should be split up in the future.
27634 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27635 // points as used by CESU-
8.
27636 var StringDecoder = exports.StringDecoder = function(encoding) {
27637 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27638 assertEncoding(encoding);
27639 switch (this.encoding) {
27641 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27642 this.surrogateSize =
3;
27646 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27647 this.surrogateSize =
2;
27648 this.detectIncompleteChar = utf16DetectIncompleteChar;
27651 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27652 this.surrogateSize =
3;
27653 this.detectIncompleteChar = base64DetectIncompleteChar;
27656 this.write = passThroughWrite;
27660 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27661 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27662 this.charBuffer = new Buffer(
6);
27663 // Number of bytes received for the current incomplete multi-byte character.
27664 this.charReceived =
0;
27665 // Number of bytes expected for the current incomplete multi-byte character.
27666 this.charLength =
0;
27670 // write decodes the given buffer and returns it as JS string that is
27671 // guaranteed to not contain any partial multi-byte characters. Any partial
27672 // character found at the end of the buffer is buffered up, and will be
27673 // returned when calling write again with the remaining bytes.
27675 // Note: Converting a Buffer containing an orphan surrogate to a String
27676 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27677 // Buffer#write) will replace incomplete surrogates with the unicode
27678 // replacement character. See https://codereview.chromium.org/
121173009/ .
27679 StringDecoder.prototype.write = function(buffer) {
27681 // if our last write ended with an incomplete multibyte character
27682 while (this.charLength) {
27683 // determine how many remaining bytes this buffer has to offer for this char
27684 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27685 this.charLength - this.charReceived :
27688 // add the new bytes to the char buffer
27689 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27690 this.charReceived += available;
27692 if (this.charReceived < this.charLength) {
27693 // still not enough chars in this buffer? wait for more ...
27697 // remove bytes belonging to the current character from the buffer
27698 buffer = buffer.slice(available, buffer.length);
27700 // get the character that was split
27701 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27703 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27704 var charCode = charStr.charCodeAt(charStr.length -
1);
27705 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27706 this.charLength += this.surrogateSize;
27710 this.charReceived = this.charLength =
0;
27712 // if there are no more bytes in this buffer, just emit our char
27713 if (buffer.length ===
0) {
27719 // determine and set charLength / charReceived
27720 this.detectIncompleteChar(buffer);
27722 var end = buffer.length;
27723 if (this.charLength) {
27724 // buffer the incomplete character bytes we got
27725 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27726 end -= this.charReceived;
27729 charStr += buffer.toString(this.encoding,
0, end);
27731 var end = charStr.length -
1;
27732 var charCode = charStr.charCodeAt(end);
27733 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27734 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27735 var size = this.surrogateSize;
27736 this.charLength += size;
27737 this.charReceived += size;
27738 this.charBuffer.copy(this.charBuffer, size,
0, size);
27739 buffer.copy(this.charBuffer,
0,
0, size);
27740 return charStr.substring(
0, end);
27743 // or just emit the charStr
27747 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27748 // the end of the given buffer. If so, it sets this.charLength to the byte
27749 // length that character, and sets this.charReceived to the number of bytes
27750 // that are available for this character.
27751 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27752 // determine how many bytes we have to check at the end of this buffer
27753 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27755 // Figure out if one of the last i bytes of our buffer announces an
27756 // incomplete char.
27757 for (; i
> 0; i--) {
27758 var c = buffer[buffer.length - i];
27760 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27763 if (i ==
1 && c
>> 5 ==
0x06) {
27764 this.charLength =
2;
27769 if (i <=
2 && c
>> 4 ==
0x0E) {
27770 this.charLength =
3;
27775 if (i <=
3 && c
>> 3 ==
0x1E) {
27776 this.charLength =
4;
27780 this.charReceived = i;
27783 StringDecoder.prototype.end = function(buffer) {
27785 if (buffer && buffer.length)
27786 res = this.write(buffer);
27788 if (this.charReceived) {
27789 var cr = this.charReceived;
27790 var buf = this.charBuffer;
27791 var enc = this.encoding;
27792 res += buf.slice(
0, cr).toString(enc);
27798 function passThroughWrite(buffer) {
27799 return buffer.toString(this.encoding);
27802 function utf16DetectIncompleteChar(buffer) {
27803 this.charReceived = buffer.length %
2;
27804 this.charLength = this.charReceived ?
2 :
0;
27807 function base64DetectIncompleteChar(buffer) {
27808 this.charReceived = buffer.length %
3;
27809 this.charLength = this.charReceived ?
3 :
0;
27812 },{
"buffer":
5}],
27:[function(require,module,exports){
27813 (function (global){
27819 module.exports = deprecate;
27822 * Mark that a method should not be used.
27823 * Returns a modified function which warns once by default.
27825 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27827 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27828 * will throw an Error when invoked.
27830 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27831 * will invoke `console.trace()` instead of `console.error()`.
27833 * @param {Function} fn - the function to deprecate
27834 * @param {String} msg - the string to print to the console when `fn` is invoked
27835 * @returns {Function} a new
"deprecated" version of `fn`
27839 function deprecate (fn, msg) {
27840 if (config('noDeprecation')) {
27844 var warned = false;
27845 function deprecated() {
27847 if (config('throwDeprecation')) {
27848 throw new Error(msg);
27849 } else if (config('traceDeprecation')) {
27850 console.trace(msg);
27856 return fn.apply(this, arguments);
27863 * Checks `localStorage` for boolean values for the given `name`.
27865 * @param {String} name
27866 * @returns {Boolean}
27870 function config (name) {
27871 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27873 if (!global.localStorage) return false;
27877 var val = global.localStorage[name];
27878 if (null == val) return false;
27879 return String(val).toLowerCase() === 'true';
27882 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27883 },{}],
28:[function(require,module,exports){
27884 arguments[
4][
9][
0].apply(exports,arguments)
27885 },{
"dup":
9}],
29:[function(require,module,exports){
27886 module.exports = function isBuffer(arg) {
27887 return arg && typeof arg === 'object'
27888 && typeof arg.copy === 'function'
27889 && typeof arg.fill === 'function'
27890 && typeof arg.readUInt8 === 'function';
27892 },{}],
30:[function(require,module,exports){
27893 (function (process,global){
27894 // Copyright Joyent, Inc. and other Node contributors.
27896 // Permission is hereby granted, free of charge, to any person obtaining a
27897 // copy of this software and associated documentation files (the
27898 //
"Software"), to deal in the Software without restriction, including
27899 // without limitation the rights to use, copy, modify, merge, publish,
27900 // distribute, sublicense, and/or sell copies of the Software, and to permit
27901 // persons to whom the Software is furnished to do so, subject to the
27902 // following conditions:
27904 // The above copyright notice and this permission notice shall be included
27905 // in all copies or substantial portions of the Software.
27907 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27908 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27909 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27910 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27911 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27912 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27913 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27915 var formatRegExp = /%[sdj%]/g;
27916 exports.format = function(f) {
27917 if (!isString(f)) {
27919 for (var i =
0; i < arguments.length; i++) {
27920 objects.push(inspect(arguments[i]));
27922 return objects.join(' ');
27926 var args = arguments;
27927 var len = args.length;
27928 var str = String(f).replace(formatRegExp, function(x) {
27929 if (x === '%%') return '%';
27930 if (i
>= len) return x;
27932 case '%s': return String(args[i++]);
27933 case '%d': return Number(args[i++]);
27936 return JSON.stringify(args[i++]);
27938 return '[Circular]';
27944 for (var x = args[i]; i < len; x = args[++i]) {
27945 if (isNull(x) || !isObject(x)) {
27948 str += ' ' + inspect(x);
27955 // Mark that a method should not be used.
27956 // Returns a modified function which warns once by default.
27957 // If --no-deprecation is set, then it is a no-op.
27958 exports.deprecate = function(fn, msg) {
27959 // Allow for deprecating things in the process of starting up.
27960 if (isUndefined(global.process)) {
27961 return function() {
27962 return exports.deprecate(fn, msg).apply(this, arguments);
27966 if (process.noDeprecation === true) {
27970 var warned = false;
27971 function deprecated() {
27973 if (process.throwDeprecation) {
27974 throw new Error(msg);
27975 } else if (process.traceDeprecation) {
27976 console.trace(msg);
27978 console.error(msg);
27982 return fn.apply(this, arguments);
27991 exports.debuglog = function(set) {
27992 if (isUndefined(debugEnviron))
27993 debugEnviron = process.env.NODE_DEBUG || '';
27994 set = set.toUpperCase();
27995 if (!debugs[set]) {
27996 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
27997 var pid = process.pid;
27998 debugs[set] = function() {
27999 var msg = exports.format.apply(exports, arguments);
28000 console.error('%s %d: %s', set, pid, msg);
28003 debugs[set] = function() {};
28006 return debugs[set];
28011 * Echos the value of a value. Trys to print the value out
28012 * in the best way possible given the different types.
28014 * @param {Object} obj The object to print out.
28015 * @param {Object} opts Optional options object that alters the output.
28017 /* legacy: obj, showHidden, depth, colors*/
28018 function inspect(obj, opts) {
28022 stylize: stylizeNoColor
28025 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28026 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28027 if (isBoolean(opts)) {
28029 ctx.showHidden = opts;
28031 // got an "options" object
28032 exports._extend(ctx, opts);
28034 // set default options
28035 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28036 if (isUndefined(ctx.depth)) ctx.depth =
2;
28037 if (isUndefined(ctx.colors)) ctx.colors = false;
28038 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28039 if (ctx.colors) ctx.stylize = stylizeWithColor;
28040 return formatValue(ctx, obj, ctx.depth);
28042 exports.inspect = inspect;
28045 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28048 'italic' : [
3,
23],
28049 'underline' : [
4,
24],
28050 'inverse' : [
7,
27],
28051 'white' : [
37,
39],
28053 'black' : [
30,
39],
28056 'green' : [
32,
39],
28057 'magenta' : [
35,
39],
28059 'yellow' : [
33,
39]
28062 // Don't use 'blue' not visible on cmd.exe
28065 'number': 'yellow',
28066 'boolean': 'yellow',
28067 'undefined': 'grey',
28071 // "name": intentionally not styling
28076 function stylizeWithColor(str, styleType) {
28077 var style = inspect.styles[styleType];
28080 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28081 '\u001b[' + inspect.colors[style][
1] + 'm';
28088 function stylizeNoColor(str, styleType) {
28093 function arrayToHash(array) {
28096 array.forEach(function(val, idx) {
28104 function formatValue(ctx, value, recurseTimes) {
28105 // Provide a hook for user-specified inspect functions.
28106 // Check that value is an object with an inspect function on it
28107 if (ctx.customInspect &&
28109 isFunction(value.inspect) &&
28110 // Filter out the util module, it's inspect function is special
28111 value.inspect !== exports.inspect &&
28112 // Also filter out any prototype objects using the circular check.
28113 !(value.constructor && value.constructor.prototype === value)) {
28114 var ret = value.inspect(recurseTimes, ctx);
28115 if (!isString(ret)) {
28116 ret = formatValue(ctx, ret, recurseTimes);
28121 // Primitive types cannot have properties
28122 var primitive = formatPrimitive(ctx, value);
28127 // Look up the keys of the object.
28128 var keys = Object.keys(value);
28129 var visibleKeys = arrayToHash(keys);
28131 if (ctx.showHidden) {
28132 keys = Object.getOwnPropertyNames(value);
28135 // IE doesn't make error fields non-enumerable
28136 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28138 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28139 return formatError(value);
28142 // Some type of object without properties can be shortcutted.
28143 if (keys.length ===
0) {
28144 if (isFunction(value)) {
28145 var name = value.name ? ': ' + value.name : '';
28146 return ctx.stylize('[Function' + name + ']', 'special');
28148 if (isRegExp(value)) {
28149 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28151 if (isDate(value)) {
28152 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28154 if (isError(value)) {
28155 return formatError(value);
28159 var base = '', array = false, braces = ['{', '}'];
28161 // Make Array say that they are Array
28162 if (isArray(value)) {
28164 braces = ['[', ']'];
28167 // Make functions say that they are functions
28168 if (isFunction(value)) {
28169 var n = value.name ? ': ' + value.name : '';
28170 base = ' [Function' + n + ']';
28173 // Make RegExps say that they are RegExps
28174 if (isRegExp(value)) {
28175 base = ' ' + RegExp.prototype.toString.call(value);
28178 // Make dates with properties first say the date
28179 if (isDate(value)) {
28180 base = ' ' + Date.prototype.toUTCString.call(value);
28183 // Make error with message first say the error
28184 if (isError(value)) {
28185 base = ' ' + formatError(value);
28188 if (keys.length ===
0 && (!array || value.length ==
0)) {
28189 return braces[
0] + base + braces[
1];
28192 if (recurseTimes <
0) {
28193 if (isRegExp(value)) {
28194 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28196 return ctx.stylize('[Object]', 'special');
28200 ctx.seen.push(value);
28204 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28206 output = keys.map(function(key) {
28207 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28213 return reduceToSingleString(output, base, braces);
28217 function formatPrimitive(ctx, value) {
28218 if (isUndefined(value))
28219 return ctx.stylize('undefined', 'undefined');
28220 if (isString(value)) {
28221 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28222 .replace(/'/g, "\\'")
28223 .replace(/\\"/g, '"') + '\'';
28224 return ctx.stylize(simple, 'string');
28226 if (isNumber(value))
28227 return ctx.stylize('' + value, 'number');
28228 if (isBoolean(value))
28229 return ctx.stylize('' + value, 'boolean');
28230 // For some reason typeof null is "object", so special case here.
28232 return ctx.stylize('null', 'null');
28236 function formatError(value) {
28237 return '[' + Error.prototype.toString.call(value) + ']';
28241 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28243 for (var i =
0, l = value.length; i < l; ++i) {
28244 if (hasOwnProperty(value, String(i))) {
28245 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28251 keys.forEach(function(key) {
28252 if (!key.match(/^\d+$/)) {
28253 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28261 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28262 var name, str, desc;
28263 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28266 str = ctx.stylize('[Getter/Setter]', 'special');
28268 str = ctx.stylize('[Getter]', 'special');
28272 str = ctx.stylize('[Setter]', 'special');
28275 if (!hasOwnProperty(visibleKeys, key)) {
28276 name = '[' + key + ']';
28279 if (ctx.seen.indexOf(desc.value) <
0) {
28280 if (isNull(recurseTimes)) {
28281 str = formatValue(ctx, desc.value, null);
28283 str = formatValue(ctx, desc.value, recurseTimes -
1);
28285 if (str.indexOf('\n')
> -
1) {
28287 str = str.split('\n').map(function(line) {
28289 }).join('\n').substr(
2);
28291 str = '\n' + str.split('\n').map(function(line) {
28297 str = ctx.stylize('[Circular]', 'special');
28300 if (isUndefined(name)) {
28301 if (array && key.match(/^\d+$/)) {
28304 name = JSON.stringify('' + key);
28305 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28306 name = name.substr(
1, name.length -
2);
28307 name = ctx.stylize(name, 'name');
28309 name = name.replace(/'/g, "\\'")
28310 .replace(/\\"/g, '"')
28311 .replace(/(^"|"$)/g, "'");
28312 name = ctx.stylize(name, 'string');
28316 return name + ': ' + str;
28320 function reduceToSingleString(output, base, braces) {
28321 var numLinesEst =
0;
28322 var length = output.reduce(function(prev, cur) {
28324 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28325 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28330 (base === '' ? '' : base + '\n ') +
28332 output.join(',\n ') +
28337 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28341 // NOTE: These type checking functions intentionally don't use `instanceof`
28342 // because it is fragile and can be easily faked with `Object.create()`.
28343 function isArray(ar) {
28344 return Array.isArray(ar);
28346 exports.isArray = isArray;
28348 function isBoolean(arg) {
28349 return typeof arg === 'boolean';
28351 exports.isBoolean = isBoolean;
28353 function isNull(arg) {
28354 return arg === null;
28356 exports.isNull = isNull;
28358 function isNullOrUndefined(arg) {
28359 return arg == null;
28361 exports.isNullOrUndefined = isNullOrUndefined;
28363 function isNumber(arg) {
28364 return typeof arg === 'number';
28366 exports.isNumber = isNumber;
28368 function isString(arg) {
28369 return typeof arg === 'string';
28371 exports.isString = isString;
28373 function isSymbol(arg) {
28374 return typeof arg === 'symbol';
28376 exports.isSymbol = isSymbol;
28378 function isUndefined(arg) {
28379 return arg === void
0;
28381 exports.isUndefined = isUndefined;
28383 function isRegExp(re) {
28384 return isObject(re) && objectToString(re) === '[object RegExp]';
28386 exports.isRegExp = isRegExp;
28388 function isObject(arg) {
28389 return typeof arg === 'object' && arg !== null;
28391 exports.isObject = isObject;
28393 function isDate(d) {
28394 return isObject(d) && objectToString(d) === '[object Date]';
28396 exports.isDate = isDate;
28398 function isError(e) {
28399 return isObject(e) &&
28400 (objectToString(e) === '[object Error]' || e instanceof Error);
28402 exports.isError = isError;
28404 function isFunction(arg) {
28405 return typeof arg === 'function';
28407 exports.isFunction = isFunction;
28409 function isPrimitive(arg) {
28410 return arg === null ||
28411 typeof arg === 'boolean' ||
28412 typeof arg === 'number' ||
28413 typeof arg === 'string' ||
28414 typeof arg === 'symbol' || // ES6 symbol
28415 typeof arg === 'undefined';
28417 exports.isPrimitive = isPrimitive;
28419 exports.isBuffer = require('./support/isBuffer');
28421 function objectToString(o) {
28422 return Object.prototype.toString.call(o);
28427 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28431 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28432 'Oct', 'Nov', 'Dec'];
28435 function timestamp() {
28436 var d = new Date();
28437 var time = [pad(d.getHours()),
28438 pad(d.getMinutes()),
28439 pad(d.getSeconds())].join(':');
28440 return [d.getDate(), months[d.getMonth()], time].join(' ');
28444 // log is just a thin wrapper to console.log that prepends a timestamp
28445 exports.log = function() {
28446 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28451 * Inherit the prototype methods from one constructor into another.
28453 * The Function.prototype.inherits from lang.js rewritten as a standalone
28454 * function (not on Function.prototype). NOTE: If this file is to be loaded
28455 * during bootstrapping this function needs to be rewritten using some native
28456 * functions as prototype setup using normal JavaScript does not work as
28457 * expected during bootstrapping (see mirror.js in r114903).
28459 * @param {function} ctor Constructor function which needs to inherit the
28461 * @param {function} superCtor Constructor function to inherit prototype from.
28463 exports.inherits = require('inherits');
28465 exports._extend = function(origin, add) {
28466 // Don't do anything if add isn't an object
28467 if (!add || !isObject(add)) return origin;
28469 var keys = Object.keys(add);
28470 var i = keys.length;
28472 origin[keys[i]] = add[keys[i]];
28477 function hasOwnProperty(obj, prop) {
28478 return Object.prototype.hasOwnProperty.call(obj, prop);
28481 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28482 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28483 (function (Buffer){
28484 const createKeccakHash = require('keccak')
28485 const secp256k1 = require('secp256k1')
28486 const assert = require('assert')
28487 const rlp = require('rlp')
28488 const BN = require('bn.js')
28489 const createHash = require('create-hash')
28490 Object.assign(exports, require('ethjs-util'))
28493 * the max integer that this VM can handle (a ```BN```)
28494 * @var {BN} MAX_INTEGER
28496 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28499 *
2^
256 (a ```BN```)
28500 * @var {BN} TWO_POW256
28502 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28505 * SHA3-
256 hash of null (a ```String```)
28506 * @var {String} SHA3_NULL_S
28508 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28511 * SHA3-
256 hash of null (a ```Buffer```)
28512 * @var {Buffer} SHA3_NULL
28514 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28517 * SHA3-
256 of an RLP of an empty array (a ```String```)
28518 * @var {String} SHA3_RLP_ARRAY_S
28520 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28523 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28524 * @var {Buffer} SHA3_RLP_ARRAY
28526 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28529 * SHA3-
256 hash of the RLP of null (a ```String```)
28530 * @var {String} SHA3_RLP_S
28532 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28535 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28536 * @var {Buffer} SHA3_RLP
28538 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28541 * [`BN`](https://github.com/indutny/bn.js)
28547 * [`rlp`](https://github.com/ethereumjs/rlp)
28553 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28556 exports.secp256k1 = secp256k1
28559 * Returns a buffer filled with
0s
28561 * @param {Number} bytes the number of bytes the buffer should be
28564 exports.zeros = function (bytes) {
28565 return Buffer.allocUnsafe(bytes).fill(
0)
28569 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28570 * Or it truncates the beginning if it exceeds.
28571 * @method lsetLength
28572 * @param {Buffer|Array} msg the value to pad
28573 * @param {Number} length the number of bytes the output should be
28574 * @param {Boolean} [right=false] whether to start padding form the left or right
28575 * @return {Buffer|Array}
28577 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28578 var buf = exports.zeros(length)
28579 msg = exports.toBuffer(msg)
28581 if (msg.length < length) {
28585 return msg.slice(
0, length)
28587 if (msg.length < length) {
28588 msg.copy(buf, length - msg.length)
28591 return msg.slice(-length)
28596 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28597 * Or it truncates the beginning if it exceeds.
28598 * @param {Buffer|Array} msg the value to pad
28599 * @param {Number} length the number of bytes the output should be
28600 * @return {Buffer|Array}
28602 exports.setLengthRight = function (msg, length) {
28603 return exports.setLength(msg, length, true)
28607 * Trims leading zeros from a `Buffer` or an `Array`
28608 * @param {Buffer|Array|String} a
28609 * @return {Buffer|Array|String}
28611 exports.unpad = exports.stripZeros = function (a) {
28612 a = exports.stripHexPrefix(a)
28614 while (a.length
> 0 && first.toString() === '
0') {
28621 * 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.
28622 * @param {*} v the value
28624 exports.toBuffer = function (v) {
28625 if (!Buffer.isBuffer(v)) {
28626 if (Array.isArray(v)) {
28628 } else if (typeof v === 'string') {
28629 if (exports.isHexPrefixed(v)) {
28630 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28634 } else if (typeof v === 'number') {
28635 v = exports.intToBuffer(v)
28636 } else if (v === null || v === undefined) {
28637 v = Buffer.allocUnsafe(
0)
28638 } else if (v.toArray) {
28639 // converts a BN to a Buffer
28640 v = Buffer.from(v.toArray())
28642 throw new Error('invalid type')
28649 * Converts a `Buffer` to a `Number`
28650 * @param {Buffer} buf
28652 * @throws If the input number exceeds
53 bits.
28654 exports.bufferToInt = function (buf) {
28655 return new BN(exports.toBuffer(buf)).toNumber()
28659 * Converts a `Buffer` into a hex `String`
28660 * @param {Buffer} buf
28663 exports.bufferToHex = function (buf) {
28664 buf = exports.toBuffer(buf)
28665 return '
0x' + buf.toString('hex')
28669 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28670 * @param {Buffer} num
28673 exports.fromSigned = function (num) {
28674 return new BN(num).fromTwos(
256)
28678 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28682 exports.toUnsigned = function (num) {
28683 return Buffer.from(num.toTwos(
256).toArray())
28687 * Creates SHA-
3 hash of the input
28688 * @param {Buffer|Array|String|Number} a the input data
28689 * @param {Number} [bits=
256] the SHA width
28692 exports.sha3 = function (a, bits) {
28693 a = exports.toBuffer(a)
28694 if (!bits) bits =
256
28696 return createKeccakHash('keccak' + bits).update(a).digest()
28700 * Creates SHA256 hash of the input
28701 * @param {Buffer|Array|String|Number} a the input data
28704 exports.sha256 = function (a) {
28705 a = exports.toBuffer(a)
28706 return createHash('sha256').update(a).digest()
28710 * Creates RIPEMD160 hash of the input
28711 * @param {Buffer|Array|String|Number} a the input data
28712 * @param {Boolean} padded whether it should be padded to
256 bits or not
28715 exports.ripemd160 = function (a, padded) {
28716 a = exports.toBuffer(a)
28717 var hash = createHash('rmd160').update(a).digest()
28718 if (padded === true) {
28719 return exports.setLength(hash,
32)
28726 * Creates SHA-
3 hash of the RLP encoded version of the input
28727 * @param {Buffer|Array|String|Number} a the input data
28730 exports.rlphash = function (a) {
28731 return exports.sha3(rlp.encode(a))
28735 * Checks if the private key satisfies the rules of the curve secp256k1.
28736 * @param {Buffer} privateKey
28737 * @return {Boolean}
28739 exports.isValidPrivate = function (privateKey) {
28740 return secp256k1.privateKeyVerify(privateKey)
28744 * Checks if the public key satisfies the rules of the curve secp256k1
28745 * and the requirements of Ethereum.
28746 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28747 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28748 * @return {Boolean}
28750 exports.isValidPublic = function (publicKey, sanitize) {
28751 if (publicKey.length ===
64) {
28752 // Convert to SEC1 for secp256k1
28753 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28760 return secp256k1.publicKeyVerify(publicKey)
28764 * Returns the ethereum address of a given public key.
28765 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28766 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28767 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28770 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28771 pubKey = exports.toBuffer(pubKey)
28772 if (sanitize && (pubKey.length !==
64)) {
28773 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28775 assert(pubKey.length ===
64)
28776 // Only take the lower
160bits of the hash
28777 return exports.sha3(pubKey).slice(-
20)
28781 * Returns the ethereum public key of a given private key
28782 * @param {Buffer} privateKey A private key must be
256 bits wide
28785 var privateToPublic = exports.privateToPublic = function (privateKey) {
28786 privateKey = exports.toBuffer(privateKey)
28787 // skip the type flag and use the X, Y points
28788 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28792 * Converts a public key to the Ethereum format.
28793 * @param {Buffer} publicKey
28796 exports.importPublic = function (publicKey) {
28797 publicKey = exports.toBuffer(publicKey)
28798 if (publicKey.length !==
64) {
28799 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28806 * @param {Buffer} msgHash
28807 * @param {Buffer} privateKey
28810 exports.ecsign = function (msgHash, privateKey) {
28811 var sig = secp256k1.sign(msgHash, privateKey)
28814 ret.r = sig.signature.slice(
0,
32)
28815 ret.s = sig.signature.slice(
32,
64)
28816 ret.v = sig.recovery +
27
28821 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28822 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28823 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28824 * used to produce the signature.
28826 * @returns {Buffer} hash
28828 exports.hashPersonalMessage = function (message) {
28829 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28830 return exports.sha3(Buffer.concat([prefix, message]))
28834 * ECDSA public key recovery from signature
28835 * @param {Buffer} msgHash
28836 * @param {Number} v
28837 * @param {Buffer} r
28838 * @param {Buffer} s
28839 * @return {Buffer} publicKey
28841 exports.ecrecover = function (msgHash, v, r, s) {
28842 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28843 var recovery = v -
27
28844 if (recovery !==
0 && recovery !==
1) {
28845 throw new Error('Invalid signature v value')
28847 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28848 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28852 * Convert signature parameters into the format of `eth_sign` RPC method
28853 * @param {Number} v
28854 * @param {Buffer} r
28855 * @param {Buffer} s
28856 * @return {String} sig
28858 exports.toRpcSig = function (v, r, s) {
28859 // NOTE: with potential introduction of chainId this might need to be updated
28860 if (v !==
27 && v !==
28) {
28861 throw new Error('Invalid recovery id')
28864 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28865 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28866 return exports.bufferToHex(Buffer.concat([
28867 exports.setLengthLeft(r,
32),
28868 exports.setLengthLeft(s,
32),
28869 exports.toBuffer(v -
27)
28874 * Convert signature format of the `eth_sign` RPC method to signature parameters
28875 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28876 * @param {String} sig
28879 exports.fromRpcSig = function (sig) {
28880 sig = exports.toBuffer(sig)
28882 // NOTE: with potential introduction of chainId this might need to be updated
28883 if (sig.length !==
65) {
28884 throw new Error('Invalid signature length')
28888 // support both versions of `eth_sign` responses
28895 r: sig.slice(
0,
32),
28896 s: sig.slice(
32,
64)
28901 * Returns the ethereum address of a given private key
28902 * @param {Buffer} privateKey A private key must be
256 bits wide
28905 exports.privateToAddress = function (privateKey) {
28906 return exports.publicToAddress(privateToPublic(privateKey))
28910 * Checks if the address is a valid. Accepts checksummed addresses too
28911 * @param {String} address
28912 * @return {Boolean}
28914 exports.isValidAddress = function (address) {
28915 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28919 * Returns a checksummed address
28920 * @param {String} address
28923 exports.toChecksumAddress = function (address) {
28924 address = exports.stripHexPrefix(address).toLowerCase()
28925 var hash = exports.sha3(address).toString('hex')
28928 for (var i =
0; i < address.length; i++) {
28929 if (parseInt(hash[i],
16)
>=
8) {
28930 ret += address[i].toUpperCase()
28940 * Checks if the address is a valid checksummed address
28941 * @param {Buffer} address
28942 * @return {Boolean}
28944 exports.isValidChecksumAddress = function (address) {
28945 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28949 * Generates an address of a newly created contract
28950 * @param {Buffer} from the address which is creating this new address
28951 * @param {Buffer} nonce the nonce of the from account
28954 exports.generateAddress = function (from, nonce) {
28955 from = exports.toBuffer(from)
28956 nonce = new BN(nonce)
28958 if (nonce.isZero()) {
28959 // in RLP we want to encode null in the case of zero nonce
28960 // read the RLP documentation for an answer if you dare
28963 nonce = Buffer.from(nonce.toArray())
28966 // Only take the lower
160bits of the hash
28967 return exports.rlphash([from, nonce]).slice(-
20)
28971 * Returns true if the supplied address belongs to a precompiled account
28972 * @param {Buffer|String} address
28973 * @return {Boolean}
28975 exports.isPrecompiled = function (address) {
28976 var a = exports.unpad(address)
28977 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
28981 * Adds
"0x" to a given `String` if it does not already start with
"0x"
28982 * @param {String} str
28985 exports.addHexPrefix = function (str) {
28986 if (typeof str !== 'string') {
28990 return exports.isHexPrefixed(str) ? str : '
0x' + str
28994 * Validate ECDSA signature
28995 * @method isValidSignature
28996 * @param {Buffer} v
28997 * @param {Buffer} r
28998 * @param {Buffer} s
28999 * @param {Boolean} [homestead=true]
29000 * @return {Boolean}
29003 exports.isValidSignature = function (v, r, s, homestead) {
29004 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29005 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29007 if (r.length !==
32 || s.length !==
32) {
29011 if (v !==
27 && v !==
28) {
29018 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29022 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29030 * Converts a `Buffer` or `Array` to JSON
29031 * @param {Buffer|Array} ba
29032 * @return {Array|String|null}
29034 exports.baToJSON = function (ba) {
29035 if (Buffer.isBuffer(ba)) {
29036 return '
0x' + ba.toString('hex')
29037 } else if (ba instanceof Array) {
29039 for (var i =
0; i < ba.length; i++) {
29040 array.push(exports.baToJSON(ba[i]))
29047 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29048 * @param {Object} self the `Object` to define properties on
29049 * @param {Array} fields an array fields to define. Fields can contain:
29050 * * `name` - the name of the properties
29051 * * `length` - the number of bytes the field can have
29052 * * `allowLess` - if the field can be less than the length
29054 * @param {*} data data to be validated against the definitions
29056 exports.defineProperties = function (self, fields, data) {
29060 // attach the `toJSON`
29061 self.toJSON = function (label) {
29064 self._fields.forEach(function (field) {
29065 obj[field] = '
0x' + self[field].toString('hex')
29069 return exports.baToJSON(this.raw)
29072 self.serialize = function serialize () {
29073 return rlp.encode(self.raw)
29076 fields.forEach(function (field, i) {
29077 self._fields.push(field.name)
29078 function getter () {
29081 function setter (v) {
29082 v = exports.toBuffer(v)
29084 if (v.toString('hex') === '
00' && !field.allowZero) {
29085 v = Buffer.allocUnsafe(
0)
29088 if (field.allowLess && field.length) {
29089 v = exports.stripZeros(v)
29090 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29091 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29092 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29098 Object.defineProperty(self, field.name, {
29100 configurable: true,
29105 if (field.default) {
29106 self[field.name] = field.default
29111 Object.defineProperty(self, field.alias, {
29113 configurable: true,
29120 // if the constuctor is passed data
29122 if (typeof data === 'string') {
29123 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29126 if (Buffer.isBuffer(data)) {
29127 data = rlp.decode(data)
29130 if (Array.isArray(data)) {
29131 if (data.length
> self._fields.length) {
29132 throw (new Error('wrong number of fields in data'))
29135 // make sure all the items are buffers
29136 data.forEach(function (d, i) {
29137 self[self._fields[i]] = exports.toBuffer(d)
29139 } else if (typeof data === 'object') {
29140 const keys = Object.keys(data)
29141 fields.forEach(function (field) {
29142 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29143 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29146 throw new Error('invalid data')
29151 }).call(this,require("buffer").Buffer)
29152 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29153 (function (Buffer){
29154 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29155 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29156 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29158 function check (buffer) {
29159 if (buffer.length <
8) return false
29160 if (buffer.length
> 72) return false
29161 if (buffer[
0] !==
0x30) return false
29162 if (buffer[
1] !== buffer.length -
2) return false
29163 if (buffer[
2] !==
0x02) return false
29165 var lenR = buffer[
3]
29166 if (lenR ===
0) return false
29167 if (
5 + lenR
>= buffer.length) return false
29168 if (buffer[
4 + lenR] !==
0x02) return false
29170 var lenS = buffer[
5 + lenR]
29171 if (lenS ===
0) return false
29172 if ((
6 + lenR + lenS) !== buffer.length) return false
29174 if (buffer[
4] &
0x80) return false
29175 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29177 if (buffer[lenR +
6] &
0x80) return false
29178 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29182 function decode (buffer) {
29183 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29184 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29185 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29186 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29187 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29189 var lenR = buffer[
3]
29190 if (lenR ===
0) throw new Error('R length is zero')
29191 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29192 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29194 var lenS = buffer[
5 + lenR]
29195 if (lenS ===
0) throw new Error('S length is zero')
29196 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29198 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29199 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29201 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29202 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29204 // non-BIP66 - extract R, S values
29206 r: buffer.slice(
4,
4 + lenR),
29207 s: buffer.slice(
6 + lenR)
29212 * Expects r and s to be positive DER integers.
29214 * The DER format uses the most significant bit as a sign bit (&
0x80).
29215 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29230 *
62300 =
> 0x00f35c
29231 * -
62300 =
> 0xff0ca4
29233 function encode (r, s) {
29234 var lenR = r.length
29235 var lenS = s.length
29236 if (lenR ===
0) throw new Error('R length is zero')
29237 if (lenS ===
0) throw new Error('S length is zero')
29238 if (lenR
> 33) throw new Error('R length is too long')
29239 if (lenS
> 33) throw new Error('S length is too long')
29240 if (r[
0] &
0x80) throw new Error('R value is negative')
29241 if (s[
0] &
0x80) throw new Error('S value is negative')
29242 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29243 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29245 var signature = new Buffer(
6 + lenR + lenS)
29247 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29248 signature[
0] =
0x30
29249 signature[
1] = signature.length -
2
29250 signature[
2] =
0x02
29251 signature[
3] = r.length
29252 r.copy(signature,
4)
29253 signature[
4 + lenR] =
0x02
29254 signature[
5 + lenR] = s.length
29255 s.copy(signature,
6 + lenR)
29266 }).call(this,require(
"buffer").Buffer)
29267 },{
"buffer":
5}],
33:[function(require,module,exports){
29268 (function (module, exports) {
29272 function assert (val, msg) {
29273 if (!val) throw new Error(msg || 'Assertion failed');
29276 // Could use `inherits` module, but don't want to move from single file
29277 // architecture yet.
29278 function inherits (ctor, superCtor) {
29279 ctor.super_ = superCtor;
29280 var TempCtor = function () {};
29281 TempCtor.prototype = superCtor.prototype;
29282 ctor.prototype = new TempCtor();
29283 ctor.prototype.constructor = ctor;
29288 function BN (number, base, endian) {
29289 if (BN.isBN(number)) {
29297 // Reduction context
29300 if (number !== null) {
29301 if (base === 'le' || base === 'be') {
29306 this._init(number ||
0, base ||
10, endian || 'be');
29309 if (typeof module === 'object') {
29310 module.exports = BN;
29320 Buffer = require('buf' + 'fer').Buffer;
29324 BN.isBN = function isBN (num) {
29325 if (num instanceof BN) {
29329 return num !== null && typeof num === 'object' &&
29330 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29333 BN.max = function max (left, right) {
29334 if (left.cmp(right)
> 0) return left;
29338 BN.min = function min (left, right) {
29339 if (left.cmp(right) <
0) return left;
29343 BN.prototype._init = function init (number, base, endian) {
29344 if (typeof number === 'number') {
29345 return this._initNumber(number, base, endian);
29348 if (typeof number === 'object') {
29349 return this._initArray(number, base, endian);
29352 if (base === 'hex') {
29355 assert(base === (base |
0) && base
>=
2 && base <=
36);
29357 number = number.toString().replace(/\s+/g, '');
29359 if (number[
0] === '-') {
29364 this._parseHex(number, start);
29366 this._parseBase(number, base, start);
29369 if (number[
0] === '-') {
29375 if (endian !== 'le') return;
29377 this._initArray(this.toArray(), base, endian);
29380 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29385 if (number <
0x4000000) {
29386 this.words = [ number &
0x3ffffff ];
29388 } else if (number <
0x10000000000000) {
29390 number &
0x3ffffff,
29391 (number /
0x4000000) &
0x3ffffff
29395 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29397 number &
0x3ffffff,
29398 (number /
0x4000000) &
0x3ffffff,
29404 if (endian !== 'le') return;
29406 // Reverse the bytes
29407 this._initArray(this.toArray(), base, endian);
29410 BN.prototype._initArray = function _initArray (number, base, endian) {
29411 // Perhaps a Uint8Array
29412 assert(typeof number.length === 'number');
29413 if (number.length <=
0) {
29414 this.words = [
0 ];
29419 this.length = Math.ceil(number.length /
3);
29420 this.words = new Array(this.length);
29421 for (var i =
0; i < this.length; i++) {
29427 if (endian === 'be') {
29428 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29429 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29430 this.words[j] |= (w << off) &
0x3ffffff;
29431 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29438 } else if (endian === 'le') {
29439 for (i =
0, j =
0; i < number.length; i +=
3) {
29440 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29441 this.words[j] |= (w << off) &
0x3ffffff;
29442 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29450 return this.strip();
29453 function parseHex (str, start, end) {
29455 var len = Math.min(str.length, end);
29456 for (var i = start; i < len; i++) {
29457 var c = str.charCodeAt(i) -
48;
29462 if (c
>=
49 && c <=
54) {
29466 } else if (c
>=
17 && c <=
22) {
29477 BN.prototype._parseHex = function _parseHex (number, start) {
29478 // Create possibly bigger array to ensure that it fits the number
29479 this.length = Math.ceil((number.length - start) /
6);
29480 this.words = new Array(this.length);
29481 for (var i =
0; i < this.length; i++) {
29486 // Scan
24-bit chunks and add them to the number
29488 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29489 w = parseHex(number, i, i +
6);
29490 this.words[j] |= (w << off) &
0x3ffffff;
29491 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29492 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29499 if (i +
6 !== start) {
29500 w = parseHex(number, start, i +
6);
29501 this.words[j] |= (w << off) &
0x3ffffff;
29502 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29507 function parseBase (str, start, end, mul) {
29509 var len = Math.min(str.length, end);
29510 for (var i = start; i < len; i++) {
29511 var c = str.charCodeAt(i) -
48;
29520 } else if (c
>=
17) {
29531 BN.prototype._parseBase = function _parseBase (number, base, start) {
29532 // Initialize as zero
29533 this.words = [
0 ];
29536 // Find length of limb in base
29537 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29541 limbPow = (limbPow / base) |
0;
29543 var total = number.length - start;
29544 var mod = total % limbLen;
29545 var end = Math.min(total, total - mod) + start;
29548 for (var i = start; i < end; i += limbLen) {
29549 word = parseBase(number, i, i + limbLen, base);
29551 this.imuln(limbPow);
29552 if (this.words[
0] + word <
0x4000000) {
29553 this.words[
0] += word;
29561 word = parseBase(number, i, number.length, base);
29563 for (i =
0; i < mod; i++) {
29568 if (this.words[
0] + word <
0x4000000) {
29569 this.words[
0] += word;
29576 BN.prototype.copy = function copy (dest) {
29577 dest.words = new Array(this.length);
29578 for (var i =
0; i < this.length; i++) {
29579 dest.words[i] = this.words[i];
29581 dest.length = this.length;
29582 dest.negative = this.negative;
29583 dest.red = this.red;
29586 BN.prototype.clone = function clone () {
29587 var r = new BN(null);
29592 BN.prototype._expand = function _expand (size) {
29593 while (this.length < size) {
29594 this.words[this.length++] =
0;
29599 // Remove leading `
0` from `this`
29600 BN.prototype.strip = function strip () {
29601 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29604 return this._normSign();
29607 BN.prototype._normSign = function _normSign () {
29609 if (this.length ===
1 && this.words[
0] ===
0) {
29615 BN.prototype.inspect = function inspect () {
29616 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29622 var groupSizes = [];
29623 var groupBases = [];
29627 while (++i < BN.wordSize) {
29636 while (++base <
36 +
1) {
29639 while (groupBase < (
1 << BN.wordSize) / base) {
29643 groupSizes[base] = groupSize;
29644 groupBases[base] = groupBase;
29666 '
0000000000000000',
29667 '
00000000000000000',
29668 '
000000000000000000',
29669 '
0000000000000000000',
29670 '
00000000000000000000',
29671 '
000000000000000000000',
29672 '
0000000000000000000000',
29673 '
00000000000000000000000',
29674 '
000000000000000000000000',
29675 '
0000000000000000000000000'
29680 25,
16,
12,
11,
10,
9,
8,
29681 8,
7,
7,
7,
7,
6,
6,
29682 6,
6,
6,
6,
6,
5,
5,
29683 5,
5,
5,
5,
5,
5,
5,
29684 5,
5,
5,
5,
5,
5,
5
29689 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29690 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29691 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29692 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29693 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29696 BN.prototype.toString = function toString (base, padding) {
29698 padding = padding |
0 ||
1;
29701 if (base ===
16 || base === 'hex') {
29705 for (var i =
0; i < this.length; i++) {
29706 var w = this.words[i];
29707 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29708 carry = (w
>>> (
24 - off)) &
0xffffff;
29709 if (carry !==
0 || i !== this.length -
1) {
29710 out = zeros[
6 - word.length] + word + out;
29721 out = carry.toString(
16) + out;
29723 while (out.length % padding !==
0) {
29726 if (this.negative !==
0) {
29732 if (base === (base |
0) && base
>=
2 && base <=
36) {
29733 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29734 var groupSize = groupSizes[base];
29735 // var groupBase = Math.pow(base, groupSize);
29736 var groupBase = groupBases[base];
29738 var c = this.clone();
29740 while (!c.isZero()) {
29741 var r = c.modn(groupBase).toString(base);
29742 c = c.idivn(groupBase);
29745 out = zeros[groupSize - r.length] + r + out;
29750 if (this.isZero()) {
29753 while (out.length % padding !==
0) {
29756 if (this.negative !==
0) {
29762 assert(false, 'Base should be between
2 and
36');
29765 BN.prototype.toNumber = function toNumber () {
29766 var ret = this.words[
0];
29767 if (this.length ===
2) {
29768 ret += this.words[
1] *
0x4000000;
29769 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29770 // NOTE: at this stage it is known that the top bit is set
29771 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29772 } else if (this.length
> 2) {
29773 assert(false, 'Number can only safely store up to
53 bits');
29775 return (this.negative !==
0) ? -ret : ret;
29778 BN.prototype.toJSON = function toJSON () {
29779 return this.toString(
16);
29782 BN.prototype.toBuffer = function toBuffer (endian, length) {
29783 assert(typeof Buffer !== 'undefined');
29784 return this.toArrayLike(Buffer, endian, length);
29787 BN.prototype.toArray = function toArray (endian, length) {
29788 return this.toArrayLike(Array, endian, length);
29791 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29792 var byteLength = this.byteLength();
29793 var reqLength = length || Math.max(
1, byteLength);
29794 assert(byteLength <= reqLength, 'byte array longer than desired length');
29795 assert(reqLength
> 0, 'Requested array length <=
0');
29798 var littleEndian = endian === 'le';
29799 var res = new ArrayType(reqLength);
29802 var q = this.clone();
29803 if (!littleEndian) {
29804 // Assume big-endian
29805 for (i =
0; i < reqLength - byteLength; i++) {
29809 for (i =
0; !q.isZero(); i++) {
29813 res[reqLength - i -
1] = b;
29816 for (i =
0; !q.isZero(); i++) {
29823 for (; i < reqLength; i++) {
29832 BN.prototype._countBits = function _countBits (w) {
29833 return
32 - Math.clz32(w);
29836 BN.prototype._countBits = function _countBits (w) {
29859 BN.prototype._zeroBits = function _zeroBits (w) {
29861 if (w ===
0) return
26;
29865 if ((t &
0x1fff) ===
0) {
29869 if ((t &
0x7f) ===
0) {
29873 if ((t &
0xf) ===
0) {
29877 if ((t &
0x3) ===
0) {
29881 if ((t &
0x1) ===
0) {
29887 // Return number of used bits in a BN
29888 BN.prototype.bitLength = function bitLength () {
29889 var w = this.words[this.length -
1];
29890 var hi = this._countBits(w);
29891 return (this.length -
1) *
26 + hi;
29894 function toBitArray (num) {
29895 var w = new Array(num.bitLength());
29897 for (var bit =
0; bit < w.length; bit++) {
29898 var off = (bit /
26) |
0;
29899 var wbit = bit %
26;
29901 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29907 // Number of trailing zero bits
29908 BN.prototype.zeroBits = function zeroBits () {
29909 if (this.isZero()) return
0;
29912 for (var i =
0; i < this.length; i++) {
29913 var b = this._zeroBits(this.words[i]);
29915 if (b !==
26) break;
29920 BN.prototype.byteLength = function byteLength () {
29921 return Math.ceil(this.bitLength() /
8);
29924 BN.prototype.toTwos = function toTwos (width) {
29925 if (this.negative !==
0) {
29926 return this.abs().inotn(width).iaddn(
1);
29928 return this.clone();
29931 BN.prototype.fromTwos = function fromTwos (width) {
29932 if (this.testn(width -
1)) {
29933 return this.notn(width).iaddn(
1).ineg();
29935 return this.clone();
29938 BN.prototype.isNeg = function isNeg () {
29939 return this.negative !==
0;
29942 // Return negative clone of `this`
29943 BN.prototype.neg = function neg () {
29944 return this.clone().ineg();
29947 BN.prototype.ineg = function ineg () {
29948 if (!this.isZero()) {
29949 this.negative ^=
1;
29955 // Or `num` with `this` in-place
29956 BN.prototype.iuor = function iuor (num) {
29957 while (this.length < num.length) {
29958 this.words[this.length++] =
0;
29961 for (var i =
0; i < num.length; i++) {
29962 this.words[i] = this.words[i] | num.words[i];
29965 return this.strip();
29968 BN.prototype.ior = function ior (num) {
29969 assert((this.negative | num.negative) ===
0);
29970 return this.iuor(num);
29973 // Or `num` with `this`
29974 BN.prototype.or = function or (num) {
29975 if (this.length
> num.length) return this.clone().ior(num);
29976 return num.clone().ior(this);
29979 BN.prototype.uor = function uor (num) {
29980 if (this.length
> num.length) return this.clone().iuor(num);
29981 return num.clone().iuor(this);
29984 // And `num` with `this` in-place
29985 BN.prototype.iuand = function iuand (num) {
29986 // b = min-length(num, this)
29988 if (this.length
> num.length) {
29994 for (var i =
0; i < b.length; i++) {
29995 this.words[i] = this.words[i] & num.words[i];
29998 this.length = b.length;
30000 return this.strip();
30003 BN.prototype.iand = function iand (num) {
30004 assert((this.negative | num.negative) ===
0);
30005 return this.iuand(num);
30008 // And `num` with `this`
30009 BN.prototype.and = function and (num) {
30010 if (this.length
> num.length) return this.clone().iand(num);
30011 return num.clone().iand(this);
30014 BN.prototype.uand = function uand (num) {
30015 if (this.length
> num.length) return this.clone().iuand(num);
30016 return num.clone().iuand(this);
30019 // Xor `num` with `this` in-place
30020 BN.prototype.iuxor = function iuxor (num) {
30021 // a.length
> b.length
30024 if (this.length
> num.length) {
30032 for (var i =
0; i < b.length; i++) {
30033 this.words[i] = a.words[i] ^ b.words[i];
30037 for (; i < a.length; i++) {
30038 this.words[i] = a.words[i];
30042 this.length = a.length;
30044 return this.strip();
30047 BN.prototype.ixor = function ixor (num) {
30048 assert((this.negative | num.negative) ===
0);
30049 return this.iuxor(num);
30052 // Xor `num` with `this`
30053 BN.prototype.xor = function xor (num) {
30054 if (this.length
> num.length) return this.clone().ixor(num);
30055 return num.clone().ixor(this);
30058 BN.prototype.uxor = function uxor (num) {
30059 if (this.length
> num.length) return this.clone().iuxor(num);
30060 return num.clone().iuxor(this);
30063 // Not ``this`` with ``width`` bitwidth
30064 BN.prototype.inotn = function inotn (width) {
30065 assert(typeof width === 'number' && width
>=
0);
30067 var bytesNeeded = Math.ceil(width /
26) |
0;
30068 var bitsLeft = width %
26;
30070 // Extend the buffer with leading zeroes
30071 this._expand(bytesNeeded);
30073 if (bitsLeft
> 0) {
30077 // Handle complete words
30078 for (var i =
0; i < bytesNeeded; i++) {
30079 this.words[i] = ~this.words[i] &
0x3ffffff;
30082 // Handle the residue
30083 if (bitsLeft
> 0) {
30084 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30087 // And remove leading zeroes
30088 return this.strip();
30091 BN.prototype.notn = function notn (width) {
30092 return this.clone().inotn(width);
30095 // Set `bit` of `this`
30096 BN.prototype.setn = function setn (bit, val) {
30097 assert(typeof bit === 'number' && bit
>=
0);
30099 var off = (bit /
26) |
0;
30100 var wbit = bit %
26;
30102 this._expand(off +
1);
30105 this.words[off] = this.words[off] | (
1 << wbit);
30107 this.words[off] = this.words[off] & ~(
1 << wbit);
30110 return this.strip();
30113 // Add `num` to `this` in-place
30114 BN.prototype.iadd = function iadd (num) {
30117 // negative + positive
30118 if (this.negative !==
0 && num.negative ===
0) {
30120 r = this.isub(num);
30121 this.negative ^=
1;
30122 return this._normSign();
30124 // positive + negative
30125 } else if (this.negative ===
0 && num.negative !==
0) {
30127 r = this.isub(num);
30129 return r._normSign();
30132 // a.length
> b.length
30134 if (this.length
> num.length) {
30143 for (var i =
0; i < b.length; i++) {
30144 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30145 this.words[i] = r &
0x3ffffff;
30148 for (; carry !==
0 && i < a.length; i++) {
30149 r = (a.words[i] |
0) + carry;
30150 this.words[i] = r &
0x3ffffff;
30154 this.length = a.length;
30156 this.words[this.length] = carry;
30158 // Copy the rest of the words
30159 } else if (a !== this) {
30160 for (; i < a.length; i++) {
30161 this.words[i] = a.words[i];
30168 // Add `num` to `this`
30169 BN.prototype.add = function add (num) {
30171 if (num.negative !==
0 && this.negative ===
0) {
30173 res = this.sub(num);
30176 } else if (num.negative ===
0 && this.negative !==
0) {
30178 res = num.sub(this);
30183 if (this.length
> num.length) return this.clone().iadd(num);
30185 return num.clone().iadd(this);
30188 // Subtract `num` from `this` in-place
30189 BN.prototype.isub = function isub (num) {
30190 // this - (-num) = this + num
30191 if (num.negative !==
0) {
30193 var r = this.iadd(num);
30195 return r._normSign();
30197 // -this - num = -(this + num)
30198 } else if (this.negative !==
0) {
30202 return this._normSign();
30205 // At this point both numbers are positive
30206 var cmp = this.cmp(num);
30208 // Optimization - zeroify
30227 for (var i =
0; i < b.length; i++) {
30228 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30230 this.words[i] = r &
0x3ffffff;
30232 for (; carry !==
0 && i < a.length; i++) {
30233 r = (a.words[i] |
0) + carry;
30235 this.words[i] = r &
0x3ffffff;
30238 // Copy rest of the words
30239 if (carry ===
0 && i < a.length && a !== this) {
30240 for (; i < a.length; i++) {
30241 this.words[i] = a.words[i];
30245 this.length = Math.max(this.length, i);
30251 return this.strip();
30254 // Subtract `num` from `this`
30255 BN.prototype.sub = function sub (num) {
30256 return this.clone().isub(num);
30259 function smallMulTo (self, num, out) {
30260 out.negative = num.negative ^ self.negative;
30261 var len = (self.length + num.length) |
0;
30263 len = (len -
1) |
0;
30265 // Peel one iteration (compiler can't do it, because of code complexity)
30266 var a = self.words[
0] |
0;
30267 var b = num.words[
0] |
0;
30270 var lo = r &
0x3ffffff;
30271 var carry = (r /
0x4000000) |
0;
30274 for (var k =
1; k < len; k++) {
30275 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30276 // note that ncarry could be
>=
0x3ffffff
30277 var ncarry = carry
>>> 26;
30278 var rword = carry &
0x3ffffff;
30279 var maxJ = Math.min(k, num.length -
1);
30280 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30281 var i = (k - j) |
0;
30282 a = self.words[i] |
0;
30283 b = num.words[j] |
0;
30285 ncarry += (r /
0x4000000) |
0;
30286 rword = r &
0x3ffffff;
30288 out.words[k] = rword |
0;
30289 carry = ncarry |
0;
30292 out.words[k] = carry |
0;
30297 return out.strip();
30300 // TODO(indutny): it may be reasonable to omit it for users who don't need
30301 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30302 // multiplication (like elliptic secp256k1).
30303 var comb10MulTo = function comb10MulTo (self, num, out) {
30304 var a = self.words;
30312 var al0 = a0 &
0x1fff;
30313 var ah0 = a0
>>> 13;
30315 var al1 = a1 &
0x1fff;
30316 var ah1 = a1
>>> 13;
30318 var al2 = a2 &
0x1fff;
30319 var ah2 = a2
>>> 13;
30321 var al3 = a3 &
0x1fff;
30322 var ah3 = a3
>>> 13;
30324 var al4 = a4 &
0x1fff;
30325 var ah4 = a4
>>> 13;
30327 var al5 = a5 &
0x1fff;
30328 var ah5 = a5
>>> 13;
30330 var al6 = a6 &
0x1fff;
30331 var ah6 = a6
>>> 13;
30333 var al7 = a7 &
0x1fff;
30334 var ah7 = a7
>>> 13;
30336 var al8 = a8 &
0x1fff;
30337 var ah8 = a8
>>> 13;
30339 var al9 = a9 &
0x1fff;
30340 var ah9 = a9
>>> 13;
30342 var bl0 = b0 &
0x1fff;
30343 var bh0 = b0
>>> 13;
30345 var bl1 = b1 &
0x1fff;
30346 var bh1 = b1
>>> 13;
30348 var bl2 = b2 &
0x1fff;
30349 var bh2 = b2
>>> 13;
30351 var bl3 = b3 &
0x1fff;
30352 var bh3 = b3
>>> 13;
30354 var bl4 = b4 &
0x1fff;
30355 var bh4 = b4
>>> 13;
30357 var bl5 = b5 &
0x1fff;
30358 var bh5 = b5
>>> 13;
30360 var bl6 = b6 &
0x1fff;
30361 var bh6 = b6
>>> 13;
30363 var bl7 = b7 &
0x1fff;
30364 var bh7 = b7
>>> 13;
30366 var bl8 = b8 &
0x1fff;
30367 var bh8 = b8
>>> 13;
30369 var bl9 = b9 &
0x1fff;
30370 var bh9 = b9
>>> 13;
30372 out.negative = self.negative ^ num.negative;
30375 lo = Math.imul(al0, bl0);
30376 mid = Math.imul(al0, bh0);
30377 mid = (mid + Math.imul(ah0, bl0)) |
0;
30378 hi = Math.imul(ah0, bh0);
30379 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30380 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30383 lo = Math.imul(al1, bl0);
30384 mid = Math.imul(al1, bh0);
30385 mid = (mid + Math.imul(ah1, bl0)) |
0;
30386 hi = Math.imul(ah1, bh0);
30387 lo = (lo + Math.imul(al0, bl1)) |
0;
30388 mid = (mid + Math.imul(al0, bh1)) |
0;
30389 mid = (mid + Math.imul(ah0, bl1)) |
0;
30390 hi = (hi + Math.imul(ah0, bh1)) |
0;
30391 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30392 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30395 lo = Math.imul(al2, bl0);
30396 mid = Math.imul(al2, bh0);
30397 mid = (mid + Math.imul(ah2, bl0)) |
0;
30398 hi = Math.imul(ah2, bh0);
30399 lo = (lo + Math.imul(al1, bl1)) |
0;
30400 mid = (mid + Math.imul(al1, bh1)) |
0;
30401 mid = (mid + Math.imul(ah1, bl1)) |
0;
30402 hi = (hi + Math.imul(ah1, bh1)) |
0;
30403 lo = (lo + Math.imul(al0, bl2)) |
0;
30404 mid = (mid + Math.imul(al0, bh2)) |
0;
30405 mid = (mid + Math.imul(ah0, bl2)) |
0;
30406 hi = (hi + Math.imul(ah0, bh2)) |
0;
30407 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30408 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30411 lo = Math.imul(al3, bl0);
30412 mid = Math.imul(al3, bh0);
30413 mid = (mid + Math.imul(ah3, bl0)) |
0;
30414 hi = Math.imul(ah3, bh0);
30415 lo = (lo + Math.imul(al2, bl1)) |
0;
30416 mid = (mid + Math.imul(al2, bh1)) |
0;
30417 mid = (mid + Math.imul(ah2, bl1)) |
0;
30418 hi = (hi + Math.imul(ah2, bh1)) |
0;
30419 lo = (lo + Math.imul(al1, bl2)) |
0;
30420 mid = (mid + Math.imul(al1, bh2)) |
0;
30421 mid = (mid + Math.imul(ah1, bl2)) |
0;
30422 hi = (hi + Math.imul(ah1, bh2)) |
0;
30423 lo = (lo + Math.imul(al0, bl3)) |
0;
30424 mid = (mid + Math.imul(al0, bh3)) |
0;
30425 mid = (mid + Math.imul(ah0, bl3)) |
0;
30426 hi = (hi + Math.imul(ah0, bh3)) |
0;
30427 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30428 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30431 lo = Math.imul(al4, bl0);
30432 mid = Math.imul(al4, bh0);
30433 mid = (mid + Math.imul(ah4, bl0)) |
0;
30434 hi = Math.imul(ah4, bh0);
30435 lo = (lo + Math.imul(al3, bl1)) |
0;
30436 mid = (mid + Math.imul(al3, bh1)) |
0;
30437 mid = (mid + Math.imul(ah3, bl1)) |
0;
30438 hi = (hi + Math.imul(ah3, bh1)) |
0;
30439 lo = (lo + Math.imul(al2, bl2)) |
0;
30440 mid = (mid + Math.imul(al2, bh2)) |
0;
30441 mid = (mid + Math.imul(ah2, bl2)) |
0;
30442 hi = (hi + Math.imul(ah2, bh2)) |
0;
30443 lo = (lo + Math.imul(al1, bl3)) |
0;
30444 mid = (mid + Math.imul(al1, bh3)) |
0;
30445 mid = (mid + Math.imul(ah1, bl3)) |
0;
30446 hi = (hi + Math.imul(ah1, bh3)) |
0;
30447 lo = (lo + Math.imul(al0, bl4)) |
0;
30448 mid = (mid + Math.imul(al0, bh4)) |
0;
30449 mid = (mid + Math.imul(ah0, bl4)) |
0;
30450 hi = (hi + Math.imul(ah0, bh4)) |
0;
30451 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30452 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30455 lo = Math.imul(al5, bl0);
30456 mid = Math.imul(al5, bh0);
30457 mid = (mid + Math.imul(ah5, bl0)) |
0;
30458 hi = Math.imul(ah5, bh0);
30459 lo = (lo + Math.imul(al4, bl1)) |
0;
30460 mid = (mid + Math.imul(al4, bh1)) |
0;
30461 mid = (mid + Math.imul(ah4, bl1)) |
0;
30462 hi = (hi + Math.imul(ah4, bh1)) |
0;
30463 lo = (lo + Math.imul(al3, bl2)) |
0;
30464 mid = (mid + Math.imul(al3, bh2)) |
0;
30465 mid = (mid + Math.imul(ah3, bl2)) |
0;
30466 hi = (hi + Math.imul(ah3, bh2)) |
0;
30467 lo = (lo + Math.imul(al2, bl3)) |
0;
30468 mid = (mid + Math.imul(al2, bh3)) |
0;
30469 mid = (mid + Math.imul(ah2, bl3)) |
0;
30470 hi = (hi + Math.imul(ah2, bh3)) |
0;
30471 lo = (lo + Math.imul(al1, bl4)) |
0;
30472 mid = (mid + Math.imul(al1, bh4)) |
0;
30473 mid = (mid + Math.imul(ah1, bl4)) |
0;
30474 hi = (hi + Math.imul(ah1, bh4)) |
0;
30475 lo = (lo + Math.imul(al0, bl5)) |
0;
30476 mid = (mid + Math.imul(al0, bh5)) |
0;
30477 mid = (mid + Math.imul(ah0, bl5)) |
0;
30478 hi = (hi + Math.imul(ah0, bh5)) |
0;
30479 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30480 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30483 lo = Math.imul(al6, bl0);
30484 mid = Math.imul(al6, bh0);
30485 mid = (mid + Math.imul(ah6, bl0)) |
0;
30486 hi = Math.imul(ah6, bh0);
30487 lo = (lo + Math.imul(al5, bl1)) |
0;
30488 mid = (mid + Math.imul(al5, bh1)) |
0;
30489 mid = (mid + Math.imul(ah5, bl1)) |
0;
30490 hi = (hi + Math.imul(ah5, bh1)) |
0;
30491 lo = (lo + Math.imul(al4, bl2)) |
0;
30492 mid = (mid + Math.imul(al4, bh2)) |
0;
30493 mid = (mid + Math.imul(ah4, bl2)) |
0;
30494 hi = (hi + Math.imul(ah4, bh2)) |
0;
30495 lo = (lo + Math.imul(al3, bl3)) |
0;
30496 mid = (mid + Math.imul(al3, bh3)) |
0;
30497 mid = (mid + Math.imul(ah3, bl3)) |
0;
30498 hi = (hi + Math.imul(ah3, bh3)) |
0;
30499 lo = (lo + Math.imul(al2, bl4)) |
0;
30500 mid = (mid + Math.imul(al2, bh4)) |
0;
30501 mid = (mid + Math.imul(ah2, bl4)) |
0;
30502 hi = (hi + Math.imul(ah2, bh4)) |
0;
30503 lo = (lo + Math.imul(al1, bl5)) |
0;
30504 mid = (mid + Math.imul(al1, bh5)) |
0;
30505 mid = (mid + Math.imul(ah1, bl5)) |
0;
30506 hi = (hi + Math.imul(ah1, bh5)) |
0;
30507 lo = (lo + Math.imul(al0, bl6)) |
0;
30508 mid = (mid + Math.imul(al0, bh6)) |
0;
30509 mid = (mid + Math.imul(ah0, bl6)) |
0;
30510 hi = (hi + Math.imul(ah0, bh6)) |
0;
30511 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30512 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30515 lo = Math.imul(al7, bl0);
30516 mid = Math.imul(al7, bh0);
30517 mid = (mid + Math.imul(ah7, bl0)) |
0;
30518 hi = Math.imul(ah7, bh0);
30519 lo = (lo + Math.imul(al6, bl1)) |
0;
30520 mid = (mid + Math.imul(al6, bh1)) |
0;
30521 mid = (mid + Math.imul(ah6, bl1)) |
0;
30522 hi = (hi + Math.imul(ah6, bh1)) |
0;
30523 lo = (lo + Math.imul(al5, bl2)) |
0;
30524 mid = (mid + Math.imul(al5, bh2)) |
0;
30525 mid = (mid + Math.imul(ah5, bl2)) |
0;
30526 hi = (hi + Math.imul(ah5, bh2)) |
0;
30527 lo = (lo + Math.imul(al4, bl3)) |
0;
30528 mid = (mid + Math.imul(al4, bh3)) |
0;
30529 mid = (mid + Math.imul(ah4, bl3)) |
0;
30530 hi = (hi + Math.imul(ah4, bh3)) |
0;
30531 lo = (lo + Math.imul(al3, bl4)) |
0;
30532 mid = (mid + Math.imul(al3, bh4)) |
0;
30533 mid = (mid + Math.imul(ah3, bl4)) |
0;
30534 hi = (hi + Math.imul(ah3, bh4)) |
0;
30535 lo = (lo + Math.imul(al2, bl5)) |
0;
30536 mid = (mid + Math.imul(al2, bh5)) |
0;
30537 mid = (mid + Math.imul(ah2, bl5)) |
0;
30538 hi = (hi + Math.imul(ah2, bh5)) |
0;
30539 lo = (lo + Math.imul(al1, bl6)) |
0;
30540 mid = (mid + Math.imul(al1, bh6)) |
0;
30541 mid = (mid + Math.imul(ah1, bl6)) |
0;
30542 hi = (hi + Math.imul(ah1, bh6)) |
0;
30543 lo = (lo + Math.imul(al0, bl7)) |
0;
30544 mid = (mid + Math.imul(al0, bh7)) |
0;
30545 mid = (mid + Math.imul(ah0, bl7)) |
0;
30546 hi = (hi + Math.imul(ah0, bh7)) |
0;
30547 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30548 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30551 lo = Math.imul(al8, bl0);
30552 mid = Math.imul(al8, bh0);
30553 mid = (mid + Math.imul(ah8, bl0)) |
0;
30554 hi = Math.imul(ah8, bh0);
30555 lo = (lo + Math.imul(al7, bl1)) |
0;
30556 mid = (mid + Math.imul(al7, bh1)) |
0;
30557 mid = (mid + Math.imul(ah7, bl1)) |
0;
30558 hi = (hi + Math.imul(ah7, bh1)) |
0;
30559 lo = (lo + Math.imul(al6, bl2)) |
0;
30560 mid = (mid + Math.imul(al6, bh2)) |
0;
30561 mid = (mid + Math.imul(ah6, bl2)) |
0;
30562 hi = (hi + Math.imul(ah6, bh2)) |
0;
30563 lo = (lo + Math.imul(al5, bl3)) |
0;
30564 mid = (mid + Math.imul(al5, bh3)) |
0;
30565 mid = (mid + Math.imul(ah5, bl3)) |
0;
30566 hi = (hi + Math.imul(ah5, bh3)) |
0;
30567 lo = (lo + Math.imul(al4, bl4)) |
0;
30568 mid = (mid + Math.imul(al4, bh4)) |
0;
30569 mid = (mid + Math.imul(ah4, bl4)) |
0;
30570 hi = (hi + Math.imul(ah4, bh4)) |
0;
30571 lo = (lo + Math.imul(al3, bl5)) |
0;
30572 mid = (mid + Math.imul(al3, bh5)) |
0;
30573 mid = (mid + Math.imul(ah3, bl5)) |
0;
30574 hi = (hi + Math.imul(ah3, bh5)) |
0;
30575 lo = (lo + Math.imul(al2, bl6)) |
0;
30576 mid = (mid + Math.imul(al2, bh6)) |
0;
30577 mid = (mid + Math.imul(ah2, bl6)) |
0;
30578 hi = (hi + Math.imul(ah2, bh6)) |
0;
30579 lo = (lo + Math.imul(al1, bl7)) |
0;
30580 mid = (mid + Math.imul(al1, bh7)) |
0;
30581 mid = (mid + Math.imul(ah1, bl7)) |
0;
30582 hi = (hi + Math.imul(ah1, bh7)) |
0;
30583 lo = (lo + Math.imul(al0, bl8)) |
0;
30584 mid = (mid + Math.imul(al0, bh8)) |
0;
30585 mid = (mid + Math.imul(ah0, bl8)) |
0;
30586 hi = (hi + Math.imul(ah0, bh8)) |
0;
30587 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30588 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30591 lo = Math.imul(al9, bl0);
30592 mid = Math.imul(al9, bh0);
30593 mid = (mid + Math.imul(ah9, bl0)) |
0;
30594 hi = Math.imul(ah9, bh0);
30595 lo = (lo + Math.imul(al8, bl1)) |
0;
30596 mid = (mid + Math.imul(al8, bh1)) |
0;
30597 mid = (mid + Math.imul(ah8, bl1)) |
0;
30598 hi = (hi + Math.imul(ah8, bh1)) |
0;
30599 lo = (lo + Math.imul(al7, bl2)) |
0;
30600 mid = (mid + Math.imul(al7, bh2)) |
0;
30601 mid = (mid + Math.imul(ah7, bl2)) |
0;
30602 hi = (hi + Math.imul(ah7, bh2)) |
0;
30603 lo = (lo + Math.imul(al6, bl3)) |
0;
30604 mid = (mid + Math.imul(al6, bh3)) |
0;
30605 mid = (mid + Math.imul(ah6, bl3)) |
0;
30606 hi = (hi + Math.imul(ah6, bh3)) |
0;
30607 lo = (lo + Math.imul(al5, bl4)) |
0;
30608 mid = (mid + Math.imul(al5, bh4)) |
0;
30609 mid = (mid + Math.imul(ah5, bl4)) |
0;
30610 hi = (hi + Math.imul(ah5, bh4)) |
0;
30611 lo = (lo + Math.imul(al4, bl5)) |
0;
30612 mid = (mid + Math.imul(al4, bh5)) |
0;
30613 mid = (mid + Math.imul(ah4, bl5)) |
0;
30614 hi = (hi + Math.imul(ah4, bh5)) |
0;
30615 lo = (lo + Math.imul(al3, bl6)) |
0;
30616 mid = (mid + Math.imul(al3, bh6)) |
0;
30617 mid = (mid + Math.imul(ah3, bl6)) |
0;
30618 hi = (hi + Math.imul(ah3, bh6)) |
0;
30619 lo = (lo + Math.imul(al2, bl7)) |
0;
30620 mid = (mid + Math.imul(al2, bh7)) |
0;
30621 mid = (mid + Math.imul(ah2, bl7)) |
0;
30622 hi = (hi + Math.imul(ah2, bh7)) |
0;
30623 lo = (lo + Math.imul(al1, bl8)) |
0;
30624 mid = (mid + Math.imul(al1, bh8)) |
0;
30625 mid = (mid + Math.imul(ah1, bl8)) |
0;
30626 hi = (hi + Math.imul(ah1, bh8)) |
0;
30627 lo = (lo + Math.imul(al0, bl9)) |
0;
30628 mid = (mid + Math.imul(al0, bh9)) |
0;
30629 mid = (mid + Math.imul(ah0, bl9)) |
0;
30630 hi = (hi + Math.imul(ah0, bh9)) |
0;
30631 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30632 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30635 lo = Math.imul(al9, bl1);
30636 mid = Math.imul(al9, bh1);
30637 mid = (mid + Math.imul(ah9, bl1)) |
0;
30638 hi = Math.imul(ah9, bh1);
30639 lo = (lo + Math.imul(al8, bl2)) |
0;
30640 mid = (mid + Math.imul(al8, bh2)) |
0;
30641 mid = (mid + Math.imul(ah8, bl2)) |
0;
30642 hi = (hi + Math.imul(ah8, bh2)) |
0;
30643 lo = (lo + Math.imul(al7, bl3)) |
0;
30644 mid = (mid + Math.imul(al7, bh3)) |
0;
30645 mid = (mid + Math.imul(ah7, bl3)) |
0;
30646 hi = (hi + Math.imul(ah7, bh3)) |
0;
30647 lo = (lo + Math.imul(al6, bl4)) |
0;
30648 mid = (mid + Math.imul(al6, bh4)) |
0;
30649 mid = (mid + Math.imul(ah6, bl4)) |
0;
30650 hi = (hi + Math.imul(ah6, bh4)) |
0;
30651 lo = (lo + Math.imul(al5, bl5)) |
0;
30652 mid = (mid + Math.imul(al5, bh5)) |
0;
30653 mid = (mid + Math.imul(ah5, bl5)) |
0;
30654 hi = (hi + Math.imul(ah5, bh5)) |
0;
30655 lo = (lo + Math.imul(al4, bl6)) |
0;
30656 mid = (mid + Math.imul(al4, bh6)) |
0;
30657 mid = (mid + Math.imul(ah4, bl6)) |
0;
30658 hi = (hi + Math.imul(ah4, bh6)) |
0;
30659 lo = (lo + Math.imul(al3, bl7)) |
0;
30660 mid = (mid + Math.imul(al3, bh7)) |
0;
30661 mid = (mid + Math.imul(ah3, bl7)) |
0;
30662 hi = (hi + Math.imul(ah3, bh7)) |
0;
30663 lo = (lo + Math.imul(al2, bl8)) |
0;
30664 mid = (mid + Math.imul(al2, bh8)) |
0;
30665 mid = (mid + Math.imul(ah2, bl8)) |
0;
30666 hi = (hi + Math.imul(ah2, bh8)) |
0;
30667 lo = (lo + Math.imul(al1, bl9)) |
0;
30668 mid = (mid + Math.imul(al1, bh9)) |
0;
30669 mid = (mid + Math.imul(ah1, bl9)) |
0;
30670 hi = (hi + Math.imul(ah1, bh9)) |
0;
30671 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30672 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30675 lo = Math.imul(al9, bl2);
30676 mid = Math.imul(al9, bh2);
30677 mid = (mid + Math.imul(ah9, bl2)) |
0;
30678 hi = Math.imul(ah9, bh2);
30679 lo = (lo + Math.imul(al8, bl3)) |
0;
30680 mid = (mid + Math.imul(al8, bh3)) |
0;
30681 mid = (mid + Math.imul(ah8, bl3)) |
0;
30682 hi = (hi + Math.imul(ah8, bh3)) |
0;
30683 lo = (lo + Math.imul(al7, bl4)) |
0;
30684 mid = (mid + Math.imul(al7, bh4)) |
0;
30685 mid = (mid + Math.imul(ah7, bl4)) |
0;
30686 hi = (hi + Math.imul(ah7, bh4)) |
0;
30687 lo = (lo + Math.imul(al6, bl5)) |
0;
30688 mid = (mid + Math.imul(al6, bh5)) |
0;
30689 mid = (mid + Math.imul(ah6, bl5)) |
0;
30690 hi = (hi + Math.imul(ah6, bh5)) |
0;
30691 lo = (lo + Math.imul(al5, bl6)) |
0;
30692 mid = (mid + Math.imul(al5, bh6)) |
0;
30693 mid = (mid + Math.imul(ah5, bl6)) |
0;
30694 hi = (hi + Math.imul(ah5, bh6)) |
0;
30695 lo = (lo + Math.imul(al4, bl7)) |
0;
30696 mid = (mid + Math.imul(al4, bh7)) |
0;
30697 mid = (mid + Math.imul(ah4, bl7)) |
0;
30698 hi = (hi + Math.imul(ah4, bh7)) |
0;
30699 lo = (lo + Math.imul(al3, bl8)) |
0;
30700 mid = (mid + Math.imul(al3, bh8)) |
0;
30701 mid = (mid + Math.imul(ah3, bl8)) |
0;
30702 hi = (hi + Math.imul(ah3, bh8)) |
0;
30703 lo = (lo + Math.imul(al2, bl9)) |
0;
30704 mid = (mid + Math.imul(al2, bh9)) |
0;
30705 mid = (mid + Math.imul(ah2, bl9)) |
0;
30706 hi = (hi + Math.imul(ah2, bh9)) |
0;
30707 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30708 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30711 lo = Math.imul(al9, bl3);
30712 mid = Math.imul(al9, bh3);
30713 mid = (mid + Math.imul(ah9, bl3)) |
0;
30714 hi = Math.imul(ah9, bh3);
30715 lo = (lo + Math.imul(al8, bl4)) |
0;
30716 mid = (mid + Math.imul(al8, bh4)) |
0;
30717 mid = (mid + Math.imul(ah8, bl4)) |
0;
30718 hi = (hi + Math.imul(ah8, bh4)) |
0;
30719 lo = (lo + Math.imul(al7, bl5)) |
0;
30720 mid = (mid + Math.imul(al7, bh5)) |
0;
30721 mid = (mid + Math.imul(ah7, bl5)) |
0;
30722 hi = (hi + Math.imul(ah7, bh5)) |
0;
30723 lo = (lo + Math.imul(al6, bl6)) |
0;
30724 mid = (mid + Math.imul(al6, bh6)) |
0;
30725 mid = (mid + Math.imul(ah6, bl6)) |
0;
30726 hi = (hi + Math.imul(ah6, bh6)) |
0;
30727 lo = (lo + Math.imul(al5, bl7)) |
0;
30728 mid = (mid + Math.imul(al5, bh7)) |
0;
30729 mid = (mid + Math.imul(ah5, bl7)) |
0;
30730 hi = (hi + Math.imul(ah5, bh7)) |
0;
30731 lo = (lo + Math.imul(al4, bl8)) |
0;
30732 mid = (mid + Math.imul(al4, bh8)) |
0;
30733 mid = (mid + Math.imul(ah4, bl8)) |
0;
30734 hi = (hi + Math.imul(ah4, bh8)) |
0;
30735 lo = (lo + Math.imul(al3, bl9)) |
0;
30736 mid = (mid + Math.imul(al3, bh9)) |
0;
30737 mid = (mid + Math.imul(ah3, bl9)) |
0;
30738 hi = (hi + Math.imul(ah3, bh9)) |
0;
30739 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30740 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30743 lo = Math.imul(al9, bl4);
30744 mid = Math.imul(al9, bh4);
30745 mid = (mid + Math.imul(ah9, bl4)) |
0;
30746 hi = Math.imul(ah9, bh4);
30747 lo = (lo + Math.imul(al8, bl5)) |
0;
30748 mid = (mid + Math.imul(al8, bh5)) |
0;
30749 mid = (mid + Math.imul(ah8, bl5)) |
0;
30750 hi = (hi + Math.imul(ah8, bh5)) |
0;
30751 lo = (lo + Math.imul(al7, bl6)) |
0;
30752 mid = (mid + Math.imul(al7, bh6)) |
0;
30753 mid = (mid + Math.imul(ah7, bl6)) |
0;
30754 hi = (hi + Math.imul(ah7, bh6)) |
0;
30755 lo = (lo + Math.imul(al6, bl7)) |
0;
30756 mid = (mid + Math.imul(al6, bh7)) |
0;
30757 mid = (mid + Math.imul(ah6, bl7)) |
0;
30758 hi = (hi + Math.imul(ah6, bh7)) |
0;
30759 lo = (lo + Math.imul(al5, bl8)) |
0;
30760 mid = (mid + Math.imul(al5, bh8)) |
0;
30761 mid = (mid + Math.imul(ah5, bl8)) |
0;
30762 hi = (hi + Math.imul(ah5, bh8)) |
0;
30763 lo = (lo + Math.imul(al4, bl9)) |
0;
30764 mid = (mid + Math.imul(al4, bh9)) |
0;
30765 mid = (mid + Math.imul(ah4, bl9)) |
0;
30766 hi = (hi + Math.imul(ah4, bh9)) |
0;
30767 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30768 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30771 lo = Math.imul(al9, bl5);
30772 mid = Math.imul(al9, bh5);
30773 mid = (mid + Math.imul(ah9, bl5)) |
0;
30774 hi = Math.imul(ah9, bh5);
30775 lo = (lo + Math.imul(al8, bl6)) |
0;
30776 mid = (mid + Math.imul(al8, bh6)) |
0;
30777 mid = (mid + Math.imul(ah8, bl6)) |
0;
30778 hi = (hi + Math.imul(ah8, bh6)) |
0;
30779 lo = (lo + Math.imul(al7, bl7)) |
0;
30780 mid = (mid + Math.imul(al7, bh7)) |
0;
30781 mid = (mid + Math.imul(ah7, bl7)) |
0;
30782 hi = (hi + Math.imul(ah7, bh7)) |
0;
30783 lo = (lo + Math.imul(al6, bl8)) |
0;
30784 mid = (mid + Math.imul(al6, bh8)) |
0;
30785 mid = (mid + Math.imul(ah6, bl8)) |
0;
30786 hi = (hi + Math.imul(ah6, bh8)) |
0;
30787 lo = (lo + Math.imul(al5, bl9)) |
0;
30788 mid = (mid + Math.imul(al5, bh9)) |
0;
30789 mid = (mid + Math.imul(ah5, bl9)) |
0;
30790 hi = (hi + Math.imul(ah5, bh9)) |
0;
30791 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30792 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30795 lo = Math.imul(al9, bl6);
30796 mid = Math.imul(al9, bh6);
30797 mid = (mid + Math.imul(ah9, bl6)) |
0;
30798 hi = Math.imul(ah9, bh6);
30799 lo = (lo + Math.imul(al8, bl7)) |
0;
30800 mid = (mid + Math.imul(al8, bh7)) |
0;
30801 mid = (mid + Math.imul(ah8, bl7)) |
0;
30802 hi = (hi + Math.imul(ah8, bh7)) |
0;
30803 lo = (lo + Math.imul(al7, bl8)) |
0;
30804 mid = (mid + Math.imul(al7, bh8)) |
0;
30805 mid = (mid + Math.imul(ah7, bl8)) |
0;
30806 hi = (hi + Math.imul(ah7, bh8)) |
0;
30807 lo = (lo + Math.imul(al6, bl9)) |
0;
30808 mid = (mid + Math.imul(al6, bh9)) |
0;
30809 mid = (mid + Math.imul(ah6, bl9)) |
0;
30810 hi = (hi + Math.imul(ah6, bh9)) |
0;
30811 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30812 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30815 lo = Math.imul(al9, bl7);
30816 mid = Math.imul(al9, bh7);
30817 mid = (mid + Math.imul(ah9, bl7)) |
0;
30818 hi = Math.imul(ah9, bh7);
30819 lo = (lo + Math.imul(al8, bl8)) |
0;
30820 mid = (mid + Math.imul(al8, bh8)) |
0;
30821 mid = (mid + Math.imul(ah8, bl8)) |
0;
30822 hi = (hi + Math.imul(ah8, bh8)) |
0;
30823 lo = (lo + Math.imul(al7, bl9)) |
0;
30824 mid = (mid + Math.imul(al7, bh9)) |
0;
30825 mid = (mid + Math.imul(ah7, bl9)) |
0;
30826 hi = (hi + Math.imul(ah7, bh9)) |
0;
30827 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30828 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30831 lo = Math.imul(al9, bl8);
30832 mid = Math.imul(al9, bh8);
30833 mid = (mid + Math.imul(ah9, bl8)) |
0;
30834 hi = Math.imul(ah9, bh8);
30835 lo = (lo + Math.imul(al8, bl9)) |
0;
30836 mid = (mid + Math.imul(al8, bh9)) |
0;
30837 mid = (mid + Math.imul(ah8, bl9)) |
0;
30838 hi = (hi + Math.imul(ah8, bh9)) |
0;
30839 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30840 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30843 lo = Math.imul(al9, bl9);
30844 mid = Math.imul(al9, bh9);
30845 mid = (mid + Math.imul(ah9, bl9)) |
0;
30846 hi = Math.imul(ah9, bh9);
30847 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30848 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30878 comb10MulTo = smallMulTo;
30881 function bigMulTo (self, num, out) {
30882 out.negative = num.negative ^ self.negative;
30883 out.length = self.length + num.length;
30887 for (var k =
0; k < out.length -
1; k++) {
30888 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30889 // note that ncarry could be
>=
0x3ffffff
30890 var ncarry = hncarry;
30892 var rword = carry &
0x3ffffff;
30893 var maxJ = Math.min(k, num.length -
1);
30894 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30896 var a = self.words[i] |
0;
30897 var b = num.words[j] |
0;
30900 var lo = r &
0x3ffffff;
30901 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30902 lo = (lo + rword) |
0;
30903 rword = lo &
0x3ffffff;
30904 ncarry = (ncarry + (lo
>>> 26)) |
0;
30906 hncarry += ncarry
>>> 26;
30907 ncarry &=
0x3ffffff;
30909 out.words[k] = rword;
30914 out.words[k] = carry;
30919 return out.strip();
30922 function jumboMulTo (self, num, out) {
30923 var fftm = new FFTM();
30924 return fftm.mulp(self, num, out);
30927 BN.prototype.mulTo = function mulTo (num, out) {
30929 var len = this.length + num.length;
30930 if (this.length ===
10 && num.length ===
10) {
30931 res = comb10MulTo(this, num, out);
30932 } else if (len <
63) {
30933 res = smallMulTo(this, num, out);
30934 } else if (len <
1024) {
30935 res = bigMulTo(this, num, out);
30937 res = jumboMulTo(this, num, out);
30943 // Cooley-Tukey algorithm for FFT
30944 // slightly revisited to rely on looping instead of recursion
30946 function FFTM (x, y) {
30951 FFTM.prototype.makeRBT = function makeRBT (N) {
30952 var t = new Array(N);
30953 var l = BN.prototype._countBits(N) -
1;
30954 for (var i =
0; i < N; i++) {
30955 t[i] = this.revBin(i, l, N);
30961 // Returns binary-reversed representation of `x`
30962 FFTM.prototype.revBin = function revBin (x, l, N) {
30963 if (x ===
0 || x === N -
1) return x;
30966 for (var i =
0; i < l; i++) {
30967 rb |= (x &
1) << (l - i -
1);
30974 // Performs "tweedling" phase, therefore 'emulating'
30975 // behaviour of the recursive algorithm
30976 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
30977 for (var i =
0; i < N; i++) {
30978 rtws[i] = rws[rbt[i]];
30979 itws[i] = iws[rbt[i]];
30983 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
30984 this.permute(rbt, rws, iws, rtws, itws, N);
30986 for (var s =
1; s < N; s <<=
1) {
30989 var rtwdf = Math.cos(
2 * Math.PI / l);
30990 var itwdf = Math.sin(
2 * Math.PI / l);
30992 for (var p =
0; p < N; p += l) {
30993 var rtwdf_ = rtwdf;
30994 var itwdf_ = itwdf;
30996 for (var j =
0; j < s; j++) {
30997 var re = rtws[p + j];
30998 var ie = itws[p + j];
31000 var ro = rtws[p + j + s];
31001 var io = itws[p + j + s];
31003 var rx = rtwdf_ * ro - itwdf_ * io;
31005 io = rtwdf_ * io + itwdf_ * ro;
31008 rtws[p + j] = re + ro;
31009 itws[p + j] = ie + io;
31011 rtws[p + j + s] = re - ro;
31012 itws[p + j + s] = ie - io;
31014 /* jshint maxdepth : false */
31016 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31018 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31026 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31027 var N = Math.max(m, n) |
1;
31030 for (N = N /
2 |
0; N; N = N
>>> 1) {
31034 return
1 << i +
1 + odd;
31037 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31038 if (N <=
1) return;
31040 for (var i =
0; i < N /
2; i++) {
31043 rws[i] = rws[N - i -
1];
31044 rws[N - i -
1] = t;
31048 iws[i] = -iws[N - i -
1];
31049 iws[N - i -
1] = -t;
31053 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31055 for (var i =
0; i < N /
2; i++) {
31056 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31057 Math.round(ws[
2 * i] / N) +
31060 ws[i] = w &
0x3ffffff;
31062 if (w <
0x4000000) {
31065 carry = w /
0x4000000 |
0;
31072 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31074 for (var i =
0; i < len; i++) {
31075 carry = carry + (ws[i] |
0);
31077 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31078 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31082 for (i =
2 * len; i < N; ++i) {
31086 assert(carry ===
0);
31087 assert((carry & ~
0x1fff) ===
0);
31090 FFTM.prototype.stub = function stub (N) {
31091 var ph = new Array(N);
31092 for (var i =
0; i < N; i++) {
31099 FFTM.prototype.mulp = function mulp (x, y, out) {
31100 var N =
2 * this.guessLen13b(x.length, y.length);
31102 var rbt = this.makeRBT(N);
31104 var _ = this.stub(N);
31106 var rws = new Array(N);
31107 var rwst = new Array(N);
31108 var iwst = new Array(N);
31110 var nrws = new Array(N);
31111 var nrwst = new Array(N);
31112 var niwst = new Array(N);
31114 var rmws = out.words;
31117 this.convert13b(x.words, x.length, rws, N);
31118 this.convert13b(y.words, y.length, nrws, N);
31120 this.transform(rws, _, rwst, iwst, N, rbt);
31121 this.transform(nrws, _, nrwst, niwst, N, rbt);
31123 for (var i =
0; i < N; i++) {
31124 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31125 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31129 this.conjugate(rwst, iwst, N);
31130 this.transform(rwst, iwst, rmws, _, N, rbt);
31131 this.conjugate(rmws, _, N);
31132 this.normalize13b(rmws, N);
31134 out.negative = x.negative ^ y.negative;
31135 out.length = x.length + y.length;
31136 return out.strip();
31139 // Multiply `this` by `num`
31140 BN.prototype.mul = function mul (num) {
31141 var out = new BN(null);
31142 out.words = new Array(this.length + num.length);
31143 return this.mulTo(num, out);
31146 // Multiply employing FFT
31147 BN.prototype.mulf = function mulf (num) {
31148 var out = new BN(null);
31149 out.words = new Array(this.length + num.length);
31150 return jumboMulTo(this, num, out);
31153 // In-place Multiplication
31154 BN.prototype.imul = function imul (num) {
31155 return this.clone().mulTo(num, this);
31158 BN.prototype.imuln = function imuln (num) {
31159 assert(typeof num === 'number');
31160 assert(num <
0x4000000);
31164 for (var i =
0; i < this.length; i++) {
31165 var w = (this.words[i] |
0) * num;
31166 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31168 carry += (w /
0x4000000) |
0;
31169 // NOTE: lo is
27bit maximum
31170 carry += lo
>>> 26;
31171 this.words[i] = lo &
0x3ffffff;
31175 this.words[i] = carry;
31182 BN.prototype.muln = function muln (num) {
31183 return this.clone().imuln(num);
31187 BN.prototype.sqr = function sqr () {
31188 return this.mul(this);
31191 // `this` * `this` in-place
31192 BN.prototype.isqr = function isqr () {
31193 return this.imul(this.clone());
31196 // Math.pow(`this`, `num`)
31197 BN.prototype.pow = function pow (num) {
31198 var w = toBitArray(num);
31199 if (w.length ===
0) return new BN(
1);
31201 // Skip leading zeroes
31203 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31204 if (w[i] !==
0) break;
31207 if (++i < w.length) {
31208 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31209 if (w[i] ===
0) continue;
31218 // Shift-left in-place
31219 BN.prototype.iushln = function iushln (bits) {
31220 assert(typeof bits === 'number' && bits
>=
0);
31222 var s = (bits - r) /
26;
31223 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31229 for (i =
0; i < this.length; i++) {
31230 var newCarry = this.words[i] & carryMask;
31231 var c = ((this.words[i] |
0) - newCarry) << r;
31232 this.words[i] = c | carry;
31233 carry = newCarry
>>> (
26 - r);
31237 this.words[i] = carry;
31243 for (i = this.length -
1; i
>=
0; i--) {
31244 this.words[i + s] = this.words[i];
31247 for (i =
0; i < s; i++) {
31254 return this.strip();
31257 BN.prototype.ishln = function ishln (bits) {
31258 // TODO(indutny): implement me
31259 assert(this.negative ===
0);
31260 return this.iushln(bits);
31263 // Shift-right in-place
31264 // NOTE: `hint` is a lowest bit before trailing zeroes
31265 // NOTE: if `extended` is present - it will be filled with destroyed bits
31266 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31267 assert(typeof bits === 'number' && bits
>=
0);
31270 h = (hint - (hint %
26)) /
26;
31276 var s = Math.min((bits - r) /
26, this.length);
31277 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31278 var maskedWords = extended;
31281 h = Math.max(
0, h);
31283 // Extended mode, copy masked part
31285 for (var i =
0; i < s; i++) {
31286 maskedWords.words[i] = this.words[i];
31288 maskedWords.length = s;
31292 // No-op, we should not move anything at all
31293 } else if (this.length
> s) {
31295 for (i =
0; i < this.length; i++) {
31296 this.words[i] = this.words[i + s];
31304 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31305 var word = this.words[i] |
0;
31306 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31307 carry = word & mask;
31310 // Push carried bits as a mask
31311 if (maskedWords && carry !==
0) {
31312 maskedWords.words[maskedWords.length++] = carry;
31315 if (this.length ===
0) {
31320 return this.strip();
31323 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31324 // TODO(indutny): implement me
31325 assert(this.negative ===
0);
31326 return this.iushrn(bits, hint, extended);
31330 BN.prototype.shln = function shln (bits) {
31331 return this.clone().ishln(bits);
31334 BN.prototype.ushln = function ushln (bits) {
31335 return this.clone().iushln(bits);
31339 BN.prototype.shrn = function shrn (bits) {
31340 return this.clone().ishrn(bits);
31343 BN.prototype.ushrn = function ushrn (bits) {
31344 return this.clone().iushrn(bits);
31347 // Test if n bit is set
31348 BN.prototype.testn = function testn (bit) {
31349 assert(typeof bit === 'number' && bit
>=
0);
31351 var s = (bit - r) /
26;
31354 // Fast case: bit is much higher than all existing words
31355 if (this.length <= s) return false;
31357 // Check bit and return
31358 var w = this.words[s];
31363 // Return only lowers bits of number (in-place)
31364 BN.prototype.imaskn = function imaskn (bits) {
31365 assert(typeof bits === 'number' && bits
>=
0);
31367 var s = (bits - r) /
26;
31369 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31371 if (this.length <= s) {
31378 this.length = Math.min(s, this.length);
31381 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31382 this.words[this.length -
1] &= mask;
31385 return this.strip();
31388 // Return only lowers bits of number
31389 BN.prototype.maskn = function maskn (bits) {
31390 return this.clone().imaskn(bits);
31393 // Add plain number `num` to `this`
31394 BN.prototype.iaddn = function iaddn (num) {
31395 assert(typeof num === 'number');
31396 assert(num <
0x4000000);
31397 if (num <
0) return this.isubn(-num);
31399 // Possible sign change
31400 if (this.negative !==
0) {
31401 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31402 this.words[
0] = num - (this.words[
0] |
0);
31413 // Add without checks
31414 return this._iaddn(num);
31417 BN.prototype._iaddn = function _iaddn (num) {
31418 this.words[
0] += num;
31421 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31422 this.words[i] -=
0x4000000;
31423 if (i === this.length -
1) {
31424 this.words[i +
1] =
1;
31426 this.words[i +
1]++;
31429 this.length = Math.max(this.length, i +
1);
31434 // Subtract plain number `num` from `this`
31435 BN.prototype.isubn = function isubn (num) {
31436 assert(typeof num === 'number');
31437 assert(num <
0x4000000);
31438 if (num <
0) return this.iaddn(-num);
31440 if (this.negative !==
0) {
31447 this.words[
0] -= num;
31449 if (this.length ===
1 && this.words[
0] <
0) {
31450 this.words[
0] = -this.words[
0];
31454 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31455 this.words[i] +=
0x4000000;
31456 this.words[i +
1] -=
1;
31460 return this.strip();
31463 BN.prototype.addn = function addn (num) {
31464 return this.clone().iaddn(num);
31467 BN.prototype.subn = function subn (num) {
31468 return this.clone().isubn(num);
31471 BN.prototype.iabs = function iabs () {
31477 BN.prototype.abs = function abs () {
31478 return this.clone().iabs();
31481 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31482 var len = num.length + shift;
31489 for (i =
0; i < num.length; i++) {
31490 w = (this.words[i + shift] |
0) + carry;
31491 var right = (num.words[i] |
0) * mul;
31492 w -= right &
0x3ffffff;
31493 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31494 this.words[i + shift] = w &
0x3ffffff;
31496 for (; i < this.length - shift; i++) {
31497 w = (this.words[i + shift] |
0) + carry;
31499 this.words[i + shift] = w &
0x3ffffff;
31502 if (carry ===
0) return this.strip();
31504 // Subtraction overflow
31505 assert(carry === -
1);
31507 for (i =
0; i < this.length; i++) {
31508 w = -(this.words[i] |
0) + carry;
31510 this.words[i] = w &
0x3ffffff;
31514 return this.strip();
31517 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31518 var shift = this.length - num.length;
31520 var a = this.clone();
31524 var bhi = b.words[b.length -
1] |
0;
31525 var bhiBits = this._countBits(bhi);
31526 shift =
26 - bhiBits;
31528 b = b.ushln(shift);
31530 bhi = b.words[b.length -
1] |
0;
31533 // Initialize quotient
31534 var m = a.length - b.length;
31537 if (mode !== 'mod') {
31540 q.words = new Array(q.length);
31541 for (var i =
0; i < q.length; i++) {
31546 var diff = a.clone()._ishlnsubmul(b,
1, m);
31547 if (diff.negative ===
0) {
31554 for (var j = m -
1; j
>=
0; j--) {
31555 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31556 (a.words[b.length + j -
1] |
0);
31558 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31560 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31562 a._ishlnsubmul(b, qj, j);
31563 while (a.negative !==
0) {
31566 a._ishlnsubmul(b,
1, j);
31581 if (mode !== 'div' && shift !==
0) {
31591 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31592 // to `div` to request div only, or be absent to
31593 // request both div & mod
31594 //
2) `positive` is true if unsigned mod is requested
31595 BN.prototype.divmod = function divmod (num, mode, positive) {
31596 assert(!num.isZero());
31598 if (this.isZero()) {
31606 if (this.negative !==
0 && num.negative ===
0) {
31607 res = this.neg().divmod(num, mode);
31609 if (mode !== 'mod') {
31610 div = res.div.neg();
31613 if (mode !== 'div') {
31614 mod = res.mod.neg();
31615 if (positive && mod.negative !==
0) {
31626 if (this.negative ===
0 && num.negative !==
0) {
31627 res = this.divmod(num.neg(), mode);
31629 if (mode !== 'mod') {
31630 div = res.div.neg();
31639 if ((this.negative & num.negative) !==
0) {
31640 res = this.neg().divmod(num.neg(), mode);
31642 if (mode !== 'div') {
31643 mod = res.mod.neg();
31644 if (positive && mod.negative !==
0) {
31655 // Both numbers are positive at this point
31657 // Strip both numbers to approximate shift value
31658 if (num.length
> this.length || this.cmp(num) <
0) {
31665 // Very short reduction
31666 if (num.length ===
1) {
31667 if (mode === 'div') {
31669 div: this.divn(num.words[
0]),
31674 if (mode === 'mod') {
31677 mod: new BN(this.modn(num.words[
0]))
31682 div: this.divn(num.words[
0]),
31683 mod: new BN(this.modn(num.words[
0]))
31687 return this._wordDiv(num, mode);
31690 // Find `this` / `num`
31691 BN.prototype.div = function div (num) {
31692 return this.divmod(num, 'div', false).div;
31695 // Find `this` % `num`
31696 BN.prototype.mod = function mod (num) {
31697 return this.divmod(num, 'mod', false).mod;
31700 BN.prototype.umod = function umod (num) {
31701 return this.divmod(num, 'mod', true).mod;
31704 // Find Round(`this` / `num`)
31705 BN.prototype.divRound = function divRound (num) {
31706 var dm = this.divmod(num);
31708 // Fast case - exact division
31709 if (dm.mod.isZero()) return dm.div;
31711 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31713 var half = num.ushrn(
1);
31714 var r2 = num.andln(
1);
31715 var cmp = mod.cmp(half);
31718 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31721 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31724 BN.prototype.modn = function modn (num) {
31725 assert(num <=
0x3ffffff);
31726 var p = (
1 <<
26) % num;
31729 for (var i = this.length -
1; i
>=
0; i--) {
31730 acc = (p * acc + (this.words[i] |
0)) % num;
31736 // In-place division by number
31737 BN.prototype.idivn = function idivn (num) {
31738 assert(num <=
0x3ffffff);
31741 for (var i = this.length -
1; i
>=
0; i--) {
31742 var w = (this.words[i] |
0) + carry *
0x4000000;
31743 this.words[i] = (w / num) |
0;
31747 return this.strip();
31750 BN.prototype.divn = function divn (num) {
31751 return this.clone().idivn(num);
31754 BN.prototype.egcd = function egcd (p) {
31755 assert(p.negative ===
0);
31756 assert(!p.isZero());
31761 if (x.negative !==
0) {
31767 // A * x + B * y = x
31771 // C * x + D * y = y
31777 while (x.isEven() && y.isEven()) {
31783 var yp = y.clone();
31784 var xp = x.clone();
31786 while (!x.isZero()) {
31787 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31791 if (A.isOdd() || B.isOdd()) {
31801 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31805 if (C.isOdd() || D.isOdd()) {
31815 if (x.cmp(y)
>=
0) {
31833 // This is reduced incarnation of the binary EEA
31834 // above, designated to invert members of the
31835 // _prime_ fields F(p) at a maximal speed
31836 BN.prototype._invmp = function _invmp (p) {
31837 assert(p.negative ===
0);
31838 assert(!p.isZero());
31843 if (a.negative !==
0) {
31849 var x1 = new BN(
1);
31850 var x2 = new BN(
0);
31852 var delta = b.clone();
31854 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31855 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31867 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31879 if (a.cmp(b)
>=
0) {
31889 if (a.cmpn(
1) ===
0) {
31895 if (res.cmpn(
0) <
0) {
31902 BN.prototype.gcd = function gcd (num) {
31903 if (this.isZero()) return num.abs();
31904 if (num.isZero()) return this.abs();
31906 var a = this.clone();
31907 var b = num.clone();
31911 // Remove common factor of two
31912 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31918 while (a.isEven()) {
31921 while (b.isEven()) {
31927 // Swap `a` and `b` to make `a` always bigger than `b`
31931 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31938 return b.iushln(shift);
31941 // Invert number in the field F(num)
31942 BN.prototype.invm = function invm (num) {
31943 return this.egcd(num).a.umod(num);
31946 BN.prototype.isEven = function isEven () {
31947 return (this.words[
0] &
1) ===
0;
31950 BN.prototype.isOdd = function isOdd () {
31951 return (this.words[
0] &
1) ===
1;
31954 // And first word and num
31955 BN.prototype.andln = function andln (num) {
31956 return this.words[
0] & num;
31959 // Increment at the bit position in-line
31960 BN.prototype.bincn = function bincn (bit) {
31961 assert(typeof bit === 'number');
31963 var s = (bit - r) /
26;
31966 // Fast case: bit is much higher than all existing words
31967 if (this.length <= s) {
31968 this._expand(s +
1);
31969 this.words[s] |= q;
31973 // Add bit and propagate, if needed
31975 for (var i = s; carry !==
0 && i < this.length; i++) {
31976 var w = this.words[i] |
0;
31983 this.words[i] = carry;
31989 BN.prototype.isZero = function isZero () {
31990 return this.length ===
1 && this.words[
0] ===
0;
31993 BN.prototype.cmpn = function cmpn (num) {
31994 var negative = num <
0;
31996 if (this.negative !==
0 && !negative) return -
1;
31997 if (this.negative ===
0 && negative) return
1;
32002 if (this.length
> 1) {
32009 assert(num <=
0x3ffffff, 'Number is too big');
32011 var w = this.words[
0] |
0;
32012 res = w === num ?
0 : w < num ? -
1 :
1;
32014 if (this.negative !==
0) return -res |
0;
32018 // Compare two numbers and return:
32019 //
1 - if `this`
> `num`
32020 //
0 - if `this` == `num`
32021 // -
1 - if `this` < `num`
32022 BN.prototype.cmp = function cmp (num) {
32023 if (this.negative !==
0 && num.negative ===
0) return -
1;
32024 if (this.negative ===
0 && num.negative !==
0) return
1;
32026 var res = this.ucmp(num);
32027 if (this.negative !==
0) return -res |
0;
32031 // Unsigned comparison
32032 BN.prototype.ucmp = function ucmp (num) {
32033 // At this point both numbers have the same sign
32034 if (this.length
> num.length) return
1;
32035 if (this.length < num.length) return -
1;
32038 for (var i = this.length -
1; i
>=
0; i--) {
32039 var a = this.words[i] |
0;
32040 var b = num.words[i] |
0;
32042 if (a === b) continue;
32045 } else if (a
> b) {
32053 BN.prototype.gtn = function gtn (num) {
32054 return this.cmpn(num) ===
1;
32057 BN.prototype.gt = function gt (num) {
32058 return this.cmp(num) ===
1;
32061 BN.prototype.gten = function gten (num) {
32062 return this.cmpn(num)
>=
0;
32065 BN.prototype.gte = function gte (num) {
32066 return this.cmp(num)
>=
0;
32069 BN.prototype.ltn = function ltn (num) {
32070 return this.cmpn(num) === -
1;
32073 BN.prototype.lt = function lt (num) {
32074 return this.cmp(num) === -
1;
32077 BN.prototype.lten = function lten (num) {
32078 return this.cmpn(num) <=
0;
32081 BN.prototype.lte = function lte (num) {
32082 return this.cmp(num) <=
0;
32085 BN.prototype.eqn = function eqn (num) {
32086 return this.cmpn(num) ===
0;
32089 BN.prototype.eq = function eq (num) {
32090 return this.cmp(num) ===
0;
32094 // A reduce context, could be using montgomery or something better, depending
32095 // on the `m` itself.
32097 BN.red = function red (num) {
32098 return new Red(num);
32101 BN.prototype.toRed = function toRed (ctx) {
32102 assert(!this.red, 'Already a number in reduction context');
32103 assert(this.negative ===
0, 'red works only with positives');
32104 return ctx.convertTo(this)._forceRed(ctx);
32107 BN.prototype.fromRed = function fromRed () {
32108 assert(this.red, 'fromRed works only with numbers in reduction context');
32109 return this.red.convertFrom(this);
32112 BN.prototype._forceRed = function _forceRed (ctx) {
32117 BN.prototype.forceRed = function forceRed (ctx) {
32118 assert(!this.red, 'Already a number in reduction context');
32119 return this._forceRed(ctx);
32122 BN.prototype.redAdd = function redAdd (num) {
32123 assert(this.red, 'redAdd works only with red numbers');
32124 return this.red.add(this, num);
32127 BN.prototype.redIAdd = function redIAdd (num) {
32128 assert(this.red, 'redIAdd works only with red numbers');
32129 return this.red.iadd(this, num);
32132 BN.prototype.redSub = function redSub (num) {
32133 assert(this.red, 'redSub works only with red numbers');
32134 return this.red.sub(this, num);
32137 BN.prototype.redISub = function redISub (num) {
32138 assert(this.red, 'redISub works only with red numbers');
32139 return this.red.isub(this, num);
32142 BN.prototype.redShl = function redShl (num) {
32143 assert(this.red, 'redShl works only with red numbers');
32144 return this.red.shl(this, num);
32147 BN.prototype.redMul = function redMul (num) {
32148 assert(this.red, 'redMul works only with red numbers');
32149 this.red._verify2(this, num);
32150 return this.red.mul(this, num);
32153 BN.prototype.redIMul = function redIMul (num) {
32154 assert(this.red, 'redMul works only with red numbers');
32155 this.red._verify2(this, num);
32156 return this.red.imul(this, num);
32159 BN.prototype.redSqr = function redSqr () {
32160 assert(this.red, 'redSqr works only with red numbers');
32161 this.red._verify1(this);
32162 return this.red.sqr(this);
32165 BN.prototype.redISqr = function redISqr () {
32166 assert(this.red, 'redISqr works only with red numbers');
32167 this.red._verify1(this);
32168 return this.red.isqr(this);
32171 // Square root over p
32172 BN.prototype.redSqrt = function redSqrt () {
32173 assert(this.red, 'redSqrt works only with red numbers');
32174 this.red._verify1(this);
32175 return this.red.sqrt(this);
32178 BN.prototype.redInvm = function redInvm () {
32179 assert(this.red, 'redInvm works only with red numbers');
32180 this.red._verify1(this);
32181 return this.red.invm(this);
32184 // Return negative clone of `this` % `red modulo`
32185 BN.prototype.redNeg = function redNeg () {
32186 assert(this.red, 'redNeg works only with red numbers');
32187 this.red._verify1(this);
32188 return this.red.neg(this);
32191 BN.prototype.redPow = function redPow (num) {
32192 assert(this.red && !num.red, 'redPow(normalNum)');
32193 this.red._verify1(this);
32194 return this.red.pow(this, num);
32197 // Prime numbers with efficient reduction
32205 // Pseudo-Mersenne prime
32206 function MPrime (name, p) {
32209 this.p = new BN(p,
16);
32210 this.n = this.p.bitLength();
32211 this.k = new BN(
1).iushln(this.n).isub(this.p);
32213 this.tmp = this._tmp();
32216 MPrime.prototype._tmp = function _tmp () {
32217 var tmp = new BN(null);
32218 tmp.words = new Array(Math.ceil(this.n /
13));
32222 MPrime.prototype.ireduce = function ireduce (num) {
32223 // Assumes that `num` is less than `P^
2`
32224 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32229 this.split(r, this.tmp);
32231 r = r.iadd(this.tmp);
32232 rlen = r.bitLength();
32233 } while (rlen
> this.n);
32235 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32239 } else if (cmp
> 0) {
32248 MPrime.prototype.split = function split (input, out) {
32249 input.iushrn(this.n,
0, out);
32252 MPrime.prototype.imulK = function imulK (num) {
32253 return num.imul(this.k);
32260 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32262 inherits(K256, MPrime);
32264 K256.prototype.split = function split (input, output) {
32265 //
256 =
9 *
26 +
22
32266 var mask =
0x3fffff;
32268 var outLen = Math.min(input.length,
9);
32269 for (var i =
0; i < outLen; i++) {
32270 output.words[i] = input.words[i];
32272 output.length = outLen;
32274 if (input.length <=
9) {
32275 input.words[
0] =
0;
32280 // Shift by
9 limbs
32281 var prev = input.words[
9];
32282 output.words[output.length++] = prev & mask;
32284 for (i =
10; i < input.length; i++) {
32285 var next = input.words[i] |
0;
32286 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32290 input.words[i -
10] = prev;
32291 if (prev ===
0 && input.length
> 10) {
32292 input.length -=
10;
32298 K256.prototype.imulK = function imulK (num) {
32299 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32300 num.words[num.length] =
0;
32301 num.words[num.length +
1] =
0;
32304 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32306 for (var i =
0; i < num.length; i++) {
32307 var w = num.words[i] |
0;
32309 num.words[i] = lo &
0x3ffffff;
32310 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32313 // Fast length reduction
32314 if (num.words[num.length -
1] ===
0) {
32316 if (num.words[num.length -
1] ===
0) {
32327 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32329 inherits(P224, MPrime);
32335 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32337 inherits(P192, MPrime);
32339 function P25519 () {
32344 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32346 inherits(P25519, MPrime);
32348 P25519.prototype.imulK = function imulK (num) {
32351 for (var i =
0; i < num.length; i++) {
32352 var hi = (num.words[i] |
0) *
0x13 + carry;
32353 var lo = hi &
0x3ffffff;
32360 num.words[num.length++] = carry;
32365 // Exported mostly for testing purposes, use plain name instead
32366 BN._prime = function prime (name) {
32367 // Cached version of prime
32368 if (primes[name]) return primes[name];
32371 if (name === 'k256') {
32372 prime = new K256();
32373 } else if (name === 'p224') {
32374 prime = new P224();
32375 } else if (name === 'p192') {
32376 prime = new P192();
32377 } else if (name === 'p25519') {
32378 prime = new P25519();
32380 throw new Error('Unknown prime ' + name);
32382 primes[name] = prime;
32388 // Base reduction engine
32391 if (typeof m === 'string') {
32392 var prime = BN._prime(m);
32394 this.prime = prime;
32396 assert(m.gtn(
1), 'modulus must be greater than
1');
32402 Red.prototype._verify1 = function _verify1 (a) {
32403 assert(a.negative ===
0, 'red works only with positives');
32404 assert(a.red, 'red works only with red numbers');
32407 Red.prototype._verify2 = function _verify2 (a, b) {
32408 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32409 assert(a.red && a.red === b.red,
32410 'red works only with red numbers');
32413 Red.prototype.imod = function imod (a) {
32414 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32415 return a.umod(this.m)._forceRed(this);
32418 Red.prototype.neg = function neg (a) {
32423 return this.m.sub(a)._forceRed(this);
32426 Red.prototype.add = function add (a, b) {
32427 this._verify2(a, b);
32429 var res = a.add(b);
32430 if (res.cmp(this.m)
>=
0) {
32433 return res._forceRed(this);
32436 Red.prototype.iadd = function iadd (a, b) {
32437 this._verify2(a, b);
32439 var res = a.iadd(b);
32440 if (res.cmp(this.m)
>=
0) {
32446 Red.prototype.sub = function sub (a, b) {
32447 this._verify2(a, b);
32449 var res = a.sub(b);
32450 if (res.cmpn(
0) <
0) {
32453 return res._forceRed(this);
32456 Red.prototype.isub = function isub (a, b) {
32457 this._verify2(a, b);
32459 var res = a.isub(b);
32460 if (res.cmpn(
0) <
0) {
32466 Red.prototype.shl = function shl (a, num) {
32468 return this.imod(a.ushln(num));
32471 Red.prototype.imul = function imul (a, b) {
32472 this._verify2(a, b);
32473 return this.imod(a.imul(b));
32476 Red.prototype.mul = function mul (a, b) {
32477 this._verify2(a, b);
32478 return this.imod(a.mul(b));
32481 Red.prototype.isqr = function isqr (a) {
32482 return this.imul(a, a.clone());
32485 Red.prototype.sqr = function sqr (a) {
32486 return this.mul(a, a);
32489 Red.prototype.sqrt = function sqrt (a) {
32490 if (a.isZero()) return a.clone();
32492 var mod3 = this.m.andln(
3);
32493 assert(mod3 %
2 ===
1);
32497 var pow = this.m.add(new BN(
1)).iushrn(
2);
32498 return this.pow(a, pow);
32501 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32503 // Find Q and S, that Q *
2 ^ S = (P -
1)
32504 var q = this.m.subn(
1);
32506 while (!q.isZero() && q.andln(
1) ===
0) {
32510 assert(!q.isZero());
32512 var one = new BN(
1).toRed(this);
32513 var nOne = one.redNeg();
32515 // Find quadratic non-residue
32516 // NOTE: Max is such because of generalized Riemann hypothesis.
32517 var lpow = this.m.subn(
1).iushrn(
1);
32518 var z = this.m.bitLength();
32519 z = new BN(
2 * z * z).toRed(this);
32521 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32525 var c = this.pow(z, q);
32526 var r = this.pow(a, q.addn(
1).iushrn(
1));
32527 var t = this.pow(a, q);
32529 while (t.cmp(one) !==
0) {
32531 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32532 tmp = tmp.redSqr();
32535 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32546 Red.prototype.invm = function invm (a) {
32547 var inv = a._invmp(this.m);
32548 if (inv.negative !==
0) {
32550 return this.imod(inv).redNeg();
32552 return this.imod(inv);
32556 Red.prototype.pow = function pow (a, num) {
32557 if (num.isZero()) return new BN(
1);
32558 if (num.cmpn(
1) ===
0) return a.clone();
32560 var windowSize =
4;
32561 var wnd = new Array(
1 << windowSize);
32562 wnd[
0] = new BN(
1).toRed(this);
32564 for (var i =
2; i < wnd.length; i++) {
32565 wnd[i] = this.mul(wnd[i -
1], a);
32570 var currentLen =
0;
32571 var start = num.bitLength() %
26;
32576 for (i = num.length -
1; i
>=
0; i--) {
32577 var word = num.words[i];
32578 for (var j = start -
1; j
>=
0; j--) {
32579 var bit = (word
>> j) &
1;
32580 if (res !== wnd[
0]) {
32581 res = this.sqr(res);
32584 if (bit ===
0 && current ===
0) {
32592 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32594 res = this.mul(res, wnd[current]);
32604 Red.prototype.convertTo = function convertTo (num) {
32605 var r = num.umod(this.m);
32607 return r === num ? r.clone() : r;
32610 Red.prototype.convertFrom = function convertFrom (num) {
32611 var res = num.clone();
32617 // Montgomery method engine
32620 BN.mont = function mont (num) {
32621 return new Mont(num);
32624 function Mont (m) {
32627 this.shift = this.m.bitLength();
32628 if (this.shift %
26 !==
0) {
32629 this.shift +=
26 - (this.shift %
26);
32632 this.r = new BN(
1).iushln(this.shift);
32633 this.r2 = this.imod(this.r.sqr());
32634 this.rinv = this.r._invmp(this.m);
32636 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32637 this.minv = this.minv.umod(this.r);
32638 this.minv = this.r.sub(this.minv);
32640 inherits(Mont, Red);
32642 Mont.prototype.convertTo = function convertTo (num) {
32643 return this.imod(num.ushln(this.shift));
32646 Mont.prototype.convertFrom = function convertFrom (num) {
32647 var r = this.imod(num.mul(this.rinv));
32652 Mont.prototype.imul = function imul (a, b) {
32653 if (a.isZero() || b.isZero()) {
32660 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32661 var u = t.isub(c).iushrn(this.shift);
32664 if (u.cmp(this.m)
>=
0) {
32665 res = u.isub(this.m);
32666 } else if (u.cmpn(
0) <
0) {
32667 res = u.iadd(this.m);
32670 return res._forceRed(this);
32673 Mont.prototype.mul = function mul (a, b) {
32674 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32677 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32678 var u = t.isub(c).iushrn(this.shift);
32680 if (u.cmp(this.m)
>=
0) {
32681 res = u.isub(this.m);
32682 } else if (u.cmpn(
0) <
0) {
32683 res = u.iadd(this.m);
32686 return res._forceRed(this);
32689 Mont.prototype.invm = function invm (a) {
32690 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32691 var res = this.imod(a._invmp(this.m).mul(this.r2));
32692 return res._forceRed(this);
32694 })(typeof module === 'undefined' || module, this);
32696 },{}],
34:[function(require,module,exports){
32699 module.exports = function rand(len) {
32701 r = new Rand(null);
32703 return r.generate(len);
32706 function Rand(rand) {
32709 module.exports.Rand = Rand;
32711 Rand.prototype.generate = function generate(len) {
32712 return this._rand(len);
32715 if (typeof self === 'object') {
32716 if (self.crypto && self.crypto.getRandomValues) {
32718 Rand.prototype._rand = function _rand(n) {
32719 var arr = new Uint8Array(n);
32720 self.crypto.getRandomValues(arr);
32723 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32725 Rand.prototype._rand = function _rand(n) {
32726 var arr = new Uint8Array(n);
32727 self.msCrypto.getRandomValues(arr);
32732 Rand.prototype._rand = function() {
32733 throw new Error('Not implemented yet');
32737 // Node.js or Web worker with no crypto support
32739 var crypto = require('crypto');
32741 Rand.prototype._rand = function _rand(n) {
32742 return crypto.randomBytes(n);
32745 // Emulate crypto API using randy
32746 Rand.prototype._rand = function _rand(n) {
32747 var res = new Uint8Array(n);
32748 for (var i =
0; i < res.length; i++)
32749 res[i] = this.rand.getByte();
32755 },{"crypto":
3}],
35:[function(require,module,exports){
32756 (function (Buffer){
32757 var Transform = require('stream').Transform
32758 var inherits = require('inherits')
32759 var StringDecoder = require('string_decoder').StringDecoder
32760 module.exports = CipherBase
32761 inherits(CipherBase, Transform)
32762 function CipherBase (hashMode) {
32763 Transform.call(this)
32764 this.hashMode = typeof hashMode === 'string'
32765 if (this.hashMode) {
32766 this[hashMode] = this._finalOrDigest
32768 this.final = this._finalOrDigest
32770 this._decoder = null
32771 this._encoding = null
32773 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32774 if (typeof data === 'string') {
32775 data = new Buffer(data, inputEnc)
32777 var outData = this._update(data)
32778 if (this.hashMode) {
32782 outData = this._toString(outData, outputEnc)
32787 CipherBase.prototype.setAutoPadding = function () {}
32789 CipherBase.prototype.getAuthTag = function () {
32790 throw new Error('trying to get auth tag in unsupported state')
32793 CipherBase.prototype.setAuthTag = function () {
32794 throw new Error('trying to set auth tag in unsupported state')
32797 CipherBase.prototype.setAAD = function () {
32798 throw new Error('trying to set aad in unsupported state')
32801 CipherBase.prototype._transform = function (data, _, next) {
32804 if (this.hashMode) {
32807 this.push(this._update(data))
32815 CipherBase.prototype._flush = function (done) {
32818 this.push(this._final())
32825 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32826 var outData = this._final() || new Buffer('')
32828 outData = this._toString(outData, outputEnc, true)
32833 CipherBase.prototype._toString = function (value, enc, fin) {
32834 if (!this._decoder) {
32835 this._decoder = new StringDecoder(enc)
32836 this._encoding = enc
32838 if (this._encoding !== enc) {
32839 throw new Error('can\'t switch encodings')
32841 var out = this._decoder.write(value)
32843 out += this._decoder.end()
32848 }).call(this,require("buffer").Buffer)
32849 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32850 (function (Buffer){
32852 var inherits = require('inherits')
32853 var md5 = require('./md5')
32854 var rmd160 = require('ripemd160')
32855 var sha = require('sha.js')
32857 var Base = require('cipher-base')
32859 function HashNoConstructor(hash) {
32860 Base.call(this, 'digest')
32866 inherits(HashNoConstructor, Base)
32868 HashNoConstructor.prototype._update = function (data) {
32869 this.buffers.push(data)
32872 HashNoConstructor.prototype._final = function () {
32873 var buf = Buffer.concat(this.buffers)
32874 var r = this._hash(buf)
32875 this.buffers = null
32880 function Hash(hash) {
32881 Base.call(this, 'digest')
32886 inherits(Hash, Base)
32888 Hash.prototype._update = function (data) {
32889 this._hash.update(data)
32892 Hash.prototype._final = function () {
32893 return this._hash.digest()
32896 module.exports = function createHash (alg) {
32897 alg = alg.toLowerCase()
32898 if ('md5' === alg) return new HashNoConstructor(md5)
32899 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32901 return new Hash(sha(alg))
32904 }).call(this,require("buffer").Buffer)
32905 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32906 (function (Buffer){
32909 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32912 function toArray(buf, bigEndian) {
32913 if ((buf.length % intSize) !==
0) {
32914 var len = buf.length + (intSize - (buf.length % intSize));
32915 buf = Buffer.concat([buf, zeroBuffer], len);
32919 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32920 for (var i =
0; i < buf.length; i += intSize) {
32921 arr.push(fn.call(buf, i));
32926 function toBuffer(arr, size, bigEndian) {
32927 var buf = new Buffer(size);
32928 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32929 for (var i =
0; i < arr.length; i++) {
32930 fn.call(buf, arr[i], i *
4, true);
32935 function hash(buf, fn, hashSize, bigEndian) {
32936 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32937 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32938 return toBuffer(arr, hashSize, bigEndian);
32940 exports.hash = hash;
32941 }).call(this,require("buffer").Buffer)
32942 },{"buffer":
5}],
38:[function(require,module,exports){
32945 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32946 * Digest Algorithm, as defined in RFC
1321.
32947 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32948 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32949 * Distributed under the BSD License
32950 * See http://pajhome.org.uk/crypt/md5 for more info.
32953 var helpers = require('./helpers');
32956 * Calculate the MD5 of an array of little-endian words, and a bit length
32958 function core_md5(x, len)
32960 /* append padding */
32961 x[len
>> 5] |=
0x80 << ((len) %
32);
32962 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
32964 var a =
1732584193;
32965 var b = -
271733879;
32966 var c = -
1732584194;
32969 for(var i =
0; i < x.length; i +=
16)
32976 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
32977 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
32978 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
32979 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
32980 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
32981 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
32982 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
32983 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
32984 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
32985 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
32986 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
32987 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
32988 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
32989 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
32990 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
32991 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
32993 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
32994 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
32995 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
32996 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
32997 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
32998 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
32999 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33000 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33001 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33002 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33003 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33004 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33005 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33006 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33007 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33008 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33010 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33011 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33012 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33013 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33014 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33015 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33016 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33017 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33018 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33019 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33020 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33021 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33022 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33023 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33024 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33025 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33027 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33028 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33029 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33030 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33031 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33032 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33033 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33034 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33035 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33036 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33037 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33038 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33039 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33040 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33041 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33042 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33044 a = safe_add(a, olda);
33045 b = safe_add(b, oldb);
33046 c = safe_add(c, oldc);
33047 d = safe_add(d, oldd);
33049 return Array(a, b, c, d);
33054 * These functions implement the four basic operations the algorithm uses.
33056 function md5_cmn(q, a, b, x, s, t)
33058 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33060 function md5_ff(a, b, c, d, x, s, t)
33062 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33064 function md5_gg(a, b, c, d, x, s, t)
33066 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33068 function md5_hh(a, b, c, d, x, s, t)
33070 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33072 function md5_ii(a, b, c, d, x, s, t)
33074 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33078 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33079 * to work around bugs in some JS interpreters.
33081 function safe_add(x, y)
33083 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33084 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33085 return (msw <<
16) | (lsw &
0xFFFF);
33089 * Bitwise rotate a
32-bit number to the left.
33091 function bit_rol(num, cnt)
33093 return (num << cnt) | (num
>>> (
32 - cnt));
33096 module.exports = function md5(buf) {
33097 return helpers.hash(buf, core_md5,
16);
33099 },{"./helpers":
37}],
39:[function(require,module,exports){
33102 var elliptic = exports;
33104 elliptic.version = require('../package.json').version;
33105 elliptic.utils = require('./elliptic/utils');
33106 elliptic.rand = require('brorand');
33107 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33108 elliptic.curve = require('./elliptic/curve');
33109 elliptic.curves = require('./elliptic/curves');
33112 elliptic.ec = require('./elliptic/ec');
33113 elliptic.eddsa = require('./elliptic/eddsa');
33115 },{"../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){
33118 var BN = require('bn.js');
33119 var elliptic = require('../../elliptic');
33120 var utils = elliptic.utils;
33121 var getNAF = utils.getNAF;
33122 var getJSF = utils.getJSF;
33123 var assert = utils.assert;
33125 function BaseCurve(type, conf) {
33127 this.p = new BN(conf.p,
16);
33129 // Use Montgomery, when there is no fast reduction for the prime
33130 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33132 // Useful for many curves
33133 this.zero = new BN(
0).toRed(this.red);
33134 this.one = new BN(
1).toRed(this.red);
33135 this.two = new BN(
2).toRed(this.red);
33137 // Curve configuration, optional
33138 this.n = conf.n && new BN(conf.n,
16);
33139 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33141 // Temporary arrays
33142 this._wnafT1 = new Array(
4);
33143 this._wnafT2 = new Array(
4);
33144 this._wnafT3 = new Array(
4);
33145 this._wnafT4 = new Array(
4);
33147 // Generalized Greg Maxwell's trick
33148 var adjustCount = this.n && this.p.div(this.n);
33149 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33152 this._maxwellTrick = true;
33153 this.redN = this.n.toRed(this.red);
33156 module.exports = BaseCurve;
33158 BaseCurve.prototype.point = function point() {
33159 throw new Error('Not implemented');
33162 BaseCurve.prototype.validate = function validate() {
33163 throw new Error('Not implemented');
33166 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33167 assert(p.precomputed);
33168 var doubles = p._getDoubles();
33170 var naf = getNAF(k,
1);
33171 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33174 // Translate into more windowed form
33176 for (var j =
0; j < naf.length; j += doubles.step) {
33178 for (var k = j + doubles.step -
1; k
>= j; k--)
33179 nafW = (nafW <<
1) + naf[k];
33183 var a = this.jpoint(null, null, null);
33184 var b = this.jpoint(null, null, null);
33185 for (var i = I; i
> 0; i--) {
33186 for (var j =
0; j < repr.length; j++) {
33187 var nafW = repr[j];
33189 b = b.mixedAdd(doubles.points[j]);
33190 else if (nafW === -i)
33191 b = b.mixedAdd(doubles.points[j].neg());
33198 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33201 // Precompute window
33202 var nafPoints = p._getNAFPoints(w);
33204 var wnd = nafPoints.points;
33207 var naf = getNAF(k, w);
33209 // Add `this`*(N+
1) for every w-NAF index
33210 var acc = this.jpoint(null, null, null);
33211 for (var i = naf.length -
1; i
>=
0; i--) {
33213 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33223 if (p.type === 'affine') {
33226 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33228 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33232 acc = acc.add(wnd[(z -
1)
>> 1]);
33234 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33237 return p.type === 'affine' ? acc.toP() : acc;
33240 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33245 var wndWidth = this._wnafT1;
33246 var wnd = this._wnafT2;
33247 var naf = this._wnafT3;
33251 for (var i =
0; i < len; i++) {
33253 var nafPoints = p._getNAFPoints(defW);
33254 wndWidth[i] = nafPoints.wnd;
33255 wnd[i] = nafPoints.points;
33258 // Comb small window NAFs
33259 for (var i = len -
1; i
>=
1; i -=
2) {
33262 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33263 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33264 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33265 max = Math.max(naf[a].length, max);
33266 max = Math.max(naf[b].length, max);
33277 // Try to avoid Projective points, if possible
33278 if (points[a].y.cmp(points[b].y) ===
0) {
33279 comb[
1] = points[a].add(points[b]);
33280 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33281 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33282 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33283 comb[
2] = points[a].add(points[b].neg());
33285 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33286 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33301 var jsf = getJSF(coeffs[a], coeffs[b]);
33302 max = Math.max(jsf[
0].length, max);
33303 naf[a] = new Array(max);
33304 naf[b] = new Array(max);
33305 for (var j =
0; j < max; j++) {
33306 var ja = jsf[
0][j] |
0;
33307 var jb = jsf[
1][j] |
0;
33309 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33315 var acc = this.jpoint(null, null, null);
33316 var tmp = this._wnafT4;
33317 for (var i = max; i
>=
0; i--) {
33322 for (var j =
0; j < len; j++) {
33323 tmp[j] = naf[j][i] |
0;
33338 for (var j =
0; j < len; j++) {
33344 p = wnd[j][(z -
1)
>> 1];
33346 p = wnd[j][(-z -
1)
>> 1].neg();
33348 if (p.type === 'affine')
33349 acc = acc.mixedAdd(p);
33354 // Zeroify references
33355 for (var i =
0; i < len; i++)
33358 if (jacobianResult)
33364 function BasePoint(curve, type) {
33365 this.curve = curve;
33367 this.precomputed = null;
33369 BaseCurve.BasePoint = BasePoint;
33371 BasePoint.prototype.eq = function eq(/*other*/) {
33372 throw new Error('Not implemented');
33375 BasePoint.prototype.validate = function validate() {
33376 return this.curve.validate(this);
33379 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33380 bytes = utils.toArray(bytes, enc);
33382 var len = this.p.byteLength();
33384 // uncompressed, hybrid-odd, hybrid-even
33385 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33386 bytes.length -
1 ===
2 * len) {
33387 if (bytes[
0] ===
0x06)
33388 assert(bytes[bytes.length -
1] %
2 ===
0);
33389 else if (bytes[
0] ===
0x07)
33390 assert(bytes[bytes.length -
1] %
2 ===
1);
33392 var res = this.point(bytes.slice(
1,
1 + len),
33393 bytes.slice(
1 + len,
1 +
2 * len));
33396 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33397 bytes.length -
1 === len) {
33398 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33400 throw new Error('Unknown point format');
33403 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33404 return this.encode(enc, true);
33407 BasePoint.prototype._encode = function _encode(compact) {
33408 var len = this.curve.p.byteLength();
33409 var x = this.getX().toArray('be', len);
33412 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33414 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33417 BasePoint.prototype.encode = function encode(enc, compact) {
33418 return utils.encode(this._encode(compact), enc);
33421 BasePoint.prototype.precompute = function precompute(power) {
33422 if (this.precomputed)
33425 var precomputed = {
33430 precomputed.naf = this._getNAFPoints(
8);
33431 precomputed.doubles = this._getDoubles(
4, power);
33432 precomputed.beta = this._getBeta();
33433 this.precomputed = precomputed;
33438 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33439 if (!this.precomputed)
33442 var doubles = this.precomputed.doubles;
33446 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33449 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33450 if (this.precomputed && this.precomputed.doubles)
33451 return this.precomputed.doubles;
33453 var doubles = [ this ];
33455 for (var i =
0; i < power; i += step) {
33456 for (var j =
0; j < step; j++)
33466 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33467 if (this.precomputed && this.precomputed.naf)
33468 return this.precomputed.naf;
33470 var res = [ this ];
33471 var max = (
1 << wnd) -
1;
33472 var dbl = max ===
1 ? null : this.dbl();
33473 for (var i =
1; i < max; i++)
33474 res[i] = res[i -
1].add(dbl);
33481 BasePoint.prototype._getBeta = function _getBeta() {
33485 BasePoint.prototype.dblp = function dblp(k) {
33487 for (var i =
0; i < k; i++)
33492 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33495 var curve = require('../curve');
33496 var elliptic = require('../../elliptic');
33497 var BN = require('bn.js');
33498 var inherits = require('inherits');
33499 var Base = curve.base;
33501 var assert = elliptic.utils.assert;
33503 function EdwardsCurve(conf) {
33504 // NOTE: Important as we are creating point in Base.call()
33505 this.twisted = (conf.a |
0) !==
1;
33506 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33507 this.extended = this.mOneA;
33509 Base.call(this, 'edwards', conf);
33511 this.a = new BN(conf.a,
16).umod(this.red.m);
33512 this.a = this.a.toRed(this.red);
33513 this.c = new BN(conf.c,
16).toRed(this.red);
33514 this.c2 = this.c.redSqr();
33515 this.d = new BN(conf.d,
16).toRed(this.red);
33516 this.dd = this.d.redAdd(this.d);
33518 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33519 this.oneC = (conf.c |
0) ===
1;
33521 inherits(EdwardsCurve, Base);
33522 module.exports = EdwardsCurve;
33524 EdwardsCurve.prototype._mulA = function _mulA(num) {
33526 return num.redNeg();
33528 return this.a.redMul(num);
33531 EdwardsCurve.prototype._mulC = function _mulC(num) {
33535 return this.c.redMul(num);
33538 // Just for compatibility with Short curve
33539 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33540 return this.point(x, y, z, t);
33543 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33546 x = x.toRed(this.red);
33548 var x2 = x.redSqr();
33549 var rhs = this.c2.redSub(this.a.redMul(x2));
33550 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33552 var y2 = rhs.redMul(lhs.redInvm());
33553 var y = y2.redSqrt();
33554 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33555 throw new Error('invalid point');
33557 var isOdd = y.fromRed().isOdd();
33558 if (odd && !isOdd || !odd && isOdd)
33561 return this.point(x, y);
33564 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33567 y = y.toRed(this.red);
33569 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33570 var y2 = y.redSqr();
33571 var lhs = y2.redSub(this.one);
33572 var rhs = y2.redMul(this.d).redAdd(this.one);
33573 var x2 = lhs.redMul(rhs.redInvm());
33575 if (x2.cmp(this.zero) ===
0) {
33577 throw new Error('invalid point');
33579 return this.point(this.zero, y);
33582 var x = x2.redSqrt();
33583 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33584 throw new Error('invalid point');
33586 if (x.isOdd() !== odd)
33589 return this.point(x, y);
33592 EdwardsCurve.prototype.validate = function validate(point) {
33593 if (point.isInfinity())
33596 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33599 var x2 = point.x.redSqr();
33600 var y2 = point.y.redSqr();
33601 var lhs = x2.redMul(this.a).redAdd(y2);
33602 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33604 return lhs.cmp(rhs) ===
0;
33607 function Point(curve, x, y, z, t) {
33608 Base.BasePoint.call(this, curve, 'projective');
33609 if (x === null && y === null && z === null) {
33610 this.x = this.curve.zero;
33611 this.y = this.curve.one;
33612 this.z = this.curve.one;
33613 this.t = this.curve.zero;
33616 this.x = new BN(x,
16);
33617 this.y = new BN(y,
16);
33618 this.z = z ? new BN(z,
16) : this.curve.one;
33619 this.t = t && new BN(t,
16);
33621 this.x = this.x.toRed(this.curve.red);
33623 this.y = this.y.toRed(this.curve.red);
33625 this.z = this.z.toRed(this.curve.red);
33626 if (this.t && !this.t.red)
33627 this.t = this.t.toRed(this.curve.red);
33628 this.zOne = this.z === this.curve.one;
33630 // Use extended coordinates
33631 if (this.curve.extended && !this.t) {
33632 this.t = this.x.redMul(this.y);
33634 this.t = this.t.redMul(this.z.redInvm());
33638 inherits(Point, Base.BasePoint);
33640 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33641 return Point.fromJSON(this, obj);
33644 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33645 return new Point(this, x, y, z, t);
33648 Point.fromJSON = function fromJSON(curve, obj) {
33649 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33652 Point.prototype.inspect = function inspect() {
33653 if (this.isInfinity())
33654 return '
<EC Point Infinity
>';
33655 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33656 ' y: ' + this.y.fromRed().toString(
16,
2) +
33657 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33660 Point.prototype.isInfinity = function isInfinity() {
33661 // XXX This code assumes that zero is always zero in red
33662 return this.x.cmpn(
0) ===
0 &&
33663 this.y.cmp(this.z) ===
0;
33666 Point.prototype._extDbl = function _extDbl() {
33667 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33668 // #doubling-dbl-
2008-hwcd
33672 var a = this.x.redSqr();
33674 var b = this.y.redSqr();
33676 var c = this.z.redSqr();
33679 var d = this.curve._mulA(a);
33680 // E = (X1 + Y1)^
2 - A - B
33681 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33683 var g = d.redAdd(b);
33685 var f = g.redSub(c);
33687 var h = d.redSub(b);
33689 var nx = e.redMul(f);
33691 var ny = g.redMul(h);
33693 var nt = e.redMul(h);
33695 var nz = f.redMul(g);
33696 return this.curve.point(nx, ny, nz, nt);
33699 Point.prototype._projDbl = function _projDbl() {
33700 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33701 // #doubling-dbl-
2008-bbjlp
33702 // #doubling-dbl-
2007-bl
33704 // Generally
3M +
4S or
2M +
4S
33707 var b = this.x.redAdd(this.y).redSqr();
33709 var c = this.x.redSqr();
33711 var d = this.y.redSqr();
33716 if (this.curve.twisted) {
33718 var e = this.curve._mulA(c);
33720 var f = e.redAdd(d);
33722 // X3 = (B - C - D) * (F -
2)
33723 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33724 // Y3 = F * (E - D)
33725 ny = f.redMul(e.redSub(d));
33726 // Z3 = F^
2 -
2 * F
33727 nz = f.redSqr().redSub(f).redSub(f);
33730 var h = this.z.redSqr();
33732 var j = f.redSub(h).redISub(h);
33734 nx = b.redSub(c).redISub(d).redMul(j);
33735 // Y3 = F * (E - D)
33736 ny = f.redMul(e.redSub(d));
33742 var e = c.redAdd(d);
33744 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33746 var j = e.redSub(h).redSub(h);
33747 // X3 = c * (B - E) * J
33748 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33749 // Y3 = c * E * (C - D)
33750 ny = this.curve._mulC(e).redMul(c.redISub(d));
33754 return this.curve.point(nx, ny, nz);
33757 Point.prototype.dbl = function dbl() {
33758 if (this.isInfinity())
33761 // Double in extended coordinates
33762 if (this.curve.extended)
33763 return this._extDbl();
33765 return this._projDbl();
33768 Point.prototype._extAdd = function _extAdd(p) {
33769 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33770 // #addition-add-
2008-hwcd-
3
33773 // A = (Y1 - X1) * (Y2 - X2)
33774 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33775 // B = (Y1 + X1) * (Y2 + X2)
33776 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33778 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33780 var d = this.z.redMul(p.z.redAdd(p.z));
33782 var e = b.redSub(a);
33784 var f = d.redSub(c);
33786 var g = d.redAdd(c);
33788 var h = b.redAdd(a);
33790 var nx = e.redMul(f);
33792 var ny = g.redMul(h);
33794 var nt = e.redMul(h);
33796 var nz = f.redMul(g);
33797 return this.curve.point(nx, ny, nz, nt);
33800 Point.prototype._projAdd = function _projAdd(p) {
33801 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33802 // #addition-add-
2008-bbjlp
33803 // #addition-add-
2007-bl
33807 var a = this.z.redMul(p.z);
33809 var b = a.redSqr();
33811 var c = this.x.redMul(p.x);
33813 var d = this.y.redMul(p.y);
33815 var e = this.curve.d.redMul(c).redMul(d);
33817 var f = b.redSub(e);
33819 var g = b.redAdd(e);
33820 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33821 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33822 var nx = a.redMul(f).redMul(tmp);
33825 if (this.curve.twisted) {
33826 // Y3 = A * G * (D - a * C)
33827 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33831 // Y3 = A * G * (D - C)
33832 ny = a.redMul(g).redMul(d.redSub(c));
33834 nz = this.curve._mulC(f).redMul(g);
33836 return this.curve.point(nx, ny, nz);
33839 Point.prototype.add = function add(p) {
33840 if (this.isInfinity())
33842 if (p.isInfinity())
33845 if (this.curve.extended)
33846 return this._extAdd(p);
33848 return this._projAdd(p);
33851 Point.prototype.mul = function mul(k) {
33852 if (this._hasDoubles(k))
33853 return this.curve._fixedNafMul(this, k);
33855 return this.curve._wnafMul(this, k);
33858 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33859 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33862 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33863 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33866 Point.prototype.normalize = function normalize() {
33870 // Normalize coordinates
33871 var zi = this.z.redInvm();
33872 this.x = this.x.redMul(zi);
33873 this.y = this.y.redMul(zi);
33875 this.t = this.t.redMul(zi);
33876 this.z = this.curve.one;
33881 Point.prototype.neg = function neg() {
33882 return this.curve.point(this.x.redNeg(),
33885 this.t && this.t.redNeg());
33888 Point.prototype.getX = function getX() {
33890 return this.x.fromRed();
33893 Point.prototype.getY = function getY() {
33895 return this.y.fromRed();
33898 Point.prototype.eq = function eq(other) {
33899 return this === other ||
33900 this.getX().cmp(other.getX()) ===
0 &&
33901 this.getY().cmp(other.getY()) ===
0;
33904 Point.prototype.eqXToP = function eqXToP(x) {
33905 var rx = x.toRed(this.curve.red).redMul(this.z);
33906 if (this.x.cmp(rx) ===
0)
33909 var xc = x.clone();
33910 var t = this.curve.redN.redMul(this.z);
33912 xc.iadd(this.curve.n);
33913 if (xc.cmp(this.curve.p)
>=
0)
33917 if (this.x.cmp(rx) ===
0)
33923 // Compatibility with BaseCurve
33924 Point.prototype.toP = Point.prototype.normalize;
33925 Point.prototype.mixedAdd = Point.prototype.add;
33927 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33930 var curve = exports;
33932 curve.base = require('./base');
33933 curve.short = require('./short');
33934 curve.mont = require('./mont');
33935 curve.edwards = require('./edwards');
33937 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33940 var curve = require('../curve');
33941 var BN = require('bn.js');
33942 var inherits = require('inherits');
33943 var Base = curve.base;
33945 var elliptic = require('../../elliptic');
33946 var utils = elliptic.utils;
33948 function MontCurve(conf) {
33949 Base.call(this, 'mont', conf);
33951 this.a = new BN(conf.a,
16).toRed(this.red);
33952 this.b = new BN(conf.b,
16).toRed(this.red);
33953 this.i4 = new BN(
4).toRed(this.red).redInvm();
33954 this.two = new BN(
2).toRed(this.red);
33955 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
33957 inherits(MontCurve, Base);
33958 module.exports = MontCurve;
33960 MontCurve.prototype.validate = function validate(point) {
33961 var x = point.normalize().x;
33962 var x2 = x.redSqr();
33963 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
33964 var y = rhs.redSqrt();
33966 return y.redSqr().cmp(rhs) ===
0;
33969 function Point(curve, x, z) {
33970 Base.BasePoint.call(this, curve, 'projective');
33971 if (x === null && z === null) {
33972 this.x = this.curve.one;
33973 this.z = this.curve.zero;
33975 this.x = new BN(x,
16);
33976 this.z = new BN(z,
16);
33978 this.x = this.x.toRed(this.curve.red);
33980 this.z = this.z.toRed(this.curve.red);
33983 inherits(Point, Base.BasePoint);
33985 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33986 return this.point(utils.toArray(bytes, enc),
1);
33989 MontCurve.prototype.point = function point(x, z) {
33990 return new Point(this, x, z);
33993 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33994 return Point.fromJSON(this, obj);
33997 Point.prototype.precompute = function precompute() {
34001 Point.prototype._encode = function _encode() {
34002 return this.getX().toArray('be', this.curve.p.byteLength());
34005 Point.fromJSON = function fromJSON(curve, obj) {
34006 return new Point(curve, obj[
0], obj[
1] || curve.one);
34009 Point.prototype.inspect = function inspect() {
34010 if (this.isInfinity())
34011 return '
<EC Point Infinity
>';
34012 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34013 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34016 Point.prototype.isInfinity = function isInfinity() {
34017 // XXX This code assumes that zero is always zero in red
34018 return this.z.cmpn(
0) ===
0;
34021 Point.prototype.dbl = function dbl() {
34022 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34026 var a = this.x.redAdd(this.z);
34028 var aa = a.redSqr();
34030 var b = this.x.redSub(this.z);
34032 var bb = b.redSqr();
34034 var c = aa.redSub(bb);
34036 var nx = aa.redMul(bb);
34037 // Z3 = C * (BB + A24 * C)
34038 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34039 return this.curve.point(nx, nz);
34042 Point.prototype.add = function add() {
34043 throw new Error('Not supported on Montgomery curve');
34046 Point.prototype.diffAdd = function diffAdd(p, diff) {
34047 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34051 var a = this.x.redAdd(this.z);
34053 var b = this.x.redSub(this.z);
34055 var c = p.x.redAdd(p.z);
34057 var d = p.x.redSub(p.z);
34059 var da = d.redMul(a);
34061 var cb = c.redMul(b);
34062 // X5 = Z1 * (DA + CB)^
2
34063 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34064 // Z5 = X1 * (DA - CB)^
2
34065 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34066 return this.curve.point(nx, nz);
34069 Point.prototype.mul = function mul(k) {
34071 var a = this; // (N /
2) * Q + Q
34072 var b = this.curve.point(null, null); // (N /
2) * Q
34075 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34076 bits.push(t.andln(
1));
34078 for (var i = bits.length -
1; i
>=
0; i--) {
34079 if (bits[i] ===
0) {
34080 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34081 a = a.diffAdd(b, c);
34082 // N * Q =
2 * ((N /
2) * Q + Q))
34085 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34086 b = a.diffAdd(b, c);
34087 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34094 Point.prototype.mulAdd = function mulAdd() {
34095 throw new Error('Not supported on Montgomery curve');
34098 Point.prototype.jumlAdd = function jumlAdd() {
34099 throw new Error('Not supported on Montgomery curve');
34102 Point.prototype.eq = function eq(other) {
34103 return this.getX().cmp(other.getX()) ===
0;
34106 Point.prototype.normalize = function normalize() {
34107 this.x = this.x.redMul(this.z.redInvm());
34108 this.z = this.curve.one;
34112 Point.prototype.getX = function getX() {
34113 // Normalize coordinates
34116 return this.x.fromRed();
34119 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34122 var curve = require('../curve');
34123 var elliptic = require('../../elliptic');
34124 var BN = require('bn.js');
34125 var inherits = require('inherits');
34126 var Base = curve.base;
34128 var assert = elliptic.utils.assert;
34130 function ShortCurve(conf) {
34131 Base.call(this, 'short', conf);
34133 this.a = new BN(conf.a,
16).toRed(this.red);
34134 this.b = new BN(conf.b,
16).toRed(this.red);
34135 this.tinv = this.two.redInvm();
34137 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34138 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34140 // If the curve is endomorphic, precalculate beta and lambda
34141 this.endo = this._getEndomorphism(conf);
34142 this._endoWnafT1 = new Array(
4);
34143 this._endoWnafT2 = new Array(
4);
34145 inherits(ShortCurve, Base);
34146 module.exports = ShortCurve;
34148 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34149 // No efficient endomorphism
34150 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34153 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34157 beta = new BN(conf.beta,
16).toRed(this.red);
34159 var betas = this._getEndoRoots(this.p);
34160 // Choose the smallest beta
34161 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34162 beta = beta.toRed(this.red);
34165 lambda = new BN(conf.lambda,
16);
34167 // Choose the lambda that is matching selected beta
34168 var lambdas = this._getEndoRoots(this.n);
34169 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34170 lambda = lambdas[
0];
34172 lambda = lambdas[
1];
34173 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34177 // Get basis vectors, used for balanced length-two representation
34180 basis = conf.basis.map(function(vec) {
34182 a: new BN(vec.a,
16),
34183 b: new BN(vec.b,
16)
34187 basis = this._getEndoBasis(lambda);
34197 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34198 // Find roots of for x^
2 + x +
1 in F
34199 // Root = (-
1 +- Sqrt(-
3)) /
2
34201 var red = num === this.p ? this.red : BN.mont(num);
34202 var tinv = new BN(
2).toRed(red).redInvm();
34203 var ntinv = tinv.redNeg();
34205 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34207 var l1 = ntinv.redAdd(s).fromRed();
34208 var l2 = ntinv.redSub(s).fromRed();
34212 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34213 // aprxSqrt
>= sqrt(this.n)
34214 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34217 // Run EGCD, until r(L +
1) < aprxSqrt
34219 var v = this.n.clone();
34220 var x1 = new BN(
1);
34221 var y1 = new BN(
0);
34222 var x2 = new BN(
0);
34223 var y2 = new BN(
1);
34225 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34239 while (u.cmpn(
0) !==
0) {
34241 r = v.sub(q.mul(u));
34242 x = x2.sub(q.mul(x1));
34243 var y = y2.sub(q.mul(y1));
34245 if (!a1 && r.cmp(aprxSqrt) <
0) {
34250 } else if (a1 && ++i ===
2) {
34265 var len1 = a1.sqr().add(b1.sqr());
34266 var len2 = a2.sqr().add(b2.sqr());
34267 if (len2.cmp(len1)
>=
0) {
34288 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34289 var basis = this.endo.basis;
34293 var c1 = v2.b.mul(k).divRound(this.n);
34294 var c2 = v1.b.neg().mul(k).divRound(this.n);
34296 var p1 = c1.mul(v1.a);
34297 var p2 = c2.mul(v2.a);
34298 var q1 = c1.mul(v1.b);
34299 var q2 = c2.mul(v2.b);
34301 // Calculate answer
34302 var k1 = k.sub(p1).sub(p2);
34303 var k2 = q1.add(q2).neg();
34304 return { k1: k1, k2: k2 };
34307 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34310 x = x.toRed(this.red);
34312 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34313 var y = y2.redSqrt();
34314 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34315 throw new Error('invalid point');
34317 // XXX Is there any way to tell if the number is odd without converting it
34318 // to non-red form?
34319 var isOdd = y.fromRed().isOdd();
34320 if (odd && !isOdd || !odd && isOdd)
34323 return this.point(x, y);
34326 ShortCurve.prototype.validate = function validate(point) {
34333 var ax = this.a.redMul(x);
34334 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34335 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34338 ShortCurve.prototype._endoWnafMulAdd =
34339 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34340 var npoints = this._endoWnafT1;
34341 var ncoeffs = this._endoWnafT2;
34342 for (var i =
0; i < points.length; i++) {
34343 var split = this._endoSplit(coeffs[i]);
34345 var beta = p._getBeta();
34347 if (split.k1.negative) {
34351 if (split.k2.negative) {
34353 beta = beta.neg(true);
34356 npoints[i *
2] = p;
34357 npoints[i *
2 +
1] = beta;
34358 ncoeffs[i *
2] = split.k1;
34359 ncoeffs[i *
2 +
1] = split.k2;
34361 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34363 // Clean-up references to points and coefficients
34364 for (var j =
0; j < i *
2; j++) {
34371 function Point(curve, x, y, isRed) {
34372 Base.BasePoint.call(this, curve, 'affine');
34373 if (x === null && y === null) {
34378 this.x = new BN(x,
16);
34379 this.y = new BN(y,
16);
34380 // Force redgomery representation when loading from JSON
34382 this.x.forceRed(this.curve.red);
34383 this.y.forceRed(this.curve.red);
34386 this.x = this.x.toRed(this.curve.red);
34388 this.y = this.y.toRed(this.curve.red);
34392 inherits(Point, Base.BasePoint);
34394 ShortCurve.prototype.point = function point(x, y, isRed) {
34395 return new Point(this, x, y, isRed);
34398 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34399 return Point.fromJSON(this, obj, red);
34402 Point.prototype._getBeta = function _getBeta() {
34403 if (!this.curve.endo)
34406 var pre = this.precomputed;
34407 if (pre && pre.beta)
34410 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34412 var curve = this.curve;
34413 var endoMul = function(p) {
34414 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34417 beta.precomputed = {
34421 points: pre.naf.points.map(endoMul)
34423 doubles: pre.doubles && {
34424 step: pre.doubles.step,
34425 points: pre.doubles.points.map(endoMul)
34432 Point.prototype.toJSON = function toJSON() {
34433 if (!this.precomputed)
34434 return [ this.x, this.y ];
34436 return [ this.x, this.y, this.precomputed && {
34437 doubles: this.precomputed.doubles && {
34438 step: this.precomputed.doubles.step,
34439 points: this.precomputed.doubles.points.slice(
1)
34441 naf: this.precomputed.naf && {
34442 wnd: this.precomputed.naf.wnd,
34443 points: this.precomputed.naf.points.slice(
1)
34448 Point.fromJSON = function fromJSON(curve, obj, red) {
34449 if (typeof obj === 'string')
34450 obj = JSON.parse(obj);
34451 var res = curve.point(obj[
0], obj[
1], red);
34455 function obj2point(obj) {
34456 return curve.point(obj[
0], obj[
1], red);
34460 res.precomputed = {
34462 doubles: pre.doubles && {
34463 step: pre.doubles.step,
34464 points: [ res ].concat(pre.doubles.points.map(obj2point))
34468 points: [ res ].concat(pre.naf.points.map(obj2point))
34474 Point.prototype.inspect = function inspect() {
34475 if (this.isInfinity())
34476 return '
<EC Point Infinity
>';
34477 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34478 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34481 Point.prototype.isInfinity = function isInfinity() {
34485 Point.prototype.add = function add(p) {
34499 if (this.neg().eq(p))
34500 return this.curve.point(null, null);
34503 if (this.x.cmp(p.x) ===
0)
34504 return this.curve.point(null, null);
34506 var c = this.y.redSub(p.y);
34507 if (c.cmpn(
0) !==
0)
34508 c = c.redMul(this.x.redSub(p.x).redInvm());
34509 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34510 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34511 return this.curve.point(nx, ny);
34514 Point.prototype.dbl = function dbl() {
34519 var ys1 = this.y.redAdd(this.y);
34520 if (ys1.cmpn(
0) ===
0)
34521 return this.curve.point(null, null);
34523 var a = this.curve.a;
34525 var x2 = this.x.redSqr();
34526 var dyinv = ys1.redInvm();
34527 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34529 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34530 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34531 return this.curve.point(nx, ny);
34534 Point.prototype.getX = function getX() {
34535 return this.x.fromRed();
34538 Point.prototype.getY = function getY() {
34539 return this.y.fromRed();
34542 Point.prototype.mul = function mul(k) {
34545 if (this._hasDoubles(k))
34546 return this.curve._fixedNafMul(this, k);
34547 else if (this.curve.endo)
34548 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34550 return this.curve._wnafMul(this, k);
34553 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34554 var points = [ this, p2 ];
34555 var coeffs = [ k1, k2 ];
34556 if (this.curve.endo)
34557 return this.curve._endoWnafMulAdd(points, coeffs);
34559 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34562 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34563 var points = [ this, p2 ];
34564 var coeffs = [ k1, k2 ];
34565 if (this.curve.endo)
34566 return this.curve._endoWnafMulAdd(points, coeffs, true);
34568 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34571 Point.prototype.eq = function eq(p) {
34572 return this === p ||
34573 this.inf === p.inf &&
34574 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34577 Point.prototype.neg = function neg(_precompute) {
34581 var res = this.curve.point(this.x, this.y.redNeg());
34582 if (_precompute && this.precomputed) {
34583 var pre = this.precomputed;
34584 var negate = function(p) {
34587 res.precomputed = {
34590 points: pre.naf.points.map(negate)
34592 doubles: pre.doubles && {
34593 step: pre.doubles.step,
34594 points: pre.doubles.points.map(negate)
34601 Point.prototype.toJ = function toJ() {
34603 return this.curve.jpoint(null, null, null);
34605 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34609 function JPoint(curve, x, y, z) {
34610 Base.BasePoint.call(this, curve, 'jacobian');
34611 if (x === null && y === null && z === null) {
34612 this.x = this.curve.one;
34613 this.y = this.curve.one;
34614 this.z = new BN(
0);
34616 this.x = new BN(x,
16);
34617 this.y = new BN(y,
16);
34618 this.z = new BN(z,
16);
34621 this.x = this.x.toRed(this.curve.red);
34623 this.y = this.y.toRed(this.curve.red);
34625 this.z = this.z.toRed(this.curve.red);
34627 this.zOne = this.z === this.curve.one;
34629 inherits(JPoint, Base.BasePoint);
34631 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34632 return new JPoint(this, x, y, z);
34635 JPoint.prototype.toP = function toP() {
34636 if (this.isInfinity())
34637 return this.curve.point(null, null);
34639 var zinv = this.z.redInvm();
34640 var zinv2 = zinv.redSqr();
34641 var ax = this.x.redMul(zinv2);
34642 var ay = this.y.redMul(zinv2).redMul(zinv);
34644 return this.curve.point(ax, ay);
34647 JPoint.prototype.neg = function neg() {
34648 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34651 JPoint.prototype.add = function add(p) {
34653 if (this.isInfinity())
34657 if (p.isInfinity())
34661 var pz2 = p.z.redSqr();
34662 var z2 = this.z.redSqr();
34663 var u1 = this.x.redMul(pz2);
34664 var u2 = p.x.redMul(z2);
34665 var s1 = this.y.redMul(pz2.redMul(p.z));
34666 var s2 = p.y.redMul(z2.redMul(this.z));
34668 var h = u1.redSub(u2);
34669 var r = s1.redSub(s2);
34670 if (h.cmpn(
0) ===
0) {
34671 if (r.cmpn(
0) !==
0)
34672 return this.curve.jpoint(null, null, null);
34677 var h2 = h.redSqr();
34678 var h3 = h2.redMul(h);
34679 var v = u1.redMul(h2);
34681 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34682 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34683 var nz = this.z.redMul(p.z).redMul(h);
34685 return this.curve.jpoint(nx, ny, nz);
34688 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34690 if (this.isInfinity())
34694 if (p.isInfinity())
34698 var z2 = this.z.redSqr();
34700 var u2 = p.x.redMul(z2);
34702 var s2 = p.y.redMul(z2).redMul(this.z);
34704 var h = u1.redSub(u2);
34705 var r = s1.redSub(s2);
34706 if (h.cmpn(
0) ===
0) {
34707 if (r.cmpn(
0) !==
0)
34708 return this.curve.jpoint(null, null, null);
34713 var h2 = h.redSqr();
34714 var h3 = h2.redMul(h);
34715 var v = u1.redMul(h2);
34717 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34718 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34719 var nz = this.z.redMul(h);
34721 return this.curve.jpoint(nx, ny, nz);
34724 JPoint.prototype.dblp = function dblp(pow) {
34727 if (this.isInfinity())
34732 if (this.curve.zeroA || this.curve.threeA) {
34734 for (var i =
0; i < pow; i++)
34739 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34740 // N =
1 =
> 6M +
6S +
9A
34741 var a = this.curve.a;
34742 var tinv = this.curve.tinv;
34747 var jz4 = jz.redSqr().redSqr();
34750 var jyd = jy.redAdd(jy);
34751 for (var i =
0; i < pow; i++) {
34752 var jx2 = jx.redSqr();
34753 var jyd2 = jyd.redSqr();
34754 var jyd4 = jyd2.redSqr();
34755 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34757 var t1 = jx.redMul(jyd2);
34758 var nx = c.redSqr().redISub(t1.redAdd(t1));
34759 var t2 = t1.redISub(nx);
34760 var dny = c.redMul(t2);
34761 dny = dny.redIAdd(dny).redISub(jyd4);
34762 var nz = jyd.redMul(jz);
34764 jz4 = jz4.redMul(jyd4);
34771 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34774 JPoint.prototype.dbl = function dbl() {
34775 if (this.isInfinity())
34778 if (this.curve.zeroA)
34779 return this._zeroDbl();
34780 else if (this.curve.threeA)
34781 return this._threeDbl();
34783 return this._dbl();
34786 JPoint.prototype._zeroDbl = function _zeroDbl() {
34792 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34793 // #doubling-mdbl-
2007-bl
34797 var xx = this.x.redSqr();
34799 var yy = this.y.redSqr();
34801 var yyyy = yy.redSqr();
34802 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34803 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34805 // M =
3 * XX + a; a =
0
34806 var m = xx.redAdd(xx).redIAdd(xx);
34808 var t = m.redSqr().redISub(s).redISub(s);
34811 var yyyy8 = yyyy.redIAdd(yyyy);
34812 yyyy8 = yyyy8.redIAdd(yyyy8);
34813 yyyy8 = yyyy8.redIAdd(yyyy8);
34817 // Y3 = M * (S - T) -
8 * YYYY
34818 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34820 nz = this.y.redAdd(this.y);
34822 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34823 // #doubling-dbl-
2009-l
34827 var a = this.x.redSqr();
34829 var b = this.y.redSqr();
34831 var c = b.redSqr();
34832 // D =
2 * ((X1 + B)^
2 - A - C)
34833 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34836 var e = a.redAdd(a).redIAdd(a);
34838 var f = e.redSqr();
34841 var c8 = c.redIAdd(c);
34842 c8 = c8.redIAdd(c8);
34843 c8 = c8.redIAdd(c8);
34846 nx = f.redISub(d).redISub(d);
34847 // Y3 = E * (D - X3) -
8 * C
34848 ny = e.redMul(d.redISub(nx)).redISub(c8);
34849 // Z3 =
2 * Y1 * Z1
34850 nz = this.y.redMul(this.z);
34851 nz = nz.redIAdd(nz);
34854 return this.curve.jpoint(nx, ny, nz);
34857 JPoint.prototype._threeDbl = function _threeDbl() {
34863 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34864 // #doubling-mdbl-
2007-bl
34868 var xx = this.x.redSqr();
34870 var yy = this.y.redSqr();
34872 var yyyy = yy.redSqr();
34873 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34874 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34877 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34879 var t = m.redSqr().redISub(s).redISub(s);
34882 // Y3 = M * (S - T) -
8 * YYYY
34883 var yyyy8 = yyyy.redIAdd(yyyy);
34884 yyyy8 = yyyy8.redIAdd(yyyy8);
34885 yyyy8 = yyyy8.redIAdd(yyyy8);
34886 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34888 nz = this.y.redAdd(this.y);
34890 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34894 var delta = this.z.redSqr();
34896 var gamma = this.y.redSqr();
34897 // beta = X1 * gamma
34898 var beta = this.x.redMul(gamma);
34899 // alpha =
3 * (X1 - delta) * (X1 + delta)
34900 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34901 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34902 // X3 = alpha^
2 -
8 * beta
34903 var beta4 = beta.redIAdd(beta);
34904 beta4 = beta4.redIAdd(beta4);
34905 var beta8 = beta4.redAdd(beta4);
34906 nx = alpha.redSqr().redISub(beta8);
34907 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34908 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34909 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34910 var ggamma8 = gamma.redSqr();
34911 ggamma8 = ggamma8.redIAdd(ggamma8);
34912 ggamma8 = ggamma8.redIAdd(ggamma8);
34913 ggamma8 = ggamma8.redIAdd(ggamma8);
34914 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34917 return this.curve.jpoint(nx, ny, nz);
34920 JPoint.prototype._dbl = function _dbl() {
34921 var a = this.curve.a;
34927 var jz4 = jz.redSqr().redSqr();
34929 var jx2 = jx.redSqr();
34930 var jy2 = jy.redSqr();
34932 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34934 var jxd4 = jx.redAdd(jx);
34935 jxd4 = jxd4.redIAdd(jxd4);
34936 var t1 = jxd4.redMul(jy2);
34937 var nx = c.redSqr().redISub(t1.redAdd(t1));
34938 var t2 = t1.redISub(nx);
34940 var jyd8 = jy2.redSqr();
34941 jyd8 = jyd8.redIAdd(jyd8);
34942 jyd8 = jyd8.redIAdd(jyd8);
34943 jyd8 = jyd8.redIAdd(jyd8);
34944 var ny = c.redMul(t2).redISub(jyd8);
34945 var nz = jy.redAdd(jy).redMul(jz);
34947 return this.curve.jpoint(nx, ny, nz);
34950 JPoint.prototype.trpl = function trpl() {
34951 if (!this.curve.zeroA)
34952 return this.dbl().add(this);
34954 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
34958 var xx = this.x.redSqr();
34960 var yy = this.y.redSqr();
34962 var zz = this.z.redSqr();
34964 var yyyy = yy.redSqr();
34965 // M =
3 * XX + a * ZZ2; a =
0
34966 var m = xx.redAdd(xx).redIAdd(xx);
34968 var mm = m.redSqr();
34969 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
34970 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34972 e = e.redAdd(e).redIAdd(e);
34975 var ee = e.redSqr();
34977 var t = yyyy.redIAdd(yyyy);
34981 // U = (M + E)^
2 - MM - EE - T
34982 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
34983 // X3 =
4 * (X1 * EE -
4 * YY * U)
34984 var yyu4 = yy.redMul(u);
34985 yyu4 = yyu4.redIAdd(yyu4);
34986 yyu4 = yyu4.redIAdd(yyu4);
34987 var nx = this.x.redMul(ee).redISub(yyu4);
34988 nx = nx.redIAdd(nx);
34989 nx = nx.redIAdd(nx);
34990 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
34991 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
34992 ny = ny.redIAdd(ny);
34993 ny = ny.redIAdd(ny);
34994 ny = ny.redIAdd(ny);
34995 // Z3 = (Z1 + E)^
2 - ZZ - EE
34996 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
34998 return this.curve.jpoint(nx, ny, nz);
35001 JPoint.prototype.mul = function mul(k, kbase) {
35002 k = new BN(k, kbase);
35004 return this.curve._wnafMul(this, k);
35007 JPoint.prototype.eq = function eq(p) {
35008 if (p.type === 'affine')
35009 return this.eq(p.toJ());
35014 // x1 * z2^
2 == x2 * z1^
2
35015 var z2 = this.z.redSqr();
35016 var pz2 = p.z.redSqr();
35017 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35020 // y1 * z2^
3 == y2 * z1^
3
35021 var z3 = z2.redMul(this.z);
35022 var pz3 = pz2.redMul(p.z);
35023 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35026 JPoint.prototype.eqXToP = function eqXToP(x) {
35027 var zs = this.z.redSqr();
35028 var rx = x.toRed(this.curve.red).redMul(zs);
35029 if (this.x.cmp(rx) ===
0)
35032 var xc = x.clone();
35033 var t = this.curve.redN.redMul(zs);
35035 xc.iadd(this.curve.n);
35036 if (xc.cmp(this.curve.p)
>=
0)
35040 if (this.x.cmp(rx) ===
0)
35046 JPoint.prototype.inspect = function inspect() {
35047 if (this.isInfinity())
35048 return '
<EC JPoint Infinity
>';
35049 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35050 ' y: ' + this.y.toString(
16,
2) +
35051 ' z: ' + this.z.toString(
16,
2) + '
>';
35054 JPoint.prototype.isInfinity = function isInfinity() {
35055 // XXX This code assumes that zero is always zero in red
35056 return this.z.cmpn(
0) ===
0;
35059 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35062 var curves = exports;
35064 var hash = require('hash.js');
35065 var elliptic = require('../elliptic');
35067 var assert = elliptic.utils.assert;
35069 function PresetCurve(options) {
35070 if (options.type === 'short')
35071 this.curve = new elliptic.curve.short(options);
35072 else if (options.type === 'edwards')
35073 this.curve = new elliptic.curve.edwards(options);
35075 this.curve = new elliptic.curve.mont(options);
35076 this.g = this.curve.g;
35077 this.n = this.curve.n;
35078 this.hash = options.hash;
35080 assert(this.g.validate(), 'Invalid curve');
35081 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35083 curves.PresetCurve = PresetCurve;
35085 function defineCurve(name, options) {
35086 Object.defineProperty(curves, name, {
35087 configurable: true,
35090 var curve = new PresetCurve(options);
35091 Object.defineProperty(curves, name, {
35092 configurable: true,
35101 defineCurve('p192', {
35104 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35105 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35106 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35107 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35111 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35112 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35116 defineCurve('p224', {
35119 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35120 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35121 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35122 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35126 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35127 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35131 defineCurve('p256', {
35134 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35135 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35136 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35137 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35141 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35142 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35146 defineCurve('p384', {
35149 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35150 'fffffffe ffffffff
00000000 00000000 ffffffff',
35151 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35152 'fffffffe ffffffff
00000000 00000000 fffffffc',
35153 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35154 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35155 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35156 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35160 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35161 '
5502f25d bf55296c
3a545e38
72760ab7',
35162 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35163 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35167 defineCurve('p521', {
35170 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35171 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35172 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35173 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35174 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35175 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35176 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35177 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35178 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35179 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35180 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35181 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35185 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35186 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35187 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35188 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35189 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35190 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35194 defineCurve('curve25519', {
35197 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35200 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35208 defineCurve('ed25519', {
35211 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35214 // -
121665 * (
121666^(-
1)) (mod P)
35215 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35216 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35220 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35223 '
6666666666666666666666666666666666666666666666666666666666666658'
35229 pre = require('./precomputed/secp256k1');
35234 defineCurve('secp256k1', {
35237 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35240 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35244 // Precomputed endomorphism
35245 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35246 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35249 a: '
3086d221a7d46bcde86c90e49284eb15',
35250 b: '-e4437ed6010e88286f547fa90abfe4c3'
35253 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35254 b: '
3086d221a7d46bcde86c90e49284eb15'
35260 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35261 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35266 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35269 var BN = require('bn.js');
35270 var elliptic = require('../../elliptic');
35271 var utils = elliptic.utils;
35272 var assert = utils.assert;
35274 var KeyPair = require('./key');
35275 var Signature = require('./signature');
35277 function EC(options) {
35278 if (!(this instanceof EC))
35279 return new EC(options);
35281 // Shortcut `elliptic.ec(curve-name)`
35282 if (typeof options === 'string') {
35283 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35285 options = elliptic.curves[options];
35288 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35289 if (options instanceof elliptic.curves.PresetCurve)
35290 options = { curve: options };
35292 this.curve = options.curve.curve;
35293 this.n = this.curve.n;
35294 this.nh = this.n.ushrn(
1);
35295 this.g = this.curve.g;
35298 this.g = options.curve.g;
35299 this.g.precompute(options.curve.n.bitLength() +
1);
35301 // Hash for function for DRBG
35302 this.hash = options.hash || options.curve.hash;
35304 module.exports = EC;
35306 EC.prototype.keyPair = function keyPair(options) {
35307 return new KeyPair(this, options);
35310 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35311 return KeyPair.fromPrivate(this, priv, enc);
35314 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35315 return KeyPair.fromPublic(this, pub, enc);
35318 EC.prototype.genKeyPair = function genKeyPair(options) {
35322 // Instantiate Hmac_DRBG
35323 var drbg = new elliptic.hmacDRBG({
35325 pers: options.pers,
35326 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35327 nonce: this.n.toArray()
35330 var bytes = this.n.byteLength();
35331 var ns2 = this.n.sub(new BN(
2));
35333 var priv = new BN(drbg.generate(bytes));
35334 if (priv.cmp(ns2)
> 0)
35338 return this.keyFromPrivate(priv);
35342 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35343 var delta = msg.byteLength() *
8 - this.n.bitLength();
35345 msg = msg.ushrn(delta);
35346 if (!truncOnly && msg.cmp(this.n)
>=
0)
35347 return msg.sub(this.n);
35352 EC.prototype.sign = function sign(msg, key, enc, options) {
35353 if (typeof enc === 'object') {
35360 key = this.keyFromPrivate(key, enc);
35361 msg = this._truncateToN(new BN(msg,
16));
35363 // Zero-extend key to provide enough entropy
35364 var bytes = this.n.byteLength();
35365 var bkey = key.getPrivate().toArray('be', bytes);
35367 // Zero-extend nonce to have the same byte size as N
35368 var nonce = msg.toArray('be', bytes);
35370 // Instantiate Hmac_DRBG
35371 var drbg = new elliptic.hmacDRBG({
35375 pers: options.pers,
35376 persEnc: options.persEnc
35379 // Number of bytes to generate
35380 var ns1 = this.n.sub(new BN(
1));
35382 for (var iter =
0; true; iter++) {
35383 var k = options.k ?
35385 new BN(drbg.generate(this.n.byteLength()));
35386 k = this._truncateToN(k, true);
35387 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35390 var kp = this.g.mul(k);
35391 if (kp.isInfinity())
35394 var kpX = kp.getX();
35395 var r = kpX.umod(this.n);
35396 if (r.cmpn(
0) ===
0)
35399 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35400 s = s.umod(this.n);
35401 if (s.cmpn(
0) ===
0)
35404 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35405 (kpX.cmp(r) !==
0 ?
2 :
0);
35407 // Use complement of `s`, if it is
> `n /
2`
35408 if (options.canonical && s.cmp(this.nh)
> 0) {
35410 recoveryParam ^=
1;
35413 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35417 EC.prototype.verify = function verify(msg, signature, key, enc) {
35418 msg = this._truncateToN(new BN(msg,
16));
35419 key = this.keyFromPublic(key, enc);
35420 signature = new Signature(signature, 'hex');
35422 // Perform primitive values validation
35423 var r = signature.r;
35424 var s = signature.s;
35425 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35427 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35430 // Validate signature
35431 var sinv = s.invm(this.n);
35432 var u1 = sinv.mul(msg).umod(this.n);
35433 var u2 = sinv.mul(r).umod(this.n);
35435 if (!this.curve._maxwellTrick) {
35436 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35437 if (p.isInfinity())
35440 return p.getX().umod(this.n).cmp(r) ===
0;
35443 // NOTE: Greg Maxwell's trick, inspired by:
35444 // https://git.io/vad3K
35446 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35447 if (p.isInfinity())
35450 // Compare `p.x` of Jacobian point with `r`,
35451 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35452 // inverse of `p.z^
2`
35453 return p.eqXToP(r);
35456 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35457 assert((
3 & j) === j, 'The recovery param is more than two bits');
35458 signature = new Signature(signature, enc);
35461 var e = new BN(msg);
35462 var r = signature.r;
35463 var s = signature.s;
35465 // A set LSB signifies that the y-coordinate is odd
35466 var isYOdd = j &
1;
35467 var isSecondKey = j
>> 1;
35468 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35469 throw new Error('Unable to find sencond key candinate');
35471 //
1.1. Let x = r + jn.
35473 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35475 r = this.curve.pointFromX(r, isYOdd);
35477 var rInv = signature.r.invm(n);
35478 var s1 = n.sub(e).mul(rInv).umod(n);
35479 var s2 = s.mul(rInv).umod(n);
35481 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35482 // Q = r^-
1 (sR + -eG)
35483 return this.g.mulAdd(s1, r, s2);
35486 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35487 signature = new Signature(signature, enc);
35488 if (signature.recoveryParam !== null)
35489 return signature.recoveryParam;
35491 for (var i =
0; i <
4; i++) {
35494 Qprime = this.recoverPubKey(e, signature, i);
35502 throw new Error('Unable to find valid recovery factor');
35505 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35508 var BN = require('bn.js');
35509 var elliptic = require('../../elliptic');
35510 var utils = elliptic.utils;
35511 var assert = utils.assert;
35513 function KeyPair(ec, options) {
35518 // KeyPair(ec, { priv: ..., pub: ... })
35520 this._importPrivate(options.priv, options.privEnc);
35522 this._importPublic(options.pub, options.pubEnc);
35524 module.exports = KeyPair;
35526 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35527 if (pub instanceof KeyPair)
35530 return new KeyPair(ec, {
35536 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35537 if (priv instanceof KeyPair)
35540 return new KeyPair(ec, {
35546 KeyPair.prototype.validate = function validate() {
35547 var pub = this.getPublic();
35549 if (pub.isInfinity())
35550 return { result: false, reason: 'Invalid public key' };
35551 if (!pub.validate())
35552 return { result: false, reason: 'Public key is not a point' };
35553 if (!pub.mul(this.ec.curve.n).isInfinity())
35554 return { result: false, reason: 'Public key * N != O' };
35556 return { result: true, reason: null };
35559 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35560 // compact is optional argument
35561 if (typeof compact === 'string') {
35567 this.pub = this.ec.g.mul(this.priv);
35572 return this.pub.encode(enc, compact);
35575 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35577 return this.priv.toString(
16,
2);
35582 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35583 this.priv = new BN(key, enc ||
16);
35585 // Ensure that the priv won't be bigger than n, otherwise we may fail
35586 // in fixed multiplication method
35587 this.priv = this.priv.umod(this.ec.curve.n);
35590 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35591 if (key.x || key.y) {
35592 // Montgomery points only have an `x` coordinate.
35593 // Weierstrass/Edwards points on the other hand have both `x` and
35594 // `y` coordinates.
35595 if (this.ec.curve.type === 'mont') {
35596 assert(key.x, 'Need x coordinate');
35597 } else if (this.ec.curve.type === 'short' ||
35598 this.ec.curve.type === 'edwards') {
35599 assert(key.x && key.y, 'Need both x and y coordinate');
35601 this.pub = this.ec.curve.point(key.x, key.y);
35604 this.pub = this.ec.curve.decodePoint(key, enc);
35608 KeyPair.prototype.derive = function derive(pub) {
35609 return pub.mul(this.priv).getX();
35613 KeyPair.prototype.sign = function sign(msg, enc, options) {
35614 return this.ec.sign(msg, this, enc, options);
35617 KeyPair.prototype.verify = function verify(msg, signature) {
35618 return this.ec.verify(msg, signature, this);
35621 KeyPair.prototype.inspect = function inspect() {
35622 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35623 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35626 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35629 var BN = require('bn.js');
35631 var elliptic = require('../../elliptic');
35632 var utils = elliptic.utils;
35633 var assert = utils.assert;
35635 function Signature(options, enc) {
35636 if (options instanceof Signature)
35639 if (this._importDER(options, enc))
35642 assert(options.r && options.s, 'Signature without r or s');
35643 this.r = new BN(options.r,
16);
35644 this.s = new BN(options.s,
16);
35645 if (options.recoveryParam === undefined)
35646 this.recoveryParam = null;
35648 this.recoveryParam = options.recoveryParam;
35650 module.exports = Signature;
35652 function Position() {
35656 function getLength(buf, p) {
35657 var initial = buf[p.place++];
35658 if (!(initial &
0x80)) {
35661 var octetLen = initial &
0xf;
35663 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35671 function rmPadding(buf) {
35673 var len = buf.length -
1;
35674 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35680 return buf.slice(i);
35683 Signature.prototype._importDER = function _importDER(data, enc) {
35684 data = utils.toArray(data, enc);
35685 var p = new Position();
35686 if (data[p.place++] !==
0x30) {
35689 var len = getLength(data, p);
35690 if ((len + p.place) !== data.length) {
35693 if (data[p.place++] !==
0x02) {
35696 var rlen = getLength(data, p);
35697 var r = data.slice(p.place, rlen + p.place);
35699 if (data[p.place++] !==
0x02) {
35702 var slen = getLength(data, p);
35703 if (data.length !== slen + p.place) {
35706 var s = data.slice(p.place, slen + p.place);
35707 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35710 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35714 this.r = new BN(r);
35715 this.s = new BN(s);
35716 this.recoveryParam = null;
35721 function constructLength(arr, len) {
35726 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35727 arr.push(octets |
0x80);
35729 arr.push((len
>>> (octets <<
3)) &
0xff);
35734 Signature.prototype.toDER = function toDER(enc) {
35735 var r = this.r.toArray();
35736 var s = this.s.toArray();
35740 r = [
0 ].concat(r);
35743 s = [
0 ].concat(s);
35748 while (!s[
0] && !(s[
1] &
0x80)) {
35751 var arr = [
0x02 ];
35752 constructLength(arr, r.length);
35753 arr = arr.concat(r);
35755 constructLength(arr, s.length);
35756 var backHalf = arr.concat(s);
35757 var res = [
0x30 ];
35758 constructLength(res, backHalf.length);
35759 res = res.concat(backHalf);
35760 return utils.encode(res, enc);
35763 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35766 var hash = require('hash.js');
35767 var elliptic = require('../../elliptic');
35768 var utils = elliptic.utils;
35769 var assert = utils.assert;
35770 var parseBytes = utils.parseBytes;
35771 var KeyPair = require('./key');
35772 var Signature = require('./signature');
35774 function EDDSA(curve) {
35775 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35777 if (!(this instanceof EDDSA))
35778 return new EDDSA(curve);
35780 var curve = elliptic.curves[curve].curve;
35781 this.curve = curve;
35783 this.g.precompute(curve.n.bitLength() +
1);
35785 this.pointClass = curve.point().constructor;
35786 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35787 this.hash = hash.sha512;
35790 module.exports = EDDSA;
35793 * @param {Array|String} message - message bytes
35794 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35795 * @returns {Signature} - signature
35797 EDDSA.prototype.sign = function sign(message, secret) {
35798 message = parseBytes(message);
35799 var key = this.keyFromSecret(secret);
35800 var r = this.hashInt(key.messagePrefix(), message);
35801 var R = this.g.mul(r);
35802 var Rencoded = this.encodePoint(R);
35803 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35805 var S = r.add(s_).umod(this.curve.n);
35806 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35810 * @param {Array} message - message bytes
35811 * @param {Array|String|Signature} sig - sig bytes
35812 * @param {Array|String|Point|KeyPair} pub - public key
35813 * @returns {Boolean} - true if public key matches sig of message
35815 EDDSA.prototype.verify = function verify(message, sig, pub) {
35816 message = parseBytes(message);
35817 sig = this.makeSignature(sig);
35818 var key = this.keyFromPublic(pub);
35819 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35820 var SG = this.g.mul(sig.S());
35821 var RplusAh = sig.R().add(key.pub().mul(h));
35822 return RplusAh.eq(SG);
35825 EDDSA.prototype.hashInt = function hashInt() {
35826 var hash = this.hash();
35827 for (var i =
0; i < arguments.length; i++)
35828 hash.update(arguments[i]);
35829 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35832 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35833 return KeyPair.fromPublic(this, pub);
35836 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35837 return KeyPair.fromSecret(this, secret);
35840 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35841 if (sig instanceof Signature)
35843 return new Signature(this, sig);
35847 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35849 * EDDSA defines methods for encoding and decoding points and integers. These are
35850 * helper convenience methods, that pass along to utility functions implied
35854 EDDSA.prototype.encodePoint = function encodePoint(point) {
35855 var enc = point.getY().toArray('le', this.encodingLength);
35856 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35860 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35861 bytes = utils.parseBytes(bytes);
35863 var lastIx = bytes.length -
1;
35864 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35865 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35867 var y = utils.intFromLE(normed);
35868 return this.curve.pointFromY(y, xIsOdd);
35871 EDDSA.prototype.encodeInt = function encodeInt(num) {
35872 return num.toArray('le', this.encodingLength);
35875 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35876 return utils.intFromLE(bytes);
35879 EDDSA.prototype.isPoint = function isPoint(val) {
35880 return val instanceof this.pointClass;
35883 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35886 var elliptic = require('../../elliptic');
35887 var utils = elliptic.utils;
35888 var assert = utils.assert;
35889 var parseBytes = utils.parseBytes;
35890 var cachedProperty = utils.cachedProperty;
35893 * @param {EDDSA} eddsa - instance
35894 * @param {Object} params - public/private key parameters
35896 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35897 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35898 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35901 function KeyPair(eddsa, params) {
35902 this.eddsa = eddsa;
35903 this._secret = parseBytes(params.secret);
35904 if (eddsa.isPoint(params.pub))
35905 this._pub = params.pub;
35907 this._pubBytes = parseBytes(params.pub);
35910 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35911 if (pub instanceof KeyPair)
35913 return new KeyPair(eddsa, { pub: pub });
35916 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35917 if (secret instanceof KeyPair)
35919 return new KeyPair(eddsa, { secret: secret });
35922 KeyPair.prototype.secret = function secret() {
35923 return this._secret;
35926 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35927 return this.eddsa.encodePoint(this.pub());
35930 cachedProperty(KeyPair, 'pub', function pub() {
35931 if (this._pubBytes)
35932 return this.eddsa.decodePoint(this._pubBytes);
35933 return this.eddsa.g.mul(this.priv());
35936 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35937 var eddsa = this.eddsa;
35938 var hash = this.hash();
35939 var lastIx = eddsa.encodingLength -
1;
35941 var a = hash.slice(
0, eddsa.encodingLength);
35949 cachedProperty(KeyPair, 'priv', function priv() {
35950 return this.eddsa.decodeInt(this.privBytes());
35953 cachedProperty(KeyPair, 'hash', function hash() {
35954 return this.eddsa.hash().update(this.secret()).digest();
35957 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
35958 return this.hash().slice(this.eddsa.encodingLength);
35961 KeyPair.prototype.sign = function sign(message) {
35962 assert(this._secret, 'KeyPair can only verify');
35963 return this.eddsa.sign(message, this);
35966 KeyPair.prototype.verify = function verify(message, sig) {
35967 return this.eddsa.verify(message, sig, this);
35970 KeyPair.prototype.getSecret = function getSecret(enc) {
35971 assert(this._secret, 'KeyPair is public only');
35972 return utils.encode(this.secret(), enc);
35975 KeyPair.prototype.getPublic = function getPublic(enc) {
35976 return utils.encode(this.pubBytes(), enc);
35979 module.exports = KeyPair;
35981 },{"../../elliptic":
39}],
51:[function(require,module,exports){
35984 var BN = require('bn.js');
35985 var elliptic = require('../../elliptic');
35986 var utils = elliptic.utils;
35987 var assert = utils.assert;
35988 var cachedProperty = utils.cachedProperty;
35989 var parseBytes = utils.parseBytes;
35992 * @param {EDDSA} eddsa - eddsa instance
35993 * @param {Array
<Bytes>|Object} sig -
35994 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
35995 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
35996 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
35997 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
35999 function Signature(eddsa, sig) {
36000 this.eddsa = eddsa;
36002 if (typeof sig !== 'object')
36003 sig = parseBytes(sig);
36005 if (Array.isArray(sig)) {
36007 R: sig.slice(
0, eddsa.encodingLength),
36008 S: sig.slice(eddsa.encodingLength)
36012 assert(sig.R && sig.S, 'Signature without R or S');
36014 if (eddsa.isPoint(sig.R))
36016 if (sig.S instanceof BN)
36019 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36020 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36023 cachedProperty(Signature, 'S', function S() {
36024 return this.eddsa.decodeInt(this.Sencoded());
36027 cachedProperty(Signature, 'R', function R() {
36028 return this.eddsa.decodePoint(this.Rencoded());
36031 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36032 return this.eddsa.encodePoint(this.R());
36035 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36036 return this.eddsa.encodeInt(this.S());
36039 Signature.prototype.toBytes = function toBytes() {
36040 return this.Rencoded().concat(this.Sencoded());
36043 Signature.prototype.toHex = function toHex() {
36044 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36047 module.exports = Signature;
36049 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36052 var hash = require('hash.js');
36053 var elliptic = require('../elliptic');
36054 var utils = elliptic.utils;
36055 var assert = utils.assert;
36057 function HmacDRBG(options) {
36058 if (!(this instanceof HmacDRBG))
36059 return new HmacDRBG(options);
36060 this.hash = options.hash;
36061 this.predResist = !!options.predResist;
36063 this.outLen = this.hash.outSize;
36064 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36066 this.reseed = null;
36067 this.reseedInterval = null;
36071 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36072 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36073 var pers = utils.toArray(options.pers, options.persEnc);
36074 assert(entropy.length
>= (this.minEntropy /
8),
36075 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36076 this._init(entropy, nonce, pers);
36078 module.exports = HmacDRBG;
36080 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36081 var seed = entropy.concat(nonce).concat(pers);
36083 this.K = new Array(this.outLen /
8);
36084 this.V = new Array(this.outLen /
8);
36085 for (var i =
0; i < this.V.length; i++) {
36090 this._update(seed);
36092 this.reseedInterval =
0x1000000000000; //
2^
48
36095 HmacDRBG.prototype._hmac = function hmac() {
36096 return new hash.hmac(this.hash, this.K);
36099 HmacDRBG.prototype._update = function update(seed) {
36100 var kmac = this._hmac()
36104 kmac = kmac.update(seed);
36105 this.K = kmac.digest();
36106 this.V = this._hmac().update(this.V).digest();
36110 this.K = this._hmac()
36115 this.V = this._hmac().update(this.V).digest();
36118 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36119 // Optional entropy enc
36120 if (typeof entropyEnc !== 'string') {
36126 entropy = utils.toBuffer(entropy, entropyEnc);
36127 add = utils.toBuffer(add, addEnc);
36129 assert(entropy.length
>= (this.minEntropy /
8),
36130 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36132 this._update(entropy.concat(add || []));
36136 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36137 if (this.reseed
> this.reseedInterval)
36138 throw new Error('Reseed is required');
36140 // Optional encoding
36141 if (typeof enc !== 'string') {
36147 // Optional additional data
36149 add = utils.toArray(add, addEnc);
36154 while (temp.length < len) {
36155 this.V = this._hmac().update(this.V).digest();
36156 temp = temp.concat(this.V);
36159 var res = temp.slice(
0, len);
36162 return utils.encode(res, enc);
36165 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36171 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36172 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36175 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36176 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36179 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36180 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36183 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36184 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36187 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36188 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36191 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36192 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36195 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36196 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36199 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36200 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36203 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36204 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36207 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36208 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36211 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36212 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36215 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36216 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36219 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36220 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36223 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36224 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36227 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36228 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36231 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36232 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36235 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36236 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36239 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36240 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36243 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36244 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36247 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36248 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36251 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36252 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36255 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36256 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36259 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36260 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36263 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36264 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36267 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36268 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36271 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36272 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36275 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36276 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36279 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36280 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36283 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36284 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36287 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36288 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36291 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36292 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36295 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36296 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36299 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36300 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36303 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36304 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36307 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36308 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36311 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36312 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36315 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36316 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36319 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36320 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36323 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36324 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36327 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36328 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36331 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36332 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36335 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36336 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36339 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36340 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36343 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36344 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36347 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36348 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36351 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36352 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36355 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36356 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36359 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36360 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36363 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36364 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36367 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36368 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36371 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36372 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36375 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36376 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36379 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36380 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36383 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36384 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36387 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36388 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36391 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36392 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36395 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36396 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36399 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36400 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36403 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36404 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36407 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36408 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36411 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36412 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36415 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36416 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36419 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36420 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36423 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36424 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36427 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36428 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36436 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36437 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36440 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36441 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36444 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36445 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36448 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36449 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36452 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36453 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36456 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36457 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36460 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36461 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36464 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36465 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36468 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36469 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36472 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36473 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36476 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36477 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36480 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36481 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36484 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36485 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36488 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36489 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36492 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36493 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36496 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36497 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36500 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36501 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36504 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36505 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36508 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36509 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36512 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36513 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36516 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36517 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36520 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36521 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36524 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36525 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36528 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36529 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36532 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36533 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36536 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36537 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36540 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36541 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36544 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36545 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36548 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36549 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36552 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36553 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36556 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36557 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36560 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36561 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36564 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36565 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36568 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36569 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36572 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36573 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36576 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36577 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36580 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36581 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36584 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36585 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36588 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36589 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36592 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36593 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36596 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36597 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36600 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36601 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36604 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36605 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36608 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36609 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36612 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36613 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36616 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36617 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36620 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36621 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36624 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36625 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36628 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36629 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36632 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36633 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36636 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36637 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36640 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36641 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36644 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36645 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36648 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36649 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36652 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36653 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36656 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36657 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36660 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36661 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36664 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36665 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36668 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36669 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36672 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36673 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36676 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36677 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36680 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36681 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36684 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36685 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36688 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36689 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36692 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36693 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36696 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36697 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36700 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36701 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36704 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36705 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36708 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36709 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36712 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36713 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36716 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36717 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36720 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36721 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36724 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36725 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36728 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36729 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36732 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36733 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36736 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36737 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36740 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36741 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36744 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36745 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36748 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36749 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36752 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36753 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36756 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36757 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36760 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36761 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36764 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36765 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36768 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36769 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36772 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36773 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36776 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36777 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36780 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36781 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36784 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36785 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36788 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36789 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36792 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36793 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36796 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36797 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36800 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36801 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36804 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36805 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36808 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36809 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36812 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36813 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36816 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36817 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36820 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36821 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36824 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36825 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36828 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36829 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36832 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36833 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36836 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36837 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36840 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36841 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36844 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36845 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36848 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36849 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36852 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36853 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36856 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36857 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36860 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36861 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36864 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36865 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36868 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36869 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36872 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36873 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36876 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36877 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36880 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36881 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36884 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36885 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36888 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36889 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36892 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36893 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36896 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36897 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36900 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36901 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36904 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36905 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36908 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36909 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36912 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36913 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36916 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36917 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36920 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36921 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36924 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36925 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36928 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36929 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36932 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36933 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36936 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36937 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36940 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36941 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36947 },{}],
54:[function(require,module,exports){
36950 var utils = exports;
36951 var BN = require('bn.js');
36953 utils.assert = function assert(val, msg) {
36955 throw new Error(msg || 'Assertion failed');
36958 function toArray(msg, enc) {
36959 if (Array.isArray(msg))
36960 return msg.slice();
36964 if (typeof msg !== 'string') {
36965 for (var i =
0; i < msg.length; i++)
36966 res[i] = msg[i] |
0;
36970 for (var i =
0; i < msg.length; i++) {
36971 var c = msg.charCodeAt(i);
36979 } else if (enc === 'hex') {
36980 msg = msg.replace(/[^a-z0-
9]+/ig, '');
36981 if (msg.length %
2 !==
0)
36983 for (var i =
0; i < msg.length; i +=
2)
36984 res.push(parseInt(msg[i] + msg[i +
1],
16));
36988 utils.toArray = toArray;
36990 function zero2(word) {
36991 if (word.length ===
1)
36996 utils.zero2 = zero2;
36998 function toHex(msg) {
37000 for (var i =
0; i < msg.length; i++)
37001 res += zero2(msg[i].toString(
16));
37004 utils.toHex = toHex;
37006 utils.encode = function encode(arr, enc) {
37013 // Represent num in a w-NAF form
37014 function getNAF(num, w) {
37016 var ws =
1 << (w +
1);
37017 var k = num.clone();
37018 while (k.cmpn(
1)
>=
0) {
37021 var mod = k.andln(ws -
1);
37022 if (mod
> (ws
>> 1) -
1)
37023 z = (ws
>> 1) - mod;
37032 // Optimization, shift by word if possible
37033 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37034 for (var i =
1; i < shift; i++)
37041 utils.getNAF = getNAF;
37043 // Represent k1, k2 in a Joint Sparse Form
37044 function getJSF(k1, k2) {
37054 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37057 var m14 = (k1.andln(
3) + d1) &
3;
37058 var m24 = (k2.andln(
3) + d2) &
3;
37064 if ((m14 &
1) ===
0) {
37067 var m8 = (k1.andln(
7) + d1) &
7;
37068 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37076 if ((m24 &
1) ===
0) {
37079 var m8 = (k2.andln(
7) + d2) &
7;
37080 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37088 if (
2 * d1 === u1 +
1)
37090 if (
2 * d2 === u2 +
1)
37098 utils.getJSF = getJSF;
37100 function cachedProperty(obj, name, computer) {
37101 var key = '_' + name;
37102 obj.prototype[name] = function cachedProperty() {
37103 return this[key] !== undefined ? this[key] :
37104 this[key] = computer.call(this);
37107 utils.cachedProperty = cachedProperty;
37109 function parseBytes(bytes) {
37110 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37113 utils.parseBytes = parseBytes;
37115 function intFromLE(bytes) {
37116 return new BN(bytes, 'hex', 'le');
37118 utils.intFromLE = intFromLE;
37121 },{
"bn.js":
33}],
55:[function(require,module,exports){
37126 "raw":
"elliptic@^6.2.3",
37128 "escapedName":
"elliptic",
37129 "name":
"elliptic",
37130 "rawSpec":
"^6.2.3",
37131 "spec":
">=6.2.3 <7.0.0",
37134 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37137 "_from":
"elliptic@>=6.2.3 <7.0.0",
37138 "_id":
"elliptic@6.3.3",
37140 "_location":
"/elliptic",
37141 "_nodeVersion":
"7.0.0",
37142 "_npmOperationalInternal": {
37143 "host":
"packages-18-east.internal.npmjs.com",
37144 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37148 "email":
"fedor@indutny.com"
37150 "_npmVersion":
"3.10.8",
37151 "_phantomChildren": {},
37153 "raw":
"elliptic@^6.2.3",
37155 "escapedName":
"elliptic",
37156 "name":
"elliptic",
37157 "rawSpec":
"^6.2.3",
37158 "spec":
">=6.2.3 <7.0.0",
37162 "/browserify-sign",
37166 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37167 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37168 "_shrinkwrap": null,
37169 "_spec":
"elliptic@^6.2.3",
37170 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37172 "name":
"Fedor Indutny",
37173 "email":
"fedor@indutny.com"
37176 "url":
"https://github.com/indutny/elliptic/issues"
37180 "brorand":
"^1.0.1",
37181 "hash.js":
"^1.0.0",
37182 "inherits":
"^2.0.1"
37184 "description":
"EC cryptography",
37185 "devDependencies": {
37187 "coveralls":
"^2.11.3",
37189 "grunt-browserify":
"^5.0.0",
37190 "grunt-cli":
"^1.2.0",
37191 "grunt-contrib-connect":
"^1.0.0",
37192 "grunt-contrib-copy":
"^1.0.0",
37193 "grunt-contrib-uglify":
"^1.0.1",
37194 "grunt-mocha-istanbul":
"^3.0.1",
37195 "grunt-saucelabs":
"^8.6.2",
37196 "istanbul":
"^0.4.2",
37198 "jshint":
"^2.6.0",
37203 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37204 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37209 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37210 "homepage":
"https://github.com/indutny/elliptic",
37218 "main":
"lib/elliptic.js",
37222 "email":
"fedor@indutny.com"
37225 "name":
"elliptic",
37226 "optionalDependencies": {},
37227 "readme":
"ERROR: No README data found!",
37230 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37233 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37234 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37235 "lint":
"npm run jscs && npm run jshint",
37236 "test":
"npm run lint && npm run unit",
37237 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37238 "version":
"grunt dist && git add dist/"
37243 },{}],
56:[function(require,module,exports){
37244 (function (Buffer){
37247 var isHexPrefixed = require('is-hex-prefixed');
37248 var stripHexPrefix = require('strip-hex-prefix');
37251 * Pads a `String` to have an even length
37252 * @param {String} value
37253 * @return {String} output
37255 function padToEven(value) {
37256 var a = value; // eslint-disable-line
37258 if (typeof a !== 'string') {
37259 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37262 if (a.length %
2) {
37270 * Converts a `Number` into a hex `String`
37271 * @param {Number} i
37274 function intToHex(i) {
37275 var hex = i.toString(
16); // eslint-disable-line
37277 return '
0x' + padToEven(hex);
37281 * Converts an `Number` to a `Buffer`
37282 * @param {Number} i
37285 function intToBuffer(i) {
37286 var hex = intToHex(i);
37288 return new Buffer(hex.slice(
2), 'hex');
37292 * Get the binary size of a string
37293 * @param {String} str
37296 function getBinarySize(str) {
37297 if (typeof str !== 'string') {
37298 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37301 return Buffer.byteLength(str, 'utf8');
37305 * Returns TRUE if the first specified array contains all elements
37306 * from the second one. FALSE otherwise.
37308 * @param {array} superset
37309 * @param {array} subset
37311 * @returns {boolean}
37313 function arrayContainsArray(superset, subset, some) {
37314 if (Array.isArray(superset) !== true) {
37315 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37317 if (Array.isArray(subset) !== true) {
37318 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37321 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37322 return superset.indexOf(value)
>=
0;
37327 * Should be called to get utf8 from it's hex representation
37330 * @param {String} string in hex
37331 * @returns {String} ascii string representation of hex value
37333 function toUtf8(hex) {
37334 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37336 return bufferValue.toString('utf8');
37340 * Should be called to get ascii from it's hex representation
37343 * @param {String} string in hex
37344 * @returns {String} ascii string representation of hex value
37346 function toAscii(hex) {
37347 var str = ''; // eslint-disable-line
37349 l = hex.length; // eslint-disable-line
37351 if (hex.substring(
0,
2) === '
0x') {
37355 for (; i < l; i +=
2) {
37356 var code = parseInt(hex.substr(i,
2),
16);
37357 str += String.fromCharCode(code);
37364 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37367 * @param {String} string
37368 * @param {Number} optional padding
37369 * @returns {String} hex representation of input string
37371 function fromUtf8(stringValue) {
37372 var str = new Buffer(stringValue, 'utf8');
37374 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37378 * Should be called to get hex representation (prefixed by
0x) of ascii string
37380 * @method fromAscii
37381 * @param {String} string
37382 * @param {Number} optional padding
37383 * @returns {String} hex representation of input string
37385 function fromAscii(stringValue) {
37386 var hex = ''; // eslint-disable-line
37387 for (var i =
0; i < stringValue.length; i++) {
37388 // eslint-disable-line
37389 var code = stringValue.charCodeAt(i);
37390 var n = code.toString(
16);
37391 hex += n.length <
2 ? '
0' + n : n;
37398 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37400 * @method getKeys get specific key from inner object array of objects
37401 * @param {String} params
37402 * @param {String} key
37403 * @param {Boolean} allowEmpty
37404 * @returns {Array} output just a simple array of output keys
37406 function getKeys(params, key, allowEmpty) {
37407 if (!Array.isArray(params)) {
37408 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37410 if (typeof key !== 'string') {
37411 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37414 var result = []; // eslint-disable-line
37416 for (var i =
0; i < params.length; i++) {
37417 // eslint-disable-line
37418 var value = params[i][key]; // eslint-disable-line
37419 if (allowEmpty && !value) {
37421 } else if (typeof value !== 'string') {
37422 throw new Error('invalid abi');
37424 result.push(value);
37431 * Is the string a hex string.
37433 * @method check if string is hex string of specific length
37434 * @param {String} value
37435 * @param {Number} length
37436 * @returns {Boolean} output the string is a hex string
37438 function isHexString(value, length) {
37439 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37443 if (length && value.length !==
2 +
2 * length) {
37451 arrayContainsArray: arrayContainsArray,
37452 intToBuffer: intToBuffer,
37453 getBinarySize: getBinarySize,
37454 isHexPrefixed: isHexPrefixed,
37455 stripHexPrefix: stripHexPrefix,
37456 padToEven: padToEven,
37457 intToHex: intToHex,
37458 fromAscii: fromAscii,
37459 fromUtf8: fromUtf8,
37463 isHexString: isHexString
37465 }).call(this,require("buffer").Buffer)
37466 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37467 var hash = exports;
37469 hash.utils = require('./hash/utils');
37470 hash.common = require('./hash/common');
37471 hash.sha = require('./hash/sha');
37472 hash.ripemd = require('./hash/ripemd');
37473 hash.hmac = require('./hash/hmac');
37475 // Proxy hash functions to the main object
37476 hash.sha1 = hash.sha.sha1;
37477 hash.sha256 = hash.sha.sha256;
37478 hash.sha224 = hash.sha.sha224;
37479 hash.sha384 = hash.sha.sha384;
37480 hash.sha512 = hash.sha.sha512;
37481 hash.ripemd160 = hash.ripemd.ripemd160;
37483 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37484 var hash = require('../hash');
37485 var utils = hash.utils;
37486 var assert = utils.assert;
37488 function BlockHash() {
37489 this.pending = null;
37490 this.pendingTotal =
0;
37491 this.blockSize = this.constructor.blockSize;
37492 this.outSize = this.constructor.outSize;
37493 this.hmacStrength = this.constructor.hmacStrength;
37494 this.padLength = this.constructor.padLength /
8;
37495 this.endian = 'big';
37497 this._delta8 = this.blockSize /
8;
37498 this._delta32 = this.blockSize /
32;
37500 exports.BlockHash = BlockHash;
37502 BlockHash.prototype.update = function update(msg, enc) {
37503 // Convert message to array, pad it, and join into
32bit blocks
37504 msg = utils.toArray(msg, enc);
37506 this.pending = msg;
37508 this.pending = this.pending.concat(msg);
37509 this.pendingTotal += msg.length;
37511 // Enough data, try updating
37512 if (this.pending.length
>= this._delta8) {
37513 msg = this.pending;
37515 // Process pending data in blocks
37516 var r = msg.length % this._delta8;
37517 this.pending = msg.slice(msg.length - r, msg.length);
37518 if (this.pending.length ===
0)
37519 this.pending = null;
37521 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37522 for (var i =
0; i < msg.length; i += this._delta32)
37523 this._update(msg, i, i + this._delta32);
37529 BlockHash.prototype.digest = function digest(enc) {
37530 this.update(this._pad());
37531 assert(this.pending === null);
37533 return this._digest(enc);
37536 BlockHash.prototype._pad = function pad() {
37537 var len = this.pendingTotal;
37538 var bytes = this._delta8;
37539 var k = bytes - ((len + this.padLength) % bytes);
37540 var res = new Array(k + this.padLength);
37542 for (var i =
1; i < k; i++)
37547 if (this.endian === 'big') {
37548 for (var t =
8; t < this.padLength; t++)
37555 res[i++] = (len
>>> 24) &
0xff;
37556 res[i++] = (len
>>> 16) &
0xff;
37557 res[i++] = (len
>>> 8) &
0xff;
37558 res[i++] = len &
0xff;
37560 res[i++] = len &
0xff;
37561 res[i++] = (len
>>> 8) &
0xff;
37562 res[i++] = (len
>>> 16) &
0xff;
37563 res[i++] = (len
>>> 24) &
0xff;
37569 for (var t =
8; t < this.padLength; t++)
37576 },{
"../hash":
57}],
59:[function(require,module,exports){
37577 var hmac = exports;
37579 var hash = require('../hash');
37580 var utils = hash.utils;
37581 var assert = utils.assert;
37583 function Hmac(hash, key, enc) {
37584 if (!(this instanceof Hmac))
37585 return new Hmac(hash, key, enc);
37587 this.blockSize = hash.blockSize /
8;
37588 this.outSize = hash.outSize /
8;
37592 this._init(utils.toArray(key, enc));
37594 module.exports = Hmac;
37596 Hmac.prototype._init = function init(key) {
37597 // Shorten key, if needed
37598 if (key.length
> this.blockSize)
37599 key = new this.Hash().update(key).digest();
37600 assert(key.length <= this.blockSize);
37602 // Add padding to key
37603 for (var i = key.length; i < this.blockSize; i++)
37606 for (var i =
0; i < key.length; i++)
37608 this.inner = new this.Hash().update(key);
37610 //
0x36 ^
0x5c =
0x6a
37611 for (var i =
0; i < key.length; i++)
37613 this.outer = new this.Hash().update(key);
37616 Hmac.prototype.update = function update(msg, enc) {
37617 this.inner.update(msg, enc);
37621 Hmac.prototype.digest = function digest(enc) {
37622 this.outer.update(this.inner.digest());
37623 return this.outer.digest(enc);
37626 },{"../hash":
57}],
60:[function(require,module,exports){
37627 var hash = require('../hash');
37628 var utils = hash.utils;
37630 var rotl32 = utils.rotl32;
37631 var sum32 = utils.sum32;
37632 var sum32_3 = utils.sum32_3;
37633 var sum32_4 = utils.sum32_4;
37634 var BlockHash = hash.common.BlockHash;
37636 function RIPEMD160() {
37637 if (!(this instanceof RIPEMD160))
37638 return new RIPEMD160();
37640 BlockHash.call(this);
37642 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37643 this.endian = 'little';
37645 utils.inherits(RIPEMD160, BlockHash);
37646 exports.ripemd160 = RIPEMD160;
37648 RIPEMD160.blockSize =
512;
37649 RIPEMD160.outSize =
160;
37650 RIPEMD160.hmacStrength =
192;
37651 RIPEMD160.padLength =
64;
37653 RIPEMD160.prototype._update = function update(msg, start) {
37664 for (var j =
0; j <
80; j++) {
37667 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37677 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37682 Dh = rotl32(Ch,
10);
37686 T = sum32_3(this.h[
1], C, Dh);
37687 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37688 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37689 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37690 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37694 RIPEMD160.prototype._digest = function digest(enc) {
37696 return utils.toHex32(this.h, 'little');
37698 return utils.split32(this.h, 'little');
37701 function f(j, x, y, z) {
37705 return (x & y) | ((~x) & z);
37707 return (x | (~y)) ^ z;
37709 return (x & z) | (y & (~z));
37711 return x ^ (y | (~z));
37741 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37742 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37743 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37744 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37745 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37749 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37750 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37751 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37752 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37753 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37757 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37758 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37759 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37760 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37761 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37765 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37766 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37767 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37768 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37769 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37772 },{"../hash":
57}],
61:[function(require,module,exports){
37773 var hash = require('../hash');
37774 var utils = hash.utils;
37775 var assert = utils.assert;
37777 var rotr32 = utils.rotr32;
37778 var rotl32 = utils.rotl32;
37779 var sum32 = utils.sum32;
37780 var sum32_4 = utils.sum32_4;
37781 var sum32_5 = utils.sum32_5;
37782 var rotr64_hi = utils.rotr64_hi;
37783 var rotr64_lo = utils.rotr64_lo;
37784 var shr64_hi = utils.shr64_hi;
37785 var shr64_lo = utils.shr64_lo;
37786 var sum64 = utils.sum64;
37787 var sum64_hi = utils.sum64_hi;
37788 var sum64_lo = utils.sum64_lo;
37789 var sum64_4_hi = utils.sum64_4_hi;
37790 var sum64_4_lo = utils.sum64_4_lo;
37791 var sum64_5_hi = utils.sum64_5_hi;
37792 var sum64_5_lo = utils.sum64_5_lo;
37793 var BlockHash = hash.common.BlockHash;
37796 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37797 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37798 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37799 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37800 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37801 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37802 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37803 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37804 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37805 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37806 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37807 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37808 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37809 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37810 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37811 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37815 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37816 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37817 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37818 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37819 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37820 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37821 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37822 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37823 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37824 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37825 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37826 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37827 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37828 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37829 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37830 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37831 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37832 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37833 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37834 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37835 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37836 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37837 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37838 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37839 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37840 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37841 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37842 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37843 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37844 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37845 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37846 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37847 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37848 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37849 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37850 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37851 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37852 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37853 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37854 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37858 0x5A827999,
0x6ED9EBA1,
37859 0x8F1BBCDC,
0xCA62C1D6
37862 function SHA256() {
37863 if (!(this instanceof SHA256))
37864 return new SHA256();
37866 BlockHash.call(this);
37867 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37868 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37870 this.W = new Array(
64);
37872 utils.inherits(SHA256, BlockHash);
37873 exports.sha256 = SHA256;
37875 SHA256.blockSize =
512;
37876 SHA256.outSize =
256;
37877 SHA256.hmacStrength =
192;
37878 SHA256.padLength =
64;
37880 SHA256.prototype._update = function _update(msg, start) {
37883 for (var i =
0; i <
16; i++)
37884 W[i] = msg[start + i];
37885 for (; i < W.length; i++)
37886 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37897 assert(this.k.length === W.length);
37898 for (var i =
0; i < W.length; i++) {
37899 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37900 var T2 = sum32(s0_256(a), maj32(a, b, c));
37911 this.h[
0] = sum32(this.h[
0], a);
37912 this.h[
1] = sum32(this.h[
1], b);
37913 this.h[
2] = sum32(this.h[
2], c);
37914 this.h[
3] = sum32(this.h[
3], d);
37915 this.h[
4] = sum32(this.h[
4], e);
37916 this.h[
5] = sum32(this.h[
5], f);
37917 this.h[
6] = sum32(this.h[
6], g);
37918 this.h[
7] = sum32(this.h[
7], h);
37921 SHA256.prototype._digest = function digest(enc) {
37923 return utils.toHex32(this.h, 'big');
37925 return utils.split32(this.h, 'big');
37928 function SHA224() {
37929 if (!(this instanceof SHA224))
37930 return new SHA224();
37933 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37934 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37936 utils.inherits(SHA224, SHA256);
37937 exports.sha224 = SHA224;
37939 SHA224.blockSize =
512;
37940 SHA224.outSize =
224;
37941 SHA224.hmacStrength =
192;
37942 SHA224.padLength =
64;
37944 SHA224.prototype._digest = function digest(enc) {
37945 // Just truncate output
37947 return utils.toHex32(this.h.slice(
0,
7), 'big');
37949 return utils.split32(this.h.slice(
0,
7), 'big');
37952 function SHA512() {
37953 if (!(this instanceof SHA512))
37954 return new SHA512();
37956 BlockHash.call(this);
37957 this.h = [
0x6a09e667,
0xf3bcc908,
37958 0xbb67ae85,
0x84caa73b,
37959 0x3c6ef372,
0xfe94f82b,
37960 0xa54ff53a,
0x5f1d36f1,
37961 0x510e527f,
0xade682d1,
37962 0x9b05688c,
0x2b3e6c1f,
37963 0x1f83d9ab,
0xfb41bd6b,
37964 0x5be0cd19,
0x137e2179 ];
37966 this.W = new Array(
160);
37968 utils.inherits(SHA512, BlockHash);
37969 exports.sha512 = SHA512;
37971 SHA512.blockSize =
1024;
37972 SHA512.outSize =
512;
37973 SHA512.hmacStrength =
192;
37974 SHA512.padLength =
128;
37976 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
37979 //
32 x
32bit words
37980 for (var i =
0; i <
32; i++)
37981 W[i] = msg[start + i];
37982 for (; i < W.length; i +=
2) {
37983 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
37984 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
37985 var c1_hi = W[i -
14]; // i -
7
37986 var c1_lo = W[i -
13];
37987 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
37988 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
37989 var c3_hi = W[i -
32]; // i -
16
37990 var c3_lo = W[i -
31];
37992 W[i] = sum64_4_hi(c0_hi, c0_lo,
37996 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38003 SHA512.prototype._update = function _update(msg, start) {
38004 this._prepareBlock(msg, start);
38008 var ah = this.h[
0];
38009 var al = this.h[
1];
38010 var bh = this.h[
2];
38011 var bl = this.h[
3];
38012 var ch = this.h[
4];
38013 var cl = this.h[
5];
38014 var dh = this.h[
6];
38015 var dl = this.h[
7];
38016 var eh = this.h[
8];
38017 var el = this.h[
9];
38018 var fh = this.h[
10];
38019 var fl = this.h[
11];
38020 var gh = this.h[
12];
38021 var gl = this.h[
13];
38022 var hh = this.h[
14];
38023 var hl = this.h[
15];
38025 assert(this.k.length === W.length);
38026 for (var i =
0; i < W.length; i +=
2) {
38029 var c1_hi = s1_512_hi(eh, el);
38030 var c1_lo = s1_512_lo(eh, el);
38031 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38032 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38033 var c3_hi = this.k[i];
38034 var c3_lo = this.k[i +
1];
38036 var c4_lo = W[i +
1];
38038 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38043 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38049 var c0_hi = s0_512_hi(ah, al);
38050 var c0_lo = s0_512_lo(ah, al);
38051 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38052 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38054 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38055 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38066 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38067 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38078 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38079 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38082 sum64(this.h,
0, ah, al);
38083 sum64(this.h,
2, bh, bl);
38084 sum64(this.h,
4, ch, cl);
38085 sum64(this.h,
6, dh, dl);
38086 sum64(this.h,
8, eh, el);
38087 sum64(this.h,
10, fh, fl);
38088 sum64(this.h,
12, gh, gl);
38089 sum64(this.h,
14, hh, hl);
38092 SHA512.prototype._digest = function digest(enc) {
38094 return utils.toHex32(this.h, 'big');
38096 return utils.split32(this.h, 'big');
38099 function SHA384() {
38100 if (!(this instanceof SHA384))
38101 return new SHA384();
38104 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38105 0x629a292a,
0x367cd507,
38106 0x9159015a,
0x3070dd17,
38107 0x152fecd8,
0xf70e5939,
38108 0x67332667,
0xffc00b31,
38109 0x8eb44a87,
0x68581511,
38110 0xdb0c2e0d,
0x64f98fa7,
38111 0x47b5481d,
0xbefa4fa4 ];
38113 utils.inherits(SHA384, SHA512);
38114 exports.sha384 = SHA384;
38116 SHA384.blockSize =
1024;
38117 SHA384.outSize =
384;
38118 SHA384.hmacStrength =
192;
38119 SHA384.padLength =
128;
38121 SHA384.prototype._digest = function digest(enc) {
38123 return utils.toHex32(this.h.slice(
0,
12), 'big');
38125 return utils.split32(this.h.slice(
0,
12), 'big');
38129 if (!(this instanceof SHA1))
38132 BlockHash.call(this);
38133 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38134 0x10325476,
0xc3d2e1f0 ];
38135 this.W = new Array(
80);
38138 utils.inherits(SHA1, BlockHash);
38139 exports.sha1 = SHA1;
38141 SHA1.blockSize =
512;
38142 SHA1.outSize =
160;
38143 SHA1.hmacStrength =
80;
38144 SHA1.padLength =
64;
38146 SHA1.prototype._update = function _update(msg, start) {
38149 for (var i =
0; i <
16; i++)
38150 W[i] = msg[start + i];
38152 for(; i < W.length; i++)
38153 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38161 for (var i =
0; i < W.length; i++) {
38162 var s = ~~(i /
20);
38163 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38171 this.h[
0] = sum32(this.h[
0], a);
38172 this.h[
1] = sum32(this.h[
1], b);
38173 this.h[
2] = sum32(this.h[
2], c);
38174 this.h[
3] = sum32(this.h[
3], d);
38175 this.h[
4] = sum32(this.h[
4], e);
38178 SHA1.prototype._digest = function digest(enc) {
38180 return utils.toHex32(this.h, 'big');
38182 return utils.split32(this.h, 'big');
38185 function ch32(x, y, z) {
38186 return (x & y) ^ ((~x) & z);
38189 function maj32(x, y, z) {
38190 return (x & y) ^ (x & z) ^ (y & z);
38193 function p32(x, y, z) {
38197 function s0_256(x) {
38198 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38201 function s1_256(x) {
38202 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38205 function g0_256(x) {
38206 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38209 function g1_256(x) {
38210 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38213 function ft_1(s, x, y, z) {
38215 return ch32(x, y, z);
38216 if (s ===
1 || s ===
3)
38217 return p32(x, y, z);
38219 return maj32(x, y, z);
38222 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38223 var r = (xh & yh) ^ ((~xh) & zh);
38229 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38230 var r = (xl & yl) ^ ((~xl) & zl);
38236 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38237 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38243 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38244 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38250 function s0_512_hi(xh, xl) {
38251 var c0_hi = rotr64_hi(xh, xl,
28);
38252 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38253 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38255 var r = c0_hi ^ c1_hi ^ c2_hi;
38261 function s0_512_lo(xh, xl) {
38262 var c0_lo = rotr64_lo(xh, xl,
28);
38263 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38264 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38266 var r = c0_lo ^ c1_lo ^ c2_lo;
38272 function s1_512_hi(xh, xl) {
38273 var c0_hi = rotr64_hi(xh, xl,
14);
38274 var c1_hi = rotr64_hi(xh, xl,
18);
38275 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38277 var r = c0_hi ^ c1_hi ^ c2_hi;
38283 function s1_512_lo(xh, xl) {
38284 var c0_lo = rotr64_lo(xh, xl,
14);
38285 var c1_lo = rotr64_lo(xh, xl,
18);
38286 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38288 var r = c0_lo ^ c1_lo ^ c2_lo;
38294 function g0_512_hi(xh, xl) {
38295 var c0_hi = rotr64_hi(xh, xl,
1);
38296 var c1_hi = rotr64_hi(xh, xl,
8);
38297 var c2_hi = shr64_hi(xh, xl,
7);
38299 var r = c0_hi ^ c1_hi ^ c2_hi;
38305 function g0_512_lo(xh, xl) {
38306 var c0_lo = rotr64_lo(xh, xl,
1);
38307 var c1_lo = rotr64_lo(xh, xl,
8);
38308 var c2_lo = shr64_lo(xh, xl,
7);
38310 var r = c0_lo ^ c1_lo ^ c2_lo;
38316 function g1_512_hi(xh, xl) {
38317 var c0_hi = rotr64_hi(xh, xl,
19);
38318 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38319 var c2_hi = shr64_hi(xh, xl,
6);
38321 var r = c0_hi ^ c1_hi ^ c2_hi;
38327 function g1_512_lo(xh, xl) {
38328 var c0_lo = rotr64_lo(xh, xl,
19);
38329 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38330 var c2_lo = shr64_lo(xh, xl,
6);
38332 var r = c0_lo ^ c1_lo ^ c2_lo;
38338 },{
"../hash":
57}],
62:[function(require,module,exports){
38339 var utils = exports;
38340 var inherits = require('inherits');
38342 function toArray(msg, enc) {
38343 if (Array.isArray(msg))
38344 return msg.slice();
38348 if (typeof msg === 'string') {
38350 for (var i =
0; i < msg.length; i++) {
38351 var c = msg.charCodeAt(i);
38359 } else if (enc === 'hex') {
38360 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38361 if (msg.length %
2 !==
0)
38363 for (var i =
0; i < msg.length; i +=
2)
38364 res.push(parseInt(msg[i] + msg[i +
1],
16));
38367 for (var i =
0; i < msg.length; i++)
38368 res[i] = msg[i] |
0;
38372 utils.toArray = toArray;
38374 function toHex(msg) {
38376 for (var i =
0; i < msg.length; i++)
38377 res += zero2(msg[i].toString(
16));
38380 utils.toHex = toHex;
38382 function htonl(w) {
38383 var res = (w
>>> 24) |
38384 ((w
>>> 8) &
0xff00) |
38385 ((w <<
8) &
0xff0000) |
38386 ((w &
0xff) <<
24);
38389 utils.htonl = htonl;
38391 function toHex32(msg, endian) {
38393 for (var i =
0; i < msg.length; i++) {
38395 if (endian === 'little')
38397 res += zero8(w.toString(
16));
38401 utils.toHex32 = toHex32;
38403 function zero2(word) {
38404 if (word.length ===
1)
38409 utils.zero2 = zero2;
38411 function zero8(word) {
38412 if (word.length ===
7)
38414 else if (word.length ===
6)
38415 return '
00' + word;
38416 else if (word.length ===
5)
38417 return '
000' + word;
38418 else if (word.length ===
4)
38419 return '
0000' + word;
38420 else if (word.length ===
3)
38421 return '
00000' + word;
38422 else if (word.length ===
2)
38423 return '
000000' + word;
38424 else if (word.length ===
1)
38425 return '
0000000' + word;
38429 utils.zero8 = zero8;
38431 function join32(msg, start, end, endian) {
38432 var len = end - start;
38433 assert(len %
4 ===
0);
38434 var res = new Array(len /
4);
38435 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38437 if (endian === 'big')
38438 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38440 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38445 utils.join32 = join32;
38447 function split32(msg, endian) {
38448 var res = new Array(msg.length *
4);
38449 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38451 if (endian === 'big') {
38453 res[k +
1] = (m
>>> 16) &
0xff;
38454 res[k +
2] = (m
>>> 8) &
0xff;
38455 res[k +
3] = m &
0xff;
38457 res[k +
3] = m
>>> 24;
38458 res[k +
2] = (m
>>> 16) &
0xff;
38459 res[k +
1] = (m
>>> 8) &
0xff;
38465 utils.split32 = split32;
38467 function rotr32(w, b) {
38468 return (w
>>> b) | (w << (
32 - b));
38470 utils.rotr32 = rotr32;
38472 function rotl32(w, b) {
38473 return (w << b) | (w
>>> (
32 - b));
38475 utils.rotl32 = rotl32;
38477 function sum32(a, b) {
38478 return (a + b)
>>> 0;
38480 utils.sum32 = sum32;
38482 function sum32_3(a, b, c) {
38483 return (a + b + c)
>>> 0;
38485 utils.sum32_3 = sum32_3;
38487 function sum32_4(a, b, c, d) {
38488 return (a + b + c + d)
>>> 0;
38490 utils.sum32_4 = sum32_4;
38492 function sum32_5(a, b, c, d, e) {
38493 return (a + b + c + d + e)
>>> 0;
38495 utils.sum32_5 = sum32_5;
38497 function assert(cond, msg) {
38499 throw new Error(msg || 'Assertion failed');
38501 utils.assert = assert;
38503 utils.inherits = inherits;
38505 function sum64(buf, pos, ah, al) {
38507 var bl = buf[pos +
1];
38509 var lo = (al + bl)
>>> 0;
38510 var hi = (lo < al ?
1 :
0) + ah + bh;
38511 buf[pos] = hi
>>> 0;
38514 exports.sum64 = sum64;
38516 function sum64_hi(ah, al, bh, bl) {
38517 var lo = (al + bl)
>>> 0;
38518 var hi = (lo < al ?
1 :
0) + ah + bh;
38521 exports.sum64_hi = sum64_hi;
38523 function sum64_lo(ah, al, bh, bl) {
38527 exports.sum64_lo = sum64_lo;
38529 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38532 lo = (lo + bl)
>>> 0;
38533 carry += lo < al ?
1 :
0;
38534 lo = (lo + cl)
>>> 0;
38535 carry += lo < cl ?
1 :
0;
38536 lo = (lo + dl)
>>> 0;
38537 carry += lo < dl ?
1 :
0;
38539 var hi = ah + bh + ch + dh + carry;
38542 exports.sum64_4_hi = sum64_4_hi;
38544 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38545 var lo = al + bl + cl + dl;
38548 exports.sum64_4_lo = sum64_4_lo;
38550 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38553 lo = (lo + bl)
>>> 0;
38554 carry += lo < al ?
1 :
0;
38555 lo = (lo + cl)
>>> 0;
38556 carry += lo < cl ?
1 :
0;
38557 lo = (lo + dl)
>>> 0;
38558 carry += lo < dl ?
1 :
0;
38559 lo = (lo + el)
>>> 0;
38560 carry += lo < el ?
1 :
0;
38562 var hi = ah + bh + ch + dh + eh + carry;
38565 exports.sum64_5_hi = sum64_5_hi;
38567 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38568 var lo = al + bl + cl + dl + el;
38572 exports.sum64_5_lo = sum64_5_lo;
38574 function rotr64_hi(ah, al, num) {
38575 var r = (al << (
32 - num)) | (ah
>>> num);
38578 exports.rotr64_hi = rotr64_hi;
38580 function rotr64_lo(ah, al, num) {
38581 var r = (ah << (
32 - num)) | (al
>>> num);
38584 exports.rotr64_lo = rotr64_lo;
38586 function shr64_hi(ah, al, num) {
38589 exports.shr64_hi = shr64_hi;
38591 function shr64_lo(ah, al, num) {
38592 var r = (ah << (
32 - num)) | (al
>>> num);
38595 exports.shr64_lo = shr64_lo;
38597 },{
"inherits":
63}],
63:[function(require,module,exports){
38598 arguments[
4][
9][
0].apply(exports,arguments)
38599 },{
"dup":
9}],
64:[function(require,module,exports){
38601 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38602 * @param {String} str the string input value
38603 * @return {Boolean} a boolean if it is or is not hex prefixed
38604 * @throws if the str input is not a string
38606 module.exports = function isHexPrefixed(str) {
38607 if (typeof str !== 'string') {
38608 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38611 return str.slice(
0,
2) === '
0x';
38614 },{}],
65:[function(require,module,exports){
38616 module.exports = require('./lib/api')(require('./lib/keccak'))
38618 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38620 var createKeccak = require('./keccak')
38621 var createShake = require('./shake')
38623 module.exports = function (KeccakState) {
38624 var Keccak = createKeccak(KeccakState)
38625 var Shake = createShake(KeccakState)
38627 return function (algorithm, options) {
38628 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38630 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38631 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38632 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38633 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38635 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38636 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38637 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38638 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38640 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38641 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38643 default: throw new Error('Invald algorithm: ' + algorithm)
38648 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38649 (function (Buffer){
38651 var Transform = require('stream').Transform
38652 var inherits = require('inherits')
38654 module.exports = function (KeccakState) {
38655 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38656 Transform.call(this, options)
38659 this._capacity = capacity
38660 this._delimitedSuffix = delimitedSuffix
38661 this._hashBitLength = hashBitLength
38662 this._options = options
38664 this._state = new KeccakState()
38665 this._state.initialize(rate, capacity)
38666 this._finalized = false
38669 inherits(Keccak, Transform)
38671 Keccak.prototype._transform = function (chunk, encoding, callback) {
38674 this.update(chunk, encoding)
38682 Keccak.prototype._flush = function (callback) {
38685 this.push(this.digest())
38693 Keccak.prototype.update = function (data, encoding) {
38694 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38695 if (this._finalized) throw new Error('Digest already called')
38696 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38698 this._state.absorb(data)
38703 Keccak.prototype.digest = function (encoding) {
38704 if (this._finalized) throw new Error('Digest already called')
38705 this._finalized = true
38707 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38708 var digest = this._state.squeeze(this._hashBitLength /
8)
38709 if (encoding !== undefined) digest = digest.toString(encoding)
38716 // remove result from memory
38717 Keccak.prototype._resetState = function () {
38718 this._state.initialize(this._rate, this._capacity)
38722 // because sometimes we need hash right now and little later
38723 Keccak.prototype._clone = function () {
38724 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38725 this._state.copy(clone._state)
38726 clone._finalized = this._finalized
38734 }).call(this,require(
"buffer").Buffer)
38735 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38736 (function (Buffer){
38738 var Transform = require('stream').Transform
38739 var inherits = require('inherits')
38741 module.exports = function (KeccakState) {
38742 function Shake (rate, capacity, delimitedSuffix, options) {
38743 Transform.call(this, options)
38746 this._capacity = capacity
38747 this._delimitedSuffix = delimitedSuffix
38748 this._options = options
38750 this._state = new KeccakState()
38751 this._state.initialize(rate, capacity)
38752 this._finalized = false
38755 inherits(Shake, Transform)
38757 Shake.prototype._transform = function (chunk, encoding, callback) {
38760 this.update(chunk, encoding)
38768 Shake.prototype._flush = function () {}
38770 Shake.prototype._read = function (size) {
38771 this.push(this.squeeze(size))
38774 Shake.prototype.update = function (data, encoding) {
38775 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38776 if (this._finalized) throw new Error('Squeeze already called')
38777 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38779 this._state.absorb(data)
38784 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38785 if (!this._finalized) {
38786 this._finalized = true
38787 this._state.absorbLastFewBits(this._delimitedSuffix)
38790 var data = this._state.squeeze(dataByteLength)
38791 if (encoding !== undefined) data = data.toString(encoding)
38796 Shake.prototype._resetState = function () {
38797 this._state.initialize(this._rate, this._capacity)
38801 Shake.prototype._clone = function () {
38802 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38803 this._state.copy(clone._state)
38804 clone._finalized = this._finalized
38812 }).call(this,require(
"buffer").Buffer)
38813 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38815 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]
38817 exports.p1600 = function (s) {
38818 for (var round =
0; round <
24; ++round) {
38820 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38821 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38822 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38823 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38824 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38825 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38826 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38827 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38828 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38829 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38831 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38832 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38833 var t1slo0 = s[
0] ^ lo
38834 var t1shi0 = s[
1] ^ hi
38835 var t1slo5 = s[
10] ^ lo
38836 var t1shi5 = s[
11] ^ hi
38837 var t1slo10 = s[
20] ^ lo
38838 var t1shi10 = s[
21] ^ hi
38839 var t1slo15 = s[
30] ^ lo
38840 var t1shi15 = s[
31] ^ hi
38841 var t1slo20 = s[
40] ^ lo
38842 var t1shi20 = s[
41] ^ hi
38843 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38844 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38845 var t1slo1 = s[
2] ^ lo
38846 var t1shi1 = s[
3] ^ hi
38847 var t1slo6 = s[
12] ^ lo
38848 var t1shi6 = s[
13] ^ hi
38849 var t1slo11 = s[
22] ^ lo
38850 var t1shi11 = s[
23] ^ hi
38851 var t1slo16 = s[
32] ^ lo
38852 var t1shi16 = s[
33] ^ hi
38853 var t1slo21 = s[
42] ^ lo
38854 var t1shi21 = s[
43] ^ hi
38855 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38856 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38857 var t1slo2 = s[
4] ^ lo
38858 var t1shi2 = s[
5] ^ hi
38859 var t1slo7 = s[
14] ^ lo
38860 var t1shi7 = s[
15] ^ hi
38861 var t1slo12 = s[
24] ^ lo
38862 var t1shi12 = s[
25] ^ hi
38863 var t1slo17 = s[
34] ^ lo
38864 var t1shi17 = s[
35] ^ hi
38865 var t1slo22 = s[
44] ^ lo
38866 var t1shi22 = s[
45] ^ hi
38867 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38868 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38869 var t1slo3 = s[
6] ^ lo
38870 var t1shi3 = s[
7] ^ hi
38871 var t1slo8 = s[
16] ^ lo
38872 var t1shi8 = s[
17] ^ hi
38873 var t1slo13 = s[
26] ^ lo
38874 var t1shi13 = s[
27] ^ hi
38875 var t1slo18 = s[
36] ^ lo
38876 var t1shi18 = s[
37] ^ hi
38877 var t1slo23 = s[
46] ^ lo
38878 var t1shi23 = s[
47] ^ hi
38879 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38880 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38881 var t1slo4 = s[
8] ^ lo
38882 var t1shi4 = s[
9] ^ hi
38883 var t1slo9 = s[
18] ^ lo
38884 var t1shi9 = s[
19] ^ hi
38885 var t1slo14 = s[
28] ^ lo
38886 var t1shi14 = s[
29] ^ hi
38887 var t1slo19 = s[
38] ^ lo
38888 var t1shi19 = s[
39] ^ hi
38889 var t1slo24 = s[
48] ^ lo
38890 var t1shi24 = s[
49] ^ hi
38893 var t2slo0 = t1slo0
38894 var t2shi0 = t1shi0
38895 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38896 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38897 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38898 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38899 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38900 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38901 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38902 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38903 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38904 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38905 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38906 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38907 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38908 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38909 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38910 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38911 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38912 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38913 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38914 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38915 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38916 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38917 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38918 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38919 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38920 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38921 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38922 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38923 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38924 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38925 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38926 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38927 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38928 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38929 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38930 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38931 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38932 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38933 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38934 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38935 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38936 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38937 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38938 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38939 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38940 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38941 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38942 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38945 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38946 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38947 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38948 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38949 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38950 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38951 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38952 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38953 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38954 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
38955 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
38956 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
38957 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
38958 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
38959 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
38960 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
38961 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
38962 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
38963 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
38964 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
38965 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
38966 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
38967 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
38968 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
38969 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
38970 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
38971 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
38972 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
38973 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
38974 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
38975 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
38976 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
38977 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
38978 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
38979 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
38980 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
38981 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
38982 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
38983 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
38984 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
38985 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
38986 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
38987 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
38988 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
38989 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
38990 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
38991 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
38992 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
38993 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
38994 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
38997 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
38998 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39002 },{}],
70:[function(require,module,exports){
39003 (function (Buffer){
39005 var keccakState = require('./keccak-state-unroll')
39007 function Keccak () {
39008 // much faster than `new Array(
50)`
39017 this.blockSize = null
39019 this.squeezing = false
39022 Keccak.prototype.initialize = function (rate, capacity) {
39023 for (var i =
0; i <
50; ++i) this.state[i] =
0
39024 this.blockSize = rate /
8
39026 this.squeezing = false
39029 Keccak.prototype.absorb = function (data) {
39030 for (var i =
0; i < data.length; ++i) {
39031 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39033 if (this.count === this.blockSize) {
39034 keccakState.p1600(this.state)
39040 Keccak.prototype.absorbLastFewBits = function (bits) {
39041 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39042 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39043 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39044 keccakState.p1600(this.state)
39046 this.squeezing = true
39049 Keccak.prototype.squeeze = function (length) {
39050 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39052 var output = Buffer.allocUnsafe(length)
39053 for (var i =
0; i < length; ++i) {
39054 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39056 if (this.count === this.blockSize) {
39057 keccakState.p1600(this.state)
39065 Keccak.prototype.copy = function (dest) {
39066 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39067 dest.blockSize = this.blockSize
39068 dest.count = this.count
39069 dest.squeezing = this.squeezing
39072 module.exports = Keccak
39074 }).call(this,require("buffer").Buffer)
39075 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39076 (function (Buffer){
39079 code.google.com/p/crypto-js
39080 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39081 code.google.com/p/crypto-js/wiki/License
39084 (c)
2012 by Cédric Mesnil. All rights reserved.
39086 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39088 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39089 - 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.
39091 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.
39096 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39097 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39098 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39099 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39100 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39104 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39105 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39106 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39107 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39108 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39112 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39113 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39114 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39115 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39116 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39120 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39121 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39122 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39123 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39124 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39127 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39128 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39130 function bytesToWords (bytes) {
39132 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39133 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39138 function wordsToBytes (words) {
39140 for (var b =
0; b < words.length *
32; b +=
8) {
39141 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39146 function processBlock (H, M, offset) {
39148 for (var i =
0; i <
16; i++) {
39149 var offset_i = offset + i
39150 var M_offset_i = M[offset_i]
39154 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39155 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39159 // Working variables
39160 var al, bl, cl, dl, el
39161 var ar, br, cr, dr, er
39171 for (i =
0; i <
80; i +=
1) {
39172 t = (al + M[offset + zl[i]]) |
0
39174 t += f1(bl, cl, dl) + hl[
0]
39175 } else if (i <
32) {
39176 t += f2(bl, cl, dl) + hl[
1]
39177 } else if (i <
48) {
39178 t += f3(bl, cl, dl) + hl[
2]
39179 } else if (i <
64) {
39180 t += f4(bl, cl, dl) + hl[
3]
39181 } else {// if (i
<80) {
39182 t += f5(bl, cl, dl) + hl[
4]
39193 t = (ar + M[offset + zr[i]]) |
0
39195 t += f5(br, cr, dr) + hr[
0]
39196 } else if (i <
32) {
39197 t += f4(br, cr, dr) + hr[
1]
39198 } else if (i <
48) {
39199 t += f3(br, cr, dr) + hr[
2]
39200 } else if (i <
64) {
39201 t += f2(br, cr, dr) + hr[
3]
39202 } else {// if (i
<80) {
39203 t += f1(br, cr, dr) + hr[
4]
39216 // intermediate hash value
39217 t = (H[
1] + cl + dr) |
0
39218 H[
1] = (H[
2] + dl + er) |
0
39219 H[
2] = (H[
3] + el + ar) |
0
39220 H[
3] = (H[
4] + al + br) |
0
39221 H[
4] = (H[
0] + bl + cr) |
0
39225 function f1 (x, y, z) {
39226 return ((x) ^ (y) ^ (z))
39229 function f2 (x, y, z) {
39230 return (((x) & (y)) | ((~x) & (z)))
39233 function f3 (x, y, z) {
39234 return (((x) | (~(y))) ^ (z))
39237 function f4 (x, y, z) {
39238 return (((x) & (z)) | ((y) & (~(z))))
39241 function f5 (x, y, z) {
39242 return ((x) ^ ((y) | (~(z))))
39245 function rotl (x, n) {
39246 return (x << n) | (x
>>> (
32 - n))
39249 function ripemd160 (message) {
39250 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39252 if (typeof message === 'string') {
39253 message = new Buffer(message, 'utf8')
39256 var m = bytesToWords(message)
39258 var nBitsLeft = message.length *
8
39259 var nBitsTotal = message.length *
8
39262 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39263 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39264 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39265 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39268 for (var i =
0; i < m.length; i +=
16) {
39269 processBlock(H, m, i)
39273 for (i =
0; i <
5; i++) {
39278 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39279 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39282 var digestbytes = wordsToBytes(H)
39283 return new Buffer(digestbytes)
39286 module.exports = ripemd160
39288 }).call(this,require(
"buffer").Buffer)
39289 },{
"buffer":
5}],
72:[function(require,module,exports){
39290 (function (Buffer){
39291 const assert = require('assert')
39293 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39294 * This function takes in a data, convert it to buffer if not, and a length for recursion
39296 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39297 * @returns {Buffer} - returns buffer of encoded data
39299 exports.encode = function (input) {
39300 if (input instanceof Array) {
39302 for (var i =
0; i < input.length; i++) {
39303 output.push(exports.encode(input[i]))
39305 var buf = Buffer.concat(output)
39306 return Buffer.concat([encodeLength(buf.length,
192), buf])
39308 input = toBuffer(input)
39309 if (input.length ===
1 && input[
0] <
128) {
39312 return Buffer.concat([encodeLength(input.length,
128), input])
39317 function safeParseInt (v, base) {
39318 if (v.slice(
0,
2) === '
00') {
39319 throw (new Error('invalid RLP: extra zeros'))
39322 return parseInt(v, base)
39325 function encodeLength (len, offset) {
39327 return new Buffer([len + offset])
39329 var hexLength = intToHex(len)
39330 var lLength = hexLength.length /
2
39331 var firstByte = intToHex(offset +
55 + lLength)
39332 return new Buffer(firstByte + hexLength, 'hex')
39337 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39338 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39339 * @returns {Array} - returns decode Array of Buffers containg the original message
39341 exports.decode = function (input, stream) {
39342 if (!input || input.length ===
0) {
39343 return new Buffer([])
39346 input = toBuffer(input)
39347 var decoded = _decode(input)
39353 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39354 return decoded.data
39357 exports.getLength = function (input) {
39358 if (!input || input.length ===
0) {
39359 return new Buffer([])
39362 input = toBuffer(input)
39363 var firstByte = input[
0]
39364 if (firstByte <=
0x7f) {
39365 return input.length
39366 } else if (firstByte <=
0xb7) {
39367 return firstByte -
0x7f
39368 } else if (firstByte <=
0xbf) {
39369 return firstByte -
0xb6
39370 } else if (firstByte <=
0xf7) {
39371 // a list between
0-
55 bytes long
39372 return firstByte -
0xbf
39374 // a list over
55 bytes long
39375 var llength = firstByte -
0xf6
39376 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39377 return llength + length
39381 function _decode (input) {
39382 var length, llength, data, innerRemainder, d
39384 var firstByte = input[
0]
39386 if (firstByte <=
0x7f) {
39387 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39389 data: input.slice(
0,
1),
39390 remainder: input.slice(
1)
39392 } else if (firstByte <=
0xb7) {
39393 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39394 // The range of the first byte is [
0x80,
0xb7]
39395 length = firstByte -
0x7f
39397 // set
0x80 null to
0
39398 if (firstByte ===
0x80) {
39399 data = new Buffer([])
39401 data = input.slice(
1, length)
39404 if (length ===
2 && data[
0] <
0x80) {
39405 throw new Error('invalid rlp encoding: byte must be less
0x80')
39410 remainder: input.slice(length)
39412 } else if (firstByte <=
0xbf) {
39413 llength = firstByte -
0xb6
39414 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39415 data = input.slice(llength, length + llength)
39416 if (data.length < length) {
39417 throw (new Error('invalid RLP'))
39422 remainder: input.slice(length + llength)
39424 } else if (firstByte <=
0xf7) {
39425 // a list between
0-
55 bytes long
39426 length = firstByte -
0xbf
39427 innerRemainder = input.slice(
1, length)
39428 while (innerRemainder.length) {
39429 d = _decode(innerRemainder)
39430 decoded.push(d.data)
39431 innerRemainder = d.remainder
39436 remainder: input.slice(length)
39439 // a list over
55 bytes long
39440 llength = firstByte -
0xf6
39441 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39442 var totalLength = llength + length
39443 if (totalLength
> input.length) {
39444 throw new Error('invalid rlp: total length is larger than the data')
39447 innerRemainder = input.slice(llength, totalLength)
39448 if (innerRemainder.length ===
0) {
39449 throw new Error('invalid rlp, List has a invalid length')
39452 while (innerRemainder.length) {
39453 d = _decode(innerRemainder)
39454 decoded.push(d.data)
39455 innerRemainder = d.remainder
39459 remainder: input.slice(totalLength)
39464 function isHexPrefixed (str) {
39465 return str.slice(
0,
2) === '
0x'
39468 // Removes
0x from a given String
39469 function stripHexPrefix (str) {
39470 if (typeof str !== 'string') {
39473 return isHexPrefixed(str) ? str.slice(
2) : str
39476 function intToHex (i) {
39477 var hex = i.toString(
16)
39478 if (hex.length %
2) {
39485 function padToEven (a) {
39486 if (a.length %
2) a = '
0' + a
39490 function intToBuffer (i) {
39491 var hex = intToHex(i)
39492 return new Buffer(hex, 'hex')
39495 function toBuffer (v) {
39496 if (!Buffer.isBuffer(v)) {
39497 if (typeof v === 'string') {
39498 if (isHexPrefixed(v)) {
39499 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39503 } else if (typeof v === 'number') {
39509 } else if (v === null || v === undefined) {
39511 } else if (v.toArray) {
39512 // converts a BN to a Buffer
39513 v = new Buffer(v.toArray())
39515 throw new Error('invalid type')
39521 }).call(this,require("buffer").Buffer)
39522 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39524 module.exports = require('./lib')(require('./lib/elliptic'))
39526 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39527 (function (Buffer){
39529 var toString = Object.prototype.toString
39532 exports.isArray = function (value, message) {
39533 if (!Array.isArray(value)) throw TypeError(message)
39536 exports.isBoolean = function (value, message) {
39537 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39540 exports.isBuffer = function (value, message) {
39541 if (!Buffer.isBuffer(value)) throw TypeError(message)
39544 exports.isFunction = function (value, message) {
39545 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39548 exports.isNumber = function (value, message) {
39549 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39552 exports.isObject = function (value, message) {
39553 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39557 exports.isBufferLength = function (buffer, length, message) {
39558 if (buffer.length !== length) throw RangeError(message)
39561 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39562 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39565 exports.isLengthGTZero = function (value, message) {
39566 if (value.length ===
0) throw RangeError(message)
39569 exports.isNumberInInterval = function (number, x, y, message) {
39570 if (number <= x || number
>= y) throw RangeError(message)
39573 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39574 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39575 (function (Buffer){
39577 var bip66 = require('bip66')
39579 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39581 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39583 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39584 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39586 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39587 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39588 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39589 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39590 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39591 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39592 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39593 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39594 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39596 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39597 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39601 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39603 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39605 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39606 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39608 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39609 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39610 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39611 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39612 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39613 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39614 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39615 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39616 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39617 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39618 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39620 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39621 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39622 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39623 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39627 var ZERO_BUFFER_32 = new Buffer([
39628 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39629 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39632 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39633 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39634 privateKey.copy(result, compressed ?
8 :
9)
39635 publicKey.copy(result, compressed ?
181 :
214)
39639 exports.privateKeyImport = function (privateKey) {
39640 var length = privateKey.length
39644 if (length < index +
1 || privateKey[index] !==
0x30) return
39647 // sequence length constructor
39648 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39650 var lenb = privateKey[index] &
0x7f
39652 if (lenb <
1 || lenb
> 2) return
39653 if (length < index + lenb) return
39656 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39658 if (length < index + len) return
39660 // sequence element
0: version number (=
1)
39661 if (length < index +
3 ||
39662 privateKey[index] !==
0x02 ||
39663 privateKey[index +
1] !==
0x01 ||
39664 privateKey[index +
2] !==
0x01) {
39669 // sequence element
1: octet string, up to
32 bytes
39670 if (length < index +
2 ||
39671 privateKey[index] !==
0x04 ||
39672 privateKey[index +
1]
> 0x20 ||
39673 length < index +
2 + privateKey[index +
1]) {
39677 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39680 exports.signatureExport = function (sigObj) {
39681 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39682 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39684 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39685 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39687 return bip66.encode(r.slice(posR), s.slice(posS))
39690 exports.signatureImport = function (sig) {
39691 var r = new Buffer(ZERO_BUFFER_32)
39692 var s = new Buffer(ZERO_BUFFER_32)
39695 var sigObj = bip66.decode(sig)
39696 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39697 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39698 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39699 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39704 sigObj.r.copy(r,
32 - sigObj.r.length)
39705 sigObj.s.copy(s,
32 - sigObj.s.length)
39707 return { r: r, s: s }
39710 exports.signatureImportLax = function (sig) {
39711 var r = new Buffer(ZERO_BUFFER_32)
39712 var s = new Buffer(ZERO_BUFFER_32)
39714 var length = sig.length
39717 // sequence tag byte
39718 if (sig[index++] !==
0x30) return
39720 // sequence length byte
39721 var lenbyte = sig[index++]
39722 if (lenbyte &
0x80) {
39723 index += lenbyte -
0x80
39724 if (index
> length) return
39727 // sequence tag byte for r
39728 if (sig[index++] !==
0x02) return
39731 var rlen = sig[index++]
39733 lenbyte = rlen -
0x80
39734 if (index + lenbyte
> length) return
39735 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39736 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39738 if (rlen
> length - index) return
39742 // sequence tag byte for s
39743 if (sig[index++] !==
0x02) return
39746 var slen = sig[index++]
39748 lenbyte = slen -
0x80
39749 if (index + lenbyte
> length) return
39750 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39751 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39753 if (slen
> length - index) return
39757 // ignore leading zeros in r
39758 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39760 if (rlen
> 32) return
39761 var rvalue = sig.slice(rindex, rindex + rlen)
39762 rvalue.copy(r,
32 - rvalue.length)
39764 // ignore leading zeros in s
39765 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39767 if (slen
> 32) return
39768 var svalue = sig.slice(sindex, sindex + slen)
39769 svalue.copy(s,
32 - svalue.length)
39771 return { r: r, s: s }
39774 }).call(this,require(
"buffer").Buffer)
39775 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39776 (function (Buffer){
39778 var createHash = require('create-hash')
39779 var BN = require('bn.js')
39780 var EC = require('elliptic').ec
39782 var messages = require('../messages.json')
39784 var ec = new EC('secp256k1')
39785 var ecparams = ec.curve
39787 function loadCompressedPublicKey (first, xBuffer) {
39788 var x = new BN(xBuffer)
39791 if (x.cmp(ecparams.p)
>=
0) return null
39792 x = x.toRed(ecparams.red)
39794 // compute corresponding Y
39795 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39796 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39798 return ec.keyPair({ pub: { x: x, y: y } })
39801 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39802 var x = new BN(xBuffer)
39803 var y = new BN(yBuffer)
39806 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39808 x = x.toRed(ecparams.red)
39809 y = y.toRed(ecparams.red)
39812 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39815 var x3 = x.redSqr().redIMul(x)
39816 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39818 return ec.keyPair({ pub: { x: x, y: y } })
39821 function loadPublicKey (publicKey) {
39822 var first = publicKey[
0]
39826 if (publicKey.length !==
33) return null
39827 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39831 if (publicKey.length !==
65) return null
39832 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39838 exports.privateKeyVerify = function (privateKey) {
39839 var bn = new BN(privateKey)
39840 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39843 exports.privateKeyExport = function (privateKey, compressed) {
39844 var d = new BN(privateKey)
39845 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39847 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39850 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39851 var bn = new BN(tweak)
39852 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39854 bn.iadd(new BN(privateKey))
39855 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39856 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39858 return bn.toArrayLike(Buffer, 'be',
32)
39861 exports.privateKeyTweakMul = function (privateKey, tweak) {
39862 var bn = new BN(tweak)
39863 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39865 bn.imul(new BN(privateKey))
39866 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39868 return bn.toArrayLike(Buffer, 'be',
32)
39871 exports.publicKeyCreate = function (privateKey, compressed) {
39872 var d = new BN(privateKey)
39873 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39875 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39878 exports.publicKeyConvert = function (publicKey, compressed) {
39879 var pair = loadPublicKey(publicKey)
39880 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39882 return new Buffer(pair.getPublic(compressed, true))
39885 exports.publicKeyVerify = function (publicKey) {
39886 return loadPublicKey(publicKey) !== null
39889 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39890 var pair = loadPublicKey(publicKey)
39891 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39893 tweak = new BN(tweak)
39894 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39896 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39899 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39900 var pair = loadPublicKey(publicKey)
39901 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39903 tweak = new BN(tweak)
39904 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39906 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39909 exports.publicKeyCombine = function (publicKeys, compressed) {
39910 var pairs = new Array(publicKeys.length)
39911 for (var i =
0; i < publicKeys.length; ++i) {
39912 pairs[i] = loadPublicKey(publicKeys[i])
39913 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39916 var point = pairs[
0].pub
39917 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39918 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39920 return new Buffer(point.encode(true, compressed))
39923 exports.signatureNormalize = function (signature) {
39924 var r = new BN(signature.slice(
0,
32))
39925 var s = new BN(signature.slice(
32,
64))
39926 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39928 var result = new Buffer(signature)
39929 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39934 exports.signatureExport = function (signature) {
39935 var r = signature.slice(
0,
32)
39936 var s = signature.slice(
32,
64)
39937 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39939 return { r: r, s: s }
39942 exports.signatureImport = function (sigObj) {
39943 var r = new BN(sigObj.r)
39944 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39946 var s = new BN(sigObj.s)
39947 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39949 return Buffer.concat([
39950 r.toArrayLike(Buffer, 'be',
32),
39951 s.toArrayLike(Buffer, 'be',
32)
39955 exports.sign = function (message, privateKey, noncefn, data) {
39956 if (typeof noncefn === 'function') {
39957 var getNonce = noncefn
39958 noncefn = function (counter) {
39959 var nonce = getNonce(message, privateKey, null, data, counter)
39960 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
39962 return new BN(nonce)
39966 var d = new BN(privateKey)
39967 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
39969 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
39971 signature: Buffer.concat([
39972 result.r.toArrayLike(Buffer, 'be',
32),
39973 result.s.toArrayLike(Buffer, 'be',
32)
39975 recovery: result.recoveryParam
39979 exports.verify = function (message, signature, publicKey) {
39980 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39982 var sigr = new BN(sigObj.r)
39983 var sigs = new BN(sigObj.s)
39984 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39985 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
39987 var pair = loadPublicKey(publicKey)
39988 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39990 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
39993 exports.recover = function (message, signature, recovery, compressed) {
39994 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39996 var sigr = new BN(sigObj.r)
39997 var sigs = new BN(sigObj.s)
39998 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40001 if (sigr.isZero() || sigs.isZero()) throw new Error()
40003 var point = ec.recoverPubKey(message, sigObj, recovery)
40004 return new Buffer(point.encode(true, compressed))
40006 throw new Error(messages.ECDSA_RECOVER_FAIL)
40010 exports.ecdh = function (publicKey, privateKey) {
40011 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40012 return createHash('sha256').update(shared).digest()
40015 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40016 var pair = loadPublicKey(publicKey)
40017 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40019 var scalar = new BN(privateKey)
40020 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40022 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40025 }).call(this,require("buffer").Buffer)
40026 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40028 var assert = require('./assert')
40029 var der = require('./der')
40030 var messages = require('./messages.json')
40032 function initCompressedValue (value, defaultValue) {
40033 if (value === undefined) return defaultValue
40035 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40039 module.exports = function (secp256k1) {
40041 privateKeyVerify: function (privateKey) {
40042 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40043 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40046 privateKeyExport: function (privateKey, compressed) {
40047 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40048 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40050 compressed = initCompressedValue(compressed, true)
40051 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40053 return der.privateKeyExport(privateKey, publicKey, compressed)
40056 privateKeyImport: function (privateKey) {
40057 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40059 privateKey = der.privateKeyImport(privateKey)
40060 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40062 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40065 privateKeyTweakAdd: function (privateKey, tweak) {
40066 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40067 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40069 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40070 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40072 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40075 privateKeyTweakMul: function (privateKey, tweak) {
40076 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40077 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40079 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40080 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40082 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40085 publicKeyCreate: function (privateKey, compressed) {
40086 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40087 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40089 compressed = initCompressedValue(compressed, true)
40091 return secp256k1.publicKeyCreate(privateKey, compressed)
40094 publicKeyConvert: function (publicKey, compressed) {
40095 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40096 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40098 compressed = initCompressedValue(compressed, true)
40100 return secp256k1.publicKeyConvert(publicKey, compressed)
40103 publicKeyVerify: function (publicKey) {
40104 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40105 return secp256k1.publicKeyVerify(publicKey)
40108 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40109 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40110 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40112 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40113 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40115 compressed = initCompressedValue(compressed, true)
40117 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40120 publicKeyTweakMul: 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.publicKeyTweakMul(publicKey, tweak, compressed)
40132 publicKeyCombine: function (publicKeys, compressed) {
40133 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40134 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40135 for (var i =
0; i < publicKeys.length; ++i) {
40136 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40137 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40140 compressed = initCompressedValue(compressed, true)
40142 return secp256k1.publicKeyCombine(publicKeys, compressed)
40145 signatureNormalize: function (signature) {
40146 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40147 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40149 return secp256k1.signatureNormalize(signature)
40152 signatureExport: function (signature) {
40153 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40154 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40156 var sigObj = secp256k1.signatureExport(signature)
40157 return der.signatureExport(sigObj)
40160 signatureImport: function (sig) {
40161 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40162 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40164 var sigObj = der.signatureImport(sig)
40165 if (sigObj) return secp256k1.signatureImport(sigObj)
40167 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40170 signatureImportLax: function (sig) {
40171 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40172 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40174 var sigObj = der.signatureImportLax(sig)
40175 if (sigObj) return secp256k1.signatureImport(sigObj)
40177 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40180 sign: function (message, privateKey, options) {
40181 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40182 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40184 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40185 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40189 if (options !== undefined) {
40190 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40192 if (options.data !== undefined) {
40193 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40194 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40195 data = options.data
40198 if (options.noncefn !== undefined) {
40199 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40200 noncefn = options.noncefn
40204 return secp256k1.sign(message, privateKey, noncefn, data)
40207 verify: function (message, signature, publicKey) {
40208 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40209 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40211 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40212 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40214 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40215 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40217 return secp256k1.verify(message, signature, publicKey)
40220 recover: function (message, signature, recovery, compressed) {
40221 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40222 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40224 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40225 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40227 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40228 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40230 compressed = initCompressedValue(compressed, true)
40232 return secp256k1.recover(message, signature, recovery, compressed)
40235 ecdh: function (publicKey, privateKey) {
40236 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40237 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40239 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40240 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40242 return secp256k1.ecdh(publicKey, privateKey)
40245 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40246 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40247 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40249 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40250 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40252 compressed = initCompressedValue(compressed, true)
40254 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40259 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40261 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40262 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40263 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40264 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40265 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40266 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40267 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40268 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40269 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40270 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40271 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40272 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40273 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40274 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40275 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40276 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40277 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40278 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40279 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40280 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40281 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40282 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40283 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40284 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40285 "MSG32_TYPE_INVALID": "message should be a Buffer",
40286 "MSG32_LENGTH_INVALID": "message length is invalid",
40287 "OPTIONS_TYPE_INVALID": "options should be an Object",
40288 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40289 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40290 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40291 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40292 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40293 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40294 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40297 },{}],
79:[function(require,module,exports){
40298 (function (Buffer){
40299 // prototype class for hash functions
40300 function Hash (blockSize, finalSize) {
40301 this._block = new Buffer(blockSize)
40302 this._finalSize = finalSize
40303 this._blockSize = blockSize
40308 Hash.prototype.update = function (data, enc) {
40309 if (typeof data === 'string') {
40310 enc = enc || 'utf8'
40311 data = new Buffer(data, enc)
40314 var l = this._len += data.length
40315 var s = this._s ||
0
40317 var buffer = this._block
40320 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40323 for (var i =
0; i < ch; i++) {
40324 buffer[(s % this._blockSize) + i] = data[i + f]
40330 if ((s % this._blockSize) ===
0) {
40331 this._update(buffer)
40339 Hash.prototype.digest = function (enc) {
40340 // Suppose the length of the message M, in bits, is l
40341 var l = this._len *
8
40343 // Append the bit
1 to the end of the message
40344 this._block[this._len % this._blockSize] =
0x80
40346 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40347 this._block.fill(
0, this._len % this._blockSize +
1)
40349 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40350 this._update(this._block)
40351 this._block.fill(
0)
40354 // to this append the block which is equal to the number l written in binary
40355 // TODO: handle case where l is
> Math.pow(
2,
29)
40356 this._block.writeInt32BE(l, this._blockSize -
4)
40358 var hash = this._update(this._block) || this._hash()
40360 return enc ? hash.toString(enc) : hash
40363 Hash.prototype._update = function () {
40364 throw new Error('_update must be implemented by subclass')
40367 module.exports = Hash
40369 }).call(this,require("buffer").Buffer)
40370 },{"buffer":
5}],
80:[function(require,module,exports){
40371 var exports = module.exports = function SHA (algorithm) {
40372 algorithm = algorithm.toLowerCase()
40374 var Algorithm = exports[algorithm]
40375 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40377 return new Algorithm()
40380 exports.sha = require('./sha')
40381 exports.sha1 = require('./sha1')
40382 exports.sha224 = require('./sha224')
40383 exports.sha256 = require('./sha256')
40384 exports.sha384 = require('./sha384')
40385 exports.sha512 = require('./sha512')
40387 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40388 (function (Buffer){
40390 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40391 * in FIPS PUB
180-
1
40392 * This source code is derived from sha1.js of the same repository.
40393 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40394 * operation was added.
40397 var inherits = require('inherits')
40398 var Hash = require('./hash')
40401 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40404 var W = new Array(
80)
40410 Hash.call(this,
64,
56)
40413 inherits(Sha, Hash)
40415 Sha.prototype.init = function () {
40416 this._a =
0x67452301
40417 this._b =
0xefcdab89
40418 this._c =
0x98badcfe
40419 this._d =
0x10325476
40420 this._e =
0xc3d2e1f0
40425 function rotl5 (num) {
40426 return (num <<
5) | (num
>>> 27)
40429 function rotl30 (num) {
40430 return (num <<
30) | (num
>>> 2)
40433 function ft (s, b, c, d) {
40434 if (s ===
0) return (b & c) | ((~b) & d)
40435 if (s ===
2) return (b & c) | (b & d) | (c & d)
40439 Sha.prototype._update = function (M) {
40442 var a = this._a |
0
40443 var b = this._b |
0
40444 var c = this._c |
0
40445 var d = this._d |
0
40446 var e = this._e |
0
40448 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40449 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40451 for (var j =
0; j <
80; ++j) {
40453 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40462 this._a = (a + this._a) |
0
40463 this._b = (b + this._b) |
0
40464 this._c = (c + this._c) |
0
40465 this._d = (d + this._d) |
0
40466 this._e = (e + this._e) |
0
40469 Sha.prototype._hash = function () {
40470 var H = new Buffer(
20)
40472 H.writeInt32BE(this._a |
0,
0)
40473 H.writeInt32BE(this._b |
0,
4)
40474 H.writeInt32BE(this._c |
0,
8)
40475 H.writeInt32BE(this._d |
0,
12)
40476 H.writeInt32BE(this._e |
0,
16)
40481 module.exports = Sha
40483 }).call(this,require(
"buffer").Buffer)
40484 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40485 (function (Buffer){
40487 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40488 * in FIPS PUB
180-
1
40489 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40490 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40491 * Distributed under the BSD License
40492 * See http://pajhome.org.uk/crypt/md5 for details.
40495 var inherits = require('inherits')
40496 var Hash = require('./hash')
40499 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40502 var W = new Array(
80)
40508 Hash.call(this,
64,
56)
40511 inherits(Sha1, Hash)
40513 Sha1.prototype.init = function () {
40514 this._a =
0x67452301
40515 this._b =
0xefcdab89
40516 this._c =
0x98badcfe
40517 this._d =
0x10325476
40518 this._e =
0xc3d2e1f0
40523 function rotl1 (num) {
40524 return (num <<
1) | (num
>>> 31)
40527 function rotl5 (num) {
40528 return (num <<
5) | (num
>>> 27)
40531 function rotl30 (num) {
40532 return (num <<
30) | (num
>>> 2)
40535 function ft (s, b, c, d) {
40536 if (s ===
0) return (b & c) | ((~b) & d)
40537 if (s ===
2) return (b & c) | (b & d) | (c & d)
40541 Sha1.prototype._update = function (M) {
40544 var a = this._a |
0
40545 var b = this._b |
0
40546 var c = this._c |
0
40547 var d = this._d |
0
40548 var e = this._e |
0
40550 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40551 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40553 for (var j =
0; j <
80; ++j) {
40555 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40564 this._a = (a + this._a) |
0
40565 this._b = (b + this._b) |
0
40566 this._c = (c + this._c) |
0
40567 this._d = (d + this._d) |
0
40568 this._e = (e + this._e) |
0
40571 Sha1.prototype._hash = function () {
40572 var H = new Buffer(
20)
40574 H.writeInt32BE(this._a |
0,
0)
40575 H.writeInt32BE(this._b |
0,
4)
40576 H.writeInt32BE(this._c |
0,
8)
40577 H.writeInt32BE(this._d |
0,
12)
40578 H.writeInt32BE(this._e |
0,
16)
40583 module.exports = Sha1
40585 }).call(this,require(
"buffer").Buffer)
40586 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40587 (function (Buffer){
40589 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40591 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40592 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40596 var inherits = require('inherits')
40597 var Sha256 = require('./sha256')
40598 var Hash = require('./hash')
40600 var W = new Array(
64)
40602 function Sha224 () {
40605 this._w = W // new Array(
64)
40607 Hash.call(this,
64,
56)
40610 inherits(Sha224, Sha256)
40612 Sha224.prototype.init = function () {
40613 this._a =
0xc1059ed8
40614 this._b =
0x367cd507
40615 this._c =
0x3070dd17
40616 this._d =
0xf70e5939
40617 this._e =
0xffc00b31
40618 this._f =
0x68581511
40619 this._g =
0x64f98fa7
40620 this._h =
0xbefa4fa4
40625 Sha224.prototype._hash = function () {
40626 var H = new Buffer(
28)
40628 H.writeInt32BE(this._a,
0)
40629 H.writeInt32BE(this._b,
4)
40630 H.writeInt32BE(this._c,
8)
40631 H.writeInt32BE(this._d,
12)
40632 H.writeInt32BE(this._e,
16)
40633 H.writeInt32BE(this._f,
20)
40634 H.writeInt32BE(this._g,
24)
40639 module.exports = Sha224
40641 }).call(this,require(
"buffer").Buffer)
40642 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40643 (function (Buffer){
40645 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40647 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40648 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40652 var inherits = require('inherits')
40653 var Hash = require('./hash')
40656 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40657 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40658 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40659 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40660 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40661 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40662 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40663 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40664 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40665 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40666 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40667 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40668 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40669 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40670 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40671 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40674 var W = new Array(
64)
40676 function Sha256 () {
40679 this._w = W // new Array(
64)
40681 Hash.call(this,
64,
56)
40684 inherits(Sha256, Hash)
40686 Sha256.prototype.init = function () {
40687 this._a =
0x6a09e667
40688 this._b =
0xbb67ae85
40689 this._c =
0x3c6ef372
40690 this._d =
0xa54ff53a
40691 this._e =
0x510e527f
40692 this._f =
0x9b05688c
40693 this._g =
0x1f83d9ab
40694 this._h =
0x5be0cd19
40699 function ch (x, y, z) {
40700 return z ^ (x & (y ^ z))
40703 function maj (x, y, z) {
40704 return (x & y) | (z & (x | y))
40707 function sigma0 (x) {
40708 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40711 function sigma1 (x) {
40712 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40715 function gamma0 (x) {
40716 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40719 function gamma1 (x) {
40720 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40723 Sha256.prototype._update = function (M) {
40726 var a = this._a |
0
40727 var b = this._b |
0
40728 var c = this._c |
0
40729 var d = this._d |
0
40730 var e = this._e |
0
40731 var f = this._f |
0
40732 var g = this._g |
0
40733 var h = this._h |
0
40735 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40736 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40738 for (var j =
0; j <
64; ++j) {
40739 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40740 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40752 this._a = (a + this._a) |
0
40753 this._b = (b + this._b) |
0
40754 this._c = (c + this._c) |
0
40755 this._d = (d + this._d) |
0
40756 this._e = (e + this._e) |
0
40757 this._f = (f + this._f) |
0
40758 this._g = (g + this._g) |
0
40759 this._h = (h + this._h) |
0
40762 Sha256.prototype._hash = function () {
40763 var H = new Buffer(
32)
40765 H.writeInt32BE(this._a,
0)
40766 H.writeInt32BE(this._b,
4)
40767 H.writeInt32BE(this._c,
8)
40768 H.writeInt32BE(this._d,
12)
40769 H.writeInt32BE(this._e,
16)
40770 H.writeInt32BE(this._f,
20)
40771 H.writeInt32BE(this._g,
24)
40772 H.writeInt32BE(this._h,
28)
40777 module.exports = Sha256
40779 }).call(this,require(
"buffer").Buffer)
40780 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40781 (function (Buffer){
40782 var inherits = require('inherits')
40783 var SHA512 = require('./sha512')
40784 var Hash = require('./hash')
40786 var W = new Array(
160)
40788 function Sha384 () {
40792 Hash.call(this,
128,
112)
40795 inherits(Sha384, SHA512)
40797 Sha384.prototype.init = function () {
40798 this._ah =
0xcbbb9d5d
40799 this._bh =
0x629a292a
40800 this._ch =
0x9159015a
40801 this._dh =
0x152fecd8
40802 this._eh =
0x67332667
40803 this._fh =
0x8eb44a87
40804 this._gh =
0xdb0c2e0d
40805 this._hh =
0x47b5481d
40807 this._al =
0xc1059ed8
40808 this._bl =
0x367cd507
40809 this._cl =
0x3070dd17
40810 this._dl =
0xf70e5939
40811 this._el =
0xffc00b31
40812 this._fl =
0x68581511
40813 this._gl =
0x64f98fa7
40814 this._hl =
0xbefa4fa4
40819 Sha384.prototype._hash = function () {
40820 var H = new Buffer(
48)
40822 function writeInt64BE (h, l, offset) {
40823 H.writeInt32BE(h, offset)
40824 H.writeInt32BE(l, offset +
4)
40827 writeInt64BE(this._ah, this._al,
0)
40828 writeInt64BE(this._bh, this._bl,
8)
40829 writeInt64BE(this._ch, this._cl,
16)
40830 writeInt64BE(this._dh, this._dl,
24)
40831 writeInt64BE(this._eh, this._el,
32)
40832 writeInt64BE(this._fh, this._fl,
40)
40837 module.exports = Sha384
40839 }).call(this,require(
"buffer").Buffer)
40840 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40841 (function (Buffer){
40842 var inherits = require('inherits')
40843 var Hash = require('./hash')
40846 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40847 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40848 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40849 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40850 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40851 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40852 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40853 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40854 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40855 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40856 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40857 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40858 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40859 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40860 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40861 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40862 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40863 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40864 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40865 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40866 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40867 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40868 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40869 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40870 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40871 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40872 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40873 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40874 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40875 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40876 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40877 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40878 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40879 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40880 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40881 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40882 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40883 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40884 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40885 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40888 var W = new Array(
160)
40890 function Sha512 () {
40894 Hash.call(this,
128,
112)
40897 inherits(Sha512, Hash)
40899 Sha512.prototype.init = function () {
40900 this._ah =
0x6a09e667
40901 this._bh =
0xbb67ae85
40902 this._ch =
0x3c6ef372
40903 this._dh =
0xa54ff53a
40904 this._eh =
0x510e527f
40905 this._fh =
0x9b05688c
40906 this._gh =
0x1f83d9ab
40907 this._hh =
0x5be0cd19
40909 this._al =
0xf3bcc908
40910 this._bl =
0x84caa73b
40911 this._cl =
0xfe94f82b
40912 this._dl =
0x5f1d36f1
40913 this._el =
0xade682d1
40914 this._fl =
0x2b3e6c1f
40915 this._gl =
0xfb41bd6b
40916 this._hl =
0x137e2179
40921 function Ch (x, y, z) {
40922 return z ^ (x & (y ^ z))
40925 function maj (x, y, z) {
40926 return (x & y) | (z & (x | y))
40929 function sigma0 (x, xl) {
40930 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40933 function sigma1 (x, xl) {
40934 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40937 function Gamma0 (x, xl) {
40938 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40941 function Gamma0l (x, xl) {
40942 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40945 function Gamma1 (x, xl) {
40946 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40949 function Gamma1l (x, xl) {
40950 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40953 function getCarry (a, b) {
40954 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
40957 Sha512.prototype._update = function (M) {
40960 var ah = this._ah |
0
40961 var bh = this._bh |
0
40962 var ch = this._ch |
0
40963 var dh = this._dh |
0
40964 var eh = this._eh |
0
40965 var fh = this._fh |
0
40966 var gh = this._gh |
0
40967 var hh = this._hh |
0
40969 var al = this._al |
0
40970 var bl = this._bl |
0
40971 var cl = this._cl |
0
40972 var dl = this._dl |
0
40973 var el = this._el |
0
40974 var fl = this._fl |
0
40975 var gl = this._gl |
0
40976 var hl = this._hl |
0
40978 for (var i =
0; i <
32; i +=
2) {
40979 W[i] = M.readInt32BE(i *
4)
40980 W[i +
1] = M.readInt32BE(i *
4 +
4)
40982 for (; i <
160; i +=
2) {
40983 var xh = W[i -
15 *
2]
40984 var xl = W[i -
15 *
2 +
1]
40985 var gamma0 = Gamma0(xh, xl)
40986 var gamma0l = Gamma0l(xl, xh)
40989 xl = W[i -
2 *
2 +
1]
40990 var gamma1 = Gamma1(xh, xl)
40991 var gamma1l = Gamma1l(xl, xh)
40993 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
40994 var Wi7h = W[i -
7 *
2]
40995 var Wi7l = W[i -
7 *
2 +
1]
40997 var Wi16h = W[i -
16 *
2]
40998 var Wi16l = W[i -
16 *
2 +
1]
41000 var Wil = (gamma0l + Wi7l) |
0
41001 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41002 Wil = (Wil + gamma1l) |
0
41003 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41004 Wil = (Wil + Wi16l) |
0
41005 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41011 for (var j =
0; j <
160; j +=
2) {
41015 var majh = maj(ah, bh, ch)
41016 var majl = maj(al, bl, cl)
41018 var sigma0h = sigma0(ah, al)
41019 var sigma0l = sigma0(al, ah)
41020 var sigma1h = sigma1(eh, el)
41021 var sigma1l = sigma1(el, eh)
41023 // t1 = h + sigma1 + ch + K[j] + W[j]
41027 var chh = Ch(eh, fh, gh)
41028 var chl = Ch(el, fl, gl)
41030 var t1l = (hl + sigma1l) |
0
41031 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41032 t1l = (t1l + chl) |
0
41033 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41034 t1l = (t1l + Kil) |
0
41035 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41036 t1l = (t1l + Wil) |
0
41037 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41039 // t2 = sigma0 + maj
41040 var t2l = (sigma0l + majl) |
0
41041 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41049 el = (dl + t1l) |
0
41050 eh = (dh + t1h + getCarry(el, dl)) |
0
41057 al = (t1l + t2l) |
0
41058 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41061 this._al = (this._al + al) |
0
41062 this._bl = (this._bl + bl) |
0
41063 this._cl = (this._cl + cl) |
0
41064 this._dl = (this._dl + dl) |
0
41065 this._el = (this._el + el) |
0
41066 this._fl = (this._fl + fl) |
0
41067 this._gl = (this._gl + gl) |
0
41068 this._hl = (this._hl + hl) |
0
41070 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41071 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41072 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41073 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41074 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41075 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41076 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41077 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41080 Sha512.prototype._hash = function () {
41081 var H = new Buffer(
64)
41083 function writeInt64BE (h, l, offset) {
41084 H.writeInt32BE(h, offset)
41085 H.writeInt32BE(l, offset +
4)
41088 writeInt64BE(this._ah, this._al,
0)
41089 writeInt64BE(this._bh, this._bl,
8)
41090 writeInt64BE(this._ch, this._cl,
16)
41091 writeInt64BE(this._dh, this._dl,
24)
41092 writeInt64BE(this._eh, this._el,
32)
41093 writeInt64BE(this._fh, this._fl,
40)
41094 writeInt64BE(this._gh, this._gl,
48)
41095 writeInt64BE(this._hh, this._hl,
56)
41100 module.exports = Sha512
41102 }).call(this,require(
"buffer").Buffer)
41103 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41104 var isHexPrefixed = require('is-hex-prefixed');
41107 * Removes '
0x' from a given `String` is present
41108 * @param {String} str the string value
41109 * @return {String|Optional} a string by pass if necessary
41111 module.exports = function stripHexPrefix(str) {
41112 if (typeof str !== 'string') {
41116 return isHexPrefixed(str) ? str.slice(
2) : str;
41119 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41121 <script>function convertRippleAdrr(address) {
41122 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41123 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41127 function convertRipplePriv(priv) {
41128 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41132 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41136 /** @fileOverview Javascript cryptography implementation.
41138 * Crush to remove comments, shorten variable names and
41139 * generally reduce transmission size.
41141 * @author Emily Stark
41142 * @author Mike Hamburg
41143 * @author Dan Boneh
41147 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41148 /*global document, window, escape, unescape, module, require, Uint32Array */
41150 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41152 /** @namespace Symmetric ciphers. */
41155 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41158 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41161 /** @namespace Block cipher modes of operation. */
41164 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41168 * @namespace Bit array encoders and decoders.
41171 * The members of this namespace are functions which translate between
41172 * SJCL's bitArrays and other objects (usually strings). Because it
41173 * isn't always clear which direction is encoding and which is decoding,
41174 * the method names are "fromBits" and "toBits".
41178 /** @namespace Exceptions. */
41180 /** @constructor Ciphertext is corrupt. */
41181 corrupt: function(message) {
41182 this.toString = function() { return "CORRUPT: "+this.message; };
41183 this.message = message;
41186 /** @constructor Invalid parameter. */
41187 invalid: function(message) {
41188 this.toString = function() { return "INVALID: "+this.message; };
41189 this.message = message;
41192 /** @constructor Bug or missing feature in SJCL. @constructor */
41193 bug: function(message) {
41194 this.toString = function() { return "BUG: "+this.message; };
41195 this.message = message;
41198 /** @constructor Something isn't ready. */
41199 notReady: function(message) {
41200 this.toString = function() { return "NOT READY: "+this.message; };
41201 this.message = message;
41206 if(typeof module !== 'undefined' && module.exports){
41207 module.exports = sjcl;
41209 if (typeof define === "function") {
41210 define([], function () {
41218 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41220 * @author Emily Stark
41221 * @author Mike Hamburg
41222 * @author Dan Boneh
41225 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41229 * These objects are the currency accepted by SJCL's crypto functions.
41233 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41234 * but many of them can take arguments that are not a multiple of
4 bytes.
41235 * This library encodes arrays of bits (whose size need not be a multiple of
8
41236 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41237 * array of words,
32 bits at a time. Since the words are double-precision
41238 * floating point numbers, they fit some extra data. We use this (in a private,
41239 * possibly-changing manner) to encode the number of bits actually present
41240 * in the last word of the array.
41244 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41245 * to ciphers like AES which want arrays of words.
41250 * Array slices in units of bits.
41251 * @param {bitArray} a The array to slice.
41252 * @param {Number} bstart The offset to the start of the slice, in bits.
41253 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41254 * slice until the end of the array.
41255 * @return {bitArray} The requested slice.
41257 bitSlice: function (a, bstart, bend) {
41258 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41259 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41263 * Extract a number packed into a bit array.
41264 * @param {bitArray} a The array to slice.
41265 * @param {Number} bstart The offset to the start of the slice, in bits.
41266 * @param {Number} length The length of the number to extract.
41267 * @return {Number} The requested slice.
41269 extract: function(a, bstart, blength) {
41270 // FIXME: this Math.floor is not necessary at all, but for some reason
41271 // seems to suppress a bug in the Chromium JIT.
41272 var x, sh = Math.floor((-bstart-blength) &
31);
41273 if ((bstart + blength -
1 ^ bstart) & -
32) {
41274 // it crosses a boundary
41275 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41277 // within a single word
41278 x = a[bstart/
32|
0]
>>> sh;
41280 return x & ((
1<
<blength) -
1);
41284 * Concatenate two bit arrays.
41285 * @param {bitArray} a1 The first array.
41286 * @param {bitArray} a2 The second array.
41287 * @return {bitArray} The concatenation of a1 and a2.
41289 concat: function (a1, a2) {
41290 if (a1.length ===
0 || a2.length ===
0) {
41291 return a1.concat(a2);
41294 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41295 if (shift ===
32) {
41296 return a1.concat(a2);
41298 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41303 * Find the length of an array of bits.
41304 * @param {bitArray} a The array.
41305 * @return {Number} The length of a, in bits.
41307 bitLength: function (a) {
41308 var l = a.length, x;
41309 if (l ===
0) { return
0; }
41311 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41315 * Truncate an array.
41316 * @param {bitArray} a The array.
41317 * @param {Number} len The length to truncate to, in bits.
41318 * @return {bitArray} A new array, truncated to len bits.
41320 clamp: function (a, len) {
41321 if (a.length *
32 < len) { return a; }
41322 a = a.slice(
0, Math.ceil(len /
32));
41325 if (l
> 0 && len) {
41326 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41332 * Make a partial word for a bit array.
41333 * @param {Number} len The number of bits in the word.
41334 * @param {Number} x The bits.
41335 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41336 * @return {Number} The partial word.
41338 partial: function (len, x, _end) {
41339 if (len ===
32) { return x; }
41340 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41344 * Get the number of bits used by a partial word.
41345 * @param {Number} x The partial word.
41346 * @return {Number} The number of bits used by the partial word.
41348 getPartial: function (x) {
41349 return Math.round(x/
0x10000000000) ||
32;
41353 * Compare two arrays for equality in a predictable amount of time.
41354 * @param {bitArray} a The first array.
41355 * @param {bitArray} b The second array.
41356 * @return {boolean} true if a == b; false otherwise.
41358 equal: function (a, b) {
41359 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41363 for (i=
0; i
<a.length; i++) {
41369 /** Shift an array right.
41370 * @param {bitArray} a The array to shift.
41371 * @param {Number} shift The number of bits to shift.
41372 * @param {Number} [carry=
0] A byte to carry in
41373 * @param {bitArray} [out=[]] An array to prepend to the output.
41376 _shiftRight: function (a, shift, carry, out) {
41377 var i, last2=
0, shift2;
41378 if (out === undefined) { out = []; }
41380 for (; shift
>=
32; shift -=
32) {
41385 return out.concat(a);
41388 for (i=
0; i
<a.length; i++) {
41389 out.push(carry | a[i]
>>>shift);
41390 carry = a[i] << (
32-shift);
41392 last2 = a.length ? a[a.length-
1] :
0;
41393 shift2 = sjcl.bitArray.getPartial(last2);
41394 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41398 /** xor a block of
4 words together.
41401 _xor4: function(x,y) {
41402 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41405 /** byteswap a word array inplace.
41406 * (does not handle partial words)
41407 * @param {sjcl.bitArray} a word array
41408 * @return {sjcl.bitArray} byteswapped array
41410 byteswapM: function(a) {
41411 var i, v, m =
0xff00;
41412 for (i =
0; i < a.length; ++i) {
41414 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41421 //// codecString.js
41423 /** @fileOverview Bit array codec implementations.
41425 * @author Emily Stark
41426 * @author Mike Hamburg
41427 * @author Dan Boneh
41430 /** @namespace UTF-
8 strings */
41431 sjcl.codec.utf8String = {
41432 /** Convert from a bitArray to a UTF-
8 string. */
41433 fromBits: function (arr) {
41434 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41435 for (i=
0; i
<bl/
8; i++) {
41439 out += String.fromCharCode(tmp
>>> 24);
41442 return decodeURIComponent(escape(out));
41445 /** Convert from a UTF-
8 string to a bitArray. */
41446 toBits: function (str) {
41447 str = unescape(encodeURIComponent(str));
41448 var out = [], i, tmp=
0;
41449 for (i=
0; i
<str.length; i++) {
41450 tmp = tmp <<
8 | str.charCodeAt(i);
41457 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41466 /** @fileOverview Bit array codec implementations.
41468 * @author Emily Stark
41469 * @author Mike Hamburg
41470 * @author Dan Boneh
41473 /** @namespace Hexadecimal */
41475 /** Convert from a bitArray to a hex string. */
41476 fromBits: function (arr) {
41478 for (i=
0; i
<arr.length; i++) {
41479 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41481 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41483 /** Convert from a hex string to a bitArray. */
41484 toBits: function (str) {
41485 var i, out=[], len;
41486 str = str.replace(/\s|
0x/g,
"");
41488 str = str +
"00000000";
41489 for (i=
0; i
<str.length; i+=
8) {
41490 out.push(parseInt(str.substr(i,
8),
16)^
0);
41492 return sjcl.bitArray.clamp(out, len*
4);
41499 /** @fileOverview Javascript SHA-
512 implementation.
41501 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41502 * SJCL by Stefan Thomas.
41504 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41505 * Released with New BSD License
41507 * @author Emily Stark
41508 * @author Mike Hamburg
41509 * @author Dan Boneh
41510 * @author Jeff Mott
41511 * @author Stefan Thomas
41515 * Context for a SHA-
512 operation in progress.
41517 * @class Secure Hash Algorithm,
512 bits.
41519 sjcl.hash.sha512 = function (hash) {
41520 if (!this._key[
0]) { this._precompute(); }
41522 this._h = hash._h.slice(
0);
41523 this._buffer = hash._buffer.slice(
0);
41524 this._length = hash._length;
41531 * Hash a string or an array of words.
41533 * @param {bitArray|String} data the data to hash.
41534 * @return {bitArray} The hash value, an array of
16 big-endian words.
41536 sjcl.hash.sha512.hash = function (data) {
41537 return (new sjcl.hash.sha512()).update(data).finalize();
41540 sjcl.hash.sha512.prototype = {
41542 * The hash's block size, in bits.
41548 * Reset the hash state.
41551 reset:function () {
41552 this._h = this._init.slice(
0);
41559 * Input several words to the hash.
41560 * @param {bitArray|String} data the data to hash.
41563 update: function (data) {
41564 if (typeof data ===
"string") {
41565 data = sjcl.codec.utf8String.toBits(data);
41567 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41569 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41570 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41571 this._block(b.splice(
0,
32));
41577 * Complete hashing and output the hash value.
41578 * @return {bitArray} The hash value, an array of
16 big-endian words.
41580 finalize:function () {
41581 var i, b = this._buffer, h = this._h;
41583 // Round out and push the buffer
41584 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41586 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41587 for (i = b.length +
4; i &
31; i++) {
41591 // append the length
41594 b.push(Math.floor(this._length /
0x100000000));
41595 b.push(this._length |
0);
41598 this._block(b.splice(
0,
32));
41606 * The SHA-
512 initialization vector, to be precomputed.
41612 * Least significant
24 bits of SHA512 initialization values.
41614 * Javascript only has
53 bits of precision, so we compute the
40 most
41615 * significant bits and add the remaining
24 bits as constants.
41619 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41623 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41624 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41628 * The SHA-
512 hash key, to be precomputed.
41634 * Least significant
24 bits of SHA512 key values.
41638 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41639 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41640 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41641 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41642 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41643 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41644 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41645 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41646 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41647 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41651 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41652 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41653 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41654 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41655 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41656 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41657 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41658 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41659 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41660 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41661 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41662 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41663 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41664 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41665 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41666 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41667 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41668 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41669 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41670 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41674 * Function to precompute _init and _key.
41677 _precompute: function () {
41678 // XXX: This code is for precomputing the SHA256 constants, change for
41679 // SHA512 and re-enable.
41680 var i =
0, prime =
2, factor;
41682 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41683 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41685 outer: for (; i
<80; prime++) {
41686 for (factor=
2; factor*factor <= prime; factor++) {
41687 if (prime % factor ===
0) {
41694 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41695 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41697 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41698 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41704 * Perform one cycle of SHA-
512.
41705 * @param {bitArray} words one block of words.
41708 _block:function (words) {
41710 w = words.slice(
0),
41713 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41714 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41715 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41716 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41718 // Working variables
41719 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41720 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41721 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41722 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41724 for (i=
0; i
<80; i++) {
41725 // load up the input word for this round
41728 wrl = w[i *
2 +
1];
41731 var gamma0xh = w[(i-
15) *
2];
41732 var gamma0xl = w[(i-
15) *
2 +
1];
41734 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41735 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41738 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41739 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41740 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41743 var gamma1xh = w[(i-
2) *
2];
41744 var gamma1xl = w[(i-
2) *
2 +
1];
41746 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41747 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41750 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41751 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41752 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41755 var wr7h = w[(i-
7) *
2];
41756 var wr7l = w[(i-
7) *
2 +
1];
41758 var wr16h = w[(i-
16) *
2];
41759 var wr16l = w[(i-
16) *
2 +
1];
41761 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41762 wrl = gamma0l + wr7l;
41763 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41765 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41767 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41771 w[i*
2 +
1] = wrl |=
0;
41774 var chh = (eh & fh) ^ (~eh & gh);
41775 var chl = (el & fl) ^ (~el & gl);
41778 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41779 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41782 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41783 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41786 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41787 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41791 var krl = k[i*
2+
1];
41793 // t1 = h + sigma1 + ch + K(round) + W(round)
41794 var t1l = hl + sigma1l;
41795 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41797 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41799 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41800 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41801 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41803 // t2 = sigma0 + maj
41804 var t2l = sigma0l + majl;
41805 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41807 // Update working variables
41814 el = (dl + t1l) |
0;
41815 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41822 al = (t1l + t2l) |
0;
41823 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41826 // Intermediate hash
41827 h0l = h[
1] = (h0l + al) |
0;
41828 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41829 h1l = h[
3] = (h1l + bl) |
0;
41830 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41831 h2l = h[
5] = (h2l + cl) |
0;
41832 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41833 h3l = h[
7] = (h3l + dl) |
0;
41834 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41835 h4l = h[
9] = (h4l + el) |
0;
41836 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41837 h5l = h[
11] = (h5l + fl) |
0;
41838 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41839 h6l = h[
13] = (h6l + gl) |
0;
41840 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41841 h7l = h[
15] = (h7l + hl) |
0;
41842 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41849 /** @fileOverview HMAC implementation.
41851 * @author Emily Stark
41852 * @author Mike Hamburg
41853 * @author Dan Boneh
41856 /** HMAC with the specified hash function.
41858 * @param {bitArray} key the key for HMAC.
41859 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41861 sjcl.misc.hmac = function (key, Hash) {
41862 this._hash = Hash = Hash || sjcl.hash.sha256;
41863 var exKey = [[],[]], i,
41864 bs = Hash.prototype.blockSize /
32;
41865 this._baseHash = [new Hash(), new Hash()];
41867 if (key.length
> bs) {
41868 key = Hash.hash(key);
41871 for (i=
0; i
<bs; i++) {
41872 exKey[
0][i] = key[i]^
0x36363636;
41873 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41876 this._baseHash[
0].update(exKey[
0]);
41877 this._baseHash[
1].update(exKey[
1]);
41878 this._resultHash = new Hash(this._baseHash[
0]);
41881 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41882 * @param {bitArray|String} data The data to mac.
41884 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41885 if (!this._updated) {
41887 return this.digest(data);
41889 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41893 sjcl.misc.hmac.prototype.reset = function () {
41894 this._resultHash = new this._hash(this._baseHash[
0]);
41895 this._updated = false;
41898 sjcl.misc.hmac.prototype.update = function (data) {
41899 this._updated = true;
41900 this._resultHash.update(data);
41903 sjcl.misc.hmac.prototype.digest = function () {
41904 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41915 /** @fileOverview Password-based key-derivation function, version
2.0.
41917 * @author Emily Stark
41918 * @author Mike Hamburg
41919 * @author Dan Boneh
41922 /** Password-Based Key-Derivation Function, version
2.0.
41924 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41926 * This is the method specified by RSA's PKCS #
5 standard.
41928 * @param {bitArray|String} password The password.
41929 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41930 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41931 * @param {Number} [length] The length of the derived key. Defaults to the
41932 output size of the hash function.
41933 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41934 * @return {bitArray} the derived key.
41936 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41937 count = count ||
1000;
41939 if (length <
0 || count <
0) {
41940 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41943 if (typeof password ===
"string") {
41944 password = sjcl.codec.utf8String.toBits(password);
41947 if (typeof salt ===
"string") {
41948 salt = sjcl.codec.utf8String.toBits(salt);
41951 Prff = Prff || sjcl.misc.hmac;
41953 var prf = new Prff(password),
41954 u, ui, i, j, k, out = [], b = sjcl.bitArray;
41956 for (k =
1;
32 * out.length < (length ||
1); k++) {
41957 u = ui = prf.encrypt(b.concat(salt,[k]));
41959 for (i=
1; i
<count; i++) {
41960 ui = prf.encrypt(ui);
41961 for (j=
0; j
<ui.length; j++) {
41966 out = out.concat(u);
41969 if (length) { out = b.clamp(out, length); }
41977 /** @fileOverview Javascript SHA-
256 implementation.
41979 * An older version of this implementation is available in the public
41980 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
41981 * Stanford University
2008-
2010 and BSD-licensed for liability
41984 * Special thanks to Aldo Cortesi for pointing out several bugs in
41987 * @author Emily Stark
41988 * @author Mike Hamburg
41989 * @author Dan Boneh
41993 * Context for a SHA-
256 operation in progress.
41995 * @class Secure Hash Algorithm,
256 bits.
41997 sjcl.hash.sha256 = function (hash) {
41998 if (!this._key[
0]) { this._precompute(); }
42000 this._h = hash._h.slice(
0);
42001 this._buffer = hash._buffer.slice(
0);
42002 this._length = hash._length;
42009 * Hash a string or an array of words.
42011 * @param {bitArray|String} data the data to hash.
42012 * @return {bitArray} The hash value, an array of
16 big-endian words.
42014 sjcl.hash.sha256.hash = function (data) {
42015 return (new sjcl.hash.sha256()).update(data).finalize();
42018 sjcl.hash.sha256.prototype = {
42020 * The hash's block size, in bits.
42026 * Reset the hash state.
42029 reset:function () {
42030 this._h = this._init.slice(
0);
42037 * Input several words to the hash.
42038 * @param {bitArray|String} data the data to hash.
42041 update: function (data) {
42042 if (typeof data ===
"string") {
42043 data = sjcl.codec.utf8String.toBits(data);
42045 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42047 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42048 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42049 this._block(b.splice(
0,
16));
42055 * Complete hashing and output the hash value.
42056 * @return {bitArray} The hash value, an array of
8 big-endian words.
42058 finalize:function () {
42059 var i, b = this._buffer, h = this._h;
42061 // Round out and push the buffer
42062 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42064 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42065 for (i = b.length +
2; i &
15; i++) {
42069 // append the length
42070 b.push(Math.floor(this._length /
0x100000000));
42071 b.push(this._length |
0);
42074 this._block(b.splice(
0,
16));
42082 * The SHA-
256 initialization vector, to be precomputed.
42087 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42091 * The SHA-
256 hash key, to be precomputed.
42097 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42098 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42099 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42100 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42101 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42102 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42103 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42104 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42109 * Function to precompute _init and _key.
42112 _precompute: function () {
42113 var i =
0, prime =
2, factor;
42115 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42117 outer: for (; i
<64; prime++) {
42118 for (factor=
2; factor*factor <= prime; factor++) {
42119 if (prime % factor ===
0) {
42126 this._init[i] = frac(Math.pow(prime,
1/
2));
42128 this._key[i] = frac(Math.pow(prime,
1/
3));
42134 * Perform one cycle of SHA-
256.
42135 * @param {bitArray} words one block of words.
42138 _block:function (words) {
42140 w = words.slice(
0),
42143 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42144 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42146 /* Rationale for placement of |
0 :
42147 * If a value can overflow is original
32 bits by a factor of more than a few
42148 * million (
2^
23 ish), there is a possibility that it might overflow the
42149 *
53-bit mantissa and lose precision.
42151 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42152 * propagates around the loop, and on the hash state h[]. I don't believe
42153 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42154 * (for h4 anyway), and better safe than sorry.
42156 * The clamps on h[] are necessary for the output to be correct even in the
42157 * common case and for short inputs.
42159 for (i=
0; i
<64; i++) {
42160 // load up the input word for this round
42164 a = w[(i+
1 ) &
15];
42165 b = w[(i+
14) &
15];
42166 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42167 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42168 w[i&
15] + w[(i+
9) &
15]) |
0;
42171 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42174 h7 = h6; h6 = h5; h5 = h4;
42176 h3 = h2; h2 = h1; h1 = h0;
42178 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42181 h[
0] = h[
0]+h0 |
0;
42182 h[
1] = h[
1]+h1 |
0;
42183 h[
2] = h[
2]+h2 |
0;
42184 h[
3] = h[
3]+h3 |
0;
42185 h[
4] = h[
4]+h4 |
0;
42186 h[
5] = h[
5]+h5 |
0;
42187 h[
6] = h[
6]+h6 |
0;
42188 h[
7] = h[
7]+h7 |
0;
42192 <script>// An extremely basic translation library
42196 // Set some html to be translated. Do this using the 'data-translate' attribute:
42198 //
<div data-translate
>Test
</div>
42199 //
<div data-translate-html
><em>keep em tag
</em></div>
42200 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
42201 //
<span data-translate-title
title=
"Example title"></span>
42203 // Obtain all the phrases to be translated via js debug console:
42205 // Translate.phrasesAsJson();
42207 // Use that template to translate the phrases into another language.
42208 // Leave the key the same. Change the value to the new language.
42210 // Create a js file to load the new phrases. In this example for Spanish,
42211 // es.js will contain the following code:
42213 // Translate.loadForeignPhrases("es", {
42214 // "Test": "Test in Spanish",
42215 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
42216 // "Example placeholder
": "Example placeholder in Spanish
"
42217 // "Example title
": "Example title in Spanish
"
42220 // In your UI put a listener for clicking on the Spanish button:
42222 // mySpanishButton.addEventListener("click
", function() {
42223 // Translate.setLanguage("es
");
42225 // myEnglishButton.addEventListener("click
", function() {
42226 // Translate.setLanguage("en
");
42229 Translate = new (function() {
42231 var defaultLanguage = "en
";
42233 var allPhrases = {};
42234 allPhrases[defaultLanguage] = {};
42239 selector: "[data-translate]
",
42240 getKey: function() {
42241 return this.textContent.trim().replace(/\s+/g, " ");
42243 setPhrase: function(p) {
42244 this.textContent = p;
42249 selector: "[data-translate-html]
",
42250 getKey: function() {
42251 return this.innerHTML.trim().replace(/\s+/g, " ");
42253 setPhrase: function(p) {
42254 this.innerHTML = p;
42258 var placeholder = {
42259 selector: "[data-translate-placeholder]
",
42260 getKey: function() {
42261 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
42263 setPhrase: function(p) {
42264 this.setAttribute("placeholder
", p);
42269 selector: "[data-translate-title]
",
42270 getKey: function() {
42271 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
42273 setPhrase: function(p) {
42274 this.setAttribute("title
", p);
42278 // Get elements to be translated
42279 var allEls = getEls(text)
42280 .concat(getEls(html))
42281 .concat(getEls(placeholder))
42282 .concat(getEls(title));
42284 // Provides access to phrases from a non-default language.
42285 // See phrases_en.js for example usage.
42286 this.loadForeignPhrases = function(language, phrases) {
42287 allPhrases[language] = phrases;
42290 // Displays a different language, eg "en
" or "fr
"
42291 this.setLanguage = function(language) {
42292 for (var i=0; i<allEls.length; i++) {
42293 var el = allEls[i];
42295 if (!(language in allPhrases)) {
42296 console.log(language + " not in allPhrases
");
42299 if (!(key in allPhrases[language])) {
42300 console.log(language + " does not contain phrase:
" + key);
42303 var phrase = allPhrases[language][key];
42304 el.setPhrase(phrase);
42308 // Converts the phrases to a key-pair json file.
42309 // This is a good way to export phrases for use in translation tools.
42310 this.phrasesAsJson = function(language) {
42312 for (var i=0; i<allEls.length; i++) {
42313 var el = allEls[i];
42319 for (var i=0; i<keys.length; i++) {
42321 var translated = "";
42322 if (language in allPhrases && key in allPhrases[language]) {
42323 translated = allPhrases[language][key];
42325 output[key] = translated;
42327 return JSON.stringify(output, null, 2);
42330 function getEls(nodeType) {
42331 var nodes = document.querySelectorAll(nodeType.selector);
42333 for (var i=0; i<nodes.length; i++) {
42334 var node = nodes[i];
42335 node.getKey = nodeType.getKey;
42336 node.setPhrase = nodeType.setPhrase;
42337 node.key = node.getKey();
42338 allPhrases[defaultLanguage][node.key] = node.key;
42346 <script>Translate.loadForeignPhrases("en",
42348 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
42349 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
42350 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
42351 "
<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).",
42352 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
42353 "Account": "Account",
42354 "Address": "Address",
42355 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
42356 "BIP32 Derivation Path": "BIP32 Derivation Path",
42357 "BIP32 Extended Key": "BIP32 Extended Key",
42358 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
42359 "BIP32 Root Key": "BIP32 Root Key",
42360 "BIP39 Mnemonic": "BIP39 Mnemonic",
42361 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
42362 "BIP39 Seed": "BIP39 Seed",
42363 "Base
10": "Base
10",
42364 "Base
6": "Base
6",
42365 "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.",
42366 "Binary": "Binary",
42367 "Bitcoin Core": "Bitcoin Core",
42368 "Bits Per Event": "Bits Per Event",
42369 "Block Explorers": "Block Explorers",
42370 "Can be used with": "Can be used with",
42374 "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.",
42375 "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.",
42376 "Entropy": "Entropy",
42377 "Entropy Type": "Entropy Type",
42378 "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.",
42379 "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>.",
42380 "Event Count": "Event Count",
42381 "External / Internal": "External / Internal",
42382 "Filtered Entropy": "Filtered Entropy",
42383 "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>",
42384 "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>.",
42385 "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>.",
42386 "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>",
42387 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
42388 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
42389 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
42390 "Get the source code from the repository
": "Get the source code from the repository
",
42392 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
42393 "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.
",
42394 "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.
",
42395 "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.
",
42396 "Libraries
": "Libraries
",
42397 "Mnemonic Language
": "Mnemonic Language
",
42398 "Mnemonic Length
": "Mnemonic Length
",
42399 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
42400 "More info
": "More info
",
42401 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
42402 "Mycelium Wallet
": "Mycelium Wallet
",
42403 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
42404 "Offline Usage
": "Offline Usage
",
42405 "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.",
42407 "Private Key": "Private Key",
42408 "Private Keys": "Private Keys",
42409 "Public Key": "Public Key",
42410 "Purpose": "Purpose",
42411 "Raw Binary": "Raw Binary",
42412 "Read more": "Read more",
42413 "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>",
42414 "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>",
42415 "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>",
42416 "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>",
42418 "Show more rows
": "Show more rows
",
42419 "Strength
": "Strength
",
42420 "Supply my own source of entropy
": "Supply my own source of entropy
",
42421 "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.
",
42422 "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>.",
42423 "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.",
42424 "This project is
100% open-source code": "This project is
100% open-source code",
42425 "Toggle": "Toggle",
42426 "Total Bits": "Total Bits",
42427 "Use hardened addresses": "Use hardened addresses",
42428 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
42429 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
42430 "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>.",
42431 "Valid entropy values include:": "Valid entropy values include:",
42432 "Warning": "Warning",
42433 "Word Count": "Word Count",
42434 "You are not a good source of entropy.": "You are not a good source of entropy.",
42435 "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).",
42436 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
42441 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42442 WORDLISTS["english"] = [
42443 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42444 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42445 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42446 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42447 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42448 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42449 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42450 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42451 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42452 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42453 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42454 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42455 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42456 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42457 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42458 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42459 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42460 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42461 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42462 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42463 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42464 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42465 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42466 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42467 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42468 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42469 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42470 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42471 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42472 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42473 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42474 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42475 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42476 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42477 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42478 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42479 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42480 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42481 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42482 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42483 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42484 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42485 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42486 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42487 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42488 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42489 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42490 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42491 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42492 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42493 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42494 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42495 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42496 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42497 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42498 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42499 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42500 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42501 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42502 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42503 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42504 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42505 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42506 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42507 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42508 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42509 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42510 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42511 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42512 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42513 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42514 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42515 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42516 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42517 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42518 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42519 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42520 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42521 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42522 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42523 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42524 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42525 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42526 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42527 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42528 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42529 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42530 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42531 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42532 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42533 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42534 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42535 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42536 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42537 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42538 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42539 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42540 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42541 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42542 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42543 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42544 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42545 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42546 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42547 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42548 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42549 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42550 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42551 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42552 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42553 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42554 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42555 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42556 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42557 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42558 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42559 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42560 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42561 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42562 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42563 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42564 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42565 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42566 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42567 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42568 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42569 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42570 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42571 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42572 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42573 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42574 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42575 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42576 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42577 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42578 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42579 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42580 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42581 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42582 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42583 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42584 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42585 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42586 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42587 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42588 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42589 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42590 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42591 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42592 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42593 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42594 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42595 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42596 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42597 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42598 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42599 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42600 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42601 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42602 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42603 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42604 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42605 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42606 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42607 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42608 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42609 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42610 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42611 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42612 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42613 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42614 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42615 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42616 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42617 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42618 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42619 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42620 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42621 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42622 "thank","that","theme","then","theory","there","they","thing","this","thought",
42623 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42624 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42625 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42626 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42627 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42628 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42629 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42630 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42631 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42632 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42633 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42634 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42635 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42636 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42637 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42638 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42639 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42640 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42641 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42642 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42643 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42644 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42645 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42646 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42647 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42649 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42650 WORDLISTS["japanese"] = [
42651 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42652 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42653 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42654 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42655 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42656 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42657 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42658 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42659 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42660 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42661 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42662 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42663 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42664 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42665 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42666 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42667 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42668 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42669 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42670 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42671 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42672 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42673 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42674 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42675 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42676 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42677 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42678 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42679 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42680 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42681 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42682 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42683 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42684 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42685 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42686 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42687 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42688 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42689 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42690 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42691 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42692 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42693 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42694 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42695 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42696 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42697 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42698 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42699 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42700 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42701 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42702 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42703 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42704 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42705 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42706 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42707 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42708 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42709 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42710 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42711 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42712 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42713 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42714 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42715 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42716 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42717 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42718 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42719 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42720 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42721 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42722 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42723 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42724 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42725 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42726 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42727 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42728 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42729 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42730 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42731 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42732 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42733 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42734 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42735 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42736 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42737 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42738 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42739 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42740 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42741 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42742 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42743 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42744 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42745 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42746 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42747 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42748 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42749 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42750 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42751 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42752 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42753 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42754 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42755 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42756 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42757 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42758 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42759 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42760 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42761 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42762 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42763 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42764 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42765 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42766 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42767 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42768 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42769 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42770 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42771 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42772 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42773 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42774 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42775 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42776 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42777 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42778 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42779 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42780 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42781 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42782 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42783 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42784 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42785 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42786 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42787 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42788 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42789 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42790 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42791 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42792 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42793 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42794 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42795 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42796 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42797 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42798 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42799 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42800 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42801 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42802 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42803 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42804 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42805 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42806 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42807 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42808 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42809 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42810 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42811 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42812 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42813 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42814 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42815 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42816 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42817 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42818 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42819 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42820 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42821 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42822 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42823 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42824 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42825 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42826 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42827 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42828 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42829 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42830 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42831 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42832 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42833 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42834 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42835 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42836 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42837 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42838 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42839 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42840 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42841 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42842 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42843 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42844 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42845 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42846 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42847 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42848 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42849 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42850 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42851 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42852 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42853 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42854 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42855 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42857 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42858 WORDLISTS["spanish"] = [
42859 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42860 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42861 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42862 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42863 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42864 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42865 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42866 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42867 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42868 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42869 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42870 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42871 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42872 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42873 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42874 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42875 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42876 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42877 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42878 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42879 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42880 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42881 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42882 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42883 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42884 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42885 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42886 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42887 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42888 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42889 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42890 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42891 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42892 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42893 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42894 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42895 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42896 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42897 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42898 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42899 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42900 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42901 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42902 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42903 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42904 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42905 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42906 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42907 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42908 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42909 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42910 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42911 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42912 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42913 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42914 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42915 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42916 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42917 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42918 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42919 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42920 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42921 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42922 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42923 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42924 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42925 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42926 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42927 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42928 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42929 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42930 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42931 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42932 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42933 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42934 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42935 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42936 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42937 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42938 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42939 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42940 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42941 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42942 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42943 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42944 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42945 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42946 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42947 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42948 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42949 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42950 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42951 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42952 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42953 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42954 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42955 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42956 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42957 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42958 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42959 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42960 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42961 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42962 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42963 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42964 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42965 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42966 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42967 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42968 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42969 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42970 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42971 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42972 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42973 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42974 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42975 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42976 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42977 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42978 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42979 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42980 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42981 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42982 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42983 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42984 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42985 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42986 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42987 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42988 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42989 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42990 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42991 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42992 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
42993 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
42994 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
42995 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
42996 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
42997 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
42998 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
42999 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
43000 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
43001 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
43002 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
43003 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
43004 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
43005 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
43006 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
43007 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
43008 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
43009 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
43010 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
43011 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
43012 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
43013 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
43014 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
43015 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
43016 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
43017 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
43018 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
43019 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
43020 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
43021 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
43022 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
43023 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
43024 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
43025 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
43026 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
43027 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
43028 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
43029 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
43030 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
43031 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
43032 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
43033 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
43034 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
43035 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
43036 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
43037 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
43038 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
43039 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
43040 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
43041 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
43042 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
43043 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
43044 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
43045 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
43046 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
43047 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
43048 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
43049 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
43050 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
43051 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
43052 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
43053 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
43054 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
43055 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
43056 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
43057 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
43058 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
43059 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
43060 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
43061 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
43062 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
43063 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
43065 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43066 WORDLISTS["chinese_simplified"] = [
43067 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
43068 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
43069 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
43070 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
43071 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
43072 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
43073 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
43074 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
43075 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
43076 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
43077 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
43078 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43079 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
43080 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
43081 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
43082 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
43083 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
43084 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
43085 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
43086 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
43087 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
43088 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
43089 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
43090 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
43091 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
43092 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
43093 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
43094 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
43095 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
43096 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
43097 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
43098 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
43099 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
43100 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
43101 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
43102 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
43103 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
43104 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
43105 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
43106 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
43107 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
43108 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
43109 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
43110 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
43111 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
43112 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
43113 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
43114 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
43115 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
43116 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
43117 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
43118 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
43119 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
43120 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
43121 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
43122 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
43123 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
43124 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
43125 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
43126 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
43127 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
43128 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
43129 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
43130 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
43131 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
43132 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
43133 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
43134 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
43135 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
43136 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
43137 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
43138 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
43139 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
43140 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
43141 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
43142 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43143 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
43144 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
43145 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
43146 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
43147 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
43148 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
43149 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
43150 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
43151 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
43152 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
43153 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
43154 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
43155 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
43156 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
43157 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
43158 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
43159 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43160 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
43161 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
43162 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
43163 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
43164 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
43165 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
43166 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
43167 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
43168 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
43169 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
43170 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
43171 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
43172 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
43173 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
43174 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
43175 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43176 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43177 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
43178 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
43179 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
43180 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
43181 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
43182 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
43183 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
43184 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
43185 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
43186 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
43187 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
43188 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43189 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
43190 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
43191 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
43192 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
43193 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
43194 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
43195 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
43196 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
43197 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
43198 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
43199 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
43200 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
43201 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
43202 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
43203 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
43204 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
43205 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
43206 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
43207 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
43208 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
43209 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
43210 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
43211 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
43212 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
43213 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
43214 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
43215 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
43216 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
43217 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
43218 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
43219 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
43220 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
43221 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
43222 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
43223 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
43224 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
43225 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
43226 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
43227 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
43228 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
43229 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
43230 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
43231 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
43232 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
43233 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
43234 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
43235 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
43236 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
43237 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
43238 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
43239 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
43240 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
43241 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
43242 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
43243 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
43244 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
43245 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
43246 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
43247 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
43248 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
43249 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
43250 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
43251 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
43252 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
43253 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
43254 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
43255 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
43256 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
43257 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
43258 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
43259 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
43260 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
43261 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
43262 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
43263 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
43264 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
43265 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
43266 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43267 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43268 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43269 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43270 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43271 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43273 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43274 WORDLISTS["chinese_traditional"] = [
43275 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43276 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43277 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43278 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43279 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43280 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43281 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43282 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43283 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43284 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43285 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43286 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43287 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43288 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43289 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43290 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43291 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43292 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43293 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43294 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43295 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43296 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43297 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43298 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43299 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43300 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43301 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43302 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43303 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43304 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43305 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43306 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43307 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43308 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43309 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43310 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43311 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43312 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43313 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43314 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43315 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43316 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43317 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43318 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43319 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43320 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43321 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43322 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43323 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43324 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43325 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43326 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43327 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43328 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43329 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43330 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43331 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43332 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43333 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43334 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43335 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43336 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43337 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43338 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43339 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43340 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43341 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43342 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43343 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43344 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43345 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43346 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43347 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43348 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43349 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43350 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43351 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43352 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43353 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43354 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43355 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43356 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43357 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43358 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43359 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43360 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43361 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43362 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43363 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43364 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43365 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43366 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43367 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43368 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43369 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43370 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43371 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43372 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43373 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43374 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43375 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43376 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43377 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43378 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43379 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43380 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43381 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43382 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43383 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43384 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43385 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43386 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43387 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43388 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43389 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43390 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43391 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43392 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43393 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43394 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43395 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43396 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43397 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43398 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43399 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43400 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43401 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43402 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43403 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43404 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43405 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43406 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43407 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43408 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43409 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43410 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43411 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43412 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43413 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43414 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43415 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43416 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43417 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43418 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43419 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43420 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43421 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43422 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43423 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43424 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43425 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43426 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43427 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43428 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43429 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43430 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43431 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43432 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43433 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43434 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43435 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43436 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43437 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43438 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43439 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43440 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43441 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43442 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43443 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43444 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43445 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43446 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43447 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43448 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43449 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43450 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43451 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43452 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43453 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43454 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43455 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43456 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43457 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43458 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43459 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43460 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43461 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43462 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43463 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43464 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43465 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43466 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43467 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43468 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43469 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43470 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43471 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43472 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43473 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43474 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43475 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43476 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43477 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43478 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43479 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43481 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43482 WORDLISTS["french"] = [
43483 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43484 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43485 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43486 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43487 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43488 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43489 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43490 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43491 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43492 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43493 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43494 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43495 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43496 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43497 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43498 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43499 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43500 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43501 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43502 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43503 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43504 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43505 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43506 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43507 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43508 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43509 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43510 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43511 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43512 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43513 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43514 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43515 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43516 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43517 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43518 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43519 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43520 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43521 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43522 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43523 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43524 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43525 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43526 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43527 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43528 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43529 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43530 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43531 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43532 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43533 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43534 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43535 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43536 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43537 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43538 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43539 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43540 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43541 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43542 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43543 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43544 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43545 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43546 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43547 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43548 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43549 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43550 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43551 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43552 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43553 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43554 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43555 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43556 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43557 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43558 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43559 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43560 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43561 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43562 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43563 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43564 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43565 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43566 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43567 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43568 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43569 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43570 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43571 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43572 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43573 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43574 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43575 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43576 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43577 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43578 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43579 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43580 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43581 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43582 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43583 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43584 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43585 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43586 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43587 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43588 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43589 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43590 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43591 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43592 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43593 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43594 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43595 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43596 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43597 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43598 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43599 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43600 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43601 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43602 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43603 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43604 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43605 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43606 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43607 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43608 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43609 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43610 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43611 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43612 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43613 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43614 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43615 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43616 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43617 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43618 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43619 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43620 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43621 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43622 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43623 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43624 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43625 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43626 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43627 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43628 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43629 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43630 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43631 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43632 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43633 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43634 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43635 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43636 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43637 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43638 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43639 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43640 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43641 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43642 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43643 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43644 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43645 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43646 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43647 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43648 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43649 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43650 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43651 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43652 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43653 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43654 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43655 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43656 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43657 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43658 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43659 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43660 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43661 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43662 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43663 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43664 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43665 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43666 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43667 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43668 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43669 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43670 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43671 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43672 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43673 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43674 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43675 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43676 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43677 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43678 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43679 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43680 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43681 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43682 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43683 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43684 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43685 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43686 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43687 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43689 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43690 WORDLISTS["italian"] = [
43691 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43692 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43693 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43694 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43695 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43696 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43697 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43698 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43699 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43700 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43701 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43702 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43703 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43704 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43705 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43706 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43707 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43708 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43709 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43710 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43711 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43712 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43713 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43714 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43715 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43716 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43717 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43718 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43719 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43720 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43721 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43722 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43723 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43724 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43725 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43726 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43727 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43728 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43729 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43730 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43731 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43732 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43733 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43734 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43735 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43736 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43737 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43738 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43739 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43740 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43741 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43742 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43743 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43744 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43745 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43746 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43747 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43748 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43749 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43750 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43751 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43752 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43753 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43754 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43755 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43756 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43757 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43758 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43759 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43760 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43761 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43762 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43763 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43764 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43765 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43766 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43767 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43768 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43769 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43770 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43771 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43772 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43773 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43774 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43775 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43776 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43777 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43778 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43779 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43780 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43781 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43782 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43783 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43784 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43785 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43786 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43787 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43788 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43789 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43790 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43791 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43792 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43793 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43794 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43795 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43796 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43797 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43798 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43799 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43800 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43801 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43802 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43803 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43804 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43805 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43806 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43807 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43808 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43809 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43810 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43811 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43812 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43813 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43814 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43815 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43816 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43817 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43818 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43819 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43820 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43821 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43822 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43823 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43824 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43825 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43826 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43827 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43828 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43829 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43830 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43831 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43832 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43833 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43834 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43835 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43836 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43837 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43838 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43839 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43840 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43841 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43842 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43843 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43844 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43845 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43846 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43847 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43848 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43849 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43850 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43851 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43852 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43853 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43854 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43855 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43856 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43857 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43858 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43859 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43860 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43861 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43862 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43863 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43864 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43865 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43866 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43867 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43868 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43869 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43870 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43871 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43872 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43873 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43874 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43875 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43876 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43877 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43878 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43879 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43880 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43881 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43882 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43883 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43884 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43885 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43886 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43887 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43888 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43889 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43890 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43891 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43892 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43893 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43894 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43895 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43898 * Copyright (c)
2013 Pavol Rusnak
43900 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43901 * this software and associated documentation files (the "Software"), to deal in
43902 * the Software without restriction, including without limitation the rights to
43903 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43904 * of the Software, and to permit persons to whom the Software is furnished to do
43905 * so, subject to the following conditions:
43907 * The above copyright notice and this permission notice shall be included in all
43908 * copies or substantial portions of the Software.
43910 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43911 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43912 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43913 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43914 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43915 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43919 * Javascript port from python by Ian Coleman
43921 * Requires code from sjcl
43922 * https://github.com/bitwiseshiftleft/sjcl
43925 var Mnemonic = function(language) {
43927 var PBKDF2_ROUNDS =
2048;
43933 var hmacSHA512 = function(key) {
43934 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43935 this.encrypt = function() {
43936 return hasher.encrypt.apply(hasher, arguments);
43941 wordlist = WORDLISTS[language];
43942 if (wordlist.length != RADIX) {
43943 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43948 self.generate = function(strength) {
43949 strength = strength ||
128;
43950 var r = strength %
32;
43952 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43954 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43955 if (!hasStrongCrypto) {
43956 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43958 var buffer = new Uint8Array(strength /
8);
43959 var data = crypto.getRandomValues(buffer);
43960 return self.toMnemonic(data);
43963 self.toMnemonic = function(byteArray) {
43964 if (byteArray.length %
4 > 0) {
43965 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43968 //h = hashlib.sha256(data).hexdigest()
43969 var data = byteArrayToWordArray(byteArray);
43970 var hash = sjcl.hash.sha256.hash(data);
43971 var h = sjcl.codec.hex.fromBits(hash);
43973 // b is a binary string, eg '
00111010101100...'
43974 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43975 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43977 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43978 // c = bin(int(h,
16))[
2:].zfill(
256)
43979 // d = c[:len(data) *
8 /
32]
43980 var a = byteArrayToBinaryString(byteArray);
43981 var c = zfill(hexStringToBinaryString(h),
256);
43982 var d = c.substring(
0, byteArray.length *
8 /
32);
43983 // b = line1 + line2
43987 var blen = b.length /
11;
43988 for (var i=
0; i
<blen; i++) {
43989 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43990 result.push(wordlist[idx]);
43992 return self.joinWords(result);
43995 self.check = function(mnemonic) {
43996 var mnemonic = self.splitWords(mnemonic);
43997 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
44000 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
44002 for (var i=
0; i
<mnemonic.length; i++) {
44003 var word = mnemonic[i];
44004 var wordIndex = wordlist.indexOf(word);
44005 if (wordIndex == -
1) {
44008 var binaryIndex = zfill(wordIndex.toString(
2),
11);
44009 idx.push(binaryIndex);
44011 var b = idx.join('');
44013 //d = b[:l /
33 *
32]
44015 var d = b.substring(
0, l /
33 *
32);
44016 var h = b.substring(l - l /
33, l);
44017 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
44018 var nd = binaryStringToWordArray(d);
44019 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
44020 var ndHash = sjcl.hash.sha256.hash(nd);
44021 var ndHex = sjcl.codec.hex.fromBits(ndHash);
44022 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
44023 var nh = ndBstr.substring(
0,l/
33);
44027 self.toSeed = function(mnemonic, passphrase) {
44028 passphrase = passphrase || '';
44029 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
44030 var mnemonicNormalized = self.normalizeString(mnemonic);
44031 passphrase = self.normalizeString(passphrase)
44032 passphrase =
"mnemonic" + passphrase;
44033 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
44034 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
44035 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
44036 var hashHex = sjcl.codec.hex.fromBits(result);
44040 self.splitWords = function(mnemonic) {
44041 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
44044 self.joinWords = function(words) {
44045 // Set space correctly depending on the language
44046 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
44048 if (language ==
"japanese") {
44049 space =
"\u3000"; // ideographic space
44051 return words.join(space);
44054 self.normalizeString = function(str) {
44055 if (typeof str.normalize ==
"function") {
44056 return str.normalize(
"NFKD");
44059 // TODO decide how to handle this in the future.
44060 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
44065 function byteArrayToWordArray(data) {
44067 for (var i=
0; i
<data.length/
4; i++) {
44069 v += data[i*
4 +
0] <<
8 *
3;
44070 v += data[i*
4 +
1] <<
8 *
2;
44071 v += data[i*
4 +
2] <<
8 *
1;
44072 v += data[i*
4 +
3] <<
8 *
0;
44078 function byteArrayToBinaryString(data) {
44080 for (var i=
0; i
<data.length; i++) {
44081 bin += zfill(data[i].toString(
2),
8);
44086 function hexStringToBinaryString(hexString) {
44088 for (var i=
0; i
<hexString.length; i++) {
44089 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
44091 return binaryString;
44094 function binaryStringToWordArray(binary) {
44095 var aLen = binary.length /
32;
44097 for (var i=
0; i
<aLen; i++) {
44098 var valueStr = binary.substring(
0,
32);
44099 var value = parseInt(valueStr,
2);
44101 binary = binary.slice(
32);
44106 // Pad a numeric string on the left with zero digits until the given width
44108 // Note this differs to the python implementation because it does not
44109 // handle numbers starting with a sign.
44110 function zfill(source, length) {
44111 source = source.toString();
44112 while (source.length < length) {
44113 source = '
0' + source;
44123 JavaScript BigInteger library version
0.9.1
44124 http://silentmatt.com/biginteger/
44126 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44127 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44128 Licensed under the MIT license.
44130 Support for arbitrary internal representation base was added by
44135 File: biginteger.js
44141 (function(exports) {
44145 An arbitrarily-large integer.
44147 <BigInteger> objects should be considered immutable. None of the "built-in"
44148 methods modify *this* or their arguments. All properties should be
44149 considered private.
44151 All the methods of
<BigInteger> instances can be called "statically". The
44152 static versions are convenient if you don't already have a
<BigInteger>
44155 As an example, these calls are equivalent.
44157 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44158 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44161 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44164 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44167 Constructor: BigInteger()
44168 Convert a value to a
<BigInteger>.
44170 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44171 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44172 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44173 without a radix argument.
44175 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44176 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44177 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44178 > var n3 = BigInteger(n2); // Return n2, unchanged
44180 The constructor form only takes an array and a sign. *n* must be an
44181 array of numbers in little-endian order, where each digit is between
0
44182 and BigInteger.base. The second parameter sets the sign: -
1 for
44183 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44184 may be modified*. If the array contains only zeros, the sign parameter
44185 is ignored and is forced to zero.
44187 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44191 n - Value to convert to a
<BigInteger>.
44195 A
<BigInteger> value.
44199 <parse>,
<BigInteger>
44201 function BigInteger(n, s, token) {
44202 if (token !== CONSTRUCT) {
44203 if (n instanceof BigInteger) {
44206 else if (typeof n === "undefined") {
44209 return BigInteger.parse(n);
44212 n = n || []; // Provide the nullary constructor for subclasses.
44213 while (n.length && !n[n.length -
1]) {
44217 this._s = n.length ? (s ||
1) :
0;
44220 BigInteger._construct = function(n, s) {
44221 return new BigInteger(n, s, CONSTRUCT);
44224 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44225 // require base to be a power of
10.
10^
7 is the largest such power
44226 // that won't cause a precision loss when digits are multiplied.
44227 var BigInteger_base =
10000000;
44228 var BigInteger_base_log10 =
7;
44230 BigInteger.base = BigInteger_base;
44231 BigInteger.base_log10 = BigInteger_base_log10;
44233 var ZERO = new BigInteger([],
0, CONSTRUCT);
44236 BigInteger.ZERO = ZERO;
44238 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44241 BigInteger.ONE = ONE;
44243 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44245 //
<BigInteger> -
1.
44246 BigInteger.M_ONE = M_ONE;
44249 // Shortcut for
<ZERO>.
44250 BigInteger._0 = ZERO;
44253 // Shortcut for
<ONE>.
44254 BigInteger._1 = ONE;
44258 Array of
<BigIntegers> from
0 to
36.
44260 These are used internally for parsing, but useful when you need a "small"
44265 <ZERO>,
<ONE>,
<_0>,
<_1>
44267 BigInteger.small = [
44270 /* Assuming BigInteger_base
> 36 */
44271 new BigInteger( [
2],
1, CONSTRUCT),
44272 new BigInteger( [
3],
1, CONSTRUCT),
44273 new BigInteger( [
4],
1, CONSTRUCT),
44274 new BigInteger( [
5],
1, CONSTRUCT),
44275 new BigInteger( [
6],
1, CONSTRUCT),
44276 new BigInteger( [
7],
1, CONSTRUCT),
44277 new BigInteger( [
8],
1, CONSTRUCT),
44278 new BigInteger( [
9],
1, CONSTRUCT),
44279 new BigInteger([
10],
1, CONSTRUCT),
44280 new BigInteger([
11],
1, CONSTRUCT),
44281 new BigInteger([
12],
1, CONSTRUCT),
44282 new BigInteger([
13],
1, CONSTRUCT),
44283 new BigInteger([
14],
1, CONSTRUCT),
44284 new BigInteger([
15],
1, CONSTRUCT),
44285 new BigInteger([
16],
1, CONSTRUCT),
44286 new BigInteger([
17],
1, CONSTRUCT),
44287 new BigInteger([
18],
1, CONSTRUCT),
44288 new BigInteger([
19],
1, CONSTRUCT),
44289 new BigInteger([
20],
1, CONSTRUCT),
44290 new BigInteger([
21],
1, CONSTRUCT),
44291 new BigInteger([
22],
1, CONSTRUCT),
44292 new BigInteger([
23],
1, CONSTRUCT),
44293 new BigInteger([
24],
1, CONSTRUCT),
44294 new BigInteger([
25],
1, CONSTRUCT),
44295 new BigInteger([
26],
1, CONSTRUCT),
44296 new BigInteger([
27],
1, CONSTRUCT),
44297 new BigInteger([
28],
1, CONSTRUCT),
44298 new BigInteger([
29],
1, CONSTRUCT),
44299 new BigInteger([
30],
1, CONSTRUCT),
44300 new BigInteger([
31],
1, CONSTRUCT),
44301 new BigInteger([
32],
1, CONSTRUCT),
44302 new BigInteger([
33],
1, CONSTRUCT),
44303 new BigInteger([
34],
1, CONSTRUCT),
44304 new BigInteger([
35],
1, CONSTRUCT),
44305 new BigInteger([
36],
1, CONSTRUCT)
44308 // Used for parsing/radix conversion
44309 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44313 Convert a
<BigInteger> to a string.
44315 When *base* is greater than
10, letters are upper case.
44319 base - Optional base to represent the number in (default is base
10).
44320 Must be between
2 and
36 inclusive, or an Error will be thrown.
44324 The string representation of the
<BigInteger>.
44326 BigInteger.prototype.toString = function(base) {
44327 base = +base ||
10;
44328 if (base <
2 || base
> 36) {
44329 throw new Error(
"illegal radix " + base +
".");
44331 if (this._s ===
0) {
44335 var str = this._s <
0 ?
"-" :
"";
44336 str += this._d[this._d.length -
1].toString();
44337 for (var i = this._d.length -
2; i
>=
0; i--) {
44338 var group = this._d[i].toString();
44339 while (group.length < BigInteger_base_log10) group = '
0' + group;
44345 var numerals = BigInteger.digits;
44346 base = BigInteger.small[base];
44347 var sign = this._s;
44349 var n = this.abs();
44353 while (n._s !==
0) {
44354 var divmod = n.divRem(base);
44357 // TODO: This could be changed to unshift instead of reversing at the end.
44358 // Benchmark both to compare speeds.
44359 digits.push(numerals[digit.valueOf()]);
44361 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44365 // Verify strings for parsing
44366 BigInteger.radixRegex = [
44408 Parse a string into a
<BigInteger>.
44410 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44411 *base* is not provided, it will be guessed based on the leading characters
44414 - "
0x" or "
0X": *base* =
16
44415 - "
0c" or "
0C": *base* =
8
44416 - "
0b" or "
0B": *base* =
2
44417 - else: *base* =
10
44419 If no base is provided, or *base* is
10, the number can be in exponential
44420 form. For example, these are all valid:
44422 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44423 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44424 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44426 If any characters fall outside the range defined by the radix, an exception
44431 s - The string to parse.
44432 base - Optional radix (default is to guess based on *s*).
44436 a
<BigInteger> instance.
44438 BigInteger.parse = function(s, base) {
44439 // Expands a number in exponential form to decimal form.
44440 // expandExponential("-
13.441*
10^
5") === "
1344100";
44441 // expandExponential("
1.12300e-1") === "
0.112300";
44442 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44443 function expandExponential(str) {
44444 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44446 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44449 var i = n.length + c;
44450 x = (l ? n : f).length;
44451 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44452 var z = (new Array(c +
1)).join("
0");
44454 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44459 if (typeof base === "undefined" || +base ===
10) {
44460 s = expandExponential(s);
44464 if (typeof base === "undefined") {
44465 prefixRE = '
0[xcb]';
44467 else if (base ==
16) {
44470 else if (base ==
8) {
44473 else if (base ==
2) {
44479 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44481 var sign = parts[
1] || "+";
44482 var baseSection = parts[
2] || "";
44483 var digits = parts[
3] || "";
44485 if (typeof base === "undefined") {
44487 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44490 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44493 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44500 else if (base <
2 || base
> 36) {
44501 throw new Error(
"Illegal radix " + base +
".");
44506 // Check for digits outside the range
44507 if (!(BigInteger.radixRegex[base].test(digits))) {
44508 throw new Error(
"Bad digit for radix " + base);
44511 // Strip leading zeros, and convert to array
44512 digits = digits.replace(/^
0+/,
"").split(
"");
44513 if (digits.length ===
0) {
44517 // Get the sign (we know it's not zero)
44518 sign = (sign ===
"-") ? -
1 :
1;
44523 while (digits.length
>= BigInteger_base_log10) {
44524 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44526 d.push(parseInt(digits.join(''),
10));
44527 return new BigInteger(d, sign, CONSTRUCT);
44530 // Do the conversion
44532 base = BigInteger.small[base];
44533 var small = BigInteger.small;
44534 for (var i =
0; i < digits.length; i++) {
44535 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44537 return new BigInteger(d._d, sign, CONSTRUCT);
44540 throw new Error("Invalid BigInteger format: " + s);
44546 Add two
<BigIntegers>.
44550 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44554 The numbers added together.
44558 <subtract>,
<multiply>,
<quotient>,
<next>
44560 BigInteger.prototype.add = function(n) {
44561 if (this._s ===
0) {
44562 return BigInteger(n);
44569 if (this._s !== n._s) {
44571 return this.subtract(n);
44578 var sum = new Array(Math.max(al, bl) +
1);
44579 var size = Math.min(al, bl);
44583 for (var i =
0; i < size; i++) {
44584 digit = a[i] + b[i] + carry;
44585 sum[i] = digit % BigInteger_base;
44586 carry = (digit / BigInteger_base) |
0;
44592 for (i = size; carry && i < al; i++) {
44593 digit = a[i] + carry;
44594 sum[i] = digit % BigInteger_base;
44595 carry = (digit / BigInteger_base) |
0;
44601 for ( ; i < al; i++) {
44605 return new BigInteger(sum, this._s, CONSTRUCT);
44610 Get the additive inverse of a
<BigInteger>.
44614 A
<BigInteger> with the same magnatude, but with the opposite sign.
44620 BigInteger.prototype.negate = function() {
44621 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44626 Get the absolute value of a
<BigInteger>.
44630 A
<BigInteger> with the same magnatude, but always positive (or zero).
44636 BigInteger.prototype.abs = function() {
44637 return (this._s <
0) ? this.negate() : this;
44642 Subtract two
<BigIntegers>.
44646 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44650 The *n* subtracted from *this*.
44654 <add>,
<multiply>,
<quotient>,
<prev>
44656 BigInteger.prototype.subtract = function(n) {
44657 if (this._s ===
0) {
44658 return BigInteger(n).negate();
44665 if (this._s !== n._s) {
44667 return this.add(n);
44671 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44673 m = new BigInteger(n._d,
1, CONSTRUCT);
44674 n = new BigInteger(this._d,
1, CONSTRUCT);
44677 // Both are positive =
> a - b
44678 var sign = m.compareAbs(n);
44682 else if (sign <
0) {
44694 var diff = new Array(al); // al
>= bl since a
> b
44699 for (i =
0; i < bl; i++) {
44700 digit = a[i] - borrow - b[i];
44702 digit += BigInteger_base;
44710 for (i = bl; i < al; i++) {
44711 digit = a[i] - borrow;
44713 digit += BigInteger_base;
44721 for ( ; i < al; i++) {
44725 return new BigInteger(diff, sign, CONSTRUCT);
44729 function addOne(n, sign) {
44731 var sum = a.slice();
44736 var digit = (a[i] ||
0) +
1;
44737 sum[i] = digit % BigInteger_base;
44738 if (digit <= BigInteger_base -
1) {
44744 return new BigInteger(sum, sign, CONSTRUCT);
44747 function subtractOne(n, sign) {
44749 var sum = a.slice();
44754 var digit = (a[i] ||
0) -
1;
44756 sum[i] = digit + BigInteger_base;
44765 return new BigInteger(sum, sign, CONSTRUCT);
44770 Get the next
<BigInteger> (add one).
44780 BigInteger.prototype.next = function() {
44785 return subtractOne(this, -
1);
44788 return addOne(this,
1);
44794 Get the previous
<BigInteger> (subtract one).
44804 BigInteger.prototype.prev = function() {
44809 return addOne(this, -
1);
44812 return subtractOne(this,
1);
44818 Function: compareAbs
44819 Compare the absolute value of two
<BigIntegers>.
44821 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44825 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44829 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44835 BigInteger.prototype.compareAbs = function(n) {
44840 if (!(n instanceof BigInteger)) {
44841 if (!isFinite(n)) {
44842 return(isNaN(n) ? n : -
1);
44847 if (this._s ===
0) {
44848 return (n._s !==
0) ? -
1 :
0;
44854 var l = this._d.length;
44855 var nl = n._d.length;
44865 for (var i = l-
1; i
>=
0; i--) {
44866 if (a[i] !== b[i]) {
44867 return a[i] < b[i] ? -
1 :
1;
44876 Compare two
<BigIntegers>.
44880 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44884 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44888 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44890 BigInteger.prototype.compare = function(n) {
44897 if (this._s ===
0) {
44901 if (this._s === n._s) { // both positive or both negative
44902 var cmp = this.compareAbs(n);
44903 return cmp * this._s;
44912 Return true iff *this* is either
1 or -
1.
44916 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44920 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44921 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44923 BigInteger.prototype.isUnit = function() {
44924 return this === ONE ||
44926 (this._d.length ===
1 && this._d[
0] ===
1);
44931 Multiply two
<BigIntegers>.
44935 n - The number to multiply *this* by. Will be converted to a
44940 The numbers multiplied together.
44944 <add>,
<subtract>,
<quotient>,
<square>
44946 BigInteger.prototype.multiply = function(n) {
44947 // TODO: Consider adding Karatsuba multiplication for large numbers
44948 if (this._s ===
0) {
44956 if (this.isUnit()) {
44964 return this.negate();
44969 return this.square();
44972 var r = (this._d.length
>= n._d.length);
44973 var a = (r ? this : n)._d; // a will be longer than b
44974 var b = (r ? n : this)._d;
44979 var partial = new Array(pl);
44981 for (i =
0; i < pl; i++) {
44985 for (i =
0; i < bl; i++) {
44988 var jlimit = al + i;
44990 for (var j = i; j < jlimit; j++) {
44991 digit = partial[j] + bi * a[j - i] + carry;
44992 carry = (digit / BigInteger_base) |
0;
44993 partial[j] = (digit % BigInteger_base) |
0;
44996 digit = partial[j] + carry;
44997 carry = (digit / BigInteger_base) |
0;
44998 partial[j] = digit % BigInteger_base;
45001 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
45004 // Multiply a BigInteger by a single-digit native number
45005 // Assumes that this and n are
>=
0
45006 // This is not really intended to be used outside the library itself
45007 BigInteger.prototype.multiplySingleDigit = function(n) {
45008 if (n ===
0 || this._s ===
0) {
45016 if (this._d.length ===
1) {
45017 digit = this._d[
0] * n;
45018 if (digit
>= BigInteger_base) {
45019 return new BigInteger([(digit % BigInteger_base)|
0,
45020 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
45022 return new BigInteger([digit],
1, CONSTRUCT);
45026 return this.add(this);
45028 if (this.isUnit()) {
45029 return new BigInteger([n],
1, CONSTRUCT);
45036 var partial = new Array(pl);
45037 for (var i =
0; i < pl; i++) {
45042 for (var j =
0; j < al; j++) {
45043 digit = n * a[j] + carry;
45044 carry = (digit / BigInteger_base) |
0;
45045 partial[j] = (digit % BigInteger_base) |
0;
45048 partial[j] = carry;
45051 return new BigInteger(partial,
1, CONSTRUCT);
45056 Multiply a
<BigInteger> by itself.
45058 This is slightly faster than regular multiplication, since it removes the
45059 duplicated multiplcations.
45063 > this.multiply(this)
45068 BigInteger.prototype.square = function() {
45069 // Normally, squaring a
10-digit number would take
100 multiplications.
45070 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
45071 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
45072 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
45074 if (this._s ===
0) {
45077 if (this.isUnit()) {
45081 var digits = this._d;
45082 var length = digits.length;
45083 var imult1 = new Array(length + length +
1);
45084 var product, carry, k;
45087 // Calculate diagonal
45088 for (i =
0; i < length; i++) {
45090 product = digits[i] * digits[i];
45091 carry = (product / BigInteger_base) |
0;
45092 imult1[k] = product % BigInteger_base;
45093 imult1[k +
1] = carry;
45096 // Calculate repeating part
45097 for (i =
0; i < length; i++) {
45100 for (var j = i +
1; j < length; j++, k++) {
45101 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
45102 carry = (product / BigInteger_base) |
0;
45103 imult1[k] = product % BigInteger_base;
45106 var digit = carry + imult1[k];
45107 carry = (digit / BigInteger_base) |
0;
45108 imult1[k] = digit % BigInteger_base;
45109 imult1[k +
1] += carry;
45112 return new BigInteger(imult1,
1, CONSTRUCT);
45117 Divide two
<BigIntegers> and truncate towards zero.
45119 <quotient> throws an exception if *n* is zero.
45123 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45127 The *this* / *n*, truncated to an integer.
45131 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45133 BigInteger.prototype.quotient = function(n) {
45134 return this.divRem(n)[
0];
45139 Deprecated synonym for
<quotient>.
45141 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45144 Function: remainder
45145 Calculate the remainder of two
<BigIntegers>.
45147 <remainder> throws an exception if *n* is zero.
45151 n - The remainder after *this* is divided *this* by *n*. Will be
45152 converted to a
<BigInteger>.
45160 <divRem>,
<quotient>
45162 BigInteger.prototype.remainder = function(n) {
45163 return this.divRem(n)[
1];
45168 Calculate the integer quotient and remainder of two
<BigIntegers>.
45170 <divRem> throws an exception if *n* is zero.
45174 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45178 A two-element array containing the quotient and the remainder.
45182 is exactly equivalent to
45184 > [a.quotient(b), a.remainder(b)]
45186 except it is faster, because they are calculated at the same time.
45190 <quotient>,
<remainder>
45192 BigInteger.prototype.divRem = function(n) {
45195 throw new Error("Divide by zero");
45197 if (this._s ===
0) {
45198 return [ZERO, ZERO];
45200 if (n._d.length ===
1) {
45201 return this.divRemSmall(n._s * n._d[
0]);
45204 // Test for easy cases -- |n1| <= |n2|
45205 switch (this.compareAbs(n)) {
45206 case
0: // n1 == n2
45207 return [this._s === n._s ? ONE : M_ONE, ZERO];
45208 case -
1: // |n1| < |n2|
45209 return [ZERO, this];
45212 var sign = this._s * n._s;
45214 var b_digits = this._d;
45215 var b_index = b_digits.length;
45216 var digits = n._d.length;
45220 var part = new BigInteger([],
0, CONSTRUCT);
45223 part._d.unshift(b_digits[--b_index]);
45224 part = new BigInteger(part._d,
1, CONSTRUCT);
45226 if (part.compareAbs(n) <
0) {
45230 if (part._s ===
0) {
45234 var xlen = part._d.length, ylen = a._d.length;
45235 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45236 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45237 if (part._d.length
> a._d.length) {
45238 // The length of part._d can either match a._d length,
45239 // or exceed it by one.
45240 highx = (highx+
1)*BigInteger_base;
45242 guess = Math.ceil(highx/highy);
45245 var check = a.multiplySingleDigit(guess);
45246 if (check.compareAbs(part) <=
0) {
45256 var diff = part.subtract(check);
45257 part._d = diff._d.slice();
45260 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45261 new BigInteger(part._d, this._s, CONSTRUCT)];
45264 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45265 // [
1, BigInteger.base). It's not necessary to call this, since the
45266 // other division functions will call it if they are able to.
45267 BigInteger.prototype.divRemSmall = function(n) {
45271 throw new Error("Divide by zero");
45274 var n_s = n <
0 ? -
1 :
1;
45275 var sign = this._s * n_s;
45278 if (n <
1 || n
>= BigInteger_base) {
45279 throw new Error("Argument out of range");
45282 if (this._s ===
0) {
45283 return [ZERO, ZERO];
45286 if (n ===
1 || n === -
1) {
45287 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45290 //
2 <= n < BigInteger_base
45292 // divide a single digit by a single digit
45293 if (this._d.length ===
1) {
45294 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45295 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45305 var digits = this._d.slice();
45306 var quot = new Array(digits.length);
45312 while (digits.length) {
45313 part = part * BigInteger_base + digits[digits.length -
1];
45317 diff = BigInteger_base * diff + part;
45324 guess = (part / n) |
0;
45327 var check = n * guess;
45328 diff = part - check;
45339 r = new BigInteger([diff],
1, CONSTRUCT);
45343 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45348 Return true iff *this* is divisible by two.
45350 Note that
<BigInteger.ZERO
> is even.
45354 true if *this* is even, false otherwise.
45360 BigInteger.prototype.isEven = function() {
45361 var digits = this._d;
45362 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45367 Return true iff *this* is not divisible by two.
45371 true if *this* is odd, false otherwise.
45377 BigInteger.prototype.isOdd = function() {
45378 return !this.isEven();
45383 Get the sign of a
<BigInteger>.
45393 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45395 BigInteger.prototype.sign = function() {
45400 Function: isPositive
45401 Return true iff *this*
> 0.
45405 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45409 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45411 BigInteger.prototype.isPositive = function() {
45412 return this._s
> 0;
45416 Function: isNegative
45417 Return true iff *this* <
0.
45421 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45425 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45427 BigInteger.prototype.isNegative = function() {
45428 return this._s <
0;
45433 Return true iff *this* ==
0.
45437 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45441 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45443 BigInteger.prototype.isZero = function() {
45444 return this._s ===
0;
45449 Multiply a
<BigInteger> by a power of
10.
45451 This is equivalent to, but faster than
45454 > return this.multiply(BigInteger("
1e" + n));
45457 > return this.quotient(BigInteger("
1e" + -n));
45462 n - The power of
10 to multiply *this* by. *n* is converted to a
45463 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45464 (
0x7FFFFFFF), or an exception will be thrown.
45468 *this* * (
10 ** *n*), truncated to an integer if necessary.
45474 BigInteger.prototype.exp10 = function(n) {
45479 if (Math.abs(n)
> Number(MAX_EXP)) {
45480 throw new Error("exponent too large in BigInteger.exp10");
45482 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45483 if (this._s ===
0) {
45487 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45489 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45495 k = k.multiplySingleDigit(Math.pow(
10, n));
45496 return (this._s <
0 ? k.negate() : k);
45497 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45500 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45502 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45505 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45511 Raise a
<BigInteger> to a power.
45513 In this implementation,
0**
0 is
1.
45517 n - The exponent to raise *this* by. *n* must be no greater than
45518 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45522 *this* raised to the *nth* power.
45528 BigInteger.prototype.pow = function(n) {
45529 if (this.isUnit()) {
45534 return BigInteger(n).isOdd() ? this : this.negate();
45542 else if (n._s <
0) {
45543 if (this._s ===
0) {
45544 throw new Error(
"Divide by zero");
45550 if (this._s ===
0) {
45557 if (n.compareAbs(MAX_EXP)
> 0) {
45558 throw new Error(
"exponent too large in BigInteger.pow");
45562 var two = BigInteger.small[
2];
45564 while (n.isPositive()) {
45566 aux = aux.multiply(x);
45572 n = n.quotient(two);
45580 Raise a
<BigInteger> to a power (mod m).
45582 Because it is reduced by a modulus,
<modPow> is not limited by
45583 <BigInteger.MAX_EXP
> like
<pow>.
45587 exponent - The exponent to raise *this* by. Must be positive.
45588 modulus - The modulus.
45592 *this* ^ *exponent* (mod *modulus*).
45598 BigInteger.prototype.modPow = function(exponent, modulus) {
45602 while (exponent.isPositive()) {
45603 if (exponent.isOdd()) {
45604 result = result.multiply(base).remainder(modulus);
45607 exponent = exponent.quotient(BigInteger.small[
2]);
45608 if (exponent.isPositive()) {
45609 base = base.square().remainder(modulus);
45618 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45620 This is equivalent to
45622 > Math.log(this.toJSValue())
45624 but handles values outside of the native number range.
45634 BigInteger.prototype.log = function() {
45636 case
0: return -Infinity;
45637 case -
1: return NaN;
45638 default: // Fall through.
45641 var l = this._d.length;
45643 if (l*BigInteger_base_log10 <
30) {
45644 return Math.log(this.valueOf());
45647 var N = Math.ceil(
30/BigInteger_base_log10);
45648 var firstNdigits = this._d.slice(l - N);
45649 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45654 Convert a
<BigInteger> to a native JavaScript integer.
45656 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45661 > parseInt(this.toString(),
10)
45665 <toString>,
<toJSValue>
45667 BigInteger.prototype.valueOf = function() {
45668 return parseInt(this.toString(),
10);
45672 Function: toJSValue
45673 Convert a
<BigInteger> to a native JavaScript integer.
45675 This is the same as valueOf, but more explicitly named.
45679 > parseInt(this.toString(),
10)
45683 <toString>,
<valueOf>
45685 BigInteger.prototype.toJSValue = function() {
45686 return parseInt(this.toString(),
10);
45689 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45690 // Constant: MAX_EXP
45691 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45692 BigInteger.MAX_EXP = MAX_EXP;
45695 function makeUnary(fn) {
45696 return function(a) {
45697 return fn.call(BigInteger(a));
45701 function makeBinary(fn) {
45702 return function(a, b) {
45703 return fn.call(BigInteger(a), BigInteger(b));
45707 function makeTrinary(fn) {
45708 return function(a, b, c) {
45709 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45715 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45716 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45717 var trinary = ["modPow"];
45719 for (i =
0; i < unary.length; i++) {
45721 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45724 for (i =
0; i < binary.length; i++) {
45726 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45729 for (i =
0; i < trinary.length; i++) {
45731 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45734 BigInteger.exp10 = function(x, n) {
45735 return BigInteger(x).exp10(n);
45740 exports.BigInteger = BigInteger;
45741 })(typeof exports !== 'undefined' ? exports : this);
45743 <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){
45744 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;
45746 },{}],
2:[function(require,module,exports){
45747 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;
45749 },{"./scoring":
6}],
3:[function(require,module,exports){
45750 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(","),
45751 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(","),
45752 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(","),
45753 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(","),
45754 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;
45756 },{}],
4:[function(require,module,exports){
45757 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;
45759 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45760 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;
45762 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45763 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;
45765 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45766 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;
45770 //# sourceMappingURL=zxcvbn.js.map
45773 * Detects entropy from a string.
45780 * hexadecimal [
0-
9A-F]
45781 * card [A2-
9TJQK][CDHS]
45783 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45784 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45788 window.Entropy = new (function() {
45790 var TWO = new BigInteger(
2);
45792 // matchers returns an array of the matched events for each type of entropy.
45794 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45795 // matchers.binary("a10") returns ["
1", "
0"]
45796 // matchers.hex("a10") returns ["a", "
1", "
0"]
45798 binary: function(str) {
45799 return str.match(/[
0-
1]/gi) || [];
45801 base6: function(str) {
45802 return str.match(/[
0-
5]/gi) || [];
45804 dice: function(str) {
45805 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45807 base10: function(str) {
45808 return str.match(/[
0-
9]/gi) || [];
45810 hex: function(str) {
45811 return str.match(/[
0-
9A-F]/gi) || [];
45813 card: function(str) {
45814 // Format is NumberSuit, eg
45815 // AH ace of hearts
45816 //
8C eight of clubs
45817 // TD ten of diamonds
45818 // JS jack of spades
45819 // QH queen of hearts
45820 // KC king of clubs
45821 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45825 // Convert array of cards from ["ac", "
4d", "ks"]
45826 // to numbers between
0 and
51 [
0,
16,
51]
45827 function convertCardsToInts(cards) {
45829 var values = "a23456789tjqk";
45830 var suits = "cdhs";
45831 for (var i=
0; i
<cards.length; i++) {
45832 var card = cards[i].toLowerCase();
45833 var value = card[
0];
45834 var suit = card[
1];
45835 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45841 this.fromString = function(rawEntropyStr) {
45842 // Find type of entropy being used (binary, hex, dice etc)
45843 var base = getBase(rawEntropyStr);
45844 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45845 // This is done by changing all
6s to
0s
45846 if (base.str ==
"dice") {
45849 for (var i=
0; i
<base.parts.length; i++) {
45850 var c = base.parts[i];
45851 if (
"12345".indexOf(c)
> -
1) {
45852 newParts[i] = base.parts[i];
45853 newInts[i] = base.ints[i];
45860 base.str = "base
6 (dice)";
45861 base.ints = newInts;
45862 base.parts = newParts;
45863 base.matcher = matchers.base6;
45865 // Detect empty entropy
45866 if (base.parts.length ==
0) {
45874 // Convert base.ints to BigInteger.
45875 // Due to using unusual bases, eg cards of base52, this is not as simple as
45876 // using BigInteger.parse()
45877 var entropyInt = BigInteger.ZERO;
45878 for (var i=base.ints.length-
1; i
>=
0; i--) {
45879 var thisInt = BigInteger.parse(base.ints[i]);
45880 var power = (base.ints.length -
1) - i;
45881 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45882 entropyInt = entropyInt.add(additionalEntropy);
45884 // Convert entropy to binary
45885 var entropyBin = entropyInt.toString(
2);
45886 // If the first integer is small, it must be padded with zeros.
45887 // Otherwise the chance of the first bit being
1 is
100%, which is
45888 // obviously incorrect.
45889 // This is not perfect for non-
2^n bases.
45890 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45891 while (entropyBin.length < expectedBits) {
45892 entropyBin = "
0" + entropyBin;
45894 // Calculate the number of bits per event
45895 var bitsPerEvent = Math.log2(base.asInt);
45896 // Cards binary must be handled differently, since they're not replaced
45897 if (base.asInt ==
52) {
45898 var cardEntropy = processCardEntropy(base.parts);
45899 entropyBin = cardEntropy.binaryStr;
45900 bitsPerEvent = cardEntropy.bitsPerEvent;
45902 // Supply a 'filtered' entropy string for display purposes
45903 var entropyClean = base.parts.join("");
45904 var entropyHtml = base.parts.join("");
45905 if (base.asInt ==
52) {
45906 entropyClean = base.parts.join(" ").toUpperCase();
45907 entropyClean = entropyClean.replace(/C/g, "\u2663");
45908 entropyClean = entropyClean.replace(/D/g, "\u2666");
45909 entropyClean = entropyClean.replace(/H/g, "\u2665");
45910 entropyClean = entropyClean.replace(/S/g, "\u2660");
45911 entropyHtml = base.parts.join(" ").toUpperCase();
45912 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45913 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45914 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45915 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45917 // Return the result
45919 binaryStr: entropyBin,
45920 cleanStr: entropyClean,
45921 cleanHtml: entropyHtml,
45922 bitsPerEvent: bitsPerEvent,
45928 function getSortedDeck() {
45930 var suits = "CDHS
";
45931 var values = "A23456789TJQK
";
45932 for (var i=0; i<suits.length; i++) {
45933 for (var j=0; j<values.length; j++) {
45934 s.push(values[j]+suits[i]);
45940 function getBase(str) {
45941 // Need to get the lowest base for the supplied entropy.
45942 // This prevents interpreting, say, dice rolls as hexadecimal.
45943 var binaryMatches = matchers.binary(str);
45944 var hexMatches = matchers.hex(str);
45945 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45946 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45947 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45950 parts: binaryMatches,
45951 matcher: matchers.binary,
45956 var cardMatches = matchers.card(str);
45957 if (cardMatches.length >= hexMatches.length / 2) {
45958 var ints = convertCardsToInts(cardMatches);
45961 parts: cardMatches,
45962 matcher: matchers.card,
45967 var diceMatches = matchers.dice(str);
45968 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45969 var ints = diceMatches.map(function(i) { return parseInt(i) });
45972 parts: diceMatches,
45973 matcher: matchers.dice,
45978 var base6Matches = matchers.base6(str);
45979 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45980 var ints = base6Matches.map(function(i) { return parseInt(i) });
45983 parts: base6Matches,
45984 matcher: matchers.base6,
45989 var base10Matches = matchers.base10(str);
45990 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45991 var ints = base10Matches.map(function(i) { return parseInt(i) });
45994 parts: base10Matches,
45995 matcher: matchers.base10,
46000 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
46004 matcher: matchers.hex,
46006 str:
"hexadecimal",
46010 // Assume cards are NOT replaced.
46011 // Additional entropy decreases as more cards are used. This means
46012 // total possible entropy is measured using n!, not base^n.
46013 // eg the second last card can be only one of two, not one of fifty two
46014 // so the added entropy for that card is only one bit at most
46015 function processCardEntropy(cards) {
46016 // Track how many instances of each card have been used, and thus
46017 // how many decks are in use.
46018 var cardCounts = {};
46019 var numberOfDecks =
0;
46020 // Work out number of decks by max(duplicates)
46021 for (var i=
0; i
<cards.length; i++) {
46022 // Get the card that was drawn
46023 var cardLower = cards[i];
46024 var card = cardLower.toUpperCase();
46025 // Initialize the count for this card if needed
46026 if (!(card in cardCounts)) {
46027 cardCounts[card] =
0;
46029 cardCounts[card] +=
1;
46030 // See if this is max(duplicates)
46031 if (cardCounts[card]
> numberOfDecks) {
46032 numberOfDecks = cardCounts[card];
46035 // Work out the total number of bits for this many decks
46036 // See http://crypto.stackexchange.com/q/
41886
46037 var gainedBits =
0;
46038 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
46039 // which becomes infinity for numberOfDecks
> 4
46040 for (var i=
1; i<=
52*numberOfDecks; i++) {
46041 gainedBits = gainedBits + Math.log2(i);
46043 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
46044 var maxBits = gainedBits - lostBits;
46045 // Convert the drawn cards to a binary representation.
46046 // The exact technique for doing this is unclear.
46048 // http://crypto.stackexchange.com/a/
41896
46049 //
"I even doubt that this is well defined (only the average entropy
46050 // is, I believe)."
46052 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
46053 //
"The binary representation can be the first log(permutations,2) bits
46054 // of the sha-2 hash of the normalized deck string."
46056 // In this specific implementation, the first N bits of the hash of the
46057 // normalized cards string is being used. Uppercase, no spaces; eg
46058 // sha256(
"AH8DQSTC2H")
46059 var totalCards = numberOfDecks *
52;
46060 var percentUsed = cards.length / totalCards;
46061 // Calculate the average number of bits of entropy for the number of
46063 var numberOfBits = Math.floor(maxBits * percentUsed);
46064 // Create a normalized string of the selected cards
46065 var normalizedCards = cards.join(
"").toUpperCase();
46066 // Convert to binary using the SHA256 hash of the normalized cards.
46067 // If the number of bits is more than
256, multiple hashes
46068 // are used until the required number of bits is reached.
46069 var entropyBin =
"";
46070 var iterations =
0;
46071 while (entropyBin.length < numberOfBits) {
46072 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
46073 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
46074 for (var i=
0; i
<hashHex.length; i++) {
46075 var decimal = parseInt(hashHex[i],
16);
46076 var binary = decimal.toString(
2);
46077 while (binary.length <
4) {
46078 binary =
"0" + binary;
46080 entropyBin = entropyBin + binary;
46082 iterations = iterations +
1;
46084 // Truncate to the appropriate number of bits.
46085 entropyBin = entropyBin.substring(
0, numberOfBits);
46086 // Get the number of bits per event
46087 bitsPerEvent = maxBits / totalCards;
46089 binaryStr: entropyBin,
46090 bitsPerEvent: bitsPerEvent,
46094 // Polyfill for Math.log2
46095 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
46096 Math.log2 = Math.log2 || function(x) {
46097 // The polyfill isn't good enough because of the poor accuracy of
46099 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
46100 // So instead use the BigInteger library to get it right.
46101 return BigInteger.log(x) / BigInteger.log(
2);
46104 // Depends on BigInteger
46105 function factorial(n) {
46109 f = BigInteger.ONE;
46110 for (var i=
1; i<=n; i++) {
46111 f = f.multiply(new BigInteger(i));
46118 <script>(function() {
46120 // mnemonics is populated as required by getLanguage
46121 var mnemonics = { "english": new Mnemonic("english") };
46122 var mnemonic = mnemonics["english"];
46124 var bip32RootKey = null;
46125 var bip32ExtendedKey = null;
46126 var network = bitcoinjs.bitcoin.networks.bitcoin;
46127 var addressRowTemplate = $("#address-row-template");
46129 var showIndex = true;
46130 var showAddress = true;
46131 var showPubKey = true;
46132 var showPrivKey = true;
46133 var showQr = false;
46134 var litecoinUseLtub = false;
46136 var entropyChangeTimeoutEvent = null;
46137 var phraseChangeTimeoutEvent = null;
46138 var rootKeyChangedTimeoutEvent = null;
46140 var generationProcesses = [];
46143 DOM.network = $(".network");
46144 DOM.bip32Client = $("#bip32-client");
46145 DOM.phraseNetwork = $("#network-phrase");
46146 DOM.useEntropy = $(".use-entropy");
46147 DOM.entropyContainer = $(".entropy-container");
46148 DOM.entropy = $(".entropy");
46149 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46150 DOM.entropyType = DOM.entropyContainer.find(".type");
46151 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46152 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46153 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46154 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46155 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46156 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46157 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46158 DOM.phrase = $(".phrase");
46159 DOM.passphrase = $(".passphrase");
46160 DOM.generateContainer = $(".generate-container");
46161 DOM.generate = $(".generate");
46162 DOM.seed = $(".seed");
46163 DOM.rootKey = $(".root-key");
46164 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46165 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46166 DOM.extendedPrivKey = $(".extended-priv-key");
46167 DOM.extendedPubKey = $(".extended-pub-key");
46168 DOM.bip32tab = $("#bip32-tab");
46169 DOM.bip44tab = $("#bip44-tab");
46170 DOM.bip49tab = $("#bip49-tab");
46171 DOM.bip32panel = $("#bip32");
46172 DOM.bip44panel = $("#bip44");
46173 DOM.bip49panel = $("#bip49");
46174 DOM.bip32path = $("#bip32-path");
46175 DOM.bip44path = $("#bip44-path");
46176 DOM.bip44purpose = $("#bip44 .purpose");
46177 DOM.bip44coin = $("#bip44 .coin");
46178 DOM.bip44account = $("#bip44 .account");
46179 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46180 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46181 DOM.bip44change = $("#bip44 .change");
46182 DOM.bip49unavailable = $("#bip49 .unavailable");
46183 DOM.bip49available = $("#bip49 .available");
46184 DOM.bip49path = $("#bip49-path");
46185 DOM.bip49purpose = $("#bip49 .purpose");
46186 DOM.bip49coin = $("#bip49 .coin");
46187 DOM.bip49account = $("#bip49 .account");
46188 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46189 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46190 DOM.bip49change = $("#bip49 .change");
46191 DOM.generatedStrength = $(".generate-container .strength");
46192 DOM.hardenedAddresses = $(".hardened-addresses");
46193 DOM.addresses = $(".addresses");
46194 DOM.rowsToAdd = $(".rows-to-add");
46195 DOM.more = $(".more");
46196 DOM.feedback = $(".feedback");
46197 DOM.tab = $(".derivation-type a");
46198 DOM.indexToggle = $(".index-toggle");
46199 DOM.addressToggle = $(".address-toggle");
46200 DOM.publicKeyToggle = $(".public-key-toggle");
46201 DOM.privateKeyToggle = $(".private-key-toggle");
46202 DOM.languages = $(".languages a");
46203 DOM.qrContainer = $(".qr-container");
46204 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46205 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46206 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46207 DOM.showQrEls = $("[data-show-qr]");
46211 DOM.network.on("change", networkChanged);
46212 DOM.bip32Client.on("change", bip32ClientChanged);
46213 DOM.useEntropy.on("change", setEntropyVisibility);
46214 DOM.entropy.on("input", delayedEntropyChanged);
46215 DOM.entropyMnemonicLength.on("change", entropyChanged);
46216 DOM.phrase.on("input", delayedPhraseChanged);
46217 DOM.passphrase.on("input", delayedPhraseChanged);
46218 DOM.generate.on("click", generateClicked);
46219 DOM.more.on("click", showMore);
46220 DOM.rootKey.on("input", delayedRootKeyChanged);
46221 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46222 DOM.bip32path.on("input", calcForDerivationPath);
46223 DOM.bip44account.on("input", calcForDerivationPath);
46224 DOM.bip44change.on("input", calcForDerivationPath);
46225 DOM.bip49account.on("input", calcForDerivationPath);
46226 DOM.bip49change.on("input", calcForDerivationPath);
46227 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46228 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46229 DOM.indexToggle.on("click", toggleIndexes);
46230 DOM.addressToggle.on("click", toggleAddresses);
46231 DOM.publicKeyToggle.on("click", togglePublicKeys);
46232 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46233 DOM.languages.on("click", languageChanged);
46234 setQrEvents(DOM.showQrEls);
46237 hideValidationError();
46238 populateNetworkSelect();
46239 populateClientSelect();
46244 function networkChanged(e) {
46245 clearDerivedKeys();
46246 clearAddressesList();
46247 DOM.litecoinLtubContainer.addClass("hidden");
46248 var networkIndex = e.target.value;
46249 var network = networks[networkIndex];
46250 network.onSelect();
46251 if (network.bip49available) {
46257 if (seed != null) {
46265 function bip32ClientChanged(e) {
46266 var clientIndex = DOM.bip32Client.val();
46267 if (clientIndex == "custom") {
46268 DOM.bip32path.prop("readonly", false);
46271 DOM.bip32path.prop("readonly", true);
46272 clients[clientIndex].onSelect();
46273 if (seed != null) {
46282 function setEntropyVisibility() {
46283 if (isUsingOwnEntropy()) {
46284 DOM.entropyContainer.removeClass("hidden");
46285 DOM.generateContainer.addClass("hidden");
46286 DOM.phrase.prop("readonly", true);
46287 DOM.entropy.focus();
46291 DOM.entropyContainer.addClass("hidden");
46292 DOM.generateContainer.removeClass("hidden");
46293 DOM.phrase.prop("readonly", false);
46298 function delayedPhraseChanged() {
46299 hideValidationError();
46301 bip32RootKey = null;
46302 bip32ExtendedKey = null;
46303 clearAddressesList();
46305 if (phraseChangeTimeoutEvent != null) {
46306 clearTimeout(phraseChangeTimeoutEvent);
46308 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46311 function phraseChanged() {
46313 setMnemonicLanguage();
46314 // Get the mnemonic phrase
46315 var phrase = DOM.phrase.val();
46316 var errorText = findPhraseErrors(phrase);
46318 showValidationError(errorText);
46321 // Calculate and display
46322 var passphrase = DOM.passphrase.val();
46323 calcBip32RootKeyFromSeed(phrase, passphrase);
46324 calcForDerivationPath();
46327 function delayedEntropyChanged() {
46328 hideValidationError();
46330 if (entropyChangeTimeoutEvent != null) {
46331 clearTimeout(entropyChangeTimeoutEvent);
46333 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46336 function entropyChanged() {
46337 // If blank entropy, clear mnemonic, addresses, errors
46338 if (DOM.entropy.val().trim().length ==
0) {
46340 clearEntropyFeedback();
46341 DOM.phrase.val("");
46342 showValidationError("Blank entropy");
46345 // Get the current phrase to detect changes
46346 var phrase = DOM.phrase.val();
46347 // Set the phrase from the entropy
46348 setMnemonicFromEntropy();
46349 // Recalc addresses if the phrase has changed
46350 var newPhrase = DOM.phrase.val();
46351 if (newPhrase != phrase) {
46352 if (newPhrase.length ==
0) {
46364 function delayedRootKeyChanged() {
46365 // Warn if there is an existing mnemonic or passphrase.
46366 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46367 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46368 DOM.rootKey.val(bip32RootKey);
46372 hideValidationError();
46374 // Clear existing mnemonic and passphrase
46375 DOM.phrase.val(
"");
46376 DOM.passphrase.val(
"");
46378 if (rootKeyChangedTimeoutEvent != null) {
46379 clearTimeout(rootKeyChangedTimeoutEvent);
46381 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46384 function rootKeyChanged() {
46386 hideValidationError();
46387 // Validate the root key TODO
46388 var rootKeyBase58 = DOM.rootKey.val();
46389 var errorText = validateRootKey(rootKeyBase58);
46391 showValidationError(errorText);
46394 // Calculate and display
46395 calcBip32RootKeyFromBase58(rootKeyBase58);
46396 calcForDerivationPath();
46399 function litecoinUseLtubChanged() {
46400 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46401 if (litecoinUseLtub) {
46402 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46405 network = bitcoinjs.bitcoin.networks.litecoin;
46410 function calcForDerivationPath() {
46411 clearDerivedKeys();
46412 clearAddressesList();
46414 // Don't show bip49 if it's selected but network doesn't support it
46415 if (bip49TabSelected() && !networkHasBip49()) {
46418 // Get the derivation path
46419 var derivationPath = getDerivationPath();
46420 var errorText = findDerivationPathErrors(derivationPath);
46422 showValidationError(errorText);
46425 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46426 if (bip44TabSelected()) {
46427 displayBip44Info();
46429 if (bip49TabSelected()) {
46430 displayBip49Info();
46432 displayBip32Info();
46435 function generateClicked() {
46436 if (isUsingOwnEntropy()) {
46441 setTimeout(function() {
46442 setMnemonicLanguage();
46443 var phrase = generateRandomPhrase();
46451 function languageChanged() {
46452 setTimeout(function() {
46453 setMnemonicLanguage();
46454 if (DOM.phrase.val().length
> 0) {
46455 var newPhrase = convertPhraseToNewLanguage();
46456 DOM.phrase.val(newPhrase);
46460 DOM.generate.trigger(
"click");
46465 function toggleIndexes() {
46466 showIndex = !showIndex;
46467 $(
"td.index span").toggleClass(
"invisible");
46470 function toggleAddresses() {
46471 showAddress = !showAddress;
46472 $(
"td.address span").toggleClass(
"invisible");
46475 function togglePublicKeys() {
46476 showPubKey = !showPubKey;
46477 $(
"td.pubkey span").toggleClass(
"invisible");
46480 function togglePrivateKeys() {
46481 showPrivKey = !showPrivKey;
46482 $(
"td.privkey span").toggleClass(
"invisible");
46487 function generateRandomPhrase() {
46488 if (!hasStrongRandom()) {
46489 var errorText =
"This browser does not support strong randomness";
46490 showValidationError(errorText);
46493 var numWords = parseInt(DOM.generatedStrength.val());
46494 var strength = numWords /
3 *
32;
46495 var words = mnemonic.generate(strength);
46496 DOM.phrase.val(words);
46500 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46501 seed = mnemonic.toSeed(phrase, passphrase);
46502 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46505 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46506 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46509 function calcBip32ExtendedKey(path) {
46510 // Check there's a root key to derive from
46511 if (!bip32RootKey) {
46512 return bip32RootKey;
46514 var extendedKey = bip32RootKey;
46515 // Derive the key from the path
46516 var pathBits = path.split(
"/");
46517 for (var i=
0; i
<pathBits.length; i++) {
46518 var bit = pathBits[i];
46519 var index = parseInt(bit);
46520 if (isNaN(index)) {
46523 var hardened = bit[bit.length-
1] ==
"'";
46524 var isPriv = !(extendedKey.isNeutered());
46525 var invalidDerivationPath = hardened && !isPriv;
46526 if (invalidDerivationPath) {
46527 extendedKey = null;
46529 else if (hardened) {
46530 extendedKey = extendedKey.deriveHardened(index);
46533 extendedKey = extendedKey.derive(index);
46539 function showValidationError(errorText) {
46545 function hideValidationError() {
46551 function findPhraseErrors(phrase) {
46552 // Preprocess the words
46553 phrase = mnemonic.normalizeString(phrase);
46554 var words = phraseToWordArray(phrase);
46555 // Detect blank phrase
46556 if (words.length ==
0) {
46557 return
"Blank mnemonic";
46560 for (var i=
0; i
<words.length; i++) {
46561 var word = words[i];
46562 var language = getLanguage();
46563 if (WORDLISTS[language].indexOf(word) == -
1) {
46564 console.log(
"Finding closest match to " + word);
46565 var nearestWord = findNearestWord(word);
46566 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46569 // Check the words are valid
46570 var properPhrase = wordArrayToPhrase(words);
46571 var isValid = mnemonic.check(properPhrase);
46573 return
"Invalid mnemonic";
46578 function validateRootKey(rootKeyBase58) {
46580 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58);
46583 return
"Invalid root key";
46588 function getDerivationPath() {
46589 if (bip44TabSelected()) {
46590 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46591 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46592 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46593 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46595 path += purpose +
"'/";
46596 path += coin +
"'/";
46597 path += account +
"'/";
46599 DOM.bip44path.val(path);
46600 var derivationPath = DOM.bip44path.val();
46601 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46602 return derivationPath;
46604 if (bip49TabSelected()) {
46605 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46606 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46607 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46608 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46610 path += purpose +
"'/";
46611 path += coin +
"'/";
46612 path += account +
"'/";
46614 DOM.bip49path.val(path);
46615 var derivationPath = DOM.bip49path.val();
46616 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46617 return derivationPath;
46619 else if (bip32TabSelected()) {
46620 var derivationPath = DOM.bip32path.val();
46621 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46622 return derivationPath;
46625 console.log(
"Unknown derivation path");
46629 function findDerivationPathErrors(path) {
46630 // TODO is not perfect but is better than nothing
46632 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46634 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46635 var maxDepth =
255; // TODO verify this!!
46636 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46637 if (path[
0] !=
"m") {
46638 return
"First character must be 'm'";
46640 if (path.length
> 1) {
46641 if (path[
1] !=
"/") {
46642 return
"Separator must be '/'";
46644 var indexes = path.split(
"/");
46645 if (indexes.length
> maxDepth) {
46646 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46648 for (var depth =
1; depth
<indexes.length; depth++) {
46649 var index = indexes[depth];
46650 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46651 if (invalidChars.length
> 0) {
46652 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46654 var indexValue = parseInt(index.replace(
"'",
""));
46655 if (isNaN(depth)) {
46656 return
"Invalid number at depth " + depth;
46658 if (indexValue
> maxIndexValue) {
46659 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46663 // Check root key exists or else derivation path is useless!
46664 if (!bip32RootKey) {
46665 return "No root key";
46667 // Check no hardened derivation path when using xpub keys
46668 var hardenedPath = path.indexOf("'")
> -
1;
46669 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46670 var hardened = hardenedPath || hardenedAddresses;
46671 var isXpubkey = bip32RootKey.isNeutered();
46672 if (hardened && isXpubkey) {
46673 return "Hardened derivation path is invalid with xpub key";
46678 function displayBip44Info() {
46679 // Get the derivation path for the account
46680 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46681 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46682 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46684 path += purpose + "'/";
46685 path += coin + "'/";
46686 path += account + "'/";
46687 // Calculate the account extended keys
46688 var accountExtendedKey = calcBip32ExtendedKey(path);
46689 var accountXprv = accountExtendedKey.toBase58();
46690 var accountXpub = accountExtendedKey.neutered().toBase58();
46691 // Display the extended keys
46692 DOM.bip44accountXprv.val(accountXprv);
46693 DOM.bip44accountXpub.val(accountXpub);
46696 function displayBip49Info() {
46697 // Get the derivation path for the account
46698 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46699 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46700 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46702 path += purpose + "'/";
46703 path += coin + "'/";
46704 path += account + "'/";
46705 // Calculate the account extended keys
46706 var accountExtendedKey = calcBip32ExtendedKey(path);
46707 var accountXprv = accountExtendedKey.toBase58();
46708 var accountXpub = accountExtendedKey.neutered().toBase58();
46709 // Display the extended keys
46710 DOM.bip49accountXprv.val(accountXprv);
46711 DOM.bip49accountXpub.val(accountXpub);
46714 function displayBip32Info() {
46716 DOM.seed.val(seed);
46717 var rootKey = bip32RootKey.toBase58();
46718 DOM.rootKey.val(rootKey);
46719 var xprvkeyB58 = "NA";
46720 if (!bip32ExtendedKey.isNeutered()) {
46721 xprvkeyB58 = bip32ExtendedKey.toBase58();
46723 var extendedPrivKey = xprvkeyB58;
46724 DOM.extendedPrivKey.val(extendedPrivKey);
46725 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46726 DOM.extendedPubKey.val(extendedPubKey);
46727 // Display the addresses and privkeys
46728 clearAddressesList();
46729 displayAddresses(
0,
20);
46732 function displayAddresses(start, total) {
46733 generationProcesses.push(new (function() {
46737 this.stop = function() {
46738 for (var i=
0; i
<rows.length; i++) {
46739 rows[i].shouldGenerate = false;
46744 for (var i=
0; i
<total; i++) {
46745 var index = i + start;
46746 var isLast = i == total -
1;
46747 rows.push(new TableRow(index, isLast));
46753 function TableRow(index, isLast) {
46756 this.shouldGenerate = true;
46757 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46758 var isBip49 = bip49TabSelected();
46759 var bip49available = networkHasBip49();
46765 function calculateValues() {
46766 setTimeout(function() {
46767 if (!self.shouldGenerate) {
46771 if (useHardenedAddresses) {
46772 key = bip32ExtendedKey.deriveHardened(index);
46775 key = bip32ExtendedKey.derive(index);
46777 var address = key.getAddress().toString();
46778 var privkey =
"NA";
46779 if (!key.isNeutered()) {
46780 privkey = key.keyPair.toWIF(network);
46782 var pubkey = key.getPublicKeyBuffer().toString('hex');
46783 var indexText = getDerivationPath() +
"/" + index;
46784 if (useHardenedAddresses) {
46785 indexText = indexText +
"'";
46787 // Ethereum values are different
46788 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46789 var privKeyBuffer = key.keyPair.d.toBuffer();
46790 privkey = privKeyBuffer.toString('hex');
46791 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46792 var hexAddress = addressBuffer.toString('hex');
46793 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46794 address = ethUtil.addHexPrefix(checksumAddress);
46795 privkey = ethUtil.addHexPrefix(privkey);
46796 pubkey = ethUtil.addHexPrefix(pubkey);
46798 // Ripple values are different
46799 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46800 privkey = convertRipplePriv(privkey);
46801 address = convertRippleAdrr(address);
46803 // BIP49 addresses are different
46805 if (!bip49available) {
46808 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46809 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46810 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46811 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46812 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46814 addAddressToList(indexText, address, pubkey, privkey);
46825 function showMore() {
46826 var start = DOM.addresses.children().length;
46827 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46828 if (isNaN(rowsToAdd)) {
46830 DOM.rowsToAdd.val(
"20");
46832 if (rowsToAdd
> 200) {
46833 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46834 msg +=
"Do you want to continue?";
46835 if (!confirm(msg)) {
46839 displayAddresses(start, rowsToAdd);
46842 function clearDisplay() {
46843 clearAddressesList();
46845 hideValidationError();
46848 function clearAddressesList() {
46849 DOM.addresses.empty();
46853 function stopGenerating() {
46854 while (generationProcesses.length
> 0) {
46855 var generation = generationProcesses.shift();
46860 function clearKeys() {
46862 clearDerivedKeys();
46865 function clearRootKey() {
46866 DOM.rootKey.val(
"");
46869 function clearDerivedKeys() {
46870 DOM.extendedPrivKey.val(
"");
46871 DOM.extendedPubKey.val(
"");
46872 DOM.bip44accountXprv.val(
"");
46873 DOM.bip44accountXpub.val(
"");
46876 function addAddressToList(indexText, address, pubkey, privkey) {
46877 var row = $(addressRowTemplate.html());
46879 var indexCell = row.find(
".index span");
46880 var addressCell = row.find(
".address span");
46881 var pubkeyCell = row.find(
".pubkey span");
46882 var privkeyCell = row.find(
".privkey span");
46884 indexCell.text(indexText);
46885 addressCell.text(address);
46886 pubkeyCell.text(pubkey);
46887 privkeyCell.text(privkey);
46890 indexCell.addClass(
"invisible");
46892 if (!showAddress) {
46893 addressCell.addClass(
"invisible");
46896 pubkeyCell.addClass(
"invisible");
46898 if (!showPrivKey) {
46899 privkeyCell.addClass(
"invisible");
46901 DOM.addresses.append(row);
46902 var rowShowQrEls = row.find(
"[data-show-qr]");
46903 setQrEvents(rowShowQrEls);
46906 function hasStrongRandom() {
46907 return 'crypto' in window && window['crypto'] !== null;
46910 function disableForms() {
46911 $(
"form").on(
"submit", function(e) {
46912 e.preventDefault();
46916 function parseIntNoNaN(val, defaultVal) {
46917 var v = parseInt(val);
46924 function showPending() {
46926 .text(
"Calculating...")
46930 function findNearestWord(word) {
46931 var language = getLanguage();
46932 var words = WORDLISTS[language];
46933 var minDistance =
99;
46934 var closestWord = words[
0];
46935 for (var i=
0; i
<words.length; i++) {
46936 var comparedTo = words[i];
46937 if (comparedTo.indexOf(word) ==
0) {
46940 var distance = Levenshtein.get(word, comparedTo);
46941 if (distance < minDistance) {
46942 closestWord = comparedTo;
46943 minDistance = distance;
46946 return closestWord;
46949 function hidePending() {
46955 function populateNetworkSelect() {
46956 for (var i=
0; i
<networks.length; i++) {
46957 var network = networks[i];
46958 var option = $(
"<option>");
46959 option.attr(
"value", i);
46960 option.text(network.name);
46961 if (network.name ==
"BTC - Bitcoin") {
46962 option.prop(
"selected", true);
46964 DOM.phraseNetwork.append(option);
46968 function populateClientSelect() {
46969 for (var i=
0; i
<clients.length; i++) {
46970 var client = clients[i];
46971 var option = $(
"<option>");
46972 option.attr(
"value", i);
46973 option.text(client.name);
46974 DOM.bip32Client.append(option);
46978 function getLanguage() {
46979 var defaultLanguage =
"english";
46980 // Try to get from existing phrase
46981 var language = getLanguageFromPhrase();
46982 // Try to get from url if not from phrase
46983 if (language.length ==
0) {
46984 language = getLanguageFromUrl();
46986 // Default to English if no other option
46987 if (language.length ==
0) {
46988 language = defaultLanguage;
46993 function getLanguageFromPhrase(phrase) {
46994 // Check if how many words from existing phrase match a language.
46997 phrase = DOM.phrase.val();
46999 if (phrase.length
> 0) {
47000 var words = phraseToWordArray(phrase);
47001 var languageMatches = {};
47002 for (l in WORDLISTS) {
47003 // Track how many words match in this language
47004 languageMatches[l] =
0;
47005 for (var i=
0; i
<words.length; i++) {
47006 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
47007 if (wordInLanguage) {
47008 languageMatches[l]++;
47011 // Find languages with most word matches.
47012 // This is made difficult due to commonalities between Chinese
47013 // simplified vs traditional.
47014 var mostMatches =
0;
47015 var mostMatchedLanguages = [];
47016 for (var l in languageMatches) {
47017 var numMatches = languageMatches[l];
47018 if (numMatches
> mostMatches) {
47019 mostMatches = numMatches;
47020 mostMatchedLanguages = [l];
47022 else if (numMatches == mostMatches) {
47023 mostMatchedLanguages.push(l);
47027 if (mostMatchedLanguages.length
> 0) {
47028 // Use first language and warn if multiple detected
47029 language = mostMatchedLanguages[
0];
47030 if (mostMatchedLanguages.length
> 1) {
47031 console.warn(
"Multiple possible languages");
47032 console.warn(mostMatchedLanguages);
47039 function getLanguageFromUrl() {
47040 for (var language in WORDLISTS) {
47041 if (window.location.hash.indexOf(language)
> -
1) {
47048 function setMnemonicLanguage() {
47049 var language = getLanguage();
47050 // Load the bip39 mnemonic generator for this language if required
47051 if (!(language in mnemonics)) {
47052 mnemonics[language] = new Mnemonic(language);
47054 mnemonic = mnemonics[language];
47057 function convertPhraseToNewLanguage() {
47058 var oldLanguage = getLanguageFromPhrase();
47059 var newLanguage = getLanguageFromUrl();
47060 var oldPhrase = DOM.phrase.val();
47061 var oldWords = phraseToWordArray(oldPhrase);
47063 for (var i=
0; i
<oldWords.length; i++) {
47064 var oldWord = oldWords[i];
47065 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47066 var newWord = WORDLISTS[newLanguage][index];
47067 newWords.push(newWord);
47069 newPhrase = wordArrayToPhrase(newWords);
47073 // TODO look at jsbip39 - mnemonic.splitWords
47074 function phraseToWordArray(phrase) {
47075 var words = phrase.split(/\s/g);
47077 for (var i=
0; i
<words.length; i++) {
47078 var word = words[i];
47079 if (word.length
> 0) {
47080 noBlanks.push(word);
47086 // TODO look at jsbip39 - mnemonic.joinWords
47087 function wordArrayToPhrase(words) {
47088 var phrase = words.join(
" ");
47089 var language = getLanguageFromPhrase(phrase);
47090 if (language ==
"japanese") {
47091 phrase = words.join(
"\u3000");
47096 function isUsingOwnEntropy() {
47097 return DOM.useEntropy.prop(
"checked");
47100 function setMnemonicFromEntropy() {
47101 clearEntropyFeedback();
47102 // Get entropy value
47103 var entropyStr = DOM.entropy.val();
47104 // Work out minimum base for entropy
47105 var entropy = Entropy.fromString(entropyStr);
47106 if (entropy.binaryStr.length ==
0) {
47109 // Show entropy details
47110 showEntropyFeedback(entropy);
47111 // Use entropy hash if not using raw entropy
47112 var bits = entropy.binaryStr;
47113 var mnemonicLength = DOM.entropyMnemonicLength.val();
47114 if (mnemonicLength !=
"raw") {
47115 // Get bits by hashing entropy with SHA256
47116 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47117 var hex = sjcl.codec.hex.fromBits(hash);
47118 bits = BigInteger.parse(hex,
16).toString(
2);
47119 while (bits.length %
256 !=
0) {
47122 // Truncate hash to suit number of words
47123 mnemonicLength = parseInt(mnemonicLength);
47124 var numberOfBits =
32 * mnemonicLength /
3;
47125 bits = bits.substring(
0, numberOfBits);
47127 // Discard trailing entropy
47128 var bitsToUse = Math.floor(bits.length /
32) *
32;
47129 var start = bits.length - bitsToUse;
47130 var binaryStr = bits.substring(start);
47131 // Convert entropy string to numeric array
47132 var entropyArr = [];
47133 for (var i=
0; i
<binaryStr.length /
8; i++) {
47134 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47135 var entropyByte = parseInt(byteAsBits,
2);
47136 entropyArr.push(entropyByte)
47138 // Convert entropy array to mnemonic
47139 var phrase = mnemonic.toMnemonic(entropyArr);
47140 // Set the mnemonic in the UI
47141 DOM.phrase.val(phrase);
47144 function clearEntropyFeedback() {
47145 DOM.entropyCrackTime.text(
"...");
47146 DOM.entropyType.text(
"");
47147 DOM.entropyWordCount.text(
"0");
47148 DOM.entropyEventCount.text(
"0");
47149 DOM.entropyBitsPerEvent.text(
"0");
47150 DOM.entropyBits.text(
"0");
47151 DOM.entropyFiltered.html(
" ");
47152 DOM.entropyBinary.html(
" ");
47155 function showEntropyFeedback(entropy) {
47156 var numberOfBits = entropy.binaryStr.length;
47157 var timeToCrack =
"unknown";
47159 var z = zxcvbn(entropy.base.parts.join(
""));
47160 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47161 if (z.feedback.warning !=
"") {
47162 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47166 console.log(
"Error detecting entropy strength with zxcvbn:");
47169 var entropyTypeStr = getEntropyTypeStr(entropy);
47170 var wordCount = Math.floor(numberOfBits /
32) *
3;
47171 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47172 DOM.entropyFiltered.html(entropy.cleanHtml);
47173 DOM.entropyType.text(entropyTypeStr);
47174 DOM.entropyCrackTime.text(timeToCrack);
47175 DOM.entropyEventCount.text(entropy.base.ints.length);
47176 DOM.entropyBits.text(numberOfBits);
47177 DOM.entropyWordCount.text(wordCount);
47178 DOM.entropyBinary.text(entropy.binaryStr);
47179 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47182 function getEntropyTypeStr(entropy) {
47183 var typeStr = entropy.base.str;
47184 // Add some detail if these are cards
47185 if (entropy.base.asInt ==
52) {
47186 var cardDetail = []; // array of message strings
47187 // Detect duplicates
47189 var dupeTracker = {};
47190 for (var i=
0; i
<entropy.base.parts.length; i++) {
47191 var card = entropy.base.parts[i];
47192 var cardUpper = card.toUpperCase();
47193 if (cardUpper in dupeTracker) {
47196 dupeTracker[cardUpper] = true;
47198 if (dupes.length
> 0) {
47199 var dupeWord =
"duplicates";
47200 if (dupes.length ==
1) {
47201 dupeWord =
"duplicate";
47203 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47204 if (dupes.length
> 3) {
47207 cardDetail.push(msg);
47209 // Detect full deck
47210 var uniqueCards = [];
47211 for (var uniqueCard in dupeTracker) {
47212 uniqueCards.push(uniqueCard);
47214 if (uniqueCards.length ==
52) {
47215 cardDetail.unshift(
"full deck");
47217 // Detect missing cards
47218 var values =
"A23456789TJQK";
47219 var suits =
"CDHS";
47220 var missingCards = [];
47221 for (var i=
0; i
<suits.length; i++) {
47222 for (var j=
0; j
<values.length; j++) {
47223 var card = values[j] + suits[i];
47224 if (!(card in dupeTracker)) {
47225 missingCards.push(card);
47229 // Display missing cards if six or less, ie clearly going for full deck
47230 if (missingCards.length
> 0 && missingCards.length <=
6) {
47231 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47232 if (missingCards.length
> 3) {
47235 cardDetail.push(msg);
47237 // Add card details to typeStr
47238 if (cardDetail.length
> 0) {
47239 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47245 function setQrEvents(els) {
47246 els.on(
"mouseenter", createQr);
47247 els.on(
"mouseleave", destroyQr);
47248 els.on(
"click", toggleQr);
47251 function createQr(e) {
47252 var content = e.target.textContent || e.target.value;
47255 DOM.qrImage.qrcode({width: size, height: size, text: content});
47257 DOM.qrHider.addClass(
"hidden");
47260 DOM.qrHider.removeClass(
"hidden");
47262 DOM.qrContainer.removeClass(
"hidden");
47266 function destroyQr() {
47267 DOM.qrImage.text(
"");
47268 DOM.qrContainer.addClass(
"hidden");
47271 function toggleQr() {
47273 DOM.qrHider.toggleClass(
"hidden");
47274 DOM.qrHint.toggleClass(
"hidden");
47277 function bip44TabSelected() {
47278 return DOM.bip44tab.hasClass(
"active");
47281 function bip32TabSelected() {
47282 return DOM.bip32tab.hasClass(
"active");
47285 function networkHasBip49() {
47286 return networks[DOM.network.val()].bip49available;
47289 function bip49TabSelected() {
47290 return DOM.bip49tab.hasClass(
"active");
47293 function setHdCoin(coinValue) {
47294 DOM.bip44coin.val(coinValue);
47295 DOM.bip49coin.val(coinValue);
47298 function showBip49() {
47299 DOM.bip49unavailable.addClass(
"hidden");
47300 DOM.bip49available.removeClass(
"hidden");
47303 function hideBip49() {
47304 DOM.bip49available.addClass(
"hidden");
47305 DOM.bip49unavailable.removeClass(
"hidden");
47310 name:
"BCH - Bitcoin Cash",
47311 bip49available: false,
47312 onSelect: function() {
47313 network = bitcoinjs.bitcoin.networks.bitcoin;
47318 name:
"BTC - Bitcoin",
47319 bip49available: true,
47320 onSelect: function() {
47321 network = bitcoinjs.bitcoin.networks.bitcoin;
47326 name:
"BTC - Bitcoin Testnet",
47327 bip49available: true,
47328 onSelect: function() {
47329 network = bitcoinjs.bitcoin.networks.testnet;
47334 name:
"CLAM - Clams",
47335 bip49available: false,
47336 onSelect: function() {
47337 network = bitcoinjs.bitcoin.networks.clam;
47342 name:
"CRW - Crown",
47343 bip49available: false,
47344 onSelect: function() {
47345 network = bitcoinjs.bitcoin.networks.crown;
47350 name:
"DASH - Dash",
47351 bip49available: false,
47352 onSelect: function() {
47353 network = bitcoinjs.bitcoin.networks.dash;
47358 name:
"DASH - Dash Testnet",
47359 bip49available: false,
47360 onSelect: function() {
47361 network = bitcoinjs.bitcoin.networks.dashtn;
47366 name:
"DOGE - Dogecoin",
47367 bip49available: false,
47368 onSelect: function() {
47369 network = bitcoinjs.bitcoin.networks.dogecoin;
47374 name:
"ETH - Ethereum",
47375 bip49available: false,
47376 onSelect: function() {
47377 network = bitcoinjs.bitcoin.networks.bitcoin;
47382 name:
"GAME - GameCredits",
47383 bip49available: false,
47384 onSelect: function() {
47385 network = bitcoinjs.bitcoin.networks.game;
47390 name:
"JBS - Jumbucks",
47391 bip49available: false,
47392 onSelect: function() {
47393 network = bitcoinjs.bitcoin.networks.jumbucks;
47398 name:
"LTC - Litecoin",
47399 bip49available: false,
47400 onSelect: function() {
47401 network = bitcoinjs.bitcoin.networks.litecoin;
47403 DOM.litecoinLtubContainer.removeClass(
"hidden");
47407 name:
"MAZA - Maza",
47408 bip49available: false,
47409 onSelect: function() {
47410 network = bitcoinjs.bitcoin.networks.maza;
47416 name:
"NMC - Namecoin",
47417 bip49available: false,
47418 onSelect: function() {
47419 network = bitcoinjs.bitcoin.networks.namecoin;
47424 name:
"PIVX - PIVX",
47425 bip49available: false,
47426 onSelect: function() {
47427 network = bitcoinjs.bitcoin.networks.pivx;
47432 name:
"PIVX - PIVX Testnet",
47433 bip49available: false,
47434 onSelect: function() {
47435 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47440 name:
"PPC - Peercoin",
47441 bip49available: false,
47442 onSelect: function() {
47443 network = bitcoinjs.bitcoin.networks.peercoin;
47448 name:
"SDC - ShadowCash",
47449 bip49available: false,
47450 onSelect: function() {
47451 network = bitcoinjs.bitcoin.networks.shadow;
47456 name:
"SDC - ShadowCash Testnet",
47457 bip49available: false,
47458 onSelect: function() {
47459 network = bitcoinjs.bitcoin.networks.shadowtn;
47464 name:
"SLM - Slimcoin",
47465 bip49available: false,
47466 onSelect: function() {
47467 network = bitcoinjs.bitcoin.networks.slimcoin;
47472 name:
"SLM - Slimcoin Testnet",
47473 bip49available: false,
47474 onSelect: function() {
47475 network = bitcoinjs.bitcoin.networks.slimcointn;
47480 name:
"VIA - Viacoin",
47481 bip49available: false,
47482 onSelect: function() {
47483 network = bitcoinjs.bitcoin.networks.viacoin;
47488 name:
"VIA - Viacoin Testnet",
47489 bip49available: false,
47490 onSelect: function() {
47491 network = bitcoinjs.bitcoin.networks.viacointestnet;
47496 name:
"XMY - Myriadcoin",
47497 bip49available: false,
47498 onSelect: function() {
47499 network = bitcoinjs.bitcoin.networks.myriadcoin;
47504 name:
"XRP - Ripple",
47505 bip49available: false,
47506 onSelect: function() {
47507 network = bitcoinjs.bitcoin.networks.bitcoin;
47515 name:
"Bitcoin Core",
47516 onSelect: function() {
47517 DOM.bip32path.val(
"m/0'/0'");
47518 DOM.hardenedAddresses.prop('checked', true);
47522 name:
"blockchain.info",
47523 onSelect: function() {
47524 DOM.bip32path.val(
"m/44'/0'/0'");
47525 DOM.hardenedAddresses.prop('checked', false);
47529 name:
"MultiBit HD",
47530 onSelect: function() {
47531 DOM.bip32path.val(
"m/0'/0");
47532 DOM.hardenedAddresses.prop('checked', false);