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;
113 <div class=
"container">
115 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
118 <div class=
"col-md-12">
120 <form class=
"form-horizontal" role=
"form">
121 <div class=
"form-group">
122 <div class=
"col-sm-2"></div>
123 <div class=
"col-sm-10">
124 <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>
125 <p data-translate-html
>
126 For more info see the
127 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
131 <div class=
"form-group generate-container">
132 <label class=
"col-sm-2 control-label"></label>
133 <div class=
"col-sm-10">
134 <div class=
"form-inline">
135 <div class=
"input-group-inline">
136 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
137 <button class=
"btn generate">Generate
</button>
138 <select id=
"strength" class=
"strength form-control">
139 <option value=
"3">3</option>
140 <option value=
"6">6</option>
141 <option value=
"9">9</option>
142 <option value=
"12">12</option>
143 <option value=
"15" selected
>15</option>
144 <option value=
"18">18</option>
145 <option value=
"21">21</option>
146 <option value=
"24">24</option>
148 <span data-translate
>words
</span>
153 <div class=
"entropy-container hidden">
154 <div class=
"form-group text-danger">
155 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
156 <div class=
"col-sm-10 form-control-static">
157 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
158 <a href=
"#entropy-notes" data-translate
>Read more
</a>
161 <div class=
"form-group">
162 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
163 <div class=
"col-sm-7">
164 <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>
166 <label class=
"col-sm-3 control-label" data-translate
>Strength
</label>
167 <div class=
"strength col-sm-3 form-control-static"></div>
168 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
169 <div class=
"event-count col-sm-3 form-control-static"></div>
172 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
173 <div class=
"type col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
175 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Word Count
</label>
179 <div class=
"word-count col-sm-3 form-control-static"></div>
180 <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>
181 <div class=
"bits col-sm-3 form-control-static"></div>
183 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
184 <div class=
"filtered col-sm-9 form-control-static"></div>
185 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
186 <div class=
"binary col-sm-9 form-control-static"></div>
187 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
188 <div class=
"col-sm-9">
189 <select class=
"mnemonic-length form-control">
190 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
191 <option value=
"12">12 <span data-translate
>Words
</span></option>
192 <option value=
"15">15 <span data-translate
>Words
</option>
193 <option value=
"18">18 <span data-translate
>Words
</span></option>
194 <option value=
"21">21 <span data-translate
>Words
</span></option>
195 <option value=
"24">24 <span data-translate
>Words
</span></option>
199 <div class=
"col-sm-3">
200 <p data-translate
>Valid entropy values include:
</p>
202 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
203 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
204 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
205 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
206 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
207 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
212 <div class=
"form-group">
213 <div class=
"col-sm-2"></div>
214 <div class=
"col-sm-10 checkbox">
216 <input type=
"checkbox" class=
"use-entropy">
217 <span data-translate
>Supply my own source of entropy
</span>
221 <div class=
"form-group">
222 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
223 <div class=
"col-sm-10 languages">
224 <div class=
"form-control no-border">
225 <a href=
"#english">English
</a>
226 <a href=
"#japanese" title=
"Japanese">日本語
</a>
227 <a href=
"#spanish" title=
"Spanish">Español
</a>
228 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
229 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
230 <a href=
"#french" title=
"French">Français
</a>
231 <a href=
"#italian" title=
"Italian">Italiano
</a>
235 <div class=
"form-group">
236 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
237 <div class=
"col-sm-10">
238 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
241 <div class=
"form-group">
242 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
247 <div class=
"form-group">
248 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
253 <div class=
"form-group">
254 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
255 <div class=
"col-sm-10">
256 <select id=
"network-phrase" class=
"network form-control">
257 <!-- populated by javascript -->
261 <div class=
"form-group">
262 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
263 <div class=
"col-sm-10">
264 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
274 <div class=
"col-md-12">
275 <h2>Derivation Path
</h2>
276 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
277 <li id=
"bip44-tab" class=
"active">
278 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
281 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
284 <div class=
"derivation-type tab-content">
285 <div id=
"bip44" class=
"tab-pane active">
286 <form class=
"form-horizontal" role=
"form">
288 <div class=
"col-sm-2"></div>
289 <div class=
"col-sm-10">
290 <p data-translate-html
>
291 For more info see the
292 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
295 <div class=
"form-group">
296 <label for=
"purpose" class=
"col-sm-2 control-label">
297 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
299 <div class=
"col-sm-10">
300 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
303 <div class=
"form-group">
304 <label for=
"coin" class=
"col-sm-2 control-label">
305 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
307 <div class=
"col-sm-10">
308 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
311 <div class=
"form-group">
312 <label for=
"account" class=
"col-sm-2 control-label">
313 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
315 <div class=
"col-sm-10">
316 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
319 <div class=
"form-group">
320 <label for=
"change" class=
"col-sm-2 control-label">
321 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
323 <div class=
"col-sm-10">
324 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
327 <div class=
"form-group">
328 <label class=
"col-sm-2 control-label">
330 <div class=
"col-sm-10">
331 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
334 <div class=
"form-group">
335 <label for=
"account-xprv" class=
"col-sm-2 control-label">
336 <span data-translate
>Account Extended Private Key
</span>
338 <div class=
"col-sm-10">
339 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
342 <div class=
"form-group">
343 <label for=
"account-xpub" class=
"col-sm-2 control-label">
344 <span data-translate
>Account Extended Public Key
</span>
346 <div class=
"col-sm-10">
347 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
350 <div class=
"form-group">
351 <label class=
"col-sm-2 control-label">
353 <div class=
"col-sm-10">
354 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
357 <div class=
"form-group">
358 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
359 <div class=
"col-sm-10">
360 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
365 <div id=
"bip32" class=
"tab-pane">
366 <form class=
"form-horizontal" role=
"form">
368 <div class=
"col-sm-2"></div>
369 <div class=
"col-sm-10">
371 For more info see the
372 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
375 <div class=
"form-group">
376 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
377 <div class=
"col-sm-10">
378 <select id=
"bip32-client" class=
"client form-control">
379 <option value=
"custom">Custom derivation path
</option>
380 <!-- populated by javascript -->
384 <div class=
"form-group">
385 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
386 <div class=
"col-sm-10">
387 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
390 <div class=
"form-group">
391 <div class=
"col-sm-2"></div>
392 <label class=
"col-sm-10">
393 <input class=
"hardened-addresses" type=
"checkbox">
394 <span data-translate
>Use hardened addresses
</span>
397 <div class=
"form-group">
398 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
399 <div class=
"col-sm-10">
400 <p class=
"form-control no-border" data-translate-html
>
401 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
403 <p class=
"form-control no-border" data-translate-html
>
404 For more info see the
405 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
409 <div class=
"form-group">
410 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
411 <div class=
"col-sm-10">
412 <p class=
"form-control no-border">
413 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
415 <p class=
"form-control no-border">
416 <span data-translate
>For more info see
</span>
417 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
421 <div class=
"form-group">
422 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
423 <div class=
"col-sm-10">
424 <p class=
"form-control no-border">
425 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
426 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
428 <p class=
"form-control no-border">
429 <span data-translate
>Can be used with
</span>:
430 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
437 <form class=
"form-horizontal" role=
"form">
438 <div class=
"form-group">
439 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
440 <div class=
"col-sm-10">
441 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
444 <div class=
"form-group">
445 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
446 <div class=
"col-sm-10">
447 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
457 <div class=
"col-md-12">
458 <h2>Derived Addresses
</h2>
459 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
460 <table class=
"table table-striped">
463 <div class=
"input-group">
464 <span data-translate
>Path
</span>
465 <button class=
"index-toggle" data-translate
>Toggle
</button>
469 <div class=
"input-group">
470 <span data-translate
>Address
</span>
471 <button class=
"address-toggle" data-translate
>Toggle
</button>
475 <div class=
"input-group">
476 <span data-translate
>Public Key
</span>
477 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
481 <div class=
"input-group">
482 <span data-translate
>Private Key
</span>
483 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
487 <tbody class=
"addresses monospace">
488 <tr><td> </td><td> </td><td> </td><td> </td></tr>
489 <tr><td> </td><td> </td><td> </td><td> </td></tr>
490 <tr><td> </td><td> </td><td> </td><td> </td></tr>
491 <tr><td> </td><td> </td><td> </td><td> </td></tr>
492 <tr><td> </td><td> </td><td> </td><td> </td></tr>
497 <span data-translate
>Show more rows
</span>:
498 <input type=
"number" class=
"rows-to-add" value=
"20">
499 <button class=
"more" data-translate
>Show
</button>
504 <div class=
"col-md-12">
505 <h2 data-translate
>More info
</h2>
506 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
507 <p data-translate-html
>
509 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
511 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
512 <p data-translate-html
>
514 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
516 <p data-translate-html
>
518 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
520 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
521 <p data-translate-html
>
523 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
525 <h3 data-translate
>Private Keys
</h3>
527 <span data-translate-html
>
529 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
531 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
533 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
535 <span data-translate-html
>
536 Entropy values must be sourced from a
537 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
539 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
540 <span data-translate-html
>
541 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
542 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
543 random enough for the needs of this tool.
547 <strong><span data-translate
>Do not store entropy.
</span></strong>
550 <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>
551 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
552 <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>
555 <span data-translate-html
>
556 The random mnemonic generator on this page uses a
557 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
559 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
560 <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>
561 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
564 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
566 <h3 data-translate
>License
</h3>
568 <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.
571 <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>
578 <div class=
"col-md-12">
580 <h2 data-translate
>Offline Usage
</h2>
583 You can use this tool without having to be online.
586 In your browser, select file save-as, and save this page
590 Double-click that file to open it in a browser
591 on any offline computer.
594 <span data-translate
>Alternatively, download the file from the repository
</span>
596 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
605 <div class=
"col-md-12">
607 <h2 data-translate
>This project is
100% open-source code
</h2>
610 <span data-translate
>Get the source code from the repository
</span>
612 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
613 https://github.com/iancoleman/bip39
617 <h3 data-translate
>Libraries
</h3>
620 <span>BitcoinJS -
</span>
621 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
622 https://github.com/bitcoinjs/bitcoinjs-lib
627 <span>jsBIP39 -
</span>
628 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
629 https://github.com/iancoleman/jsbip39
635 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
636 https://github.com/bitwiseshiftleft/sjcl
641 <span>jQuery -
</span>
642 <a href=
"https://jquery.com/" target=
"_blank">
648 <span>Twitter Bootstrap -
</span>
649 <a href=
"http://getbootstrap.com/" target=
"_blank">
650 http://getbootstrap.com/
659 <div class=
"qr-container hidden">
660 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
661 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
662 <div class=
"qr-hider hidden">
663 <div class=
"qr-image"></div>
664 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
668 <div class=
"feedback-container">
669 <div class=
"feedback">Loading...
</div>
672 <script type=
"text/template" id=
"address-row-template">
674 <td class=
"index"><span></span></td>
675 <td class=
"address"><span data-show-qr
></span></td>
676 <td class=
"pubkey"><span data-show-qr
></span></td>
677 <td class=
"privkey"><span data-show-qr
></span></td>
681 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
682 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
683 // but is not required in any modern browsers.
684 // For more information, see
685 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
687 //----------------------------------------------------------------------
689 // ECMAScript
2015 Polyfills
691 //----------------------------------------------------------------------
696 // Set this to always override native implementations, for testing
697 // the polyfill in browsers with partial/full ES2015 support.
698 var OVERRIDE_NATIVE_FOR_TESTING = false;
700 var undefined = (void
0); // Paranoia
705 return o === global ? undefined : o;
708 function hook(o, p, f) {
710 console.assert(typeof op === 'function', 'Hooking a non-function');
712 var o = strict(this);
713 var r = f.apply(o, arguments);
714 return r !== undefined ? r : op.apply(o, arguments);
718 function isSymbol(s) {
719 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
722 function getPropertyDescriptor(target, name) {
723 var desc = Object.getOwnPropertyDescriptor(target, name);
724 var proto = Object.getPrototypeOf(target);
725 while (!desc && proto) {
726 desc = Object.getOwnPropertyDescriptor(proto, name);
727 proto = Object.getPrototypeOf(proto);
732 var enqueue = (function(nativePromise, nativeSetImmediate) {
734 return function(job) { nativePromise.resolve().then(function() { job(); }); };
735 if (nativeSetImmediate)
736 return function(job) { nativeSetImmediate(job); };
737 return function(job) { setTimeout(job,
0); };
738 }(global['Promise'], global['setImmediate']));
740 function define(o, p, v, override) {
741 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
744 if (typeof v === 'function') {
745 // Sanity check that functions are appropriately named (where possible)
746 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
747 Object.defineProperty(o, p, {
754 Object.defineProperty(o, p, {
763 function set_internal(o, p, v) {
764 Object.defineProperty(o, p, {
772 // Snapshot intrinsic functions
773 var $isNaN = global.isNaN,
774 $parseInt = global.parseInt,
775 $parseFloat = global.parseFloat;
778 LOG10E = Math.LOG10E,
788 random = Math.random,
791 var orig_match = String.prototype.match,
792 orig_replace = String.prototype.replace,
793 orig_search = String.prototype.search,
794 orig_split = String.prototype.split;
796 // These are used for implementing the polyfills, but not exported.
798 // Inspired by https://gist.github.com/
1638059
800 function EphemeronTable() {
801 var secretKey = ObjectCreate(null);
803 function conceal(o) {
804 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
805 Object.defineProperty(o, 'valueOf', {
806 value: (function(secretKey) {
807 return function (k) {
808 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
819 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
820 return v === o ? null : v;
825 secretKey = ObjectCreate(null);
827 remove: function(key) {
828 var secrets = reveal(key);
829 if (secrets && HasOwnProperty(secrets, 'value')) {
830 delete secrets.value;
835 get: function(key, defaultValue) {
836 var secrets = reveal(key);
837 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
840 var secrets = reveal(key);
841 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
843 set: function(key, value) {
844 var secrets = reveal(key) || conceal(key);
845 secrets.value = value;
850 var empty = Object.create(null);
852 //----------------------------------------------------------------------
855 // http://www.ecma-international.org/ecma-
262/
6.0/
857 //----------------------------------------------------------------------
859 // ---------------------------------------
860 //
19.4 Symbol Objects
861 // ---------------------------------------
863 // NOTE: Symbols are defined here - out of spec order - since we need the
864 // properties and prototype to be populated for other polyfills.
866 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
870 var secret = Object.create(null);
872 symbolForKey = function(k) {
876 var GlobalSymbolRegistry = [];
878 function unique(bits) {
879 return Array(bits +
1).join('x').replace(/x/g, function() {
880 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
884 //
19.4.1 The Symbol Constructor
885 //
19.4.1.1 Symbol ( description=undefined )
886 function Symbol(description) {
887 if (!(this instanceof Symbol)) return new Symbol(description, secret);
888 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
890 var descString = description === undefined ? undefined : String(description);
892 set_internal(this, '[[SymbolData]]', unique(
128));
893 set_internal(this, '[[Description]]', descString);
895 symbolMap[this] = this;
899 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
900 global.Symbol = Symbol;
902 //
19.4.2 Properties of the Symbol Constructor
904 //
19.4.2.1 Symbol.for (key)
905 define(Symbol, 'for', function for_(key) {
906 var stringKey = String(key);
907 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
908 var e = GlobalSymbolRegistry[i];
909 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
911 var newSymbol = Symbol(key);
912 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
916 //
19.4.2.2 Symbol.hasInstance
917 //
19.4.2.3 Symbol.isConcatSpreadable
919 //
19.4.2.4 Symbol.iterator
920 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
922 //
19.4.2.5 Symbol.keyFor (sym)
923 define(Symbol, 'keyFor', function keyFor(sym) {
924 if (!(sym instanceof Symbol)) throw TypeError();
925 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
926 var e = GlobalSymbolRegistry[i];
927 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
932 //
19.4.2.6 Symbol.match
933 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
935 //
19.4.2.7 Symbol.prototype
937 //
19.4.2.8 Symbol.replace
938 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
940 //
19.4.2.9 Symbol.search
941 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
943 //
19.4.2.10 Symbol.species
945 //
19.4.2.11 Symbol.search
946 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
948 //
19.4.2.12 Symbol.toPrimitive
950 //
19.4.2.13 Symbol.toStringTag
951 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
953 //
19.4.2.14 Symbol.unscopables
955 //
19.4.3 Properties of the Symbol Prototype Object
956 //
19.4.3.1 Symbol.prototype.constructor
958 //
19.4.3.2 Symbol.prototype.toString ( )
959 Object.defineProperty(Symbol.prototype, 'toString', {
960 value: function toString() {
961 var s = strict(this);
962 var desc = s['[[Description]]'];
963 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
965 configurable: true, writeable: true, enumerable: false });
967 //
19.4.3.3 Symbol.prototype.valueOf ( )
968 Object.defineProperty(Symbol.prototype, 'valueOf', {
969 value: function valueOf() {
970 // To prevent automatic string conversion:
973 // Spec has approximately the following:
974 //var s = strict(this);
975 //if (Type(s) === 'symbol') return s;
976 //if (Type(s) !== 'object') throw TypeError();
977 //if (!('[[SymbolData]]' in s)) throw TypeError();
978 //return s['[[SymbolData]]'];
980 configurable: true, writeable: true, enumerable: false });
982 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
983 // (Done later to polyfill partial implementations)
985 //
19.4.4 Properties of Symbol Instances
988 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
990 // Defined here so that other prototypes can reference it
991 //
25.1.2 The %IteratorPrototype% Object
992 var $IteratorPrototype$ = {};
994 //----------------------------------------
995 //
6 ECMAScript Data Types and Values
996 //----------------------------------------
998 //
6.1 ECMAScript Language Types
1000 // "Type(x)" is used as shorthand for "the type of x"...
1003 case 'undefined': return 'undefined';
1004 case 'boolean': return 'boolean';
1005 case 'number': return 'number';
1006 case 'string': return 'string';
1007 case 'symbol': return 'symbol';
1009 if (v === null) return 'null';
1010 if (v instanceof global.Symbol) return 'symbol';
1015 //
6.1.5.1 Well-Known Symbols
1016 var $$iterator = global.Symbol.iterator,
1017 $$match = global.Symbol.match,
1018 $$replace = global.Symbol.replace,
1019 $$search = global.Symbol.search,
1020 $$split = global.Symbol.split,
1021 $$toStringTag = global.Symbol.toStringTag;
1023 //----------------------------------------
1024 //
7 Abstract Operations
1025 //----------------------------------------
1027 //----------------------------------------
1028 //
7.1 Type Conversion
1029 //----------------------------------------
1031 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1032 // just use valueOf()
1034 //
7.1.2 ToBoolean ( argument )
1035 // just use Boolean()
1037 //
7.1.3 ToNumber ( argument )
1038 // just use Number()
1040 //
7.1.4 ToInteger ( argument )
1041 function ToInteger(n) {
1043 if ($isNaN(n)) return
0;
1044 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1045 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1048 //
7.1.5 ToInt32 ( argument )
1049 function ToInt32(v) { return v
>> 0; }
1051 //
7.1.6 ToUint32 ( argument )
1052 function ToUint32(v) { return v
>>> 0; }
1054 //
7.1.7 ToInt16 ( argument )
1055 function ToInt16(v) { return (v <<
16)
>> 16; }
1057 //
7.1.8 ToUint16 ( argument )
1058 function ToUint16(v) { return v &
0xFFFF; }
1060 //
7.1.9 ToInt8 ( argument )
1061 function ToInt8(v) { return (v <<
24)
>> 24; }
1063 //
7.1.10 ToUint8 ( argument )
1064 function ToUint8(v) { return v &
0xFF; }
1066 //
7.1.11 ToUint8Clamp ( argument )
1067 function ToUint8Clamp(argument) {
1068 var number = Number(argument);
1069 if ($isNaN(number)) return
0;
1070 if (number <=
0) return
0;
1071 if (number
>=
255) return
255;
1072 var f = floor(number);
1073 if ((f +
0.5) < number) return f +
1;
1074 if (number < (f +
0.5)) return f;
1075 if (f %
2) return f +
1;
1079 //
7.1.12 ToString ( argument )
1080 // just use String()
1082 //
7.1.13 ToObject ( argument )
1083 function ToObject(v) {
1084 if (v === null || v === undefined) throw TypeError();
1088 //
7.1.14 ToPropertyKey ( argument )
1089 function ToPropertyKey(v) {
1093 //
7.1.15 ToLength ( argument )
1094 function ToLength(v) {
1095 var len = ToInteger(v);
1096 if (len <=
0) return
0;
1097 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1098 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1101 //
7.1.16 CanonicalNumericIndexString ( argument )
1103 //----------------------------------------
1104 //
7.2 Testing and Comparison Operations
1105 //----------------------------------------
1107 //
7.2.1 RequireObjectCoercible ( argument )
1108 //
7.2.2 IsArray ( argument )
1110 //
7.2.3 IsCallable ( argument )
1111 function IsCallable(o) { return typeof o === 'function'; }
1113 //
7.2.4 IsConstructor ( argument )
1114 function IsConstructor(o) {
1115 // Hacks for Safari
7 TypedArray XXXConstructor objects
1116 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1117 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1118 // TODO: Can this be improved on?
1119 return typeof o === 'function';
1122 //
7.2.5 IsExtensible (O)
1123 //
7.2.6 IsInteger ( argument )
1125 //
7.2.7 IsPropertyKey ( argument )
1126 function IsPropertyKey(argument) {
1127 if (Type(argument) === 'string') return true;
1128 if (Type(argument) === 'symbol') return true;
1132 //
7.2.8 IsRegExp ( argument )
1133 //
7.2.5 IsConstructor ( argument )
1135 //
7.2.9 SameValue(x, y)
1136 function SameValue(x, y) {
1137 if (typeof x !== typeof y) return false;
1142 if (x !== x && y !== y) return true;
1143 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1153 //
7.2.10 SameValueZero(x, y)
1154 function SameValueZero(x, y) {
1155 if (typeof x !== typeof y) return false;
1160 if (x !== x && y !== y) return true;
1170 //----------------------------------------
1171 //
7.3 Operations on Objects
1172 //----------------------------------------
1175 // - just use o.p or o[p]
1177 //
7.3.2 GetV (V, P)
1178 function GetV(v, p) {
1179 var o = ToObject(v);
1183 //
7.3.3 Set (O, P, V, Throw)
1184 // - just use o.p = v or o[p] = v
1189 //
7.3.9 GetMethod (O, P)
1190 function GetMethod(o, p) {
1191 var func = GetV(o, p);
1192 if (func === undefined || func === null) return undefined;
1193 if (!IsCallable(func)) throw TypeError();
1197 //
7.3.10 HasProperty (O, P)
1198 function HasProperty(o, p) {
1200 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1201 if (Type(o) !== 'object') return false;
1202 o = Object.getPrototypeOf(o);
1207 //
7.3.11 HasOwnProperty (O, P)
1208 function HasOwnProperty(o, p) {
1209 return Object.prototype.hasOwnProperty.call(o, p);
1212 //----------------------------------------
1213 //
7.4 Operations on Iterator Objects
1214 //----------------------------------------
1216 //
7.4.1 GetIterator ( obj, method )
1217 function GetIterator(obj, method) {
1218 if (arguments.length <
2)
1219 method = GetMethod(obj, $$iterator);
1220 var iterator = method.call(obj);
1221 if (Type(iterator) !== 'object') throw TypeError();
1225 //
7.4.2 IteratorNext ( iterator, value )
1226 function IteratorNext(iterator, value) {
1227 if (arguments.length <
2)
1228 var result = iterator.next();
1230 result = iterator.next(value);
1231 if (Type(result) !== 'object') throw TypeError();
1235 //
7.4.3 IteratorComplete ( iterResult )
1236 function IteratorComplete(iterResult) {
1237 console.assert(Type(iterResult) === 'object');
1238 return Boolean(iterResult.done);
1241 //
7.4.4 IteratorValue ( iterResult )
1242 function IteratorValue(iterResult) {
1243 console.assert(Type(iterResult) === 'object');
1244 return iterResult.value;
1247 //
7.4.5 IteratorStep ( iterator )
1248 function IteratorStep( iterator, value ) {
1249 var result = IteratorNext(iterator, value);
1250 var done = result['done'];
1251 if (Boolean(done) === true) return false;
1255 //
7.4.6 IteratorClose( iterator, completion )
1256 function IteratorClose( iterator, completion ) {
1257 console.assert(Type(iterator) === 'object');
1258 var _return = GetMethod(iterator, 'return');
1259 if (_return === undefined) return completion;
1261 var innerResult = _return[iterator]();
1263 // TODO: If completion.[[type]] is throw, return completion
1266 if (Type(innerResult) !== 'object') throw TypeError();
1270 //
7.4.7 CreateIterResultObject (value, done)
1271 function CreateIterResultObject(value, done) {
1272 console.assert(Type(done) === 'boolean');
1274 obj["value"] = value;
1279 //
7.4.8 CreateListIterator (list)
1280 //
7.4.8.1 ListIterator next( )
1281 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1282 //
7.4.9.1 CompoundIterator next( )
1284 //----------------------------------------
1285 //
8 Executable Code and Execution Contexts
1286 //----------------------------------------
1288 //----------------------------------------
1289 //
8.4 Jobs and Job Queues
1290 //----------------------------------------
1292 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1293 function EnqueueJob(queueName, job, args) {
1294 var fn = function() { job.apply(undefined, args); };
1298 //
8.4.2 NextJob result
1299 function NextJob(result) {
1303 //----------------------------------------
1304 //
9 Ordinary and Exotic Objects Behaviors
1305 //----------------------------------------
1307 //
9.1.11 [[Enumerate]] ()
1308 function Enumerate(obj) {
1310 if (Object(obj) !== obj) return e;
1311 var visited = new Set;
1312 while (obj !== null) {
1313 Object.getOwnPropertyNames(obj).forEach(function(name) {
1314 if (!visited.has(name)) {
1315 var desc = Object.getOwnPropertyDescriptor(obj, name);
1318 if (desc.enumerable) e.push(name);
1322 obj = Object.getPrototypeOf(obj);
1324 return e[$$iterator]();
1327 //
9.1.12 [[OwnPropertyKeys]] ( )
1328 function OwnPropertyKeys(o) {
1329 return Object.getOwnPropertyNames(o);
1332 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1333 function ObjectCreate(proto, internalSlotsList) {
1334 return Object.create(proto, internalSlotsList);
1337 // ---------------------------------------
1338 //
19 Fundamental Objects
1339 // ---------------------------------------
1341 // ---------------------------------------
1342 //
19.1 Object Objects
1343 // ---------------------------------------
1345 //
19.1.1 The Object Constructor
1346 //
19.1.1.1 Object ( [ value ] )
1347 //
19.1.2 Properties of the Object Constructor
1348 //
19.1.2.1 Object.assign ( target, ...sources )
1351 function assign(target, /*...*/sources) {
1352 var to = ToObject(target);
1353 if (arguments.length <
2) return to;
1355 var sourcesIndex =
1;
1356 while (sourcesIndex < arguments.length) {
1357 var nextSource = arguments[sourcesIndex++];
1358 if (nextSource === undefined || nextSource === null) {
1361 var from = ToObject(nextSource);
1362 keys = OwnPropertyKeys(from);
1364 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1365 var nextKey = keys[keysIndex];
1366 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1367 if (desc !== undefined && desc.enumerable) {
1368 var propValue = from[nextKey];
1369 to[nextKey] = propValue;
1376 //
19.1.2.2 Object.create ( O [ , Properties ] )
1377 //
19.1.2.3 Object.defineProperties ( O, Properties )
1378 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1379 //
19.1.2.5 Object.freeze ( O )
1380 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1383 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1384 $getOwnPropertyNames = Object.getOwnPropertyNames,
1385 $keys = Object.keys,
1386 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1388 function isStringKey(k) { return !symbolForKey(k); }
1390 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1392 Object, 'getOwnPropertyNames',
1393 function getOwnPropertyNames(o) {
1394 if (Object.prototype.toString.call(o) === '[object Window]') {
1395 // Workaround for cross-realm calling by IE itself.
1396 // https://github.com/inexorabletash/polyfill/issues/
96
1398 return $getOwnPropertyNames(o).filter(isStringKey);
1400 return $window_names.slice();
1403 return $getOwnPropertyNames(o).filter(isStringKey);
1406 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1408 Object, 'getOwnPropertySymbols',
1409 function getOwnPropertySymbols(o) {
1410 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1413 //
19.1.2.14 Object.keys ( O )
1417 return $keys(o).filter(isStringKey);
1421 //
19.1.2.9 Object.getPrototypeOf ( O )
1422 //
19.1.2.10 Object.is ( value1, value2 )
1425 function is(value1, value2) {
1426 return SameValue(value1, value2);
1429 //
19.1.2.11 Object.isExtensible ( O )
1430 //
19.1.2.12 Object.isFrozen ( O )
1431 //
19.1.2.13 Object.isSealed ( O )
1433 //
19.1.2.14 Object.keys ( O )
1436 //
19.1.2.15 Object.preventExtensions ( O )
1437 //
19.1.2.16 Object.prototype
1438 //
19.1.2.17 Object.seal ( O )
1440 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1442 Object, 'setPrototypeOf',
1443 function setPrototypeOf(o, proto) {
1444 if (Type(o) !== 'object') throw TypeError();
1445 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1446 o.__proto__ = proto;
1451 //
19.1.3 Properties of the Object Prototype Object
1452 //
19.1.3.1 Object.prototype.constructor
1453 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1454 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1455 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1456 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1457 //
19.1.3.6 Object.prototype.toString ( )
1458 hook(Object.prototype, 'toString',
1460 var o = strict(this);
1461 if (o === Object(o) && $$toStringTag in o) {
1462 return '[object ' + o[$$toStringTag] + ']';
1467 //
19.1.3.7 Object.prototype.valueOf ( )
1468 //
19.1.4 Properties of Object Instances
1470 // ---------------------------------------
1471 //
19.2 Function Objects
1472 // ---------------------------------------
1474 //
19.2.1 The Function Constructor
1475 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1476 //
19.2.2 Properties of the Function Constructor
1477 //
19.2.2.1 Function.length
1478 //
19.2.2.2 Function.prototype
1479 //
19.2.3 Properties of the Function Prototype Object
1480 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1481 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1482 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1483 //
19.2.3.4 Function.prototype.constructor
1484 //
19.2.3.5 Function.prototype.toString ( )
1485 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1486 //
19.2.4 Function Instances
1489 //
19.2.4.3 prototype
1491 // (No polyfillable changes from ES5)
1493 // ---------------------------------------
1494 //
19.3 Boolean Objects
1495 // ---------------------------------------
1497 //
19.3.1 The Boolean Constructor
1498 //
19.3.1.1 Boolean ( value )
1499 //
19.3.2 Properties of the Boolean Constructor
1500 //
19.3.2.1 Boolean.prototype
1501 //
19.3.3 Properties of the Boolean Prototype Object
1502 //
19.3.3.1 Boolean.prototype.constructor
1503 //
19.3.3.2 Boolean.prototype.toString ( )
1504 //
19.3.3.3 Boolean.prototype.valueOf ( )
1505 //
19.3.4 Properties of Boolean Instances
1507 // (No polyfillable changes from ES5)
1509 // ---------------------------------------
1510 //
19.4 Symbol Objects
1511 // ---------------------------------------
1513 // Moved earlier in this script, so that other polyfills can depend on them.
1515 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1516 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1518 // ---------------------------------------
1519 //
19.5 Error Objects
1520 // ---------------------------------------
1522 //
19.5.1 The Error Constructor
1523 //
19.5.1.1 Error ( message )
1524 //
19.5.1.2 new Error( ...argumentsList )
1525 //
19.5.2 Properties of the Error Constructor
1526 //
19.5.2.1 Error.prototype
1527 //
19.5.3 Properties of the Error Prototype Object
1528 //
19.5.3.1 Error.prototype.constructor
1529 //
19.5.3.2 Error.prototype.message
1530 //
19.5.3.3 Error.prototype.name
1531 //
19.5.3.4 Error.prototype.toString ( )
1532 //
19.5.4 Properties of Error Instances
1533 //
19.5.5 Native Error Types Used in This Standard
1534 //
19.5.5.1 EvalError
1535 //
19.5.5.2 RangeError
1536 //
19.5.5.3 ReferenceError
1537 //
19.5.5.4 SyntaxError
1538 //
19.5.5.5 TypeError
1539 //
19.5.5.6 URIError
1540 //
19.5.6 NativeError Object Structure
1541 //
19.5.6.1 NativeError Constructors
1542 //
19.5.6.1.1 NativeError ( message )
1543 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1544 //
19.5.6.2 Properties of the NativeError Constructors
1545 //
19.5.6.2.1 NativeError.prototype
1546 //
19.5.6.3 Properties of the NativeError Prototype Objects
1547 //
19.5.6.4 Properties of NativeError Instances
1549 // (No polyfillable changes from ES5)
1551 // ---------------------------------------
1552 //
20 Numbers and Dates
1553 // ---------------------------------------
1555 // ---------------------------------------
1556 //
20.1 Number Objects
1557 // ---------------------------------------
1559 //
20.1.1 The Number Constructor
1560 //
20.1.1.1 Number ( [ value ] )
1561 //
20.1.1.2 new Number ( ...argumentsList )
1562 //
20.1.2 Properties of the Number Constructor
1564 //
20.1.2.1 Number.EPSILON
1569 for (next =
1;
1 + next !==
1; next = next /
2)
1574 //
20.1.2.2 Number.isFinite ( number )
1577 function isFinite(number) {
1578 if (Type(number) !== 'number') return false;
1579 if (number !== number || number === +Infinity || number === -Infinity) return false;
1583 //
20.1.2.3 Number.isInteger ( number )
1585 Number, 'isInteger',
1586 function isInteger(number) {
1587 if (Type(number) !== 'number') return false;
1588 if (number !== number || number === +Infinity || number === -Infinity) return false;
1589 var integer = ToInteger(number);
1590 if (integer !== number) return false;
1594 //
20.1.2.4 Number.isNaN ( number )
1597 function isNaN(number) {
1598 if (Type(number) !== 'number') return false;
1599 if (number !== number) return true;
1603 //
20.1.2.5 Number.isSafeInteger ( number )
1605 Number, 'isSafeInteger',
1606 function isSafeInteger(number) {
1607 if (Type(number) !== 'number') return false;
1608 if (number !== number || number === +Infinity || number === -Infinity) return false;
1609 var integer = ToInteger(number);
1610 if (integer !== number) return false;
1611 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1616 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1618 Number, 'MAX_SAFE_INTEGER',
1619 9007199254740991); //
2^
53-
1
1621 //
20.1.2.7 Number.MAX_VALUE
1623 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1625 Number, 'MIN_SAFE_INTEGER',
1626 -
9007199254740991); // -
2^
53+
1
1628 //
20.1.2.9 Number.MIN_VALUE
1629 //
20.1.2.10 Number.NaN
1630 //
20.1.2.11 Number.NEGATIVE_INFINITY
1632 //
20.1.2.12 Number.parseFloat ( string )
1633 define(Number, 'parseFloat', $parseFloat);
1635 //
20.1.2.13 Number.parseInt ( string, radix )
1636 define(Number, 'parseInt', $parseInt);
1638 //
20.1.2.14 Number.POSITIVE_INFINITY
1639 //
20.1.2.15 Number.prototype
1641 //
20.1.3 Properties of the Number Prototype Object
1642 //
20.1.3.1 Number.prototype.constructor
1643 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1644 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1645 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1646 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1647 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1648 //
20.1.3.7 Number.prototype.valueOf ( )
1649 //
20.1.4 Properties of Number Instances
1651 // ---------------------------------------
1652 //
20.2 The Math Object
1653 // ---------------------------------------
1655 //
20.2.1 Value Properties of the Math Object
1657 //
20.2.1.2 Math.LN10
1658 //
20.2.1.3 Math.LN2
1659 //
20.2.1.4 Math.LOG10E
1660 //
20.2.1.5 Math.LOG2E
1662 //
20.2.1.7 Math.SQRT1_2
1663 //
20.2.1.8 Math.SQRT2
1665 //
20.2.1.9 Math [ @@toStringTag ]
1666 define(Math, $$toStringTag, 'Math');
1668 //
20.2.2 Function Properties of the Math Object
1669 //
20.2.2.1 Math.abs ( x )
1670 //
20.2.2.2 Math.acos ( x )
1672 //
20.2.2.3 Math.acosh(x)
1677 return log(x + sqrt(x * x -
1));
1680 //
20.2.2.4 Math.asin ( x )
1682 //
20.2.2.5 Math.asinh( x )
1687 if (SameValue(x, -
0)) {
1690 var s = sqrt(x * x +
1);
1691 return (s === -x) ? log(
0) : log(x + s);
1694 //
20.2.2.6 Math.atan ( x )
1696 //
20.2.2.7 Math.atanh( x )
1701 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1704 //
20.2.2.8 Math.atan2 ( y, x )
1706 //
20.2.2.9 Math.cbrt ( x )
1714 var r = pow(abs(x),
1/
3);
1716 return r + (r * (t-r) / (
2*r + t));
1719 //
20.2.2.10 Math.ceil ( x )
1721 //
20.2.2.11 Math.clz32 ( x )
1726 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1727 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1730 return x &
0xff000000 ? clz8(x
>> 24) :
1731 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1732 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1737 //
20.2.2.12 Math.cos ( x )
1739 //
20.2.2.13 Math.cosh ( x )
1744 return (pow(E, x) + pow(E, -x)) /
2;
1747 //
20.2.2.14 Math.exp ( x )
1749 //
20.2.2.15 Math.expm1 ( x )
1754 // from: http://www.johndcook.com/cpp_log1p.html
1755 if (SameValue(x, -
0)) {
1757 } else if (abs(x) <
1e-5) {
1758 return x +
0.5 * x * x; // two terms of Taylor expansion
1764 //
20.2.2.16 Math.floor ( x )
1766 //
20.2.2.17 Math.fround ( x )
1769 function fround(x) {
1773 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1776 return (new Float32Array([x]))[
0];
1779 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1784 var m =
0, sawNaN = false;
1785 for (var i =
0; i < arguments.length; ++i) {
1786 var n = abs(Number(arguments[i]));
1787 if (n === Infinity) return n;
1788 if (n !== n) sawNaN = true;
1792 if (sawNaN) return NaN;
1793 if (m ===
0) return +
0;
1795 for (i =
0; i < values.length; ++i) {
1796 var r = values[i] / m;
1799 return m * sqrt(sum);
1802 //
20.2.2.19 Math.imul ( x, y )
1805 function imul(x, y) {
1806 var a = ToUint32(x);
1807 var b = ToUint32(y);
1808 // (slow but accurate)
1809 var ah = (a
>>> 16) &
0xffff;
1810 var al = a &
0xffff;
1811 var bh = (b
>>> 16) &
0xffff;
1812 var bl = b &
0xffff;
1813 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1814 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1817 //
20.2.2.20 Math.log ( x )
1819 //
20.2.2.21 Math.log1p ( x )
1824 // from: http://www.johndcook.com/cpp_expm1.html
1827 } else if (SameValue(x, -
0)) {
1829 } else if (abs(x)
> 1e-4) {
1832 return (-
0.5 * x +
1) * x;
1836 //
20.2.2.22 Math.log10 ( x )
1841 return log(x) * LOG10E;
1844 //
20.2.2.23 Math.log2 ( x )
1849 return log(x) * LOG2E;
1852 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1853 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1854 //
20.2.2.26 Math.pow ( x, y )
1855 //
20.2.2.27 Math.random ( )
1856 //
20.2.2.28 Math.round ( x )
1858 //
20.2.2.29 Math.sign(x)
1863 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1866 //
20.2.2.30 Math.sin ( x )
1868 //
20.2.2.31 Math.sinh( x )
1873 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1876 //
20.2.2.32 Math.sqrt ( x )
1877 //
20.2.2.33 Math.tan ( x )
1879 //
20.2.2.34 Math.tanh ( x )
1884 var n = pow(E,
2 * x) -
1,
1885 d = pow(E,
2 * x) +
1;
1886 if (SameValue(x, -
0))
1888 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1891 //
20.2.2.35 Math.trunc ( x )
1896 return $isNaN(x) ? NaN :
1897 x <
0 ? ceil(x) : floor(x);
1900 // ---------------------------------------
1901 //
20.3 Date Objects
1902 // ---------------------------------------
1904 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1905 //
20.3.1.1 Time Values and Time Range
1906 //
20.3.1.2 Day Number and Time within Day
1907 //
20.3.1.3 Year Number
1908 //
20.3.1.4 Month Number
1909 //
20.3.1.5 Date Number
1910 //
20.3.1.6 Week Day
1911 //
20.3.1.7 Local Time Zone Adjustment
1912 //
20.3.1.8 Daylight Saving Time Adjustment
1913 //
20.3.1.9 Local Time
1914 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1915 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1916 //
20.3.1.12 MakeDay (year, month, date)
1917 //
20.3.1.13 MakeDate (day, time)
1918 //
20.3.1.14 TimeClip (time)
1919 //
20.3.1.15 Date Time String Format
1920 //
20.3.1.15.1 Extended years
1921 //
20.3.2 The Date Constructor
1922 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1923 //
20.3.2.2 Date ( value )
1924 //
20.3.2.3 Date ( )
1925 //
20.3.3 Properties of the Date Constructor
1926 //
20.3.3.1 Date.now ( )
1927 //
20.3.3.2 Date.parse (string)
1928 //
20.3.3.3 Date.prototype
1929 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1930 //
20.3.4 Properties of the Date Prototype Object
1931 //
20.3.4.1 Date.prototype.constructor
1932 //
20.3.4.2 Date.prototype.getDate ( )
1933 //
20.3.4.3 Date.prototype.getDay ( )
1934 //
20.3.4.4 Date.prototype.getFullYear ( )
1935 //
20.3.4.5 Date.prototype.getHours ( )
1936 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1937 //
20.3.4.7 Date.prototype.getMinutes ( )
1938 //
20.3.4.8 Date.prototype.getMonth ( )
1939 //
20.3.4.9 Date.prototype.getSeconds ( )
1940 //
20.3.4.10 Date.prototype.getTime ( )
1941 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1942 //
20.3.4.12 Date.prototype.getUTCDate ( )
1943 //
20.3.4.13 Date.prototype.getUTCDay ( )
1944 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1945 //
20.3.4.15 Date.prototype.getUTCHours ( )
1946 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1947 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1948 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1949 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1950 //
20.3.4.20 Date.prototype.setDate ( date )
1951 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1952 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1953 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1954 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1955 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1956 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1957 //
20.3.4.27 Date.prototype.setTime ( time )
1958 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1959 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1960 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1961 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1962 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1963 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1964 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1965 //
20.3.4.35 Date.prototype.toDateString ( )
1966 //
20.3.4.36 Date.prototype.toISOString ( )
1967 //
20.3.4.37 Date.prototype.toJSON ( key )
1968 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1969 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1970 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1971 //
20.3.4.41 Date.prototype.toString ( )
1972 //
20.3.4.42 Date.prototype.toTimeString ( )
1973 //
20.3.4.43 Date.prototype.toUTCString ( )
1974 //
20.3.4.44 Date.prototype.valueOf ( )
1975 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1976 //
20.3.5 Properties of Date Instances
1978 // (No polyfillable changes from ES5)
1980 // ---------------------------------------
1981 //
21 Text Processing
1982 // ---------------------------------------
1984 var string_regexp_dispatch = (function() {
1985 var faux = {}, secret = Symbol();
1986 faux[Symbol.match] = function() { return secret; };
1987 return (
"").match(faux) === secret;
1990 //
21.1 String Objects
1991 //
21.1.1 The String Constructor
1992 //
21.1.1.1 String ( value )
1993 //
21.1.2 Properties of the String Constructor
1994 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
1996 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
1998 String, 'fromCodePoint',
1999 function fromCodePoint(/*...codePoints*/) {
2000 var codePoints = arguments,
2001 length = codePoints.length,
2004 while (nextIndex < length) {
2005 var next = codePoints[nextIndex];
2006 var nextCP = Number(next);
2007 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2008 nextCP <
0 || nextCP
> 0x10FFFF) {
2009 throw RangeError('Invalid code point ' + nextCP);
2011 if (nextCP <
0x10000) {
2012 elements.push(String.fromCharCode(nextCP));
2015 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2016 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2020 return elements.join('');
2023 //
21.1.2.3 String.prototype
2025 //
21.1.2.4 String.raw ( template , ...substitutions )
2028 function raw(template /*, ...substitutions*/) {
2029 var substitutions = [].slice.call(arguments,
1);
2031 var cooked = Object(template);
2032 var rawValue = cooked['raw'];
2033 var raw = Object(rawValue);
2034 var len = raw['length'];
2035 var literalSegments = ToLength(len);
2036 if (literalSegments <=
0) return '';
2037 var stringElements = [];
2040 var next = raw[nextIndex];
2041 var nextSeg = String(next);
2042 stringElements.push(nextSeg);
2043 if (nextIndex +
1 === literalSegments)
2044 return stringElements.join('');
2045 next = substitutions[nextIndex];
2046 var nextSub = String(next);
2047 stringElements.push(nextSub);
2048 nextIndex = nextIndex +
1;
2052 // See https://githib.com/inexorabletash/uate for a more useful version.
2054 //
21.1.3 Properties of the String Prototype Object
2055 //
21.1.3.1 String.prototype.charAt ( pos )
2056 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2058 //
21.1.3.3 String.prototype.codePointAt ( pos )
2060 String.prototype, 'codePointAt',
2061 function codePointAt(pos) {
2062 var o = strict(this);
2064 var position = ToInteger(pos);
2065 var size = s.length;
2066 if (position <
0 || position
>= size) return undefined;
2067 var first = s.charCodeAt(position);
2068 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2069 var second = s.charCodeAt(position +
1);
2070 if (second <
0xDC00 || second
> 0xDFFF) return first;
2071 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2074 //
21.1.3.4 String.prototype.concat ( ...args )
2075 //
21.1.3.5 String.prototype.constructor
2077 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2079 String.prototype, 'endsWith',
2080 function endsWith(searchString) {
2081 var endPosition = arguments[
1];
2083 var o = strict(this);
2085 var searchStr = String(searchString);
2087 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2088 var end = min(max(pos,
0), len);
2089 var searchLength = searchStr.length;
2090 var start = end - searchLength;
2091 if (start <
0) return false;
2092 if (s.substring(start, start + searchLength) === searchStr) return true;
2096 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2098 String.prototype, 'includes',
2099 function includes(searchString) {
2100 var position = arguments[
1];
2102 var o = strict(this);
2104 var searchStr = String(searchString);
2105 var pos = ToInteger(position);
2107 var start = min(max(pos,
0), len);
2108 return s.indexOf(searchStr, start) !== -
1;
2111 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2112 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2113 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2114 //
21.1.3.11 String.prototype.match ( regexp )
2116 String.prototype, 'match',
2117 function match(regexp) {
2118 var o = strict(this);
2120 if (HasProperty(regexp, $$match)) var rx = regexp;
2121 else rx = new RegExp(regexp);
2122 return rx[$$match](s);
2123 }, !string_regexp_dispatch);
2125 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2127 // Not practical due to table sizes; if needed, pull in:
2128 // https://github.com/walling/unorm/
2130 //
21.1.3.13 String.prototype.repeat ( count )
2132 String.prototype, 'repeat',
2133 function repeat(count) {
2134 var o = strict(this);
2136 var n = ToInteger(count);
2137 if (n <
0) throw RangeError();
2138 if (n === Infinity) throw RangeError();
2139 var t = new Array(n +
1).join(s);
2143 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2145 String.prototype, 'replace',
2146 function replace(searchValue, replaceValue) {
2147 var o = strict(this);
2148 if (HasProperty(searchValue, $$replace))
2149 return searchValue[$$replace](o, replaceValue);
2150 return orig_replace.call(o, searchValue, replaceValue);
2151 }, !string_regexp_dispatch);
2153 //
21.1.3.15 String.prototype.search ( regexp )
2155 String.prototype, 'search',
2156 function search(regexp) {
2157 var o = strict(this);
2158 var string = String(o);
2159 if (HasProperty(regexp, $$search)) var rx = regexp;
2160 else rx = new RegExp(regexp);
2161 return rx[$$search](string);
2162 }, !string_regexp_dispatch);
2164 //
21.1.3.16 String.prototype.slice ( start, end )
2165 //
21.1.3.17 String.prototype.split ( separator, limit )
2167 String.prototype, 'split',
2168 function split(separator, limit) {
2169 var o = strict(this);
2170 if (HasProperty(separator, $$split))
2171 return separator[$$split](o, limit);
2172 return orig_split.call(o, separator, limit);
2173 }, !string_regexp_dispatch);
2175 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2177 String.prototype, 'startsWith',
2178 function startsWith(searchString) {
2179 var position = arguments[
1];
2181 var o = strict(this);
2183 var searchStr = String(searchString);
2184 var pos = ToInteger(position);
2186 var start = min(max(pos,
0), len);
2187 var searchLength = searchStr.length;
2188 if (searchLength + start
> len) return false;
2189 if (s.substring(start, start + searchLength) === searchStr) return true;
2193 //
21.1.3.19 String.prototype.substring ( start, end )
2194 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2195 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2196 //
21.1.3.22 String.prototype.toLowerCase ( )
2197 //
21.1.3.23 String.prototype.toString ( )
2198 //
21.1.3.24 String.prototype.toUpperCase ( )
2199 //
21.1.3.25 String.prototype.trim ( )
2200 //
21.1.3.26 String.prototype.valueOf ( )
2202 //
21.1.3.27 String.prototype [ @@iterator ]( )
2204 String.prototype, $$iterator,
2205 function entries() {
2206 return CreateStringIterator(this, 'value');
2209 //
21.1.4 Properties of String Instances
2212 //
21.1.5 String Iterator Objects
2214 function StringIterator() {}
2216 //
21.1.5.1 CreateStringIterator Abstract Operation
2217 function CreateStringIterator(string, kind) {
2218 var s = String(string);
2219 var iterator = new StringIterator;
2220 set_internal(iterator, '[[IteratedString]]', s);
2221 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2222 set_internal(iterator, '[[StringIterationKind]]', kind);
2226 //
21.1.5.2 The %StringIteratorPrototype% Object
2227 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2228 StringIterator.prototype = $StringIteratorPrototype$;
2230 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2232 $StringIteratorPrototype$, 'next',
2234 var o = ToObject(this);
2235 var s = String(o['[[IteratedString]]']),
2236 index = o['[[StringIteratorNextIndex]]'],
2239 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2240 return CreateIterResultObject(undefined, true);
2242 var cp = s.codePointAt(index);
2243 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2244 return CreateIterResultObject(String.fromCodePoint(cp), false);
2247 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2248 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2250 //
21.1.5.3 Properties of String Iterator Instances
2252 // ---------------------------------------
2253 //
21.2 RegExp (Regular Expression) Objects
2254 // ---------------------------------------
2257 //
21.2.2 Pattern Semantics
2258 //
21.2.2.1 Notation
2260 //
21.2.2.3 Disjunction
2261 //
21.2.2.4 Alternative
2263 //
21.2.2.6 Assertion
2264 //
21.2.2.7 Quantifier
2266 //
21.2.2.9 AtomEscape
2267 //
21.2.2.10 CharacterEscape
2268 //
21.2.2.11 DecimalEscape
2269 //
21.2.2.12 CharacterClassEscape
2270 //
21.2.2.13 CharacterClass
2271 //
21.2.2.14 ClassRanges
2272 //
21.2.2.15 NonemptyClassRanges
2273 //
21.2.2.16 NonemptyClassRangesNoDash
2274 //
21.2.2.17 ClassAtom
2275 //
21.2.2.18 ClassAtomNoDash
2276 //
21.2.2.19 ClassEscape
2277 //
21.2.3 The RegExp Constructor
2278 //
21.2.3.1 RegExp ( pattern, flags )
2279 //
21.2.3.2 new RegExp( ...argumentsList )
2280 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2281 //
21.2.4 Properties of the RegExp Constructor
2282 //
21.2.4.1 RegExp.prototype
2283 //
21.2.5 Properties of the RegExp Prototype Object
2284 //
21.2.5.1 RegExp.prototype.constructor
2285 //
21.2.5.2 RegExp.prototype.exec ( string )
2287 //
21.2.5.3 get RegExp.prototype.flags
2288 if (!('flags' in RegExp.prototype)) {
2289 Object.defineProperty(
2290 RegExp.prototype, 'flags', {
2292 var s = String(this);
2293 return s.substring(s.lastIndexOf('/') +
1);
2298 //
21.2.5.4 get RegExp.prototype.global
2299 //
21.2.5.5 get RegExp.prototype.ignoreCase
2301 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2302 define(RegExp.prototype, $$match, function(string) {
2303 var o = strict(this);
2304 return orig_match.call(string, o);
2307 //
21.2.5.7 get RegExp.prototype.multiline
2309 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2310 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2311 var o = strict(this);
2312 return orig_replace.call(string, o, replaceValue);
2315 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2316 define(RegExp.prototype, $$search, function(string) {
2317 var o = strict(this);
2318 return orig_search.call(string, o);
2321 //
21.2.5.10 get RegExp.prototype.source
2323 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2324 define(RegExp.prototype, $$split, function(string, limit) {
2325 var o = strict(this);
2326 return orig_split.call(string, o, limit);
2329 //
21.2.5.12 get RegExp.prototype.sticky
2330 //
21.2.5.13 RegExp.prototype.test( S )
2331 //
21.2.5.14 RegExp.prototype.toString ( )
2332 //
21.2.5.15 get RegExp.prototype.unicode
2334 //
21.2.6 Properties of RegExp Instances
2335 //
21.2.6.1 lastIndex
2337 // (No polyfillable changes from ES5)
2339 // ---------------------------------------
2340 //
22 Indexed Collections
2341 // ---------------------------------------
2343 // ---------------------------------------
2344 //
22.1 Array Objects
2345 // ---------------------------------------
2347 //
22.1.1 The Array Constructor
2348 //
22.1.1.1 Array ( )
2349 //
22.1.1.2 Array (len)
2350 //
22.1.1.3 Array (...items )
2352 //
22.1.2 Properties of the Array Constructor
2354 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2357 function from(items) {
2358 var mapfn = arguments[
1];
2359 var thisArg = arguments[
2];
2361 var c = strict(this);
2362 if (mapfn === undefined) {
2363 var mapping = false;
2365 if (!IsCallable(mapfn)) throw TypeError();
2369 var usingIterator = GetMethod(items, $$iterator);
2370 if (usingIterator !== undefined) {
2371 if (IsConstructor(c)) {
2376 var iterator = GetIterator(items, usingIterator);
2379 var next = IteratorStep(iterator);
2380 if (next === false) {
2384 var nextValue = IteratorValue(next);
2386 var mappedValue = mapfn.call(t, nextValue);
2388 mappedValue = nextValue;
2393 var arrayLike = ToObject(items);
2394 var lenValue = arrayLike.length;
2395 var len = ToLength(lenValue);
2396 if (IsConstructor(c)) {
2403 var kValue = arrayLike[k];
2405 mappedValue = mapfn.call(t, kValue, k);
2407 mappedValue = kValue;
2415 //
22.1.2.2 Array.isArray ( arg )
2417 //
22.1.2.3 Array.of ( ...items )
2421 var items = arguments;
2423 var lenValue = items.length;
2424 var len = ToUint32(lenValue);
2425 var c = strict(this), a;
2426 if (IsConstructor(c)) {
2441 //
22.1.2.4 Array.prototype
2442 //
22.1.2.5 get Array [ @@species ]
2443 //
22.1.3 Properties of the Array Prototype Object
2444 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2445 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2446 //
22.1.3.2 Array.prototype.constructor
2447 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2449 Array.prototype, 'copyWithin',
2450 function copyWithin(target, start/*, end*/) {
2451 var end = arguments[
2];
2453 var o = ToObject(this);
2454 var lenVal = o.length;
2455 var len = ToLength(lenVal);
2457 var relativeTarget = ToInteger(target);
2459 if (relativeTarget <
0)
2460 to = max(len + relativeTarget,
0);
2462 to = min(relativeTarget, len);
2463 var relativeStart = ToInteger(start);
2465 if (relativeStart <
0)
2466 from = max(len + relativeStart,
0);
2468 from = min(relativeStart, len);
2470 if (end === undefined)
2473 relativeEnd = ToInteger(end);
2475 if (relativeEnd <
0)
2476 final = max(len + relativeEnd,
0);
2478 final = min(relativeEnd, len);
2479 var count = min(final - from, len - to);
2481 if (from < to && to < from + count) {
2483 from = from + count -
1;
2484 to = to + count -
1;
2489 var fromKey = String(from);
2490 var toKey = String(to);
2491 var fromPresent = HasProperty(o, fromKey);
2493 var fromVal = o[fromKey];
2498 from = from + direction;
2499 to = to + direction;
2505 //
22.1.3.4 Array.prototype.entries ( )
2506 var nativeArrayIteratorMethods =
2507 ('entries' in Array.prototype && 'next' in [].entries());
2510 Array.prototype, 'entries',
2511 function entries() {
2512 return CreateArrayIterator(this, 'key+value');
2513 }, !nativeArrayIteratorMethods);
2515 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2517 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2519 Array.prototype, 'fill',
2520 function fill(value/*, start, end*/) {
2521 var start = arguments[
1],
2524 var o = ToObject(this);
2525 var lenVal = o.length;
2526 var len = ToLength(lenVal);
2528 var relativeStart = ToInteger(start);
2530 if (relativeStart <
0)
2531 k = max((len + relativeStart),
0);
2533 k = min(relativeStart, len);
2535 if (end === undefined)
2538 relativeEnd = ToInteger(end);
2540 if (relativeEnd <
0)
2541 final = max((len + relativeEnd),
0);
2543 final = min(relativeEnd, len);
2552 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2554 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2556 Array.prototype, 'find',
2557 function find(predicate) {
2558 var o = ToObject(this);
2559 var lenValue = o.length;
2560 var len = ToInteger(lenValue);
2561 if (!IsCallable(predicate)) throw TypeError();
2562 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2566 var kPresent = HasProperty(o, pk);
2569 var testResult = predicate.call(t, kValue, k, o);
2570 if (Boolean(testResult)) {
2579 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2581 Array.prototype, 'findIndex',
2582 function findIndex(predicate) {
2583 var o = ToObject(this);
2584 var lenValue = o.length;
2585 var len = ToLength(lenValue);
2586 if (!IsCallable(predicate)) throw TypeError();
2587 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2591 var kPresent = HasProperty(o, pk);
2594 var testResult = predicate.call(t, kValue, k, o);
2595 if (Boolean(testResult)) {
2604 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2605 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2606 //
22.1.3.12 Array.prototype.join (separator)
2608 //
22.1.3.13 Array.prototype.keys ( )
2610 Array.prototype, 'keys',
2612 return CreateArrayIterator(this, 'key');
2613 }, !nativeArrayIteratorMethods);
2615 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2616 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2617 //
22.1.3.16 Array.prototype.pop ( )
2618 //
22.1.3.17 Array.prototype.push ( ...items )
2619 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2620 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2621 //
22.1.3.20 Array.prototype.reverse ( )
2622 //
22.1.3.21 Array.prototype.shift ( )
2623 //
22.1.3.22 Array.prototype.slice (start, end)
2624 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2625 //
22.1.3.24 Array.prototype.sort (comparefn)
2626 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2627 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2628 //
22.1.3.27 Array.prototype.toString ( )
2629 //
22.1.3.28 Array.prototype.unshift ( ...items )
2631 //
22.1.3.29 Array.prototype.values ( )
2633 Array.prototype, 'values',
2635 return CreateArrayIterator(this, 'value');
2636 }, !nativeArrayIteratorMethods);
2638 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2640 Array.prototype, $$iterator,
2641 Array.prototype.values
2644 //
22.1.3.31 Array.prototype [ @@unscopables ]
2645 //
22.1.4 Properties of Array Instances
2648 //
22.1.5 Array Iterator Objects
2649 function ArrayIterator() {}
2651 //
22.1.5.1 CreateArrayIterator Abstract Operation
2652 function CreateArrayIterator(array, kind) {
2653 var o = ToObject(array);
2654 var iterator = new ArrayIterator;
2655 set_internal(iterator, '[[IteratedObject]]', o);
2656 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2657 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2661 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2662 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2663 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2665 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2667 $ArrayIteratorPrototype$, 'next',
2669 var o = strict(this);
2670 if (Type(o) !== 'object') throw TypeError();
2671 var a = o['[[IteratedObject]]'],
2672 index = o['[[ArrayIteratorNextIndex]]'],
2673 itemKind = o['[[ArrayIterationKind]]'],
2674 lenValue = a.length,
2675 len = ToUint32(lenValue),
2678 if (itemKind.indexOf('sparse') !== -
1) {
2680 while (!found && index < len) {
2681 elementKey = String(index);
2682 found = HasProperty(a, elementKey);
2689 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2690 return CreateIterResultObject(undefined, true);
2693 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2694 if (itemKind.indexOf('value') !== -
1)
2695 elementValue = a[elementKey];
2696 if (itemKind.indexOf('key+value') !== -
1)
2697 return CreateIterResultObject([elementKey, elementValue], false);
2698 if (itemKind.indexOf('key') !== -
1)
2699 return CreateIterResultObject(elementKey, false);
2700 if (itemKind === 'value')
2701 return CreateIterResultObject(elementValue, false);
2702 throw Error('Internal error');
2705 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2706 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2708 //
22.1.5.3 Properties of Array Iterator Instances
2711 // ---------------------------------------
2712 //
22.2 TypedArray Objects
2713 // ---------------------------------------
2715 // See typedarray.js for TypedArray polyfill
2717 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2718 'Int16Array', 'Uint16Array',
2719 'Int32Array', 'Uint32Array',
2720 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2721 if (!($TypedArrayName$ in global))
2723 var $TypedArray$ = global[$TypedArrayName$];
2725 //
22.2.1 The %TypedArray% Intrinsic Object
2726 //
22.2.1.1 %TypedArray% ( length )
2727 //
22.2.1.2 %TypedArray% ( typedArray )
2728 //
22.2.1.3 %TypedArray% ( object )
2729 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2730 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2731 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2733 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2735 $TypedArray$, 'from',
2736 function from(source) {
2737 var mapfn = arguments[
1];
2738 var thisArg = arguments[
2];
2740 var c = strict(this);
2741 if (!IsConstructor(c)) throw TypeError();
2742 if (mapfn === undefined) {
2743 var mapping = false;
2745 if (IsCallable(mapfn)) throw TypeError();
2749 var usingIterator = GetMethod(source, $$iterator);
2750 if (usingIterator !== undefined) {
2751 var iterator = GetIterator(source, usingIterator);
2754 while (next !== false) {
2755 next = IteratorStep(iterator);
2756 if (next !== false) {
2757 var nextValue = IteratorValue(next);
2758 values.push(nextValue);
2761 var len = values.length;
2762 var newObj = new c(len);
2765 var kValue = values.shift();
2767 var mappedValue = mapfn.call(t, kValue);
2769 mappedValue = kValue;
2771 newObj[k] = mappedValue;
2774 console.assert(values.length ===
0);
2777 var arrayLike = ToObject(source);
2778 var lenValue = arrayLike.length;
2779 len = ToLength(lenValue);
2780 newObj = new c(len);
2783 kValue = arrayLike[k];
2785 mappedValue = mapfn.call(t, kValue, k);
2787 mappedValue = kValue;
2789 newObj[k] = mappedValue;
2795 //
22.2.2.2 %TypedArray%.of ( ...items )
2799 var items = arguments;
2801 var len = items.length;
2802 var c = strict(this);
2803 var newObj = new c(len);
2806 newObj[k] = items[k];
2812 //
22.2.2.3 %TypedArray%.prototype
2813 //
22.2.2.4 get %TypedArray% [ @@species ]
2814 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2815 //
22.2.3.1 get %TypedArray%.prototype.buffer
2816 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2817 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2818 //
22.2.3.4 %TypedArray%.prototype.constructor
2820 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2821 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2823 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2824 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2826 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2827 define($TypedArray$.prototype, 'every', Array.prototype.every);
2829 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2831 $TypedArray$.prototype, 'fill',
2832 //Array.prototype.fill // Doesn't work in Safari
7
2833 function fill(value/*, start, end*/) {
2834 var start = arguments[
1],
2837 var o = ToObject(this);
2838 var lenVal = o.length;
2839 var len = ToLength(lenVal);
2841 var relativeStart = ToInteger(start);
2843 if (relativeStart <
0) k = max((len + relativeStart),
0);
2844 else k = min(relativeStart, len);
2846 if (end === undefined) relativeEnd = len;
2847 else relativeEnd = ToInteger(end);
2849 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2850 else final = min(relativeEnd, len);
2859 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2861 $TypedArray$.prototype, 'filter',
2862 function filter(callbackfn) {
2863 var thisArg = arguments[
1];
2865 var o = ToObject(this);
2866 var lenVal = o.length;
2867 var len = ToLength(lenVal);
2868 if (!IsCallable(callbackfn)) throw TypeError();
2870 var c = o.constructor;
2876 var selected = callbackfn.call(t, kValue, k, o);
2883 var a = new c(captured);
2885 for (var i =
0; i < kept.length; ++i) {
2893 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2894 define($TypedArray$.prototype, 'find', Array.prototype.find);
2896 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2897 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2899 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2900 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2902 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2903 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2905 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2906 define($TypedArray$.prototype, 'join', Array.prototype.join);
2908 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2909 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2911 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2912 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2914 //
22.2.3.17 get %TypedArray%.prototype.length
2916 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2918 $TypedArray$.prototype, 'map',
2919 function map(callbackfn) {
2920 var thisArg = arguments[
1];
2922 var o = ToObject(this);
2923 var lenValue = o.length;
2924 var len = ToLength(lenValue);
2925 if (!IsCallable(callbackfn)) throw TypeError();
2928 var c = o.constructor;
2929 if (IsConstructor(c))
2931 if (a === undefined)
2935 var kPresent = HasProperty(o, k);
2938 var mappedValue = callbackfn.call(t, kValue, k, o);
2946 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2947 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2949 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2950 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2952 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2953 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2955 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2956 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2957 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2959 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2961 $TypedArray$.prototype, 'slice',
2962 function slice(start, end) {
2963 var o = ToObject(this);
2964 var lenVal = o.length;
2965 var len = ToLength(lenVal);
2966 var relativeStart = ToInteger(start);
2967 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2968 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2969 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2970 var count = final - k;
2971 var c = o.constructor;
2972 if (IsConstructor(c)) {
2973 var a = new c(count);
2987 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2988 define($TypedArray$.prototype, 'some', Array.prototype.some);
2990 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2992 $TypedArray$.prototype, 'sort',
2994 var comparefn = arguments[
0];
2996 function sortCompare(x, y) {
2997 console.assert(Type(x) === 'number' && Type(y) === 'number');
2998 if (x !== x && y !== y) return +
0;
2999 if (x !== x) return
1;
3000 if (y !== y) return -
1;
3001 if (comparefn !== undefined) {
3002 return comparefn(x, y);
3004 if (x < y) return -
1;
3005 if (x
> y) return
1;
3008 return Array.prototype.sort.call(this, sortCompare);
3011 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3012 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3013 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3015 //
22.2.3.29 %TypedArray%.prototype.values ( )
3016 define($TypedArray$.prototype, 'values', Array.prototype.values);
3018 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3020 $TypedArray$.prototype, $$iterator,
3021 $TypedArray$.prototype.values
3024 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3025 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3027 //
22.2.4 The TypedArray Constructors
3028 //
22.2.4.1TypedArray( ... argumentsList)
3029 //
22.2.5 Properties of the TypedArray Constructors
3030 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3031 //
22.2.5.2 TypedArray.prototype
3032 //
22.2.6 Properties of TypedArray Prototype Objects
3033 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3034 //
22.2.6.2 TypedArray.prototype.constructor
3035 //
22.2.7 Properties of TypedArray Instances
3038 // ---------------------------------------
3039 //
23 Keyed Collection
3040 // ---------------------------------------
3042 // ---------------------------------------
3044 // ---------------------------------------
3047 //
23.1.1 The Map Constructor
3049 //
23.1.1.1 Map ( [ iterable ] )
3051 function Map(/*iterable*/) {
3052 var map = strict(this);
3053 var iterable = arguments[
0];
3055 if (Type(map) !== 'object') throw TypeError();
3056 if ('[[MapData]]' in map) throw TypeError();
3058 if (iterable !== undefined) {
3059 var adder = map['set'];
3060 if (!IsCallable(adder)) throw TypeError();
3061 var iter = GetIterator(ToObject(iterable));
3063 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3064 if (iter === undefined) return map;
3066 var next = IteratorStep(iter);
3069 var nextItem = IteratorValue(next);
3070 if (Type(nextItem) !== 'object') throw TypeError();
3071 var k = nextItem[
0];
3072 var v = nextItem[
1];
3073 adder.call(map, k, v);
3079 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3080 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3081 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3082 (new global.Map([['a',
1]]).size !==
1))
3086 function MapDataIndexOf(mapData, key) {
3088 if (key === key) return mapData.keys.indexOf(key);
3089 // Slow case for NaN
3090 for (i =
0; i < mapData.keys.length; i +=
1)
3091 if (SameValueZero(mapData.keys[i], key)) return i;
3095 //
23.1.1.2 new Map ( ... argumentsList )
3096 //
23.1.2 Properties of the Map Constructor
3097 //
23.1.2.1 Map.prototype
3098 var $MapPrototype$ = {};
3099 Map.prototype = $MapPrototype$;
3101 //
23.1.2.2 get Map [ @@species ]
3103 //
23.1.3 Properties of the Map Prototype Object
3104 //
23.1.3.1 Map.prototype.clear ()
3106 Map.prototype, 'clear',
3108 var m = strict(this);
3109 if (Type(m) !== 'object') throw TypeError();
3110 if (!('[[MapData]]' in m)) throw TypeError();
3111 if (m['[[MapData]]'] === undefined) throw TypeError();
3112 var entries = m['[[MapData]]'];
3113 entries.keys.length =
0;
3114 entries.values.length =
0;
3118 //
23.1.3.2 Map.prototype.constructor
3120 //
23.1.3.3 Map.prototype.delete ( key )
3122 Map.prototype, 'delete',
3123 function delete_(key) {
3124 var m = strict(this);
3125 if (Type(m) !== 'object') throw TypeError();
3126 if (!('[[MapData]]' in m)) throw TypeError();
3127 if (m['[[MapData]]'] === undefined) throw TypeError();
3128 var entries = m['[[MapData]]'];
3129 var i = MapDataIndexOf(entries, key);
3130 if (i <
0) return false;
3131 entries.keys[i] = empty;
3132 entries.values[i] = empty;
3136 //
23.1.3.4 Map.prototype.entries ( )
3138 Map.prototype, 'entries',
3139 function entries() {
3140 var m = strict(this);
3141 if (Type(m) !== 'object') throw TypeError();
3142 return CreateMapIterator(m, 'key+value');
3145 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3147 Map.prototype, 'forEach',
3148 function forEach(callbackfn /*, thisArg*/) {
3149 var thisArg = arguments[
1];
3151 var m = strict(this);
3152 if (Type(m) !== 'object') throw TypeError();
3153 if (!('[[MapData]]' in m)) throw TypeError();
3154 if (m['[[MapData]]'] === undefined) throw TypeError();
3155 var entries = m['[[MapData]]'];
3157 if (!IsCallable(callbackfn)) {
3158 throw TypeError('First argument to forEach is not callable.');
3160 for (var i =
0; i < entries.keys.length; ++i) {
3161 if (entries.keys[i] !== empty) {
3162 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3168 //
23.1.3.6 Map.prototype.get ( key )
3170 Map.prototype, 'get',
3172 var m = strict(this);
3173 if (Type(m) !== 'object') throw TypeError();
3174 if (!('[[MapData]]' in m)) throw TypeError();
3175 if (m['[[MapData]]'] === undefined) throw TypeError();
3176 var entries = m['[[MapData]]'];
3177 var i = MapDataIndexOf(entries, key);
3178 if (i
>=
0) return entries.values[i];
3182 //
23.1.3.7 Map.prototype.has ( key )
3184 Map.prototype, 'has',
3186 var m = strict(this);
3187 if (Type(m) !== 'object') throw TypeError();
3188 if (!('[[MapData]]' in m)) throw TypeError();
3189 if (m['[[MapData]]'] === undefined) throw TypeError();
3190 var entries = m['[[MapData]]'];
3191 if (MapDataIndexOf(entries, key)
>=
0) return true;
3195 //
23.1.3.8 Map.prototype.keys ( )
3197 Map.prototype, 'keys',
3199 var m = strict(this);
3200 if (Type(m) !== 'object') throw TypeError();
3201 return CreateMapIterator(m, 'key');
3204 //
23.1.3.9 Map.prototype.set ( key , value )
3206 Map.prototype, 'set',
3207 function set(key, value) {
3208 var m = strict(this);
3209 if (Type(m) !== 'object') throw TypeError();
3210 if (!('[[MapData]]' in m)) throw TypeError();
3211 if (m['[[MapData]]'] === undefined) throw TypeError();
3212 var entries = m['[[MapData]]'];
3213 var i = MapDataIndexOf(entries, key);
3214 if (i <
0) i = entries.keys.length;
3215 if (SameValue(key, -
0)) key =
0;
3216 entries.keys[i] = key;
3217 entries.values[i] = value;
3221 //
23.1.3.10 get Map.prototype.size
3222 Object.defineProperty(
3223 Map.prototype, 'size', {
3225 var m = strict(this);
3226 if (Type(m) !== 'object') throw TypeError();
3227 if (!('[[MapData]]' in m)) throw TypeError();
3228 if (m['[[MapData]]'] === undefined) throw TypeError();
3229 var entries = m['[[MapData]]'];
3231 for (var i =
0; i < entries.keys.length; ++i) {
3232 if (entries.keys[i] !== empty)
3239 //
23.1.3.11 Map.prototype.values ( )
3241 Map.prototype, 'values',
3243 var m = strict(this);
3244 if (Type(m) !== 'object') throw TypeError();
3245 return CreateMapIterator(m, 'value');
3248 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3250 Map.prototype, $$iterator,
3252 var m = strict(this);
3253 if (Type(m) !== 'object') throw TypeError();
3254 return CreateMapIterator(m, 'key+value');
3257 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3258 define(global.Map.prototype, $$toStringTag, 'Map');
3260 //
23.1.4 Properties of Map Instances
3261 //
23.1.5 Map Iterator Objects
3264 function MapIterator() {}
3266 //
23.1.5.1 CreateMapIterator Abstract Operation
3267 function CreateMapIterator(map, kind) {
3268 if (Type(map) !== 'object') throw TypeError();
3269 if (!('[[MapData]]' in map)) throw TypeError();
3270 if (map['[[MapData]]'] === undefined) throw TypeError();
3271 var iterator = new MapIterator;
3272 set_internal(iterator, '[[Map]]', map);
3273 set_internal(iterator, '[[MapNextIndex]]',
0);
3274 set_internal(iterator, '[[MapIterationKind]]', kind);
3278 //
23.1.5.2 The %MapIteratorPrototype% Object
3279 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3280 MapIterator.prototype = $MapIteratorPrototype$;
3282 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3284 $MapIteratorPrototype$, 'next',
3286 var o = strict(this);
3287 if (Type(o) !== 'object') throw TypeError();
3288 var m = o['[[Map]]'],
3289 index = o['[[MapNextIndex]]'],
3290 itemKind = o['[[MapIterationKind]]'],
3291 entries = m['[[MapData]]'];
3292 while (index < entries.keys.length) {
3293 var e = {key: entries.keys[index], value: entries.values[index]};
3295 set_internal(o, '[[MapNextIndex]]', index);
3296 if (e.key !== empty) {
3297 if (itemKind === 'key') {
3298 return CreateIterResultObject(e.key, false);
3299 } else if (itemKind === 'value') {
3300 return CreateIterResultObject(e.value, false);
3302 return CreateIterResultObject([e.key, e.value], false);
3306 return CreateIterResultObject(undefined, true);
3309 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3310 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3312 //
23.1.5.3 Properties of Map Iterator Instances
3315 // ---------------------------------------
3317 // ---------------------------------------
3320 //
23.2.1 The Set Constructor
3321 //
23.2.1.1 Set ( [ iterable ] )
3324 function Set(/*iterable*/) {
3325 var set = strict(this);
3326 var iterable = arguments[
0];
3328 if (Type(set) !== 'object') throw TypeError();
3329 if ('[[SetData]]' in set) throw TypeError();
3331 if (iterable !== undefined) {
3332 var adder = set['add'];
3333 if (!IsCallable(adder)) throw TypeError();
3334 var iter = GetIterator(ToObject(iterable));
3336 set_internal(set, '[[SetData]]', []);
3337 if (iter === undefined) return set;
3339 var next = IteratorStep(iter);
3342 var nextValue = IteratorValue(next);
3343 adder.call(set, nextValue);
3349 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3350 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3351 (new global.Set([
1]).size !==
1))
3354 function SetDataIndexOf(setData, key) {
3357 return setData.indexOf(key);
3358 // Slow case for NaN
3359 for (i =
0; i < setData.length; i +=
1)
3360 if (SameValueZero(setData[i], key)) return i;
3364 //
23.2.1.2 new Set ( ...argumentsList )
3365 //
23.2.2 Properties of the Set Constructor
3367 //
23.2.2.1 Set.prototype
3368 var $SetPrototype$ = {};
3369 Set.prototype = $SetPrototype$;
3371 //
23.2.2.2 get Set [ @@species ]
3372 //
23.2.3 Properties of the Set Prototype Object
3374 //
23.2.3.1 Set.prototype.add (value )
3376 Set.prototype, 'add',
3377 function add(value) {
3378 var s = strict(this);
3379 if (Type(s) !== 'object') throw TypeError();
3380 if (!('[[SetData]]' in s)) throw TypeError();
3381 if (s['[[SetData]]'] === undefined) throw TypeError();
3382 if (SameValue(value, -
0)) value =
0;
3383 var entries = s['[[SetData]]'];
3384 var i = SetDataIndexOf(entries, value);
3385 if (i <
0) i = s['[[SetData]]'].length;
3386 s['[[SetData]]'][i] = value;
3391 //
23.2.3.2 Set.prototype.clear ()
3393 Set.prototype, 'clear',
3395 var s = strict(this);
3396 if (Type(s) !== 'object') throw TypeError();
3397 if (!('[[SetData]]' in s)) throw TypeError();
3398 if (s['[[SetData]]'] === undefined) throw TypeError();
3399 var entries = s['[[SetData]]'];
3404 //
23.2.3.3 Set.prototype.constructor
3405 //
23.2.3.4 Set.prototype.delete ( value )
3407 Set.prototype, 'delete',
3408 function delete_(value) {
3409 var s = strict(this);
3410 if (Type(s) !== 'object') throw TypeError();
3411 if (!('[[SetData]]' in s)) throw TypeError();
3412 if (s['[[SetData]]'] === undefined) throw TypeError();
3413 var entries = s['[[SetData]]'];
3414 var i = SetDataIndexOf(entries, value);
3415 if (i <
0) return false;
3420 //
23.2.3.5 Set.prototype.entries ( )
3422 Set.prototype, 'entries',
3423 function entries() {
3424 var s = strict(this);
3425 if (Type(s) !== 'object') throw TypeError();
3426 return CreateSetIterator(s, 'key+value');
3429 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3431 Set.prototype, 'forEach',
3432 function forEach(callbackfn/*, thisArg*/) {
3433 var thisArg = arguments[
1];
3435 var s = strict(this);
3436 if (Type(s) !== 'object') throw TypeError();
3437 if (!('[[SetData]]' in s)) throw TypeError();
3438 if (s['[[SetData]]'] === undefined) throw TypeError();
3439 var entries = s['[[SetData]]'];
3441 if (!IsCallable(callbackfn)) {
3442 throw TypeError('First argument to forEach is not callable.');
3444 for (var i =
0; i < entries.length; ++i) {
3445 if (entries[i] !== empty) {
3446 callbackfn.call(thisArg, entries[i], entries[i], s);
3451 //
23.2.3.7 Set.prototype.has ( value )
3453 Set.prototype, 'has',
3455 var s = strict(this);
3456 if (Type(s) !== 'object') throw TypeError();
3457 if (!('[[SetData]]' in s)) throw TypeError();
3458 if (s['[[SetData]]'] === undefined) throw TypeError();
3459 var entries = s['[[SetData]]'];
3460 return SetDataIndexOf(entries, key) !== -
1;
3463 //
23.2.3.8 Set.prototype.keys ( )
3464 // See Set.prototype.values
3466 //
23.2.3.9 get Set.prototype.size
3467 Object.defineProperty(
3468 Set.prototype, 'size', {
3470 var s = strict(this);
3471 if (Type(s) !== 'object') throw TypeError();
3472 if (!('[[SetData]]' in s)) throw TypeError();
3473 if (s['[[SetData]]'] === undefined) throw TypeError();
3474 var entries = s['[[SetData]]'];
3476 for (var i =
0; i < entries.length; ++i) {
3477 if (entries[i] !== empty)
3484 //
23.2.3.10 Set.prototype.values ( )
3486 Set.prototype, 'values',
3488 var s = strict(this);
3489 if (Type(s) !== 'object') throw TypeError();
3490 return CreateSetIterator(s, 'value');
3492 // NOTE: function name is still 'values':
3493 Set.prototype.keys = Set.prototype.values;
3495 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3497 Set.prototype, $$iterator,
3499 var s = strict(this);
3500 if (Type(s) !== 'object') throw TypeError();
3501 return CreateSetIterator(s);
3504 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3505 define(global.Set.prototype, $$toStringTag, 'Set');
3507 //
23.2.4 Properties of Set Instances
3508 //
23.2.5 Set Iterator Objects
3510 function SetIterator() {}
3512 //
23.2.5.1 CreateSetIterator Abstract Operation
3513 function CreateSetIterator(set, kind) {
3514 if (Type(set) !== 'object') throw TypeError();
3515 if (!('[[SetData]]' in set)) throw TypeError();
3516 if (set['[[SetData]]'] === undefined) throw TypeError();
3517 var iterator = new SetIterator;
3518 set_internal(iterator, '[[IteratedSet]]', set);
3519 set_internal(iterator, '[[SetNextIndex]]',
0);
3520 set_internal(iterator, '[[SetIterationKind]]', kind);
3524 //
23.2.5.2 The %SetIteratorPrototype% Object
3525 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3526 SetIterator.prototype = $SetIteratorPrototype$;
3528 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3530 $SetIteratorPrototype$, 'next',
3532 var o = strict(this);
3533 if (Type(o) !== 'object') throw TypeError();
3534 var s = o['[[IteratedSet]]'],
3535 index = o['[[SetNextIndex]]'],
3536 itemKind = o['[[SetIterationKind]]'],
3537 entries = s['[[SetData]]'];
3538 while (index < entries.length) {
3539 var e = entries[index];
3541 set_internal(o, '[[SetNextIndex]]', index);
3543 if (itemKind === 'key+value')
3544 return CreateIterResultObject([e, e], false);
3545 return CreateIterResultObject(e, false);
3548 return CreateIterResultObject(undefined, true);
3551 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3552 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3554 //
23.2.5.3 Properties of Set Iterator Instances
3558 // ---------------------------------------
3559 //
23.3 WeakMap Objects
3560 // ---------------------------------------
3563 //
23.3.1 The WeakMap Constructor
3564 //
23.3.1.1 WeakMap ( [ iterable ] )
3566 function WeakMap(/*iterable*/) {
3567 var map = strict(this);
3568 var iterable = arguments[
0];
3570 if (Type(map) !== 'object') throw TypeError();
3571 if ('[[WeakMapData]]' in map) throw TypeError();
3573 if (iterable !== undefined) {
3574 var adder = map['set'];
3575 if (!IsCallable(adder)) throw TypeError();
3576 var iter = GetIterator(ToObject(iterable));
3578 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3579 if (iter === undefined) return map;
3581 var next = IteratorStep(iter);
3584 var nextValue = IteratorValue(next);
3585 if (Type(nextValue) !== 'object') throw TypeError();
3586 var k = nextValue[
0];
3587 var v = nextValue[
1];
3588 adder.call(map, k, v);
3594 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3595 global.WeakMap = WeakMap;
3597 //
23.3.2 Properties of the WeakMap Constructor
3598 //
23.3.2.1 WeakMap.prototype
3599 var $WeakMapPrototype$ = {};
3600 WeakMap.prototype = $WeakMapPrototype$;
3604 //
23.3.2.2 WeakMap[ @@create ] ( )
3605 //
23.3.3 Properties of the WeakMap Prototype Object
3607 //
23.3.3.1 WeakMap.prototype.constructor
3609 //
23.3.3.2 WeakMap.prototype.delete ( key )
3611 WeakMap.prototype, 'delete',
3612 function delete_(key) {
3613 var M = strict(this);
3614 if (Type(M) !== 'object') throw TypeError();
3615 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3616 if (Type(key) !== 'object') throw TypeError('Expected object');
3617 return M['[[WeakMapData]]'].remove(key);
3620 //
23.3.3.3 WeakMap.prototype.get ( key )
3622 WeakMap.prototype, 'get',
3623 function get(key, defaultValue) {
3624 var M = strict(this);
3625 if (Type(M) !== 'object') throw TypeError();
3626 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3627 if (Type(key) !== 'object') throw TypeError('Expected object');
3628 return M['[[WeakMapData]]'].get(key, defaultValue);
3631 //
23.3.3.4 WeakMap.prototype.has ( key )
3633 WeakMap.prototype, 'has',
3635 var M = strict(this);
3636 if (Type(M) !== 'object') throw TypeError();
3637 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3638 if (Type(key) !== 'object') throw TypeError('Expected object');
3639 return M['[[WeakMapData]]'].has(key);
3642 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3644 WeakMap.prototype, 'set',
3645 function set(key, value) {
3646 var M = strict(this);
3647 if (Type(M) !== 'object') throw TypeError();
3648 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3649 if (Type(key) !== 'object') throw TypeError('Expected object');
3650 M['[[WeakMapData]]'].set(key, value);
3654 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3655 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3657 //
23.3.4 Properties of WeakMap Instances
3659 // Polyfills for incomplete native implementations:
3661 var wm = new global.WeakMap();
3662 var orig = global.WeakMap.prototype.set;
3663 define(global.WeakMap.prototype, 'set', function set() {
3664 orig.apply(this, arguments);
3666 }, wm.set({},
0) !== wm);
3670 // ---------------------------------------
3671 //
23.4 WeakSet Objects
3672 // ---------------------------------------
3675 //
23.4.1 The WeakSet Constructor
3676 //
23.4.1.1 WeakSet ( [ iterable ] )
3678 function WeakSet(/*iterable*/) {
3679 var set = strict(this);
3680 var iterable = arguments[
0];
3682 if (Type(set) !== 'object') throw TypeError();
3683 if ('[[WeakSetData]]' in set) throw TypeError();
3685 if (iterable !== undefined) {
3686 var adder = set['add'];
3687 if (!IsCallable(adder)) throw TypeError();
3688 var iter = GetIterator(ToObject(iterable));
3690 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3691 if (iter === undefined) return set;
3693 var next = IteratorStep(iter);
3696 var nextValue = IteratorValue(next);
3697 adder.call(set, nextValue);
3703 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3704 global.WeakSet = WeakSet;
3706 //
23.4.2 Properties of the WeakSet Constructor
3707 //
23.4.2.1 WeakSet.prototype
3708 var $WeakSetPrototype$ = {};
3709 WeakSet.prototype = $WeakSetPrototype$;
3711 //
23.4.3 Properties of the WeakSet Prototype Object
3712 //
23.4.3.1 WeakSet.prototype.add (value )
3714 WeakSet.prototype, 'add',
3715 function add(value) {
3716 var S = strict(this);
3717 if (Type(S) !== 'object') throw TypeError();
3718 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3719 if (Type(value) !== 'object') throw TypeError('Expected object');
3720 S['[[WeakSetData]]'].set(value, true);
3724 //
23.4.3.2 WeakSet.prototype.constructor
3725 //
23.4.3.3 WeakSet.prototype.delete ( value )
3727 WeakSet.prototype, 'delete',
3728 function delete_(value) {
3729 var S = strict(this);
3730 if (Type(S) !== 'object') throw TypeError();
3731 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3732 if (Type(value) !== 'object') throw TypeError('Expected object');
3733 return S['[[WeakSetData]]'].remove(value);
3736 //
23.4.3.4 WeakSet.prototype.has ( value )
3738 WeakSet.prototype, 'has',
3740 var S = strict(this);
3741 if (Type(S) !== 'object') throw TypeError();
3742 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3743 if (Type(key) !== 'object') throw TypeError('Expected object');
3744 return S['[[WeakSetData]]'].has(key);
3747 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3748 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3750 //
23.4.4 Properties of WeakSet Instances
3752 // Polyfills for incomplete native implementations:
3754 var ws = new global.WeakSet();
3755 var orig = global.WeakSet.prototype.add;
3756 define(global.WeakSet.prototype, 'add', function add() {
3757 orig.apply(this, arguments);
3759 }, ws.add({}) !== ws);
3763 // ---------------------------------------
3764 //
24 Structured Data
3765 // ---------------------------------------
3767 // ---------------------------------------
3768 //
24.1 ArrayBuffer Objects
3769 // ---------------------------------------
3771 // See typedarray.js for TypedArray polyfill
3774 if (!('ArrayBuffer' in global))
3777 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3778 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3779 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3780 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3781 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3782 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3783 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3784 //
24.1.2 The ArrayBuffer Constructor
3785 //
24.1.2.1 ArrayBuffer( length )
3786 //
24.1.3 Properties of the ArrayBuffer Constructor
3788 //
24.1.3.1 ArrayBuffer.isView ( arg )
3790 ArrayBuffer, 'isView',
3791 function isView(arg) {
3792 if (Type(arg) !== 'object') return false;
3793 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3797 //
24.1.3.2 ArrayBuffer.prototype
3798 //
24.1.3.3 get ArrayBuffer [ @@species ]
3799 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3800 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3801 //
24.1.4.2 ArrayBuffer.prototype.constructor
3802 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3804 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3805 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3807 //
24.1.5 Properties of the ArrayBuffer Instances
3810 // ---------------------------------------
3811 //
24.2 DataView Objects
3812 // ---------------------------------------
3814 // See typedarray.js for TypedArray polyfill
3817 if (!('DataView' in global))
3820 //
24.2.1 Abstract Operations For DataView Objects
3821 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3822 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3823 //
24.2.2 The DataView Constructor
3824 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3825 //
24.2.3 Properties of the DataView Constructor
3826 //
24.2.3.1 DataView.prototype
3827 //
24.2.4 Properties of the DataView Prototype Object
3828 //
24.2.4.1 get DataView.prototype.buffer
3829 //
24.2.4.2 get DataView.prototype.byteLength
3830 //
24.2.4.3 get DataView.prototype.byteOffset
3831 //
24.2.4.4 DataView.prototype.constructor
3832 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3833 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3834 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3835 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3836 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3837 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3838 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3840 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3841 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3842 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3843 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3844 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3845 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3846 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3847 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3849 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3850 define(DataView.prototype, $$toStringTag, 'DataView');
3852 //
24.2.5 Properties of DataView Instances
3855 // ---------------------------------------
3856 //
24.3 The JSON Object
3857 // ---------------------------------------
3859 //
24.3.1 JSON.parse ( text [ , reviver ] )
3860 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3861 //
24.3.3 JSON [ @@toStringTag ]
3862 define(JSON, $$toStringTag, 'JSON');
3864 // ---------------------------------------
3866 // ---------------------------------------
3868 //
25.1.1 Common Iteration Interfaces
3869 //
25.1.1.1 The Iterable Interface
3870 //
25.1.1.2 The Iterator Interface
3871 //
25.1.1.3 The IteratorResult Interface
3873 //
25.1.2 The %IteratorPrototype% Object
3874 // Defined earlier, so other prototypes can reference it.
3875 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3876 define($IteratorPrototype$, $$iterator, function() {
3881 // ---------------------------------------
3882 //
25.4 Promise Objects
3883 // ---------------------------------------
3886 //
25.4 Promise Objects
3888 //
25.4.1 Promise Abstract Operations
3890 //
25.4.1.1 PromiseCapability Records
3891 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3893 function IfAbruptRejectPromise(value, capability) {
3894 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3895 return capability['[[Promise]]'];
3898 //
25.4.1.2 PromiseReaction Records
3900 //
25.4.1.3 CreateResolvingFunctions ( promise )
3902 function CreateResolvingFunctions(promise) {
3903 var alreadyResolved = {'[[value]]': false};
3904 var resolve = PromiseResolveFunction();
3905 set_internal(resolve, '[[Promise]]', promise);
3906 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3907 var reject = PromiseRejectFunction();
3908 set_internal(reject, '[[Promise]]', promise);
3909 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3910 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3913 //
25.4.1.3.1 Promise Reject Functions
3915 function PromiseRejectFunction() {
3916 var F = function(reason) {
3917 console.assert(Type(F['[[Promise]]']) === 'object');
3918 var promise = F['[[Promise]]'];
3919 var alreadyResolved = F['[[AlreadyResolved]]'];
3920 if (alreadyResolved['[[value]]']) return undefined;
3921 set_internal(alreadyResolved, '[[value]]', true);
3922 return RejectPromise(promise, reason);
3927 //
25.4.1.3.2 Promise Resolve Functions
3929 function PromiseResolveFunction() {
3930 var F = function(resolution) {
3931 console.assert(Type(F['[[Promise]]']) === 'object');
3932 var promise = F['[[Promise]]'];
3933 var alreadyResolved = F['[[AlreadyResolved]]'];
3934 if (alreadyResolved['[[value]]']) return undefined;
3935 set_internal(alreadyResolved, '[[value]]', true);
3937 if (SameValue(resolution, promise)) {
3938 var selfResolutionError = TypeError();
3939 return RejectPromise(promise, selfResolutionError);
3941 if (Type(resolution) !== 'object')
3942 return FulfillPromise(promise, resolution);
3944 var then = resolution['then'];
3946 return RejectPromise(promise, then);
3948 if (!IsCallable(then))
3949 return FulfillPromise(promise, resolution);
3950 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3956 //
25.4.1.4 FulfillPromise ( promise, value )
3958 function FulfillPromise(promise, value) {
3959 console.assert(promise['[[PromiseState]]'] === 'pending');
3960 var reactions = promise['[[PromiseFulfillReactions]]'];
3961 set_internal(promise, '[[PromiseResult]]', value);
3962 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3963 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3964 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3965 return TriggerPromiseReactions(reactions, value);
3968 //
25.4.1.5 NewPromiseCapability ( C )
3970 function NewPromiseCapability(c) {
3971 // To keep Promise hermetic, this doesn't look much like the spec.
3972 return CreatePromiseCapabilityRecord(undefined, c);
3975 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3977 function CreatePromiseCapabilityRecord(promise, constructor) {
3978 // To keep Promise hermetic, this doesn't look much like the spec.
3979 console.assert(IsConstructor(constructor));
3980 var promiseCapability = {};
3981 set_internal(promiseCapability, '[[Promise]]', promise);
3982 set_internal(promiseCapability, '[[Resolve]]', undefined);
3983 set_internal(promiseCapability, '[[Reject]]', undefined);
3984 var executor = GetCapabilitiesExecutor();
3985 set_internal(executor, '[[Capability]]', promiseCapability);
3987 // NOTE: Differs from spec; object is constructed here
3988 var constructorResult = promise = new constructor(executor);
3989 set_internal(promiseCapability, '[[Promise]]', promise);
3991 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3992 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3993 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
3994 return promiseCapability;
3997 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
3999 function GetCapabilitiesExecutor() {
4000 var F = function(resolve, reject) {
4001 console.assert(F['[[Capability]]']);
4002 var promiseCapability = F['[[Capability]]'];
4003 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4004 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4005 set_internal(promiseCapability, '[[Resolve]]', resolve);
4006 set_internal(promiseCapability, '[[Reject]]', reject);
4012 //
25.4.1.6 IsPromise ( x )
4014 function IsPromise(x) {
4015 if (Type(x) !== 'object') return false;
4016 if (!('[[PromiseState]]' in x)) return false;
4017 if (x['[[PromiseState]]'] === undefined) return false;
4021 //
25.4.1.7 RejectPromise ( promise, reason )
4023 function RejectPromise(promise, reason) {
4024 console.assert(promise['[[PromiseState]]'] === 'pending');
4025 var reactions = promise['[[PromiseRejectReactions]]'];
4026 set_internal(promise, '[[PromiseResult]]', reason);
4027 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4028 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4029 set_internal(promise, '[[PromiseState]]', 'rejected');
4030 return TriggerPromiseReactions(reactions, reason);
4033 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4035 function TriggerPromiseReactions(reactions, argument) {
4036 for (var i =
0, len = reactions.length; i < len; ++i)
4037 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4041 //
25.4.2 Promise Jobs
4043 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4045 function PromiseReactionJob(reaction, argument) {
4046 var promiseCapability = reaction['[[Capabilities]]'];
4047 var handler = reaction['[[Handler]]'];
4048 var handlerResult, status;
4050 if (handler === 'Identity') handlerResult = argument;
4051 else if (handler === 'Thrower') throw argument;
4052 else handlerResult = handler.call(undefined, argument);
4053 } catch (handlerResult) {
4054 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4055 NextJob(status); return;
4057 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4061 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4063 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4064 // SPEC BUG: promise vs. promiseToResolve
4065 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4067 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4068 resolvingFunctions['[[Reject]]']);
4069 } catch (thenCallResult) {
4070 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4071 NextJob(status); return;
4073 NextJob(thenCallResult);
4076 //
25.4.3 The Promise Constructor
4078 //
25.4.3.1 Promise ( executor )
4080 function Promise(executor) {
4081 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4082 Object.defineProperty(this, '[[PromiseState]]', config);
4083 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4084 Object.defineProperty(this, '[[PromiseResult]]', config);
4085 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4086 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4089 if (Type(promise) !== 'object') throw new TypeError();
4090 if (!('[[PromiseState]]' in promise)) throw TypeError();
4091 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4092 if (!IsCallable(executor)) throw TypeError();
4094 set_internal(promise, '[[PromiseConstructor]]', Promise);
4096 return InitializePromise(promise, executor);
4099 //
25.4.3.1.1 InitializePromise ( promise, executor )
4101 function InitializePromise(promise, executor) {
4102 console.assert('[[PromiseState]]' in promise);
4103 console.assert(IsCallable(executor));
4104 set_internal(promise, '[[PromiseState]]', 'pending');
4105 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4106 set_internal(promise, '[[PromiseRejectReactions]]', []);
4107 var resolvingFunctions = CreateResolvingFunctions(promise);
4109 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4110 resolvingFunctions['[[Reject]]']);
4111 } catch (completion) {
4112 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4117 //
25.4.4 Properties of the Promise Constructor
4118 //
25.4.4.1 Promise.all ( iterable )
4120 define(Promise, 'all', function all(iterable) {
4121 var c = strict(this);
4122 var promiseCapability = NewPromiseCapability(c);
4124 var iterator = GetIterator(iterable);
4126 promiseCapability['[[Reject]]'].call(undefined, value);
4127 return promiseCapability['[[Promise]]'];
4130 var remainingElementsCount = { value:
1 };
4134 var next = IteratorStep(iterator);
4136 promiseCapability['[[Reject]]'].call(undefined, value);
4137 return promiseCapability['[[Promise]]'];
4140 remainingElementsCount.value -=
1;
4141 if (remainingElementsCount.value ===
0) {
4142 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4146 return promiseCapability['[[Promise]]'];
4149 var nextValue = IteratorValue(next);
4151 promiseCapability['[[Reject]]'].call(undefined, value);
4152 return promiseCapability['[[Promise]]'];
4155 var nextPromise = c.resolve(nextValue);
4157 promiseCapability['[[Reject]]'].call(undefined, value);
4158 return promiseCapability['[[Promise]]'];
4160 var resolveElement = PromiseAllResolveElementFunction();
4161 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4162 set_internal(resolveElement, '[[Index]]', index);
4163 set_internal(resolveElement, '[[Values]]', values);
4164 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4165 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4166 remainingElementsCount.value +=
1;
4168 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4170 promiseCapability['[[Reject]]'].call(undefined, value);
4171 return promiseCapability['[[Promise]]'];
4177 //
25.4.4.1.1 Promise.all Resolve Element Functions
4179 function PromiseAllResolveElementFunction() {
4180 var F = function(x) {
4181 var alreadyCalled = F['[[AlreadyCalled]]'];
4182 if (alreadyCalled.value) return undefined;
4183 alreadyCalled.value = true;
4184 var index = F['[[Index]]'];
4185 var values = F['[[Values]]'];
4186 var promiseCapability = F['[[Capabilities]]'];
4187 var remainingElementsCount = F['[[RemainingElements]]'];
4191 promiseCapability['[[Reject]]'].call(undefined, result);
4192 return promiseCapability['[[Promise]]'];
4194 remainingElementsCount.value -=
1;
4195 if (remainingElementsCount.value ===
0)
4196 return promiseCapability['[[Resolve]]'].call(undefined, values);
4202 //
25.4.4.2 Promise.prototype
4204 Promise.prototype = {};
4206 //
25.4.4.3 Promise.race ( iterable )
4208 define(Promise, 'race', function race(iterable) {
4209 var c = strict(this);
4210 var promiseCapability = NewPromiseCapability(c);
4212 var iterator = GetIterator(iterable);
4214 promiseCapability['[[Reject]]'].call(undefined, value);
4215 return promiseCapability['[[Promise]]'];
4219 var next = IteratorStep(iterator);
4221 promiseCapability['[[Reject]]'].call(undefined, value);
4222 return promiseCapability['[[Promise]]'];
4224 if (!next) return promiseCapability['[[Promise]]'];
4226 var nextValue = IteratorValue(next);
4228 promiseCapability['[[Reject]]'].call(undefined, value);
4229 return promiseCapability['[[Promise]]'];
4232 var nextPromise = c.resolve(nextValue);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4240 promiseCapability['[[Reject]]'].call(undefined, value);
4241 return promiseCapability['[[Promise]]'];
4246 //
25.4.4.4 Promise.reject ( r )
4248 define(Promise, 'reject', function reject(r) {
4249 var c = strict(this);
4250 var promiseCapability = NewPromiseCapability(c);
4251 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4252 return promiseCapability['[[Promise]]'];
4255 //
25.4.4.5 Promise.resolve ( x )
4257 define(Promise, 'resolve', function resolve(x) {
4258 var c = strict(this);
4260 var constructor = x['[[PromiseConstructor]]'];
4261 if (SameValue(constructor, c)) return x;
4263 var promiseCapability = NewPromiseCapability(c);
4264 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4265 return promiseCapability['[[Promise]]'];
4268 //
25.4.4.6 Promise [ @@create ] ( )
4269 //
25.4.4.6.1 AllocatePromise ( constructor )
4270 //
25.4.5 Properties of the Promise Prototype Object
4271 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4273 define(Promise.prototype, 'catch', function catch_(onRejected) {
4275 return promise.then(undefined, onRejected);
4278 //
25.4.5.2 Promise.prototype.constructor
4280 Promise.prototype.constructor = Promise;
4282 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4284 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4286 if (!IsPromise(promise)) throw TypeError();
4287 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4288 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4289 var c = promise.constructor;
4290 var promiseCapability = NewPromiseCapability(c);
4291 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4292 '[[Handler]]': onFulfilled };
4293 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4294 '[[Handler]]': onRejected };
4295 if (promise['[[PromiseState]]'] === 'pending') {
4296 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4297 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4298 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4299 var value = promise['[[PromiseResult]]'];
4300 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4301 } else if (promise['[[PromiseState]]'] === 'rejected') {
4302 var reason = promise['[[PromiseResult]]'];
4303 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4305 return promiseCapability['[[Promise]]'];
4308 //
25.4.6 Properties of Promise Instances
4310 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4311 global.Promise = Promise;
4313 // Patch early Promise.cast vs. Promise.resolve implementations
4314 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4317 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4318 define(Promise.prototype, $$toStringTag, 'Promise');
4320 // ---------------------------------------
4322 // ---------------------------------------
4325 //
26.1 The Reflect Object
4326 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4327 global.Reflect = {};
4329 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4332 function apply(target, thisArgument, argumentsList) {
4333 if (!IsCallable(target)) throw TypeError();
4334 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4337 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4339 Reflect, 'construct',
4340 function construct(target, argumentsList) {
4341 return __cons(target, argumentsList);
4344 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4346 Reflect, 'defineProperty',
4347 function defineProperty(target, propertyKey, attributes) {
4349 Object.defineProperty(target, propertyKey, attributes);
4356 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4358 Reflect, 'deleteProperty',
4359 function deleteProperty(target,name) {
4361 delete target[name];
4362 return !HasOwnProperty(target, name);
4368 //
26.1.5 Reflect.enumerate ( target )
4370 Reflect, 'enumerate',
4371 function enumerate(target) {
4372 target = ToObject(target);
4373 var iterator = Enumerate(target);
4377 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4380 function get(target, name, receiver) {
4381 target = ToObject(target);
4382 name = String(name);
4383 receiver = (receiver === undefined) ? target : ToObject(receiver);
4384 var desc = getPropertyDescriptor(target, name);
4385 if (desc && 'get' in desc)
4386 return Function.prototype.call.call(desc['get'], receiver);
4387 return target[name];
4390 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4392 Reflect, 'getOwnPropertyDescriptor',
4393 Object.getOwnPropertyDescriptor);
4395 //
26.1.8 Reflect.getPrototypeOf ( target )
4397 Reflect, 'getPrototypeOf',
4398 Object.getPrototypeOf);
4400 //
26.1.9 Reflect.has ( target, propertyKey )
4403 function has(target,name) {
4404 return String(name) in ToObject(target);
4407 //
26.1.10 Reflect.isExtensible (target)
4409 Reflect, 'isExtensible',
4410 Object.isExtensible);
4412 //
26.1.11 Reflect.ownKeys ( target )
4415 function ownKeys(target) {
4416 var obj = ToObject(target);
4417 return Object.getOwnPropertyNames(obj);
4420 //
26.1.12 Reflect.preventExtensions ( target )
4422 Reflect, 'preventExtensions',
4423 function preventExtensions(target) {
4424 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4427 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4430 function set(target, name, value, receiver) {
4431 target = ToObject(target);
4432 name = String(name);
4433 receiver = (receiver === undefined) ? target : ToObject(receiver);
4434 var desc = getPropertyDescriptor(target, name);
4436 if (desc && 'set' in desc)
4437 Function.prototype.call.call(desc['set'], receiver, value);
4439 target[name] = value;
4446 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4448 Reflect, 'setPrototypeOf',
4449 function setPrototypeOf(target, proto) {
4451 target.__proto__ = proto;
4452 return Reflect.getPrototypeOf(target) === proto;
4460 // ---------------------------------------
4461 //
26.2 Proxy Objects
4462 // ---------------------------------------
4464 // Not polyfillable.
4468 // This helper is defined outside the main scope so that the use of
4469 // 'eval' does not taint the scope for minifiers.
4470 function __cons(t, a) {
4471 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4474 <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){
4477 exports.byteLength = byteLength
4478 exports.toByteArray = toByteArray
4479 exports.fromByteArray = fromByteArray
4483 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4485 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4486 for (var i =
0, len = code.length; i < len; ++i) {
4488 revLookup[code.charCodeAt(i)] = i
4491 revLookup['-'.charCodeAt(
0)] =
62
4492 revLookup['_'.charCodeAt(
0)] =
63
4494 function placeHoldersCount (b64) {
4495 var len = b64.length
4497 throw new Error('Invalid string. Length must be a multiple of
4')
4500 // the number of equal signs (place holders)
4501 // if there are two placeholders, than the two characters before it
4502 // represent one byte
4503 // if there is only one, then the three characters before it represent
2 bytes
4504 // this is just a cheap hack to not do indexOf twice
4505 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4508 function byteLength (b64) {
4509 // base64 is
4/
3 + up to two characters of the original data
4510 return b64.length *
3 /
4 - placeHoldersCount(b64)
4513 function toByteArray (b64) {
4514 var i, j, l, tmp, placeHolders, arr
4515 var len = b64.length
4516 placeHolders = placeHoldersCount(b64)
4518 arr = new Arr(len *
3 /
4 - placeHolders)
4520 // if there are placeholders, only get up to the last complete
4 chars
4521 l = placeHolders
> 0 ? len -
4 : len
4525 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4526 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4527 arr[L++] = (tmp
>> 16) &
0xFF
4528 arr[L++] = (tmp
>> 8) &
0xFF
4529 arr[L++] = tmp &
0xFF
4532 if (placeHolders ===
2) {
4533 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4534 arr[L++] = tmp &
0xFF
4535 } else if (placeHolders ===
1) {
4536 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4537 arr[L++] = (tmp
>> 8) &
0xFF
4538 arr[L++] = tmp &
0xFF
4544 function tripletToBase64 (num) {
4545 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4548 function encodeChunk (uint8, start, end) {
4551 for (var i = start; i < end; i +=
3) {
4552 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4553 output.push(tripletToBase64(tmp))
4555 return output.join('')
4558 function fromByteArray (uint8) {
4560 var len = uint8.length
4561 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4564 var maxChunkLength =
16383 // must be multiple of
3
4566 // go through the array every three bytes, we'll deal with trailing stuff later
4567 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4568 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4571 // pad the end with zeros, but make sure to not forget the extra bytes
4572 if (extraBytes ===
1) {
4573 tmp = uint8[len -
1]
4574 output += lookup[tmp
>> 2]
4575 output += lookup[(tmp <<
4) &
0x3F]
4577 } else if (extraBytes ===
2) {
4578 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4579 output += lookup[tmp
>> 10]
4580 output += lookup[(tmp
>> 4) &
0x3F]
4581 output += lookup[(tmp <<
2) &
0x3F]
4587 return parts.join('')
4590 },{}],
2:[function(require,module,exports){
4592 * The buffer module from node.js, for the browser.
4594 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4597 /* eslint-disable no-proto */
4601 var base64 = require('base64-js')
4602 var ieee754 = require('ieee754')
4604 exports.Buffer = Buffer
4605 exports.SlowBuffer = SlowBuffer
4606 exports.INSPECT_MAX_BYTES =
50
4608 var K_MAX_LENGTH =
0x7fffffff
4609 exports.kMaxLength = K_MAX_LENGTH
4612 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4613 * === true Use Uint8Array implementation (fastest)
4614 * === false Print warning and recommend using `buffer` v4.x which has an Object
4615 * implementation (most compatible, even IE6)
4617 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4618 * Opera
11.6+, iOS
4.2+.
4620 * We report that the browser does not support typed arrays if the are not subclassable
4621 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4622 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4623 * for __proto__ and has a buggy typed array implementation.
4625 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4627 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4628 typeof console.error === 'function') {
4630 'This browser lacks typed array (Uint8Array) support which is required by ' +
4631 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4635 function typedArraySupport () {
4636 // Can typed array instances can be augmented?
4638 var arr = new Uint8Array(
1)
4639 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4640 return arr.foo() ===
42
4646 function createBuffer (length) {
4647 if (length
> K_MAX_LENGTH) {
4648 throw new RangeError('Invalid typed array length')
4650 // Return an augmented `Uint8Array` instance
4651 var buf = new Uint8Array(length)
4652 buf.__proto__ = Buffer.prototype
4657 * The Buffer constructor returns instances of `Uint8Array` that have their
4658 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4659 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4660 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4661 * returns a single octet.
4663 * The `Uint8Array` prototype remains unmodified.
4666 function Buffer (arg, encodingOrOffset, length) {
4668 if (typeof arg === 'number') {
4669 if (typeof encodingOrOffset === 'string') {
4671 'If encoding is specified then the first argument must be a string'
4674 return allocUnsafe(arg)
4676 return from(arg, encodingOrOffset, length)
4679 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4680 if (typeof Symbol !== 'undefined' && Symbol.species &&
4681 Buffer[Symbol.species] === Buffer) {
4682 Object.defineProperty(Buffer, Symbol.species, {
4690 Buffer.poolSize =
8192 // not used by this implementation
4692 function from (value, encodingOrOffset, length) {
4693 if (typeof value === 'number') {
4694 throw new TypeError('"value" argument must not be a number')
4697 if (value instanceof ArrayBuffer) {
4698 return fromArrayBuffer(value, encodingOrOffset, length)
4701 if (typeof value === 'string') {
4702 return fromString(value, encodingOrOffset)
4705 return fromObject(value)
4709 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4710 * if value is a number.
4711 * Buffer.from(str[, encoding])
4712 * Buffer.from(array)
4713 * Buffer.from(buffer)
4714 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4716 Buffer.from = function (value, encodingOrOffset, length) {
4717 return from(value, encodingOrOffset, length)
4720 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4721 // https://github.com/feross/buffer/pull/
148
4722 Buffer.prototype.__proto__ = Uint8Array.prototype
4723 Buffer.__proto__ = Uint8Array
4725 function assertSize (size) {
4726 if (typeof size !== 'number') {
4727 throw new TypeError('"size" argument must be a number')
4728 } else if (size <
0) {
4729 throw new RangeError('"size" argument must not be negative')
4733 function alloc (size, fill, encoding) {
4736 return createBuffer(size)
4738 if (fill !== undefined) {
4739 // Only pay attention to encoding if it's a string. This
4740 // prevents accidentally sending in a number that would
4741 // be interpretted as a start offset.
4742 return typeof encoding === 'string'
4743 ? createBuffer(size).fill(fill, encoding)
4744 : createBuffer(size).fill(fill)
4746 return createBuffer(size)
4750 * Creates a new filled Buffer instance.
4751 * alloc(size[, fill[, encoding]])
4753 Buffer.alloc = function (size, fill, encoding) {
4754 return alloc(size, fill, encoding)
4757 function allocUnsafe (size) {
4759 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4763 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4765 Buffer.allocUnsafe = function (size) {
4766 return allocUnsafe(size)
4769 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4771 Buffer.allocUnsafeSlow = function (size) {
4772 return allocUnsafe(size)
4775 function fromString (string, encoding) {
4776 if (typeof encoding !== 'string' || encoding === '') {
4780 if (!Buffer.isEncoding(encoding)) {
4781 throw new TypeError('"encoding" must be a valid string encoding')
4784 var length = byteLength(string, encoding) |
0
4785 var buf = createBuffer(length)
4787 var actual = buf.write(string, encoding)
4789 if (actual !== length) {
4790 // Writing a hex string, for example, that contains invalid characters will
4791 // cause everything after the first invalid character to be ignored. (e.g.
4792 // 'abxxcd' will be treated as 'ab')
4793 buf = buf.slice(
0, actual)
4799 function fromArrayLike (array) {
4800 var length = array.length <
0 ?
0 : checked(array.length) |
0
4801 var buf = createBuffer(length)
4802 for (var i =
0; i < length; i +=
1) {
4803 buf[i] = array[i] &
255
4808 function fromArrayBuffer (array, byteOffset, length) {
4809 if (byteOffset <
0 || array.byteLength < byteOffset) {
4810 throw new RangeError('\'offset\' is out of bounds')
4813 if (array.byteLength < byteOffset + (length ||
0)) {
4814 throw new RangeError('\'length\' is out of bounds')
4818 if (byteOffset === undefined && length === undefined) {
4819 buf = new Uint8Array(array)
4820 } else if (length === undefined) {
4821 buf = new Uint8Array(array, byteOffset)
4823 buf = new Uint8Array(array, byteOffset, length)
4826 // Return an augmented `Uint8Array` instance
4827 buf.__proto__ = Buffer.prototype
4831 function fromObject (obj) {
4832 if (Buffer.isBuffer(obj)) {
4833 var len = checked(obj.length) |
0
4834 var buf = createBuffer(len)
4836 if (buf.length ===
0) {
4840 obj.copy(buf,
0,
0, len)
4845 if (isArrayBufferView(obj) || 'length' in obj) {
4846 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4847 return createBuffer(
0)
4849 return fromArrayLike(obj)
4852 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4853 return fromArrayLike(obj.data)
4857 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4860 function checked (length) {
4861 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4862 // length is NaN (which is otherwise coerced to zero.)
4863 if (length
>= K_MAX_LENGTH) {
4864 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4865 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4870 function SlowBuffer (length) {
4871 if (+length != length) { // eslint-disable-line eqeqeq
4874 return Buffer.alloc(+length)
4877 Buffer.isBuffer = function isBuffer (b) {
4878 return b != null && b._isBuffer === true
4881 Buffer.compare = function compare (a, b) {
4882 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4883 throw new TypeError('Arguments must be Buffers')
4886 if (a === b) return
0
4891 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
4892 if (a[i] !== b[i]) {
4899 if (x < y) return -
1
4904 Buffer.isEncoding = function isEncoding (encoding) {
4905 switch (String(encoding).toLowerCase()) {
4923 Buffer.concat = function concat (list, length) {
4924 if (!Array.isArray(list)) {
4925 throw new TypeError('"list" argument must be an Array of Buffers')
4928 if (list.length ===
0) {
4929 return Buffer.alloc(
0)
4933 if (length === undefined) {
4935 for (i =
0; i < list.length; ++i) {
4936 length += list[i].length
4940 var buffer = Buffer.allocUnsafe(length)
4942 for (i =
0; i < list.length; ++i) {
4944 if (!Buffer.isBuffer(buf)) {
4945 throw new TypeError('"list" argument must be an Array of Buffers')
4947 buf.copy(buffer, pos)
4953 function byteLength (string, encoding) {
4954 if (Buffer.isBuffer(string)) {
4955 return string.length
4957 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
4958 return string.byteLength
4960 if (typeof string !== 'string') {
4961 string = '' + string
4964 var len = string.length
4965 if (len ===
0) return
0
4967 // Use a for loop to avoid recursion
4968 var loweredCase = false
4978 return utf8ToBytes(string).length
4987 return base64ToBytes(string).length
4989 if (loweredCase) return utf8ToBytes(string).length // assume utf8
4990 encoding = ('' + encoding).toLowerCase()
4995 Buffer.byteLength = byteLength
4997 function slowToString (encoding, start, end) {
4998 var loweredCase = false
5000 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5001 // property of a typed array.
5003 // This behaves neither like String nor Uint8Array in that we set start/end
5004 // to their upper/lower bounds if the value passed is out of range.
5005 // undefined is handled specially as per ECMA-
262 6th Edition,
5006 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5007 if (start === undefined || start <
0) {
5010 // Return early if start
> this.length. Done here to prevent potential uint32
5011 // coercion fail below.
5012 if (start
> this.length) {
5016 if (end === undefined || end
> this.length) {
5024 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5032 if (!encoding) encoding = 'utf8'
5037 return hexSlice(this, start, end)
5041 return utf8Slice(this, start, end)
5044 return asciiSlice(this, start, end)
5048 return latin1Slice(this, start, end)
5051 return base64Slice(this, start, end)
5057 return utf16leSlice(this, start, end)
5060 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5061 encoding = (encoding + '').toLowerCase()
5067 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5068 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5069 // reliably in a browserify context because there could be multiple different
5070 // copies of the 'buffer' package in use. This method works even for Buffer
5071 // instances that were created from another copy of the `buffer` package.
5072 // See: https://github.com/feross/buffer/issues/
154
5073 Buffer.prototype._isBuffer = true
5075 function swap (b, n, m) {
5081 Buffer.prototype.swap16 = function swap16 () {
5082 var len = this.length
5083 if (len %
2 !==
0) {
5084 throw new RangeError('Buffer size must be a multiple of
16-bits')
5086 for (var i =
0; i < len; i +=
2) {
5087 swap(this, i, i +
1)
5092 Buffer.prototype.swap32 = function swap32 () {
5093 var len = this.length
5094 if (len %
4 !==
0) {
5095 throw new RangeError('Buffer size must be a multiple of
32-bits')
5097 for (var i =
0; i < len; i +=
4) {
5098 swap(this, i, i +
3)
5099 swap(this, i +
1, i +
2)
5104 Buffer.prototype.swap64 = function swap64 () {
5105 var len = this.length
5106 if (len %
8 !==
0) {
5107 throw new RangeError('Buffer size must be a multiple of
64-bits')
5109 for (var i =
0; i < len; i +=
8) {
5110 swap(this, i, i +
7)
5111 swap(this, i +
1, i +
6)
5112 swap(this, i +
2, i +
5)
5113 swap(this, i +
3, i +
4)
5118 Buffer.prototype.toString = function toString () {
5119 var length = this.length
5120 if (length ===
0) return ''
5121 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5122 return slowToString.apply(this, arguments)
5125 Buffer.prototype.equals = function equals (b) {
5126 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5127 if (this === b) return true
5128 return Buffer.compare(this, b) ===
0
5131 Buffer.prototype.inspect = function inspect () {
5133 var max = exports.INSPECT_MAX_BYTES
5134 if (this.length
> 0) {
5135 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5136 if (this.length
> max) str += ' ... '
5138 return '
<Buffer ' + str + '
>'
5141 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5142 if (!Buffer.isBuffer(target)) {
5143 throw new TypeError('Argument must be a Buffer')
5146 if (start === undefined) {
5149 if (end === undefined) {
5150 end = target ? target.length :
0
5152 if (thisStart === undefined) {
5155 if (thisEnd === undefined) {
5156 thisEnd = this.length
5159 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5160 throw new RangeError('out of range index')
5163 if (thisStart
>= thisEnd && start
>= end) {
5166 if (thisStart
>= thisEnd) {
5178 if (this === target) return
0
5180 var x = thisEnd - thisStart
5182 var len = Math.min(x, y)
5184 var thisCopy = this.slice(thisStart, thisEnd)
5185 var targetCopy = target.slice(start, end)
5187 for (var i =
0; i < len; ++i) {
5188 if (thisCopy[i] !== targetCopy[i]) {
5195 if (x < y) return -
1
5200 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5201 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5204 // - buffer - a Buffer to search
5205 // - val - a string, Buffer, or number
5206 // - byteOffset - an index into `buffer`; will be clamped to an int32
5207 // - encoding - an optional encoding, relevant is val is a string
5208 // - dir - true for indexOf, false for lastIndexOf
5209 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5210 // Empty buffer means no match
5211 if (buffer.length ===
0) return -
1
5213 // Normalize byteOffset
5214 if (typeof byteOffset === 'string') {
5215 encoding = byteOffset
5217 } else if (byteOffset
> 0x7fffffff) {
5218 byteOffset =
0x7fffffff
5219 } else if (byteOffset < -
0x80000000) {
5220 byteOffset = -
0x80000000
5222 byteOffset = +byteOffset // Coerce to Number.
5223 if (numberIsNaN(byteOffset)) {
5224 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5225 byteOffset = dir ?
0 : (buffer.length -
1)
5228 // Normalize byteOffset: negative offsets start from the end of the buffer
5229 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5230 if (byteOffset
>= buffer.length) {
5232 else byteOffset = buffer.length -
1
5233 } else if (byteOffset <
0) {
5234 if (dir) byteOffset =
0
5239 if (typeof val === 'string') {
5240 val = Buffer.from(val, encoding)
5243 // Finally, search either indexOf (if dir is true) or lastIndexOf
5244 if (Buffer.isBuffer(val)) {
5245 // Special case: looking for empty string/buffer always fails
5246 if (val.length ===
0) {
5249 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5250 } else if (typeof val === 'number') {
5251 val = val &
0xFF // Search for a byte value [
0-
255]
5252 if (typeof Uint8Array.prototype.indexOf === 'function') {
5254 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5256 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5259 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5262 throw new TypeError('val must be string, number or Buffer')
5265 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5267 var arrLength = arr.length
5268 var valLength = val.length
5270 if (encoding !== undefined) {
5271 encoding = String(encoding).toLowerCase()
5272 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5273 encoding === 'utf16le' || encoding === 'utf-
16le') {
5274 if (arr.length <
2 || val.length <
2) {
5284 function read (buf, i) {
5285 if (indexSize ===
1) {
5288 return buf.readUInt16BE(i * indexSize)
5295 for (i = byteOffset; i < arrLength; i++) {
5296 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5297 if (foundIndex === -
1) foundIndex = i
5298 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5300 if (foundIndex !== -
1) i -= i - foundIndex
5305 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5306 for (i = byteOffset; i
>=
0; i--) {
5308 for (var j =
0; j < valLength; j++) {
5309 if (read(arr, i + j) !== read(val, j)) {
5321 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5322 return this.indexOf(val, byteOffset, encoding) !== -
1
5325 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5326 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5329 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5330 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5333 function hexWrite (buf, string, offset, length) {
5334 offset = Number(offset) ||
0
5335 var remaining = buf.length - offset
5339 length = Number(length)
5340 if (length
> remaining) {
5345 // must be an even number of digits
5346 var strLen = string.length
5347 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5349 if (length
> strLen /
2) {
5352 for (var i =
0; i < length; ++i) {
5353 var parsed = parseInt(string.substr(i *
2,
2),
16)
5354 if (numberIsNaN(parsed)) return i
5355 buf[offset + i] = parsed
5360 function utf8Write (buf, string, offset, length) {
5361 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5364 function asciiWrite (buf, string, offset, length) {
5365 return blitBuffer(asciiToBytes(string), buf, offset, length)
5368 function latin1Write (buf, string, offset, length) {
5369 return asciiWrite(buf, string, offset, length)
5372 function base64Write (buf, string, offset, length) {
5373 return blitBuffer(base64ToBytes(string), buf, offset, length)
5376 function ucs2Write (buf, string, offset, length) {
5377 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5380 Buffer.prototype.write = function write (string, offset, length, encoding) {
5381 // Buffer#write(string)
5382 if (offset === undefined) {
5384 length = this.length
5386 // Buffer#write(string, encoding)
5387 } else if (length === undefined && typeof offset === 'string') {
5389 length = this.length
5391 // Buffer#write(string, offset[, length][, encoding])
5392 } else if (isFinite(offset)) {
5393 offset = offset
>>> 0
5394 if (isFinite(length)) {
5395 length = length
>>> 0
5396 if (encoding === undefined) encoding = 'utf8'
5403 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5407 var remaining = this.length - offset
5408 if (length === undefined || length
> remaining) length = remaining
5410 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5411 throw new RangeError('Attempt to write outside buffer bounds')
5414 if (!encoding) encoding = 'utf8'
5416 var loweredCase = false
5420 return hexWrite(this, string, offset, length)
5424 return utf8Write(this, string, offset, length)
5427 return asciiWrite(this, string, offset, length)
5431 return latin1Write(this, string, offset, length)
5434 // Warning: maxLength not taken into account in base64Write
5435 return base64Write(this, string, offset, length)
5441 return ucs2Write(this, string, offset, length)
5444 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5445 encoding = ('' + encoding).toLowerCase()
5451 Buffer.prototype.toJSON = function toJSON () {
5454 data: Array.prototype.slice.call(this._arr || this,
0)
5458 function base64Slice (buf, start, end) {
5459 if (start ===
0 && end === buf.length) {
5460 return base64.fromByteArray(buf)
5462 return base64.fromByteArray(buf.slice(start, end))
5466 function utf8Slice (buf, start, end) {
5467 end = Math.min(buf.length, end)
5472 var firstByte = buf[i]
5473 var codePoint = null
5474 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5475 : (firstByte
> 0xDF) ?
3
5476 : (firstByte
> 0xBF) ?
2
5479 if (i + bytesPerSequence <= end) {
5480 var secondByte, thirdByte, fourthByte, tempCodePoint
5482 switch (bytesPerSequence) {
5484 if (firstByte <
0x80) {
5485 codePoint = firstByte
5489 secondByte = buf[i +
1]
5490 if ((secondByte &
0xC0) ===
0x80) {
5491 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5492 if (tempCodePoint
> 0x7F) {
5493 codePoint = tempCodePoint
5498 secondByte = buf[i +
1]
5499 thirdByte = buf[i +
2]
5500 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5501 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5502 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5503 codePoint = tempCodePoint
5508 secondByte = buf[i +
1]
5509 thirdByte = buf[i +
2]
5510 fourthByte = buf[i +
3]
5511 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5512 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5513 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5514 codePoint = tempCodePoint
5520 if (codePoint === null) {
5521 // we did not generate a valid codePoint so insert a
5522 // replacement char (U+FFFD) and advance only
1 byte
5524 bytesPerSequence =
1
5525 } else if (codePoint
> 0xFFFF) {
5526 // encode to utf16 (surrogate pair dance)
5527 codePoint -=
0x10000
5528 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5529 codePoint =
0xDC00 | codePoint &
0x3FF
5533 i += bytesPerSequence
5536 return decodeCodePointsArray(res)
5539 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5540 // the lowest limit is Chrome, with
0x10000 args.
5541 // We go
1 magnitude less, for safety
5542 var MAX_ARGUMENTS_LENGTH =
0x1000
5544 function decodeCodePointsArray (codePoints) {
5545 var len = codePoints.length
5546 if (len <= MAX_ARGUMENTS_LENGTH) {
5547 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5550 // Decode in chunks to avoid
"call stack size exceeded".
5554 res += String.fromCharCode.apply(
5556 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5562 function asciiSlice (buf, start, end) {
5564 end = Math.min(buf.length, end)
5566 for (var i = start; i < end; ++i) {
5567 ret += String.fromCharCode(buf[i] &
0x7F)
5572 function latin1Slice (buf, start, end) {
5574 end = Math.min(buf.length, end)
5576 for (var i = start; i < end; ++i) {
5577 ret += String.fromCharCode(buf[i])
5582 function hexSlice (buf, start, end) {
5583 var len = buf.length
5585 if (!start || start <
0) start =
0
5586 if (!end || end <
0 || end
> len) end = len
5589 for (var i = start; i < end; ++i) {
5590 out += toHex(buf[i])
5595 function utf16leSlice (buf, start, end) {
5596 var bytes = buf.slice(start, end)
5598 for (var i =
0; i < bytes.length; i +=
2) {
5599 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5604 Buffer.prototype.slice = function slice (start, end) {
5605 var len = this.length
5607 end = end === undefined ? len : ~~end
5611 if (start <
0) start =
0
5612 } else if (start
> len) {
5618 if (end <
0) end =
0
5619 } else if (end
> len) {
5623 if (end < start) end = start
5625 var newBuf = this.subarray(start, end)
5626 // Return an augmented `Uint8Array` instance
5627 newBuf.__proto__ = Buffer.prototype
5632 * Need to make sure that buffer isn't trying to write out of bounds.
5634 function checkOffset (offset, ext, length) {
5635 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5636 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5639 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5640 offset = offset
>>> 0
5641 byteLength = byteLength
>>> 0
5642 if (!noAssert) checkOffset(offset, byteLength, this.length)
5644 var val = this[offset]
5647 while (++i < byteLength && (mul *=
0x100)) {
5648 val += this[offset + i] * mul
5654 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5655 offset = offset
>>> 0
5656 byteLength = byteLength
>>> 0
5658 checkOffset(offset, byteLength, this.length)
5661 var val = this[offset + --byteLength]
5663 while (byteLength
> 0 && (mul *=
0x100)) {
5664 val += this[offset + --byteLength] * mul
5670 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5671 offset = offset
>>> 0
5672 if (!noAssert) checkOffset(offset,
1, this.length)
5676 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5677 offset = offset
>>> 0
5678 if (!noAssert) checkOffset(offset,
2, this.length)
5679 return this[offset] | (this[offset +
1] <<
8)
5682 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5683 offset = offset
>>> 0
5684 if (!noAssert) checkOffset(offset,
2, this.length)
5685 return (this[offset] <<
8) | this[offset +
1]
5688 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5689 offset = offset
>>> 0
5690 if (!noAssert) checkOffset(offset,
4, this.length)
5692 return ((this[offset]) |
5693 (this[offset +
1] <<
8) |
5694 (this[offset +
2] <<
16)) +
5695 (this[offset +
3] *
0x1000000)
5698 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5699 offset = offset
>>> 0
5700 if (!noAssert) checkOffset(offset,
4, this.length)
5702 return (this[offset] *
0x1000000) +
5703 ((this[offset +
1] <<
16) |
5704 (this[offset +
2] <<
8) |
5708 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5709 offset = offset
>>> 0
5710 byteLength = byteLength
>>> 0
5711 if (!noAssert) checkOffset(offset, byteLength, this.length)
5713 var val = this[offset]
5716 while (++i < byteLength && (mul *=
0x100)) {
5717 val += this[offset + i] * mul
5721 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5726 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5727 offset = offset
>>> 0
5728 byteLength = byteLength
>>> 0
5729 if (!noAssert) checkOffset(offset, byteLength, this.length)
5733 var val = this[offset + --i]
5734 while (i
> 0 && (mul *=
0x100)) {
5735 val += this[offset + --i] * mul
5739 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5744 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5745 offset = offset
>>> 0
5746 if (!noAssert) checkOffset(offset,
1, this.length)
5747 if (!(this[offset] &
0x80)) return (this[offset])
5748 return ((
0xff - this[offset] +
1) * -
1)
5751 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5752 offset = offset
>>> 0
5753 if (!noAssert) checkOffset(offset,
2, this.length)
5754 var val = this[offset] | (this[offset +
1] <<
8)
5755 return (val &
0x8000) ? val |
0xFFFF0000 : val
5758 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5759 offset = offset
>>> 0
5760 if (!noAssert) checkOffset(offset,
2, this.length)
5761 var val = this[offset +
1] | (this[offset] <<
8)
5762 return (val &
0x8000) ? val |
0xFFFF0000 : val
5765 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5766 offset = offset
>>> 0
5767 if (!noAssert) checkOffset(offset,
4, this.length)
5769 return (this[offset]) |
5770 (this[offset +
1] <<
8) |
5771 (this[offset +
2] <<
16) |
5772 (this[offset +
3] <<
24)
5775 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5776 offset = offset
>>> 0
5777 if (!noAssert) checkOffset(offset,
4, this.length)
5779 return (this[offset] <<
24) |
5780 (this[offset +
1] <<
16) |
5781 (this[offset +
2] <<
8) |
5785 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5786 offset = offset
>>> 0
5787 if (!noAssert) checkOffset(offset,
4, this.length)
5788 return ieee754.read(this, offset, true,
23,
4)
5791 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5792 offset = offset
>>> 0
5793 if (!noAssert) checkOffset(offset,
4, this.length)
5794 return ieee754.read(this, offset, false,
23,
4)
5797 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
8, this.length)
5800 return ieee754.read(this, offset, true,
52,
8)
5803 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
8, this.length)
5806 return ieee754.read(this, offset, false,
52,
8)
5809 function checkInt (buf, value, offset, ext, max, min) {
5810 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5811 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5812 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5815 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5817 offset = offset
>>> 0
5818 byteLength = byteLength
>>> 0
5820 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5821 checkInt(this, value, offset, byteLength, maxBytes,
0)
5826 this[offset] = value &
0xFF
5827 while (++i < byteLength && (mul *=
0x100)) {
5828 this[offset + i] = (value / mul) &
0xFF
5831 return offset + byteLength
5834 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5836 offset = offset
>>> 0
5837 byteLength = byteLength
>>> 0
5839 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5840 checkInt(this, value, offset, byteLength, maxBytes,
0)
5843 var i = byteLength -
1
5845 this[offset + i] = value &
0xFF
5846 while (--i
>=
0 && (mul *=
0x100)) {
5847 this[offset + i] = (value / mul) &
0xFF
5850 return offset + byteLength
5853 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5855 offset = offset
>>> 0
5856 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5857 this[offset] = (value &
0xff)
5861 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5863 offset = offset
>>> 0
5864 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5865 this[offset] = (value &
0xff)
5866 this[offset +
1] = (value
>>> 8)
5870 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5872 offset = offset
>>> 0
5873 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5874 this[offset] = (value
>>> 8)
5875 this[offset +
1] = (value &
0xff)
5879 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5881 offset = offset
>>> 0
5882 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5883 this[offset +
3] = (value
>>> 24)
5884 this[offset +
2] = (value
>>> 16)
5885 this[offset +
1] = (value
>>> 8)
5886 this[offset] = (value &
0xff)
5890 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
5892 offset = offset
>>> 0
5893 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5894 this[offset] = (value
>>> 24)
5895 this[offset +
1] = (value
>>> 16)
5896 this[offset +
2] = (value
>>> 8)
5897 this[offset +
3] = (value &
0xff)
5901 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
5903 offset = offset
>>> 0
5905 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5907 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5913 this[offset] = value &
0xFF
5914 while (++i < byteLength && (mul *=
0x100)) {
5915 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
5918 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5921 return offset + byteLength
5924 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
5926 offset = offset
>>> 0
5928 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5930 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5933 var i = byteLength -
1
5936 this[offset + i] = value &
0xFF
5937 while (--i
>=
0 && (mul *=
0x100)) {
5938 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
5941 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5944 return offset + byteLength
5947 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
5949 offset = offset
>>> 0
5950 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
5951 if (value <
0) value =
0xff + value +
1
5952 this[offset] = (value &
0xff)
5956 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
5958 offset = offset
>>> 0
5959 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5960 this[offset] = (value &
0xff)
5961 this[offset +
1] = (value
>>> 8)
5965 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
5967 offset = offset
>>> 0
5968 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5969 this[offset] = (value
>>> 8)
5970 this[offset +
1] = (value &
0xff)
5974 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
5976 offset = offset
>>> 0
5977 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5978 this[offset] = (value &
0xff)
5979 this[offset +
1] = (value
>>> 8)
5980 this[offset +
2] = (value
>>> 16)
5981 this[offset +
3] = (value
>>> 24)
5985 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
5987 offset = offset
>>> 0
5988 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5989 if (value <
0) value =
0xffffffff + value +
1
5990 this[offset] = (value
>>> 24)
5991 this[offset +
1] = (value
>>> 16)
5992 this[offset +
2] = (value
>>> 8)
5993 this[offset +
3] = (value &
0xff)
5997 function checkIEEE754 (buf, value, offset, ext, max, min) {
5998 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5999 if (offset <
0) throw new RangeError('Index out of range')
6002 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6004 offset = offset
>>> 0
6006 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6008 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6012 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6013 return writeFloat(this, value, offset, true, noAssert)
6016 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6017 return writeFloat(this, value, offset, false, noAssert)
6020 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6022 offset = offset
>>> 0
6024 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6026 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6030 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6031 return writeDouble(this, value, offset, true, noAssert)
6034 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6035 return writeDouble(this, value, offset, false, noAssert)
6038 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6039 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6040 if (!start) start =
0
6041 if (!end && end !==
0) end = this.length
6042 if (targetStart
>= target.length) targetStart = target.length
6043 if (!targetStart) targetStart =
0
6044 if (end
> 0 && end < start) end = start
6046 // Copy
0 bytes; we're done
6047 if (end === start) return
0
6048 if (target.length ===
0 || this.length ===
0) return
0
6050 // Fatal error conditions
6051 if (targetStart <
0) {
6052 throw new RangeError('targetStart out of bounds')
6054 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6055 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6058 if (end
> this.length) end = this.length
6059 if (target.length - targetStart < end - start) {
6060 end = target.length - targetStart + start
6063 var len = end - start
6066 if (this === target && start < targetStart && targetStart < end) {
6067 // descending copy from end
6068 for (i = len -
1; i
>=
0; --i) {
6069 target[i + targetStart] = this[i + start]
6071 } else if (len <
1000) {
6072 // ascending copy from start
6073 for (i =
0; i < len; ++i) {
6074 target[i + targetStart] = this[i + start]
6077 Uint8Array.prototype.set.call(
6079 this.subarray(start, start + len),
6088 // buffer.fill(number[, offset[, end]])
6089 // buffer.fill(buffer[, offset[, end]])
6090 // buffer.fill(string[, offset[, end]][, encoding])
6091 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6092 // Handle string cases:
6093 if (typeof val === 'string') {
6094 if (typeof start === 'string') {
6098 } else if (typeof end === 'string') {
6102 if (val.length ===
1) {
6103 var code = val.charCodeAt(
0)
6108 if (encoding !== undefined && typeof encoding !== 'string') {
6109 throw new TypeError('encoding must be a string')
6111 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6112 throw new TypeError('Unknown encoding: ' + encoding)
6114 } else if (typeof val === 'number') {
6118 // Invalid ranges are not set to a default, so can range check early.
6119 if (start <
0 || this.length < start || this.length < end) {
6120 throw new RangeError('Out of range index')
6128 end = end === undefined ? this.length : end
>>> 0
6133 if (typeof val === 'number') {
6134 for (i = start; i < end; ++i) {
6138 var bytes = Buffer.isBuffer(val)
6140 : new Buffer(val, encoding)
6141 var len = bytes.length
6142 for (i =
0; i < end - start; ++i) {
6143 this[i + start] = bytes[i % len]
6153 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6155 function base64clean (str) {
6156 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6157 str = str.trim().replace(INVALID_BASE64_RE, '')
6158 // Node converts strings with length <
2 to ''
6159 if (str.length <
2) return ''
6160 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6161 while (str.length %
4 !==
0) {
6167 function toHex (n) {
6168 if (n <
16) return '
0' + n.toString(
16)
6169 return n.toString(
16)
6172 function utf8ToBytes (string, units) {
6173 units = units || Infinity
6175 var length = string.length
6176 var leadSurrogate = null
6179 for (var i =
0; i < length; ++i) {
6180 codePoint = string.charCodeAt(i)
6182 // is surrogate component
6183 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6184 // last char was a lead
6185 if (!leadSurrogate) {
6187 if (codePoint
> 0xDBFF) {
6189 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6191 } else if (i +
1 === length) {
6193 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6198 leadSurrogate = codePoint
6204 if (codePoint <
0xDC00) {
6205 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6206 leadSurrogate = codePoint
6210 // valid surrogate pair
6211 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6212 } else if (leadSurrogate) {
6213 // valid bmp char, but last char was a lead
6214 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6217 leadSurrogate = null
6220 if (codePoint <
0x80) {
6221 if ((units -=
1) <
0) break
6222 bytes.push(codePoint)
6223 } else if (codePoint <
0x800) {
6224 if ((units -=
2) <
0) break
6226 codePoint
>> 0x6 |
0xC0,
6227 codePoint &
0x3F |
0x80
6229 } else if (codePoint <
0x10000) {
6230 if ((units -=
3) <
0) break
6232 codePoint
>> 0xC |
0xE0,
6233 codePoint
>> 0x6 &
0x3F |
0x80,
6234 codePoint &
0x3F |
0x80
6236 } else if (codePoint <
0x110000) {
6237 if ((units -=
4) <
0) break
6239 codePoint
>> 0x12 |
0xF0,
6240 codePoint
>> 0xC &
0x3F |
0x80,
6241 codePoint
>> 0x6 &
0x3F |
0x80,
6242 codePoint &
0x3F |
0x80
6245 throw new Error('Invalid code point')
6252 function asciiToBytes (str) {
6254 for (var i =
0; i < str.length; ++i) {
6255 // Node's code seems to be doing this and not &
0x7F..
6256 byteArray.push(str.charCodeAt(i) &
0xFF)
6261 function utf16leToBytes (str, units) {
6264 for (var i =
0; i < str.length; ++i) {
6265 if ((units -=
2) <
0) break
6267 c = str.charCodeAt(i)
6277 function base64ToBytes (str) {
6278 return base64.toByteArray(base64clean(str))
6281 function blitBuffer (src, dst, offset, length) {
6282 for (var i =
0; i < length; ++i) {
6283 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6284 dst[i + offset] = src[i]
6289 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6290 function isArrayBufferView (obj) {
6291 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6294 function numberIsNaN (obj) {
6295 return obj !== obj // eslint-disable-line no-self-compare
6298 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6299 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6301 var eLen = nBytes *
8 - mLen -
1
6302 var eMax = (
1 << eLen) -
1
6303 var eBias = eMax
>> 1
6305 var i = isLE ? (nBytes -
1) :
0
6306 var d = isLE ? -
1 :
1
6307 var s = buffer[offset + i]
6311 e = s & ((
1 << (-nBits)) -
1)
6314 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6316 m = e & ((
1 << (-nBits)) -
1)
6319 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6323 } else if (e === eMax) {
6324 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6326 m = m + Math.pow(
2, mLen)
6329 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6332 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6334 var eLen = nBytes *
8 - mLen -
1
6335 var eMax = (
1 << eLen) -
1
6336 var eBias = eMax
>> 1
6337 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6338 var i = isLE ?
0 : (nBytes -
1)
6339 var d = isLE ?
1 : -
1
6340 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6342 value = Math.abs(value)
6344 if (isNaN(value) || value === Infinity) {
6345 m = isNaN(value) ?
1 :
0
6348 e = Math.floor(Math.log(value) / Math.LN2)
6349 if (value * (c = Math.pow(
2, -e)) <
1) {
6353 if (e + eBias
>=
1) {
6356 value += rt * Math.pow(
2,
1 - eBias)
6358 if (value * c
>=
2) {
6363 if (e + eBias
>= eMax) {
6366 } else if (e + eBias
>=
1) {
6367 m = (value * c -
1) * Math.pow(
2, mLen)
6370 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6375 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6379 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6381 buffer[offset + i - d] |= s *
128
6384 },{}],
4:[function(require,module,exports){
6385 window.basex = require('base-x')
6386 },{
"base-x":
5}],
5:[function(require,module,exports){
6388 // Forked from https://github.com/cryptocoinjs/bs58
6389 // Originally written by Mike Hearn for BitcoinJ
6390 // Copyright (c)
2011 Google Inc
6391 // Ported to JavaScript by Stefan Thomas
6392 // Merged Buffer refactorings from base58-native by Stephen Pair
6393 // Copyright (c)
2013 BitPay Inc
6395 var Buffer = require('safe-buffer').Buffer
6397 module.exports = function base (ALPHABET) {
6398 var ALPHABET_MAP = {}
6399 var BASE = ALPHABET.length
6400 var LEADER = ALPHABET.charAt(
0)
6402 // pre-compute lookup table
6403 for (var z =
0; z < ALPHABET.length; z++) {
6404 var x = ALPHABET.charAt(z)
6406 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6410 function encode (source) {
6411 if (source.length ===
0) return ''
6414 for (var i =
0; i < source.length; ++i) {
6415 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6416 carry += digits[j] <<
8
6417 digits[j] = carry % BASE
6418 carry = (carry / BASE) |
0
6422 digits.push(carry % BASE)
6423 carry = (carry / BASE) |
0
6429 // deal with leading zeros
6430 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6431 // convert digits to a string
6432 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6437 function decodeUnsafe (string) {
6438 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6441 for (var i =
0; i < string.length; i++) {
6442 var value = ALPHABET_MAP[string[i]]
6443 if (value === undefined) return
6445 for (var j =
0, carry = value; j < bytes.length; ++j) {
6446 carry += bytes[j] * BASE
6447 bytes[j] = carry &
0xff
6452 bytes.push(carry &
0xff)
6457 // deal with leading zeros
6458 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6462 return Buffer.from(bytes.reverse())
6465 function decode (string) {
6466 var buffer = decodeUnsafe(string)
6467 if (buffer) return buffer
6469 throw new Error('Non-base' + BASE + ' character')
6474 decodeUnsafe: decodeUnsafe,
6479 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6480 module.exports = require('buffer')
6482 },{"buffer":
2}]},{},[
4])(
4)
6484 <script>(function (root) {
6487 /***** unorm.js *****/
6490 * UnicodeNormalizer
1.0.0
6491 * Copyright (c)
2008 Matsuza
6492 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6493 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6497 var DEFAULT_FEATURE = [null,
0, {}];
6498 var CACHE_THRESHOLD =
10;
6499 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6500 var NCount = VCount * TCount; //
588
6501 var SCount = LCount * NCount; //
11172
6503 var UChar = function(cp, feature){
6504 this.codepoint = cp;
6505 this.feature = feature;
6510 var cacheCounter = [];
6511 for (var i =
0; i <=
0xFF; ++i){
6512 cacheCounter[i] =
0;
6515 function fromCache(next, cp, needFeature){
6516 var ret = cache[cp];
6518 ret = next(cp, needFeature);
6519 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6526 function fromData(next, cp, needFeature){
6527 var hash = cp &
0xFF00;
6528 var dunit = UChar.udata[hash] || {};
6530 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6532 function fromCpOnly(next, cp, needFeature){
6533 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6535 function fromRuleBasedJamo(next, cp, needFeature){
6537 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6538 return next(cp, needFeature);
6540 if(LBase <= cp && cp < LBase + LCount){
6542 var base = (cp - LBase) * VCount;
6543 for (j =
0; j < VCount; ++j){
6544 c[VBase + j] = SBase + TCount * (j + base);
6546 return new UChar(cp, [,,c]);
6549 var SIndex = cp - SBase;
6550 var TIndex = SIndex % TCount;
6553 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6555 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6557 for (j =
1; j < TCount; ++j){
6558 feature[
2][TBase + j] = cp + j;
6561 return new UChar(cp, feature);
6563 function fromCpFilter(next, cp, needFeature){
6564 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6567 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6569 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6570 return function (cp, needFeature) {
6571 return strategy(next, cp, needFeature);
6575 UChar.isHighSurrogate = function(cp){
6576 return cp
>=
0xD800 && cp <=
0xDBFF;
6578 UChar.isLowSurrogate = function(cp){
6579 return cp
>=
0xDC00 && cp <=
0xDFFF;
6582 UChar.prototype.prepFeature = function(){
6584 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6588 UChar.prototype.toString = function(){
6589 if(this.codepoint <
0x10000){
6590 return String.fromCharCode(this.codepoint);
6592 var x = this.codepoint -
0x10000;
6593 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6597 UChar.prototype.getDecomp = function(){
6599 return this.feature[
0] || null;
6602 UChar.prototype.isCompatibility = function(){
6604 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6606 UChar.prototype.isExclude = function(){
6608 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6610 UChar.prototype.getCanonicalClass = function(){
6612 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6614 UChar.prototype.getComposite = function(following){
6616 if(!this.feature[
2]){
6619 var cp = this.feature[
2][following.codepoint];
6620 return cp ? UChar.fromCharCode(cp) : null;
6623 var UCharIterator = function(str){
6627 UCharIterator.prototype.next = function(){
6628 if(!!this.str && this.cursor < this.str.length){
6629 var cp = this.str.charCodeAt(this.cursor++);
6631 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6632 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6635 return UChar.fromCharCode(cp);
6642 var RecursDecompIterator = function(it, cano){
6644 this.canonical = cano;
6648 RecursDecompIterator.prototype.next = function(){
6649 function recursiveDecomp(cano, uchar){
6650 var decomp = uchar.getDecomp();
6651 if(!!decomp && !(cano && uchar.isCompatibility())){
6653 for(var i =
0; i < decomp.length; ++i){
6654 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6655 ret = ret.concat(a);
6662 if(this.resBuf.length ===
0){
6663 var uchar = this.it.next();
6667 this.resBuf = recursiveDecomp(this.canonical, uchar);
6669 return this.resBuf.shift();
6672 var DecompIterator = function(it){
6677 DecompIterator.prototype.next = function(){
6679 if(this.resBuf.length ===
0){
6681 var uchar = this.it.next();
6685 cc = uchar.getCanonicalClass();
6686 var inspt = this.resBuf.length;
6688 for(; inspt
> 0; --inspt){
6689 var uchar2 = this.resBuf[inspt -
1];
6690 var cc2 = uchar2.getCanonicalClass();
6696 this.resBuf.splice(inspt,
0, uchar);
6699 return this.resBuf.shift();
6702 var CompIterator = function(it){
6706 this.lastClass = null;
6709 CompIterator.prototype.next = function(){
6710 while(this.resBuf.length ===
0){
6711 var uchar = this.it.next();
6713 this.resBuf = this.procBuf;
6717 if(this.procBuf.length ===
0){
6718 this.lastClass = uchar.getCanonicalClass();
6719 this.procBuf.push(uchar);
6721 var starter = this.procBuf[
0];
6722 var composite = starter.getComposite(uchar);
6723 var cc = uchar.getCanonicalClass();
6724 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6725 this.procBuf[
0] = composite;
6728 this.resBuf = this.procBuf;
6731 this.lastClass = cc;
6732 this.procBuf.push(uchar);
6736 return this.resBuf.shift();
6739 var createIterator = function(mode, str){
6742 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6744 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6746 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6748 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6750 throw mode +
" is invalid";
6752 var normalize = function(mode, str){
6753 var it = createIterator(mode, str);
6756 while(!!(uchar = it.next())){
6757 ret += uchar.toString();
6764 return normalize(
"NFD", str);
6768 return normalize(
"NFKD", str);
6772 return normalize(
"NFC", str);
6776 return normalize(
"NFKC", str);
6781 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]]},
6782 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]},
6783 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]},
6784 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]},
6785 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]]},
6786 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]},
6787 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]},
6788 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]},
6789 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]},
6790 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]},
6791 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]},
6792 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]},
6793 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]},
6794 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]]},
6795 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]},
6796 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]},
6797 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]},
6798 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]},
6799 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6800 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]},
6801 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6802 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6803 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6804 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6806 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6807 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]},
6808 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]},
6809 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]},
6810 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]},
6811 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]]},
6812 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}]},
6813 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]},
6814 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}]},
6815 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]]},
6816 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6817 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]},
6818 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]},
6819 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6820 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]},
6821 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6822 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]},
6823 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]},
6824 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]},
6825 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]},
6826 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]},
6827 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6828 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6829 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]},
6830 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6831 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]},
6832 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6833 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6834 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6835 48128:{
113822:[,
1]},
6836 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]},
6837 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6838 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]},
6839 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]},
6840 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]},
6841 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]},
6842 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6843 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]},
6844 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]},
6845 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]},
6846 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]]},
6847 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]]},
6848 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]]},
6849 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]},
6850 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]},
6851 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]},
6852 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]},
6853 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]}
6857 /***** Module to export */
6865 /*globals module:true,define:true*/
6868 if (typeof module ===
"object") {
6869 module.exports = unorm;
6872 } else if (typeof define ===
"function" && define.amd) {
6873 define(
"unorm", function () {
6882 /***** Export as shim for String::normalize method *****/
6884 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6886 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6887 When the normalize method is called with one argument form, the following steps are taken:
6889 1. Let O be CheckObjectCoercible(this value).
6890 2. Let S be ToString(O).
6891 3. ReturnIfAbrupt(S).
6892 4. If form is not provided or undefined let form be
"NFC".
6893 5. Let f be ToString(form).
6894 6. ReturnIfAbrupt(f).
6895 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
6896 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.
6899 The length property of the normalize method is
0.
6901 *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.
6903 unorm.shimApplied = false;
6905 if (!String.prototype.normalize) {
6906 String.prototype.normalize = function(form) {
6907 var str =
"" + this;
6908 form = form === undefined ?
"NFC" : form;
6910 if (form ===
"NFC") {
6911 return unorm.nfc(str);
6912 } else if (form ===
"NFD") {
6913 return unorm.nfd(str);
6914 } else if (form ===
"NFKC") {
6915 return unorm.nfkc(str);
6916 } else if (form ===
"NFKD") {
6917 return unorm.nfkd(str);
6919 throw new RangeError(
"Invalid normalization form: " + form);
6923 unorm.shimApplied = true;
6927 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
6928 !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)
6929 },_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))
6930 },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});
6933 * Bootstrap v3.2.0 (http://getbootstrap.com)
6934 * Copyright 2011-2014 Twitter, Inc.
6935 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6937 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>
6938 <script>(function() {
6942 * Extend an Object with another Object's properties.
6944 * The source objects are specified as additional arguments.
6946 * @param dst Object the object to extend.
6948 * @return Object the final object.
6950 var _extend = function(dst) {
6951 var sources = Array.prototype.slice.call(arguments,
1);
6952 for (var i=
0; i
<sources.length; ++i) {
6953 var src = sources[i];
6954 for (var p in src) {
6955 if (src.hasOwnProperty(p)) dst[p] = src[p];
6963 * Defer execution of given function.
6964 * @param {Function} func
6966 var _defer = function(func) {
6967 if (typeof setImmediate === 'function') {
6968 return setImmediate(func);
6970 return setTimeout(func,
0);
6975 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
6979 * Calculate levenshtein distance of the two strings.
6981 * @param str1 String the first string.
6982 * @param str2 String the second string.
6983 * @return Integer the levenshtein distance (
0 and above).
6985 get: function(str1, str2) {
6987 if (str1 === str2) return
0;
6988 if (str1.length ===
0) return str2.length;
6989 if (str2.length ===
0) return str1.length;
6992 var prevRow = new Array(str2.length +
1),
6993 curCol, nextCol, i, j, tmp;
6995 // initialise previous row
6996 for (i=
0; i
<prevRow.length; ++i) {
7000 // calculate current row distance from previous row
7001 for (i=
0; i
<str1.length; ++i) {
7004 for (j=
0; j
<str2.length; ++j) {
7008 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7011 if (nextCol
> tmp) {
7015 tmp = prevRow[j +
1] +
1;
7016 if (nextCol
> tmp) {
7020 // copy current col value into previous (in preparation for next iteration)
7021 prevRow[j] = curCol;
7024 // copy last col value into previous (in preparation for next iteration)
7025 prevRow[j] = nextCol;
7032 * Asynchronously calculate levenshtein distance of the two strings.
7034 * @param str1 String the first string.
7035 * @param str2 String the second string.
7036 * @param cb Function callback function with signature: function(Error err, int distance)
7037 * @param [options] Object additional options.
7038 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7040 getAsync: function(str1, str2, cb, options) {
7041 options = _extend({}, {
7046 if (str1 === str2) return cb(null,
0);
7047 if (str1.length ===
0) return cb(null, str2.length);
7048 if (str2.length ===
0) return cb(null, str1.length);
7051 var prevRow = new Array(str2.length +
1),
7054 startTime, currentTime;
7056 // initialise previous row
7057 for (i=
0; i
<prevRow.length; ++i) {
7065 var __calculate = function() {
7067 startTime = new Date().valueOf();
7068 currentTime = startTime;
7070 // keep going until one second has elapsed
7071 while (currentTime - startTime <
1000) {
7072 // reached end of current row?
7073 if (str2.length <= (++j)) {
7074 // copy current into previous (in preparation for next iteration)
7075 prevRow[j] = nextCol;
7077 // if already done all chars
7078 if (str1.length <= (++i)) {
7079 return cb(null, nextCol);
7081 // else if we have more left to do
7092 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7095 if (nextCol
> tmp) {
7099 tmp = prevRow[j +
1] +
1;
7100 if (nextCol
> tmp) {
7104 // copy current into previous (in preparation for next iteration)
7105 prevRow[j] = curCol;
7108 currentTime = new Date().valueOf();
7111 // send a progress update?
7112 if (null !== options.progress) {
7114 options.progress.call(null, (i *
100.0/ str1.length));
7116 return cb('Progress callback: ' + err.toString());
7121 _defer(__calculate);
7130 if (typeof define !== "undefined" && define !== null && define.amd) {
7136 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7137 module.exports = Levenshtein;
7140 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7141 self.Levenshtein = Levenshtein;
7143 // browser main thread
7144 else if (typeof window !== "undefined" && window !== null) {
7145 window.Levenshtein = Levenshtein;
7150 <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},
7151 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;
7152 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-
7153 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]=
7154 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},
7155 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=
7156 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-
7157 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,
7158 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=
7159 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&&
7160 (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,
7161 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)-
7162 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:"+
7163 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:"+
7164 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+
7165 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),
7166 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>
7167 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],
7168 [
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,
7169 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,
7170 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,
7171 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,
7172 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,
7173 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*
7174 (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,
7175 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),
7176 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",
7177 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7179 <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.bitcoin = 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){
7180 // (public) Constructor
7181 function BigInteger(a, b, c) {
7182 if (!(this instanceof BigInteger))
7183 return new BigInteger(a, b, c)
7186 if (
"number" == typeof a) this.fromNumber(a, b, c)
7187 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
7188 else this.fromString(a, b)
7192 var proto = BigInteger.prototype
7194 // duck-typed isBigInteger
7195 proto.__bigi = require('../package.json').version
7196 BigInteger.isBigInteger = function (obj, check_ver) {
7197 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
7203 // am: Compute w_j += (x*this_i), propagate carries,
7204 // c is initial carry, returns final carry.
7205 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
7206 // We need to select the fastest one that works in this environment.
7208 // am1: use a single mult and divide to get the high bits,
7209 // max digit bits should be
26 because
7210 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
7211 function am1(i, x, w, j, c, n) {
7213 var v = x * this[i++] + w[j] + c
7214 c = Math.floor(v /
0x4000000)
7215 w[j++] = v &
0x3ffffff
7219 // am2 avoids a big mult-and-extract completely.
7220 // Max digit bits should be <=
30 because we do bitwise ops
7221 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
7222 function am2(i, x, w, j, c, n) {
7223 var xl = x &
0x7fff,
7226 var l = this[i] &
0x7fff
7227 var h = this[i++]
>> 15
7228 var m = xh * l + h * xl
7229 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
7230 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
7231 w[j++] = l &
0x3fffffff
7235 // Alternately, set max digit bits to
28 since some
7236 // browsers slow down when dealing with
32-bit numbers.
7237 function am3(i, x, w, j, c, n) {
7238 var xl = x &
0x3fff,
7241 var l = this[i] &
0x3fff
7242 var h = this[i++]
>> 14
7243 var m = xh * l + h * xl
7244 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
7245 c = (l
>> 28) + (m
>> 14) + xh * h
7246 w[j++] = l &
0xfffffff
7252 BigInteger.prototype.am = am1
7255 BigInteger.prototype.DB = dbits
7256 BigInteger.prototype.DM = ((
1 << dbits) -
1)
7257 var DV = BigInteger.prototype.DV = (
1 << dbits)
7260 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
7261 BigInteger.prototype.F1 = BI_FP - dbits
7262 BigInteger.prototype.F2 =
2 * dbits - BI_FP
7264 // Digit conversions
7265 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
7266 var BI_RC = new Array()
7268 rr =
"0".charCodeAt(
0)
7269 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
7270 rr =
"a".charCodeAt(
0)
7271 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7272 rr =
"A".charCodeAt(
0)
7273 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7275 function int2char(n) {
7276 return BI_RM.charAt(n)
7279 function intAt(s, i) {
7280 var c = BI_RC[s.charCodeAt(i)]
7281 return (c == null) ? -
1 : c
7284 // (protected) copy this to r
7285 function bnpCopyTo(r) {
7286 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
7291 // (protected) set from integer value x, -DV <= x < DV
7292 function bnpFromInt(x) {
7294 this.s = (x <
0) ? -
1 :
0
7295 if (x
> 0) this[
0] = x
7296 else if (x < -
1) this[
0] = x + DV
7300 // return bigint initialized to value
7302 var r = new BigInteger()
7307 // (protected) set from string and radix
7308 function bnpFromString(s, b) {
7313 else if (b ==
8) k =
3
7314 else if (b ==
256) k =
8; // byte array
7315 else if (b ==
2) k =
1
7316 else if (b ==
32) k =
5
7317 else if (b ==
4) k =
2
7319 self.fromRadix(s, b)
7328 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
7330 if (s.charAt(i) == "-") mi = true
7336 else if (sh + k
> self.DB) {
7337 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
7338 self[self.t++] = (x
>> (self.DB - sh))
7340 self[self.t -
1] |= x << sh
7342 if (sh
>= self.DB) sh -= self.DB
7344 if (k ==
8 && (s[
0] &
0x80) !=
0) {
7346 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
7349 if (mi) BigInteger.ZERO.subTo(self, self)
7352 // (protected) clamp off excess high words
7353 function bnpClamp() {
7354 var c = this.s & this.DM
7355 while (this.t
> 0 && this[this.t -
1] == c)--this.t
7358 // (public) return string representation in given radix
7359 function bnToString(b) {
7361 if (self.s <
0) return
"-" + self.negate()
7365 else if (b ==
8) k =
3
7366 else if (b ==
2) k =
1
7367 else if (b ==
32) k =
5
7368 else if (b ==
4) k =
2
7369 else return self.toRadix(b)
7370 var km = (
1 << k) -
1,
7374 var p = self.DB - (i * self.DB) % k
7376 if (p < self.DB && (d = self[i]
>> p)
> 0) {
7382 d = (self[i] & ((
1 << p) -
1)) << (k - p)
7383 d |= self[--i]
>> (p += self.DB - k)
7385 d = (self[i]
>> (p -= k)) & km
7392 if (m) r += int2char(d)
7399 function bnNegate() {
7400 var r = new BigInteger()
7401 BigInteger.ZERO.subTo(this, r)
7407 return (this.s <
0) ? this.negate() : this
7410 // (public) return + if this
> a, - if this < a,
0 if equal
7411 function bnCompareTo(a) {
7412 var r = this.s - a.s
7413 if (r !=
0) return r
7416 if (r !=
0) return (this.s <
0) ? -r : r
7418 if ((r = this[i] - a[i]) !=
0) return r
7422 // returns bit length of the integer x
7426 if ((t = x
>>> 16) !=
0) {
7430 if ((t = x
>> 8) !=
0) {
7434 if ((t = x
>> 4) !=
0) {
7438 if ((t = x
>> 2) !=
0) {
7442 if ((t = x
>> 1) !=
0) {
7449 // (public) return the number of bits in
"this"
7450 function bnBitLength() {
7451 if (this.t <=
0) return
0
7452 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
7455 // (public) return the number of bytes in
"this"
7456 function bnByteLength() {
7457 return this.bitLength()
>> 3
7460 // (protected) r = this << n*DB
7461 function bnpDLShiftTo(n, r) {
7463 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
7464 for (i = n -
1; i
>=
0; --i) r[i] =
0
7469 // (protected) r = this
>> n*DB
7470 function bnpDRShiftTo(n, r) {
7471 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
7472 r.t = Math.max(this.t - n,
0)
7476 // (protected) r = this << n
7477 function bnpLShiftTo(n, r) {
7479 var bs = n % self.DB
7480 var cbs = self.DB - bs
7481 var bm = (
1 << cbs) -
1
7482 var ds = Math.floor(n / self.DB),
7483 c = (self.s << bs) & self.DM,
7485 for (i = self.t -
1; i
>=
0; --i) {
7486 r[i + ds +
1] = (self[i]
>> cbs) | c
7487 c = (self[i] & bm) << bs
7489 for (i = ds -
1; i
>=
0; --i) r[i] =
0
7491 r.t = self.t + ds +
1
7496 // (protected) r = this
>> n
7497 function bnpRShiftTo(n, r) {
7500 var ds = Math.floor(n / self.DB)
7505 var bs = n % self.DB
7506 var cbs = self.DB - bs
7507 var bm = (
1 << bs) -
1
7508 r[
0] = self[ds]
>> bs
7509 for (var i = ds +
1; i < self.t; ++i) {
7510 r[i - ds -
1] |= (self[i] & bm) << cbs
7511 r[i - ds] = self[i]
>> bs
7513 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
7518 // (protected) r = this - a
7519 function bnpSubTo(a, r) {
7523 m = Math.min(a.t, self.t)
7526 r[i++] = c & self.DM
7531 while (i < self.t) {
7533 r[i++] = c & self.DM
7541 r[i++] = c & self.DM
7546 r.s = (c <
0) ? -
1 :
0
7547 if (c < -
1) r[i++] = self.DV + c
7548 else if (c
> 0) r[i++] = c
7553 // (protected) r = this * a, r != this,a (HAC
14.12)
7554 //
"this" should be the larger one if appropriate.
7555 function bnpMultiplyTo(a, r) {
7560 while (--i
>=
0) r[i] =
0
7561 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
7564 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
7567 // (protected) r = this^
2, r != this (HAC
14.16)
7568 function bnpSquareTo(r) {
7570 var i = r.t =
2 * x.t
7571 while (--i
>=
0) r[i] =
0
7572 for (i =
0; i < x.t -
1; ++i) {
7573 var c = x.am(i, x[i], r,
2 * i,
0,
1)
7574 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
7579 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
7584 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
7585 // r != q, this != m. q or r may be null.
7586 function bnpDivRemTo(m, q, r) {
7589 if (pm.t <=
0) return
7592 if (q != null) q.fromInt(
0)
7593 if (r != null) self.copyTo(r)
7596 if (r == null) r = new BigInteger()
7597 var y = new BigInteger(),
7600 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
7611 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
7612 var d1 = self.FV / yt,
7613 d2 = (
1 << self.F1) / yt,
7617 t = (q == null) ? new BigInteger() : q
7619 if (r.compareTo(t)
>=
0) {
7623 BigInteger.ONE.dlShiftTo(ys, t)
7624 t.subTo(y, y); // "negative" y so we can replace sub with am later
7625 while (y.t < ys) y[y.t++] =
0
7627 // Estimate quotient digit
7628 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
7629 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
7632 while (r[i] < --qd) r.subTo(t, r)
7637 if (ts != ms) BigInteger.ZERO.subTo(q, q)
7641 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
7642 if (ts <
0) BigInteger.ZERO.subTo(r, r)
7645 // (public) this mod a
7647 var r = new BigInteger()
7649 .divRemTo(a, null, r)
7650 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
7654 // Modular reduction using
"classic" algorithm
7655 function Classic(m) {
7659 function cConvert(x) {
7660 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
7664 function cRevert(x) {
7668 function cReduce(x) {
7669 x.divRemTo(this.m, null, x)
7672 function cMulTo(x, y, r) {
7677 function cSqrTo(x, r) {
7682 Classic.prototype.convert = cConvert
7683 Classic.prototype.revert = cRevert
7684 Classic.prototype.reduce = cReduce
7685 Classic.prototype.mulTo = cMulTo
7686 Classic.prototype.sqrTo = cSqrTo
7688 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
7692 // xy(
2-xy) = (
1+km)(
1-km)
7693 // x[y(
2-xy)] =
1-k^
2m^
2
7694 // x[y(
2-xy)] ==
1 (mod m^
2)
7695 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
7696 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
7697 // JS multiply "overflows" differently from C/C++, so care is needed here.
7698 function bnpInvDigit() {
7699 if (this.t <
1) return
0
7701 if ((x &
1) ==
0) return
0
7702 var y = x &
3; // y ==
1/x mod
2^
2
7703 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
7704 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
7705 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
7706 // last step - calculate inverse mod DV directly
7707 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
7708 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
7709 // we really want the negative inverse, and -DV < y < DV
7710 return (y
> 0) ? this.DV - y : -y
7713 // Montgomery reduction
7714 function Montgomery(m) {
7716 this.mp = m.invDigit()
7717 this.mpl = this.mp &
0x7fff
7718 this.mph = this.mp
>> 15
7719 this.um = (
1 << (m.DB -
15)) -
1
7724 function montConvert(x) {
7725 var r = new BigInteger()
7727 .dlShiftTo(this.m.t, r)
7728 r.divRemTo(this.m, null, r)
7729 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
7734 function montRevert(x) {
7735 var r = new BigInteger()
7741 // x = x/R mod m (HAC
14.32)
7742 function montReduce(x) {
7743 while (x.t <= this.mt2) // pad x so am has enough room later
7745 for (var i =
0; i < this.m.t; ++i) {
7746 // faster way of calculating u0 = x[i]*mp mod DV
7747 var j = x[i] &
0x7fff
7748 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
7749 // use am to combine the multiply-shift-add into one call
7751 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
7753 while (x[j]
>= x.DV) {
7759 x.drShiftTo(this.m.t, x)
7760 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
7763 // r = "x^
2/R mod m"; x != r
7764 function montSqrTo(x, r) {
7769 // r = "xy/R mod m"; x,y != r
7770 function montMulTo(x, y, r) {
7775 Montgomery.prototype.convert = montConvert
7776 Montgomery.prototype.revert = montRevert
7777 Montgomery.prototype.reduce = montReduce
7778 Montgomery.prototype.mulTo = montMulTo
7779 Montgomery.prototype.sqrTo = montSqrTo
7781 // (protected) true iff this is even
7782 function bnpIsEven() {
7783 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
7786 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
7787 function bnpExp(e, z) {
7788 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
7789 var r = new BigInteger(),
7790 r2 = new BigInteger(),
7791 g = z.convert(this),
7796 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
7806 // (public) this^e % m,
0 <= e <
2^
32
7807 function bnModPowInt(e, m) {
7809 if (e <
256 || m.isEven()) z = new Classic(m)
7810 else z = new Montgomery(m)
7811 return this.exp(e, z)
7815 proto.copyTo = bnpCopyTo
7816 proto.fromInt = bnpFromInt
7817 proto.fromString = bnpFromString
7818 proto.clamp = bnpClamp
7819 proto.dlShiftTo = bnpDLShiftTo
7820 proto.drShiftTo = bnpDRShiftTo
7821 proto.lShiftTo = bnpLShiftTo
7822 proto.rShiftTo = bnpRShiftTo
7823 proto.subTo = bnpSubTo
7824 proto.multiplyTo = bnpMultiplyTo
7825 proto.squareTo = bnpSquareTo
7826 proto.divRemTo = bnpDivRemTo
7827 proto.invDigit = bnpInvDigit
7828 proto.isEven = bnpIsEven
7832 proto.toString = bnToString
7833 proto.negate = bnNegate
7835 proto.compareTo = bnCompareTo
7836 proto.bitLength = bnBitLength
7837 proto.byteLength = bnByteLength
7839 proto.modPowInt = bnModPowInt
7842 function bnClone() {
7843 var r = new BigInteger()
7848 // (public) return value as integer
7849 function bnIntValue() {
7851 if (this.t ==
1) return this[
0] - this.DV
7852 else if (this.t ==
0) return -
1
7853 } else if (this.t ==
1) return this[
0]
7854 else if (this.t ==
0) return
0
7855 // assumes
16 < DB <
32
7856 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
7859 // (public) return value as byte
7860 function bnByteValue() {
7861 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
7864 // (public) return value as short (assumes DB
>=
16)
7865 function bnShortValue() {
7866 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
7869 // (protected) return x s.t. r^x < DV
7870 function bnpChunkSize(r) {
7871 return Math.floor(Math.LN2 * this.DB / Math.log(r))
7874 // (public)
0 if this ==
0,
1 if this
> 0
7875 function bnSigNum() {
7876 if (this.s <
0) return -
1
7877 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
7881 // (protected) convert to radix string
7882 function bnpToRadix(b) {
7883 if (b == null) b =
10
7884 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
7885 var cs = this.chunkSize(b)
7886 var a = Math.pow(b, cs)
7888 y = new BigInteger(),
7889 z = new BigInteger(),
7891 this.divRemTo(d, y, z)
7892 while (y.signum()
> 0) {
7893 r = (a + z.intValue())
7902 // (protected) convert from radix string
7903 function bnpFromRadix(s, b) {
7906 if (b == null) b =
10
7907 var cs = self.chunkSize(b)
7908 var d = Math.pow(b, cs),
7912 for (var i =
0; i < s.length; ++i) {
7915 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
7921 self.dAddOffset(w,
0)
7927 self.dMultiply(Math.pow(b, j))
7928 self.dAddOffset(w,
0)
7930 if (mi) BigInteger.ZERO.subTo(self, self)
7933 // (protected) alternate constructor
7934 function bnpFromNumber(a, b, c) {
7936 if (
"number" == typeof b) {
7937 // new BigInteger(int,int,RNG)
7938 if (a <
2) self.fromInt(
1)
7940 self.fromNumber(a, c)
7941 if (!self.testBit(a -
1)) // force MSB set
7942 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
7943 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
7944 while (!self.isProbablePrime(b)) {
7945 self.dAddOffset(
2,
0)
7946 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
7950 // new BigInteger(int,RNG)
7951 var x = new Array(),
7953 x.length = (a
>> 3) +
1
7955 if (t
> 0) x[
0] &= ((
1 << t) -
1)
7957 self.fromString(x,
256)
7961 // (public) convert to bigendian byte array
7962 function bnToByteArray() {
7967 var p = self.DB - (i * self.DB) %
8,
7970 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
7971 r[k++] = d | (self.s << (self.DB - p))
7974 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
7975 d |= self[--i]
>> (p += self.DB -
8)
7977 d = (self[i]
>> (p -=
8)) &
0xff
7983 if ((d &
0x80) !=
0) d |= -
256
7984 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
7985 if (k
> 0 || d != self.s) r[k++] = d
7991 function bnEquals(a) {
7992 return (this.compareTo(a) ==
0)
7996 return (this.compareTo(a) <
0) ? this : a
8000 return (this.compareTo(a)
> 0) ? this : a
8003 // (protected) r = this op a (bitwise)
8004 function bnpBitwiseTo(a, op, r) {
8006 var i, f, m = Math.min(a.t, self.t)
8007 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
8010 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
8013 f = self.s & self.DM
8014 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
8017 r.s = op(self.s, a.s)
8021 // (public) this & a
8022 function op_and(x, y) {
8027 var r = new BigInteger()
8028 this.bitwiseTo(a, op_and, r)
8032 // (public) this | a
8033 function op_or(x, y) {
8038 var r = new BigInteger()
8039 this.bitwiseTo(a, op_or, r)
8043 // (public) this ^ a
8044 function op_xor(x, y) {
8049 var r = new BigInteger()
8050 this.bitwiseTo(a, op_xor, r)
8054 // (public) this & ~a
8055 function op_andnot(x, y) {
8059 function bnAndNot(a) {
8060 var r = new BigInteger()
8061 this.bitwiseTo(a, op_andnot, r)
8067 var r = new BigInteger()
8068 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
8074 // (public) this << n
8075 function bnShiftLeft(n) {
8076 var r = new BigInteger()
8077 if (n <
0) this.rShiftTo(-n, r)
8078 else this.lShiftTo(n, r)
8082 // (public) this
>> n
8083 function bnShiftRight(n) {
8084 var r = new BigInteger()
8085 if (n <
0) this.lShiftTo(-n, r)
8086 else this.rShiftTo(n, r)
8090 // return index of lowest
1-bit in x, x <
2^
31
8092 if (x ==
0) return -
1
8094 if ((x &
0xffff) ==
0) {
8098 if ((x &
0xff) ==
0) {
8102 if ((x &
0xf) ==
0) {
8110 if ((x &
1) ==
0)++r
8114 // (public) returns index of lowest
1-bit (or -
1 if none)
8115 function bnGetLowestSetBit() {
8116 for (var i =
0; i < this.t; ++i)
8117 if (this[i] !=
0) return i * this.DB + lbit(this[i])
8118 if (this.s <
0) return this.t * this.DB
8122 // return number of
1 bits in x
8132 // (public) return number of set bits
8133 function bnBitCount() {
8135 x = this.s & this.DM
8136 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
8140 // (public) true iff nth bit is set
8141 function bnTestBit(n) {
8142 var j = Math.floor(n / this.DB)
8143 if (j
>= this.t) return (this.s !=
0)
8144 return ((this[j] & (
1 << (n % this.DB))) !=
0)
8147 // (protected) this op (
1<
<n)
8148 function bnpChangeBit(n, op) {
8149 var r = BigInteger.ONE.shiftLeft(n)
8150 this.bitwiseTo(r, op, r)
8154 // (public) this | (
1<
<n)
8155 function bnSetBit(n) {
8156 return this.changeBit(n, op_or)
8159 // (public) this & ~(
1<
<n)
8160 function bnClearBit(n) {
8161 return this.changeBit(n, op_andnot)
8164 // (public) this ^ (
1<
<n)
8165 function bnFlipBit(n) {
8166 return this.changeBit(n, op_xor)
8169 // (protected) r = this + a
8170 function bnpAddTo(a, r) {
8175 m = Math.min(a.t, self.t)
8178 r[i++] = c & self.DM
8183 while (i < self.t) {
8185 r[i++] = c & self.DM
8193 r[i++] = c & self.DM
8198 r.s = (c <
0) ? -
1 :
0
8199 if (c
> 0) r[i++] = c
8200 else if (c < -
1) r[i++] = self.DV + c
8205 // (public) this + a
8207 var r = new BigInteger()
8212 // (public) this - a
8213 function bnSubtract(a) {
8214 var r = new BigInteger()
8219 // (public) this * a
8220 function bnMultiply(a) {
8221 var r = new BigInteger()
8222 this.multiplyTo(a, r)
8227 function bnSquare() {
8228 var r = new BigInteger()
8233 // (public) this / a
8234 function bnDivide(a) {
8235 var r = new BigInteger()
8236 this.divRemTo(a, r, null)
8240 // (public) this % a
8241 function bnRemainder(a) {
8242 var r = new BigInteger()
8243 this.divRemTo(a, null, r)
8247 // (public) [this/a,this%a]
8248 function bnDivideAndRemainder(a) {
8249 var q = new BigInteger(),
8250 r = new BigInteger()
8251 this.divRemTo(a, q, r)
8252 return new Array(q, r)
8255 // (protected) this *= n, this
>=
0,
1 < n < DV
8256 function bnpDMultiply(n) {
8257 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
8262 // (protected) this += n << w words, this
>=
0
8263 function bnpDAddOffset(n, w) {
8265 while (this.t <= w) this[this.t++] =
0
8267 while (this[w]
>= this.DV) {
8269 if (++w
>= this.t) this[this.t++] =
0
8275 function NullExp() {}
8281 function nMulTo(x, y, r) {
8285 function nSqrTo(x, r) {
8289 NullExp.prototype.convert = nNop
8290 NullExp.prototype.revert = nNop
8291 NullExp.prototype.mulTo = nMulTo
8292 NullExp.prototype.sqrTo = nSqrTo
8296 return this.exp(e, new NullExp())
8299 // (protected) r = lower n words of "this * a", a.t <= n
8300 // "this" should be the larger one if appropriate.
8301 function bnpMultiplyLowerTo(a, n, r) {
8302 var i = Math.min(this.t + a.t, n)
8303 r.s =
0; // assumes a,this
>=
0
8305 while (i
> 0) r[--i] =
0
8307 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
8308 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
8312 // (protected) r =
"this * a" without lower n words, n
> 0
8313 //
"this" should be the larger one if appropriate.
8314 function bnpMultiplyUpperTo(a, n, r) {
8316 var i = r.t = this.t + a.t - n
8317 r.s =
0; // assumes a,this
>=
0
8318 while (--i
>=
0) r[i] =
0
8319 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
8320 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
8325 // Barrett modular reduction
8326 function Barrett(m) {
8328 this.r2 = new BigInteger()
8329 this.q3 = new BigInteger()
8330 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
8331 this.mu = this.r2.divide(m)
8335 function barrettConvert(x) {
8336 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
8337 else if (x.compareTo(this.m) <
0) return x
8339 var r = new BigInteger()
8346 function barrettRevert(x) {
8350 // x = x mod m (HAC
14.42)
8351 function barrettReduce(x) {
8353 x.drShiftTo(self.m.t -
1, self.r2)
8354 if (x.t
> self.m.t +
1) {
8358 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
8359 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
8360 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
8362 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
8365 // r = x^
2 mod m; x != r
8366 function barrettSqrTo(x, r) {
8371 // r = x*y mod m; x,y != r
8372 function barrettMulTo(x, y, r) {
8377 Barrett.prototype.convert = barrettConvert
8378 Barrett.prototype.revert = barrettRevert
8379 Barrett.prototype.reduce = barrettReduce
8380 Barrett.prototype.mulTo = barrettMulTo
8381 Barrett.prototype.sqrTo = barrettSqrTo
8383 // (public) this^e % m (HAC
14.85)
8384 function bnModPow(e, m) {
8385 var i = e.bitLength(),
8388 if (i <=
0) return r
8389 else if (i <
18) k =
1
8390 else if (i <
48) k =
3
8391 else if (i <
144) k =
4
8392 else if (i <
768) k =
5
8396 else if (m.isEven())
8399 z = new Montgomery(m)
8402 var g = new Array(),
8406 g[
1] = z.convert(this)
8408 var g2 = new BigInteger()
8411 g[n] = new BigInteger()
8412 z.mulTo(g2, g[n -
2], g[n])
8419 r2 = new BigInteger(),
8423 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
8425 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
8426 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
8430 while ((w &
1) ==
0) {
8438 if (is1) { // ret ==
1, don't bother squaring or multiplying it
8447 if (n
> 0) z.sqrTo(r, r2)
8453 z.mulTo(r2, g[w], r)
8456 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
8470 // (public) gcd(this,a) (HAC
14.54)
8472 var x = (this.s <
0) ? this.negate() : this.clone()
8473 var y = (a.s <
0) ? a.negate() : a.clone()
8474 if (x.compareTo(y) <
0) {
8479 var i = x.getLowestSetBit(),
8480 g = y.getLowestSetBit()
8487 while (x.signum()
> 0) {
8488 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
8489 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
8490 if (x.compareTo(y)
>=
0) {
8498 if (g
> 0) y.lShiftTo(g, y)
8502 // (protected) this % n, n <
2^
26
8503 function bnpModInt(n) {
8504 if (n <=
0) return
0
8505 var d = this.DV % n,
8506 r = (this.s <
0) ? n -
1 :
0
8508 if (d ==
0) r = this[
0] % n
8510 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
8514 // (public)
1/this % m (HAC
14.61)
8515 function bnModInverse(m) {
8517 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
8524 while (u.signum() !=
0) {
8525 while (u.isEven()) {
8528 if (!a.isEven() || !b.isEven()) {
8533 } else if (!b.isEven()) b.subTo(m, b)
8536 while (v.isEven()) {
8539 if (!c.isEven() || !d.isEven()) {
8544 } else if (!d.isEven()) d.subTo(m, d)
8547 if (u.compareTo(v)
>=
0) {
8549 if (ac) a.subTo(c, a)
8553 if (ac) c.subTo(a, c)
8557 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
8558 if (d.compareTo(m)
>=
0) return d.subtract(m)
8559 if (d.signum() <
0) d.addTo(m, d)
8561 if (d.signum() <
0) return d.add(m)
8566 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
8567 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
8568 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
8569 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
8570 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
8571 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
8572 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
8573 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
8574 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
8575 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
8576 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
8579 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
8581 // (public) test primality with certainty
>=
1-
.5^t
8582 function bnIsProbablePrime(t) {
8583 var i, x = this.abs()
8584 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
8585 for (i =
0; i < lowprimes.length; ++i)
8586 if (x[
0] == lowprimes[i]) return true
8589 if (x.isEven()) return false
8591 while (i < lowprimes.length) {
8592 var m = lowprimes[i],
8594 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
8596 while (i < j) if (m % lowprimes[i++] ==
0) return false
8598 return x.millerRabin(t)
8601 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
8602 function bnpMillerRabin(t) {
8603 var n1 = this.subtract(BigInteger.ONE)
8604 var k = n1.getLowestSetBit()
8605 if (k <=
0) return false
8606 var r = n1.shiftRight(k)
8608 if (t
> lowprimes.length) t = lowprimes.length
8609 var a = new BigInteger(null)
8611 for (var i =
0; i < t; ++i) {
8613 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
8614 if (bases.indexOf(j) == -
1) break
8618 var y = a.modPow(r, this)
8619 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
8621 while (j++ < k && y.compareTo(n1) !=
0) {
8622 y = y.modPowInt(
2, this)
8623 if (y.compareTo(BigInteger.ONE) ==
0) return false
8625 if (y.compareTo(n1) !=
0) return false
8632 proto.chunkSize = bnpChunkSize
8633 proto.toRadix = bnpToRadix
8634 proto.fromRadix = bnpFromRadix
8635 proto.fromNumber = bnpFromNumber
8636 proto.bitwiseTo = bnpBitwiseTo
8637 proto.changeBit = bnpChangeBit
8638 proto.addTo = bnpAddTo
8639 proto.dMultiply = bnpDMultiply
8640 proto.dAddOffset = bnpDAddOffset
8641 proto.multiplyLowerTo = bnpMultiplyLowerTo
8642 proto.multiplyUpperTo = bnpMultiplyUpperTo
8643 proto.modInt = bnpModInt
8644 proto.millerRabin = bnpMillerRabin
8647 proto.clone = bnClone
8648 proto.intValue = bnIntValue
8649 proto.byteValue = bnByteValue
8650 proto.shortValue = bnShortValue
8651 proto.signum = bnSigNum
8652 proto.toByteArray = bnToByteArray
8653 proto.equals = bnEquals
8659 proto.andNot = bnAndNot
8661 proto.shiftLeft = bnShiftLeft
8662 proto.shiftRight = bnShiftRight
8663 proto.getLowestSetBit = bnGetLowestSetBit
8664 proto.bitCount = bnBitCount
8665 proto.testBit = bnTestBit
8666 proto.setBit = bnSetBit
8667 proto.clearBit = bnClearBit
8668 proto.flipBit = bnFlipBit
8670 proto.subtract = bnSubtract
8671 proto.multiply = bnMultiply
8672 proto.divide = bnDivide
8673 proto.remainder = bnRemainder
8674 proto.divideAndRemainder = bnDivideAndRemainder
8675 proto.modPow = bnModPow
8676 proto.modInverse = bnModInverse
8679 proto.isProbablePrime = bnIsProbablePrime
8681 // JSBN-specific extension
8682 proto.square = bnSquare
8685 BigInteger.ZERO = nbv(
0)
8686 BigInteger.ONE = nbv(
1)
8687 BigInteger.valueOf = nbv
8689 module.exports = BigInteger
8691 },{"../package.json":
4}],
2:[function(require,module,exports){
8693 // FIXME: Kind of a weird way to throw exceptions, consider removing
8694 var assert = require('assert')
8695 var BigInteger = require('./bigi')
8698 * Turns a byte array into a big integer.
8700 * This function will interpret a byte array as a big integer in big
8703 BigInteger.fromByteArrayUnsigned = function(byteArray) {
8704 // BigInteger expects a DER integer conformant byte array
8705 if (byteArray[
0] &
0x80) {
8706 return new BigInteger([
0].concat(byteArray))
8709 return new BigInteger(byteArray)
8713 * Returns a byte array representation of the big integer.
8715 * This returns the absolute of the contained value in big endian
8716 * form. A value of zero results in an empty array.
8718 BigInteger.prototype.toByteArrayUnsigned = function() {
8719 var byteArray = this.toByteArray()
8720 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
8723 BigInteger.fromDERInteger = function(byteArray) {
8724 return new BigInteger(byteArray)
8728 * Converts BigInteger to a DER integer representation.
8730 * The format for this value uses the most significant bit as a sign
8731 * bit. If the most significant bit is already set and the integer is
8732 * positive, a
0x00 is prepended.
8748 * -
62300 =
> 0xff0ca4
8750 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
8752 BigInteger.fromBuffer = function(buffer) {
8753 // BigInteger expects a DER integer conformant byte array
8754 if (buffer[
0] &
0x80) {
8755 var byteArray = Array.prototype.slice.call(buffer)
8757 return new BigInteger([
0].concat(byteArray))
8760 return new BigInteger(buffer)
8763 BigInteger.fromHex = function(hex) {
8764 if (hex === '') return BigInteger.ZERO
8766 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
8767 assert.equal(hex.length %
2,
0, 'Incomplete hex')
8768 return new BigInteger(hex,
16)
8771 BigInteger.prototype.toBuffer = function(size) {
8772 var byteArray = this.toByteArrayUnsigned()
8775 var padding = size - byteArray.length
8776 while (zeros.length < padding) zeros.push(
0)
8778 return new Buffer(zeros.concat(byteArray))
8781 BigInteger.prototype.toHex = function(size) {
8782 return this.toBuffer(size).toString('hex')
8785 }).call(this,require(
"buffer").Buffer)
8786 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
8787 var BigInteger = require('./bigi')
8790 require('./convert')
8792 module.exports = BigInteger
8793 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
8797 "description":
"Big integers.",
8815 "devDependencies": {
8818 "coveralls":
"^2.10.0",
8819 "istanbul":
"^0.2.11"
8822 "url":
"https://github.com/cryptocoinjs/bigi",
8825 "main":
"./lib/index.js",
8827 "test":
"_mocha -- test/*.js",
8828 "jshint":
"jshint --config jshint.json lib/*.js ; true",
8830 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
8831 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
8835 "files":
"test/*.js",
8841 "safari/6.0..latest",
8842 "iphone/6.0..latest",
8843 "android-browser/4.2..latest"
8847 "url":
"https://github.com/cryptocoinjs/bigi/issues"
8849 "homepage":
"https://github.com/cryptocoinjs/bigi",
8850 "_id":
"bigi@1.4.0",
8852 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8853 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8855 "_from":
"bigi@^1.4.0",
8856 "_npmVersion":
"1.4.3",
8859 "email":
"jprichardson@gmail.com"
8864 "email":
"jprichardson@gmail.com"
8867 "name":
"midnightlightning",
8868 "email":
"boydb@midnightdesign.ws"
8871 "name":
"sidazhang",
8872 "email":
"sidazhang89@gmail.com"
8876 "email":
"npm@shesek.info"
8880 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8881 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8884 },{}],
5:[function(require,module,exports){
8885 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
8887 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
8889 // Originally from narwhal.js (http://narwhaljs.org)
8890 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
8892 // Permission is hereby granted, free of charge, to any person obtaining a copy
8893 // of this software and associated documentation files (the 'Software'), to
8894 // deal in the Software without restriction, including without limitation the
8895 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8896 // sell copies of the Software, and to permit persons to whom the Software is
8897 // furnished to do so, subject to the following conditions:
8899 // The above copyright notice and this permission notice shall be included in
8900 // all copies or substantial portions of the Software.
8902 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8903 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8904 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8905 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
8906 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
8907 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8909 // when used in node, this will actually load the util module we depend on
8910 // versus loading the builtin util module as happens otherwise
8911 // this is a bug in node module loading as far as I am concerned
8912 var util = require('util/');
8914 var pSlice = Array.prototype.slice;
8915 var hasOwn = Object.prototype.hasOwnProperty;
8917 //
1. The assert module provides functions that throw
8918 // AssertionError's when particular conditions are not met. The
8919 // assert module must conform to the following interface.
8921 var assert = module.exports = ok;
8923 //
2. The AssertionError is defined in assert.
8924 // new assert.AssertionError({ message: message,
8926 // expected: expected })
8928 assert.AssertionError = function AssertionError(options) {
8929 this.name = 'AssertionError';
8930 this.actual = options.actual;
8931 this.expected = options.expected;
8932 this.operator = options.operator;
8933 if (options.message) {
8934 this.message = options.message;
8935 this.generatedMessage = false;
8937 this.message = getMessage(this);
8938 this.generatedMessage = true;
8940 var stackStartFunction = options.stackStartFunction || fail;
8942 if (Error.captureStackTrace) {
8943 Error.captureStackTrace(this, stackStartFunction);
8946 // non v8 browsers so we can have a stacktrace
8947 var err = new Error();
8949 var out = err.stack;
8951 // try to strip useless frames
8952 var fn_name = stackStartFunction.name;
8953 var idx = out.indexOf('\n' + fn_name);
8955 // once we have located the function frame
8956 // we need to strip out everything before it (and its line)
8957 var next_line = out.indexOf('\n', idx +
1);
8958 out = out.substring(next_line +
1);
8966 // assert.AssertionError instanceof Error
8967 util.inherits(assert.AssertionError, Error);
8969 function replacer(key, value) {
8970 if (util.isUndefined(value)) {
8973 if (util.isNumber(value) && !isFinite(value)) {
8974 return value.toString();
8976 if (util.isFunction(value) || util.isRegExp(value)) {
8977 return value.toString();
8982 function truncate(s, n) {
8983 if (util.isString(s)) {
8984 return s.length < n ? s : s.slice(
0, n);
8990 function getMessage(self) {
8991 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
8992 self.operator + ' ' +
8993 truncate(JSON.stringify(self.expected, replacer),
128);
8996 // At present only the three keys mentioned above are used and
8997 // understood by the spec. Implementations or sub modules can pass
8998 // other keys to the AssertionError's constructor - they will be
9001 //
3. All of the following functions must throw an AssertionError
9002 // when a corresponding condition is not met, with a message that
9003 // may be undefined if not provided. All assertion methods provide
9004 // both the actual and expected values to the assertion error for
9005 // display purposes.
9007 function fail(actual, expected, message, operator, stackStartFunction) {
9008 throw new assert.AssertionError({
9013 stackStartFunction: stackStartFunction
9017 // EXTENSION! allows for well behaved errors defined elsewhere.
9020 //
4. Pure assertion tests whether a value is truthy, as determined
9022 // assert.ok(guard, message_opt);
9023 // This statement is equivalent to assert.equal(true, !!guard,
9024 // message_opt);. To test strictly for the value true, use
9025 // assert.strictEqual(true, guard, message_opt);.
9027 function ok(value, message) {
9028 if (!value) fail(value, true, message, '==', assert.ok);
9032 //
5. The equality assertion tests shallow, coercive equality with
9034 // assert.equal(actual, expected, message_opt);
9036 assert.equal = function equal(actual, expected, message) {
9037 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
9040 //
6. The non-equality assertion tests for whether two objects are not equal
9041 // with != assert.notEqual(actual, expected, message_opt);
9043 assert.notEqual = function notEqual(actual, expected, message) {
9044 if (actual == expected) {
9045 fail(actual, expected, message, '!=', assert.notEqual);
9049 //
7. The equivalence assertion tests a deep equality relation.
9050 // assert.deepEqual(actual, expected, message_opt);
9052 assert.deepEqual = function deepEqual(actual, expected, message) {
9053 if (!_deepEqual(actual, expected)) {
9054 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
9058 function _deepEqual(actual, expected) {
9059 //
7.1. All identical values are equivalent, as determined by ===.
9060 if (actual === expected) {
9063 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
9064 if (actual.length != expected.length) return false;
9066 for (var i =
0; i < actual.length; i++) {
9067 if (actual[i] !== expected[i]) return false;
9072 //
7.2. If the expected value is a Date object, the actual value is
9073 // equivalent if it is also a Date object that refers to the same time.
9074 } else if (util.isDate(actual) && util.isDate(expected)) {
9075 return actual.getTime() === expected.getTime();
9077 //
7.3 If the expected value is a RegExp object, the actual value is
9078 // equivalent if it is also a RegExp object with the same source and
9079 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
9080 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
9081 return actual.source === expected.source &&
9082 actual.global === expected.global &&
9083 actual.multiline === expected.multiline &&
9084 actual.lastIndex === expected.lastIndex &&
9085 actual.ignoreCase === expected.ignoreCase;
9087 //
7.4. Other pairs that do not both pass typeof value == 'object',
9088 // equivalence is determined by ==.
9089 } else if (!util.isObject(actual) && !util.isObject(expected)) {
9090 return actual == expected;
9092 //
7.5 For all other Object pairs, including Array objects, equivalence is
9093 // determined by having the same number of owned properties (as verified
9094 // with Object.prototype.hasOwnProperty.call), the same set of keys
9095 // (although not necessarily the same order), equivalent values for every
9096 // corresponding key, and an identical 'prototype' property. Note: this
9097 // accounts for both named and indexed properties on Arrays.
9099 return objEquiv(actual, expected);
9103 function isArguments(object) {
9104 return Object.prototype.toString.call(object) == '[object Arguments]';
9107 function objEquiv(a, b) {
9108 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
9110 // an identical 'prototype' property.
9111 if (a.prototype !== b.prototype) return false;
9112 // if one is a primitive, the other must be same
9113 if (util.isPrimitive(a) || util.isPrimitive(b)) {
9116 var aIsArgs = isArguments(a),
9117 bIsArgs = isArguments(b);
9118 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
9123 return _deepEqual(a, b);
9125 var ka = objectKeys(a),
9128 // having the same number of owned properties (keys incorporates
9130 if (ka.length != kb.length)
9132 //the same set of keys (although not necessarily the same order),
9136 for (i = ka.length -
1; i
>=
0; i--) {
9140 //equivalent values for every corresponding key, and
9141 //~~~possibly expensive deep test
9142 for (i = ka.length -
1; i
>=
0; i--) {
9144 if (!_deepEqual(a[key], b[key])) return false;
9149 //
8. The non-equivalence assertion tests for any deep inequality.
9150 // assert.notDeepEqual(actual, expected, message_opt);
9152 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
9153 if (_deepEqual(actual, expected)) {
9154 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
9158 //
9. The strict equality assertion tests strict equality, as determined by ===.
9159 // assert.strictEqual(actual, expected, message_opt);
9161 assert.strictEqual = function strictEqual(actual, expected, message) {
9162 if (actual !== expected) {
9163 fail(actual, expected, message, '===', assert.strictEqual);
9167 //
10. The strict non-equality assertion tests for strict inequality, as
9168 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
9170 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
9171 if (actual === expected) {
9172 fail(actual, expected, message, '!==', assert.notStrictEqual);
9176 function expectedException(actual, expected) {
9177 if (!actual || !expected) {
9181 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
9182 return expected.test(actual);
9183 } else if (actual instanceof expected) {
9185 } else if (expected.call({}, actual) === true) {
9192 function _throws(shouldThrow, block, expected, message) {
9195 if (util.isString(expected)) {
9206 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
9207 (message ? ' ' + message : '.');
9209 if (shouldThrow && !actual) {
9210 fail(actual, expected, 'Missing expected exception' + message);
9213 if (!shouldThrow && expectedException(actual, expected)) {
9214 fail(actual, expected, 'Got unwanted exception' + message);
9217 if ((shouldThrow && actual && expected &&
9218 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
9223 //
11. Expected to throw an error:
9224 // assert.throws(block, Error_opt, message_opt);
9226 assert.throws = function(block, /*optional*/error, /*optional*/message) {
9227 _throws.apply(this, [true].concat(pSlice.call(arguments)));
9230 // EXTENSION! This is annoying to write outside this module.
9231 assert.doesNotThrow = function(block, /*optional*/message) {
9232 _throws.apply(this, [false].concat(pSlice.call(arguments)));
9235 assert.ifError = function(err) { if (err) {throw err;}};
9237 var objectKeys = Object.keys || function (obj) {
9239 for (var key in obj) {
9240 if (hasOwn.call(obj, key)) keys.push(key);
9245 },{"util/":
29}],
6:[function(require,module,exports){
9247 },{}],
7:[function(require,module,exports){
9249 * The buffer module from node.js, for the browser.
9251 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
9255 var base64 = require('base64-js')
9256 var ieee754 = require('ieee754')
9257 var isArray = require('is-array')
9259 exports.Buffer = Buffer
9260 exports.SlowBuffer = SlowBuffer
9261 exports.INSPECT_MAX_BYTES =
50
9262 Buffer.poolSize =
8192 // not used by this implementation
9267 * If `Buffer.TYPED_ARRAY_SUPPORT`:
9268 * === true Use Uint8Array implementation (fastest)
9269 * === false Use Object implementation (most compatible, even IE6)
9271 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
9272 * Opera
11.6+, iOS
4.2+.
9274 * Due to various browser bugs, sometimes the Object implementation will be used even
9275 * when the browser supports typed arrays.
9279 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
9280 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
9282 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
9285 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
9287 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
9288 * incorrect length in some situations.
9290 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
9291 * get the Object implementation, which is slower but behaves correctly.
9293 Buffer.TYPED_ARRAY_SUPPORT = (function () {
9296 var arr = new Uint8Array(
1)
9297 arr.foo = function () { return
42 }
9298 arr.constructor = Bar
9299 return arr.foo() ===
42 && // typed array instances can be augmented
9300 arr.constructor === Bar && // constructor can be set
9301 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
9302 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
9308 function kMaxLength () {
9309 return Buffer.TYPED_ARRAY_SUPPORT
9318 * The Buffer constructor returns instances of `Uint8Array` that are augmented
9319 * with function properties for all the node `Buffer` API functions. We use
9320 * `Uint8Array` so that square bracket notation works as expected -- it returns
9323 * By augmenting the instances, we can avoid modifying the `Uint8Array`
9326 function Buffer (arg) {
9327 if (!(this instanceof Buffer)) {
9328 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
9329 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
9330 return new Buffer(arg)
9334 this.parent = undefined
9337 if (typeof arg === 'number') {
9338 return fromNumber(this, arg)
9341 // Slightly less common case.
9342 if (typeof arg === 'string') {
9343 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
9347 return fromObject(this, arg)
9350 function fromNumber (that, length) {
9351 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
9352 if (!Buffer.TYPED_ARRAY_SUPPORT) {
9353 for (var i =
0; i < length; i++) {
9360 function fromString (that, string, encoding) {
9361 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
9363 // Assumption: byteLength() return value is always < kMaxLength.
9364 var length = byteLength(string, encoding) |
0
9365 that = allocate(that, length)
9367 that.write(string, encoding)
9371 function fromObject (that, object) {
9372 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
9374 if (isArray(object)) return fromArray(that, object)
9376 if (object == null) {
9377 throw new TypeError('must start with number, buffer, array or string')
9380 if (typeof ArrayBuffer !== 'undefined') {
9381 if (object.buffer instanceof ArrayBuffer) {
9382 return fromTypedArray(that, object)
9384 if (object instanceof ArrayBuffer) {
9385 return fromArrayBuffer(that, object)
9389 if (object.length) return fromArrayLike(that, object)
9391 return fromJsonObject(that, object)
9394 function fromBuffer (that, buffer) {
9395 var length = checked(buffer.length) |
0
9396 that = allocate(that, length)
9397 buffer.copy(that,
0,
0, length)
9401 function fromArray (that, array) {
9402 var length = checked(array.length) |
0
9403 that = allocate(that, length)
9404 for (var i =
0; i < length; i +=
1) {
9405 that[i] = array[i] &
255
9410 // Duplicate of fromArray() to keep fromArray() monomorphic.
9411 function fromTypedArray (that, array) {
9412 var length = checked(array.length) |
0
9413 that = allocate(that, length)
9414 // Truncating the elements is probably not what people expect from typed
9415 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
9416 // of the old Buffer constructor.
9417 for (var i =
0; i < length; i +=
1) {
9418 that[i] = array[i] &
255
9423 function fromArrayBuffer (that, array) {
9424 if (Buffer.TYPED_ARRAY_SUPPORT) {
9425 // Return an augmented `Uint8Array` instance, for best performance
9427 that = Buffer._augment(new Uint8Array(array))
9429 // Fallback: Return an object instance of the Buffer class
9430 that = fromTypedArray(that, new Uint8Array(array))
9435 function fromArrayLike (that, array) {
9436 var length = checked(array.length) |
0
9437 that = allocate(that, length)
9438 for (var i =
0; i < length; i +=
1) {
9439 that[i] = array[i] &
255
9444 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
9445 // Returns a zero-length buffer for inputs that don't conform to the spec.
9446 function fromJsonObject (that, object) {
9450 if (object.type === 'Buffer' && isArray(object.data)) {
9452 length = checked(array.length) |
0
9454 that = allocate(that, length)
9456 for (var i =
0; i < length; i +=
1) {
9457 that[i] = array[i] &
255
9462 function allocate (that, length) {
9463 if (Buffer.TYPED_ARRAY_SUPPORT) {
9464 // Return an augmented `Uint8Array` instance, for best performance
9465 that = Buffer._augment(new Uint8Array(length))
9467 // Fallback: Return an object instance of the Buffer class
9468 that.length = length
9469 that._isBuffer = true
9472 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
9473 if (fromPool) that.parent = rootParent
9478 function checked (length) {
9479 // Note: cannot use `length < kMaxLength` here because that fails when
9480 // length is NaN (which is otherwise coerced to zero.)
9481 if (length
>= kMaxLength()) {
9482 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
9483 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
9488 function SlowBuffer (subject, encoding) {
9489 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
9491 var buf = new Buffer(subject, encoding)
9496 Buffer.isBuffer = function isBuffer (b) {
9497 return !!(b != null && b._isBuffer)
9500 Buffer.compare = function compare (a, b) {
9501 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
9502 throw new TypeError('Arguments must be Buffers')
9505 if (a === b) return
0
9511 var len = Math.min(x, y)
9513 if (a[i] !== b[i]) break
9523 if (x < y) return -
1
9528 Buffer.isEncoding = function isEncoding (encoding) {
9529 switch (String(encoding).toLowerCase()) {
9547 Buffer.concat = function concat (list, length) {
9548 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
9550 if (list.length ===
0) {
9551 return new Buffer(
0)
9555 if (length === undefined) {
9557 for (i =
0; i < list.length; i++) {
9558 length += list[i].length
9562 var buf = new Buffer(length)
9564 for (i =
0; i < list.length; i++) {
9572 function byteLength (string, encoding) {
9573 if (typeof string !== 'string') string = '' + string
9575 var len = string.length
9576 if (len ===
0) return
0
9578 // Use a for loop to avoid recursion
9579 var loweredCase = false
9590 return utf8ToBytes(string).length
9599 return base64ToBytes(string).length
9601 if (loweredCase) return utf8ToBytes(string).length // assume utf8
9602 encoding = ('' + encoding).toLowerCase()
9607 Buffer.byteLength = byteLength
9609 // pre-set for values that may exist in the future
9610 Buffer.prototype.length = undefined
9611 Buffer.prototype.parent = undefined
9613 function slowToString (encoding, start, end) {
9614 var loweredCase = false
9617 end = end === undefined || end === Infinity ? this.length : end |
0
9619 if (!encoding) encoding = 'utf8'
9620 if (start <
0) start =
0
9621 if (end
> this.length) end = this.length
9622 if (end <= start) return ''
9627 return hexSlice(this, start, end)
9631 return utf8Slice(this, start, end)
9634 return asciiSlice(this, start, end)
9637 return binarySlice(this, start, end)
9640 return base64Slice(this, start, end)
9646 return utf16leSlice(this, start, end)
9649 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9650 encoding = (encoding + '').toLowerCase()
9656 Buffer.prototype.toString = function toString () {
9657 var length = this.length |
0
9658 if (length ===
0) return ''
9659 if (arguments.length ===
0) return utf8Slice(this,
0, length)
9660 return slowToString.apply(this, arguments)
9663 Buffer.prototype.equals = function equals (b) {
9664 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9665 if (this === b) return true
9666 return Buffer.compare(this, b) ===
0
9669 Buffer.prototype.inspect = function inspect () {
9671 var max = exports.INSPECT_MAX_BYTES
9672 if (this.length
> 0) {
9673 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
9674 if (this.length
> max) str += ' ... '
9676 return '
<Buffer ' + str + '
>'
9679 Buffer.prototype.compare = function compare (b) {
9680 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9681 if (this === b) return
0
9682 return Buffer.compare(this, b)
9685 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
9686 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
9687 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
9690 if (this.length ===
0) return -
1
9691 if (byteOffset
>= this.length) return -
1
9693 // Negative offsets start from the end of the buffer
9694 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
9696 if (typeof val === 'string') {
9697 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
9698 return String.prototype.indexOf.call(this, val, byteOffset)
9700 if (Buffer.isBuffer(val)) {
9701 return arrayIndexOf(this, val, byteOffset)
9703 if (typeof val === 'number') {
9704 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
9705 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
9707 return arrayIndexOf(this, [ val ], byteOffset)
9710 function arrayIndexOf (arr, val, byteOffset) {
9712 for (var i =
0; byteOffset + i < arr.length; i++) {
9713 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
9714 if (foundIndex === -
1) foundIndex = i
9715 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
9723 throw new TypeError('val must be string, number or Buffer')
9726 // `get` is deprecated
9727 Buffer.prototype.get = function get (offset) {
9728 console.log('.get() is deprecated. Access using array indexes instead.')
9729 return this.readUInt8(offset)
9732 // `set` is deprecated
9733 Buffer.prototype.set = function set (v, offset) {
9734 console.log('.set() is deprecated. Access using array indexes instead.')
9735 return this.writeUInt8(v, offset)
9738 function hexWrite (buf, string, offset, length) {
9739 offset = Number(offset) ||
0
9740 var remaining = buf.length - offset
9744 length = Number(length)
9745 if (length
> remaining) {
9750 // must be an even number of digits
9751 var strLen = string.length
9752 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
9754 if (length
> strLen /
2) {
9757 for (var i =
0; i < length; i++) {
9758 var parsed = parseInt(string.substr(i *
2,
2),
16)
9759 if (isNaN(parsed)) throw new Error('Invalid hex string')
9760 buf[offset + i] = parsed
9765 function utf8Write (buf, string, offset, length) {
9766 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
9769 function asciiWrite (buf, string, offset, length) {
9770 return blitBuffer(asciiToBytes(string), buf, offset, length)
9773 function binaryWrite (buf, string, offset, length) {
9774 return asciiWrite(buf, string, offset, length)
9777 function base64Write (buf, string, offset, length) {
9778 return blitBuffer(base64ToBytes(string), buf, offset, length)
9781 function ucs2Write (buf, string, offset, length) {
9782 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
9785 Buffer.prototype.write = function write (string, offset, length, encoding) {
9786 // Buffer#write(string)
9787 if (offset === undefined) {
9789 length = this.length
9791 // Buffer#write(string, encoding)
9792 } else if (length === undefined && typeof offset === 'string') {
9794 length = this.length
9796 // Buffer#write(string, offset[, length][, encoding])
9797 } else if (isFinite(offset)) {
9799 if (isFinite(length)) {
9801 if (encoding === undefined) encoding = 'utf8'
9806 // legacy write(string, encoding, offset, length) - remove in v0.13
9814 var remaining = this.length - offset
9815 if (length === undefined || length
> remaining) length = remaining
9817 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
9818 throw new RangeError('attempt to write outside buffer bounds')
9821 if (!encoding) encoding = 'utf8'
9823 var loweredCase = false
9827 return hexWrite(this, string, offset, length)
9831 return utf8Write(this, string, offset, length)
9834 return asciiWrite(this, string, offset, length)
9837 return binaryWrite(this, string, offset, length)
9840 // Warning: maxLength not taken into account in base64Write
9841 return base64Write(this, string, offset, length)
9847 return ucs2Write(this, string, offset, length)
9850 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9851 encoding = ('' + encoding).toLowerCase()
9857 Buffer.prototype.toJSON = function toJSON () {
9860 data: Array.prototype.slice.call(this._arr || this,
0)
9864 function base64Slice (buf, start, end) {
9865 if (start ===
0 && end === buf.length) {
9866 return base64.fromByteArray(buf)
9868 return base64.fromByteArray(buf.slice(start, end))
9872 function utf8Slice (buf, start, end) {
9873 end = Math.min(buf.length, end)
9878 var bytesPerSequence
9884 for (; i < end; i += bytesPerSequence) {
9888 if (firstByte
> 0xEF) {
9889 bytesPerSequence =
4
9890 } else if (firstByte
> 0xDF) {
9891 bytesPerSequence =
3
9892 } else if (firstByte
> 0xBF) {
9893 bytesPerSequence =
2
9895 bytesPerSequence =
1
9898 if (i + bytesPerSequence <= end) {
9899 switch (bytesPerSequence) {
9901 if (firstByte <
0x80) {
9902 codePoint = firstByte
9906 secondByte = buf[i +
1]
9907 if ((secondByte &
0xC0) ===
0x80) {
9908 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
9909 if (tempCodePoint
> 0x7F) {
9910 codePoint = tempCodePoint
9915 secondByte = buf[i +
1]
9916 thirdByte = buf[i +
2]
9917 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
9918 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
9919 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
9920 codePoint = tempCodePoint
9925 secondByte = buf[i +
1]
9926 thirdByte = buf[i +
2]
9927 fourthByte = buf[i +
3]
9928 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
9929 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
9930 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
9931 codePoint = tempCodePoint
9937 if (codePoint ===
0xFFFD) {
9938 // we generated an invalid codePoint so make sure to only advance by
1 byte
9939 bytesPerSequence =
1
9940 } else if (codePoint
> 0xFFFF) {
9941 // encode to utf16 (surrogate pair dance)
9942 codePoint -=
0x10000
9943 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
9944 codePoint =
0xDC00 | codePoint &
0x3FF
9950 return String.fromCharCode.apply(String, res)
9953 function asciiSlice (buf, start, end) {
9955 end = Math.min(buf.length, end)
9957 for (var i = start; i < end; i++) {
9958 ret += String.fromCharCode(buf[i] &
0x7F)
9963 function binarySlice (buf, start, end) {
9965 end = Math.min(buf.length, end)
9967 for (var i = start; i < end; i++) {
9968 ret += String.fromCharCode(buf[i])
9973 function hexSlice (buf, start, end) {
9974 var len = buf.length
9976 if (!start || start <
0) start =
0
9977 if (!end || end <
0 || end
> len) end = len
9980 for (var i = start; i < end; i++) {
9981 out += toHex(buf[i])
9986 function utf16leSlice (buf, start, end) {
9987 var bytes = buf.slice(start, end)
9989 for (var i =
0; i < bytes.length; i +=
2) {
9990 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
9995 Buffer.prototype.slice = function slice (start, end) {
9996 var len = this.length
9998 end = end === undefined ? len : ~~end
10002 if (start <
0) start =
0
10003 } else if (start
> len) {
10009 if (end <
0) end =
0
10010 } else if (end
> len) {
10014 if (end < start) end = start
10017 if (Buffer.TYPED_ARRAY_SUPPORT) {
10018 newBuf = Buffer._augment(this.subarray(start, end))
10020 var sliceLen = end - start
10021 newBuf = new Buffer(sliceLen, undefined)
10022 for (var i =
0; i < sliceLen; i++) {
10023 newBuf[i] = this[i + start]
10027 if (newBuf.length) newBuf.parent = this.parent || this
10033 * Need to make sure that buffer isn't trying to write out of bounds.
10035 function checkOffset (offset, ext, length) {
10036 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
10037 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
10040 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
10041 offset = offset |
0
10042 byteLength = byteLength |
0
10043 if (!noAssert) checkOffset(offset, byteLength, this.length)
10045 var val = this[offset]
10048 while (++i < byteLength && (mul *=
0x100)) {
10049 val += this[offset + i] * mul
10055 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
10056 offset = offset |
0
10057 byteLength = byteLength |
0
10059 checkOffset(offset, byteLength, this.length)
10062 var val = this[offset + --byteLength]
10064 while (byteLength
> 0 && (mul *=
0x100)) {
10065 val += this[offset + --byteLength] * mul
10071 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
10072 if (!noAssert) checkOffset(offset,
1, this.length)
10073 return this[offset]
10076 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
10077 if (!noAssert) checkOffset(offset,
2, this.length)
10078 return this[offset] | (this[offset +
1] <<
8)
10081 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
10082 if (!noAssert) checkOffset(offset,
2, this.length)
10083 return (this[offset] <<
8) | this[offset +
1]
10086 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
10087 if (!noAssert) checkOffset(offset,
4, this.length)
10089 return ((this[offset]) |
10090 (this[offset +
1] <<
8) |
10091 (this[offset +
2] <<
16)) +
10092 (this[offset +
3] *
0x1000000)
10095 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
10096 if (!noAssert) checkOffset(offset,
4, this.length)
10098 return (this[offset] *
0x1000000) +
10099 ((this[offset +
1] <<
16) |
10100 (this[offset +
2] <<
8) |
10104 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
10105 offset = offset |
0
10106 byteLength = byteLength |
0
10107 if (!noAssert) checkOffset(offset, byteLength, this.length)
10109 var val = this[offset]
10112 while (++i < byteLength && (mul *=
0x100)) {
10113 val += this[offset + i] * mul
10117 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10122 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
10123 offset = offset |
0
10124 byteLength = byteLength |
0
10125 if (!noAssert) checkOffset(offset, byteLength, this.length)
10129 var val = this[offset + --i]
10130 while (i
> 0 && (mul *=
0x100)) {
10131 val += this[offset + --i] * mul
10135 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10140 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
10141 if (!noAssert) checkOffset(offset,
1, this.length)
10142 if (!(this[offset] &
0x80)) return (this[offset])
10143 return ((
0xff - this[offset] +
1) * -
1)
10146 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
10147 if (!noAssert) checkOffset(offset,
2, this.length)
10148 var val = this[offset] | (this[offset +
1] <<
8)
10149 return (val &
0x8000) ? val |
0xFFFF0000 : val
10152 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
10153 if (!noAssert) checkOffset(offset,
2, this.length)
10154 var val = this[offset +
1] | (this[offset] <<
8)
10155 return (val &
0x8000) ? val |
0xFFFF0000 : val
10158 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
10159 if (!noAssert) checkOffset(offset,
4, this.length)
10161 return (this[offset]) |
10162 (this[offset +
1] <<
8) |
10163 (this[offset +
2] <<
16) |
10164 (this[offset +
3] <<
24)
10167 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
10168 if (!noAssert) checkOffset(offset,
4, this.length)
10170 return (this[offset] <<
24) |
10171 (this[offset +
1] <<
16) |
10172 (this[offset +
2] <<
8) |
10176 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
10177 if (!noAssert) checkOffset(offset,
4, this.length)
10178 return ieee754.read(this, offset, true,
23,
4)
10181 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
10182 if (!noAssert) checkOffset(offset,
4, this.length)
10183 return ieee754.read(this, offset, false,
23,
4)
10186 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
10187 if (!noAssert) checkOffset(offset,
8, this.length)
10188 return ieee754.read(this, offset, true,
52,
8)
10191 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
10192 if (!noAssert) checkOffset(offset,
8, this.length)
10193 return ieee754.read(this, offset, false,
52,
8)
10196 function checkInt (buf, value, offset, ext, max, min) {
10197 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
10198 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10199 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10202 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
10204 offset = offset |
0
10205 byteLength = byteLength |
0
10206 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10210 this[offset] = value &
0xFF
10211 while (++i < byteLength && (mul *=
0x100)) {
10212 this[offset + i] = (value / mul) &
0xFF
10215 return offset + byteLength
10218 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
10220 offset = offset |
0
10221 byteLength = byteLength |
0
10222 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10224 var i = byteLength -
1
10226 this[offset + i] = value &
0xFF
10227 while (--i
>=
0 && (mul *=
0x100)) {
10228 this[offset + i] = (value / mul) &
0xFF
10231 return offset + byteLength
10234 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
10236 offset = offset |
0
10237 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
10238 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10239 this[offset] = value
10243 function objectWriteUInt16 (buf, value, offset, littleEndian) {
10244 if (value <
0) value =
0xffff + value +
1
10245 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
10246 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
10247 (littleEndian ? i :
1 - i) *
8
10251 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
10253 offset = offset |
0
10254 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10255 if (Buffer.TYPED_ARRAY_SUPPORT) {
10256 this[offset] = value
10257 this[offset +
1] = (value
>>> 8)
10259 objectWriteUInt16(this, value, offset, true)
10264 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
10266 offset = offset |
0
10267 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10268 if (Buffer.TYPED_ARRAY_SUPPORT) {
10269 this[offset] = (value
>>> 8)
10270 this[offset +
1] = value
10272 objectWriteUInt16(this, value, offset, false)
10277 function objectWriteUInt32 (buf, value, offset, littleEndian) {
10278 if (value <
0) value =
0xffffffff + value +
1
10279 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
10280 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
10284 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
10286 offset = offset |
0
10287 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10288 if (Buffer.TYPED_ARRAY_SUPPORT) {
10289 this[offset +
3] = (value
>>> 24)
10290 this[offset +
2] = (value
>>> 16)
10291 this[offset +
1] = (value
>>> 8)
10292 this[offset] = value
10294 objectWriteUInt32(this, value, offset, true)
10299 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
10301 offset = offset |
0
10302 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10303 if (Buffer.TYPED_ARRAY_SUPPORT) {
10304 this[offset] = (value
>>> 24)
10305 this[offset +
1] = (value
>>> 16)
10306 this[offset +
2] = (value
>>> 8)
10307 this[offset +
3] = value
10309 objectWriteUInt32(this, value, offset, false)
10314 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
10316 offset = offset |
0
10318 var limit = Math.pow(
2,
8 * byteLength -
1)
10320 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10325 var sub = value <
0 ?
1 :
0
10326 this[offset] = value &
0xFF
10327 while (++i < byteLength && (mul *=
0x100)) {
10328 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10331 return offset + byteLength
10334 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
10336 offset = offset |
0
10338 var limit = Math.pow(
2,
8 * byteLength -
1)
10340 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10343 var i = byteLength -
1
10345 var sub = value <
0 ?
1 :
0
10346 this[offset + i] = value &
0xFF
10347 while (--i
>=
0 && (mul *=
0x100)) {
10348 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10351 return offset + byteLength
10354 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
10356 offset = offset |
0
10357 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
10358 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10359 if (value <
0) value =
0xff + value +
1
10360 this[offset] = value
10364 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
10366 offset = offset |
0
10367 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10368 if (Buffer.TYPED_ARRAY_SUPPORT) {
10369 this[offset] = value
10370 this[offset +
1] = (value
>>> 8)
10372 objectWriteUInt16(this, value, offset, true)
10377 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
10379 offset = offset |
0
10380 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10381 if (Buffer.TYPED_ARRAY_SUPPORT) {
10382 this[offset] = (value
>>> 8)
10383 this[offset +
1] = value
10385 objectWriteUInt16(this, value, offset, false)
10390 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
10392 offset = offset |
0
10393 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10394 if (Buffer.TYPED_ARRAY_SUPPORT) {
10395 this[offset] = value
10396 this[offset +
1] = (value
>>> 8)
10397 this[offset +
2] = (value
>>> 16)
10398 this[offset +
3] = (value
>>> 24)
10400 objectWriteUInt32(this, value, offset, true)
10405 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
10407 offset = offset |
0
10408 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10409 if (value <
0) value =
0xffffffff + value +
1
10410 if (Buffer.TYPED_ARRAY_SUPPORT) {
10411 this[offset] = (value
>>> 24)
10412 this[offset +
1] = (value
>>> 16)
10413 this[offset +
2] = (value
>>> 8)
10414 this[offset +
3] = value
10416 objectWriteUInt32(this, value, offset, false)
10421 function checkIEEE754 (buf, value, offset, ext, max, min) {
10422 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10423 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10424 if (offset <
0) throw new RangeError('index out of range')
10427 function writeFloat (buf, value, offset, littleEndian, noAssert) {
10429 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
10431 ieee754.write(buf, value, offset, littleEndian,
23,
4)
10435 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
10436 return writeFloat(this, value, offset, true, noAssert)
10439 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
10440 return writeFloat(this, value, offset, false, noAssert)
10443 function writeDouble (buf, value, offset, littleEndian, noAssert) {
10445 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
10447 ieee754.write(buf, value, offset, littleEndian,
52,
8)
10451 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
10452 return writeDouble(this, value, offset, true, noAssert)
10455 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
10456 return writeDouble(this, value, offset, false, noAssert)
10459 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
10460 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
10461 if (!start) start =
0
10462 if (!end && end !==
0) end = this.length
10463 if (targetStart
>= target.length) targetStart = target.length
10464 if (!targetStart) targetStart =
0
10465 if (end
> 0 && end < start) end = start
10467 // Copy
0 bytes; we're done
10468 if (end === start) return
0
10469 if (target.length ===
0 || this.length ===
0) return
0
10471 // Fatal error conditions
10472 if (targetStart <
0) {
10473 throw new RangeError('targetStart out of bounds')
10475 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
10476 if (end <
0) throw new RangeError('sourceEnd out of bounds')
10479 if (end
> this.length) end = this.length
10480 if (target.length - targetStart < end - start) {
10481 end = target.length - targetStart + start
10484 var len = end - start
10487 if (this === target && start < targetStart && targetStart < end) {
10488 // descending copy from end
10489 for (i = len -
1; i
>=
0; i--) {
10490 target[i + targetStart] = this[i + start]
10492 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
10493 // ascending copy from start
10494 for (i =
0; i < len; i++) {
10495 target[i + targetStart] = this[i + start]
10498 target._set(this.subarray(start, start + len), targetStart)
10504 // fill(value, start=
0, end=buffer.length)
10505 Buffer.prototype.fill = function fill (value, start, end) {
10506 if (!value) value =
0
10507 if (!start) start =
0
10508 if (!end) end = this.length
10510 if (end < start) throw new RangeError('end < start')
10512 // Fill
0 bytes; we're done
10513 if (end === start) return
10514 if (this.length ===
0) return
10516 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
10517 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
10520 if (typeof value === 'number') {
10521 for (i = start; i < end; i++) {
10525 var bytes = utf8ToBytes(value.toString())
10526 var len = bytes.length
10527 for (i = start; i < end; i++) {
10528 this[i] = bytes[i % len]
10536 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
10537 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
10539 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
10540 if (typeof Uint8Array !== 'undefined') {
10541 if (Buffer.TYPED_ARRAY_SUPPORT) {
10542 return (new Buffer(this)).buffer
10544 var buf = new Uint8Array(this.length)
10545 for (var i =
0, len = buf.length; i < len; i +=
1) {
10551 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
10555 // HELPER FUNCTIONS
10556 // ================
10558 var BP = Buffer.prototype
10561 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
10563 Buffer._augment = function _augment (arr) {
10564 arr.constructor = Buffer
10565 arr._isBuffer = true
10567 // save reference to original Uint8Array set method before overwriting
10574 arr.write = BP.write
10575 arr.toString = BP.toString
10576 arr.toLocaleString = BP.toString
10577 arr.toJSON = BP.toJSON
10578 arr.equals = BP.equals
10579 arr.compare = BP.compare
10580 arr.indexOf = BP.indexOf
10582 arr.slice = BP.slice
10583 arr.readUIntLE = BP.readUIntLE
10584 arr.readUIntBE = BP.readUIntBE
10585 arr.readUInt8 = BP.readUInt8
10586 arr.readUInt16LE = BP.readUInt16LE
10587 arr.readUInt16BE = BP.readUInt16BE
10588 arr.readUInt32LE = BP.readUInt32LE
10589 arr.readUInt32BE = BP.readUInt32BE
10590 arr.readIntLE = BP.readIntLE
10591 arr.readIntBE = BP.readIntBE
10592 arr.readInt8 = BP.readInt8
10593 arr.readInt16LE = BP.readInt16LE
10594 arr.readInt16BE = BP.readInt16BE
10595 arr.readInt32LE = BP.readInt32LE
10596 arr.readInt32BE = BP.readInt32BE
10597 arr.readFloatLE = BP.readFloatLE
10598 arr.readFloatBE = BP.readFloatBE
10599 arr.readDoubleLE = BP.readDoubleLE
10600 arr.readDoubleBE = BP.readDoubleBE
10601 arr.writeUInt8 = BP.writeUInt8
10602 arr.writeUIntLE = BP.writeUIntLE
10603 arr.writeUIntBE = BP.writeUIntBE
10604 arr.writeUInt16LE = BP.writeUInt16LE
10605 arr.writeUInt16BE = BP.writeUInt16BE
10606 arr.writeUInt32LE = BP.writeUInt32LE
10607 arr.writeUInt32BE = BP.writeUInt32BE
10608 arr.writeIntLE = BP.writeIntLE
10609 arr.writeIntBE = BP.writeIntBE
10610 arr.writeInt8 = BP.writeInt8
10611 arr.writeInt16LE = BP.writeInt16LE
10612 arr.writeInt16BE = BP.writeInt16BE
10613 arr.writeInt32LE = BP.writeInt32LE
10614 arr.writeInt32BE = BP.writeInt32BE
10615 arr.writeFloatLE = BP.writeFloatLE
10616 arr.writeFloatBE = BP.writeFloatBE
10617 arr.writeDoubleLE = BP.writeDoubleLE
10618 arr.writeDoubleBE = BP.writeDoubleBE
10620 arr.inspect = BP.inspect
10621 arr.toArrayBuffer = BP.toArrayBuffer
10626 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
10628 function base64clean (str) {
10629 // Node strips out invalid characters like \n and \t from the string, base64-js does not
10630 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
10631 // Node converts strings with length <
2 to ''
10632 if (str.length <
2) return ''
10633 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
10634 while (str.length %
4 !==
0) {
10640 function stringtrim (str) {
10641 if (str.trim) return str.trim()
10642 return str.replace(/^\s+|\s+$/g, '')
10645 function toHex (n) {
10646 if (n <
16) return '
0' + n.toString(
16)
10647 return n.toString(
16)
10650 function utf8ToBytes (string, units) {
10651 units = units || Infinity
10653 var length = string.length
10654 var leadSurrogate = null
10657 for (var i =
0; i < length; i++) {
10658 codePoint = string.charCodeAt(i)
10660 // is surrogate component
10661 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
10662 // last char was a lead
10663 if (!leadSurrogate) {
10665 if (codePoint
> 0xDBFF) {
10666 // unexpected trail
10667 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10670 } else if (i +
1 === length) {
10672 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10677 leadSurrogate = codePoint
10682 //
2 leads in a row
10683 if (codePoint <
0xDC00) {
10684 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10685 leadSurrogate = codePoint
10689 // valid surrogate pair
10690 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
10692 } else if (leadSurrogate) {
10693 // valid bmp char, but last char was a lead
10694 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10697 leadSurrogate = null
10700 if (codePoint <
0x80) {
10701 if ((units -=
1) <
0) break
10702 bytes.push(codePoint)
10703 } else if (codePoint <
0x800) {
10704 if ((units -=
2) <
0) break
10706 codePoint
>> 0x6 |
0xC0,
10707 codePoint &
0x3F |
0x80
10709 } else if (codePoint <
0x10000) {
10710 if ((units -=
3) <
0) break
10712 codePoint
>> 0xC |
0xE0,
10713 codePoint
>> 0x6 &
0x3F |
0x80,
10714 codePoint &
0x3F |
0x80
10716 } else if (codePoint <
0x110000) {
10717 if ((units -=
4) <
0) break
10719 codePoint
>> 0x12 |
0xF0,
10720 codePoint
>> 0xC &
0x3F |
0x80,
10721 codePoint
>> 0x6 &
0x3F |
0x80,
10722 codePoint &
0x3F |
0x80
10725 throw new Error('Invalid code point')
10732 function asciiToBytes (str) {
10734 for (var i =
0; i < str.length; i++) {
10735 // Node's code seems to be doing this and not &
0x7F..
10736 byteArray.push(str.charCodeAt(i) &
0xFF)
10741 function utf16leToBytes (str, units) {
10744 for (var i =
0; i < str.length; i++) {
10745 if ((units -=
2) <
0) break
10747 c = str.charCodeAt(i)
10757 function base64ToBytes (str) {
10758 return base64.toByteArray(base64clean(str))
10761 function blitBuffer (src, dst, offset, length) {
10762 for (var i =
0; i < length; i++) {
10763 if ((i + offset
>= dst.length) || (i
>= src.length)) break
10764 dst[i + offset] = src[i]
10769 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
10770 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
10772 ;(function (exports) {
10775 var Arr = (typeof Uint8Array !== 'undefined')
10779 var PLUS = '+'.charCodeAt(
0)
10780 var SLASH = '/'.charCodeAt(
0)
10781 var NUMBER = '
0'.charCodeAt(
0)
10782 var LOWER = 'a'.charCodeAt(
0)
10783 var UPPER = 'A'.charCodeAt(
0)
10784 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
10785 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
10787 function decode (elt) {
10788 var code = elt.charCodeAt(
0)
10789 if (code === PLUS ||
10790 code === PLUS_URL_SAFE)
10792 if (code === SLASH ||
10793 code === SLASH_URL_SAFE)
10796 return -
1 //no match
10797 if (code < NUMBER +
10)
10798 return code - NUMBER +
26 +
26
10799 if (code < UPPER +
26)
10800 return code - UPPER
10801 if (code < LOWER +
26)
10802 return code - LOWER +
26
10805 function b64ToByteArray (b64) {
10806 var i, j, l, tmp, placeHolders, arr
10808 if (b64.length %
4 > 0) {
10809 throw new Error('Invalid string. Length must be a multiple of
4')
10812 // the number of equal signs (place holders)
10813 // if there are two placeholders, than the two characters before it
10814 // represent one byte
10815 // if there is only one, then the three characters before it represent
2 bytes
10816 // this is just a cheap hack to not do indexOf twice
10817 var len = b64.length
10818 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
10820 // base64 is
4/
3 + up to two characters of the original data
10821 arr = new Arr(b64.length *
3 /
4 - placeHolders)
10823 // if there are placeholders, only get up to the last complete
4 chars
10824 l = placeHolders
> 0 ? b64.length -
4 : b64.length
10828 function push (v) {
10832 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
10833 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
10834 push((tmp &
0xFF0000)
>> 16)
10835 push((tmp &
0xFF00)
>> 8)
10839 if (placeHolders ===
2) {
10840 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
10842 } else if (placeHolders ===
1) {
10843 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
10844 push((tmp
>> 8) &
0xFF)
10851 function uint8ToBase64 (uint8) {
10853 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
10857 function encode (num) {
10858 return lookup.charAt(num)
10861 function tripletToBase64 (num) {
10862 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
10865 // go through the array every three bytes, we'll deal with trailing stuff later
10866 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
10867 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
10868 output += tripletToBase64(temp)
10871 // pad the end with zeros, but make sure to not forget the extra bytes
10872 switch (extraBytes) {
10874 temp = uint8[uint8.length -
1]
10875 output += encode(temp
>> 2)
10876 output += encode((temp <<
4) &
0x3F)
10880 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
10881 output += encode(temp
>> 10)
10882 output += encode((temp
>> 4) &
0x3F)
10883 output += encode((temp <<
2) &
0x3F)
10891 exports.toByteArray = b64ToByteArray
10892 exports.fromByteArray = uint8ToBase64
10893 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
10895 },{}],
9:[function(require,module,exports){
10896 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10898 var eLen = nBytes *
8 - mLen -
1
10899 var eMax = (
1 << eLen) -
1
10900 var eBias = eMax
>> 1
10902 var i = isLE ? (nBytes -
1) :
0
10903 var d = isLE ? -
1 :
1
10904 var s = buffer[offset + i]
10908 e = s & ((
1 << (-nBits)) -
1)
10911 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10913 m = e & ((
1 << (-nBits)) -
1)
10916 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10920 } else if (e === eMax) {
10921 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10923 m = m + Math.pow(
2, mLen)
10926 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10929 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10931 var eLen = nBytes *
8 - mLen -
1
10932 var eMax = (
1 << eLen) -
1
10933 var eBias = eMax
>> 1
10934 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10935 var i = isLE ?
0 : (nBytes -
1)
10936 var d = isLE ?
1 : -
1
10937 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10939 value = Math.abs(value)
10941 if (isNaN(value) || value === Infinity) {
10942 m = isNaN(value) ?
1 :
0
10945 e = Math.floor(Math.log(value) / Math.LN2)
10946 if (value * (c = Math.pow(
2, -e)) <
1) {
10950 if (e + eBias
>=
1) {
10953 value += rt * Math.pow(
2,
1 - eBias)
10955 if (value * c
>=
2) {
10960 if (e + eBias
>= eMax) {
10963 } else if (e + eBias
>=
1) {
10964 m = (value * c -
1) * Math.pow(
2, mLen)
10967 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10972 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10974 e = (e << mLen) | m
10976 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10978 buffer[offset + i - d] |= s *
128
10981 },{}],
10:[function(require,module,exports){
10987 var isArray = Array.isArray;
10993 var str = Object.prototype.toString;
10996 * Whether or not the given `val`
11003 * isArray(arguments);
11008 * @param {mixed} val
11012 module.exports = isArray || function (val) {
11013 return !! val && '[object Array]' == str.call(val);
11016 },{}],
11:[function(require,module,exports){
11017 // Copyright Joyent, Inc. and other Node contributors.
11019 // Permission is hereby granted, free of charge, to any person obtaining a
11020 // copy of this software and associated documentation files (the
11021 // "Software"), to deal in the Software without restriction, including
11022 // without limitation the rights to use, copy, modify, merge, publish,
11023 // distribute, sublicense, and/or sell copies of the Software, and to permit
11024 // persons to whom the Software is furnished to do so, subject to the
11025 // following conditions:
11027 // The above copyright notice and this permission notice shall be included
11028 // in all copies or substantial portions of the Software.
11030 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11031 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11032 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11033 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11034 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11035 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11036 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11038 function EventEmitter() {
11039 this._events = this._events || {};
11040 this._maxListeners = this._maxListeners || undefined;
11042 module.exports = EventEmitter;
11044 // Backwards-compat with node
0.10.x
11045 EventEmitter.EventEmitter = EventEmitter;
11047 EventEmitter.prototype._events = undefined;
11048 EventEmitter.prototype._maxListeners = undefined;
11050 // By default EventEmitters will print a warning if more than
10 listeners are
11051 // added to it. This is a useful default which helps finding memory leaks.
11052 EventEmitter.defaultMaxListeners =
10;
11054 // Obviously not all Emitters should be limited to
10. This function allows
11055 // that to be increased. Set to zero for unlimited.
11056 EventEmitter.prototype.setMaxListeners = function(n) {
11057 if (!isNumber(n) || n <
0 || isNaN(n))
11058 throw TypeError('n must be a positive number');
11059 this._maxListeners = n;
11063 EventEmitter.prototype.emit = function(type) {
11064 var er, handler, len, args, i, listeners;
11069 // If there is no 'error' event listener then throw.
11070 if (type === 'error') {
11071 if (!this._events.error ||
11072 (isObject(this._events.error) && !this._events.error.length)) {
11074 if (er instanceof Error) {
11075 throw er; // Unhandled 'error' event
11077 throw TypeError('Uncaught, unspecified "error" event.');
11081 handler = this._events[type];
11083 if (isUndefined(handler))
11086 if (isFunction(handler)) {
11087 switch (arguments.length) {
11090 handler.call(this);
11093 handler.call(this, arguments[
1]);
11096 handler.call(this, arguments[
1], arguments[
2]);
11100 len = arguments.length;
11101 args = new Array(len -
1);
11102 for (i =
1; i < len; i++)
11103 args[i -
1] = arguments[i];
11104 handler.apply(this, args);
11106 } else if (isObject(handler)) {
11107 len = arguments.length;
11108 args = new Array(len -
1);
11109 for (i =
1; i < len; i++)
11110 args[i -
1] = arguments[i];
11112 listeners = handler.slice();
11113 len = listeners.length;
11114 for (i =
0; i < len; i++)
11115 listeners[i].apply(this, args);
11121 EventEmitter.prototype.addListener = function(type, listener) {
11124 if (!isFunction(listener))
11125 throw TypeError('listener must be a function');
11130 // To avoid recursion in the case that type === "newListener"! Before
11131 // adding it to the listeners, first emit "newListener".
11132 if (this._events.newListener)
11133 this.emit('newListener', type,
11134 isFunction(listener.listener) ?
11135 listener.listener : listener);
11137 if (!this._events[type])
11138 // Optimize the case of one listener. Don't need the extra array object.
11139 this._events[type] = listener;
11140 else if (isObject(this._events[type]))
11141 // If we've already got an array, just append.
11142 this._events[type].push(listener);
11144 // Adding the second element, need to change to array.
11145 this._events[type] = [this._events[type], listener];
11147 // Check for listener leak
11148 if (isObject(this._events[type]) && !this._events[type].warned) {
11150 if (!isUndefined(this._maxListeners)) {
11151 m = this._maxListeners;
11153 m = EventEmitter.defaultMaxListeners;
11156 if (m && m
> 0 && this._events[type].length
> m) {
11157 this._events[type].warned = true;
11158 console.error('(node) warning: possible EventEmitter memory ' +
11159 'leak detected. %d listeners added. ' +
11160 'Use emitter.setMaxListeners() to increase limit.',
11161 this._events[type].length);
11162 if (typeof console.trace === 'function') {
11163 // not supported in IE
10
11172 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
11174 EventEmitter.prototype.once = function(type, listener) {
11175 if (!isFunction(listener))
11176 throw TypeError('listener must be a function');
11181 this.removeListener(type, g);
11185 listener.apply(this, arguments);
11189 g.listener = listener;
11195 // emits a 'removeListener' event iff the listener was removed
11196 EventEmitter.prototype.removeListener = function(type, listener) {
11197 var list, position, length, i;
11199 if (!isFunction(listener))
11200 throw TypeError('listener must be a function');
11202 if (!this._events || !this._events[type])
11205 list = this._events[type];
11206 length = list.length;
11209 if (list === listener ||
11210 (isFunction(list.listener) && list.listener === listener)) {
11211 delete this._events[type];
11212 if (this._events.removeListener)
11213 this.emit('removeListener', type, listener);
11215 } else if (isObject(list)) {
11216 for (i = length; i--
> 0;) {
11217 if (list[i] === listener ||
11218 (list[i].listener && list[i].listener === listener)) {
11227 if (list.length ===
1) {
11229 delete this._events[type];
11231 list.splice(position,
1);
11234 if (this._events.removeListener)
11235 this.emit('removeListener', type, listener);
11241 EventEmitter.prototype.removeAllListeners = function(type) {
11242 var key, listeners;
11247 // not listening for removeListener, no need to emit
11248 if (!this._events.removeListener) {
11249 if (arguments.length ===
0)
11251 else if (this._events[type])
11252 delete this._events[type];
11256 // emit removeListener for all listeners on all events
11257 if (arguments.length ===
0) {
11258 for (key in this._events) {
11259 if (key === 'removeListener') continue;
11260 this.removeAllListeners(key);
11262 this.removeAllListeners('removeListener');
11267 listeners = this._events[type];
11269 if (isFunction(listeners)) {
11270 this.removeListener(type, listeners);
11273 while (listeners.length)
11274 this.removeListener(type, listeners[listeners.length -
1]);
11276 delete this._events[type];
11281 EventEmitter.prototype.listeners = function(type) {
11283 if (!this._events || !this._events[type])
11285 else if (isFunction(this._events[type]))
11286 ret = [this._events[type]];
11288 ret = this._events[type].slice();
11292 EventEmitter.listenerCount = function(emitter, type) {
11294 if (!emitter._events || !emitter._events[type])
11296 else if (isFunction(emitter._events[type]))
11299 ret = emitter._events[type].length;
11303 function isFunction(arg) {
11304 return typeof arg === 'function';
11307 function isNumber(arg) {
11308 return typeof arg === 'number';
11311 function isObject(arg) {
11312 return typeof arg === 'object' && arg !== null;
11315 function isUndefined(arg) {
11316 return arg === void
0;
11319 },{}],
12:[function(require,module,exports){
11320 if (typeof Object.create === 'function') {
11321 // implementation from standard node.js 'util' module
11322 module.exports = function inherits(ctor, superCtor) {
11323 ctor.super_ = superCtor
11324 ctor.prototype = Object.create(superCtor.prototype, {
11334 // old school shim for old browsers
11335 module.exports = function inherits(ctor, superCtor) {
11336 ctor.super_ = superCtor
11337 var TempCtor = function () {}
11338 TempCtor.prototype = superCtor.prototype
11339 ctor.prototype = new TempCtor()
11340 ctor.prototype.constructor = ctor
11344 },{}],
13:[function(require,module,exports){
11345 module.exports = Array.isArray || function (arr) {
11346 return Object.prototype.toString.call(arr) == '[object Array]';
11349 },{}],
14:[function(require,module,exports){
11350 // shim for using process in browser
11352 var process = module.exports = {};
11354 var draining = false;
11356 var queueIndex = -
1;
11358 function cleanUpNextTick() {
11360 if (currentQueue.length) {
11361 queue = currentQueue.concat(queue);
11365 if (queue.length) {
11370 function drainQueue() {
11374 var timeout = setTimeout(cleanUpNextTick);
11377 var len = queue.length;
11379 currentQueue = queue;
11381 while (++queueIndex < len) {
11382 currentQueue[queueIndex].run();
11385 len = queue.length;
11387 currentQueue = null;
11389 clearTimeout(timeout);
11392 process.nextTick = function (fun) {
11393 var args = new Array(arguments.length -
1);
11394 if (arguments.length
> 1) {
11395 for (var i =
1; i < arguments.length; i++) {
11396 args[i -
1] = arguments[i];
11399 queue.push(new Item(fun, args));
11400 if (queue.length ===
1 && !draining) {
11401 setTimeout(drainQueue,
0);
11405 // v8 likes predictible objects
11406 function Item(fun, array) {
11408 this.array = array;
11410 Item.prototype.run = function () {
11411 this.fun.apply(null, this.array);
11413 process.title = 'browser';
11414 process.browser = true;
11417 process.version = ''; // empty string to avoid regexp issues
11418 process.versions = {};
11423 process.addListener = noop;
11424 process.once = noop;
11425 process.off = noop;
11426 process.removeListener = noop;
11427 process.removeAllListeners = noop;
11428 process.emit = noop;
11430 process.binding = function (name) {
11431 throw new Error('process.binding is not supported');
11435 process.cwd = function () { return '/' };
11436 process.chdir = function (dir) {
11437 throw new Error('process.chdir is not supported');
11439 process.umask = function() { return
0; };
11441 },{}],
15:[function(require,module,exports){
11442 module.exports = require(
"./lib/_stream_duplex.js")
11444 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
11445 (function (process){
11446 // Copyright Joyent, Inc. and other Node contributors.
11448 // Permission is hereby granted, free of charge, to any person obtaining a
11449 // copy of this software and associated documentation files (the
11450 //
"Software"), to deal in the Software without restriction, including
11451 // without limitation the rights to use, copy, modify, merge, publish,
11452 // distribute, sublicense, and/or sell copies of the Software, and to permit
11453 // persons to whom the Software is furnished to do so, subject to the
11454 // following conditions:
11456 // The above copyright notice and this permission notice shall be included
11457 // in all copies or substantial portions of the Software.
11459 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11460 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11461 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11462 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11463 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11464 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11465 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11467 // a duplex stream is just a stream that is both readable and writable.
11468 // Since JS doesn't have multiple prototypal inheritance, this class
11469 // prototypally inherits from Readable, and then parasitically from
11472 module.exports = Duplex;
11475 var objectKeys = Object.keys || function (obj) {
11477 for (var key in obj) keys.push(key);
11484 var util = require('core-util-is');
11485 util.inherits = require('inherits');
11488 var Readable = require('./_stream_readable');
11489 var Writable = require('./_stream_writable');
11491 util.inherits(Duplex, Readable);
11493 forEach(objectKeys(Writable.prototype), function(method) {
11494 if (!Duplex.prototype[method])
11495 Duplex.prototype[method] = Writable.prototype[method];
11498 function Duplex(options) {
11499 if (!(this instanceof Duplex))
11500 return new Duplex(options);
11502 Readable.call(this, options);
11503 Writable.call(this, options);
11505 if (options && options.readable === false)
11506 this.readable = false;
11508 if (options && options.writable === false)
11509 this.writable = false;
11511 this.allowHalfOpen = true;
11512 if (options && options.allowHalfOpen === false)
11513 this.allowHalfOpen = false;
11515 this.once('end', onend);
11518 // the no-half-open enforcer
11520 // if we allow half-open state, or if the writable side ended,
11522 if (this.allowHalfOpen || this._writableState.ended)
11525 // no more data can be written.
11526 // But allow more writes to happen in this tick.
11527 process.nextTick(this.end.bind(this));
11530 function forEach (xs, f) {
11531 for (var i =
0, l = xs.length; i < l; i++) {
11536 }).call(this,require('_process'))
11537 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
11538 // Copyright Joyent, Inc. and other Node contributors.
11540 // Permission is hereby granted, free of charge, to any person obtaining a
11541 // copy of this software and associated documentation files (the
11542 // "Software"), to deal in the Software without restriction, including
11543 // without limitation the rights to use, copy, modify, merge, publish,
11544 // distribute, sublicense, and/or sell copies of the Software, and to permit
11545 // persons to whom the Software is furnished to do so, subject to the
11546 // following conditions:
11548 // The above copyright notice and this permission notice shall be included
11549 // in all copies or substantial portions of the Software.
11551 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11552 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11553 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11554 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11555 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11556 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11557 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11559 // a passthrough stream.
11560 // basically just the most minimal sort of Transform stream.
11561 // Every written chunk gets output as-is.
11563 module.exports = PassThrough;
11565 var Transform = require('./_stream_transform');
11568 var util = require('core-util-is');
11569 util.inherits = require('inherits');
11572 util.inherits(PassThrough, Transform);
11574 function PassThrough(options) {
11575 if (!(this instanceof PassThrough))
11576 return new PassThrough(options);
11578 Transform.call(this, options);
11581 PassThrough.prototype._transform = function(chunk, encoding, cb) {
11585 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
11586 (function (process){
11587 // Copyright Joyent, Inc. and other Node contributors.
11589 // Permission is hereby granted, free of charge, to any person obtaining a
11590 // copy of this software and associated documentation files (the
11591 // "Software"), to deal in the Software without restriction, including
11592 // without limitation the rights to use, copy, modify, merge, publish,
11593 // distribute, sublicense, and/or sell copies of the Software, and to permit
11594 // persons to whom the Software is furnished to do so, subject to the
11595 // following conditions:
11597 // The above copyright notice and this permission notice shall be included
11598 // in all copies or substantial portions of the Software.
11600 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11601 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11602 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11603 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11604 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11605 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11606 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11608 module.exports = Readable;
11611 var isArray = require('isarray');
11616 var Buffer = require('buffer').Buffer;
11619 Readable.ReadableState = ReadableState;
11621 var EE = require('events').EventEmitter;
11624 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
11625 return emitter.listeners(type).length;
11629 var Stream = require('stream');
11632 var util = require('core-util-is');
11633 util.inherits = require('inherits');
11640 var debug = require('util');
11641 if (debug && debug.debuglog) {
11642 debug = debug.debuglog('stream');
11644 debug = function () {};
11649 util.inherits(Readable, Stream);
11651 function ReadableState(options, stream) {
11652 var Duplex = require('./_stream_duplex');
11654 options = options || {};
11656 // the point at which it stops calling _read() to fill the buffer
11657 // Note:
0 is a valid value, means "don't call _read preemptively ever"
11658 var hwm = options.highWaterMark;
11659 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
11660 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
11663 this.highWaterMark = ~~this.highWaterMark;
11668 this.pipesCount =
0;
11669 this.flowing = null;
11670 this.ended = false;
11671 this.endEmitted = false;
11672 this.reading = false;
11674 // a flag to be able to tell if the onwrite cb is called immediately,
11675 // or on a later tick. We set this to true at first, because any
11676 // actions that shouldn't happen until "later" should generally also
11677 // not happen before the first write call.
11680 // whenever we return null, then we set a flag to say
11681 // that we're awaiting a 'readable' event emission.
11682 this.needReadable = false;
11683 this.emittedReadable = false;
11684 this.readableListening = false;
11687 // object stream flag. Used to make read(n) ignore n and to
11688 // make all the buffer merging and length checks go away
11689 this.objectMode = !!options.objectMode;
11691 if (stream instanceof Duplex)
11692 this.objectMode = this.objectMode || !!options.readableObjectMode;
11694 // Crypto is kind of old and crusty. Historically, its default string
11695 // encoding is 'binary' so we have to make this configurable.
11696 // Everything else in the universe uses 'utf8', though.
11697 this.defaultEncoding = options.defaultEncoding || 'utf8';
11699 // when piping, we only care about 'readable' events that happen
11700 // after read()ing all the bytes and not getting any pushback.
11701 this.ranOut = false;
11703 // the number of writers that are awaiting a drain event in .pipe()s
11704 this.awaitDrain =
0;
11706 // if true, a maybeReadMore has been scheduled
11707 this.readingMore = false;
11709 this.decoder = null;
11710 this.encoding = null;
11711 if (options.encoding) {
11712 if (!StringDecoder)
11713 StringDecoder = require('string_decoder/').StringDecoder;
11714 this.decoder = new StringDecoder(options.encoding);
11715 this.encoding = options.encoding;
11719 function Readable(options) {
11720 var Duplex = require('./_stream_duplex');
11722 if (!(this instanceof Readable))
11723 return new Readable(options);
11725 this._readableState = new ReadableState(options, this);
11728 this.readable = true;
11733 // Manually shove something into the read() buffer.
11734 // This returns true if the highWaterMark has not been hit yet,
11735 // similar to how Writable.write() returns true if you should
11736 // write() some more.
11737 Readable.prototype.push = function(chunk, encoding) {
11738 var state = this._readableState;
11740 if (util.isString(chunk) && !state.objectMode) {
11741 encoding = encoding || state.defaultEncoding;
11742 if (encoding !== state.encoding) {
11743 chunk = new Buffer(chunk, encoding);
11748 return readableAddChunk(this, state, chunk, encoding, false);
11751 // Unshift should *always* be something directly out of read()
11752 Readable.prototype.unshift = function(chunk) {
11753 var state = this._readableState;
11754 return readableAddChunk(this, state, chunk, '', true);
11757 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
11758 var er = chunkInvalid(state, chunk);
11760 stream.emit('error', er);
11761 } else if (util.isNullOrUndefined(chunk)) {
11762 state.reading = false;
11764 onEofChunk(stream, state);
11765 } else if (state.objectMode || chunk && chunk.length
> 0) {
11766 if (state.ended && !addToFront) {
11767 var e = new Error('stream.push() after EOF');
11768 stream.emit('error', e);
11769 } else if (state.endEmitted && addToFront) {
11770 var e = new Error('stream.unshift() after end event');
11771 stream.emit('error', e);
11773 if (state.decoder && !addToFront && !encoding)
11774 chunk = state.decoder.write(chunk);
11777 state.reading = false;
11779 // if we want the data now, just emit it.
11780 if (state.flowing && state.length ===
0 && !state.sync) {
11781 stream.emit('data', chunk);
11784 // update the buffer info.
11785 state.length += state.objectMode ?
1 : chunk.length;
11787 state.buffer.unshift(chunk);
11789 state.buffer.push(chunk);
11791 if (state.needReadable)
11792 emitReadable(stream);
11795 maybeReadMore(stream, state);
11797 } else if (!addToFront) {
11798 state.reading = false;
11801 return needMoreData(state);
11806 // if it's past the high water mark, we can push in some more.
11807 // Also, if we have no data yet, we can stand some
11808 // more bytes. This is to work around cases where hwm=
0,
11809 // such as the repl. Also, if the push() triggered a
11810 // readable event, and the user called read(largeNumber) such that
11811 // needReadable was set, then we ought to push more, so that another
11812 // 'readable' event will be triggered.
11813 function needMoreData(state) {
11814 return !state.ended &&
11815 (state.needReadable ||
11816 state.length < state.highWaterMark ||
11817 state.length ===
0);
11820 // backwards compatibility.
11821 Readable.prototype.setEncoding = function(enc) {
11822 if (!StringDecoder)
11823 StringDecoder = require('string_decoder/').StringDecoder;
11824 this._readableState.decoder = new StringDecoder(enc);
11825 this._readableState.encoding = enc;
11829 // Don't raise the hwm
> 128MB
11830 var MAX_HWM =
0x800000;
11831 function roundUpToNextPowerOf2(n) {
11832 if (n
>= MAX_HWM) {
11835 // Get the next highest power of
2
11837 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
11843 function howMuchToRead(n, state) {
11844 if (state.length ===
0 && state.ended)
11847 if (state.objectMode)
11848 return n ===
0 ?
0 :
1;
11850 if (isNaN(n) || util.isNull(n)) {
11851 // only flow one buffer at a time
11852 if (state.flowing && state.buffer.length)
11853 return state.buffer[
0].length;
11855 return state.length;
11861 // If we're asking for more than the target buffer level,
11862 // then raise the water mark. Bump up to the next highest
11863 // power of
2, to prevent increasing it excessively in tiny
11865 if (n
> state.highWaterMark)
11866 state.highWaterMark = roundUpToNextPowerOf2(n);
11868 // don't have that much. return null, unless we've ended.
11869 if (n
> state.length) {
11870 if (!state.ended) {
11871 state.needReadable = true;
11874 return state.length;
11880 // you can override either this method, or the async _read(n) below.
11881 Readable.prototype.read = function(n) {
11883 var state = this._readableState;
11886 if (!util.isNumber(n) || n
> 0)
11887 state.emittedReadable = false;
11889 // if we're doing read(
0) to trigger a readable event, but we
11890 // already have a bunch of data in the buffer, then just trigger
11891 // the 'readable' event and move on.
11893 state.needReadable &&
11894 (state.length
>= state.highWaterMark || state.ended)) {
11895 debug('read: emitReadable', state.length, state.ended);
11896 if (state.length ===
0 && state.ended)
11899 emitReadable(this);
11903 n = howMuchToRead(n, state);
11905 // if we've ended, and we're now clear, then finish it up.
11906 if (n ===
0 && state.ended) {
11907 if (state.length ===
0)
11912 // All the actual chunk generation logic needs to be
11913 // *below* the call to _read. The reason is that in certain
11914 // synthetic stream cases, such as passthrough streams, _read
11915 // may be a completely synchronous operation which may change
11916 // the state of the read buffer, providing enough data when
11917 // before there was *not* enough.
11919 // So, the steps are:
11920 //
1. Figure out what the state of things will be after we do
11921 // a read from the buffer.
11923 //
2. If that resulting state will trigger a _read, then call _read.
11924 // Note that this may be asynchronous, or synchronous. Yes, it is
11925 // deeply ugly to write APIs this way, but that still doesn't mean
11926 // that the Readable class should behave improperly, as streams are
11927 // designed to be sync/async agnostic.
11928 // Take note if the _read call is sync or async (ie, if the read call
11929 // has returned yet), so that we know whether or not it's safe to emit
11932 //
3. Actually pull the requested chunks out of the buffer and return.
11934 // if we need a readable event, then we need to do some reading.
11935 var doRead = state.needReadable;
11936 debug('need readable', doRead);
11938 // if we currently have less than the highWaterMark, then also read some
11939 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11941 debug('length less than watermark', doRead);
11944 // however, if we've ended, then there's no point, and if we're already
11945 // reading, then it's unnecessary.
11946 if (state.ended || state.reading) {
11948 debug('reading or ended', doRead);
11953 state.reading = true;
11955 // if the length is currently zero, then we *need* a readable event.
11956 if (state.length ===
0)
11957 state.needReadable = true;
11958 // call internal read method
11959 this._read(state.highWaterMark);
11960 state.sync = false;
11963 // If _read pushed data synchronously, then `reading` will be false,
11964 // and we need to re-evaluate how much data we can return to the user.
11965 if (doRead && !state.reading)
11966 n = howMuchToRead(nOrig, state);
11970 ret = fromList(n, state);
11974 if (util.isNull(ret)) {
11975 state.needReadable = true;
11981 // If we have nothing in the buffer, then we want to know
11982 // as soon as we *do* get something into the buffer.
11983 if (state.length ===
0 && !state.ended)
11984 state.needReadable = true;
11986 // If we tried to read() past the EOF, then emit end on the next tick.
11987 if (nOrig !== n && state.ended && state.length ===
0)
11990 if (!util.isNull(ret))
11991 this.emit('data', ret);
11996 function chunkInvalid(state, chunk) {
11998 if (!util.isBuffer(chunk) &&
11999 !util.isString(chunk) &&
12000 !util.isNullOrUndefined(chunk) &&
12001 !state.objectMode) {
12002 er = new TypeError('Invalid non-string/buffer chunk');
12008 function onEofChunk(stream, state) {
12009 if (state.decoder && !state.ended) {
12010 var chunk = state.decoder.end();
12011 if (chunk && chunk.length) {
12012 state.buffer.push(chunk);
12013 state.length += state.objectMode ?
1 : chunk.length;
12016 state.ended = true;
12018 // emit 'readable' now to make sure it gets picked up.
12019 emitReadable(stream);
12022 // Don't emit readable right away in sync mode, because this can trigger
12023 // another read() call =
> stack overflow. This way, it might trigger
12024 // a nextTick recursion warning, but that's not so bad.
12025 function emitReadable(stream) {
12026 var state = stream._readableState;
12027 state.needReadable = false;
12028 if (!state.emittedReadable) {
12029 debug('emitReadable', state.flowing);
12030 state.emittedReadable = true;
12032 process.nextTick(function() {
12033 emitReadable_(stream);
12036 emitReadable_(stream);
12040 function emitReadable_(stream) {
12041 debug('emit readable');
12042 stream.emit('readable');
12047 // at this point, the user has presumably seen the 'readable' event,
12048 // and called read() to consume some data. that may have triggered
12049 // in turn another _read(n) call, in which case reading = true if
12050 // it's in progress.
12051 // However, if we're not ended, or reading, and the length < hwm,
12052 // then go ahead and try to read some more preemptively.
12053 function maybeReadMore(stream, state) {
12054 if (!state.readingMore) {
12055 state.readingMore = true;
12056 process.nextTick(function() {
12057 maybeReadMore_(stream, state);
12062 function maybeReadMore_(stream, state) {
12063 var len = state.length;
12064 while (!state.reading && !state.flowing && !state.ended &&
12065 state.length < state.highWaterMark) {
12066 debug('maybeReadMore read
0');
12068 if (len === state.length)
12069 // didn't get any data, stop spinning.
12072 len = state.length;
12074 state.readingMore = false;
12077 // abstract method. to be overridden in specific implementation classes.
12078 // call cb(er, data) where data is <= n in length.
12079 // for virtual (non-string, non-buffer) streams, "length" is somewhat
12080 // arbitrary, and perhaps not very meaningful.
12081 Readable.prototype._read = function(n) {
12082 this.emit('error', new Error('not implemented'));
12085 Readable.prototype.pipe = function(dest, pipeOpts) {
12087 var state = this._readableState;
12089 switch (state.pipesCount) {
12091 state.pipes = dest;
12094 state.pipes = [state.pipes, dest];
12097 state.pipes.push(dest);
12100 state.pipesCount +=
1;
12101 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
12103 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
12104 dest !== process.stdout &&
12105 dest !== process.stderr;
12107 var endFn = doEnd ? onend : cleanup;
12108 if (state.endEmitted)
12109 process.nextTick(endFn);
12111 src.once('end', endFn);
12113 dest.on('unpipe', onunpipe);
12114 function onunpipe(readable) {
12116 if (readable === src) {
12126 // when the dest drains, it reduces the awaitDrain counter
12127 // on the source. This would be more elegant with a .once()
12128 // handler in flow(), but adding and removing repeatedly is
12130 var ondrain = pipeOnDrain(src);
12131 dest.on('drain', ondrain);
12133 function cleanup() {
12135 // cleanup event handlers once the pipe is broken
12136 dest.removeListener('close', onclose);
12137 dest.removeListener('finish', onfinish);
12138 dest.removeListener('drain', ondrain);
12139 dest.removeListener('error', onerror);
12140 dest.removeListener('unpipe', onunpipe);
12141 src.removeListener('end', onend);
12142 src.removeListener('end', cleanup);
12143 src.removeListener('data', ondata);
12145 // if the reader is waiting for a drain event from this
12146 // specific writer, then it would cause it to never start
12148 // So, if this is awaiting a drain, then we just call it now.
12149 // If we don't know, then assume that we are waiting for one.
12150 if (state.awaitDrain &&
12151 (!dest._writableState || dest._writableState.needDrain))
12155 src.on('data', ondata);
12156 function ondata(chunk) {
12158 var ret = dest.write(chunk);
12159 if (false === ret) {
12160 debug('false write response, pause',
12161 src._readableState.awaitDrain);
12162 src._readableState.awaitDrain++;
12167 // if the dest has an error, then stop piping into it.
12168 // however, don't suppress the throwing behavior for this.
12169 function onerror(er) {
12170 debug('onerror', er);
12172 dest.removeListener('error', onerror);
12173 if (EE.listenerCount(dest, 'error') ===
0)
12174 dest.emit('error', er);
12176 // This is a brutally ugly hack to make sure that our error handler
12177 // is attached before any userland ones. NEVER DO THIS.
12178 if (!dest._events || !dest._events.error)
12179 dest.on('error', onerror);
12180 else if (isArray(dest._events.error))
12181 dest._events.error.unshift(onerror);
12183 dest._events.error = [onerror, dest._events.error];
12187 // Both close and finish should trigger unpipe, but only once.
12188 function onclose() {
12189 dest.removeListener('finish', onfinish);
12192 dest.once('close', onclose);
12193 function onfinish() {
12195 dest.removeListener('close', onclose);
12198 dest.once('finish', onfinish);
12200 function unpipe() {
12205 // tell the dest that it's being piped to
12206 dest.emit('pipe', src);
12208 // start the flow if it hasn't been started already.
12209 if (!state.flowing) {
12210 debug('pipe resume');
12217 function pipeOnDrain(src) {
12218 return function() {
12219 var state = src._readableState;
12220 debug('pipeOnDrain', state.awaitDrain);
12221 if (state.awaitDrain)
12222 state.awaitDrain--;
12223 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
12224 state.flowing = true;
12231 Readable.prototype.unpipe = function(dest) {
12232 var state = this._readableState;
12234 // if we're not piping anywhere, then do nothing.
12235 if (state.pipesCount ===
0)
12238 // just one destination. most common case.
12239 if (state.pipesCount ===
1) {
12240 // passed in one, but it's not the right one.
12241 if (dest && dest !== state.pipes)
12245 dest = state.pipes;
12248 state.pipes = null;
12249 state.pipesCount =
0;
12250 state.flowing = false;
12252 dest.emit('unpipe', this);
12256 // slow case. multiple pipe destinations.
12260 var dests = state.pipes;
12261 var len = state.pipesCount;
12262 state.pipes = null;
12263 state.pipesCount =
0;
12264 state.flowing = false;
12266 for (var i =
0; i < len; i++)
12267 dests[i].emit('unpipe', this);
12271 // try to find the right one.
12272 var i = indexOf(state.pipes, dest);
12276 state.pipes.splice(i,
1);
12277 state.pipesCount -=
1;
12278 if (state.pipesCount ===
1)
12279 state.pipes = state.pipes[
0];
12281 dest.emit('unpipe', this);
12286 // set up data events if they are asked for
12287 // Ensure readable listeners eventually get something
12288 Readable.prototype.on = function(ev, fn) {
12289 var res = Stream.prototype.on.call(this, ev, fn);
12291 // If listening to data, and it has not explicitly been paused,
12292 // then call resume to start the flow of data on the next tick.
12293 if (ev === 'data' && false !== this._readableState.flowing) {
12297 if (ev === 'readable' && this.readable) {
12298 var state = this._readableState;
12299 if (!state.readableListening) {
12300 state.readableListening = true;
12301 state.emittedReadable = false;
12302 state.needReadable = true;
12303 if (!state.reading) {
12305 process.nextTick(function() {
12306 debug('readable nexttick read
0');
12309 } else if (state.length) {
12310 emitReadable(this, state);
12317 Readable.prototype.addListener = Readable.prototype.on;
12319 // pause() and resume() are remnants of the legacy readable stream API
12320 // If the user uses them, then switch into old mode.
12321 Readable.prototype.resume = function() {
12322 var state = this._readableState;
12323 if (!state.flowing) {
12325 state.flowing = true;
12326 if (!state.reading) {
12327 debug('resume read
0');
12330 resume(this, state);
12335 function resume(stream, state) {
12336 if (!state.resumeScheduled) {
12337 state.resumeScheduled = true;
12338 process.nextTick(function() {
12339 resume_(stream, state);
12344 function resume_(stream, state) {
12345 state.resumeScheduled = false;
12346 stream.emit('resume');
12348 if (state.flowing && !state.reading)
12352 Readable.prototype.pause = function() {
12353 debug('call pause flowing=%j', this._readableState.flowing);
12354 if (false !== this._readableState.flowing) {
12356 this._readableState.flowing = false;
12357 this.emit('pause');
12362 function flow(stream) {
12363 var state = stream._readableState;
12364 debug('flow', state.flowing);
12365 if (state.flowing) {
12367 var chunk = stream.read();
12368 } while (null !== chunk && state.flowing);
12372 // wrap an old-style stream as the async data source.
12373 // This is *not* part of the readable stream interface.
12374 // It is an ugly unfortunate mess of history.
12375 Readable.prototype.wrap = function(stream) {
12376 var state = this._readableState;
12377 var paused = false;
12380 stream.on('end', function() {
12381 debug('wrapped end');
12382 if (state.decoder && !state.ended) {
12383 var chunk = state.decoder.end();
12384 if (chunk && chunk.length)
12391 stream.on('data', function(chunk) {
12392 debug('wrapped data');
12394 chunk = state.decoder.write(chunk);
12395 if (!chunk || !state.objectMode && !chunk.length)
12398 var ret = self.push(chunk);
12405 // proxy all the other methods.
12406 // important when wrapping filters and duplexes.
12407 for (var i in stream) {
12408 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
12409 this[i] = function(method) { return function() {
12410 return stream[method].apply(stream, arguments);
12415 // proxy certain important events.
12416 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
12417 forEach(events, function(ev) {
12418 stream.on(ev, self.emit.bind(self, ev));
12421 // when we try to consume some more bytes, simply unpause the
12422 // underlying stream.
12423 self._read = function(n) {
12424 debug('wrapped _read', n);
12436 // exposed for testing purposes only.
12437 Readable._fromList = fromList;
12439 // Pluck off n bytes from an array of buffers.
12440 // Length is the combined lengths of all the buffers in the list.
12441 function fromList(n, state) {
12442 var list = state.buffer;
12443 var length = state.length;
12444 var stringMode = !!state.decoder;
12445 var objectMode = !!state.objectMode;
12448 // nothing in the list, definitely empty.
12449 if (list.length ===
0)
12454 else if (objectMode)
12455 ret = list.shift();
12456 else if (!n || n
>= length) {
12457 // read it all, truncate the array.
12459 ret = list.join('');
12461 ret = Buffer.concat(list, length);
12464 // read just some of it.
12465 if (n < list[
0].length) {
12466 // just take a part of the first list item.
12467 // slice is the same for buffers and strings.
12469 ret = buf.slice(
0, n);
12470 list[
0] = buf.slice(n);
12471 } else if (n === list[
0].length) {
12472 // first list is a perfect match
12473 ret = list.shift();
12476 // we have enough to cover it, but it spans past the first buffer.
12480 ret = new Buffer(n);
12483 for (var i =
0, l = list.length; i < l && c < n; i++) {
12485 var cpy = Math.min(n - c, buf.length);
12488 ret += buf.slice(
0, cpy);
12490 buf.copy(ret, c,
0, cpy);
12492 if (cpy < buf.length)
12493 list[
0] = buf.slice(cpy);
12505 function endReadable(stream) {
12506 var state = stream._readableState;
12508 // If we get here before consuming all the bytes, then that is a
12509 // bug in node. Should never happen.
12510 if (state.length
> 0)
12511 throw new Error('endReadable called on non-empty stream');
12513 if (!state.endEmitted) {
12514 state.ended = true;
12515 process.nextTick(function() {
12516 // Check that we didn't get one last unshift.
12517 if (!state.endEmitted && state.length ===
0) {
12518 state.endEmitted = true;
12519 stream.readable = false;
12520 stream.emit('end');
12526 function forEach (xs, f) {
12527 for (var i =
0, l = xs.length; i < l; i++) {
12532 function indexOf (xs, x) {
12533 for (var i =
0, l = xs.length; i < l; i++) {
12534 if (xs[i] === x) return i;
12539 }).call(this,require('_process'))
12540 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"events":
11,
"inherits":
12,
"isarray":
13,
"stream":
26,
"string_decoder/":
27,
"util":
6}],
19:[function(require,module,exports){
12541 // Copyright Joyent, Inc. and other Node contributors.
12543 // Permission is hereby granted, free of charge, to any person obtaining a
12544 // copy of this software and associated documentation files (the
12545 //
"Software"), to deal in the Software without restriction, including
12546 // without limitation the rights to use, copy, modify, merge, publish,
12547 // distribute, sublicense, and/or sell copies of the Software, and to permit
12548 // persons to whom the Software is furnished to do so, subject to the
12549 // following conditions:
12551 // The above copyright notice and this permission notice shall be included
12552 // in all copies or substantial portions of the Software.
12554 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12555 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12556 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12557 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12558 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12559 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12560 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12563 // a transform stream is a readable/writable stream where you do
12564 // something with the data. Sometimes it's called a
"filter",
12565 // but that's not a great name for it, since that implies a thing where
12566 // some bits pass through, and others are simply ignored. (That would
12567 // be a valid example of a transform, of course.)
12569 // While the output is causally related to the input, it's not a
12570 // necessarily symmetric or synchronous transformation. For example,
12571 // a zlib stream might take multiple plain-text writes(), and then
12572 // emit a single compressed chunk some time in the future.
12574 // Here's how this works:
12576 // The Transform stream has all the aspects of the readable and writable
12577 // stream classes. When you write(chunk), that calls _write(chunk,cb)
12578 // internally, and returns false if there's a lot of pending writes
12579 // buffered up. When you call read(), that calls _read(n) until
12580 // there's enough pending readable data buffered up.
12582 // In a transform stream, the written data is placed in a buffer. When
12583 // _read(n) is called, it transforms the queued up data, calling the
12584 // buffered _write cb's as it consumes chunks. If consuming a single
12585 // written chunk would result in multiple output chunks, then the first
12586 // outputted bit calls the readcb, and subsequent chunks just go into
12587 // the read buffer, and will cause it to emit 'readable' if necessary.
12589 // This way, back-pressure is actually determined by the reading side,
12590 // since _read has to be called to start processing a new chunk. However,
12591 // a pathological inflate type of transform can cause excessive buffering
12592 // here. For example, imagine a stream where every byte of input is
12593 // interpreted as an integer from
0-
255, and then results in that many
12594 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
12595 //
1kb of data being output. In this case, you could write a very small
12596 // amount of input, and end up with a very large amount of output. In
12597 // such a pathological inflating mechanism, there'd be no way to tell
12598 // the system to stop doing the transform. A single
4MB write could
12599 // cause the system to run out of memory.
12601 // However, even in such a pathological case, only a single written chunk
12602 // would be consumed, and then the rest would wait (un-transformed) until
12603 // the results of the previous transformed chunk were consumed.
12605 module.exports = Transform;
12607 var Duplex = require('./_stream_duplex');
12610 var util = require('core-util-is');
12611 util.inherits = require('inherits');
12614 util.inherits(Transform, Duplex);
12617 function TransformState(options, stream) {
12618 this.afterTransform = function(er, data) {
12619 return afterTransform(stream, er, data);
12622 this.needTransform = false;
12623 this.transforming = false;
12624 this.writecb = null;
12625 this.writechunk = null;
12628 function afterTransform(stream, er, data) {
12629 var ts = stream._transformState;
12630 ts.transforming = false;
12632 var cb = ts.writecb;
12635 return stream.emit('error', new Error('no writecb in Transform class'));
12637 ts.writechunk = null;
12640 if (!util.isNullOrUndefined(data))
12646 var rs = stream._readableState;
12647 rs.reading = false;
12648 if (rs.needReadable || rs.length < rs.highWaterMark) {
12649 stream._read(rs.highWaterMark);
12654 function Transform(options) {
12655 if (!(this instanceof Transform))
12656 return new Transform(options);
12658 Duplex.call(this, options);
12660 this._transformState = new TransformState(options, this);
12662 // when the writable side finishes, then flush out anything remaining.
12665 // start out asking for a readable event once data is transformed.
12666 this._readableState.needReadable = true;
12668 // we have implemented the _read method, and done the other things
12669 // that Readable wants before the first _read call, so unset the
12670 // sync guard flag.
12671 this._readableState.sync = false;
12673 this.once('prefinish', function() {
12674 if (util.isFunction(this._flush))
12675 this._flush(function(er) {
12683 Transform.prototype.push = function(chunk, encoding) {
12684 this._transformState.needTransform = false;
12685 return Duplex.prototype.push.call(this, chunk, encoding);
12688 // This is the part where you do stuff!
12689 // override this function in implementation classes.
12690 // 'chunk' is an input chunk.
12692 // Call `push(newChunk)` to pass along transformed output
12693 // to the readable side. You may call 'push' zero or more times.
12695 // Call `cb(err)` when you are done with this chunk. If you pass
12696 // an error, then that'll put the hurt on the whole operation. If you
12697 // never call cb(), then you'll never get another chunk.
12698 Transform.prototype._transform = function(chunk, encoding, cb) {
12699 throw new Error('not implemented');
12702 Transform.prototype._write = function(chunk, encoding, cb) {
12703 var ts = this._transformState;
12705 ts.writechunk = chunk;
12706 ts.writeencoding = encoding;
12707 if (!ts.transforming) {
12708 var rs = this._readableState;
12709 if (ts.needTransform ||
12711 rs.length < rs.highWaterMark)
12712 this._read(rs.highWaterMark);
12716 // Doesn't matter what the args are here.
12717 // _transform does all the work.
12718 // That we got here means that the readable side wants more data.
12719 Transform.prototype._read = function(n) {
12720 var ts = this._transformState;
12722 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
12723 ts.transforming = true;
12724 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
12726 // mark that we need a transform, so that any data that comes in
12727 // will get processed, now that we've asked for it.
12728 ts.needTransform = true;
12733 function done(stream, er) {
12735 return stream.emit('error', er);
12737 // if there's nothing in the write buffer, then that means
12738 // that nothing more will ever be provided
12739 var ws = stream._writableState;
12740 var ts = stream._transformState;
12743 throw new Error('calling transform done when ws.length !=
0');
12745 if (ts.transforming)
12746 throw new Error('calling transform done when still transforming');
12748 return stream.push(null);
12751 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
12752 (function (process){
12753 // Copyright Joyent, Inc. and other Node contributors.
12755 // Permission is hereby granted, free of charge, to any person obtaining a
12756 // copy of this software and associated documentation files (the
12757 // "Software"), to deal in the Software without restriction, including
12758 // without limitation the rights to use, copy, modify, merge, publish,
12759 // distribute, sublicense, and/or sell copies of the Software, and to permit
12760 // persons to whom the Software is furnished to do so, subject to the
12761 // following conditions:
12763 // The above copyright notice and this permission notice shall be included
12764 // in all copies or substantial portions of the Software.
12766 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12767 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12768 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12769 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12770 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12771 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12772 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12774 // A bit simpler than readable streams.
12775 // Implement an async ._write(chunk, cb), and it'll handle all
12776 // the drain event emission and buffering.
12778 module.exports = Writable;
12781 var Buffer = require('buffer').Buffer;
12784 Writable.WritableState = WritableState;
12788 var util = require('core-util-is');
12789 util.inherits = require('inherits');
12792 var Stream = require('stream');
12794 util.inherits(Writable, Stream);
12796 function WriteReq(chunk, encoding, cb) {
12797 this.chunk = chunk;
12798 this.encoding = encoding;
12799 this.callback = cb;
12802 function WritableState(options, stream) {
12803 var Duplex = require('./_stream_duplex');
12805 options = options || {};
12807 // the point at which write() starts returning false
12808 // Note:
0 is a valid value, means that we always return false if
12809 // the entire buffer is not flushed immediately on write()
12810 var hwm = options.highWaterMark;
12811 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
12812 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
12814 // object stream flag to indicate whether or not this stream
12815 // contains buffers or objects.
12816 this.objectMode = !!options.objectMode;
12818 if (stream instanceof Duplex)
12819 this.objectMode = this.objectMode || !!options.writableObjectMode;
12822 this.highWaterMark = ~~this.highWaterMark;
12824 this.needDrain = false;
12825 // at the start of calling end()
12826 this.ending = false;
12827 // when end() has been called, and returned
12828 this.ended = false;
12829 // when 'finish' is emitted
12830 this.finished = false;
12832 // should we decode strings into buffers before passing to _write?
12833 // this is here so that some node-core streams can optimize string
12834 // handling at a lower level.
12835 var noDecode = options.decodeStrings === false;
12836 this.decodeStrings = !noDecode;
12838 // Crypto is kind of old and crusty. Historically, its default string
12839 // encoding is 'binary' so we have to make this configurable.
12840 // Everything else in the universe uses 'utf8', though.
12841 this.defaultEncoding = options.defaultEncoding || 'utf8';
12843 // not an actual buffer we keep track of, but a measurement
12844 // of how much we're waiting to get pushed to some underlying
12848 // a flag to see when we're in the middle of a write.
12849 this.writing = false;
12851 // when true all writes will be buffered until .uncork() call
12854 // a flag to be able to tell if the onwrite cb is called immediately,
12855 // or on a later tick. We set this to true at first, because any
12856 // actions that shouldn't happen until "later" should generally also
12857 // not happen before the first write call.
12860 // a flag to know if we're processing previously buffered items, which
12861 // may call the _write() callback in the same tick, so that we don't
12862 // end up in an overlapped onwrite situation.
12863 this.bufferProcessing = false;
12865 // the callback that's passed to _write(chunk,cb)
12866 this.onwrite = function(er) {
12867 onwrite(stream, er);
12870 // the callback that the user supplies to write(chunk,encoding,cb)
12871 this.writecb = null;
12873 // the amount that is being written when _write is called.
12878 // number of pending user-supplied write callbacks
12879 // this must be
0 before 'finish' can be emitted
12880 this.pendingcb =
0;
12882 // emit prefinish if the only thing we're waiting for is _write cbs
12883 // This is relevant for synchronous Transform streams
12884 this.prefinished = false;
12886 // True if the error was already emitted and should not be thrown again
12887 this.errorEmitted = false;
12890 function Writable(options) {
12891 var Duplex = require('./_stream_duplex');
12893 // Writable ctor is applied to Duplexes, though they're not
12894 // instanceof Writable, they're instanceof Readable.
12895 if (!(this instanceof Writable) && !(this instanceof Duplex))
12896 return new Writable(options);
12898 this._writableState = new WritableState(options, this);
12901 this.writable = true;
12906 // Otherwise people can pipe Writable streams, which is just wrong.
12907 Writable.prototype.pipe = function() {
12908 this.emit('error', new Error('Cannot pipe. Not readable.'));
12912 function writeAfterEnd(stream, state, cb) {
12913 var er = new Error('write after end');
12914 // TODO: defer error events consistently everywhere, not just the cb
12915 stream.emit('error', er);
12916 process.nextTick(function() {
12921 // If we get something that is not a buffer, string, null, or undefined,
12922 // and we're not in objectMode, then that's an error.
12923 // Otherwise stream chunks are all considered to be of length=
1, and the
12924 // watermarks determine how many objects to keep in the buffer, rather than
12925 // how many bytes or characters.
12926 function validChunk(stream, state, chunk, cb) {
12928 if (!util.isBuffer(chunk) &&
12929 !util.isString(chunk) &&
12930 !util.isNullOrUndefined(chunk) &&
12931 !state.objectMode) {
12932 var er = new TypeError('Invalid non-string/buffer chunk');
12933 stream.emit('error', er);
12934 process.nextTick(function() {
12942 Writable.prototype.write = function(chunk, encoding, cb) {
12943 var state = this._writableState;
12946 if (util.isFunction(encoding)) {
12951 if (util.isBuffer(chunk))
12952 encoding = 'buffer';
12953 else if (!encoding)
12954 encoding = state.defaultEncoding;
12956 if (!util.isFunction(cb))
12957 cb = function() {};
12960 writeAfterEnd(this, state, cb);
12961 else if (validChunk(this, state, chunk, cb)) {
12963 ret = writeOrBuffer(this, state, chunk, encoding, cb);
12969 Writable.prototype.cork = function() {
12970 var state = this._writableState;
12975 Writable.prototype.uncork = function() {
12976 var state = this._writableState;
12978 if (state.corked) {
12981 if (!state.writing &&
12984 !state.bufferProcessing &&
12985 state.buffer.length)
12986 clearBuffer(this, state);
12990 function decodeChunk(state, chunk, encoding) {
12991 if (!state.objectMode &&
12992 state.decodeStrings !== false &&
12993 util.isString(chunk)) {
12994 chunk = new Buffer(chunk, encoding);
12999 // if we're already writing something, then just put this
13000 // in the queue, and wait our turn. Otherwise, call _write
13001 // If we return false, then we need a drain event, so set that flag.
13002 function writeOrBuffer(stream, state, chunk, encoding, cb) {
13003 chunk = decodeChunk(state, chunk, encoding);
13004 if (util.isBuffer(chunk))
13005 encoding = 'buffer';
13006 var len = state.objectMode ?
1 : chunk.length;
13008 state.length += len;
13010 var ret = state.length < state.highWaterMark;
13011 // we must ensure that previous needDrain will not be reset to false.
13013 state.needDrain = true;
13015 if (state.writing || state.corked)
13016 state.buffer.push(new WriteReq(chunk, encoding, cb));
13018 doWrite(stream, state, false, len, chunk, encoding, cb);
13023 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
13024 state.writelen = len;
13025 state.writecb = cb;
13026 state.writing = true;
13029 stream._writev(chunk, state.onwrite);
13031 stream._write(chunk, encoding, state.onwrite);
13032 state.sync = false;
13035 function onwriteError(stream, state, sync, er, cb) {
13037 process.nextTick(function() {
13046 stream._writableState.errorEmitted = true;
13047 stream.emit('error', er);
13050 function onwriteStateUpdate(state) {
13051 state.writing = false;
13052 state.writecb = null;
13053 state.length -= state.writelen;
13054 state.writelen =
0;
13057 function onwrite(stream, er) {
13058 var state = stream._writableState;
13059 var sync = state.sync;
13060 var cb = state.writecb;
13062 onwriteStateUpdate(state);
13065 onwriteError(stream, state, sync, er, cb);
13067 // Check if we're actually ready to finish, but don't emit yet
13068 var finished = needFinish(stream, state);
13072 !state.bufferProcessing &&
13073 state.buffer.length) {
13074 clearBuffer(stream, state);
13078 process.nextTick(function() {
13079 afterWrite(stream, state, finished, cb);
13082 afterWrite(stream, state, finished, cb);
13087 function afterWrite(stream, state, finished, cb) {
13089 onwriteDrain(stream, state);
13092 finishMaybe(stream, state);
13095 // Must force callback to be called on nextTick, so that we don't
13096 // emit 'drain' before the write() consumer gets the 'false' return
13097 // value, and has a chance to attach a 'drain' listener.
13098 function onwriteDrain(stream, state) {
13099 if (state.length ===
0 && state.needDrain) {
13100 state.needDrain = false;
13101 stream.emit('drain');
13106 // if there's something in the buffer waiting, then process it
13107 function clearBuffer(stream, state) {
13108 state.bufferProcessing = true;
13110 if (stream._writev && state.buffer.length
> 1) {
13111 // Fast case, write everything using _writev()
13113 for (var c =
0; c < state.buffer.length; c++)
13114 cbs.push(state.buffer[c].callback);
13116 // count the one we are adding, as well.
13117 // TODO(isaacs) clean this up
13119 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
13120 for (var i =
0; i < cbs.length; i++) {
13129 // Slow case, write chunks one-by-one
13130 for (var c =
0; c < state.buffer.length; c++) {
13131 var entry = state.buffer[c];
13132 var chunk = entry.chunk;
13133 var encoding = entry.encoding;
13134 var cb = entry.callback;
13135 var len = state.objectMode ?
1 : chunk.length;
13137 doWrite(stream, state, false, len, chunk, encoding, cb);
13139 // if we didn't call the onwrite immediately, then
13140 // it means that we need to wait until it does.
13141 // also, that means that the chunk and cb are currently
13142 // being processed, so move the buffer counter past them.
13143 if (state.writing) {
13149 if (c < state.buffer.length)
13150 state.buffer = state.buffer.slice(c);
13152 state.buffer.length =
0;
13155 state.bufferProcessing = false;
13158 Writable.prototype._write = function(chunk, encoding, cb) {
13159 cb(new Error('not implemented'));
13163 Writable.prototype._writev = null;
13165 Writable.prototype.end = function(chunk, encoding, cb) {
13166 var state = this._writableState;
13168 if (util.isFunction(chunk)) {
13172 } else if (util.isFunction(encoding)) {
13177 if (!util.isNullOrUndefined(chunk))
13178 this.write(chunk, encoding);
13180 // .end() fully uncorks
13181 if (state.corked) {
13186 // ignore unnecessary end() calls.
13187 if (!state.ending && !state.finished)
13188 endWritable(this, state, cb);
13192 function needFinish(stream, state) {
13193 return (state.ending &&
13194 state.length ===
0 &&
13199 function prefinish(stream, state) {
13200 if (!state.prefinished) {
13201 state.prefinished = true;
13202 stream.emit('prefinish');
13206 function finishMaybe(stream, state) {
13207 var need = needFinish(stream, state);
13209 if (state.pendingcb ===
0) {
13210 prefinish(stream, state);
13211 state.finished = true;
13212 stream.emit('finish');
13214 prefinish(stream, state);
13219 function endWritable(stream, state, cb) {
13220 state.ending = true;
13221 finishMaybe(stream, state);
13223 if (state.finished)
13224 process.nextTick(cb);
13226 stream.once('finish', cb);
13228 state.ended = true;
13231 }).call(this,require('_process'))
13232 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
13233 (function (Buffer){
13234 // Copyright Joyent, Inc. and other Node contributors.
13236 // Permission is hereby granted, free of charge, to any person obtaining a
13237 // copy of this software and associated documentation files (the
13238 //
"Software"), to deal in the Software without restriction, including
13239 // without limitation the rights to use, copy, modify, merge, publish,
13240 // distribute, sublicense, and/or sell copies of the Software, and to permit
13241 // persons to whom the Software is furnished to do so, subject to the
13242 // following conditions:
13244 // The above copyright notice and this permission notice shall be included
13245 // in all copies or substantial portions of the Software.
13247 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13248 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13249 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13250 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13251 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13252 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13253 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13255 // NOTE: These type checking functions intentionally don't use `instanceof`
13256 // because it is fragile and can be easily faked with `Object.create()`.
13257 function isArray(ar) {
13258 return Array.isArray(ar);
13260 exports.isArray = isArray;
13262 function isBoolean(arg) {
13263 return typeof arg === 'boolean';
13265 exports.isBoolean = isBoolean;
13267 function isNull(arg) {
13268 return arg === null;
13270 exports.isNull = isNull;
13272 function isNullOrUndefined(arg) {
13273 return arg == null;
13275 exports.isNullOrUndefined = isNullOrUndefined;
13277 function isNumber(arg) {
13278 return typeof arg === 'number';
13280 exports.isNumber = isNumber;
13282 function isString(arg) {
13283 return typeof arg === 'string';
13285 exports.isString = isString;
13287 function isSymbol(arg) {
13288 return typeof arg === 'symbol';
13290 exports.isSymbol = isSymbol;
13292 function isUndefined(arg) {
13293 return arg === void
0;
13295 exports.isUndefined = isUndefined;
13297 function isRegExp(re) {
13298 return isObject(re) && objectToString(re) === '[object RegExp]';
13300 exports.isRegExp = isRegExp;
13302 function isObject(arg) {
13303 return typeof arg === 'object' && arg !== null;
13305 exports.isObject = isObject;
13307 function isDate(d) {
13308 return isObject(d) && objectToString(d) === '[object Date]';
13310 exports.isDate = isDate;
13312 function isError(e) {
13313 return isObject(e) &&
13314 (objectToString(e) === '[object Error]' || e instanceof Error);
13316 exports.isError = isError;
13318 function isFunction(arg) {
13319 return typeof arg === 'function';
13321 exports.isFunction = isFunction;
13323 function isPrimitive(arg) {
13324 return arg === null ||
13325 typeof arg === 'boolean' ||
13326 typeof arg === 'number' ||
13327 typeof arg === 'string' ||
13328 typeof arg === 'symbol' || // ES6 symbol
13329 typeof arg === 'undefined';
13331 exports.isPrimitive = isPrimitive;
13333 function isBuffer(arg) {
13334 return Buffer.isBuffer(arg);
13336 exports.isBuffer = isBuffer;
13338 function objectToString(o) {
13339 return Object.prototype.toString.call(o);
13341 }).call(this,require(
"buffer").Buffer)
13342 },{
"buffer":
7}],
22:[function(require,module,exports){
13343 module.exports = require(
"./lib/_stream_passthrough.js")
13345 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
13346 exports = module.exports = require('./lib/_stream_readable.js');
13347 exports.Stream = require('stream');
13348 exports.Readable = exports;
13349 exports.Writable = require('./lib/_stream_writable.js');
13350 exports.Duplex = require('./lib/_stream_duplex.js');
13351 exports.Transform = require('./lib/_stream_transform.js');
13352 exports.PassThrough = require('./lib/_stream_passthrough.js');
13354 },{
"./lib/_stream_duplex.js":
16,
"./lib/_stream_passthrough.js":
17,
"./lib/_stream_readable.js":
18,
"./lib/_stream_transform.js":
19,
"./lib/_stream_writable.js":
20,
"stream":
26}],
24:[function(require,module,exports){
13355 module.exports = require(
"./lib/_stream_transform.js")
13357 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
13358 module.exports = require(
"./lib/_stream_writable.js")
13360 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
13361 // Copyright Joyent, Inc. and other Node contributors.
13363 // Permission is hereby granted, free of charge, to any person obtaining a
13364 // copy of this software and associated documentation files (the
13365 //
"Software"), to deal in the Software without restriction, including
13366 // without limitation the rights to use, copy, modify, merge, publish,
13367 // distribute, sublicense, and/or sell copies of the Software, and to permit
13368 // persons to whom the Software is furnished to do so, subject to the
13369 // following conditions:
13371 // The above copyright notice and this permission notice shall be included
13372 // in all copies or substantial portions of the Software.
13374 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13375 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13376 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13377 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13378 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13379 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13380 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13382 module.exports = Stream;
13384 var EE = require('events').EventEmitter;
13385 var inherits = require('inherits');
13387 inherits(Stream, EE);
13388 Stream.Readable = require('readable-stream/readable.js');
13389 Stream.Writable = require('readable-stream/writable.js');
13390 Stream.Duplex = require('readable-stream/duplex.js');
13391 Stream.Transform = require('readable-stream/transform.js');
13392 Stream.PassThrough = require('readable-stream/passthrough.js');
13394 // Backwards-compat with node
0.4.x
13395 Stream.Stream = Stream;
13399 // old-style streams. Note that the pipe method (the only relevant
13400 // part of this class) is overridden in the Readable class.
13402 function Stream() {
13406 Stream.prototype.pipe = function(dest, options) {
13409 function ondata(chunk) {
13410 if (dest.writable) {
13411 if (false === dest.write(chunk) && source.pause) {
13417 source.on('data', ondata);
13419 function ondrain() {
13420 if (source.readable && source.resume) {
13425 dest.on('drain', ondrain);
13427 // If the 'end' option is not supplied, dest.end() will be called when
13428 // source gets the 'end' or 'close' events. Only dest.end() once.
13429 if (!dest._isStdio && (!options || options.end !== false)) {
13430 source.on('end', onend);
13431 source.on('close', onclose);
13434 var didOnEnd = false;
13436 if (didOnEnd) return;
13443 function onclose() {
13444 if (didOnEnd) return;
13447 if (typeof dest.destroy === 'function') dest.destroy();
13450 // don't leave dangling pipes when there are errors.
13451 function onerror(er) {
13453 if (EE.listenerCount(this, 'error') ===
0) {
13454 throw er; // Unhandled stream error in pipe.
13458 source.on('error', onerror);
13459 dest.on('error', onerror);
13461 // remove all the event listeners that were added.
13462 function cleanup() {
13463 source.removeListener('data', ondata);
13464 dest.removeListener('drain', ondrain);
13466 source.removeListener('end', onend);
13467 source.removeListener('close', onclose);
13469 source.removeListener('error', onerror);
13470 dest.removeListener('error', onerror);
13472 source.removeListener('end', cleanup);
13473 source.removeListener('close', cleanup);
13475 dest.removeListener('close', cleanup);
13478 source.on('end', cleanup);
13479 source.on('close', cleanup);
13481 dest.on('close', cleanup);
13483 dest.emit('pipe', source);
13485 // Allow for unix-like usage: A.pipe(B).pipe(C)
13489 },{
"events":
11,
"inherits":
12,
"readable-stream/duplex.js":
15,
"readable-stream/passthrough.js":
22,
"readable-stream/readable.js":
23,
"readable-stream/transform.js":
24,
"readable-stream/writable.js":
25}],
27:[function(require,module,exports){
13490 // Copyright Joyent, Inc. and other Node contributors.
13492 // Permission is hereby granted, free of charge, to any person obtaining a
13493 // copy of this software and associated documentation files (the
13494 //
"Software"), to deal in the Software without restriction, including
13495 // without limitation the rights to use, copy, modify, merge, publish,
13496 // distribute, sublicense, and/or sell copies of the Software, and to permit
13497 // persons to whom the Software is furnished to do so, subject to the
13498 // following conditions:
13500 // The above copyright notice and this permission notice shall be included
13501 // in all copies or substantial portions of the Software.
13503 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13504 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13505 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13506 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13507 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13508 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13509 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13511 var Buffer = require('buffer').Buffer;
13513 var isBufferEncoding = Buffer.isEncoding
13514 || function(encoding) {
13515 switch (encoding && encoding.toLowerCase()) {
13516 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;
13517 default: return false;
13522 function assertEncoding(encoding) {
13523 if (encoding && !isBufferEncoding(encoding)) {
13524 throw new Error('Unknown encoding: ' + encoding);
13528 // StringDecoder provides an interface for efficiently splitting a series of
13529 // buffers into a series of JS strings without breaking apart multi-byte
13530 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
13532 // @TODO Handling all encodings inside a single object makes it very difficult
13533 // to reason about this code, so it should be split up in the future.
13534 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
13535 // points as used by CESU-
8.
13536 var StringDecoder = exports.StringDecoder = function(encoding) {
13537 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
13538 assertEncoding(encoding);
13539 switch (this.encoding) {
13541 // CESU-
8 represents each of Surrogate Pair by
3-bytes
13542 this.surrogateSize =
3;
13546 // UTF-
16 represents each of Surrogate Pair by
2-bytes
13547 this.surrogateSize =
2;
13548 this.detectIncompleteChar = utf16DetectIncompleteChar;
13551 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
13552 this.surrogateSize =
3;
13553 this.detectIncompleteChar = base64DetectIncompleteChar;
13556 this.write = passThroughWrite;
13560 // Enough space to store all bytes of a single character. UTF-
8 needs
4
13561 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
13562 this.charBuffer = new Buffer(
6);
13563 // Number of bytes received for the current incomplete multi-byte character.
13564 this.charReceived =
0;
13565 // Number of bytes expected for the current incomplete multi-byte character.
13566 this.charLength =
0;
13570 // write decodes the given buffer and returns it as JS string that is
13571 // guaranteed to not contain any partial multi-byte characters. Any partial
13572 // character found at the end of the buffer is buffered up, and will be
13573 // returned when calling write again with the remaining bytes.
13575 // Note: Converting a Buffer containing an orphan surrogate to a String
13576 // currently works, but converting a String to a Buffer (via `new Buffer`, or
13577 // Buffer#write) will replace incomplete surrogates with the unicode
13578 // replacement character. See https://codereview.chromium.org/
121173009/ .
13579 StringDecoder.prototype.write = function(buffer) {
13581 // if our last write ended with an incomplete multibyte character
13582 while (this.charLength) {
13583 // determine how many remaining bytes this buffer has to offer for this char
13584 var available = (buffer.length
>= this.charLength - this.charReceived) ?
13585 this.charLength - this.charReceived :
13588 // add the new bytes to the char buffer
13589 buffer.copy(this.charBuffer, this.charReceived,
0, available);
13590 this.charReceived += available;
13592 if (this.charReceived < this.charLength) {
13593 // still not enough chars in this buffer? wait for more ...
13597 // remove bytes belonging to the current character from the buffer
13598 buffer = buffer.slice(available, buffer.length);
13600 // get the character that was split
13601 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
13603 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13604 var charCode = charStr.charCodeAt(charStr.length -
1);
13605 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13606 this.charLength += this.surrogateSize;
13610 this.charReceived = this.charLength =
0;
13612 // if there are no more bytes in this buffer, just emit our char
13613 if (buffer.length ===
0) {
13619 // determine and set charLength / charReceived
13620 this.detectIncompleteChar(buffer);
13622 var end = buffer.length;
13623 if (this.charLength) {
13624 // buffer the incomplete character bytes we got
13625 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
13626 end -= this.charReceived;
13629 charStr += buffer.toString(this.encoding,
0, end);
13631 var end = charStr.length -
1;
13632 var charCode = charStr.charCodeAt(end);
13633 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13634 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13635 var size = this.surrogateSize;
13636 this.charLength += size;
13637 this.charReceived += size;
13638 this.charBuffer.copy(this.charBuffer, size,
0, size);
13639 buffer.copy(this.charBuffer,
0,
0, size);
13640 return charStr.substring(
0, end);
13643 // or just emit the charStr
13647 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
13648 // the end of the given buffer. If so, it sets this.charLength to the byte
13649 // length that character, and sets this.charReceived to the number of bytes
13650 // that are available for this character.
13651 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
13652 // determine how many bytes we have to check at the end of this buffer
13653 var i = (buffer.length
>=
3) ?
3 : buffer.length;
13655 // Figure out if one of the last i bytes of our buffer announces an
13656 // incomplete char.
13657 for (; i
> 0; i--) {
13658 var c = buffer[buffer.length - i];
13660 // See http://en.wikipedia.org/wiki/UTF-
8#Description
13663 if (i ==
1 && c
>> 5 ==
0x06) {
13664 this.charLength =
2;
13669 if (i <=
2 && c
>> 4 ==
0x0E) {
13670 this.charLength =
3;
13675 if (i <=
3 && c
>> 3 ==
0x1E) {
13676 this.charLength =
4;
13680 this.charReceived = i;
13683 StringDecoder.prototype.end = function(buffer) {
13685 if (buffer && buffer.length)
13686 res = this.write(buffer);
13688 if (this.charReceived) {
13689 var cr = this.charReceived;
13690 var buf = this.charBuffer;
13691 var enc = this.encoding;
13692 res += buf.slice(
0, cr).toString(enc);
13698 function passThroughWrite(buffer) {
13699 return buffer.toString(this.encoding);
13702 function utf16DetectIncompleteChar(buffer) {
13703 this.charReceived = buffer.length %
2;
13704 this.charLength = this.charReceived ?
2 :
0;
13707 function base64DetectIncompleteChar(buffer) {
13708 this.charReceived = buffer.length %
3;
13709 this.charLength = this.charReceived ?
3 :
0;
13712 },{
"buffer":
7}],
28:[function(require,module,exports){
13713 module.exports = function isBuffer(arg) {
13714 return arg && typeof arg === 'object'
13715 && typeof arg.copy === 'function'
13716 && typeof arg.fill === 'function'
13717 && typeof arg.readUInt8 === 'function';
13719 },{}],
29:[function(require,module,exports){
13720 (function (process,global){
13721 // Copyright Joyent, Inc. and other Node contributors.
13723 // Permission is hereby granted, free of charge, to any person obtaining a
13724 // copy of this software and associated documentation files (the
13725 //
"Software"), to deal in the Software without restriction, including
13726 // without limitation the rights to use, copy, modify, merge, publish,
13727 // distribute, sublicense, and/or sell copies of the Software, and to permit
13728 // persons to whom the Software is furnished to do so, subject to the
13729 // following conditions:
13731 // The above copyright notice and this permission notice shall be included
13732 // in all copies or substantial portions of the Software.
13734 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13735 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13736 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13737 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13738 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13739 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13740 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13742 var formatRegExp = /%[sdj%]/g;
13743 exports.format = function(f) {
13744 if (!isString(f)) {
13746 for (var i =
0; i < arguments.length; i++) {
13747 objects.push(inspect(arguments[i]));
13749 return objects.join(' ');
13753 var args = arguments;
13754 var len = args.length;
13755 var str = String(f).replace(formatRegExp, function(x) {
13756 if (x === '%%') return '%';
13757 if (i
>= len) return x;
13759 case '%s': return String(args[i++]);
13760 case '%d': return Number(args[i++]);
13763 return JSON.stringify(args[i++]);
13765 return '[Circular]';
13771 for (var x = args[i]; i < len; x = args[++i]) {
13772 if (isNull(x) || !isObject(x)) {
13775 str += ' ' + inspect(x);
13782 // Mark that a method should not be used.
13783 // Returns a modified function which warns once by default.
13784 // If --no-deprecation is set, then it is a no-op.
13785 exports.deprecate = function(fn, msg) {
13786 // Allow for deprecating things in the process of starting up.
13787 if (isUndefined(global.process)) {
13788 return function() {
13789 return exports.deprecate(fn, msg).apply(this, arguments);
13793 if (process.noDeprecation === true) {
13797 var warned = false;
13798 function deprecated() {
13800 if (process.throwDeprecation) {
13801 throw new Error(msg);
13802 } else if (process.traceDeprecation) {
13803 console.trace(msg);
13805 console.error(msg);
13809 return fn.apply(this, arguments);
13818 exports.debuglog = function(set) {
13819 if (isUndefined(debugEnviron))
13820 debugEnviron = process.env.NODE_DEBUG || '';
13821 set = set.toUpperCase();
13822 if (!debugs[set]) {
13823 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13824 var pid = process.pid;
13825 debugs[set] = function() {
13826 var msg = exports.format.apply(exports, arguments);
13827 console.error('%s %d: %s', set, pid, msg);
13830 debugs[set] = function() {};
13833 return debugs[set];
13838 * Echos the value of a value. Trys to print the value out
13839 * in the best way possible given the different types.
13841 * @param {Object} obj The object to print out.
13842 * @param {Object} opts Optional options object that alters the output.
13844 /* legacy: obj, showHidden, depth, colors*/
13845 function inspect(obj, opts) {
13849 stylize: stylizeNoColor
13852 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13853 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13854 if (isBoolean(opts)) {
13856 ctx.showHidden = opts;
13858 // got an "options" object
13859 exports._extend(ctx, opts);
13861 // set default options
13862 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13863 if (isUndefined(ctx.depth)) ctx.depth =
2;
13864 if (isUndefined(ctx.colors)) ctx.colors = false;
13865 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13866 if (ctx.colors) ctx.stylize = stylizeWithColor;
13867 return formatValue(ctx, obj, ctx.depth);
13869 exports.inspect = inspect;
13872 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13875 'italic' : [
3,
23],
13876 'underline' : [
4,
24],
13877 'inverse' : [
7,
27],
13878 'white' : [
37,
39],
13880 'black' : [
30,
39],
13883 'green' : [
32,
39],
13884 'magenta' : [
35,
39],
13886 'yellow' : [
33,
39]
13889 // Don't use 'blue' not visible on cmd.exe
13892 'number': 'yellow',
13893 'boolean': 'yellow',
13894 'undefined': 'grey',
13898 // "name": intentionally not styling
13903 function stylizeWithColor(str, styleType) {
13904 var style = inspect.styles[styleType];
13907 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13908 '\u001b[' + inspect.colors[style][
1] + 'm';
13915 function stylizeNoColor(str, styleType) {
13920 function arrayToHash(array) {
13923 array.forEach(function(val, idx) {
13931 function formatValue(ctx, value, recurseTimes) {
13932 // Provide a hook for user-specified inspect functions.
13933 // Check that value is an object with an inspect function on it
13934 if (ctx.customInspect &&
13936 isFunction(value.inspect) &&
13937 // Filter out the util module, it's inspect function is special
13938 value.inspect !== exports.inspect &&
13939 // Also filter out any prototype objects using the circular check.
13940 !(value.constructor && value.constructor.prototype === value)) {
13941 var ret = value.inspect(recurseTimes, ctx);
13942 if (!isString(ret)) {
13943 ret = formatValue(ctx, ret, recurseTimes);
13948 // Primitive types cannot have properties
13949 var primitive = formatPrimitive(ctx, value);
13954 // Look up the keys of the object.
13955 var keys = Object.keys(value);
13956 var visibleKeys = arrayToHash(keys);
13958 if (ctx.showHidden) {
13959 keys = Object.getOwnPropertyNames(value);
13962 // IE doesn't make error fields non-enumerable
13963 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13965 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13966 return formatError(value);
13969 // Some type of object without properties can be shortcutted.
13970 if (keys.length ===
0) {
13971 if (isFunction(value)) {
13972 var name = value.name ? ': ' + value.name : '';
13973 return ctx.stylize('[Function' + name + ']', 'special');
13975 if (isRegExp(value)) {
13976 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13978 if (isDate(value)) {
13979 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13981 if (isError(value)) {
13982 return formatError(value);
13986 var base = '', array = false, braces = ['{', '}'];
13988 // Make Array say that they are Array
13989 if (isArray(value)) {
13991 braces = ['[', ']'];
13994 // Make functions say that they are functions
13995 if (isFunction(value)) {
13996 var n = value.name ? ': ' + value.name : '';
13997 base = ' [Function' + n + ']';
14000 // Make RegExps say that they are RegExps
14001 if (isRegExp(value)) {
14002 base = ' ' + RegExp.prototype.toString.call(value);
14005 // Make dates with properties first say the date
14006 if (isDate(value)) {
14007 base = ' ' + Date.prototype.toUTCString.call(value);
14010 // Make error with message first say the error
14011 if (isError(value)) {
14012 base = ' ' + formatError(value);
14015 if (keys.length ===
0 && (!array || value.length ==
0)) {
14016 return braces[
0] + base + braces[
1];
14019 if (recurseTimes <
0) {
14020 if (isRegExp(value)) {
14021 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
14023 return ctx.stylize('[Object]', 'special');
14027 ctx.seen.push(value);
14031 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
14033 output = keys.map(function(key) {
14034 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
14040 return reduceToSingleString(output, base, braces);
14044 function formatPrimitive(ctx, value) {
14045 if (isUndefined(value))
14046 return ctx.stylize('undefined', 'undefined');
14047 if (isString(value)) {
14048 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
14049 .replace(/'/g, "\\'")
14050 .replace(/\\"/g, '"') + '\'';
14051 return ctx.stylize(simple, 'string');
14053 if (isNumber(value))
14054 return ctx.stylize('' + value, 'number');
14055 if (isBoolean(value))
14056 return ctx.stylize('' + value, 'boolean');
14057 // For some reason typeof null is "object", so special case here.
14059 return ctx.stylize('null', 'null');
14063 function formatError(value) {
14064 return '[' + Error.prototype.toString.call(value) + ']';
14068 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
14070 for (var i =
0, l = value.length; i < l; ++i) {
14071 if (hasOwnProperty(value, String(i))) {
14072 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14078 keys.forEach(function(key) {
14079 if (!key.match(/^\d+$/)) {
14080 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14088 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
14089 var name, str, desc;
14090 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
14093 str = ctx.stylize('[Getter/Setter]', 'special');
14095 str = ctx.stylize('[Getter]', 'special');
14099 str = ctx.stylize('[Setter]', 'special');
14102 if (!hasOwnProperty(visibleKeys, key)) {
14103 name = '[' + key + ']';
14106 if (ctx.seen.indexOf(desc.value) <
0) {
14107 if (isNull(recurseTimes)) {
14108 str = formatValue(ctx, desc.value, null);
14110 str = formatValue(ctx, desc.value, recurseTimes -
1);
14112 if (str.indexOf('\n')
> -
1) {
14114 str = str.split('\n').map(function(line) {
14116 }).join('\n').substr(
2);
14118 str = '\n' + str.split('\n').map(function(line) {
14124 str = ctx.stylize('[Circular]', 'special');
14127 if (isUndefined(name)) {
14128 if (array && key.match(/^\d+$/)) {
14131 name = JSON.stringify('' + key);
14132 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
14133 name = name.substr(
1, name.length -
2);
14134 name = ctx.stylize(name, 'name');
14136 name = name.replace(/'/g, "\\'")
14137 .replace(/\\"/g, '"')
14138 .replace(/(^"|"$)/g, "'");
14139 name = ctx.stylize(name, 'string');
14143 return name + ': ' + str;
14147 function reduceToSingleString(output, base, braces) {
14148 var numLinesEst =
0;
14149 var length = output.reduce(function(prev, cur) {
14151 if (cur.indexOf('\n')
>=
0) numLinesEst++;
14152 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
14157 (base === '' ? '' : base + '\n ') +
14159 output.join(',\n ') +
14164 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
14168 // NOTE: These type checking functions intentionally don't use `instanceof`
14169 // because it is fragile and can be easily faked with `Object.create()`.
14170 function isArray(ar) {
14171 return Array.isArray(ar);
14173 exports.isArray = isArray;
14175 function isBoolean(arg) {
14176 return typeof arg === 'boolean';
14178 exports.isBoolean = isBoolean;
14180 function isNull(arg) {
14181 return arg === null;
14183 exports.isNull = isNull;
14185 function isNullOrUndefined(arg) {
14186 return arg == null;
14188 exports.isNullOrUndefined = isNullOrUndefined;
14190 function isNumber(arg) {
14191 return typeof arg === 'number';
14193 exports.isNumber = isNumber;
14195 function isString(arg) {
14196 return typeof arg === 'string';
14198 exports.isString = isString;
14200 function isSymbol(arg) {
14201 return typeof arg === 'symbol';
14203 exports.isSymbol = isSymbol;
14205 function isUndefined(arg) {
14206 return arg === void
0;
14208 exports.isUndefined = isUndefined;
14210 function isRegExp(re) {
14211 return isObject(re) && objectToString(re) === '[object RegExp]';
14213 exports.isRegExp = isRegExp;
14215 function isObject(arg) {
14216 return typeof arg === 'object' && arg !== null;
14218 exports.isObject = isObject;
14220 function isDate(d) {
14221 return isObject(d) && objectToString(d) === '[object Date]';
14223 exports.isDate = isDate;
14225 function isError(e) {
14226 return isObject(e) &&
14227 (objectToString(e) === '[object Error]' || e instanceof Error);
14229 exports.isError = isError;
14231 function isFunction(arg) {
14232 return typeof arg === 'function';
14234 exports.isFunction = isFunction;
14236 function isPrimitive(arg) {
14237 return arg === null ||
14238 typeof arg === 'boolean' ||
14239 typeof arg === 'number' ||
14240 typeof arg === 'string' ||
14241 typeof arg === 'symbol' || // ES6 symbol
14242 typeof arg === 'undefined';
14244 exports.isPrimitive = isPrimitive;
14246 exports.isBuffer = require('./support/isBuffer');
14248 function objectToString(o) {
14249 return Object.prototype.toString.call(o);
14254 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
14258 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
14259 'Oct', 'Nov', 'Dec'];
14262 function timestamp() {
14263 var d = new Date();
14264 var time = [pad(d.getHours()),
14265 pad(d.getMinutes()),
14266 pad(d.getSeconds())].join(':');
14267 return [d.getDate(), months[d.getMonth()], time].join(' ');
14271 // log is just a thin wrapper to console.log that prepends a timestamp
14272 exports.log = function() {
14273 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
14278 * Inherit the prototype methods from one constructor into another.
14280 * The Function.prototype.inherits from lang.js rewritten as a standalone
14281 * function (not on Function.prototype). NOTE: If this file is to be loaded
14282 * during bootstrapping this function needs to be rewritten using some native
14283 * functions as prototype setup using normal JavaScript does not work as
14284 * expected during bootstrapping (see mirror.js in r114903).
14286 * @param {function} ctor Constructor function which needs to inherit the
14288 * @param {function} superCtor Constructor function to inherit prototype from.
14290 exports.inherits = require('inherits');
14292 exports._extend = function(origin, add) {
14293 // Don't do anything if add isn't an object
14294 if (!add || !isObject(add)) return origin;
14296 var keys = Object.keys(add);
14297 var i = keys.length;
14299 origin[keys[i]] = add[keys[i]];
14304 function hasOwnProperty(obj, prop) {
14305 return Object.prototype.hasOwnProperty.call(obj, prop);
14308 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
14309 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
14310 // Base58 encoding/decoding
14311 // Originally written by Mike Hearn for BitcoinJ
14312 // Copyright (c)
2011 Google Inc
14313 // Ported to JavaScript by Stefan Thomas
14314 // Merged Buffer refactorings from base58-native by Stephen Pair
14315 // Copyright (c)
2013 BitPay Inc
14317 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
14318 var ALPHABET_MAP = {}
14319 for(var i =
0; i < ALPHABET.length; i++) {
14320 ALPHABET_MAP[ALPHABET.charAt(i)] = i
14324 function encode(buffer) {
14325 if (buffer.length ===
0) return ''
14327 var i, j, digits = [
0]
14328 for (i =
0; i < buffer.length; i++) {
14329 for (j =
0; j < digits.length; j++) digits[j] <<=
8
14331 digits[
0] += buffer[i]
14334 for (j =
0; j < digits.length; ++j) {
14337 carry = (digits[j] / BASE) |
0
14342 digits.push(carry % BASE)
14344 carry = (carry / BASE) |
0
14348 // deal with leading zeros
14349 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
14351 // convert digits to a string
14352 var stringOutput =
""
14353 for (var i = digits.length -
1; i
>=
0; i--) {
14354 stringOutput = stringOutput + ALPHABET[digits[i]]
14356 return stringOutput
14359 function decode(string) {
14360 if (string.length ===
0) return []
14362 var i, j, bytes = [
0]
14363 for (i =
0; i < string.length; i++) {
14365 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
14367 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
14368 bytes[
0] += ALPHABET_MAP[c]
14371 for (j =
0; j < bytes.length; ++j) {
14374 carry = bytes[j]
>> 8
14379 bytes.push(carry &
0xff)
14385 // deal with leading zeros
14386 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
14388 return bytes.reverse()
14396 },{}],
31:[function(require,module,exports){
14397 (function (Buffer){
14400 var base58 = require('bs58')
14401 var createHash = require('create-hash')
14403 // SHA256(SHA256(buffer))
14404 function sha256x2 (buffer) {
14405 buffer = createHash('sha256').update(buffer).digest()
14406 return createHash('sha256').update(buffer).digest()
14409 // Encode a buffer as a base58-check encoded string
14410 function encode (payload) {
14411 var checksum = sha256x2(payload).slice(
0,
4)
14413 return base58.encode(Buffer.concat([
14419 // Decode a base58-check encoded string to a buffer
14420 function decode (string) {
14421 var buffer = new Buffer(base58.decode(string))
14423 var payload = buffer.slice(
0, -
4)
14424 var checksum = buffer.slice(-
4)
14425 var newChecksum = sha256x2(payload).slice(
0,
4)
14427 for (var i =
0; i < newChecksum.length; ++i) {
14428 if (newChecksum[i] === checksum[i]) continue
14430 throw new Error('Invalid checksum')
14441 }).call(this,require("buffer").Buffer)
14442 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
14443 (function (Buffer){
14445 var inherits = require('inherits')
14446 var md5 = require('./md5')
14447 var rmd160 = require('ripemd160')
14448 var sha = require('sha.js')
14450 var Transform = require('stream').Transform
14452 function HashNoConstructor(hash) {
14453 Transform.call(this)
14459 inherits(HashNoConstructor, Transform)
14461 HashNoConstructor.prototype._transform = function (data, _, next) {
14462 this.buffers.push(data)
14467 HashNoConstructor.prototype._flush = function (next) {
14468 this.push(this.digest())
14472 HashNoConstructor.prototype.update = function (data, enc) {
14473 if (typeof data === 'string') {
14474 data = new Buffer(data, enc)
14477 this.buffers.push(data)
14481 HashNoConstructor.prototype.digest = function (enc) {
14482 var buf = Buffer.concat(this.buffers)
14483 var r = this._hash(buf)
14484 this.buffers = null
14486 return enc ? r.toString(enc) : r
14489 function Hash(hash) {
14490 Transform.call(this)
14495 inherits(Hash, Transform)
14497 Hash.prototype._transform = function (data, enc, next) {
14498 if (enc) data = new Buffer(data, enc)
14500 this._hash.update(data)
14505 Hash.prototype._flush = function (next) {
14506 this.push(this._hash.digest())
14512 Hash.prototype.update = function (data, enc) {
14513 if (typeof data === 'string') {
14514 data = new Buffer(data, enc)
14517 this._hash.update(data)
14521 Hash.prototype.digest = function (enc) {
14522 var outData = this._hash.digest()
14524 return enc ? outData.toString(enc) : outData
14527 module.exports = function createHash (alg) {
14528 if ('md5' === alg) return new HashNoConstructor(md5)
14529 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
14531 return new Hash(sha(alg))
14534 }).call(this,require("buffer").Buffer)
14535 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
14536 (function (Buffer){
14539 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
14542 function toArray(buf, bigEndian) {
14543 if ((buf.length % intSize) !==
0) {
14544 var len = buf.length + (intSize - (buf.length % intSize));
14545 buf = Buffer.concat([buf, zeroBuffer], len);
14549 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
14550 for (var i =
0; i < buf.length; i += intSize) {
14551 arr.push(fn.call(buf, i));
14556 function toBuffer(arr, size, bigEndian) {
14557 var buf = new Buffer(size);
14558 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
14559 for (var i =
0; i < arr.length; i++) {
14560 fn.call(buf, arr[i], i *
4, true);
14565 function hash(buf, fn, hashSize, bigEndian) {
14566 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
14567 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
14568 return toBuffer(arr, hashSize, bigEndian);
14570 exports.hash = hash;
14571 }).call(this,require("buffer").Buffer)
14572 },{"buffer":
7}],
34:[function(require,module,exports){
14575 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
14576 * Digest Algorithm, as defined in RFC
1321.
14577 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
14578 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
14579 * Distributed under the BSD License
14580 * See http://pajhome.org.uk/crypt/md5 for more info.
14583 var helpers = require('./helpers');
14586 * Calculate the MD5 of an array of little-endian words, and a bit length
14588 function core_md5(x, len)
14590 /* append padding */
14591 x[len
>> 5] |=
0x80 << ((len) %
32);
14592 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
14594 var a =
1732584193;
14595 var b = -
271733879;
14596 var c = -
1732584194;
14599 for(var i =
0; i < x.length; i +=
16)
14606 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
14607 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
14608 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
14609 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
14610 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
14611 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
14612 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
14613 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
14614 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
14615 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
14616 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
14617 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
14618 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
14619 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
14620 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
14621 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
14623 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
14624 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
14625 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
14626 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
14627 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
14628 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
14629 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
14630 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
14631 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
14632 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
14633 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
14634 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
14635 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
14636 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
14637 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
14638 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
14640 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
14641 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
14642 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
14643 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
14644 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
14645 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
14646 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
14647 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
14648 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
14649 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
14650 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
14651 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
14652 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
14653 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
14654 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
14655 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
14657 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
14658 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
14659 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
14660 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
14661 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
14662 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
14663 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
14664 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
14665 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
14666 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
14667 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
14668 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
14669 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
14670 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
14671 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
14672 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
14674 a = safe_add(a, olda);
14675 b = safe_add(b, oldb);
14676 c = safe_add(c, oldc);
14677 d = safe_add(d, oldd);
14679 return Array(a, b, c, d);
14684 * These functions implement the four basic operations the algorithm uses.
14686 function md5_cmn(q, a, b, x, s, t)
14688 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
14690 function md5_ff(a, b, c, d, x, s, t)
14692 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
14694 function md5_gg(a, b, c, d, x, s, t)
14696 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
14698 function md5_hh(a, b, c, d, x, s, t)
14700 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
14702 function md5_ii(a, b, c, d, x, s, t)
14704 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
14708 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
14709 * to work around bugs in some JS interpreters.
14711 function safe_add(x, y)
14713 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
14714 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
14715 return (msw <<
16) | (lsw &
0xFFFF);
14719 * Bitwise rotate a
32-bit number to the left.
14721 function bit_rol(num, cnt)
14723 return (num << cnt) | (num
>>> (
32 - cnt));
14726 module.exports = function md5(buf) {
14727 return helpers.hash(buf, core_md5,
16);
14729 },{"./helpers":
33}],
35:[function(require,module,exports){
14730 arguments[
4][
12][
0].apply(exports,arguments)
14731 },{"dup":
12}],
36:[function(require,module,exports){
14732 (function (Buffer){
14735 code.google.com/p/crypto-js
14736 (c)
2009-
2013 by Jeff Mott. All rights reserved.
14737 code.google.com/p/crypto-js/wiki/License
14740 (c)
2012 by Cédric Mesnil. All rights reserved.
14742 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
14744 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14745 - 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.
14747 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.
14752 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
14753 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
14754 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
14755 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
14756 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
14760 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
14761 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
14762 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
14763 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
14764 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
14768 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
14769 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
14770 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
14771 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
14772 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
14776 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
14777 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
14778 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
14779 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
14780 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
14783 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
14784 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
14786 function bytesToWords (bytes) {
14788 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
14789 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
14794 function wordsToBytes (words) {
14796 for (var b =
0; b < words.length *
32; b +=
8) {
14797 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
14802 function processBlock (H, M, offset) {
14804 for (var i =
0; i <
16; i++) {
14805 var offset_i = offset + i
14806 var M_offset_i = M[offset_i]
14810 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
14811 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
14815 // Working variables
14816 var al, bl, cl, dl, el
14817 var ar, br, cr, dr, er
14827 for (i =
0; i <
80; i +=
1) {
14828 t = (al + M[offset + zl[i]]) |
0
14830 t += f1(bl, cl, dl) + hl[
0]
14831 } else if (i <
32) {
14832 t += f2(bl, cl, dl) + hl[
1]
14833 } else if (i <
48) {
14834 t += f3(bl, cl, dl) + hl[
2]
14835 } else if (i <
64) {
14836 t += f4(bl, cl, dl) + hl[
3]
14837 } else {// if (i
<80) {
14838 t += f5(bl, cl, dl) + hl[
4]
14849 t = (ar + M[offset + zr[i]]) |
0
14851 t += f5(br, cr, dr) + hr[
0]
14852 } else if (i <
32) {
14853 t += f4(br, cr, dr) + hr[
1]
14854 } else if (i <
48) {
14855 t += f3(br, cr, dr) + hr[
2]
14856 } else if (i <
64) {
14857 t += f2(br, cr, dr) + hr[
3]
14858 } else {// if (i
<80) {
14859 t += f1(br, cr, dr) + hr[
4]
14872 // intermediate hash value
14873 t = (H[
1] + cl + dr) |
0
14874 H[
1] = (H[
2] + dl + er) |
0
14875 H[
2] = (H[
3] + el + ar) |
0
14876 H[
3] = (H[
4] + al + br) |
0
14877 H[
4] = (H[
0] + bl + cr) |
0
14881 function f1 (x, y, z) {
14882 return ((x) ^ (y) ^ (z))
14885 function f2 (x, y, z) {
14886 return (((x) & (y)) | ((~x) & (z)))
14889 function f3 (x, y, z) {
14890 return (((x) | (~(y))) ^ (z))
14893 function f4 (x, y, z) {
14894 return (((x) & (z)) | ((y) & (~(z))))
14897 function f5 (x, y, z) {
14898 return ((x) ^ ((y) | (~(z))))
14901 function rotl (x, n) {
14902 return (x << n) | (x
>>> (
32 - n))
14905 function ripemd160 (message) {
14906 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
14908 if (typeof message === 'string') {
14909 message = new Buffer(message, 'utf8')
14912 var m = bytesToWords(message)
14914 var nBitsLeft = message.length *
8
14915 var nBitsTotal = message.length *
8
14918 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
14919 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
14920 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
14921 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
14924 for (var i =
0; i < m.length; i +=
16) {
14925 processBlock(H, m, i)
14929 for (i =
0; i <
5; i++) {
14934 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
14935 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
14938 var digestbytes = wordsToBytes(H)
14939 return new Buffer(digestbytes)
14942 module.exports = ripemd160
14944 }).call(this,require(
"buffer").Buffer)
14945 },{
"buffer":
7}],
37:[function(require,module,exports){
14946 (function (Buffer){
14947 // prototype class for hash functions
14948 function Hash (blockSize, finalSize) {
14949 this._block = new Buffer(blockSize)
14950 this._finalSize = finalSize
14951 this._blockSize = blockSize
14956 Hash.prototype.update = function (data, enc) {
14957 if (typeof data === 'string') {
14958 enc = enc || 'utf8'
14959 data = new Buffer(data, enc)
14962 var l = this._len += data.length
14963 var s = this._s ||
0
14965 var buffer = this._block
14968 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
14971 for (var i =
0; i < ch; i++) {
14972 buffer[(s % this._blockSize) + i] = data[i + f]
14978 if ((s % this._blockSize) ===
0) {
14979 this._update(buffer)
14987 Hash.prototype.digest = function (enc) {
14988 // Suppose the length of the message M, in bits, is l
14989 var l = this._len *
8
14991 // Append the bit
1 to the end of the message
14992 this._block[this._len % this._blockSize] =
0x80
14994 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
14995 this._block.fill(
0, this._len % this._blockSize +
1)
14997 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
14998 this._update(this._block)
14999 this._block.fill(
0)
15002 // to this append the block which is equal to the number l written in binary
15003 // TODO: handle case where l is
> Math.pow(
2,
29)
15004 this._block.writeInt32BE(l, this._blockSize -
4)
15006 var hash = this._update(this._block) || this._hash()
15008 return enc ? hash.toString(enc) : hash
15011 Hash.prototype._update = function () {
15012 throw new Error('_update must be implemented by subclass')
15015 module.exports = Hash
15017 }).call(this,require("buffer").Buffer)
15018 },{"buffer":
7}],
38:[function(require,module,exports){
15019 var exports = module.exports = function SHA (algorithm) {
15020 algorithm = algorithm.toLowerCase()
15022 var Algorithm = exports[algorithm]
15023 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
15025 return new Algorithm()
15028 exports.sha = require('./sha')
15029 exports.sha1 = require('./sha1')
15030 exports.sha224 = require('./sha224')
15031 exports.sha256 = require('./sha256')
15032 exports.sha384 = require('./sha384')
15033 exports.sha512 = require('./sha512')
15035 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
15036 (function (Buffer){
15038 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
15039 * in FIPS PUB
180-
1
15040 * This source code is derived from sha1.js of the same repository.
15041 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
15042 * operation was added.
15045 var inherits = require('inherits')
15046 var Hash = require('./hash')
15048 var W = new Array(
80)
15054 Hash.call(this,
64,
56)
15057 inherits(Sha, Hash)
15059 Sha.prototype.init = function () {
15060 this._a =
0x67452301 |
0
15061 this._b =
0xefcdab89 |
0
15062 this._c =
0x98badcfe |
0
15063 this._d =
0x10325476 |
0
15064 this._e =
0xc3d2e1f0 |
0
15070 * Bitwise rotate a
32-bit number to the left.
15072 function rol (num, cnt) {
15073 return (num << cnt) | (num
>>> (
32 - cnt))
15076 Sha.prototype._update = function (M) {
15088 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
15089 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15091 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
15092 function loop (w, f) {
15095 var t = rol(a,
5) + f + e + w + k
15106 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15107 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15109 while (j <
40) loop(calcW(), b ^ c ^ d)
15111 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15113 while (j <
80) loop(calcW(), b ^ c ^ d)
15115 this._a = (a + this._a) |
0
15116 this._b = (b + this._b) |
0
15117 this._c = (c + this._c) |
0
15118 this._d = (d + this._d) |
0
15119 this._e = (e + this._e) |
0
15122 Sha.prototype._hash = function () {
15123 var H = new Buffer(
20)
15125 H.writeInt32BE(this._a |
0,
0)
15126 H.writeInt32BE(this._b |
0,
4)
15127 H.writeInt32BE(this._c |
0,
8)
15128 H.writeInt32BE(this._d |
0,
12)
15129 H.writeInt32BE(this._e |
0,
16)
15134 module.exports = Sha
15137 }).call(this,require("buffer").Buffer)
15138 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
15139 (function (Buffer){
15141 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
15142 * in FIPS PUB
180-
1
15143 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
15144 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15145 * Distributed under the BSD License
15146 * See http://pajhome.org.uk/crypt/md5 for details.
15149 var inherits = require('inherits')
15150 var Hash = require('./hash')
15152 var W = new Array(
80)
15158 Hash.call(this,
64,
56)
15161 inherits(Sha1, Hash)
15163 Sha1.prototype.init = function () {
15164 this._a =
0x67452301 |
0
15165 this._b =
0xefcdab89 |
0
15166 this._c =
0x98badcfe |
0
15167 this._d =
0x10325476 |
0
15168 this._e =
0xc3d2e1f0 |
0
15174 * Bitwise rotate a
32-bit number to the left.
15176 function rol (num, cnt) {
15177 return (num << cnt) | (num
>>> (
32 - cnt))
15180 Sha1.prototype._update = function (M) {
15191 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15192 function loop (w, f) {
15195 var t = rol(a,
5) + f + e + w + k
15206 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15207 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15209 while (j <
40) loop(calcW(), b ^ c ^ d)
15211 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15213 while (j <
80) loop(calcW(), b ^ c ^ d)
15215 this._a = (a + this._a) |
0
15216 this._b = (b + this._b) |
0
15217 this._c = (c + this._c) |
0
15218 this._d = (d + this._d) |
0
15219 this._e = (e + this._e) |
0
15222 Sha1.prototype._hash = function () {
15223 var H = new Buffer(
20)
15225 H.writeInt32BE(this._a |
0,
0)
15226 H.writeInt32BE(this._b |
0,
4)
15227 H.writeInt32BE(this._c |
0,
8)
15228 H.writeInt32BE(this._d |
0,
12)
15229 H.writeInt32BE(this._e |
0,
16)
15234 module.exports = Sha1
15236 }).call(this,require("buffer").Buffer)
15237 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
15238 (function (Buffer){
15240 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15242 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15243 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15247 var inherits = require('inherits')
15248 var Sha256 = require('./sha256')
15249 var Hash = require('./hash')
15251 var W = new Array(
64)
15253 function Sha224 () {
15256 this._w = W // new Array(
64)
15258 Hash.call(this,
64,
56)
15261 inherits(Sha224, Sha256)
15263 Sha224.prototype.init = function () {
15264 this._a =
0xc1059ed8 |
0
15265 this._b =
0x367cd507 |
0
15266 this._c =
0x3070dd17 |
0
15267 this._d =
0xf70e5939 |
0
15268 this._e =
0xffc00b31 |
0
15269 this._f =
0x68581511 |
0
15270 this._g =
0x64f98fa7 |
0
15271 this._h =
0xbefa4fa4 |
0
15276 Sha224.prototype._hash = function () {
15277 var H = new Buffer(
28)
15279 H.writeInt32BE(this._a,
0)
15280 H.writeInt32BE(this._b,
4)
15281 H.writeInt32BE(this._c,
8)
15282 H.writeInt32BE(this._d,
12)
15283 H.writeInt32BE(this._e,
16)
15284 H.writeInt32BE(this._f,
20)
15285 H.writeInt32BE(this._g,
24)
15290 module.exports = Sha224
15292 }).call(this,require("buffer").Buffer)
15293 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
15294 (function (Buffer){
15296 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15298 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15299 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15303 var inherits = require('inherits')
15304 var Hash = require('./hash')
15307 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
15308 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
15309 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
15310 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
15311 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
15312 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
15313 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
15314 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
15315 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
15316 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
15317 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
15318 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
15319 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
15320 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
15321 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
15322 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
15325 var W = new Array(
64)
15327 function Sha256 () {
15330 this._w = W // new Array(
64)
15332 Hash.call(this,
64,
56)
15335 inherits(Sha256, Hash)
15337 Sha256.prototype.init = function () {
15338 this._a =
0x6a09e667 |
0
15339 this._b =
0xbb67ae85 |
0
15340 this._c =
0x3c6ef372 |
0
15341 this._d =
0xa54ff53a |
0
15342 this._e =
0x510e527f |
0
15343 this._f =
0x9b05688c |
0
15344 this._g =
0x1f83d9ab |
0
15345 this._h =
0x5be0cd19 |
0
15350 function S (X, n) {
15351 return (X
>>> n) | (X << (
32 - n))
15354 function R (X, n) {
15358 function Ch (x, y, z) {
15359 return ((x & y) ^ ((~x) & z))
15362 function Maj (x, y, z) {
15363 return ((x & y) ^ (x & z) ^ (y & z))
15366 function Sigma0256 (x) {
15367 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
15370 function Sigma1256 (x) {
15371 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
15374 function Gamma0256 (x) {
15375 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
15378 function Gamma1256 (x) {
15379 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
15382 Sha256.prototype._update = function (M) {
15385 var a = this._a |
0
15386 var b = this._b |
0
15387 var c = this._c |
0
15388 var d = this._d |
0
15389 var e = this._e |
0
15390 var f = this._f |
0
15391 var g = this._g |
0
15392 var h = this._h |
0
15396 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
15397 function loop (w) {
15400 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
15401 var T2 = Sigma0256(a) + Maj(a, b, c)
15415 while (j <
16) loop(M.readInt32BE(j *
4))
15416 while (j <
64) loop(calcW())
15418 this._a = (a + this._a) |
0
15419 this._b = (b + this._b) |
0
15420 this._c = (c + this._c) |
0
15421 this._d = (d + this._d) |
0
15422 this._e = (e + this._e) |
0
15423 this._f = (f + this._f) |
0
15424 this._g = (g + this._g) |
0
15425 this._h = (h + this._h) |
0
15428 Sha256.prototype._hash = function () {
15429 var H = new Buffer(
32)
15431 H.writeInt32BE(this._a,
0)
15432 H.writeInt32BE(this._b,
4)
15433 H.writeInt32BE(this._c,
8)
15434 H.writeInt32BE(this._d,
12)
15435 H.writeInt32BE(this._e,
16)
15436 H.writeInt32BE(this._f,
20)
15437 H.writeInt32BE(this._g,
24)
15438 H.writeInt32BE(this._h,
28)
15443 module.exports = Sha256
15445 }).call(this,require("buffer").Buffer)
15446 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
15447 (function (Buffer){
15448 var inherits = require('inherits')
15449 var SHA512 = require('./sha512')
15450 var Hash = require('./hash')
15452 var W = new Array(
160)
15454 function Sha384 () {
15458 Hash.call(this,
128,
112)
15461 inherits(Sha384, SHA512)
15463 Sha384.prototype.init = function () {
15464 this._a =
0xcbbb9d5d |
0
15465 this._b =
0x629a292a |
0
15466 this._c =
0x9159015a |
0
15467 this._d =
0x152fecd8 |
0
15468 this._e =
0x67332667 |
0
15469 this._f =
0x8eb44a87 |
0
15470 this._g =
0xdb0c2e0d |
0
15471 this._h =
0x47b5481d |
0
15473 this._al =
0xc1059ed8 |
0
15474 this._bl =
0x367cd507 |
0
15475 this._cl =
0x3070dd17 |
0
15476 this._dl =
0xf70e5939 |
0
15477 this._el =
0xffc00b31 |
0
15478 this._fl =
0x68581511 |
0
15479 this._gl =
0x64f98fa7 |
0
15480 this._hl =
0xbefa4fa4 |
0
15485 Sha384.prototype._hash = function () {
15486 var H = new Buffer(
48)
15488 function writeInt64BE (h, l, offset) {
15489 H.writeInt32BE(h, offset)
15490 H.writeInt32BE(l, offset +
4)
15493 writeInt64BE(this._a, this._al,
0)
15494 writeInt64BE(this._b, this._bl,
8)
15495 writeInt64BE(this._c, this._cl,
16)
15496 writeInt64BE(this._d, this._dl,
24)
15497 writeInt64BE(this._e, this._el,
32)
15498 writeInt64BE(this._f, this._fl,
40)
15503 module.exports = Sha384
15505 }).call(this,require("buffer").Buffer)
15506 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
15507 (function (Buffer){
15508 var inherits = require('inherits')
15509 var Hash = require('./hash')
15512 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
15513 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
15514 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
15515 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
15516 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
15517 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
15518 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
15519 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
15520 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
15521 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
15522 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
15523 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
15524 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
15525 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
15526 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
15527 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
15528 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
15529 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
15530 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
15531 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
15532 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
15533 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
15534 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
15535 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
15536 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
15537 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
15538 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
15539 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
15540 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
15541 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
15542 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
15543 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
15544 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
15545 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
15546 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
15547 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
15548 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
15549 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
15550 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
15551 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
15554 var W = new Array(
160)
15556 function Sha512 () {
15560 Hash.call(this,
128,
112)
15563 inherits(Sha512, Hash)
15565 Sha512.prototype.init = function () {
15566 this._a =
0x6a09e667 |
0
15567 this._b =
0xbb67ae85 |
0
15568 this._c =
0x3c6ef372 |
0
15569 this._d =
0xa54ff53a |
0
15570 this._e =
0x510e527f |
0
15571 this._f =
0x9b05688c |
0
15572 this._g =
0x1f83d9ab |
0
15573 this._h =
0x5be0cd19 |
0
15575 this._al =
0xf3bcc908 |
0
15576 this._bl =
0x84caa73b |
0
15577 this._cl =
0xfe94f82b |
0
15578 this._dl =
0x5f1d36f1 |
0
15579 this._el =
0xade682d1 |
0
15580 this._fl =
0x2b3e6c1f |
0
15581 this._gl =
0xfb41bd6b |
0
15582 this._hl =
0x137e2179 |
0
15587 function S (X, Xl, n) {
15588 return (X
>>> n) | (Xl << (
32 - n))
15591 function Ch (x, y, z) {
15592 return ((x & y) ^ ((~x) & z))
15595 function Maj (x, y, z) {
15596 return ((x & y) ^ (x & z) ^ (y & z))
15599 Sha512.prototype._update = function (M) {
15602 var a = this._a |
0
15603 var b = this._b |
0
15604 var c = this._c |
0
15605 var d = this._d |
0
15606 var e = this._e |
0
15607 var f = this._f |
0
15608 var g = this._g |
0
15609 var h = this._h |
0
15611 var al = this._al |
0
15612 var bl = this._bl |
0
15613 var cl = this._cl |
0
15614 var dl = this._dl |
0
15615 var el = this._el |
0
15616 var fl = this._fl |
0
15617 var gl = this._gl |
0
15618 var hl = this._hl |
0
15622 function calcW () {
15623 var x = W[j -
15 *
2]
15624 var xl = W[j -
15 *
2 +
1]
15625 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
15626 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
15629 xl = W[j -
2 *
2 +
1]
15630 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
15631 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
15633 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
15634 var Wi7 = W[j -
7 *
2]
15635 var Wi7l = W[j -
7 *
2 +
1]
15637 var Wi16 = W[j -
16 *
2]
15638 var Wi16l = W[j -
16 *
2 +
1]
15640 Wil = gamma0l + Wi7l
15641 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
15642 Wil = Wil + gamma1l
15643 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
15645 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
15652 var maj = Maj(a, b, c)
15653 var majl = Maj(al, bl, cl)
15655 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
15656 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
15657 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
15658 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
15660 // t1 = h + sigma1 + ch + K[i] + W[i]
15664 var ch = Ch(e, f, g)
15665 var chl = Ch(el, fl, gl)
15667 var t1l = hl + sigma1l
15668 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
15670 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
15672 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
15674 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
15676 // t2 = sigma0 + maj
15677 var t2l = sigma0l + majl
15678 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
15686 el = (dl + t1l) |
0
15687 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15694 al = (t1l + t2l) |
0
15695 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
15702 Wi = M.readInt32BE(j *
4)
15703 Wil = M.readInt32BE(j *
4 +
4)
15713 this._al = (this._al + al) |
0
15714 this._bl = (this._bl + bl) |
0
15715 this._cl = (this._cl + cl) |
0
15716 this._dl = (this._dl + dl) |
0
15717 this._el = (this._el + el) |
0
15718 this._fl = (this._fl + fl) |
0
15719 this._gl = (this._gl + gl) |
0
15720 this._hl = (this._hl + hl) |
0
15722 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
15723 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
15724 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
15725 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15726 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
15727 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
15728 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
15729 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
15732 Sha512.prototype._hash = function () {
15733 var H = new Buffer(
64)
15735 function writeInt64BE (h, l, offset) {
15736 H.writeInt32BE(h, offset)
15737 H.writeInt32BE(l, offset +
4)
15740 writeInt64BE(this._a, this._al,
0)
15741 writeInt64BE(this._b, this._bl,
8)
15742 writeInt64BE(this._c, this._cl,
16)
15743 writeInt64BE(this._d, this._dl,
24)
15744 writeInt64BE(this._e, this._el,
32)
15745 writeInt64BE(this._f, this._fl,
40)
15746 writeInt64BE(this._g, this._gl,
48)
15747 writeInt64BE(this._h, this._hl,
56)
15752 module.exports = Sha512
15754 }).call(this,require(
"buffer").Buffer)
15755 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
15756 (function (Buffer){
15758 var createHash = require('create-hash/browser');
15759 var inherits = require('inherits')
15761 var Transform = require('stream').Transform
15763 var ZEROS = new Buffer(
128)
15766 function Hmac(alg, key) {
15767 Transform.call(this)
15769 if (typeof key === 'string') {
15770 key = new Buffer(key)
15773 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
15778 if (key.length
> blocksize) {
15779 key = createHash(alg).update(key).digest()
15781 } else if (key.length < blocksize) {
15782 key = Buffer.concat([key, ZEROS], blocksize)
15785 var ipad = this._ipad = new Buffer(blocksize)
15786 var opad = this._opad = new Buffer(blocksize)
15788 for (var i =
0; i < blocksize; i++) {
15789 ipad[i] = key[i] ^
0x36
15790 opad[i] = key[i] ^
0x5C
15793 this._hash = createHash(alg).update(ipad)
15796 inherits(Hmac, Transform)
15798 Hmac.prototype.update = function (data, enc) {
15799 this._hash.update(data, enc)
15804 Hmac.prototype._transform = function (data, _, next) {
15805 this._hash.update(data)
15810 Hmac.prototype._flush = function (next) {
15811 this.push(this.digest())
15816 Hmac.prototype.digest = function (enc) {
15817 var h = this._hash.digest()
15819 return createHash(this._alg).update(this._opad).update(h).digest(enc)
15822 module.exports = function createHmac(alg, key) {
15823 return new Hmac(alg, key)
15826 }).call(this,require("buffer").Buffer)
15827 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
15828 arguments[
4][
12][
0].apply(exports,arguments)
15829 },{"dup":
12}],
47:[function(require,module,exports){
15830 var assert = require('assert')
15831 var BigInteger = require('bigi')
15833 var Point = require('./point')
15835 function Curve(p, a, b, Gx, Gy, n, h) {
15839 this.G = Point.fromAffine(this, Gx, Gy)
15843 this.infinity = new Point(this, null, null, BigInteger.ZERO)
15846 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
15849 Curve.prototype.pointFromX = function(isOdd, x) {
15850 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
15851 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
15854 if (beta.isEven() ^ !isOdd) {
15855 y = this.p.subtract(y) // -y % p
15858 return Point.fromAffine(this, x, y)
15861 Curve.prototype.isInfinity = function(Q) {
15862 if (Q === this.infinity) return true
15864 return Q.z.signum() ===
0 && Q.y.signum() !==
0
15867 Curve.prototype.isOnCurve = function(Q) {
15868 if (this.isInfinity(Q)) return true
15876 // Check that xQ and yQ are integers in the interval [
0, p -
1]
15877 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
15878 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
15880 // and check that y^
2 = x^
3 + ax + b (mod p)
15881 var lhs = y.square().mod(p)
15882 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
15883 return lhs.equals(rhs)
15887 * Validate an elliptic curve point.
15889 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
15891 Curve.prototype.validate = function(Q) {
15893 assert(!this.isInfinity(Q), 'Point is at infinity')
15894 assert(this.isOnCurve(Q), 'Point is not on the curve')
15896 // Check nQ = O (where Q is a scalar multiple of G)
15897 var nQ = Q.multiply(this.n)
15898 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
15903 module.exports = Curve
15905 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
15908 "p": "fffffffdffffffffffffffffffffffff",
15909 "a": "fffffffdfffffffffffffffffffffffc",
15910 "b": "e87579c11079f43dd824993c2cee5ed3",
15911 "n": "fffffffe0000000075a30d1b9038a115",
15913 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
15914 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
15917 "p": "fffffffffffffffffffffffffffffffeffffac73",
15920 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
15922 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
15923 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
15926 "p": "ffffffffffffffffffffffffffffffff7fffffff",
15927 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
15928 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
15929 "n": "
0100000000000000000001f4c8f927aed3ca752257",
15931 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
15932 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
15935 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
15938 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
15940 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
15941 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
15944 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
15945 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
15946 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
15947 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
15949 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
15950 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
15953 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
15956 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
15958 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
15959 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
15962 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
15963 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
15964 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
15965 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
15967 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
15968 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
15972 },{}],
49:[function(require,module,exports){
15973 var Point = require('./point')
15974 var Curve = require('./curve')
15976 var getCurveByName = require('./names')
15981 getCurveByName: getCurveByName
15984 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
15985 var BigInteger = require('bigi')
15987 var curves = require('./curves')
15988 var Curve = require('./curve')
15990 function getCurveByName(name) {
15991 var curve = curves[name]
15992 if (!curve) return null
15994 var p = new BigInteger(curve.p,
16)
15995 var a = new BigInteger(curve.a,
16)
15996 var b = new BigInteger(curve.b,
16)
15997 var n = new BigInteger(curve.n,
16)
15998 var h = new BigInteger(curve.h,
16)
15999 var Gx = new BigInteger(curve.Gx,
16)
16000 var Gy = new BigInteger(curve.Gy,
16)
16002 return new Curve(p, a, b, Gx, Gy, n, h)
16005 module.exports = getCurveByName
16007 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
16008 (function (Buffer){
16009 var assert = require('assert')
16010 var BigInteger = require('bigi')
16012 var THREE = BigInteger.valueOf(
3)
16014 function Point(curve, x, y, z) {
16015 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
16023 this.compressed = true
16026 Object.defineProperty(Point.prototype, 'zInv', {
16028 if (this._zInv === null) {
16029 this._zInv = this.z.modInverse(this.curve.p)
16036 Object.defineProperty(Point.prototype, 'affineX', {
16038 return this.x.multiply(this.zInv).mod(this.curve.p)
16042 Object.defineProperty(Point.prototype, 'affineY', {
16044 return this.y.multiply(this.zInv).mod(this.curve.p)
16048 Point.fromAffine = function(curve, x, y) {
16049 return new Point(curve, x, y, BigInteger.ONE)
16052 Point.prototype.equals = function(other) {
16053 if (other === this) return true
16054 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
16055 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
16057 // u = Y2 * Z1 - Y1 * Z2
16058 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
16060 if (u.signum() !==
0) return false
16062 // v = X2 * Z1 - X1 * Z2
16063 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
16065 return v.signum() ===
0
16068 Point.prototype.negate = function() {
16069 var y = this.curve.p.subtract(this.y)
16071 return new Point(this.curve, this.x, y, this.z)
16074 Point.prototype.add = function(b) {
16075 if (this.curve.isInfinity(this)) return b
16076 if (this.curve.isInfinity(b)) return this
16083 // u = Y2 * Z1 - Y1 * Z2
16084 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
16085 // v = X2 * Z1 - X1 * Z2
16086 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
16088 if (v.signum() ===
0) {
16089 if (u.signum() ===
0) {
16090 return this.twice() // this == b, so double
16093 return this.curve.infinity // this = -b, so infinity
16096 var v2 = v.square()
16097 var v3 = v2.multiply(v)
16098 var x1v2 = x1.multiply(v2)
16099 var zu2 = u.square().multiply(this.z)
16101 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
16102 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
16103 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
16104 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)
16105 // z3 = v^
3 * z1 * z2
16106 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
16108 return new Point(this.curve, x3, y3, z3)
16111 Point.prototype.twice = function() {
16112 if (this.curve.isInfinity(this)) return this
16113 if (this.y.signum() ===
0) return this.curve.infinity
16118 var y1z1 = y1.multiply(this.z)
16119 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
16120 var a = this.curve.a
16122 // w =
3 * x1^
2 + a * z1^
2
16123 var w = x1.square().multiply(THREE)
16125 if (a.signum() !==
0) {
16126 w = w.add(this.z.square().multiply(a))
16129 w = w.mod(this.curve.p)
16130 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
16131 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
16132 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
16133 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
16134 // z3 =
8 * (y1 * z1)^
3
16135 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
16137 return new Point(this.curve, x3, y3, z3)
16140 // Simple NAF (Non-Adjacent Form) multiplication algorithm
16141 // TODO: modularize the multiplication algorithm
16142 Point.prototype.multiply = function(k) {
16143 if (this.curve.isInfinity(this)) return this
16144 if (k.signum() ===
0) return this.curve.infinity
16147 var h = e.multiply(THREE)
16149 var neg = this.negate()
16152 for (var i = h.bitLength() -
2; i
> 0; --i) {
16155 var hBit = h.testBit(i)
16156 var eBit = e.testBit(i)
16158 if (hBit != eBit) {
16159 R = R.add(hBit ? this : neg)
16166 // Compute this*j + x*k (simultaneous multiplication)
16167 Point.prototype.multiplyTwo = function(j, x, k) {
16170 if (j.bitLength()
> k.bitLength())
16171 i = j.bitLength() -
1
16173 i = k.bitLength() -
1
16175 var R = this.curve.infinity
16176 var both = this.add(x)
16181 var jBit = j.testBit(i)
16182 var kBit = k.testBit(i)
16203 Point.prototype.getEncoded = function(compressed) {
16204 if (compressed == undefined) compressed = this.compressed
16205 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
16207 var x = this.affineX
16208 var y = this.affineY
16212 // Determine size of q in bytes
16213 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
16217 buffer = new Buffer(
1 + byteLength)
16218 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
16222 buffer = new Buffer(
1 + byteLength + byteLength)
16223 buffer.writeUInt8(
0x04,
0)
16225 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
16228 x.toBuffer(byteLength).copy(buffer,
1)
16233 Point.decodeFrom = function(curve, buffer) {
16234 var type = buffer.readUInt8(
0)
16235 var compressed = (type !==
4)
16237 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
16238 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
16242 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
16243 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
16245 var isOdd = (type ===
0x03)
16246 Q = curve.pointFromX(isOdd, x)
16249 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
16251 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
16252 Q = Point.fromAffine(curve, x, y)
16255 Q.compressed = compressed
16259 Point.prototype.toString = function () {
16260 if (this.curve.isInfinity(this)) return '(INFINITY)'
16262 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
16265 module.exports = Point
16267 }).call(this,require("buffer").Buffer)
16268 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
16269 (function (process,global,Buffer){
16272 var crypto = global.crypto || global.msCrypto
16273 if(crypto && crypto.getRandomValues) {
16274 module.exports = randomBytes;
16276 module.exports = oldBrowser;
16278 function randomBytes(size, cb) {
16279 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
16280 /* This will not work in older browsers.
16281 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
16284 crypto.getRandomValues(bytes);
16285 if (typeof cb === 'function') {
16286 return process.nextTick(function () {
16292 function oldBrowser() {
16294 'secure random number generation not supported by this browser\n'+
16295 'use chrome, FireFox or Internet Explorer
11'
16299 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
16300 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
16301 (function (Buffer){
16304 function getFunctionName(fn) {
16305 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
16308 function getTypeTypeName(type) {
16309 if (nativeTypes.Function(type)) {
16310 type = type.toJSON ? type.toJSON() : getFunctionName(type);
16312 if (nativeTypes.Object(type)) return JSON.stringify(type);
16317 function getValueTypeName(value) {
16318 if (nativeTypes.Null(value)) return '';
16320 return getFunctionName(value.constructor);
16323 function tfErrorString(type, value) {
16324 var typeTypeName = getTypeTypeName(type);
16325 var valueTypeName = getValueTypeName(value);
16327 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
16330 function tfPropertyErrorString(type, name, value) {
16331 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
16334 var nativeTypes = {
16335 Array: (function (_Array) {
16336 function Array(_x) {
16337 return _Array.apply(this, arguments);
16340 Array.toString = function () {
16341 return _Array.toString();
16345 })(function (value) {
16346 return value !== null && value !== undefined && value.constructor === Array;
16348 Boolean: function Boolean(value) {
16349 return typeof value === 'boolean';
16351 Buffer: (function (_Buffer) {
16352 function Buffer(_x2) {
16353 return _Buffer.apply(this, arguments);
16356 Buffer.toString = function () {
16357 return _Buffer.toString();
16361 })(function (value) {
16362 return Buffer.isBuffer(value);
16364 Function: function Function(value) {
16365 return typeof value === 'function';
16367 Null: function Null(value) {
16368 return value === undefined || value === null;
16370 Number: function Number(value) {
16371 return typeof value === 'number';
16373 Object: function Object(value) {
16374 return typeof value === 'object';
16376 String: function String(value) {
16377 return typeof value === 'string';
16384 function tJSON(type) {
16385 return type && type.toJSON ? type.toJSON() : type;
16388 function sJSON(type) {
16389 var json = tJSON(type);
16390 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
16394 arrayOf: function arrayOf(type) {
16395 function arrayOf(value, strict) {
16397 return nativeTypes.Array(value) && value.every(function (x) {
16398 return typeforce(type, x, strict);
16404 arrayOf.toJSON = function () {
16405 return [tJSON(type)];
16411 maybe: function maybe(type) {
16412 function maybe(value, strict) {
16413 return nativeTypes.Null(value) || typeforce(type, value, strict);
16415 maybe.toJSON = function () {
16416 return '?' + sJSON(type);
16422 object: function object(type) {
16423 function object(value, strict) {
16424 typeforce(nativeTypes.Object, value, strict);
16426 var propertyName, propertyType, propertyValue;
16429 for (propertyName in type) {
16430 propertyType = type[propertyName];
16431 propertyValue = value[propertyName];
16433 typeforce(propertyType, propertyValue, strict);
16436 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
16440 for (propertyName in value) {
16441 if (type[propertyName]) continue;
16443 throw new TypeError('Unexpected property "' + propertyName + '"');
16449 object.toJSON = function () {
16456 oneOf: function oneOf() {
16457 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
16458 types[_key] = arguments[_key];
16461 function oneOf(value, strict) {
16462 return types.some(function (type) {
16464 return typeforce(type, value, strict);
16470 oneOf.toJSON = function () {
16471 return types.map(sJSON).join('|');
16477 quacksLike: function quacksLike(type) {
16478 function quacksLike(value, strict) {
16479 return type === getValueTypeName(value);
16481 quacksLike.toJSON = function () {
16488 tuple: function tuple() {
16489 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
16490 types[_key2] = arguments[_key2];
16493 function tuple(value, strict) {
16494 return types.every(function (type, i) {
16495 return typeforce(type, value[i], strict);
16498 tuple.toJSON = function () {
16499 return '(' + types.map(sJSON).join(', ') + ')';
16505 value: function value(expected) {
16506 function value(actual) {
16507 return actual === expected;
16509 value.toJSON = function () {
16517 function compile(type) {
16518 if (nativeTypes.String(type)) {
16519 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
16521 return nativeTypes[type] || otherTypes.quacksLike(type);
16522 } else if (type && nativeTypes.Object(type)) {
16523 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
16527 for (var propertyName in type) {
16528 compiled[propertyName] = compile(type[propertyName]);
16531 return otherTypes.object(compiled);
16532 } else if (nativeTypes.Function(type)) {
16536 return otherTypes.value(type);
16539 function typeforce(_x3, _x4, _x5) {
16542 _function: while (_again) {
16548 if (nativeTypes.Function(type)) {
16549 if (type(value, strict)) return true;
16551 throw new TypeError(tfErrorString(type, value));
16555 _x3 = compile(type);
16559 continue _function;
16563 // assign all types to typeforce function
16565 Object.keys(nativeTypes).forEach(function (typeName) {
16566 var nativeType = nativeTypes[typeName];
16567 nativeType.toJSON = function () {
16571 typeforce[typeName] = nativeType;
16574 for (typeName in otherTypes) {
16575 typeforce[typeName] = otherTypes[typeName];
16578 module.exports = typeforce;
16579 module.exports.compile = compile;
16580 }).call(this,require("buffer").Buffer)
16581 },{"buffer":
7}],
54:[function(require,module,exports){
16582 (function (Buffer){
16583 var assert = require('assert')
16584 var base58check = require('bs58check')
16585 var typeForce = require('typeforce')
16586 var networks = require('./networks')
16587 var scripts = require('./scripts')
16589 function findScriptTypeByVersion (version) {
16590 for (var networkName in networks) {
16591 var network = networks[networkName]
16593 if (version === network.pubKeyHash) return 'pubkeyhash'
16594 if (version === network.scriptHash) return 'scripthash'
16598 function Address (hash, version) {
16599 typeForce('Buffer', hash)
16601 assert.strictEqual(hash.length,
20, 'Invalid hash length')
16602 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
16605 this.version = version
16608 Address.fromBase58Check = function (string) {
16609 var payload = base58check.decode(string)
16610 var version = payload.readUInt8(
0)
16611 var hash = payload.slice(
1)
16613 return new Address(hash, version)
16616 Address.fromOutputScript = function (script, network) {
16617 network = network || networks.bitcoin
16619 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
16620 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
16622 assert(false, script.toASM() + ' has no matching Address')
16625 Address.prototype.toBase58Check = function () {
16626 var payload = new Buffer(
21)
16627 payload.writeUInt8(this.version,
0)
16628 this.hash.copy(payload,
1)
16630 return base58check.encode(payload)
16633 Address.prototype.toOutputScript = function () {
16634 var scriptType = findScriptTypeByVersion(this.version)
16636 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
16637 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
16639 assert(false, this.toString() + ' has no matching Script')
16642 Address.prototype.toString = Address.prototype.toBase58Check
16644 module.exports = Address
16646 }).call(this,require("buffer").Buffer)
16647 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
16648 var bs58check = require('bs58check')
16650 function decode () {
16651 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16653 return bs58check.decode.apply(undefined, arguments)
16656 function encode () {
16657 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16659 return bs58check.encode.apply(undefined, arguments)
16667 },{"bs58check":
31}],
56:[function(require,module,exports){
16668 (function (Buffer){
16669 var assert = require('assert')
16670 var bufferutils = require('./bufferutils')
16671 var crypto = require('./crypto')
16673 var Transaction = require('./transaction')
16675 function Block () {
16677 this.prevHash = null
16678 this.merkleRoot = null
16684 Block.fromBuffer = function (buffer) {
16685 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
16688 function readSlice (n) {
16690 return buffer.slice(offset - n, offset)
16693 function readUInt32 () {
16694 var i = buffer.readUInt32LE(offset)
16699 var block = new Block()
16700 block.version = readUInt32()
16701 block.prevHash = readSlice(
32)
16702 block.merkleRoot = readSlice(
32)
16703 block.timestamp = readUInt32()
16704 block.bits = readUInt32()
16705 block.nonce = readUInt32()
16707 if (buffer.length ===
80) return block
16709 function readVarInt () {
16710 var vi = bufferutils.readVarInt(buffer, offset)
16715 // FIXME: poor performance
16716 function readTransaction () {
16717 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16719 offset += tx.toBuffer().length
16723 var nTransactions = readVarInt()
16724 block.transactions = []
16726 for (var i =
0; i < nTransactions; ++i) {
16727 var tx = readTransaction()
16728 block.transactions.push(tx)
16734 Block.fromHex = function (hex) {
16735 return Block.fromBuffer(new Buffer(hex, 'hex'))
16738 Block.prototype.getHash = function () {
16739 return crypto.hash256(this.toBuffer(true))
16742 Block.prototype.getId = function () {
16743 return bufferutils.reverse(this.getHash()).toString('hex')
16746 Block.prototype.getUTCDate = function () {
16747 var date = new Date(
0) // epoch
16748 date.setUTCSeconds(this.timestamp)
16753 Block.prototype.toBuffer = function (headersOnly) {
16754 var buffer = new Buffer(
80)
16757 function writeSlice (slice) {
16758 slice.copy(buffer, offset)
16759 offset += slice.length
16762 function writeUInt32 (i) {
16763 buffer.writeUInt32LE(i, offset)
16767 writeUInt32(this.version)
16768 writeSlice(this.prevHash)
16769 writeSlice(this.merkleRoot)
16770 writeUInt32(this.timestamp)
16771 writeUInt32(this.bits)
16772 writeUInt32(this.nonce)
16774 if (headersOnly || !this.transactions) return buffer
16776 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
16777 var txBuffers = this.transactions.map(function (tx) {
16778 return tx.toBuffer()
16781 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
16784 Block.prototype.toHex = function (headersOnly) {
16785 return this.toBuffer(headersOnly).toString('hex')
16788 module.exports = Block
16790 }).call(this,require("buffer").Buffer)
16791 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
16792 (function (Buffer){
16793 var assert = require('assert')
16794 var opcodes = require('./opcodes')
16796 // https://github.com/feross/buffer/blob/master/index.js#L1127
16797 function verifuint (value, max) {
16798 assert(typeof value === 'number', 'cannot write a non-number as a number')
16799 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
16800 assert(value <= max, 'value is larger than maximum value for type')
16801 assert(Math.floor(value) === value, 'value has a fractional component')
16804 function pushDataSize (i) {
16805 return i < opcodes.OP_PUSHDATA1 ?
1
16811 function readPushDataInt (buffer, offset) {
16812 var opcode = buffer.readUInt8(offset)
16816 if (opcode < opcodes.OP_PUSHDATA1) {
16821 } else if (opcode === opcodes.OP_PUSHDATA1) {
16822 if (offset +
2 > buffer.length) return null
16823 number = buffer.readUInt8(offset +
1)
16827 } else if (opcode === opcodes.OP_PUSHDATA2) {
16828 if (offset +
3 > buffer.length) return null
16829 number = buffer.readUInt16LE(offset +
1)
16834 if (offset +
5 > buffer.length) return null
16835 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
16837 number = buffer.readUInt32LE(offset +
1)
16848 function readUInt64LE (buffer, offset) {
16849 var a = buffer.readUInt32LE(offset)
16850 var b = buffer.readUInt32LE(offset +
4)
16853 verifuint(b + a,
0x001fffffffffffff)
16858 function readVarInt (buffer, offset) {
16859 var t = buffer.readUInt8(offset)
16868 } else if (t <
254) {
16869 number = buffer.readUInt16LE(offset +
1)
16873 } else if (t <
255) {
16874 number = buffer.readUInt32LE(offset +
1)
16879 number = readUInt64LE(buffer, offset +
1)
16889 function writePushDataInt (buffer, number, offset) {
16890 var size = pushDataSize(number)
16894 buffer.writeUInt8(number, offset)
16897 } else if (size ===
2) {
16898 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
16899 buffer.writeUInt8(number, offset +
1)
16902 } else if (size ===
3) {
16903 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
16904 buffer.writeUInt16LE(number, offset +
1)
16908 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
16909 buffer.writeUInt32LE(number, offset +
1)
16915 function writeUInt64LE (buffer, value, offset) {
16916 verifuint(value,
0x001fffffffffffff)
16918 buffer.writeInt32LE(value & -
1, offset)
16919 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16922 function varIntSize (i) {
16925 : i <
0x100000000 ?
5
16929 function writeVarInt (buffer, number, offset) {
16930 var size = varIntSize(number)
16934 buffer.writeUInt8(number, offset)
16937 } else if (size ===
3) {
16938 buffer.writeUInt8(
253, offset)
16939 buffer.writeUInt16LE(number, offset +
1)
16942 } else if (size ===
5) {
16943 buffer.writeUInt8(
254, offset)
16944 buffer.writeUInt32LE(number, offset +
1)
16948 buffer.writeUInt8(
255, offset)
16949 writeUInt64LE(buffer, number, offset +
1)
16955 function varIntBuffer (i) {
16956 var size = varIntSize(i)
16957 var buffer = new Buffer(size)
16958 writeVarInt(buffer, i,
0)
16963 function reverse (buffer) {
16964 var buffer2 = new Buffer(buffer)
16965 Array.prototype.reverse.call(buffer2)
16970 pushDataSize: pushDataSize,
16971 readPushDataInt: readPushDataInt,
16972 readUInt64LE: readUInt64LE,
16973 readVarInt: readVarInt,
16975 varIntBuffer: varIntBuffer,
16976 varIntSize: varIntSize,
16977 writePushDataInt: writePushDataInt,
16978 writeUInt64LE: writeUInt64LE,
16979 writeVarInt: writeVarInt
16982 }).call(this,require("buffer").Buffer)
16983 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
16984 var createHash = require('create-hash')
16986 function hash160 (buffer) {
16987 return ripemd160(sha256(buffer))
16990 function hash256 (buffer) {
16991 return sha256(sha256(buffer))
16994 function ripemd160 (buffer) {
16995 return createHash('rmd160').update(buffer).digest()
16998 function sha1 (buffer) {
16999 return createHash('sha1').update(buffer).digest()
17002 function sha256 (buffer) {
17003 return createHash('sha256').update(buffer).digest()
17006 // FIXME: Name not consistent with others
17007 var createHmac = require('create-hmac')
17009 function HmacSHA256 (buffer, secret) {
17010 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17011 return createHmac('sha256', secret).update(buffer).digest()
17014 function HmacSHA512 (buffer, secret) {
17015 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17016 return createHmac('sha512', secret).update(buffer).digest()
17020 ripemd160: ripemd160,
17025 HmacSHA256: HmacSHA256,
17026 HmacSHA512: HmacSHA512
17029 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
17030 (function (Buffer){
17031 var assert = require('assert')
17032 var createHmac = require('create-hmac')
17033 var typeForce = require('typeforce')
17035 var BigInteger = require('bigi')
17036 var ECSignature = require('./ecsignature')
17038 var ZERO = new Buffer([
0])
17039 var ONE = new Buffer([
1])
17041 // https://tools.ietf.org/html/rfc6979#section-
3.2
17042 function deterministicGenerateK (curve, hash, d, checkSig) {
17043 typeForce('Buffer', hash)
17044 typeForce('BigInteger', d)
17046 // FIXME: remove/uncomment for
2.0.0
17047 // typeForce('Function', checkSig)
17049 if (typeof checkSig !== 'function') {
17050 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
17052 checkSig = function (k) {
17055 var e = BigInteger.fromBuffer(hash)
17057 var Q = G.multiply(k)
17059 if (curve.isInfinity(Q))
17062 var r = Q.affineX.mod(n)
17063 if (r.signum() ===
0)
17066 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17067 if (s.signum() ===
0)
17075 assert.equal(hash.length,
32, 'Hash must be
256 bit')
17077 var x = d.toBuffer(
32)
17078 var k = new Buffer(
32)
17079 var v = new Buffer(
32)
17081 // Step A, ignored as hash already provided
17089 k = createHmac('sha256', k)
17097 v = createHmac('sha256', k).update(v).digest()
17100 k = createHmac('sha256', k)
17108 v = createHmac('sha256', k).update(v).digest()
17110 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
17112 v = createHmac('sha256', k).update(v).digest()
17114 var T = BigInteger.fromBuffer(v)
17116 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
17117 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
17118 k = createHmac('sha256', k)
17123 v = createHmac('sha256', k).update(v).digest()
17125 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
17127 v = createHmac('sha256', k).update(v).digest()
17128 T = BigInteger.fromBuffer(v)
17134 function sign (curve, hash, d) {
17137 var e = BigInteger.fromBuffer(hash)
17141 deterministicGenerateK(curve, hash, d, function (k) {
17142 var Q = G.multiply(k)
17144 if (curve.isInfinity(Q))
17147 r = Q.affineX.mod(n)
17148 if (r.signum() ===
0)
17151 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17152 if (s.signum() ===
0)
17158 var N_OVER_TWO = n.shiftRight(
1)
17160 // enforce low S values, see bip62: 'low s values in signatures'
17161 if (s.compareTo(N_OVER_TWO)
> 0) {
17165 return new ECSignature(r, s)
17168 function verifyRaw (curve, e, signature, Q) {
17172 var r = signature.r
17173 var s = signature.s
17175 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
17176 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
17177 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
17180 var c = s.modInverse(n)
17182 //
1.4.4 Compute u1 = es^−
1 mod n
17183 // u2 = rs^−
1 mod n
17184 var u1 = e.multiply(c).mod(n)
17185 var u2 = r.multiply(c).mod(n)
17187 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
17188 var R = G.multiplyTwo(u1, Q, u2)
17189 var v = R.affineX.mod(n)
17191 //
1.4.5 (cont.) Enforce R is not at infinity
17192 if (curve.isInfinity(R)) return false
17194 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
17198 function verify (curve, hash, signature, Q) {
17199 //
1.4.2 H = Hash(M), already done by the user
17201 var e = BigInteger.fromBuffer(hash)
17203 return verifyRaw(curve, e, signature, Q)
17207 * Recover a public key from a signature.
17209 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
17210 * Key Recovery Operation".
17212 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
17214 function recoverPubKey (curve, e, signature, i) {
17215 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
17220 var r = signature.r
17221 var s = signature.s
17223 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
17224 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
17226 // A set LSB signifies that the y-coordinate is odd
17229 // The more significant bit specifies whether we should use the
17230 // first or second candidate key.
17231 var isSecondKey = i
>> 1
17233 //
1.1 Let x = r + jn
17234 var x = isSecondKey ? r.add(n) : r
17235 var R = curve.pointFromX(isYOdd, x)
17237 //
1.4 Check that nR is at infinity
17238 var nR = R.multiply(n)
17239 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
17241 // Compute -e from e
17242 var eNeg = e.negate().mod(n)
17244 //
1.6.1 Compute Q = r^-
1 (sR - eG)
17245 // Q = r^-
1 (sR + -eG)
17246 var rInv = r.modInverse(n)
17248 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
17255 * Calculate pubkey extraction parameter.
17257 * When extracting a pubkey from a signature, we have to
17258 * distinguish four different cases. Rather than putting this
17259 * burden on the verifier, Bitcoin includes a
2-bit value with the
17262 * This function simply tries all four cases and returns the value
17263 * that resulted in a successful pubkey recovery.
17265 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
17266 for (var i =
0; i <
4; i++) {
17267 var Qprime = recoverPubKey(curve, e, signature, i)
17270 if (Qprime.equals(Q)) {
17275 throw new Error('Unable to find valid recovery factor')
17279 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
17280 deterministicGenerateK: deterministicGenerateK,
17281 recoverPubKey: recoverPubKey,
17284 verifyRaw: verifyRaw
17287 }).call(this,require(
"buffer").Buffer)
17288 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
17289 (function (Buffer){
17290 var assert = require('assert')
17291 var base58check = require('bs58check')
17292 var ecdsa = require('./ecdsa')
17293 var networks = require('./networks')
17294 var randomBytes = require('randombytes')
17295 var typeForce = require('typeforce')
17297 var BigInteger = require('bigi')
17298 var ECPubKey = require('./ecpubkey')
17300 var ecurve = require('ecurve')
17301 var secp256k1 = ecurve.getCurveByName('secp256k1')
17303 function ECKey (d, compressed) {
17304 assert(d.signum()
> 0, 'Private key must be greater than
0')
17305 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
17307 var Q = ECKey.curve.G.multiply(d)
17310 this.pub = new ECPubKey(Q, compressed)
17314 ECKey.curve = secp256k1
17316 // Static constructors
17317 ECKey.fromWIF = function (string) {
17318 var payload = base58check.decode(string)
17319 var compressed = false
17321 // Ignore the version byte
17322 payload = payload.slice(
1)
17324 if (payload.length ===
33) {
17325 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
17327 // Truncate the compression flag
17328 payload = payload.slice(
0, -
1)
17332 assert.equal(payload.length,
32, 'Invalid WIF payload length')
17334 var d = BigInteger.fromBuffer(payload)
17335 return new ECKey(d, compressed)
17338 ECKey.makeRandom = function (compressed, rng) {
17339 rng = rng || randomBytes
17341 var buffer = rng(
32)
17342 typeForce('Buffer', buffer)
17343 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
17345 var d = BigInteger.fromBuffer(buffer)
17346 d = d.mod(ECKey.curve.n)
17348 return new ECKey(d, compressed)
17351 // Export functions
17352 ECKey.prototype.toWIF = function (network) {
17353 network = network || networks.bitcoin
17355 var bufferLen = this.pub.compressed ?
34 :
33
17356 var buffer = new Buffer(bufferLen)
17358 buffer.writeUInt8(network.wif,
0)
17359 this.d.toBuffer(
32).copy(buffer,
1)
17361 if (this.pub.compressed) {
17362 buffer.writeUInt8(
0x01,
33)
17365 return base58check.encode(buffer)
17369 ECKey.prototype.sign = function (hash) {
17370 return ecdsa.sign(ECKey.curve, hash, this.d)
17373 module.exports = ECKey
17375 }).call(this,require(
"buffer").Buffer)
17376 },{
"./ecdsa":
59,
"./ecpubkey":
61,
"./networks":
66,
"assert":
5,
"bigi":
3,
"bs58check":
31,
"buffer":
7,
"ecurve":
49,
"randombytes":
52,
"typeforce":
53}],
61:[function(require,module,exports){
17377 (function (Buffer){
17378 var crypto = require('./crypto')
17379 var ecdsa = require('./ecdsa')
17380 var typeForce = require('typeforce')
17381 var networks = require('./networks')
17383 var Address = require('./address')
17385 var ecurve = require('ecurve')
17386 var secp256k1 = ecurve.getCurveByName('secp256k1')
17388 function ECPubKey (Q, compressed) {
17389 if (compressed === undefined) {
17393 typeForce('Point', Q)
17394 typeForce('Boolean', compressed)
17396 this.compressed = compressed
17401 ECPubKey.curve = secp256k1
17403 // Static constructors
17404 ECPubKey.fromBuffer = function (buffer) {
17405 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
17406 return new ECPubKey(Q, Q.compressed)
17409 ECPubKey.fromHex = function (hex) {
17410 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
17414 ECPubKey.prototype.getAddress = function (network) {
17415 network = network || networks.bitcoin
17417 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
17420 ECPubKey.prototype.verify = function (hash, signature) {
17421 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
17424 // Export functions
17425 ECPubKey.prototype.toBuffer = function () {
17426 return this.Q.getEncoded(this.compressed)
17429 ECPubKey.prototype.toHex = function () {
17430 return this.toBuffer().toString('hex')
17433 module.exports = ECPubKey
17435 }).call(this,require(
"buffer").Buffer)
17436 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
17437 (function (Buffer){
17438 var assert = require('assert')
17439 var typeForce = require('typeforce')
17441 var BigInteger = require('bigi')
17443 function ECSignature (r, s) {
17444 typeForce('BigInteger', r)
17445 typeForce('BigInteger', s)
17451 ECSignature.parseCompact = function (buffer) {
17452 assert.equal(buffer.length,
65, 'Invalid signature length')
17453 var i = buffer.readUInt8(
0) -
27
17456 assert.equal(i, i &
7, 'Invalid signature parameter')
17457 var compressed = !!(i &
4)
17459 // Recovery param only
17462 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
17463 var s = BigInteger.fromBuffer(buffer.slice(
33))
17466 compressed: compressed,
17468 signature: new ECSignature(r, s)
17472 ECSignature.fromDER = function (buffer) {
17473 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
17474 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
17475 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
17477 var rLen = buffer.readUInt8(
3)
17478 assert(rLen
> 0, 'R length is zero')
17480 var offset =
4 + rLen
17481 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
17483 var sLen = buffer.readUInt8(offset +
1)
17484 assert(sLen
> 0, 'S length is zero')
17486 var rB = buffer.slice(
4, offset)
17487 var sB = buffer.slice(offset +
2)
17490 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
17491 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
17494 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
17495 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
17498 assert.equal(offset, buffer.length, 'Invalid DER encoding')
17499 var r = BigInteger.fromDERInteger(rB)
17500 var s = BigInteger.fromDERInteger(sB)
17502 assert(r.signum()
>=
0, 'R value is negative')
17503 assert(s.signum()
>=
0, 'S value is negative')
17505 return new ECSignature(r, s)
17508 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
17509 ECSignature.parseScriptSignature = function (buffer) {
17510 var hashType = buffer.readUInt8(buffer.length -
1)
17511 var hashTypeMod = hashType & ~
0x80
17513 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17516 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
17521 ECSignature.prototype.toCompact = function (i, compressed) {
17528 var buffer = new Buffer(
65)
17529 buffer.writeUInt8(i,
0)
17531 this.r.toBuffer(
32).copy(buffer,
1)
17532 this.s.toBuffer(
32).copy(buffer,
33)
17537 ECSignature.prototype.toDER = function () {
17538 var rBa = this.r.toDERInteger()
17539 var sBa = this.s.toDERInteger()
17544 sequence.push(
0x02, rBa.length)
17545 sequence = sequence.concat(rBa)
17548 sequence.push(
0x02, sBa.length)
17549 sequence = sequence.concat(sBa)
17552 sequence.unshift(
0x30, sequence.length)
17554 return new Buffer(sequence)
17557 ECSignature.prototype.toScriptSignature = function (hashType) {
17558 var hashTypeMod = hashType & ~
0x80
17559 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17561 var hashTypeBuffer = new Buffer(
1)
17562 hashTypeBuffer.writeUInt8(hashType,
0)
17564 return Buffer.concat([this.toDER(), hashTypeBuffer])
17567 module.exports = ECSignature
17569 }).call(this,require(
"buffer").Buffer)
17570 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
17571 (function (Buffer){
17572 var assert = require('assert')
17573 var base58check = require('bs58check')
17574 var bcrypto = require('./crypto')
17575 var createHmac = require('create-hmac')
17576 var typeForce = require('typeforce')
17577 var networks = require('./networks')
17579 var BigInteger = require('bigi')
17580 var ECKey = require('./eckey')
17581 var ECPubKey = require('./ecpubkey')
17583 var ecurve = require('ecurve')
17584 var curve = ecurve.getCurveByName('secp256k1')
17586 function findBIP32NetworkByVersion (version) {
17587 for (var name in networks) {
17588 var network = networks[name]
17590 if (version === network.bip32.private || version === network.bip32.public) {
17595 assert(false, 'Could not find network for ' + version.toString(
16))
17598 function HDNode (K, chainCode, network) {
17599 network = network || networks.bitcoin
17601 typeForce('Buffer', chainCode)
17603 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
17604 assert(network.bip32, 'Unknown BIP32 constants for network')
17606 this.chainCode = chainCode
17609 this.parentFingerprint =
0x00000000
17610 this.network = network
17612 if (K instanceof BigInteger) {
17613 this.privKey = new ECKey(K, true)
17614 this.pubKey = this.privKey.pub
17615 } else if (K instanceof ECKey) {
17616 assert(K.pub.compressed, 'ECKey must be compressed')
17618 this.pubKey = K.pub
17619 } else if (K instanceof ECPubKey) {
17620 assert(K.compressed, 'ECPubKey must be compressed')
17623 this.pubKey = new ECPubKey(K, true)
17627 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
17628 HDNode.HIGHEST_BIT =
0x80000000
17631 HDNode.fromSeedBuffer = function (seed, network) {
17632 typeForce('Buffer', seed)
17634 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
17635 assert(seed.length <=
64, 'Seed should be at most
512 bits')
17637 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
17638 var IL = I.slice(
0,
32)
17639 var IR = I.slice(
32)
17641 // In case IL is
0 or
>= n, the master key is invalid
17642 // This is handled by `new ECKey` in the HDNode constructor
17643 var pIL = BigInteger.fromBuffer(IL)
17645 return new HDNode(pIL, IR, network)
17648 HDNode.fromSeedHex = function (hex, network) {
17649 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
17652 HDNode.fromBase58 = function (string, network) {
17653 return HDNode.fromBuffer(base58check.decode(string), network, true)
17656 // FIXME: remove in
2.x.y
17657 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
17658 if (!__ignoreDeprecation) {
17659 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
17662 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
17664 //
4 byte: version bytes
17665 var version = buffer.readUInt32BE(
0)
17668 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
17672 network = findBIP32NetworkByVersion(version)
17675 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
17676 var depth = buffer.readUInt8(
4)
17678 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17679 var parentFingerprint = buffer.readUInt32BE(
5)
17681 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
17684 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17685 // This is encoded in MSB order. (
0x00000000 if master key)
17686 var index = buffer.readUInt32BE(
9)
17687 assert(depth
> 0 || index ===
0, 'Invalid index')
17689 //
32 bytes: the chain code
17690 var chainCode = buffer.slice(
13,
45)
17693 //
33 bytes: private key data (
0x00 + k)
17694 if (version === network.bip32.private) {
17695 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
17696 data = buffer.slice(
46,
78)
17697 var d = BigInteger.fromBuffer(data)
17698 hd = new HDNode(d, chainCode, network)
17700 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
17702 data = buffer.slice(
45,
78)
17703 var Q = ecurve.Point.decodeFrom(curve, data)
17704 assert.equal(Q.compressed, true, 'Invalid public key')
17706 // Verify that the X coordinate in the public point corresponds to a point on the curve.
17707 // If not, the extended public key is invalid.
17710 hd = new HDNode(Q, chainCode, network)
17715 hd.parentFingerprint = parentFingerprint
17720 // FIXME: remove in
2.x.y
17721 HDNode.fromHex = function (hex, network) {
17722 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
17725 HDNode.prototype.getIdentifier = function () {
17726 return bcrypto.hash160(this.pubKey.toBuffer())
17729 HDNode.prototype.getFingerprint = function () {
17730 return this.getIdentifier().slice(
0,
4)
17733 HDNode.prototype.getAddress = function () {
17734 return this.pubKey.getAddress(this.network)
17737 HDNode.prototype.neutered = function () {
17738 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
17739 neutered.depth = this.depth
17740 neutered.index = this.index
17741 neutered.parentFingerprint = this.parentFingerprint
17746 HDNode.prototype.toBase58 = function (isPrivate) {
17747 return base58check.encode(this.toBuffer(isPrivate, true))
17750 // FIXME: remove in
2.x.y
17751 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
17752 if (isPrivate === undefined) {
17753 isPrivate = !!this.privKey
17755 // FIXME: remove in
2.x.y
17757 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
17760 if (!__ignoreDeprecation) {
17761 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
17765 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
17766 var buffer = new Buffer(HDNode.LENGTH)
17768 //
4 bytes: version bytes
17769 buffer.writeUInt32BE(version,
0)
17772 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
17773 buffer.writeUInt8(this.depth,
4)
17775 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17776 buffer.writeUInt32BE(this.parentFingerprint,
5)
17778 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17779 // This is encoded in Big endian. (
0x00000000 if master key)
17780 buffer.writeUInt32BE(this.index,
9)
17782 //
32 bytes: the chain code
17783 this.chainCode.copy(buffer,
13)
17785 //
33 bytes: the public key or private key data
17787 // FIXME: remove in
2.x.y
17788 assert(this.privKey, 'Missing private key')
17790 //
0x00 + k for private keys
17791 buffer.writeUInt8(
0,
45)
17792 this.privKey.d.toBuffer(
32).copy(buffer,
46)
17794 // X9.62 encoding for public keys
17795 this.pubKey.toBuffer().copy(buffer,
45)
17801 // FIXME: remove in
2.x.y
17802 HDNode.prototype.toHex = function (isPrivate) {
17803 return this.toBuffer(isPrivate).toString('hex')
17806 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
17807 HDNode.prototype.derive = function (index) {
17808 var isHardened = index
>= HDNode.HIGHEST_BIT
17809 var indexBuffer = new Buffer(
4)
17810 indexBuffer.writeUInt32BE(index,
0)
17816 assert(this.privKey, 'Could not derive hardened child key')
17818 // data =
0x00 || ser256(kpar) || ser32(index)
17819 data = Buffer.concat([
17820 this.privKey.d.toBuffer(
33),
17826 // data = serP(point(kpar)) || ser32(index)
17827 // = serP(Kpar) || ser32(index)
17828 data = Buffer.concat([
17829 this.pubKey.toBuffer(),
17834 var I = createHmac('sha512', this.chainCode).update(data).digest()
17835 var IL = I.slice(
0,
32)
17836 var IR = I.slice(
32)
17838 var pIL = BigInteger.fromBuffer(IL)
17840 // In case parse256(IL)
>= n, proceed with the next value for i
17841 if (pIL.compareTo(curve.n)
>=
0) {
17842 return this.derive(index +
1)
17845 // Private parent key -
> private child key
17847 if (this.privKey) {
17848 // ki = parse256(IL) + kpar (mod n)
17849 var ki = pIL.add(this.privKey.d).mod(curve.n)
17851 // In case ki ==
0, proceed with the next value for i
17852 if (ki.signum() ===
0) {
17853 return this.derive(index +
1)
17856 hd = new HDNode(ki, IR, this.network)
17858 // Public parent key -
> public child key
17860 // Ki = point(parse256(IL)) + Kpar
17862 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
17864 // In case Ki is the point at infinity, proceed with the next value for i
17865 if (curve.isInfinity(Ki)) {
17866 return this.derive(index +
1)
17869 hd = new HDNode(Ki, IR, this.network)
17872 hd.depth = this.depth +
1
17874 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
17879 HDNode.prototype.deriveHardened = function (index) {
17880 // Only derives hardened private keys by default
17881 return this.derive(index + HDNode.HIGHEST_BIT)
17884 HDNode.prototype.toString = HDNode.prototype.toBase58
17886 module.exports = HDNode
17888 }).call(this,require("buffer").Buffer)
17889 },{"./crypto":
58,"./eckey":
60,"./ecpubkey":
61,"./networks":
66,"assert":
5,"bigi":
3,"bs58check":
31,"buffer":
7,"create-hmac":
45,"ecurve":
49,"typeforce":
53}],
64:[function(require,module,exports){
17891 Address: require('./address'),
17892 base58check: require('./base58check'),
17893 Block: require('./block'),
17894 bufferutils: require('./bufferutils'),
17895 crypto: require('./crypto'),
17896 ecdsa: require('./ecdsa'),
17897 ECKey: require('./eckey'),
17898 ECPubKey: require('./ecpubkey'),
17899 ECSignature: require('./ecsignature'),
17900 Message: require('./message'),
17901 opcodes: require('./opcodes'),
17902 HDNode: require('./hdnode'),
17903 Script: require('./script'),
17904 scripts: require('./scripts'),
17905 Transaction: require('./transaction'),
17906 TransactionBuilder: require('./transaction_builder'),
17907 networks: require('./networks'),
17908 Wallet: require('./wallet')
17911 },{"./address":
54,"./base58check":
55,"./block":
56,"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./eckey":
60,"./ecpubkey":
61,"./ecsignature":
62,"./hdnode":
63,"./message":
65,"./networks":
66,"./opcodes":
67,"./script":
68,"./scripts":
69,"./transaction":
70,"./transaction_builder":
71,"./wallet":
72}],
65:[function(require,module,exports){
17912 (function (Buffer){
17913 var bufferutils = require('./bufferutils')
17914 var crypto = require('./crypto')
17915 var ecdsa = require('./ecdsa')
17916 var networks = require('./networks')
17918 var BigInteger = require('bigi')
17919 var ECPubKey = require('./ecpubkey')
17920 var ECSignature = require('./ecsignature')
17922 var ecurve = require('ecurve')
17923 var ecparams = ecurve.getCurveByName('secp256k1')
17925 function magicHash (message, network) {
17926 var magicPrefix = new Buffer(network.magicPrefix)
17927 var messageBuffer = new Buffer(message)
17928 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
17930 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
17931 return crypto.hash256(buffer)
17934 function sign (privKey, message, network) {
17935 network = network || networks.bitcoin
17937 var hash = magicHash(message, network)
17938 var signature = privKey.sign(hash)
17939 var e = BigInteger.fromBuffer(hash)
17940 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
17942 return signature.toCompact(i, privKey.pub.compressed)
17945 // TODO: network could be implied from address
17946 function verify (address, signature, message, network) {
17947 if (!Buffer.isBuffer(signature)) {
17948 signature = new Buffer(signature, 'base64')
17951 network = network || networks.bitcoin
17953 var hash = magicHash(message, network)
17954 var parsed = ECSignature.parseCompact(signature)
17955 var e = BigInteger.fromBuffer(hash)
17956 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
17958 var pubKey = new ECPubKey(Q, parsed.compressed)
17959 return pubKey.getAddress(network).toString() === address.toString()
17963 magicHash: magicHash,
17968 }).call(this,require("buffer").Buffer)
17969 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
17970 // https://en.bitcoin.it/wiki/List_of_address_prefixes
17971 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
17975 magicPrefix: '\x18Bitcoin Signed Message:\n',
17977 public:
0x0488b21e,
17978 private:
0x0488ade4
17983 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
17984 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
17985 estimateFee: estimateFee('bitcoin')
17988 magicPrefix: '\x18Bitcoin Signed Message:\n',
17990 public:
0x043587cf,
17991 private:
0x04358394
17996 dustThreshold:
546,
17998 estimateFee: estimateFee('testnet')
18001 magicPrefix: '\x19Litecoin Signed Message:\n',
18003 public:
0x019da462,
18004 private:
0x019d9cfe
18009 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
18010 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
18011 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
18012 estimateFee: estimateFee('litecoin')
18015 magicPrefix: '\x19Dogecoin Signed Message:\n',
18017 public:
0x02facafd,
18018 private:
0x02fac398
18023 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
18024 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
18025 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
18026 estimateFee: estimateFee('dogecoin')
18029 magicPrefix: '\x18Viacoin Signed Message:\n',
18031 public:
0x0488b21e,
18032 private:
0x0488ade4
18037 dustThreshold:
560,
18038 dustSoftThreshold:
100000,
18039 feePerKb:
100000, //
18040 estimateFee: estimateFee('viacoin')
18043 magicPrefix: '\x18Viacoin Signed Message:\n',
18045 public:
0x043587cf,
18046 private:
0x04358394
18051 dustThreshold:
560,
18052 dustSoftThreshold:
100000,
18054 estimateFee: estimateFee('viacointestnet')
18057 magicPrefix: '\x19Gamerscoin Signed Message:\n',
18059 public:
0x019da462,
18060 private:
0x019d9cfe
18065 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
18066 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
18067 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
18068 estimateFee: estimateFee('gamerscoin')
18071 magicPrefix: '\x19Jumbucks Signed Message:\n',
18073 public:
0x037a689a,
18074 private:
0x037a6460
18080 dustSoftThreshold:
10000,
18082 estimateFee: estimateFee('jumbucks')
18085 magicPrefix: '\x18Zetacoin Signed Message:\n',
18087 public:
0x0488b21e,
18088 private:
0x0488ade4
18093 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
18094 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
18095 estimateFee: estimateFee('zetacoin')
18099 function estimateFee (type) {
18100 return function (tx) {
18101 var network = networks[type]
18102 var baseFee = network.feePerKb
18103 var byteSize = tx.toBuffer().length
18105 var fee = baseFee * Math.ceil(byteSize /
1000)
18106 if (network.dustSoftThreshold === undefined) return fee
18108 tx.outs.forEach(function (e) {
18109 if (e.value < network.dustSoftThreshold) {
18118 module.exports = networks
18120 },{}],
67:[function(require,module,exports){
18161 OP_TOALTSTACK:
107,
18162 OP_FROMALTSTACK:
108,
18194 OP_EQUALVERIFY:
136,
18219 OP_NUMEQUALVERIFY:
157,
18220 OP_NUMNOTEQUAL:
158,
18222 OP_GREATERTHAN:
160,
18223 OP_LESSTHANOREQUAL:
161,
18224 OP_GREATERTHANOREQUAL:
162,
18236 OP_CODESEPARATOR:
171,
18238 OP_CHECKSIGVERIFY:
173,
18239 OP_CHECKMULTISIG:
174,
18240 OP_CHECKMULTISIGVERIFY:
175,
18254 // template matching params
18255 OP_PUBKEYHASH:
253,
18257 OP_INVALIDOPCODE:
255
18260 },{}],
68:[function(require,module,exports){
18261 (function (Buffer){
18262 var assert = require('assert')
18263 var bufferutils = require('./bufferutils')
18264 var crypto = require('./crypto')
18265 var typeForce = require('typeforce')
18266 var opcodes = require('./opcodes')
18268 function Script (buffer, chunks) {
18269 typeForce('Buffer', buffer)
18270 typeForce('Array', chunks)
18272 this.buffer = buffer
18273 this.chunks = chunks
18276 Script.fromASM = function (asm) {
18277 var strChunks = asm.split(' ')
18278 var chunks = strChunks.map(function (strChunk) {
18280 if (strChunk in opcodes) {
18281 return opcodes[strChunk]
18285 return new Buffer(strChunk, 'hex')
18289 return Script.fromChunks(chunks)
18292 Script.fromBuffer = function (buffer) {
18296 while (i < buffer.length) {
18297 var opcode = buffer.readUInt8(i)
18300 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
18301 var d = bufferutils.readPushDataInt(buffer, i)
18303 // did reading a pushDataInt fail? return non-chunked script
18304 if (d === null) return new Script(buffer, [])
18307 // attempt to read too much data?
18308 if (i + d.number
> buffer.length) return new Script(buffer, [])
18310 var data = buffer.slice(i, i + d.number)
18317 chunks.push(opcode)
18323 return new Script(buffer, chunks)
18326 Script.fromChunks = function (chunks) {
18327 typeForce('Array', chunks)
18329 var bufferSize = chunks.reduce(function (accum, chunk) {
18331 if (Buffer.isBuffer(chunk)) {
18332 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
18339 var buffer = new Buffer(bufferSize)
18342 chunks.forEach(function (chunk) {
18344 if (Buffer.isBuffer(chunk)) {
18345 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
18347 chunk.copy(buffer, offset)
18348 offset += chunk.length
18352 buffer.writeUInt8(chunk, offset)
18357 assert.equal(offset, buffer.length, 'Could not decode chunks')
18358 return new Script(buffer, chunks)
18361 Script.fromHex = function (hex) {
18362 return Script.fromBuffer(new Buffer(hex, 'hex'))
18365 Script.EMPTY = Script.fromChunks([])
18367 Script.prototype.getHash = function () {
18368 return crypto.hash160(this.buffer)
18371 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
18372 Script.prototype.without = function (needle) {
18373 return Script.fromChunks(this.chunks.filter(function (op) {
18374 return op !== needle
18378 var reverseOps = []
18379 for (var op in opcodes) {
18380 var code = opcodes[op]
18381 reverseOps[code] = op
18384 Script.prototype.toASM = function () {
18385 return this.chunks.map(function (chunk) {
18387 if (Buffer.isBuffer(chunk)) {
18388 return chunk.toString('hex')
18392 return reverseOps[chunk]
18397 Script.prototype.toBuffer = function () {
18401 Script.prototype.toHex = function () {
18402 return this.toBuffer().toString('hex')
18405 module.exports = Script
18407 }).call(this,require("buffer").Buffer)
18408 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
18409 (function (Buffer){
18410 var assert = require('assert')
18411 var ops = require('./opcodes')
18412 var typeForce = require('typeforce')
18414 var ecurve = require('ecurve')
18415 var curve = ecurve.getCurveByName('secp256k1')
18417 var ECSignature = require('./ecsignature')
18418 var Script = require('./script')
18420 function isCanonicalPubKey (buffer) {
18421 if (!Buffer.isBuffer(buffer)) return false
18424 ecurve.Point.decodeFrom(curve, buffer)
18426 if (!(e.message.match(/Invalid sequence (length|tag)/)))
18435 function isCanonicalSignature (buffer) {
18436 if (!Buffer.isBuffer(buffer)) return false
18439 ECSignature.parseScriptSignature(buffer)
18441 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
18451 function isPubKeyHashInput (script) {
18452 return script.chunks.length ===
2 &&
18453 isCanonicalSignature(script.chunks[
0]) &&
18454 isCanonicalPubKey(script.chunks[
1])
18457 function isPubKeyHashOutput (script) {
18458 return script.chunks.length ===
5 &&
18459 script.chunks[
0] === ops.OP_DUP &&
18460 script.chunks[
1] === ops.OP_HASH160 &&
18461 Buffer.isBuffer(script.chunks[
2]) &&
18462 script.chunks[
2].length ===
20 &&
18463 script.chunks[
3] === ops.OP_EQUALVERIFY &&
18464 script.chunks[
4] === ops.OP_CHECKSIG
18467 function isPubKeyInput (script) {
18468 return script.chunks.length ===
1 &&
18469 isCanonicalSignature(script.chunks[
0])
18472 function isPubKeyOutput (script) {
18473 return script.chunks.length ===
2 &&
18474 isCanonicalPubKey(script.chunks[
0]) &&
18475 script.chunks[
1] === ops.OP_CHECKSIG
18478 function isScriptHashInput (script, allowIncomplete) {
18479 if (script.chunks.length <
2) return false
18481 var lastChunk = script.chunks[script.chunks.length -
1]
18482 if (!Buffer.isBuffer(lastChunk)) return false
18484 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
18485 var redeemScript = Script.fromBuffer(lastChunk)
18487 // is redeemScript a valid script?
18488 if (redeemScript.chunks.length ===
0) return false
18490 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
18493 function isScriptHashOutput (script) {
18494 return script.chunks.length ===
3 &&
18495 script.chunks[
0] === ops.OP_HASH160 &&
18496 Buffer.isBuffer(script.chunks[
1]) &&
18497 script.chunks[
1].length ===
20 &&
18498 script.chunks[
2] === ops.OP_EQUAL
18501 // allowIncomplete is to account for combining signatures
18502 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
18503 function isMultisigInput (script, allowIncomplete) {
18504 if (script.chunks.length <
2) return false
18505 if (script.chunks[
0] !== ops.OP_0) return false
18507 if (allowIncomplete) {
18508 return script.chunks.slice(
1).every(function (chunk) {
18509 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
18513 return script.chunks.slice(
1).every(isCanonicalSignature)
18516 function isMultisigOutput (script) {
18517 if (script.chunks.length <
4) return false
18518 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
18520 var mOp = script.chunks[
0]
18521 if (mOp === ops.OP_0) return false
18522 if (mOp < ops.OP_1) return false
18523 if (mOp
> ops.OP_16) return false
18525 var nOp = script.chunks[script.chunks.length -
2]
18526 if (nOp === ops.OP_0) return false
18527 if (nOp < ops.OP_1) return false
18528 if (nOp
> ops.OP_16) return false
18530 var m = mOp - (ops.OP_1 -
1)
18531 var n = nOp - (ops.OP_1 -
1)
18532 if (n < m) return false
18534 var pubKeys = script.chunks.slice(
1, -
2)
18535 if (n < pubKeys.length) return false
18537 return pubKeys.every(isCanonicalPubKey)
18540 function isNullDataOutput (script) {
18541 return script.chunks[
0] === ops.OP_RETURN
18544 function classifyOutput (script) {
18545 typeForce('Script', script)
18547 if (isPubKeyHashOutput(script)) {
18548 return 'pubkeyhash'
18549 } else if (isScriptHashOutput(script)) {
18550 return 'scripthash'
18551 } else if (isMultisigOutput(script)) {
18553 } else if (isPubKeyOutput(script)) {
18555 } else if (isNullDataOutput(script)) {
18559 return 'nonstandard'
18562 function classifyInput (script, allowIncomplete) {
18563 typeForce('Script', script)
18565 if (isPubKeyHashInput(script)) {
18566 return 'pubkeyhash'
18567 } else if (isMultisigInput(script, allowIncomplete)) {
18569 } else if (isScriptHashInput(script, allowIncomplete)) {
18570 return 'scripthash'
18571 } else if (isPubKeyInput(script)) {
18575 return 'nonstandard'
18578 // Standard Script Templates
18579 // {pubKey} OP_CHECKSIG
18580 function pubKeyOutput (pubKey) {
18581 return Script.fromChunks([
18587 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
18588 function pubKeyHashOutput (hash) {
18589 typeForce('Buffer', hash)
18591 return Script.fromChunks([
18595 ops.OP_EQUALVERIFY,
18600 // OP_HASH160 {scriptHash} OP_EQUAL
18601 function scriptHashOutput (hash) {
18602 typeForce('Buffer', hash)
18604 return Script.fromChunks([
18611 // m [pubKeys ...] n OP_CHECKMULTISIG
18612 function multisigOutput (m, pubKeys) {
18613 typeForce(['ECPubKey'], pubKeys)
18615 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
18617 var pubKeyBuffers = pubKeys.map(function (pubKey) {
18618 return pubKey.toBuffer()
18620 var n = pubKeys.length
18622 return Script.fromChunks([].concat(
18623 (ops.OP_1 -
1) + m,
18625 (ops.OP_1 -
1) + n,
18626 ops.OP_CHECKMULTISIG
18631 function pubKeyInput (signature) {
18632 typeForce('Buffer', signature)
18634 return Script.fromChunks([signature])
18637 // {signature} {pubKey}
18638 function pubKeyHashInput (signature, pubKey) {
18639 typeForce('Buffer', signature)
18641 return Script.fromChunks([signature, pubKey.toBuffer()])
18644 //
<scriptSig> {serialized scriptPubKey script}
18645 function scriptHashInput (scriptSig, scriptPubKey) {
18646 return Script.fromChunks([].concat(
18648 scriptPubKey.toBuffer()
18652 // OP_0 [signatures ...]
18653 function multisigInput (signatures, scriptPubKey) {
18654 if (scriptPubKey) {
18655 assert(isMultisigOutput(scriptPubKey))
18657 var mOp = scriptPubKey.chunks[
0]
18658 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
18659 var m = mOp - (ops.OP_1 -
1)
18660 var n = nOp - (ops.OP_1 -
1)
18662 assert(signatures.length
>= m, 'Not enough signatures provided')
18663 assert(signatures.length <= n, 'Too many signatures provided')
18666 return Script.fromChunks([].concat(ops.OP_0, signatures))
18669 function nullDataOutput (data) {
18670 return Script.fromChunks([ops.OP_RETURN, data])
18674 isCanonicalPubKey: isCanonicalPubKey,
18675 isCanonicalSignature: isCanonicalSignature,
18676 isPubKeyHashInput: isPubKeyHashInput,
18677 isPubKeyHashOutput: isPubKeyHashOutput,
18678 isPubKeyInput: isPubKeyInput,
18679 isPubKeyOutput: isPubKeyOutput,
18680 isScriptHashInput: isScriptHashInput,
18681 isScriptHashOutput: isScriptHashOutput,
18682 isMultisigInput: isMultisigInput,
18683 isMultisigOutput: isMultisigOutput,
18684 isNullDataOutput: isNullDataOutput,
18685 classifyOutput: classifyOutput,
18686 classifyInput: classifyInput,
18687 pubKeyOutput: pubKeyOutput,
18688 pubKeyHashOutput: pubKeyHashOutput,
18689 scriptHashOutput: scriptHashOutput,
18690 multisigOutput: multisigOutput,
18691 pubKeyInput: pubKeyInput,
18692 pubKeyHashInput: pubKeyHashInput,
18693 scriptHashInput: scriptHashInput,
18694 multisigInput: multisigInput,
18695 dataOutput: function (data) {
18696 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
18697 return nullDataOutput(data)
18699 nullDataOutput: nullDataOutput
18702 }).call(this,require("buffer").Buffer)
18703 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
18704 (function (Buffer){
18705 var assert = require('assert')
18706 var bufferutils = require('./bufferutils')
18707 var crypto = require('./crypto')
18708 var typeForce = require('typeforce')
18709 var opcodes = require('./opcodes')
18710 var scripts = require('./scripts')
18712 var Address = require('./address')
18713 var ECSignature = require('./ecsignature')
18714 var Script = require('./script')
18716 function Transaction () {
18723 Transaction.DEFAULT_SEQUENCE =
0xffffffff
18724 Transaction.SIGHASH_ALL =
0x01
18725 Transaction.SIGHASH_NONE =
0x02
18726 Transaction.SIGHASH_SINGLE =
0x03
18727 Transaction.SIGHASH_ANYONECANPAY =
0x80
18729 Transaction.fromBuffer = function (buffer, __disableAssert) {
18731 function readSlice (n) {
18733 return buffer.slice(offset - n, offset)
18736 function readUInt32 () {
18737 var i = buffer.readUInt32LE(offset)
18742 function readUInt64 () {
18743 var i = bufferutils.readUInt64LE(buffer, offset)
18748 function readVarInt () {
18749 var vi = bufferutils.readVarInt(buffer, offset)
18754 function readScript () {
18755 return Script.fromBuffer(readSlice(readVarInt()))
18758 function readGenerationScript () {
18759 return new Script(readSlice(readVarInt()), [])
18762 var tx = new Transaction()
18763 tx.version = readUInt32()
18765 var vinLen = readVarInt()
18766 for (var i =
0; i < vinLen; ++i) {
18767 var hash = readSlice(
32)
18769 if (Transaction.isCoinbaseHash(hash)) {
18772 index: readUInt32(),
18773 script: readGenerationScript(),
18774 sequence: readUInt32()
18779 index: readUInt32(),
18780 script: readScript(),
18781 sequence: readUInt32()
18786 var voutLen = readVarInt()
18787 for (i =
0; i < voutLen; ++i) {
18789 value: readUInt64(),
18790 script: readScript()
18794 tx.locktime = readUInt32()
18796 if (!__disableAssert) {
18797 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
18803 Transaction.fromHex = function (hex) {
18804 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
18807 Transaction.isCoinbaseHash = function (buffer) {
18808 return Array.prototype.every.call(buffer, function (x) {
18814 * Create a new txIn.
18816 * Can be called with any of:
18818 * - A transaction and an index
18819 * - A transaction hash and an index
18821 * Note that this method does not sign the created input.
18823 Transaction.prototype.addInput = function (hash, index, sequence, script) {
18824 if (sequence === undefined || sequence === null) {
18825 sequence = Transaction.DEFAULT_SEQUENCE
18828 script = script || Script.EMPTY
18830 if (typeof hash === 'string') {
18831 // TxId hex is big-endian, we need little-endian
18832 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
18833 } else if (hash instanceof Transaction) {
18834 hash = hash.getHash()
18837 typeForce('Buffer', hash)
18838 typeForce('Number', index)
18839 typeForce('Number', sequence)
18840 typeForce('Script', script)
18842 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
18844 // Add the input and return the input's index
18845 return (this.ins.push({
18854 * Create a new txOut.
18856 * Can be called with:
18858 * - A base58 address string and a value
18859 * - An Address object and a value
18860 * - A scriptPubKey Script and a value
18862 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18863 // Attempt to get a valid address if it's a base58 address string
18864 if (typeof scriptPubKey === 'string') {
18865 scriptPubKey = Address.fromBase58Check(scriptPubKey)
18868 // Attempt to get a valid script if it's an Address object
18869 if (scriptPubKey instanceof Address) {
18870 scriptPubKey = scriptPubKey.toOutputScript()
18873 typeForce('Script', scriptPubKey)
18874 typeForce('Number', value)
18876 // Add the output and return the output's index
18877 return (this.outs.push({
18878 script: scriptPubKey,
18883 Transaction.prototype.clone = function () {
18884 var newTx = new Transaction()
18885 newTx.version = this.version
18886 newTx.locktime = this.locktime
18888 newTx.ins = this.ins.map(function (txIn) {
18892 script: txIn.script,
18893 sequence: txIn.sequence
18897 newTx.outs = this.outs.map(function (txOut) {
18899 script: txOut.script,
18908 * Hash transaction for signing a specific input.
18910 * Bitcoin uses a different hash for each signed transaction input. This
18911 * method copies the transaction, makes the necessary changes based on the
18912 * hashType, serializes and finally hashes the result. This hash can then be
18913 * used to sign the transaction input in question.
18915 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18916 // FIXME: remove in
2.x.y
18917 if (arguments[
0] instanceof Script) {
18918 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
18920 // swap the arguments (must be stored in tmp, arguments is special)
18921 var tmp = arguments[
0]
18922 inIndex = arguments[
1]
18923 prevOutScript = tmp
18926 typeForce('Number', inIndex)
18927 typeForce('Script', prevOutScript)
18928 typeForce('Number', hashType)
18930 assert(inIndex
>=
0, 'Invalid vin index')
18931 assert(inIndex < this.ins.length, 'Invalid vin index')
18933 var txTmp = this.clone()
18934 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
18936 // Blank out other inputs' signatures
18937 txTmp.ins.forEach(function (txIn) {
18938 txIn.script = Script.EMPTY
18940 txTmp.ins[inIndex].script = hashScript
18942 var hashTypeModifier = hashType &
0x1f
18944 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
18945 assert(false, 'SIGHASH_NONE not yet supported')
18946 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
18947 assert(false, 'SIGHASH_SINGLE not yet supported')
18950 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18951 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
18954 var hashTypeBuffer = new Buffer(
4)
18955 hashTypeBuffer.writeInt32LE(hashType,
0)
18957 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
18958 return crypto.hash256(buffer)
18961 Transaction.prototype.getHash = function () {
18962 return crypto.hash256(this.toBuffer())
18965 Transaction.prototype.getId = function () {
18966 // TxHash is little-endian, we need big-endian
18967 return bufferutils.reverse(this.getHash()).toString('hex')
18970 Transaction.prototype.toBuffer = function () {
18971 function scriptSize (script) {
18972 var length = script.buffer.length
18974 return bufferutils.varIntSize(length) + length
18977 var buffer = new Buffer(
18979 bufferutils.varIntSize(this.ins.length) +
18980 bufferutils.varIntSize(this.outs.length) +
18981 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
18982 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
18986 function writeSlice (slice) {
18987 slice.copy(buffer, offset)
18988 offset += slice.length
18991 function writeUInt32 (i) {
18992 buffer.writeUInt32LE(i, offset)
18996 function writeUInt64 (i) {
18997 bufferutils.writeUInt64LE(buffer, i, offset)
19001 function writeVarInt (i) {
19002 var n = bufferutils.writeVarInt(buffer, i, offset)
19006 writeUInt32(this.version)
19007 writeVarInt(this.ins.length)
19009 this.ins.forEach(function (txIn) {
19010 writeSlice(txIn.hash)
19011 writeUInt32(txIn.index)
19012 writeVarInt(txIn.script.buffer.length)
19013 writeSlice(txIn.script.buffer)
19014 writeUInt32(txIn.sequence)
19017 writeVarInt(this.outs.length)
19018 this.outs.forEach(function (txOut) {
19019 writeUInt64(txOut.value)
19020 writeVarInt(txOut.script.buffer.length)
19021 writeSlice(txOut.script.buffer)
19024 writeUInt32(this.locktime)
19029 Transaction.prototype.toHex = function () {
19030 return this.toBuffer().toString('hex')
19033 Transaction.prototype.setInputScript = function (index, script) {
19034 typeForce('Number', index)
19035 typeForce('Script', script)
19037 this.ins[index].script = script
19040 // FIXME: remove in
2.x.y
19041 Transaction.prototype.sign = function (index, privKey, hashType) {
19042 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
19044 var prevOutScript = privKey.pub.getAddress().toOutputScript()
19045 var signature = this.signInput(index, prevOutScript, privKey, hashType)
19047 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
19048 this.setInputScript(index, scriptSig)
19051 // FIXME: remove in
2.x.y
19052 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
19053 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
19055 hashType = hashType || Transaction.SIGHASH_ALL
19057 var hash = this.hashForSignature(index, prevOutScript, hashType)
19058 var signature = privKey.sign(hash)
19060 return signature.toScriptSignature(hashType)
19063 // FIXME: remove in
2.x.y
19064 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
19065 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
19067 var parsed = ECSignature.parseScriptSignature(buffer)
19068 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
19070 return pubKey.verify(hash, parsed.signature)
19073 module.exports = Transaction
19075 }).call(this,require("buffer").Buffer)
19076 },{"./address":
54,"./bufferutils":
57,"./crypto":
58,"./ecsignature":
62,"./opcodes":
67,"./script":
68,"./scripts":
69,"assert":
5,"buffer":
7,"typeforce":
53}],
71:[function(require,module,exports){
19077 (function (Buffer){
19078 var assert = require('assert')
19079 var ops = require('./opcodes')
19080 var scripts = require('./scripts')
19082 var ECPubKey = require('./ecpubkey')
19083 var ECSignature = require('./ecsignature')
19084 var Script = require('./script')
19085 var Transaction = require('./transaction')
19087 function extractInput (txIn) {
19089 var scriptSig = txIn.script
19091 var prevOutType = scripts.classifyInput(scriptSig, true)
19094 // Re-classify if scriptHash
19095 if (prevOutType === 'scripthash') {
19096 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
19097 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19099 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
19100 scriptType = scripts.classifyInput(scriptSig, true)
19102 scriptType = prevOutType
19105 // Extract hashType, pubKeys and signatures
19106 var hashType, parsed, pubKeys, signatures
19108 switch (scriptType) {
19109 case 'pubkeyhash': {
19110 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19111 hashType = parsed.hashType
19112 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
19113 signatures = [parsed.signature]
19114 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
19120 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19121 hashType = parsed.hashType
19122 signatures = [parsed.signature]
19124 if (redeemScript) {
19125 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
19132 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
19133 if (chunk === ops.OP_0) return chunk
19135 var parsed = ECSignature.parseScriptSignature(chunk)
19136 hashType = parsed.hashType
19138 return parsed.signature
19141 if (redeemScript) {
19142 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19150 hashType: hashType,
19151 prevOutScript: prevOutScript,
19152 prevOutType: prevOutType,
19154 redeemScript: redeemScript,
19155 scriptType: scriptType,
19156 signatures: signatures
19160 function TransactionBuilder () {
19161 this.prevTxMap = {}
19162 this.prevOutScripts = {}
19163 this.prevOutTypes = {}
19166 this.tx = new Transaction()
19169 TransactionBuilder.fromTransaction = function (transaction) {
19170 var txb = new TransactionBuilder()
19172 // Copy other transaction fields
19173 txb.tx.version = transaction.version
19174 txb.tx.locktime = transaction.locktime
19176 // Extract/add inputs
19177 transaction.ins.forEach(function (txIn) {
19178 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
19181 // Extract/add outputs
19182 transaction.outs.forEach(function (txOut) {
19183 txb.addOutput(txOut.script, txOut.value)
19186 // Extract/add signatures
19187 txb.inputs = transaction.ins.map(function (txIn) {
19188 // TODO: remove me after testcase added
19189 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
19191 // Ignore empty scripts
19192 if (txIn.script.buffer.length ===
0) return {}
19194 return extractInput(txIn)
19200 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
19204 if (typeof prevTx === 'string') {
19205 prevOutHash = new Buffer(prevTx, 'hex')
19207 // TxId hex is big-endian, we want little-endian hash
19208 Array.prototype.reverse.call(prevOutHash)
19211 } else if (prevTx instanceof Transaction) {
19212 prevOutHash = prevTx.getHash()
19213 prevOutScript = prevTx.outs[index].script
19217 prevOutHash = prevTx
19221 if (prevOutScript) {
19222 var prevOutType = scripts.classifyOutput(prevOutScript)
19224 // if we can, extract pubKey information
19225 switch (prevOutType) {
19227 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19232 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19237 if (prevOutType !== 'scripthash') {
19238 input.scriptType = prevOutType
19241 input.prevOutScript = prevOutScript
19242 input.prevOutType = prevOutType
19245 assert(this.inputs.every(function (input2) {
19246 if (input2.hashType === undefined) return true
19248 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
19249 }), 'No, this would invalidate signatures')
19251 var prevOut = prevOutHash.toString('hex') + ':' + index
19252 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
19254 var vin = this.tx.addInput(prevOutHash, index, sequence)
19255 this.inputs[vin] = input
19256 this.prevTxMap[prevOut] = vin
19261 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19262 assert(this.inputs.every(function (input) {
19263 if (input.hashType === undefined) return true
19265 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
19266 }), 'No, this would invalidate signatures')
19268 return this.tx.addOutput(scriptPubKey, value)
19271 TransactionBuilder.prototype.build = function () {
19272 return this.__build(false)
19274 TransactionBuilder.prototype.buildIncomplete = function () {
19275 return this.__build(true)
19278 var canSignTypes = {
19279 'pubkeyhash': true,
19284 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19285 if (!allowIncomplete) {
19286 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
19287 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
19290 var tx = this.tx.clone()
19292 // Create script signatures from signature meta-data
19293 this.inputs.forEach(function (input, index) {
19294 var scriptType = input.scriptType
19297 if (!allowIncomplete) {
19298 assert(!!scriptType, 'Transaction is not complete')
19299 assert(scriptType in canSignTypes, scriptType + ' not supported')
19300 assert(input.signatures, 'Transaction is missing signatures')
19303 if (input.signatures) {
19304 switch (scriptType) {
19305 case 'pubkeyhash': {
19306 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
19307 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
19312 // Array.prototype.map is sparse-compatible
19313 var msSignatures = input.signatures.map(function (signature) {
19314 return signature && signature.toScriptSignature(input.hashType)
19317 // fill in blanks with OP_0
19318 if (allowIncomplete) {
19319 for (var i =
0; i < msSignatures.length; ++i) {
19320 if (msSignatures[i]) continue
19322 msSignatures[i] = ops.OP_0
19325 // Array.prototype.filter returns non-sparse array
19326 msSignatures = msSignatures.filter(function (x) { return x })
19329 var redeemScript = allowIncomplete ? undefined : input.redeemScript
19330 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
19335 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
19336 scriptSig = scripts.pubKeyInput(pkSignature)
19342 // did we build a scriptSig?
19344 // wrap as scriptHash if necessary
19345 if (input.prevOutType === 'scripthash') {
19346 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
19349 tx.setInputScript(index, scriptSig)
19356 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
19357 assert(index in this.inputs, 'No input at index: ' + index)
19358 hashType = hashType || Transaction.SIGHASH_ALL
19360 var input = this.inputs[index]
19361 var canSign = input.hashType &&
19362 input.prevOutScript &&
19363 input.prevOutType &&
19365 input.scriptType &&
19368 // are we almost ready to sign?
19370 // if redeemScript was provided, enforce consistency
19371 if (redeemScript) {
19372 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
19375 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
19379 // must be pay-to-scriptHash?
19380 if (redeemScript) {
19381 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
19382 if (input.prevOutScript) {
19383 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
19385 var scriptHash = input.prevOutScript.chunks[
1]
19386 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
19389 var scriptType = scripts.classifyOutput(redeemScript)
19390 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
19393 switch (scriptType) {
19395 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19399 case 'pubkeyhash': {
19400 var pkh1 = redeemScript.chunks[
2]
19401 var pkh2 = privKey.pub.getAddress().hash
19403 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
19404 pubKeys = [privKey.pub]
19409 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19414 if (!input.prevOutScript) {
19415 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19416 input.prevOutType = 'scripthash'
19419 input.pubKeys = pubKeys
19420 input.redeemScript = redeemScript
19421 input.scriptType = scriptType
19423 // cannot be pay-to-scriptHash
19425 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
19427 // can we otherwise sign this?
19428 if (input.scriptType) {
19429 assert(input.pubKeys, input.scriptType + ' not supported')
19431 // we know nothin' Jon Snow, assume pubKeyHash
19433 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
19434 input.prevOutType = 'pubkeyhash'
19435 input.pubKeys = [privKey.pub]
19436 input.scriptType = input.prevOutType
19440 input.hashType = hashType
19441 input.signatures = input.signatures || []
19444 var signatureScript = input.redeemScript || input.prevOutScript
19445 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
19447 // enforce signature order matches public keys
19448 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
19449 // maintain a local copy of unmatched signatures
19450 var unmatched = input.signatures.slice()
19452 input.signatures = input.pubKeys.map(function (pubKey) {
19455 // check for any matching signatures
19456 unmatched.some(function (signature, i) {
19457 if (!pubKey.verify(signatureHash, signature)) return false
19460 // remove matched signature from unmatched
19461 unmatched.splice(i,
1)
19466 return match || undefined
19470 // enforce in order signing of public keys
19471 assert(input.pubKeys.some(function (pubKey, i) {
19472 if (!privKey.pub.Q.equals(pubKey.Q)) return false
19474 assert(!input.signatures[i], 'Signature already exists')
19475 var signature = privKey.sign(signatureHash)
19476 input.signatures[i] = signature
19479 }, this), 'privateKey cannot sign for this input')
19482 module.exports = TransactionBuilder
19484 }).call(this,require(
"buffer").Buffer)
19485 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
19486 (function (Buffer){
19487 var assert = require('assert')
19488 var bufferutils = require('./bufferutils')
19489 var typeForce = require('typeforce')
19490 var networks = require('./networks')
19491 var randomBytes = require('randombytes')
19493 var Address = require('./address')
19494 var HDNode = require('./hdnode')
19495 var TransactionBuilder = require('./transaction_builder')
19496 var Script = require('./script')
19498 function Wallet (seed, network) {
19499 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
19501 seed = seed || randomBytes(
32)
19502 network = network || networks.bitcoin
19504 // Stored in a closure to make accidental serialization less likely
19505 var masterKey = HDNode.fromSeedBuffer(seed, network)
19507 // HD first-level child derivation method should be hardened
19508 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
19509 var accountZero = masterKey.deriveHardened(
0)
19510 var externalAccount = accountZero.derive(
0)
19511 var internalAccount = accountZero.derive(
1)
19513 this.addresses = []
19514 this.changeAddresses = []
19515 this.network = network
19518 // FIXME: remove in
2.0.0
19519 this.unspentMap = {}
19521 // FIXME: remove in
2.0.0
19523 this.newMasterKey = function (seed) {
19524 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
19526 seed = seed || randomBytes(
32)
19527 masterKey = HDNode.fromSeedBuffer(seed, network)
19529 accountZero = masterKey.deriveHardened(
0)
19530 externalAccount = accountZero.derive(
0)
19531 internalAccount = accountZero.derive(
1)
19534 me.changeAddresses = []
19540 this.getMasterKey = function () {
19543 this.getAccountZero = function () {
19546 this.getExternalAccount = function () {
19547 return externalAccount
19549 this.getInternalAccount = function () {
19550 return internalAccount
19554 Wallet.prototype.createTransaction = function (to, value, options) {
19555 // FIXME: remove in
2.0.0
19556 if (typeof options !== 'object') {
19557 if (options !== undefined) {
19558 console.warn('Non options object parameters are deprecated, use options object instead')
19561 fixedFee: arguments[
2],
19562 changeAddress: arguments[
3]
19567 options = options || {}
19569 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
19571 var changeAddress = options.changeAddress
19572 var fixedFee = options.fixedFee
19573 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
19575 // filter by minConf, then pending and sort by descending value
19576 var unspents = this.unspents.filter(function (unspent) {
19577 return unspent.confirmations
>= minConf
19578 }).filter(function (unspent) {
19579 return !unspent.pending
19580 }).sort(function (o1, o2) {
19581 return o2.value - o1.value
19586 var subTotal = value
19588 var txb = new TransactionBuilder()
19589 txb.addOutput(to, value)
19591 for (var i =
0; i < unspents.length; ++i) {
19592 var unspent = unspents[i]
19593 addresses.push(unspent.address)
19595 txb.addInput(unspent.txHash, unspent.index)
19597 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
19599 accum += unspent.value
19600 subTotal = value + fee
19602 if (accum
>= subTotal) {
19603 var change = accum - subTotal
19605 if (change
> this.network.dustThreshold) {
19606 txb.addOutput(changeAddress || this.getChangeAddress(), change)
19613 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
19615 return this.signWith(txb, addresses).build()
19618 // FIXME: remove in
2.0.0
19619 Wallet.prototype.processPendingTx = function (tx) {
19620 this.__processTx(tx, true)
19623 // FIXME: remove in
2.0.0
19624 Wallet.prototype.processConfirmedTx = function (tx) {
19625 this.__processTx(tx, false)
19628 // FIXME: remove in
2.0.0
19629 Wallet.prototype.__processTx = function (tx, isPending) {
19630 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
19632 var txId = tx.getId()
19633 var txHash = tx.getHash()
19635 tx.outs.forEach(function (txOut, i) {
19639 address = Address.fromOutputScript(txOut.script, this.network).toString()
19641 if (!(e.message.match(/has no matching Address/)))
19645 var myAddresses = this.addresses.concat(this.changeAddresses)
19646 if (myAddresses.indexOf(address)
> -
1) {
19647 var lookup = txId + ':' + i
19648 if (lookup in this.unspentMap) return
19650 // its unique, add it
19653 confirmations:
0, // no way to determine this without more information
19657 value: txOut.value,
19661 this.unspentMap[lookup] = unspent
19662 this.unspents.push(unspent)
19666 tx.ins.forEach(function (txIn) {
19667 // copy and convert to big-endian hex
19668 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
19670 var lookup = txInId + ':' + txIn.index
19671 if (!(lookup in this.unspentMap)) return
19673 var unspent = this.unspentMap[lookup]
19676 unspent.pending = true
19677 unspent.spent = true
19679 delete this.unspentMap[lookup]
19681 this.unspents = this.unspents.filter(function (unspent2) {
19682 return unspent !== unspent2
19688 Wallet.prototype.generateAddress = function () {
19689 var k = this.addresses.length
19690 var address = this.getExternalAccount().derive(k).getAddress()
19692 this.addresses.push(address.toString())
19694 return this.getReceiveAddress()
19697 Wallet.prototype.generateChangeAddress = function () {
19698 var k = this.changeAddresses.length
19699 var address = this.getInternalAccount().derive(k).getAddress()
19701 this.changeAddresses.push(address.toString())
19703 return this.getChangeAddress()
19706 Wallet.prototype.getAddress = function () {
19707 if (this.addresses.length ===
0) {
19708 this.generateAddress()
19711 return this.addresses[this.addresses.length -
1]
19714 Wallet.prototype.getBalance = function (minConf) {
19715 minConf = minConf ||
0
19717 return this.unspents.filter(function (unspent) {
19718 return unspent.confirmations
>= minConf
19720 // FIXME: remove spent filter in
2.0.0
19721 }).filter(function (unspent) {
19722 return !unspent.spent
19723 }).reduce(function (accum, unspent) {
19724 return accum + unspent.value
19728 Wallet.prototype.getChangeAddress = function () {
19729 if (this.changeAddresses.length ===
0) {
19730 this.generateChangeAddress()
19733 return this.changeAddresses[this.changeAddresses.length -
1]
19736 Wallet.prototype.getInternalPrivateKey = function (index) {
19737 return this.getInternalAccount().derive(index).privKey
19740 Wallet.prototype.getPrivateKey = function (index) {
19741 return this.getExternalAccount().derive(index).privKey
19744 Wallet.prototype.getPrivateKeyForAddress = function (address) {
19747 if ((index = this.addresses.indexOf(address))
> -
1) {
19748 return this.getPrivateKey(index)
19751 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
19752 return this.getInternalPrivateKey(index)
19755 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
19758 Wallet.prototype.getUnspentOutputs = function (minConf) {
19759 minConf = minConf ||
0
19761 return this.unspents.filter(function (unspent) {
19762 return unspent.confirmations
>= minConf
19764 // FIXME: remove spent filter in
2.0.0
19765 }).filter(function (unspent) {
19766 return !unspent.spent
19767 }).map(function (unspent) {
19769 address: unspent.address,
19770 confirmations: unspent.confirmations,
19771 index: unspent.index,
19772 txId: unspent.txId,
19773 value: unspent.value,
19775 // FIXME: remove in
2.0.0
19776 hash: unspent.txId,
19777 pending: unspent.pending
19782 Wallet.prototype.setUnspentOutputs = function (unspents) {
19783 this.unspentMap = {}
19784 this.unspents = unspents.map(function (unspent) {
19785 // FIXME: remove unspent.hash in
2.0.0
19786 var txId = unspent.txId || unspent.hash
19787 var index = unspent.index
19789 // FIXME: remove in
2.0.0
19790 if (unspent.hash !== undefined) {
19791 console.warn('unspent.hash is deprecated, use unspent.txId instead')
19794 // FIXME: remove in
2.0.0
19795 if (index === undefined) {
19796 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
19797 index = unspent.outputIndex
19800 typeForce('String', txId)
19801 typeForce('Number', index)
19802 typeForce('Number', unspent.value)
19804 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
19805 assert.doesNotThrow(function () {
19806 Address.fromBase58Check(unspent.address)
19807 }, 'Expected Base58 Address, got ' + unspent.address)
19808 assert(isFinite(index), 'Expected finite index, got ' + index)
19810 // FIXME: remove branch in
2.0.0
19811 if (unspent.confirmations !== undefined) {
19812 typeForce('Number', unspent.confirmations)
19815 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
19818 address: unspent.address,
19819 confirmations: unspent.confirmations ||
0,
19823 value: unspent.value,
19825 // FIXME: remove in
2.0.0
19826 pending: unspent.pending || false
19829 // FIXME: remove in
2.0.0
19830 this.unspentMap[txId + ':' + index] = unspent
19836 Wallet.prototype.signWith = function (tx, addresses) {
19837 addresses.forEach(function (address, i) {
19838 var privKey = this.getPrivateKeyForAddress(address)
19840 tx.sign(i, privKey)
19846 function estimatePaddedFee (tx, network) {
19847 var tmpTx = tx.clone()
19848 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
19850 return network.estimateFee(tmpTx)
19853 // FIXME:
1.0.0 shims, remove in
2.0.0
19854 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
19855 Wallet.prototype.createTx = Wallet.prototype.createTransaction
19857 module.exports = Wallet
19859 }).call(this,require("buffer").Buffer)
19860 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
19862 <script>bitcoin.networks.shadow = {
19863 magicPrefix: '\x19ShadowCash Signed Message:\n',
19865 public:
0xEE80286A,
19866 private:
0xEE8031E8
19873 estimateFee: function() { return "unused in this app" },
19876 bitcoin.networks.shadowtn = {
19877 magicPrefix: '\x19ShadowCash Signed Message:\n',
19879 public:
0x76C0FDFB,
19880 private:
0x76C1077A
19887 estimateFee: function() { return "unused in this app" },
19890 bitcoin.networks.clam = {
19892 public:
0xa8c26d64,
19893 private:
0xa8c17826
19899 bitcoin.networks.dash = {
19901 public:
0x0488b21e,
19902 private:
0x0488ade4
19909 bitcoin.networks.game = {
19911 public:
0x0488b21e,
19912 private:
0x0488ade4
19919 bitcoin.networks.namecoin = {
19921 public:
0x0488b21e,
19922 private:
0x0488ade4
19925 //scriptHash:
0x10,
19929 bitcoin.networks.peercoin = {
19931 public:
0x0488b21e,
19932 private:
0x0488ade4
19935 //scriptHash:
0x10,
19940 <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){
19941 (function (global){
19944 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
19945 // original notice:
19948 * The buffer module from node.js, for the browser.
19950 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
19953 function compare(a, b) {
19961 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
19962 if (a[i] !== b[i]) {
19977 function isBuffer(b) {
19978 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
19979 return global.Buffer.isBuffer(b);
19981 return !!(b != null && b._isBuffer);
19984 // based on node assert, original notice:
19986 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
19988 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
19990 // Originally from narwhal.js (http://narwhaljs.org)
19991 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
19993 // Permission is hereby granted, free of charge, to any person obtaining a copy
19994 // of this software and associated documentation files (the 'Software'), to
19995 // deal in the Software without restriction, including without limitation the
19996 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
19997 // sell copies of the Software, and to permit persons to whom the Software is
19998 // furnished to do so, subject to the following conditions:
20000 // The above copyright notice and this permission notice shall be included in
20001 // all copies or substantial portions of the Software.
20003 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20004 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20005 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20006 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20007 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20008 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20010 var util = require('util/');
20011 var hasOwn = Object.prototype.hasOwnProperty;
20012 var pSlice = Array.prototype.slice;
20013 var functionsHaveNames = (function () {
20014 return function foo() {}.name === 'foo';
20016 function pToString (obj) {
20017 return Object.prototype.toString.call(obj);
20019 function isView(arrbuf) {
20020 if (isBuffer(arrbuf)) {
20023 if (typeof global.ArrayBuffer !== 'function') {
20026 if (typeof ArrayBuffer.isView === 'function') {
20027 return ArrayBuffer.isView(arrbuf);
20032 if (arrbuf instanceof DataView) {
20035 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
20040 //
1. The assert module provides functions that throw
20041 // AssertionError's when particular conditions are not met. The
20042 // assert module must conform to the following interface.
20044 var assert = module.exports = ok;
20046 //
2. The AssertionError is defined in assert.
20047 // new assert.AssertionError({ message: message,
20049 // expected: expected })
20051 var regex = /\s*function\s+([^\(\s]*)\s*/;
20052 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
20053 function getName(func) {
20054 if (!util.isFunction(func)) {
20057 if (functionsHaveNames) {
20060 var str = func.toString();
20061 var match = str.match(regex);
20062 return match && match[
1];
20064 assert.AssertionError = function AssertionError(options) {
20065 this.name = 'AssertionError';
20066 this.actual = options.actual;
20067 this.expected = options.expected;
20068 this.operator = options.operator;
20069 if (options.message) {
20070 this.message = options.message;
20071 this.generatedMessage = false;
20073 this.message = getMessage(this);
20074 this.generatedMessage = true;
20076 var stackStartFunction = options.stackStartFunction || fail;
20077 if (Error.captureStackTrace) {
20078 Error.captureStackTrace(this, stackStartFunction);
20080 // non v8 browsers so we can have a stacktrace
20081 var err = new Error();
20083 var out = err.stack;
20085 // try to strip useless frames
20086 var fn_name = getName(stackStartFunction);
20087 var idx = out.indexOf('\n' + fn_name);
20089 // once we have located the function frame
20090 // we need to strip out everything before it (and its line)
20091 var next_line = out.indexOf('\n', idx +
1);
20092 out = out.substring(next_line +
1);
20100 // assert.AssertionError instanceof Error
20101 util.inherits(assert.AssertionError, Error);
20103 function truncate(s, n) {
20104 if (typeof s === 'string') {
20105 return s.length < n ? s : s.slice(
0, n);
20110 function inspect(something) {
20111 if (functionsHaveNames || !util.isFunction(something)) {
20112 return util.inspect(something);
20114 var rawname = getName(something);
20115 var name = rawname ? ': ' + rawname : '';
20116 return '[Function' + name + ']';
20118 function getMessage(self) {
20119 return truncate(inspect(self.actual),
128) + ' ' +
20120 self.operator + ' ' +
20121 truncate(inspect(self.expected),
128);
20124 // At present only the three keys mentioned above are used and
20125 // understood by the spec. Implementations or sub modules can pass
20126 // other keys to the AssertionError's constructor - they will be
20129 //
3. All of the following functions must throw an AssertionError
20130 // when a corresponding condition is not met, with a message that
20131 // may be undefined if not provided. All assertion methods provide
20132 // both the actual and expected values to the assertion error for
20133 // display purposes.
20135 function fail(actual, expected, message, operator, stackStartFunction) {
20136 throw new assert.AssertionError({
20139 expected: expected,
20140 operator: operator,
20141 stackStartFunction: stackStartFunction
20145 // EXTENSION! allows for well behaved errors defined elsewhere.
20146 assert.fail = fail;
20148 //
4. Pure assertion tests whether a value is truthy, as determined
20150 // assert.ok(guard, message_opt);
20151 // This statement is equivalent to assert.equal(true, !!guard,
20152 // message_opt);. To test strictly for the value true, use
20153 // assert.strictEqual(true, guard, message_opt);.
20155 function ok(value, message) {
20156 if (!value) fail(value, true, message, '==', assert.ok);
20160 //
5. The equality assertion tests shallow, coercive equality with
20162 // assert.equal(actual, expected, message_opt);
20164 assert.equal = function equal(actual, expected, message) {
20165 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
20168 //
6. The non-equality assertion tests for whether two objects are not equal
20169 // with != assert.notEqual(actual, expected, message_opt);
20171 assert.notEqual = function notEqual(actual, expected, message) {
20172 if (actual == expected) {
20173 fail(actual, expected, message, '!=', assert.notEqual);
20177 //
7. The equivalence assertion tests a deep equality relation.
20178 // assert.deepEqual(actual, expected, message_opt);
20180 assert.deepEqual = function deepEqual(actual, expected, message) {
20181 if (!_deepEqual(actual, expected, false)) {
20182 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
20186 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
20187 if (!_deepEqual(actual, expected, true)) {
20188 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
20192 function _deepEqual(actual, expected, strict, memos) {
20193 //
7.1. All identical values are equivalent, as determined by ===.
20194 if (actual === expected) {
20196 } else if (isBuffer(actual) && isBuffer(expected)) {
20197 return compare(actual, expected) ===
0;
20199 //
7.2. If the expected value is a Date object, the actual value is
20200 // equivalent if it is also a Date object that refers to the same time.
20201 } else if (util.isDate(actual) && util.isDate(expected)) {
20202 return actual.getTime() === expected.getTime();
20204 //
7.3 If the expected value is a RegExp object, the actual value is
20205 // equivalent if it is also a RegExp object with the same source and
20206 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
20207 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
20208 return actual.source === expected.source &&
20209 actual.global === expected.global &&
20210 actual.multiline === expected.multiline &&
20211 actual.lastIndex === expected.lastIndex &&
20212 actual.ignoreCase === expected.ignoreCase;
20214 //
7.4. Other pairs that do not both pass typeof value == 'object',
20215 // equivalence is determined by ==.
20216 } else if ((actual === null || typeof actual !== 'object') &&
20217 (expected === null || typeof expected !== 'object')) {
20218 return strict ? actual === expected : actual == expected;
20220 // If both values are instances of typed arrays, wrap their underlying
20221 // ArrayBuffers in a Buffer each to increase performance
20222 // This optimization requires the arrays to have the same type as checked by
20223 // Object.prototype.toString (aka pToString). Never perform binary
20224 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
20225 // bit patterns are not identical.
20226 } else if (isView(actual) && isView(expected) &&
20227 pToString(actual) === pToString(expected) &&
20228 !(actual instanceof Float32Array ||
20229 actual instanceof Float64Array)) {
20230 return compare(new Uint8Array(actual.buffer),
20231 new Uint8Array(expected.buffer)) ===
0;
20233 //
7.5 For all other Object pairs, including Array objects, equivalence is
20234 // determined by having the same number of owned properties (as verified
20235 // with Object.prototype.hasOwnProperty.call), the same set of keys
20236 // (although not necessarily the same order), equivalent values for every
20237 // corresponding key, and an identical 'prototype' property. Note: this
20238 // accounts for both named and indexed properties on Arrays.
20239 } else if (isBuffer(actual) !== isBuffer(expected)) {
20242 memos = memos || {actual: [], expected: []};
20244 var actualIndex = memos.actual.indexOf(actual);
20245 if (actualIndex !== -
1) {
20246 if (actualIndex === memos.expected.indexOf(expected)) {
20251 memos.actual.push(actual);
20252 memos.expected.push(expected);
20254 return objEquiv(actual, expected, strict, memos);
20258 function isArguments(object) {
20259 return Object.prototype.toString.call(object) == '[object Arguments]';
20262 function objEquiv(a, b, strict, actualVisitedObjects) {
20263 if (a === null || a === undefined || b === null || b === undefined)
20265 // if one is a primitive, the other must be same
20266 if (util.isPrimitive(a) || util.isPrimitive(b))
20268 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
20270 var aIsArgs = isArguments(a);
20271 var bIsArgs = isArguments(b);
20272 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
20275 a = pSlice.call(a);
20276 b = pSlice.call(b);
20277 return _deepEqual(a, b, strict);
20279 var ka = objectKeys(a);
20280 var kb = objectKeys(b);
20282 // having the same number of owned properties (keys incorporates
20284 if (ka.length !== kb.length)
20286 //the same set of keys (although not necessarily the same order),
20289 //~~~cheap key test
20290 for (i = ka.length -
1; i
>=
0; i--) {
20291 if (ka[i] !== kb[i])
20294 //equivalent values for every corresponding key, and
20295 //~~~possibly expensive deep test
20296 for (i = ka.length -
1; i
>=
0; i--) {
20298 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
20304 //
8. The non-equivalence assertion tests for any deep inequality.
20305 // assert.notDeepEqual(actual, expected, message_opt);
20307 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
20308 if (_deepEqual(actual, expected, false)) {
20309 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
20313 assert.notDeepStrictEqual = notDeepStrictEqual;
20314 function notDeepStrictEqual(actual, expected, message) {
20315 if (_deepEqual(actual, expected, true)) {
20316 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
20321 //
9. The strict equality assertion tests strict equality, as determined by ===.
20322 // assert.strictEqual(actual, expected, message_opt);
20324 assert.strictEqual = function strictEqual(actual, expected, message) {
20325 if (actual !== expected) {
20326 fail(actual, expected, message, '===', assert.strictEqual);
20330 //
10. The strict non-equality assertion tests for strict inequality, as
20331 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
20333 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
20334 if (actual === expected) {
20335 fail(actual, expected, message, '!==', assert.notStrictEqual);
20339 function expectedException(actual, expected) {
20340 if (!actual || !expected) {
20344 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
20345 return expected.test(actual);
20349 if (actual instanceof expected) {
20353 // Ignore. The instanceof check doesn't work for arrow functions.
20356 if (Error.isPrototypeOf(expected)) {
20360 return expected.call({}, actual) === true;
20363 function _tryBlock(block) {
20373 function _throws(shouldThrow, block, expected, message) {
20376 if (typeof block !== 'function') {
20377 throw new TypeError('"block" argument must be a function');
20380 if (typeof expected === 'string') {
20381 message = expected;
20385 actual = _tryBlock(block);
20387 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
20388 (message ? ' ' + message : '.');
20390 if (shouldThrow && !actual) {
20391 fail(actual, expected, 'Missing expected exception' + message);
20394 var userProvidedMessage = typeof message === 'string';
20395 var isUnwantedException = !shouldThrow && util.isError(actual);
20396 var isUnexpectedException = !shouldThrow && actual && !expected;
20398 if ((isUnwantedException &&
20399 userProvidedMessage &&
20400 expectedException(actual, expected)) ||
20401 isUnexpectedException) {
20402 fail(actual, expected, 'Got unwanted exception' + message);
20405 if ((shouldThrow && actual && expected &&
20406 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
20411 //
11. Expected to throw an error:
20412 // assert.throws(block, Error_opt, message_opt);
20414 assert.throws = function(block, /*optional*/error, /*optional*/message) {
20415 _throws(true, block, error, message);
20418 // EXTENSION! This is annoying to write outside this module.
20419 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
20420 _throws(false, block, error, message);
20423 assert.ifError = function(err) { if (err) throw err; };
20425 var objectKeys = Object.keys || function (obj) {
20427 for (var key in obj) {
20428 if (hasOwn.call(obj, key)) keys.push(key);
20433 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20434 },{"util/":
30}],
2:[function(require,module,exports){
20437 exports.byteLength = byteLength
20438 exports.toByteArray = toByteArray
20439 exports.fromByteArray = fromByteArray
20443 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
20445 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
20446 for (var i =
0, len = code.length; i < len; ++i) {
20447 lookup[i] = code[i]
20448 revLookup[code.charCodeAt(i)] = i
20451 revLookup['-'.charCodeAt(
0)] =
62
20452 revLookup['_'.charCodeAt(
0)] =
63
20454 function placeHoldersCount (b64) {
20455 var len = b64.length
20457 throw new Error('Invalid string. Length must be a multiple of
4')
20460 // the number of equal signs (place holders)
20461 // if there are two placeholders, than the two characters before it
20462 // represent one byte
20463 // if there is only one, then the three characters before it represent
2 bytes
20464 // this is just a cheap hack to not do indexOf twice
20465 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
20468 function byteLength (b64) {
20469 // base64 is
4/
3 + up to two characters of the original data
20470 return b64.length *
3 /
4 - placeHoldersCount(b64)
20473 function toByteArray (b64) {
20474 var i, j, l, tmp, placeHolders, arr
20475 var len = b64.length
20476 placeHolders = placeHoldersCount(b64)
20478 arr = new Arr(len *
3 /
4 - placeHolders)
20480 // if there are placeholders, only get up to the last complete
4 chars
20481 l = placeHolders
> 0 ? len -
4 : len
20485 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
20486 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
20487 arr[L++] = (tmp
>> 16) &
0xFF
20488 arr[L++] = (tmp
>> 8) &
0xFF
20489 arr[L++] = tmp &
0xFF
20492 if (placeHolders ===
2) {
20493 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
20494 arr[L++] = tmp &
0xFF
20495 } else if (placeHolders ===
1) {
20496 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
20497 arr[L++] = (tmp
>> 8) &
0xFF
20498 arr[L++] = tmp &
0xFF
20504 function tripletToBase64 (num) {
20505 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
20508 function encodeChunk (uint8, start, end) {
20511 for (var i = start; i < end; i +=
3) {
20512 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
20513 output.push(tripletToBase64(tmp))
20515 return output.join('')
20518 function fromByteArray (uint8) {
20520 var len = uint8.length
20521 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
20524 var maxChunkLength =
16383 // must be multiple of
3
20526 // go through the array every three bytes, we'll deal with trailing stuff later
20527 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
20528 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
20531 // pad the end with zeros, but make sure to not forget the extra bytes
20532 if (extraBytes ===
1) {
20533 tmp = uint8[len -
1]
20534 output += lookup[tmp
>> 2]
20535 output += lookup[(tmp <<
4) &
0x3F]
20537 } else if (extraBytes ===
2) {
20538 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
20539 output += lookup[tmp
>> 10]
20540 output += lookup[(tmp
>> 4) &
0x3F]
20541 output += lookup[(tmp <<
2) &
0x3F]
20547 return parts.join('')
20550 },{}],
3:[function(require,module,exports){
20552 },{}],
4:[function(require,module,exports){
20553 (function (global){
20556 var buffer = require('buffer');
20557 var Buffer = buffer.Buffer;
20558 var SlowBuffer = buffer.SlowBuffer;
20559 var MAX_LEN = buffer.kMaxLength ||
2147483647;
20560 exports.alloc = function alloc(size, fill, encoding) {
20561 if (typeof Buffer.alloc === 'function') {
20562 return Buffer.alloc(size, fill, encoding);
20564 if (typeof encoding === 'number') {
20565 throw new TypeError('encoding must not be number');
20567 if (typeof size !== 'number') {
20568 throw new TypeError('size must be a number');
20570 if (size
> MAX_LEN) {
20571 throw new RangeError('size is too large');
20573 var enc = encoding;
20575 if (_fill === undefined) {
20579 var buf = new Buffer(size);
20580 if (typeof _fill === 'string') {
20581 var fillBuf = new Buffer(_fill, enc);
20582 var flen = fillBuf.length;
20584 while (++i < size) {
20585 buf[i] = fillBuf[i % flen];
20592 exports.allocUnsafe = function allocUnsafe(size) {
20593 if (typeof Buffer.allocUnsafe === 'function') {
20594 return Buffer.allocUnsafe(size);
20596 if (typeof size !== 'number') {
20597 throw new TypeError('size must be a number');
20599 if (size
> MAX_LEN) {
20600 throw new RangeError('size is too large');
20602 return new Buffer(size);
20604 exports.from = function from(value, encodingOrOffset, length) {
20605 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
20606 return Buffer.from(value, encodingOrOffset, length);
20608 if (typeof value === 'number') {
20609 throw new TypeError('"value" argument must not be a number');
20611 if (typeof value === 'string') {
20612 return new Buffer(value, encodingOrOffset);
20614 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
20615 var offset = encodingOrOffset;
20616 if (arguments.length ===
1) {
20617 return new Buffer(value);
20619 if (typeof offset === 'undefined') {
20623 if (typeof len === 'undefined') {
20624 len = value.byteLength - offset;
20626 if (offset
>= value.byteLength) {
20627 throw new RangeError('\'offset\' is out of bounds');
20629 if (len
> value.byteLength - offset) {
20630 throw new RangeError('\'length\' is out of bounds');
20632 return new Buffer(value.slice(offset, offset + len));
20634 if (Buffer.isBuffer(value)) {
20635 var out = new Buffer(value.length);
20636 value.copy(out,
0,
0, value.length);
20640 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
20641 return new Buffer(value);
20643 if (value.type === 'Buffer' && Array.isArray(value.data)) {
20644 return new Buffer(value.data);
20648 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
20650 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
20651 if (typeof Buffer.allocUnsafeSlow === 'function') {
20652 return Buffer.allocUnsafeSlow(size);
20654 if (typeof size !== 'number') {
20655 throw new TypeError('size must be a number');
20657 if (size
>= MAX_LEN) {
20658 throw new RangeError('size is too large');
20660 return new SlowBuffer(size);
20663 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20664 },{"buffer":
5}],
5:[function(require,module,exports){
20666 * The buffer module from node.js, for the browser.
20668 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20671 /* eslint-disable no-proto */
20675 var base64 = require('base64-js')
20676 var ieee754 = require('ieee754')
20678 exports.Buffer = Buffer
20679 exports.SlowBuffer = SlowBuffer
20680 exports.INSPECT_MAX_BYTES =
50
20682 var K_MAX_LENGTH =
0x7fffffff
20683 exports.kMaxLength = K_MAX_LENGTH
20686 * If `Buffer.TYPED_ARRAY_SUPPORT`:
20687 * === true Use Uint8Array implementation (fastest)
20688 * === false Print warning and recommend using `buffer` v4.x which has an Object
20689 * implementation (most compatible, even IE6)
20691 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
20692 * Opera
11.6+, iOS
4.2+.
20694 * We report that the browser does not support typed arrays if the are not subclassable
20695 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
20696 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
20697 * for __proto__ and has a buggy typed array implementation.
20699 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
20701 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
20702 typeof console.error === 'function') {
20704 'This browser lacks typed array (Uint8Array) support which is required by ' +
20705 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
20709 function typedArraySupport () {
20710 // Can typed array instances can be augmented?
20712 var arr = new Uint8Array(
1)
20713 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
20714 return arr.foo() ===
42
20720 function createBuffer (length) {
20721 if (length
> K_MAX_LENGTH) {
20722 throw new RangeError('Invalid typed array length')
20724 // Return an augmented `Uint8Array` instance
20725 var buf = new Uint8Array(length)
20726 buf.__proto__ = Buffer.prototype
20731 * The Buffer constructor returns instances of `Uint8Array` that have their
20732 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
20733 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
20734 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
20735 * returns a single octet.
20737 * The `Uint8Array` prototype remains unmodified.
20740 function Buffer (arg, encodingOrOffset, length) {
20742 if (typeof arg === 'number') {
20743 if (typeof encodingOrOffset === 'string') {
20745 'If encoding is specified then the first argument must be a string'
20748 return allocUnsafe(arg)
20750 return from(arg, encodingOrOffset, length)
20753 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
20754 if (typeof Symbol !== 'undefined' && Symbol.species &&
20755 Buffer[Symbol.species] === Buffer) {
20756 Object.defineProperty(Buffer, Symbol.species, {
20758 configurable: true,
20764 Buffer.poolSize =
8192 // not used by this implementation
20766 function from (value, encodingOrOffset, length) {
20767 if (typeof value === 'number') {
20768 throw new TypeError('"value" argument must not be a number')
20771 if (value instanceof ArrayBuffer) {
20772 return fromArrayBuffer(value, encodingOrOffset, length)
20775 if (typeof value === 'string') {
20776 return fromString(value, encodingOrOffset)
20779 return fromObject(value)
20783 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
20784 * if value is a number.
20785 * Buffer.from(str[, encoding])
20786 * Buffer.from(array)
20787 * Buffer.from(buffer)
20788 * Buffer.from(arrayBuffer[, byteOffset[, length]])
20790 Buffer.from = function (value, encodingOrOffset, length) {
20791 return from(value, encodingOrOffset, length)
20794 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
20795 // https://github.com/feross/buffer/pull/
148
20796 Buffer.prototype.__proto__ = Uint8Array.prototype
20797 Buffer.__proto__ = Uint8Array
20799 function assertSize (size) {
20800 if (typeof size !== 'number') {
20801 throw new TypeError('"size" argument must be a number')
20802 } else if (size <
0) {
20803 throw new RangeError('"size" argument must not be negative')
20807 function alloc (size, fill, encoding) {
20810 return createBuffer(size)
20812 if (fill !== undefined) {
20813 // Only pay attention to encoding if it's a string. This
20814 // prevents accidentally sending in a number that would
20815 // be interpretted as a start offset.
20816 return typeof encoding === 'string'
20817 ? createBuffer(size).fill(fill, encoding)
20818 : createBuffer(size).fill(fill)
20820 return createBuffer(size)
20824 * Creates a new filled Buffer instance.
20825 * alloc(size[, fill[, encoding]])
20827 Buffer.alloc = function (size, fill, encoding) {
20828 return alloc(size, fill, encoding)
20831 function allocUnsafe (size) {
20833 return createBuffer(size <
0 ?
0 : checked(size) |
0)
20837 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
20839 Buffer.allocUnsafe = function (size) {
20840 return allocUnsafe(size)
20843 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
20845 Buffer.allocUnsafeSlow = function (size) {
20846 return allocUnsafe(size)
20849 function fromString (string, encoding) {
20850 if (typeof encoding !== 'string' || encoding === '') {
20854 if (!Buffer.isEncoding(encoding)) {
20855 throw new TypeError('"encoding" must be a valid string encoding')
20858 var length = byteLength(string, encoding) |
0
20859 var buf = createBuffer(length)
20861 var actual = buf.write(string, encoding)
20863 if (actual !== length) {
20864 // Writing a hex string, for example, that contains invalid characters will
20865 // cause everything after the first invalid character to be ignored. (e.g.
20866 // 'abxxcd' will be treated as 'ab')
20867 buf = buf.slice(
0, actual)
20873 function fromArrayLike (array) {
20874 var length = array.length <
0 ?
0 : checked(array.length) |
0
20875 var buf = createBuffer(length)
20876 for (var i =
0; i < length; i +=
1) {
20877 buf[i] = array[i] &
255
20882 function fromArrayBuffer (array, byteOffset, length) {
20883 if (byteOffset <
0 || array.byteLength < byteOffset) {
20884 throw new RangeError('\'offset\' is out of bounds')
20887 if (array.byteLength < byteOffset + (length ||
0)) {
20888 throw new RangeError('\'length\' is out of bounds')
20892 if (byteOffset === undefined && length === undefined) {
20893 buf = new Uint8Array(array)
20894 } else if (length === undefined) {
20895 buf = new Uint8Array(array, byteOffset)
20897 buf = new Uint8Array(array, byteOffset, length)
20900 // Return an augmented `Uint8Array` instance
20901 buf.__proto__ = Buffer.prototype
20905 function fromObject (obj) {
20906 if (Buffer.isBuffer(obj)) {
20907 var len = checked(obj.length) |
0
20908 var buf = createBuffer(len)
20910 if (buf.length ===
0) {
20914 obj.copy(buf,
0,
0, len)
20919 if (ArrayBuffer.isView(obj) || 'length' in obj) {
20920 if (typeof obj.length !== 'number' || isnan(obj.length)) {
20921 return createBuffer(
0)
20923 return fromArrayLike(obj)
20926 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
20927 return fromArrayLike(obj.data)
20931 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
20934 function checked (length) {
20935 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
20936 // length is NaN (which is otherwise coerced to zero.)
20937 if (length
>= K_MAX_LENGTH) {
20938 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
20939 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
20944 function SlowBuffer (length) {
20945 if (+length != length) { // eslint-disable-line eqeqeq
20948 return Buffer.alloc(+length)
20951 Buffer.isBuffer = function isBuffer (b) {
20952 return b != null && b._isBuffer === true
20955 Buffer.compare = function compare (a, b) {
20956 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
20957 throw new TypeError('Arguments must be Buffers')
20960 if (a === b) return
0
20965 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
20966 if (a[i] !== b[i]) {
20973 if (x < y) return -
1
20974 if (y < x) return
1
20978 Buffer.isEncoding = function isEncoding (encoding) {
20979 switch (String(encoding).toLowerCase()) {
20997 Buffer.concat = function concat (list, length) {
20998 if (!Array.isArray(list)) {
20999 throw new TypeError('"list" argument must be an Array of Buffers')
21002 if (list.length ===
0) {
21003 return Buffer.alloc(
0)
21007 if (length === undefined) {
21009 for (i =
0; i < list.length; ++i) {
21010 length += list[i].length
21014 var buffer = Buffer.allocUnsafe(length)
21016 for (i =
0; i < list.length; ++i) {
21018 if (!Buffer.isBuffer(buf)) {
21019 throw new TypeError('"list" argument must be an Array of Buffers')
21021 buf.copy(buffer, pos)
21027 function byteLength (string, encoding) {
21028 if (Buffer.isBuffer(string)) {
21029 return string.length
21031 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
21032 return string.byteLength
21034 if (typeof string !== 'string') {
21035 string = '' + string
21038 var len = string.length
21039 if (len ===
0) return
0
21041 // Use a for loop to avoid recursion
21042 var loweredCase = false
21044 switch (encoding) {
21052 return utf8ToBytes(string).length
21061 return base64ToBytes(string).length
21063 if (loweredCase) return utf8ToBytes(string).length // assume utf8
21064 encoding = ('' + encoding).toLowerCase()
21069 Buffer.byteLength = byteLength
21071 function slowToString (encoding, start, end) {
21072 var loweredCase = false
21074 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
21075 // property of a typed array.
21077 // This behaves neither like String nor Uint8Array in that we set start/end
21078 // to their upper/lower bounds if the value passed is out of range.
21079 // undefined is handled specially as per ECMA-
262 6th Edition,
21080 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
21081 if (start === undefined || start <
0) {
21084 // Return early if start
> this.length. Done here to prevent potential uint32
21085 // coercion fail below.
21086 if (start
> this.length) {
21090 if (end === undefined || end
> this.length) {
21098 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
21102 if (end <= start) {
21106 if (!encoding) encoding = 'utf8'
21109 switch (encoding) {
21111 return hexSlice(this, start, end)
21115 return utf8Slice(this, start, end)
21118 return asciiSlice(this, start, end)
21122 return latin1Slice(this, start, end)
21125 return base64Slice(this, start, end)
21131 return utf16leSlice(this, start, end)
21134 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21135 encoding = (encoding + '').toLowerCase()
21141 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
21142 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
21143 // reliably in a browserify context because there could be multiple different
21144 // copies of the 'buffer' package in use. This method works even for Buffer
21145 // instances that were created from another copy of the `buffer` package.
21146 // See: https://github.com/feross/buffer/issues/
154
21147 Buffer.prototype._isBuffer = true
21149 function swap (b, n, m) {
21155 Buffer.prototype.swap16 = function swap16 () {
21156 var len = this.length
21157 if (len %
2 !==
0) {
21158 throw new RangeError('Buffer size must be a multiple of
16-bits')
21160 for (var i =
0; i < len; i +=
2) {
21161 swap(this, i, i +
1)
21166 Buffer.prototype.swap32 = function swap32 () {
21167 var len = this.length
21168 if (len %
4 !==
0) {
21169 throw new RangeError('Buffer size must be a multiple of
32-bits')
21171 for (var i =
0; i < len; i +=
4) {
21172 swap(this, i, i +
3)
21173 swap(this, i +
1, i +
2)
21178 Buffer.prototype.swap64 = function swap64 () {
21179 var len = this.length
21180 if (len %
8 !==
0) {
21181 throw new RangeError('Buffer size must be a multiple of
64-bits')
21183 for (var i =
0; i < len; i +=
8) {
21184 swap(this, i, i +
7)
21185 swap(this, i +
1, i +
6)
21186 swap(this, i +
2, i +
5)
21187 swap(this, i +
3, i +
4)
21192 Buffer.prototype.toString = function toString () {
21193 var length = this.length
21194 if (length ===
0) return ''
21195 if (arguments.length ===
0) return utf8Slice(this,
0, length)
21196 return slowToString.apply(this, arguments)
21199 Buffer.prototype.equals = function equals (b) {
21200 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
21201 if (this === b) return true
21202 return Buffer.compare(this, b) ===
0
21205 Buffer.prototype.inspect = function inspect () {
21207 var max = exports.INSPECT_MAX_BYTES
21208 if (this.length
> 0) {
21209 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
21210 if (this.length
> max) str += ' ... '
21212 return '
<Buffer ' + str + '
>'
21215 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
21216 if (!Buffer.isBuffer(target)) {
21217 throw new TypeError('Argument must be a Buffer')
21220 if (start === undefined) {
21223 if (end === undefined) {
21224 end = target ? target.length :
0
21226 if (thisStart === undefined) {
21229 if (thisEnd === undefined) {
21230 thisEnd = this.length
21233 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
21234 throw new RangeError('out of range index')
21237 if (thisStart
>= thisEnd && start
>= end) {
21240 if (thisStart
>= thisEnd) {
21243 if (start
>= end) {
21252 if (this === target) return
0
21254 var x = thisEnd - thisStart
21255 var y = end - start
21256 var len = Math.min(x, y)
21258 var thisCopy = this.slice(thisStart, thisEnd)
21259 var targetCopy = target.slice(start, end)
21261 for (var i =
0; i < len; ++i) {
21262 if (thisCopy[i] !== targetCopy[i]) {
21269 if (x < y) return -
1
21270 if (y < x) return
1
21274 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
21275 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
21278 // - buffer - a Buffer to search
21279 // - val - a string, Buffer, or number
21280 // - byteOffset - an index into `buffer`; will be clamped to an int32
21281 // - encoding - an optional encoding, relevant is val is a string
21282 // - dir - true for indexOf, false for lastIndexOf
21283 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
21284 // Empty buffer means no match
21285 if (buffer.length ===
0) return -
1
21287 // Normalize byteOffset
21288 if (typeof byteOffset === 'string') {
21289 encoding = byteOffset
21291 } else if (byteOffset
> 0x7fffffff) {
21292 byteOffset =
0x7fffffff
21293 } else if (byteOffset < -
0x80000000) {
21294 byteOffset = -
0x80000000
21296 byteOffset = +byteOffset // Coerce to Number.
21297 if (isNaN(byteOffset)) {
21298 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
21299 byteOffset = dir ?
0 : (buffer.length -
1)
21302 // Normalize byteOffset: negative offsets start from the end of the buffer
21303 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
21304 if (byteOffset
>= buffer.length) {
21306 else byteOffset = buffer.length -
1
21307 } else if (byteOffset <
0) {
21308 if (dir) byteOffset =
0
21313 if (typeof val === 'string') {
21314 val = Buffer.from(val, encoding)
21317 // Finally, search either indexOf (if dir is true) or lastIndexOf
21318 if (Buffer.isBuffer(val)) {
21319 // Special case: looking for empty string/buffer always fails
21320 if (val.length ===
0) {
21323 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
21324 } else if (typeof val === 'number') {
21325 val = val &
0xFF // Search for a byte value [
0-
255]
21326 if (typeof Uint8Array.prototype.indexOf === 'function') {
21328 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
21330 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
21333 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
21336 throw new TypeError('val must be string, number or Buffer')
21339 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
21341 var arrLength = arr.length
21342 var valLength = val.length
21344 if (encoding !== undefined) {
21345 encoding = String(encoding).toLowerCase()
21346 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
21347 encoding === 'utf16le' || encoding === 'utf-
16le') {
21348 if (arr.length <
2 || val.length <
2) {
21358 function read (buf, i) {
21359 if (indexSize ===
1) {
21362 return buf.readUInt16BE(i * indexSize)
21368 var foundIndex = -
1
21369 for (i = byteOffset; i < arrLength; i++) {
21370 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
21371 if (foundIndex === -
1) foundIndex = i
21372 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
21374 if (foundIndex !== -
1) i -= i - foundIndex
21379 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
21380 for (i = byteOffset; i
>=
0; i--) {
21382 for (var j =
0; j < valLength; j++) {
21383 if (read(arr, i + j) !== read(val, j)) {
21388 if (found) return i
21395 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
21396 return this.indexOf(val, byteOffset, encoding) !== -
1
21399 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
21400 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
21403 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
21404 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
21407 function hexWrite (buf, string, offset, length) {
21408 offset = Number(offset) ||
0
21409 var remaining = buf.length - offset
21413 length = Number(length)
21414 if (length
> remaining) {
21419 // must be an even number of digits
21420 var strLen = string.length
21421 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
21423 if (length
> strLen /
2) {
21424 length = strLen /
2
21426 for (var i =
0; i < length; ++i) {
21427 var parsed = parseInt(string.substr(i *
2,
2),
16)
21428 if (isNaN(parsed)) return i
21429 buf[offset + i] = parsed
21434 function utf8Write (buf, string, offset, length) {
21435 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
21438 function asciiWrite (buf, string, offset, length) {
21439 return blitBuffer(asciiToBytes(string), buf, offset, length)
21442 function latin1Write (buf, string, offset, length) {
21443 return asciiWrite(buf, string, offset, length)
21446 function base64Write (buf, string, offset, length) {
21447 return blitBuffer(base64ToBytes(string), buf, offset, length)
21450 function ucs2Write (buf, string, offset, length) {
21451 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
21454 Buffer.prototype.write = function write (string, offset, length, encoding) {
21455 // Buffer#write(string)
21456 if (offset === undefined) {
21458 length = this.length
21460 // Buffer#write(string, encoding)
21461 } else if (length === undefined && typeof offset === 'string') {
21463 length = this.length
21465 // Buffer#write(string, offset[, length][, encoding])
21466 } else if (isFinite(offset)) {
21467 offset = offset
>>> 0
21468 if (isFinite(length)) {
21469 length = length
>>> 0
21470 if (encoding === undefined) encoding = 'utf8'
21477 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
21481 var remaining = this.length - offset
21482 if (length === undefined || length
> remaining) length = remaining
21484 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
21485 throw new RangeError('Attempt to write outside buffer bounds')
21488 if (!encoding) encoding = 'utf8'
21490 var loweredCase = false
21492 switch (encoding) {
21494 return hexWrite(this, string, offset, length)
21498 return utf8Write(this, string, offset, length)
21501 return asciiWrite(this, string, offset, length)
21505 return latin1Write(this, string, offset, length)
21508 // Warning: maxLength not taken into account in base64Write
21509 return base64Write(this, string, offset, length)
21515 return ucs2Write(this, string, offset, length)
21518 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21519 encoding = ('' + encoding).toLowerCase()
21525 Buffer.prototype.toJSON = function toJSON () {
21528 data: Array.prototype.slice.call(this._arr || this,
0)
21532 function base64Slice (buf, start, end) {
21533 if (start ===
0 && end === buf.length) {
21534 return base64.fromByteArray(buf)
21536 return base64.fromByteArray(buf.slice(start, end))
21540 function utf8Slice (buf, start, end) {
21541 end = Math.min(buf.length, end)
21546 var firstByte = buf[i]
21547 var codePoint = null
21548 var bytesPerSequence = (firstByte
> 0xEF) ?
4
21549 : (firstByte
> 0xDF) ?
3
21550 : (firstByte
> 0xBF) ?
2
21553 if (i + bytesPerSequence <= end) {
21554 var secondByte, thirdByte, fourthByte, tempCodePoint
21556 switch (bytesPerSequence) {
21558 if (firstByte <
0x80) {
21559 codePoint = firstByte
21563 secondByte = buf[i +
1]
21564 if ((secondByte &
0xC0) ===
0x80) {
21565 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
21566 if (tempCodePoint
> 0x7F) {
21567 codePoint = tempCodePoint
21572 secondByte = buf[i +
1]
21573 thirdByte = buf[i +
2]
21574 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
21575 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
21576 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
21577 codePoint = tempCodePoint
21582 secondByte = buf[i +
1]
21583 thirdByte = buf[i +
2]
21584 fourthByte = buf[i +
3]
21585 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
21586 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
21587 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
21588 codePoint = tempCodePoint
21594 if (codePoint === null) {
21595 // we did not generate a valid codePoint so insert a
21596 // replacement char (U+FFFD) and advance only
1 byte
21598 bytesPerSequence =
1
21599 } else if (codePoint
> 0xFFFF) {
21600 // encode to utf16 (surrogate pair dance)
21601 codePoint -=
0x10000
21602 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
21603 codePoint =
0xDC00 | codePoint &
0x3FF
21606 res.push(codePoint)
21607 i += bytesPerSequence
21610 return decodeCodePointsArray(res)
21613 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
21614 // the lowest limit is Chrome, with
0x10000 args.
21615 // We go
1 magnitude less, for safety
21616 var MAX_ARGUMENTS_LENGTH =
0x1000
21618 function decodeCodePointsArray (codePoints) {
21619 var len = codePoints.length
21620 if (len <= MAX_ARGUMENTS_LENGTH) {
21621 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
21624 // Decode in chunks to avoid
"call stack size exceeded".
21628 res += String.fromCharCode.apply(
21630 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
21636 function asciiSlice (buf, start, end) {
21638 end = Math.min(buf.length, end)
21640 for (var i = start; i < end; ++i) {
21641 ret += String.fromCharCode(buf[i] &
0x7F)
21646 function latin1Slice (buf, start, end) {
21648 end = Math.min(buf.length, end)
21650 for (var i = start; i < end; ++i) {
21651 ret += String.fromCharCode(buf[i])
21656 function hexSlice (buf, start, end) {
21657 var len = buf.length
21659 if (!start || start <
0) start =
0
21660 if (!end || end <
0 || end
> len) end = len
21663 for (var i = start; i < end; ++i) {
21664 out += toHex(buf[i])
21669 function utf16leSlice (buf, start, end) {
21670 var bytes = buf.slice(start, end)
21672 for (var i =
0; i < bytes.length; i +=
2) {
21673 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
21678 Buffer.prototype.slice = function slice (start, end) {
21679 var len = this.length
21681 end = end === undefined ? len : ~~end
21685 if (start <
0) start =
0
21686 } else if (start
> len) {
21692 if (end <
0) end =
0
21693 } else if (end
> len) {
21697 if (end < start) end = start
21699 var newBuf = this.subarray(start, end)
21700 // Return an augmented `Uint8Array` instance
21701 newBuf.__proto__ = Buffer.prototype
21706 * Need to make sure that buffer isn't trying to write out of bounds.
21708 function checkOffset (offset, ext, length) {
21709 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
21710 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
21713 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
21714 offset = offset
>>> 0
21715 byteLength = byteLength
>>> 0
21716 if (!noAssert) checkOffset(offset, byteLength, this.length)
21718 var val = this[offset]
21721 while (++i < byteLength && (mul *=
0x100)) {
21722 val += this[offset + i] * mul
21728 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
21729 offset = offset
>>> 0
21730 byteLength = byteLength
>>> 0
21732 checkOffset(offset, byteLength, this.length)
21735 var val = this[offset + --byteLength]
21737 while (byteLength
> 0 && (mul *=
0x100)) {
21738 val += this[offset + --byteLength] * mul
21744 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
21745 offset = offset
>>> 0
21746 if (!noAssert) checkOffset(offset,
1, this.length)
21747 return this[offset]
21750 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
21751 offset = offset
>>> 0
21752 if (!noAssert) checkOffset(offset,
2, this.length)
21753 return this[offset] | (this[offset +
1] <<
8)
21756 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
21757 offset = offset
>>> 0
21758 if (!noAssert) checkOffset(offset,
2, this.length)
21759 return (this[offset] <<
8) | this[offset +
1]
21762 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
21763 offset = offset
>>> 0
21764 if (!noAssert) checkOffset(offset,
4, this.length)
21766 return ((this[offset]) |
21767 (this[offset +
1] <<
8) |
21768 (this[offset +
2] <<
16)) +
21769 (this[offset +
3] *
0x1000000)
21772 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
21773 offset = offset
>>> 0
21774 if (!noAssert) checkOffset(offset,
4, this.length)
21776 return (this[offset] *
0x1000000) +
21777 ((this[offset +
1] <<
16) |
21778 (this[offset +
2] <<
8) |
21782 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
21783 offset = offset
>>> 0
21784 byteLength = byteLength
>>> 0
21785 if (!noAssert) checkOffset(offset, byteLength, this.length)
21787 var val = this[offset]
21790 while (++i < byteLength && (mul *=
0x100)) {
21791 val += this[offset + i] * mul
21795 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21800 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
21801 offset = offset
>>> 0
21802 byteLength = byteLength
>>> 0
21803 if (!noAssert) checkOffset(offset, byteLength, this.length)
21807 var val = this[offset + --i]
21808 while (i
> 0 && (mul *=
0x100)) {
21809 val += this[offset + --i] * mul
21813 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21818 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
21819 offset = offset
>>> 0
21820 if (!noAssert) checkOffset(offset,
1, this.length)
21821 if (!(this[offset] &
0x80)) return (this[offset])
21822 return ((
0xff - this[offset] +
1) * -
1)
21825 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
21826 offset = offset
>>> 0
21827 if (!noAssert) checkOffset(offset,
2, this.length)
21828 var val = this[offset] | (this[offset +
1] <<
8)
21829 return (val &
0x8000) ? val |
0xFFFF0000 : val
21832 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
21833 offset = offset
>>> 0
21834 if (!noAssert) checkOffset(offset,
2, this.length)
21835 var val = this[offset +
1] | (this[offset] <<
8)
21836 return (val &
0x8000) ? val |
0xFFFF0000 : val
21839 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
21840 offset = offset
>>> 0
21841 if (!noAssert) checkOffset(offset,
4, this.length)
21843 return (this[offset]) |
21844 (this[offset +
1] <<
8) |
21845 (this[offset +
2] <<
16) |
21846 (this[offset +
3] <<
24)
21849 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
21850 offset = offset
>>> 0
21851 if (!noAssert) checkOffset(offset,
4, this.length)
21853 return (this[offset] <<
24) |
21854 (this[offset +
1] <<
16) |
21855 (this[offset +
2] <<
8) |
21859 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
21860 offset = offset
>>> 0
21861 if (!noAssert) checkOffset(offset,
4, this.length)
21862 return ieee754.read(this, offset, true,
23,
4)
21865 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
21866 offset = offset
>>> 0
21867 if (!noAssert) checkOffset(offset,
4, this.length)
21868 return ieee754.read(this, offset, false,
23,
4)
21871 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
21872 offset = offset
>>> 0
21873 if (!noAssert) checkOffset(offset,
8, this.length)
21874 return ieee754.read(this, offset, true,
52,
8)
21877 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
21878 offset = offset
>>> 0
21879 if (!noAssert) checkOffset(offset,
8, this.length)
21880 return ieee754.read(this, offset, false,
52,
8)
21883 function checkInt (buf, value, offset, ext, max, min) {
21884 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
21885 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
21886 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
21889 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
21891 offset = offset
>>> 0
21892 byteLength = byteLength
>>> 0
21894 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21895 checkInt(this, value, offset, byteLength, maxBytes,
0)
21900 this[offset] = value &
0xFF
21901 while (++i < byteLength && (mul *=
0x100)) {
21902 this[offset + i] = (value / mul) &
0xFF
21905 return offset + byteLength
21908 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
21910 offset = offset
>>> 0
21911 byteLength = byteLength
>>> 0
21913 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21914 checkInt(this, value, offset, byteLength, maxBytes,
0)
21917 var i = byteLength -
1
21919 this[offset + i] = value &
0xFF
21920 while (--i
>=
0 && (mul *=
0x100)) {
21921 this[offset + i] = (value / mul) &
0xFF
21924 return offset + byteLength
21927 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
21929 offset = offset
>>> 0
21930 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
21931 this[offset] = (value &
0xff)
21935 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
21937 offset = offset
>>> 0
21938 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21939 this[offset] = (value &
0xff)
21940 this[offset +
1] = (value
>>> 8)
21944 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
21946 offset = offset
>>> 0
21947 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21948 this[offset] = (value
>>> 8)
21949 this[offset +
1] = (value &
0xff)
21953 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
21955 offset = offset
>>> 0
21956 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21957 this[offset +
3] = (value
>>> 24)
21958 this[offset +
2] = (value
>>> 16)
21959 this[offset +
1] = (value
>>> 8)
21960 this[offset] = (value &
0xff)
21964 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
21966 offset = offset
>>> 0
21967 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
21968 this[offset] = (value
>>> 24)
21969 this[offset +
1] = (value
>>> 16)
21970 this[offset +
2] = (value
>>> 8)
21971 this[offset +
3] = (value &
0xff)
21975 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
21977 offset = offset
>>> 0
21979 var limit = Math.pow(
2, (
8 * byteLength) -
1)
21981 checkInt(this, value, offset, byteLength, limit -
1, -limit)
21987 this[offset] = value &
0xFF
21988 while (++i < byteLength && (mul *=
0x100)) {
21989 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
21992 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
21995 return offset + byteLength
21998 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
22000 offset = offset
>>> 0
22002 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22004 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22007 var i = byteLength -
1
22010 this[offset + i] = value &
0xFF
22011 while (--i
>=
0 && (mul *=
0x100)) {
22012 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
22015 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22018 return offset + byteLength
22021 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
22023 offset = offset
>>> 0
22024 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
22025 if (value <
0) value =
0xff + value +
1
22026 this[offset] = (value &
0xff)
22030 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
22032 offset = offset
>>> 0
22033 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22034 this[offset] = (value &
0xff)
22035 this[offset +
1] = (value
>>> 8)
22039 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
22041 offset = offset
>>> 0
22042 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22043 this[offset] = (value
>>> 8)
22044 this[offset +
1] = (value &
0xff)
22048 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
22050 offset = offset
>>> 0
22051 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22052 this[offset] = (value &
0xff)
22053 this[offset +
1] = (value
>>> 8)
22054 this[offset +
2] = (value
>>> 16)
22055 this[offset +
3] = (value
>>> 24)
22059 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
22061 offset = offset
>>> 0
22062 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22063 if (value <
0) value =
0xffffffff + value +
1
22064 this[offset] = (value
>>> 24)
22065 this[offset +
1] = (value
>>> 16)
22066 this[offset +
2] = (value
>>> 8)
22067 this[offset +
3] = (value &
0xff)
22071 function checkIEEE754 (buf, value, offset, ext, max, min) {
22072 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
22073 if (offset <
0) throw new RangeError('Index out of range')
22076 function writeFloat (buf, value, offset, littleEndian, noAssert) {
22078 offset = offset
>>> 0
22080 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
22082 ieee754.write(buf, value, offset, littleEndian,
23,
4)
22086 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
22087 return writeFloat(this, value, offset, true, noAssert)
22090 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
22091 return writeFloat(this, value, offset, false, noAssert)
22094 function writeDouble (buf, value, offset, littleEndian, noAssert) {
22096 offset = offset
>>> 0
22098 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
22100 ieee754.write(buf, value, offset, littleEndian,
52,
8)
22104 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
22105 return writeDouble(this, value, offset, true, noAssert)
22108 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
22109 return writeDouble(this, value, offset, false, noAssert)
22112 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
22113 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
22114 if (!start) start =
0
22115 if (!end && end !==
0) end = this.length
22116 if (targetStart
>= target.length) targetStart = target.length
22117 if (!targetStart) targetStart =
0
22118 if (end
> 0 && end < start) end = start
22120 // Copy
0 bytes; we're done
22121 if (end === start) return
0
22122 if (target.length ===
0 || this.length ===
0) return
0
22124 // Fatal error conditions
22125 if (targetStart <
0) {
22126 throw new RangeError('targetStart out of bounds')
22128 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
22129 if (end <
0) throw new RangeError('sourceEnd out of bounds')
22132 if (end
> this.length) end = this.length
22133 if (target.length - targetStart < end - start) {
22134 end = target.length - targetStart + start
22137 var len = end - start
22140 if (this === target && start < targetStart && targetStart < end) {
22141 // descending copy from end
22142 for (i = len -
1; i
>=
0; --i) {
22143 target[i + targetStart] = this[i + start]
22145 } else if (len <
1000) {
22146 // ascending copy from start
22147 for (i =
0; i < len; ++i) {
22148 target[i + targetStart] = this[i + start]
22151 Uint8Array.prototype.set.call(
22153 this.subarray(start, start + len),
22162 // buffer.fill(number[, offset[, end]])
22163 // buffer.fill(buffer[, offset[, end]])
22164 // buffer.fill(string[, offset[, end]][, encoding])
22165 Buffer.prototype.fill = function fill (val, start, end, encoding) {
22166 // Handle string cases:
22167 if (typeof val === 'string') {
22168 if (typeof start === 'string') {
22172 } else if (typeof end === 'string') {
22176 if (val.length ===
1) {
22177 var code = val.charCodeAt(
0)
22182 if (encoding !== undefined && typeof encoding !== 'string') {
22183 throw new TypeError('encoding must be a string')
22185 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
22186 throw new TypeError('Unknown encoding: ' + encoding)
22188 } else if (typeof val === 'number') {
22192 // Invalid ranges are not set to a default, so can range check early.
22193 if (start <
0 || this.length < start || this.length < end) {
22194 throw new RangeError('Out of range index')
22197 if (end <= start) {
22201 start = start
>>> 0
22202 end = end === undefined ? this.length : end
>>> 0
22207 if (typeof val === 'number') {
22208 for (i = start; i < end; ++i) {
22212 var bytes = Buffer.isBuffer(val)
22214 : new Buffer(val, encoding)
22215 var len = bytes.length
22216 for (i =
0; i < end - start; ++i) {
22217 this[i + start] = bytes[i % len]
22224 // HELPER FUNCTIONS
22225 // ================
22227 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
22229 function base64clean (str) {
22230 // Node strips out invalid characters like \n and \t from the string, base64-js does not
22231 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
22232 // Node converts strings with length <
2 to ''
22233 if (str.length <
2) return ''
22234 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
22235 while (str.length %
4 !==
0) {
22241 function stringtrim (str) {
22242 if (str.trim) return str.trim()
22243 return str.replace(/^\s+|\s+$/g, '')
22246 function toHex (n) {
22247 if (n <
16) return '
0' + n.toString(
16)
22248 return n.toString(
16)
22251 function utf8ToBytes (string, units) {
22252 units = units || Infinity
22254 var length = string.length
22255 var leadSurrogate = null
22258 for (var i =
0; i < length; ++i) {
22259 codePoint = string.charCodeAt(i)
22261 // is surrogate component
22262 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
22263 // last char was a lead
22264 if (!leadSurrogate) {
22266 if (codePoint
> 0xDBFF) {
22267 // unexpected trail
22268 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22270 } else if (i +
1 === length) {
22272 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22277 leadSurrogate = codePoint
22282 //
2 leads in a row
22283 if (codePoint <
0xDC00) {
22284 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22285 leadSurrogate = codePoint
22289 // valid surrogate pair
22290 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
22291 } else if (leadSurrogate) {
22292 // valid bmp char, but last char was a lead
22293 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22296 leadSurrogate = null
22299 if (codePoint <
0x80) {
22300 if ((units -=
1) <
0) break
22301 bytes.push(codePoint)
22302 } else if (codePoint <
0x800) {
22303 if ((units -=
2) <
0) break
22305 codePoint
>> 0x6 |
0xC0,
22306 codePoint &
0x3F |
0x80
22308 } else if (codePoint <
0x10000) {
22309 if ((units -=
3) <
0) break
22311 codePoint
>> 0xC |
0xE0,
22312 codePoint
>> 0x6 &
0x3F |
0x80,
22313 codePoint &
0x3F |
0x80
22315 } else if (codePoint <
0x110000) {
22316 if ((units -=
4) <
0) break
22318 codePoint
>> 0x12 |
0xF0,
22319 codePoint
>> 0xC &
0x3F |
0x80,
22320 codePoint
>> 0x6 &
0x3F |
0x80,
22321 codePoint &
0x3F |
0x80
22324 throw new Error('Invalid code point')
22331 function asciiToBytes (str) {
22333 for (var i =
0; i < str.length; ++i) {
22334 // Node's code seems to be doing this and not &
0x7F..
22335 byteArray.push(str.charCodeAt(i) &
0xFF)
22340 function utf16leToBytes (str, units) {
22343 for (var i =
0; i < str.length; ++i) {
22344 if ((units -=
2) <
0) break
22346 c = str.charCodeAt(i)
22356 function base64ToBytes (str) {
22357 return base64.toByteArray(base64clean(str))
22360 function blitBuffer (src, dst, offset, length) {
22361 for (var i =
0; i < length; ++i) {
22362 if ((i + offset
>= dst.length) || (i
>= src.length)) break
22363 dst[i + offset] = src[i]
22368 function isnan (val) {
22369 return val !== val // eslint-disable-line no-self-compare
22372 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
22373 (function (Buffer){
22374 // Copyright Joyent, Inc. and other Node contributors.
22376 // Permission is hereby granted, free of charge, to any person obtaining a
22377 // copy of this software and associated documentation files (the
22378 // "Software"), to deal in the Software without restriction, including
22379 // without limitation the rights to use, copy, modify, merge, publish,
22380 // distribute, sublicense, and/or sell copies of the Software, and to permit
22381 // persons to whom the Software is furnished to do so, subject to the
22382 // following conditions:
22384 // The above copyright notice and this permission notice shall be included
22385 // in all copies or substantial portions of the Software.
22387 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22388 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22389 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22390 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22391 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22392 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22393 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22395 // NOTE: These type checking functions intentionally don't use `instanceof`
22396 // because it is fragile and can be easily faked with `Object.create()`.
22398 function isArray(arg) {
22399 if (Array.isArray) {
22400 return Array.isArray(arg);
22402 return objectToString(arg) === '[object Array]';
22404 exports.isArray = isArray;
22406 function isBoolean(arg) {
22407 return typeof arg === 'boolean';
22409 exports.isBoolean = isBoolean;
22411 function isNull(arg) {
22412 return arg === null;
22414 exports.isNull = isNull;
22416 function isNullOrUndefined(arg) {
22417 return arg == null;
22419 exports.isNullOrUndefined = isNullOrUndefined;
22421 function isNumber(arg) {
22422 return typeof arg === 'number';
22424 exports.isNumber = isNumber;
22426 function isString(arg) {
22427 return typeof arg === 'string';
22429 exports.isString = isString;
22431 function isSymbol(arg) {
22432 return typeof arg === 'symbol';
22434 exports.isSymbol = isSymbol;
22436 function isUndefined(arg) {
22437 return arg === void
0;
22439 exports.isUndefined = isUndefined;
22441 function isRegExp(re) {
22442 return objectToString(re) === '[object RegExp]';
22444 exports.isRegExp = isRegExp;
22446 function isObject(arg) {
22447 return typeof arg === 'object' && arg !== null;
22449 exports.isObject = isObject;
22451 function isDate(d) {
22452 return objectToString(d) === '[object Date]';
22454 exports.isDate = isDate;
22456 function isError(e) {
22457 return (objectToString(e) === '[object Error]' || e instanceof Error);
22459 exports.isError = isError;
22461 function isFunction(arg) {
22462 return typeof arg === 'function';
22464 exports.isFunction = isFunction;
22466 function isPrimitive(arg) {
22467 return arg === null ||
22468 typeof arg === 'boolean' ||
22469 typeof arg === 'number' ||
22470 typeof arg === 'string' ||
22471 typeof arg === 'symbol' || // ES6 symbol
22472 typeof arg === 'undefined';
22474 exports.isPrimitive = isPrimitive;
22476 exports.isBuffer = Buffer.isBuffer;
22478 function objectToString(o) {
22479 return Object.prototype.toString.call(o);
22482 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
22483 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
22484 // Copyright Joyent, Inc. and other Node contributors.
22486 // Permission is hereby granted, free of charge, to any person obtaining a
22487 // copy of this software and associated documentation files (the
22488 // "Software"), to deal in the Software without restriction, including
22489 // without limitation the rights to use, copy, modify, merge, publish,
22490 // distribute, sublicense, and/or sell copies of the Software, and to permit
22491 // persons to whom the Software is furnished to do so, subject to the
22492 // following conditions:
22494 // The above copyright notice and this permission notice shall be included
22495 // in all copies or substantial portions of the Software.
22497 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22498 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22499 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22500 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22501 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22502 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22503 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22505 function EventEmitter() {
22506 this._events = this._events || {};
22507 this._maxListeners = this._maxListeners || undefined;
22509 module.exports = EventEmitter;
22511 // Backwards-compat with node
0.10.x
22512 EventEmitter.EventEmitter = EventEmitter;
22514 EventEmitter.prototype._events = undefined;
22515 EventEmitter.prototype._maxListeners = undefined;
22517 // By default EventEmitters will print a warning if more than
10 listeners are
22518 // added to it. This is a useful default which helps finding memory leaks.
22519 EventEmitter.defaultMaxListeners =
10;
22521 // Obviously not all Emitters should be limited to
10. This function allows
22522 // that to be increased. Set to zero for unlimited.
22523 EventEmitter.prototype.setMaxListeners = function(n) {
22524 if (!isNumber(n) || n <
0 || isNaN(n))
22525 throw TypeError('n must be a positive number');
22526 this._maxListeners = n;
22530 EventEmitter.prototype.emit = function(type) {
22531 var er, handler, len, args, i, listeners;
22536 // If there is no 'error' event listener then throw.
22537 if (type === 'error') {
22538 if (!this._events.error ||
22539 (isObject(this._events.error) && !this._events.error.length)) {
22541 if (er instanceof Error) {
22542 throw er; // Unhandled 'error' event
22544 // At least give some kind of context to the user
22545 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
22552 handler = this._events[type];
22554 if (isUndefined(handler))
22557 if (isFunction(handler)) {
22558 switch (arguments.length) {
22561 handler.call(this);
22564 handler.call(this, arguments[
1]);
22567 handler.call(this, arguments[
1], arguments[
2]);
22571 args = Array.prototype.slice.call(arguments,
1);
22572 handler.apply(this, args);
22574 } else if (isObject(handler)) {
22575 args = Array.prototype.slice.call(arguments,
1);
22576 listeners = handler.slice();
22577 len = listeners.length;
22578 for (i =
0; i < len; i++)
22579 listeners[i].apply(this, args);
22585 EventEmitter.prototype.addListener = function(type, listener) {
22588 if (!isFunction(listener))
22589 throw TypeError('listener must be a function');
22594 // To avoid recursion in the case that type === "newListener"! Before
22595 // adding it to the listeners, first emit "newListener".
22596 if (this._events.newListener)
22597 this.emit('newListener', type,
22598 isFunction(listener.listener) ?
22599 listener.listener : listener);
22601 if (!this._events[type])
22602 // Optimize the case of one listener. Don't need the extra array object.
22603 this._events[type] = listener;
22604 else if (isObject(this._events[type]))
22605 // If we've already got an array, just append.
22606 this._events[type].push(listener);
22608 // Adding the second element, need to change to array.
22609 this._events[type] = [this._events[type], listener];
22611 // Check for listener leak
22612 if (isObject(this._events[type]) && !this._events[type].warned) {
22613 if (!isUndefined(this._maxListeners)) {
22614 m = this._maxListeners;
22616 m = EventEmitter.defaultMaxListeners;
22619 if (m && m
> 0 && this._events[type].length
> m) {
22620 this._events[type].warned = true;
22621 console.error('(node) warning: possible EventEmitter memory ' +
22622 'leak detected. %d listeners added. ' +
22623 'Use emitter.setMaxListeners() to increase limit.',
22624 this._events[type].length);
22625 if (typeof console.trace === 'function') {
22626 // not supported in IE
10
22635 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
22637 EventEmitter.prototype.once = function(type, listener) {
22638 if (!isFunction(listener))
22639 throw TypeError('listener must be a function');
22644 this.removeListener(type, g);
22648 listener.apply(this, arguments);
22652 g.listener = listener;
22658 // emits a 'removeListener' event iff the listener was removed
22659 EventEmitter.prototype.removeListener = function(type, listener) {
22660 var list, position, length, i;
22662 if (!isFunction(listener))
22663 throw TypeError('listener must be a function');
22665 if (!this._events || !this._events[type])
22668 list = this._events[type];
22669 length = list.length;
22672 if (list === listener ||
22673 (isFunction(list.listener) && list.listener === listener)) {
22674 delete this._events[type];
22675 if (this._events.removeListener)
22676 this.emit('removeListener', type, listener);
22678 } else if (isObject(list)) {
22679 for (i = length; i--
> 0;) {
22680 if (list[i] === listener ||
22681 (list[i].listener && list[i].listener === listener)) {
22690 if (list.length ===
1) {
22692 delete this._events[type];
22694 list.splice(position,
1);
22697 if (this._events.removeListener)
22698 this.emit('removeListener', type, listener);
22704 EventEmitter.prototype.removeAllListeners = function(type) {
22705 var key, listeners;
22710 // not listening for removeListener, no need to emit
22711 if (!this._events.removeListener) {
22712 if (arguments.length ===
0)
22714 else if (this._events[type])
22715 delete this._events[type];
22719 // emit removeListener for all listeners on all events
22720 if (arguments.length ===
0) {
22721 for (key in this._events) {
22722 if (key === 'removeListener') continue;
22723 this.removeAllListeners(key);
22725 this.removeAllListeners('removeListener');
22730 listeners = this._events[type];
22732 if (isFunction(listeners)) {
22733 this.removeListener(type, listeners);
22734 } else if (listeners) {
22736 while (listeners.length)
22737 this.removeListener(type, listeners[listeners.length -
1]);
22739 delete this._events[type];
22744 EventEmitter.prototype.listeners = function(type) {
22746 if (!this._events || !this._events[type])
22748 else if (isFunction(this._events[type]))
22749 ret = [this._events[type]];
22751 ret = this._events[type].slice();
22755 EventEmitter.prototype.listenerCount = function(type) {
22756 if (this._events) {
22757 var evlistener = this._events[type];
22759 if (isFunction(evlistener))
22761 else if (evlistener)
22762 return evlistener.length;
22767 EventEmitter.listenerCount = function(emitter, type) {
22768 return emitter.listenerCount(type);
22771 function isFunction(arg) {
22772 return typeof arg === 'function';
22775 function isNumber(arg) {
22776 return typeof arg === 'number';
22779 function isObject(arg) {
22780 return typeof arg === 'object' && arg !== null;
22783 function isUndefined(arg) {
22784 return arg === void
0;
22787 },{}],
8:[function(require,module,exports){
22788 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
22790 var eLen = nBytes *
8 - mLen -
1
22791 var eMax = (
1 << eLen) -
1
22792 var eBias = eMax
>> 1
22794 var i = isLE ? (nBytes -
1) :
0
22795 var d = isLE ? -
1 :
1
22796 var s = buffer[offset + i]
22800 e = s & ((
1 << (-nBits)) -
1)
22803 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22805 m = e & ((
1 << (-nBits)) -
1)
22808 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22812 } else if (e === eMax) {
22813 return m ? NaN : ((s ? -
1 :
1) * Infinity)
22815 m = m + Math.pow(
2, mLen)
22818 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
22821 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22823 var eLen = nBytes *
8 - mLen -
1
22824 var eMax = (
1 << eLen) -
1
22825 var eBias = eMax
>> 1
22826 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
22827 var i = isLE ?
0 : (nBytes -
1)
22828 var d = isLE ?
1 : -
1
22829 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
22831 value = Math.abs(value)
22833 if (isNaN(value) || value === Infinity) {
22834 m = isNaN(value) ?
1 :
0
22837 e = Math.floor(Math.log(value) / Math.LN2)
22838 if (value * (c = Math.pow(
2, -e)) <
1) {
22842 if (e + eBias
>=
1) {
22845 value += rt * Math.pow(
2,
1 - eBias)
22847 if (value * c
>=
2) {
22852 if (e + eBias
>= eMax) {
22855 } else if (e + eBias
>=
1) {
22856 m = (value * c -
1) * Math.pow(
2, mLen)
22859 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
22864 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
22866 e = (e << mLen) | m
22868 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
22870 buffer[offset + i - d] |= s *
128
22873 },{}],
9:[function(require,module,exports){
22874 if (typeof Object.create === 'function') {
22875 // implementation from standard node.js 'util' module
22876 module.exports = function inherits(ctor, superCtor) {
22877 ctor.super_ = superCtor
22878 ctor.prototype = Object.create(superCtor.prototype, {
22888 // old school shim for old browsers
22889 module.exports = function inherits(ctor, superCtor) {
22890 ctor.super_ = superCtor
22891 var TempCtor = function () {}
22892 TempCtor.prototype = superCtor.prototype
22893 ctor.prototype = new TempCtor()
22894 ctor.prototype.constructor = ctor
22898 },{}],
10:[function(require,module,exports){
22900 * Determine if an object is a Buffer
22902 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22906 // The _isBuffer check is for Safari
5-
7 support, because it's missing
22907 // Object.prototype.constructor. Remove this eventually
22908 module.exports = function (obj) {
22909 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
22912 function isBuffer (obj) {
22913 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
22916 // For Node v0.10 support. Remove this eventually.
22917 function isSlowBuffer (obj) {
22918 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
22921 },{}],
11:[function(require,module,exports){
22922 var toString = {}.toString;
22924 module.exports = Array.isArray || function (arr) {
22925 return toString.call(arr) == '[object Array]';
22928 },{}],
12:[function(require,module,exports){
22929 (function (process){
22932 if (!process.version ||
22933 process.version.indexOf('v0.') ===
0 ||
22934 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
22935 module.exports = nextTick;
22937 module.exports = process.nextTick;
22940 function nextTick(fn, arg1, arg2, arg3) {
22941 if (typeof fn !== 'function') {
22942 throw new TypeError('"callback" argument must be a function');
22944 var len = arguments.length;
22949 return process.nextTick(fn);
22951 return process.nextTick(function afterTickOne() {
22952 fn.call(null, arg1);
22955 return process.nextTick(function afterTickTwo() {
22956 fn.call(null, arg1, arg2);
22959 return process.nextTick(function afterTickThree() {
22960 fn.call(null, arg1, arg2, arg3);
22963 args = new Array(len -
1);
22965 while (i < args.length) {
22966 args[i++] = arguments[i];
22968 return process.nextTick(function afterTick() {
22969 fn.apply(null, args);
22974 }).call(this,require('_process'))
22975 },{"_process":
13}],
13:[function(require,module,exports){
22976 // shim for using process in browser
22977 var process = module.exports = {};
22979 // cached from whatever global is present so that test runners that stub it
22980 // don't break things. But we need to wrap it in a try catch in case it is
22981 // wrapped in strict mode code which doesn't define any globals. It's inside a
22982 // function because try/catches deoptimize in certain engines.
22984 var cachedSetTimeout;
22985 var cachedClearTimeout;
22987 function defaultSetTimout() {
22988 throw new Error('setTimeout has not been defined');
22990 function defaultClearTimeout () {
22991 throw new Error('clearTimeout has not been defined');
22995 if (typeof setTimeout === 'function') {
22996 cachedSetTimeout = setTimeout;
22998 cachedSetTimeout = defaultSetTimout;
23001 cachedSetTimeout = defaultSetTimout;
23004 if (typeof clearTimeout === 'function') {
23005 cachedClearTimeout = clearTimeout;
23007 cachedClearTimeout = defaultClearTimeout;
23010 cachedClearTimeout = defaultClearTimeout;
23013 function runTimeout(fun) {
23014 if (cachedSetTimeout === setTimeout) {
23015 //normal enviroments in sane situations
23016 return setTimeout(fun,
0);
23018 // if setTimeout wasn't available but was latter defined
23019 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
23020 cachedSetTimeout = setTimeout;
23021 return setTimeout(fun,
0);
23024 // when when somebody has screwed with setTimeout but no I.E. maddness
23025 return cachedSetTimeout(fun,
0);
23028 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23029 return cachedSetTimeout.call(null, fun,
0);
23031 // 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
23032 return cachedSetTimeout.call(this, fun,
0);
23038 function runClearTimeout(marker) {
23039 if (cachedClearTimeout === clearTimeout) {
23040 //normal enviroments in sane situations
23041 return clearTimeout(marker);
23043 // if clearTimeout wasn't available but was latter defined
23044 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
23045 cachedClearTimeout = clearTimeout;
23046 return clearTimeout(marker);
23049 // when when somebody has screwed with setTimeout but no I.E. maddness
23050 return cachedClearTimeout(marker);
23053 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23054 return cachedClearTimeout.call(null, marker);
23056 // 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.
23057 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
23058 return cachedClearTimeout.call(this, marker);
23066 var draining = false;
23068 var queueIndex = -
1;
23070 function cleanUpNextTick() {
23071 if (!draining || !currentQueue) {
23075 if (currentQueue.length) {
23076 queue = currentQueue.concat(queue);
23080 if (queue.length) {
23085 function drainQueue() {
23089 var timeout = runTimeout(cleanUpNextTick);
23092 var len = queue.length;
23094 currentQueue = queue;
23096 while (++queueIndex < len) {
23097 if (currentQueue) {
23098 currentQueue[queueIndex].run();
23102 len = queue.length;
23104 currentQueue = null;
23106 runClearTimeout(timeout);
23109 process.nextTick = function (fun) {
23110 var args = new Array(arguments.length -
1);
23111 if (arguments.length
> 1) {
23112 for (var i =
1; i < arguments.length; i++) {
23113 args[i -
1] = arguments[i];
23116 queue.push(new Item(fun, args));
23117 if (queue.length ===
1 && !draining) {
23118 runTimeout(drainQueue);
23122 // v8 likes predictible objects
23123 function Item(fun, array) {
23125 this.array = array;
23127 Item.prototype.run = function () {
23128 this.fun.apply(null, this.array);
23130 process.title = 'browser';
23131 process.browser = true;
23134 process.version = ''; // empty string to avoid regexp issues
23135 process.versions = {};
23140 process.addListener = noop;
23141 process.once = noop;
23142 process.off = noop;
23143 process.removeListener = noop;
23144 process.removeAllListeners = noop;
23145 process.emit = noop;
23147 process.binding = function (name) {
23148 throw new Error('process.binding is not supported');
23151 process.cwd = function () { return '/' };
23152 process.chdir = function (dir) {
23153 throw new Error('process.chdir is not supported');
23155 process.umask = function() { return
0; };
23157 },{}],
14:[function(require,module,exports){
23158 module.exports = require(
"./lib/_stream_duplex.js")
23160 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
23161 // a duplex stream is just a stream that is both readable and writable.
23162 // Since JS doesn't have multiple prototypal inheritance, this class
23163 // prototypally inherits from Readable, and then parasitically from
23170 var objectKeys = Object.keys || function (obj) {
23172 for (var key in obj) {
23178 module.exports = Duplex;
23181 var processNextTick = require('process-nextick-args');
23185 var util = require('core-util-is');
23186 util.inherits = require('inherits');
23189 var Readable = require('./_stream_readable');
23190 var Writable = require('./_stream_writable');
23192 util.inherits(Duplex, Readable);
23194 var keys = objectKeys(Writable.prototype);
23195 for (var v =
0; v < keys.length; v++) {
23196 var method = keys[v];
23197 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
23200 function Duplex(options) {
23201 if (!(this instanceof Duplex)) return new Duplex(options);
23203 Readable.call(this, options);
23204 Writable.call(this, options);
23206 if (options && options.readable === false) this.readable = false;
23208 if (options && options.writable === false) this.writable = false;
23210 this.allowHalfOpen = true;
23211 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
23213 this.once('end', onend);
23216 // the no-half-open enforcer
23218 // if we allow half-open state, or if the writable side ended,
23220 if (this.allowHalfOpen || this._writableState.ended) return;
23222 // no more data can be written.
23223 // But allow more writes to happen in this tick.
23224 processNextTick(onEndNT, this);
23227 function onEndNT(self) {
23231 function forEach(xs, f) {
23232 for (var i =
0, l = xs.length; i < l; i++) {
23236 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
23237 // a passthrough stream.
23238 // basically just the most minimal sort of Transform stream.
23239 // Every written chunk gets output as-is.
23243 module.exports = PassThrough;
23245 var Transform = require('./_stream_transform');
23248 var util = require('core-util-is');
23249 util.inherits = require('inherits');
23252 util.inherits(PassThrough, Transform);
23254 function PassThrough(options) {
23255 if (!(this instanceof PassThrough)) return new PassThrough(options);
23257 Transform.call(this, options);
23260 PassThrough.prototype._transform = function (chunk, encoding, cb) {
23263 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
23264 (function (process){
23267 module.exports = Readable;
23270 var processNextTick = require('process-nextick-args');
23274 var isArray = require('isarray');
23281 Readable.ReadableState = ReadableState;
23284 var EE = require('events').EventEmitter;
23286 var EElistenerCount = function (emitter, type) {
23287 return emitter.listeners(type).length;
23295 Stream = require('st' + 'ream');
23296 } catch (_) {} finally {
23297 if (!Stream) Stream = require('events').EventEmitter;
23302 var Buffer = require('buffer').Buffer;
23304 var bufferShim = require('buffer-shims');
23308 var util = require('core-util-is');
23309 util.inherits = require('inherits');
23313 var debugUtil = require('util');
23314 var debug = void
0;
23315 if (debugUtil && debugUtil.debuglog) {
23316 debug = debugUtil.debuglog('stream');
23318 debug = function () {};
23322 var BufferList = require('./internal/streams/BufferList');
23325 util.inherits(Readable, Stream);
23327 function prependListener(emitter, event, fn) {
23328 // Sadly this is not cacheable as some libraries bundle their own
23329 // event emitter implementation with them.
23330 if (typeof emitter.prependListener === 'function') {
23331 return emitter.prependListener(event, fn);
23333 // This is a hack to make sure that our error handler is attached before any
23334 // userland ones. NEVER DO THIS. This is here only because this code needs
23335 // to continue to work with older versions of Node.js that do not include
23336 // the prependListener() method. The goal is to eventually remove this hack.
23337 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]];
23341 function ReadableState(options, stream) {
23342 Duplex = Duplex || require('./_stream_duplex');
23344 options = options || {};
23346 // object stream flag. Used to make read(n) ignore n and to
23347 // make all the buffer merging and length checks go away
23348 this.objectMode = !!options.objectMode;
23350 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
23352 // the point at which it stops calling _read() to fill the buffer
23353 // Note:
0 is a valid value, means "don't call _read preemptively ever"
23354 var hwm = options.highWaterMark;
23355 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
23356 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
23359 this.highWaterMark = ~ ~this.highWaterMark;
23361 // A linked list is used to store data chunks instead of an array because the
23362 // linked list can remove elements from the beginning faster than
23364 this.buffer = new BufferList();
23367 this.pipesCount =
0;
23368 this.flowing = null;
23369 this.ended = false;
23370 this.endEmitted = false;
23371 this.reading = false;
23373 // a flag to be able to tell if the onwrite cb is called immediately,
23374 // or on a later tick. We set this to true at first, because any
23375 // actions that shouldn't happen until "later" should generally also
23376 // not happen before the first write call.
23379 // whenever we return null, then we set a flag to say
23380 // that we're awaiting a 'readable' event emission.
23381 this.needReadable = false;
23382 this.emittedReadable = false;
23383 this.readableListening = false;
23384 this.resumeScheduled = false;
23386 // Crypto is kind of old and crusty. Historically, its default string
23387 // encoding is 'binary' so we have to make this configurable.
23388 // Everything else in the universe uses 'utf8', though.
23389 this.defaultEncoding = options.defaultEncoding || 'utf8';
23391 // when piping, we only care about 'readable' events that happen
23392 // after read()ing all the bytes and not getting any pushback.
23393 this.ranOut = false;
23395 // the number of writers that are awaiting a drain event in .pipe()s
23396 this.awaitDrain =
0;
23398 // if true, a maybeReadMore has been scheduled
23399 this.readingMore = false;
23401 this.decoder = null;
23402 this.encoding = null;
23403 if (options.encoding) {
23404 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23405 this.decoder = new StringDecoder(options.encoding);
23406 this.encoding = options.encoding;
23410 function Readable(options) {
23411 Duplex = Duplex || require('./_stream_duplex');
23413 if (!(this instanceof Readable)) return new Readable(options);
23415 this._readableState = new ReadableState(options, this);
23418 this.readable = true;
23420 if (options && typeof options.read === 'function') this._read = options.read;
23425 // Manually shove something into the read() buffer.
23426 // This returns true if the highWaterMark has not been hit yet,
23427 // similar to how Writable.write() returns true if you should
23428 // write() some more.
23429 Readable.prototype.push = function (chunk, encoding) {
23430 var state = this._readableState;
23432 if (!state.objectMode && typeof chunk === 'string') {
23433 encoding = encoding || state.defaultEncoding;
23434 if (encoding !== state.encoding) {
23435 chunk = bufferShim.from(chunk, encoding);
23440 return readableAddChunk(this, state, chunk, encoding, false);
23443 // Unshift should *always* be something directly out of read()
23444 Readable.prototype.unshift = function (chunk) {
23445 var state = this._readableState;
23446 return readableAddChunk(this, state, chunk, '', true);
23449 Readable.prototype.isPaused = function () {
23450 return this._readableState.flowing === false;
23453 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
23454 var er = chunkInvalid(state, chunk);
23456 stream.emit('error', er);
23457 } else if (chunk === null) {
23458 state.reading = false;
23459 onEofChunk(stream, state);
23460 } else if (state.objectMode || chunk && chunk.length
> 0) {
23461 if (state.ended && !addToFront) {
23462 var e = new Error('stream.push() after EOF');
23463 stream.emit('error', e);
23464 } else if (state.endEmitted && addToFront) {
23465 var _e = new Error('stream.unshift() after end event');
23466 stream.emit('error', _e);
23469 if (state.decoder && !addToFront && !encoding) {
23470 chunk = state.decoder.write(chunk);
23471 skipAdd = !state.objectMode && chunk.length ===
0;
23474 if (!addToFront) state.reading = false;
23476 // Don't add to the buffer if we've decoded to an empty string chunk and
23477 // we're not in object mode
23479 // if we want the data now, just emit it.
23480 if (state.flowing && state.length ===
0 && !state.sync) {
23481 stream.emit('data', chunk);
23484 // update the buffer info.
23485 state.length += state.objectMode ?
1 : chunk.length;
23486 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
23488 if (state.needReadable) emitReadable(stream);
23492 maybeReadMore(stream, state);
23494 } else if (!addToFront) {
23495 state.reading = false;
23498 return needMoreData(state);
23501 // if it's past the high water mark, we can push in some more.
23502 // Also, if we have no data yet, we can stand some
23503 // more bytes. This is to work around cases where hwm=
0,
23504 // such as the repl. Also, if the push() triggered a
23505 // readable event, and the user called read(largeNumber) such that
23506 // needReadable was set, then we ought to push more, so that another
23507 // 'readable' event will be triggered.
23508 function needMoreData(state) {
23509 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
23512 // backwards compatibility.
23513 Readable.prototype.setEncoding = function (enc) {
23514 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23515 this._readableState.decoder = new StringDecoder(enc);
23516 this._readableState.encoding = enc;
23520 // Don't raise the hwm
> 8MB
23521 var MAX_HWM =
0x800000;
23522 function computeNewHighWaterMark(n) {
23523 if (n
>= MAX_HWM) {
23526 // Get the next highest power of
2 to prevent increasing hwm excessively in
23539 // This function is designed to be inlinable, so please take care when making
23540 // changes to the function body.
23541 function howMuchToRead(n, state) {
23542 if (n <=
0 || state.length ===
0 && state.ended) return
0;
23543 if (state.objectMode) return
1;
23545 // Only flow one buffer at a time
23546 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
23548 // If we're asking for more than the current hwm, then raise the hwm.
23549 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
23550 if (n <= state.length) return n;
23551 // Don't have enough
23552 if (!state.ended) {
23553 state.needReadable = true;
23556 return state.length;
23559 // you can override either this method, or the async _read(n) below.
23560 Readable.prototype.read = function (n) {
23562 n = parseInt(n,
10);
23563 var state = this._readableState;
23566 if (n !==
0) state.emittedReadable = false;
23568 // if we're doing read(
0) to trigger a readable event, but we
23569 // already have a bunch of data in the buffer, then just trigger
23570 // the 'readable' event and move on.
23571 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
23572 debug('read: emitReadable', state.length, state.ended);
23573 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
23577 n = howMuchToRead(n, state);
23579 // if we've ended, and we're now clear, then finish it up.
23580 if (n ===
0 && state.ended) {
23581 if (state.length ===
0) endReadable(this);
23585 // All the actual chunk generation logic needs to be
23586 // *below* the call to _read. The reason is that in certain
23587 // synthetic stream cases, such as passthrough streams, _read
23588 // may be a completely synchronous operation which may change
23589 // the state of the read buffer, providing enough data when
23590 // before there was *not* enough.
23592 // So, the steps are:
23593 //
1. Figure out what the state of things will be after we do
23594 // a read from the buffer.
23596 //
2. If that resulting state will trigger a _read, then call _read.
23597 // Note that this may be asynchronous, or synchronous. Yes, it is
23598 // deeply ugly to write APIs this way, but that still doesn't mean
23599 // that the Readable class should behave improperly, as streams are
23600 // designed to be sync/async agnostic.
23601 // Take note if the _read call is sync or async (ie, if the read call
23602 // has returned yet), so that we know whether or not it's safe to emit
23605 //
3. Actually pull the requested chunks out of the buffer and return.
23607 // if we need a readable event, then we need to do some reading.
23608 var doRead = state.needReadable;
23609 debug('need readable', doRead);
23611 // if we currently have less than the highWaterMark, then also read some
23612 if (state.length ===
0 || state.length - n < state.highWaterMark) {
23614 debug('length less than watermark', doRead);
23617 // however, if we've ended, then there's no point, and if we're already
23618 // reading, then it's unnecessary.
23619 if (state.ended || state.reading) {
23621 debug('reading or ended', doRead);
23622 } else if (doRead) {
23624 state.reading = true;
23626 // if the length is currently zero, then we *need* a readable event.
23627 if (state.length ===
0) state.needReadable = true;
23628 // call internal read method
23629 this._read(state.highWaterMark);
23630 state.sync = false;
23631 // If _read pushed data synchronously, then `reading` will be false,
23632 // and we need to re-evaluate how much data we can return to the user.
23633 if (!state.reading) n = howMuchToRead(nOrig, state);
23637 if (n
> 0) ret = fromList(n, state);else ret = null;
23639 if (ret === null) {
23640 state.needReadable = true;
23646 if (state.length ===
0) {
23647 // If we have nothing in the buffer, then we want to know
23648 // as soon as we *do* get something into the buffer.
23649 if (!state.ended) state.needReadable = true;
23651 // If we tried to read() past the EOF, then emit end on the next tick.
23652 if (nOrig !== n && state.ended) endReadable(this);
23655 if (ret !== null) this.emit('data', ret);
23660 function chunkInvalid(state, chunk) {
23662 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
23663 er = new TypeError('Invalid non-string/buffer chunk');
23668 function onEofChunk(stream, state) {
23669 if (state.ended) return;
23670 if (state.decoder) {
23671 var chunk = state.decoder.end();
23672 if (chunk && chunk.length) {
23673 state.buffer.push(chunk);
23674 state.length += state.objectMode ?
1 : chunk.length;
23677 state.ended = true;
23679 // emit 'readable' now to make sure it gets picked up.
23680 emitReadable(stream);
23683 // Don't emit readable right away in sync mode, because this can trigger
23684 // another read() call =
> stack overflow. This way, it might trigger
23685 // a nextTick recursion warning, but that's not so bad.
23686 function emitReadable(stream) {
23687 var state = stream._readableState;
23688 state.needReadable = false;
23689 if (!state.emittedReadable) {
23690 debug('emitReadable', state.flowing);
23691 state.emittedReadable = true;
23692 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
23696 function emitReadable_(stream) {
23697 debug('emit readable');
23698 stream.emit('readable');
23702 // at this point, the user has presumably seen the 'readable' event,
23703 // and called read() to consume some data. that may have triggered
23704 // in turn another _read(n) call, in which case reading = true if
23705 // it's in progress.
23706 // However, if we're not ended, or reading, and the length < hwm,
23707 // then go ahead and try to read some more preemptively.
23708 function maybeReadMore(stream, state) {
23709 if (!state.readingMore) {
23710 state.readingMore = true;
23711 processNextTick(maybeReadMore_, stream, state);
23715 function maybeReadMore_(stream, state) {
23716 var len = state.length;
23717 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
23718 debug('maybeReadMore read
0');
23720 if (len === state.length)
23721 // didn't get any data, stop spinning.
23722 break;else len = state.length;
23724 state.readingMore = false;
23727 // abstract method. to be overridden in specific implementation classes.
23728 // call cb(er, data) where data is <= n in length.
23729 // for virtual (non-string, non-buffer) streams, "length" is somewhat
23730 // arbitrary, and perhaps not very meaningful.
23731 Readable.prototype._read = function (n) {
23732 this.emit('error', new Error('_read() is not implemented'));
23735 Readable.prototype.pipe = function (dest, pipeOpts) {
23737 var state = this._readableState;
23739 switch (state.pipesCount) {
23741 state.pipes = dest;
23744 state.pipes = [state.pipes, dest];
23747 state.pipes.push(dest);
23750 state.pipesCount +=
1;
23751 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
23753 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
23755 var endFn = doEnd ? onend : cleanup;
23756 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
23758 dest.on('unpipe', onunpipe);
23759 function onunpipe(readable) {
23761 if (readable === src) {
23771 // when the dest drains, it reduces the awaitDrain counter
23772 // on the source. This would be more elegant with a .once()
23773 // handler in flow(), but adding and removing repeatedly is
23775 var ondrain = pipeOnDrain(src);
23776 dest.on('drain', ondrain);
23778 var cleanedUp = false;
23779 function cleanup() {
23781 // cleanup event handlers once the pipe is broken
23782 dest.removeListener('close', onclose);
23783 dest.removeListener('finish', onfinish);
23784 dest.removeListener('drain', ondrain);
23785 dest.removeListener('error', onerror);
23786 dest.removeListener('unpipe', onunpipe);
23787 src.removeListener('end', onend);
23788 src.removeListener('end', cleanup);
23789 src.removeListener('data', ondata);
23793 // if the reader is waiting for a drain event from this
23794 // specific writer, then it would cause it to never start
23796 // So, if this is awaiting a drain, then we just call it now.
23797 // If we don't know, then assume that we are waiting for one.
23798 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
23801 // If the user pushes more data while we're writing to dest then we'll end up
23802 // in ondata again. However, we only want to increase awaitDrain once because
23803 // dest will only emit one 'drain' event for the multiple writes.
23804 // =
> Introduce a guard on increasing awaitDrain.
23805 var increasedAwaitDrain = false;
23806 src.on('data', ondata);
23807 function ondata(chunk) {
23809 increasedAwaitDrain = false;
23810 var ret = dest.write(chunk);
23811 if (false === ret && !increasedAwaitDrain) {
23812 // If the user unpiped during `dest.write()`, it is possible
23813 // to get stuck in a permanently paused state if that write
23814 // also returned false.
23815 // =
> Check whether `dest` is still a piping destination.
23816 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
23817 debug('false write response, pause', src._readableState.awaitDrain);
23818 src._readableState.awaitDrain++;
23819 increasedAwaitDrain = true;
23825 // if the dest has an error, then stop piping into it.
23826 // however, don't suppress the throwing behavior for this.
23827 function onerror(er) {
23828 debug('onerror', er);
23830 dest.removeListener('error', onerror);
23831 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
23834 // Make sure our error handler is attached before userland ones.
23835 prependListener(dest, 'error', onerror);
23837 // Both close and finish should trigger unpipe, but only once.
23838 function onclose() {
23839 dest.removeListener('finish', onfinish);
23842 dest.once('close', onclose);
23843 function onfinish() {
23845 dest.removeListener('close', onclose);
23848 dest.once('finish', onfinish);
23850 function unpipe() {
23855 // tell the dest that it's being piped to
23856 dest.emit('pipe', src);
23858 // start the flow if it hasn't been started already.
23859 if (!state.flowing) {
23860 debug('pipe resume');
23867 function pipeOnDrain(src) {
23868 return function () {
23869 var state = src._readableState;
23870 debug('pipeOnDrain', state.awaitDrain);
23871 if (state.awaitDrain) state.awaitDrain--;
23872 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
23873 state.flowing = true;
23879 Readable.prototype.unpipe = function (dest) {
23880 var state = this._readableState;
23882 // if we're not piping anywhere, then do nothing.
23883 if (state.pipesCount ===
0) return this;
23885 // just one destination. most common case.
23886 if (state.pipesCount ===
1) {
23887 // passed in one, but it's not the right one.
23888 if (dest && dest !== state.pipes) return this;
23890 if (!dest) dest = state.pipes;
23893 state.pipes = null;
23894 state.pipesCount =
0;
23895 state.flowing = false;
23896 if (dest) dest.emit('unpipe', this);
23900 // slow case. multiple pipe destinations.
23904 var dests = state.pipes;
23905 var len = state.pipesCount;
23906 state.pipes = null;
23907 state.pipesCount =
0;
23908 state.flowing = false;
23910 for (var i =
0; i < len; i++) {
23911 dests[i].emit('unpipe', this);
23915 // try to find the right one.
23916 var index = indexOf(state.pipes, dest);
23917 if (index === -
1) return this;
23919 state.pipes.splice(index,
1);
23920 state.pipesCount -=
1;
23921 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
23923 dest.emit('unpipe', this);
23928 // set up data events if they are asked for
23929 // Ensure readable listeners eventually get something
23930 Readable.prototype.on = function (ev, fn) {
23931 var res = Stream.prototype.on.call(this, ev, fn);
23933 if (ev === 'data') {
23934 // Start flowing on next tick if stream isn't explicitly paused
23935 if (this._readableState.flowing !== false) this.resume();
23936 } else if (ev === 'readable') {
23937 var state = this._readableState;
23938 if (!state.endEmitted && !state.readableListening) {
23939 state.readableListening = state.needReadable = true;
23940 state.emittedReadable = false;
23941 if (!state.reading) {
23942 processNextTick(nReadingNextTick, this);
23943 } else if (state.length) {
23944 emitReadable(this, state);
23951 Readable.prototype.addListener = Readable.prototype.on;
23953 function nReadingNextTick(self) {
23954 debug('readable nexttick read
0');
23958 // pause() and resume() are remnants of the legacy readable stream API
23959 // If the user uses them, then switch into old mode.
23960 Readable.prototype.resume = function () {
23961 var state = this._readableState;
23962 if (!state.flowing) {
23964 state.flowing = true;
23965 resume(this, state);
23970 function resume(stream, state) {
23971 if (!state.resumeScheduled) {
23972 state.resumeScheduled = true;
23973 processNextTick(resume_, stream, state);
23977 function resume_(stream, state) {
23978 if (!state.reading) {
23979 debug('resume read
0');
23983 state.resumeScheduled = false;
23984 state.awaitDrain =
0;
23985 stream.emit('resume');
23987 if (state.flowing && !state.reading) stream.read(
0);
23990 Readable.prototype.pause = function () {
23991 debug('call pause flowing=%j', this._readableState.flowing);
23992 if (false !== this._readableState.flowing) {
23994 this._readableState.flowing = false;
23995 this.emit('pause');
24000 function flow(stream) {
24001 var state = stream._readableState;
24002 debug('flow', state.flowing);
24003 while (state.flowing && stream.read() !== null) {}
24006 // wrap an old-style stream as the async data source.
24007 // This is *not* part of the readable stream interface.
24008 // It is an ugly unfortunate mess of history.
24009 Readable.prototype.wrap = function (stream) {
24010 var state = this._readableState;
24011 var paused = false;
24014 stream.on('end', function () {
24015 debug('wrapped end');
24016 if (state.decoder && !state.ended) {
24017 var chunk = state.decoder.end();
24018 if (chunk && chunk.length) self.push(chunk);
24024 stream.on('data', function (chunk) {
24025 debug('wrapped data');
24026 if (state.decoder) chunk = state.decoder.write(chunk);
24028 // don't skip over falsy values in objectMode
24029 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
24031 var ret = self.push(chunk);
24038 // proxy all the other methods.
24039 // important when wrapping filters and duplexes.
24040 for (var i in stream) {
24041 if (this[i] === undefined && typeof stream[i] === 'function') {
24042 this[i] = function (method) {
24043 return function () {
24044 return stream[method].apply(stream, arguments);
24050 // proxy certain important events.
24051 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
24052 forEach(events, function (ev) {
24053 stream.on(ev, self.emit.bind(self, ev));
24056 // when we try to consume some more bytes, simply unpause the
24057 // underlying stream.
24058 self._read = function (n) {
24059 debug('wrapped _read', n);
24069 // exposed for testing purposes only.
24070 Readable._fromList = fromList;
24072 // Pluck off n bytes from an array of buffers.
24073 // Length is the combined lengths of all the buffers in the list.
24074 // This function is designed to be inlinable, so please take care when making
24075 // changes to the function body.
24076 function fromList(n, state) {
24077 // nothing buffered
24078 if (state.length ===
0) return null;
24081 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
24082 // read it all, truncate the list
24083 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);
24084 state.buffer.clear();
24086 // read part of list
24087 ret = fromListPartial(n, state.buffer, state.decoder);
24093 // Extracts only enough buffered data to satisfy the amount requested.
24094 // This function is designed to be inlinable, so please take care when making
24095 // changes to the function body.
24096 function fromListPartial(n, list, hasStrings) {
24098 if (n < list.head.data.length) {
24099 // slice is the same for buffers and strings
24100 ret = list.head.data.slice(
0, n);
24101 list.head.data = list.head.data.slice(n);
24102 } else if (n === list.head.data.length) {
24103 // first chunk is a perfect match
24104 ret = list.shift();
24106 // result spans more than one buffer
24107 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
24112 // Copies a specified amount of characters from the list of buffered data
24114 // This function is designed to be inlinable, so please take care when making
24115 // changes to the function body.
24116 function copyFromBufferString(n, list) {
24121 while (p = p.next) {
24123 var nb = n
> str.length ? str.length : n;
24124 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
24127 if (nb === str.length) {
24129 if (p.next) list.head = p.next;else list.head = list.tail = null;
24132 p.data = str.slice(nb);
24142 // Copies a specified amount of bytes from the list of buffered data chunks.
24143 // This function is designed to be inlinable, so please take care when making
24144 // changes to the function body.
24145 function copyFromBuffer(n, list) {
24146 var ret = bufferShim.allocUnsafe(n);
24150 n -= p.data.length;
24151 while (p = p.next) {
24153 var nb = n
> buf.length ? buf.length : n;
24154 buf.copy(ret, ret.length - n,
0, nb);
24157 if (nb === buf.length) {
24159 if (p.next) list.head = p.next;else list.head = list.tail = null;
24162 p.data = buf.slice(nb);
24172 function endReadable(stream) {
24173 var state = stream._readableState;
24175 // If we get here before consuming all the bytes, then that is a
24176 // bug in node. Should never happen.
24177 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
24179 if (!state.endEmitted) {
24180 state.ended = true;
24181 processNextTick(endReadableNT, state, stream);
24185 function endReadableNT(state, stream) {
24186 // Check that we didn't get one last unshift.
24187 if (!state.endEmitted && state.length ===
0) {
24188 state.endEmitted = true;
24189 stream.readable = false;
24190 stream.emit('end');
24194 function forEach(xs, f) {
24195 for (var i =
0, l = xs.length; i < l; i++) {
24200 function indexOf(xs, x) {
24201 for (var i =
0, l = xs.length; i < l; i++) {
24202 if (xs[i] === x) return i;
24206 }).call(this,require('_process'))
24207 },{
"./_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){
24208 // a transform stream is a readable/writable stream where you do
24209 // something with the data. Sometimes it's called a
"filter",
24210 // but that's not a great name for it, since that implies a thing where
24211 // some bits pass through, and others are simply ignored. (That would
24212 // be a valid example of a transform, of course.)
24214 // While the output is causally related to the input, it's not a
24215 // necessarily symmetric or synchronous transformation. For example,
24216 // a zlib stream might take multiple plain-text writes(), and then
24217 // emit a single compressed chunk some time in the future.
24219 // Here's how this works:
24221 // The Transform stream has all the aspects of the readable and writable
24222 // stream classes. When you write(chunk), that calls _write(chunk,cb)
24223 // internally, and returns false if there's a lot of pending writes
24224 // buffered up. When you call read(), that calls _read(n) until
24225 // there's enough pending readable data buffered up.
24227 // In a transform stream, the written data is placed in a buffer. When
24228 // _read(n) is called, it transforms the queued up data, calling the
24229 // buffered _write cb's as it consumes chunks. If consuming a single
24230 // written chunk would result in multiple output chunks, then the first
24231 // outputted bit calls the readcb, and subsequent chunks just go into
24232 // the read buffer, and will cause it to emit 'readable' if necessary.
24234 // This way, back-pressure is actually determined by the reading side,
24235 // since _read has to be called to start processing a new chunk. However,
24236 // a pathological inflate type of transform can cause excessive buffering
24237 // here. For example, imagine a stream where every byte of input is
24238 // interpreted as an integer from
0-
255, and then results in that many
24239 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
24240 //
1kb of data being output. In this case, you could write a very small
24241 // amount of input, and end up with a very large amount of output. In
24242 // such a pathological inflating mechanism, there'd be no way to tell
24243 // the system to stop doing the transform. A single
4MB write could
24244 // cause the system to run out of memory.
24246 // However, even in such a pathological case, only a single written chunk
24247 // would be consumed, and then the rest would wait (un-transformed) until
24248 // the results of the previous transformed chunk were consumed.
24252 module.exports = Transform;
24254 var Duplex = require('./_stream_duplex');
24257 var util = require('core-util-is');
24258 util.inherits = require('inherits');
24261 util.inherits(Transform, Duplex);
24263 function TransformState(stream) {
24264 this.afterTransform = function (er, data) {
24265 return afterTransform(stream, er, data);
24268 this.needTransform = false;
24269 this.transforming = false;
24270 this.writecb = null;
24271 this.writechunk = null;
24272 this.writeencoding = null;
24275 function afterTransform(stream, er, data) {
24276 var ts = stream._transformState;
24277 ts.transforming = false;
24279 var cb = ts.writecb;
24281 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
24283 ts.writechunk = null;
24286 if (data !== null && data !== undefined) stream.push(data);
24290 var rs = stream._readableState;
24291 rs.reading = false;
24292 if (rs.needReadable || rs.length < rs.highWaterMark) {
24293 stream._read(rs.highWaterMark);
24297 function Transform(options) {
24298 if (!(this instanceof Transform)) return new Transform(options);
24300 Duplex.call(this, options);
24302 this._transformState = new TransformState(this);
24306 // start out asking for a readable event once data is transformed.
24307 this._readableState.needReadable = true;
24309 // we have implemented the _read method, and done the other things
24310 // that Readable wants before the first _read call, so unset the
24311 // sync guard flag.
24312 this._readableState.sync = false;
24315 if (typeof options.transform === 'function') this._transform = options.transform;
24317 if (typeof options.flush === 'function') this._flush = options.flush;
24320 // When the writable side finishes, then flush out anything remaining.
24321 this.once('prefinish', function () {
24322 if (typeof this._flush === 'function') this._flush(function (er, data) {
24323 done(stream, er, data);
24324 });else done(stream);
24328 Transform.prototype.push = function (chunk, encoding) {
24329 this._transformState.needTransform = false;
24330 return Duplex.prototype.push.call(this, chunk, encoding);
24333 // This is the part where you do stuff!
24334 // override this function in implementation classes.
24335 // 'chunk' is an input chunk.
24337 // Call `push(newChunk)` to pass along transformed output
24338 // to the readable side. You may call 'push' zero or more times.
24340 // Call `cb(err)` when you are done with this chunk. If you pass
24341 // an error, then that'll put the hurt on the whole operation. If you
24342 // never call cb(), then you'll never get another chunk.
24343 Transform.prototype._transform = function (chunk, encoding, cb) {
24344 throw new Error('_transform() is not implemented');
24347 Transform.prototype._write = function (chunk, encoding, cb) {
24348 var ts = this._transformState;
24350 ts.writechunk = chunk;
24351 ts.writeencoding = encoding;
24352 if (!ts.transforming) {
24353 var rs = this._readableState;
24354 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
24358 // Doesn't matter what the args are here.
24359 // _transform does all the work.
24360 // That we got here means that the readable side wants more data.
24361 Transform.prototype._read = function (n) {
24362 var ts = this._transformState;
24364 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
24365 ts.transforming = true;
24366 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
24368 // mark that we need a transform, so that any data that comes in
24369 // will get processed, now that we've asked for it.
24370 ts.needTransform = true;
24374 function done(stream, er, data) {
24375 if (er) return stream.emit('error', er);
24377 if (data !== null && data !== undefined) stream.push(data);
24379 // if there's nothing in the write buffer, then that means
24380 // that nothing more will ever be provided
24381 var ws = stream._writableState;
24382 var ts = stream._transformState;
24384 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
24386 if (ts.transforming) throw new Error('Calling transform done when still transforming');
24388 return stream.push(null);
24390 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
24391 (function (process){
24392 // A bit simpler than readable streams.
24393 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24394 // the drain event emission and buffering.
24398 module.exports = Writable;
24401 var processNextTick = require('process-nextick-args');
24405 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
24412 Writable.WritableState = WritableState;
24415 var util = require('core-util-is');
24416 util.inherits = require('inherits');
24420 var internalUtil = {
24421 deprecate: require('util-deprecate')
24429 Stream = require('st' + 'ream');
24430 } catch (_) {} finally {
24431 if (!Stream) Stream = require('events').EventEmitter;
24436 var Buffer = require('buffer').Buffer;
24438 var bufferShim = require('buffer-shims');
24441 util.inherits(Writable, Stream);
24445 function WriteReq(chunk, encoding, cb) {
24446 this.chunk = chunk;
24447 this.encoding = encoding;
24448 this.callback = cb;
24452 function WritableState(options, stream) {
24453 Duplex = Duplex || require('./_stream_duplex');
24455 options = options || {};
24457 // object stream flag to indicate whether or not this stream
24458 // contains buffers or objects.
24459 this.objectMode = !!options.objectMode;
24461 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
24463 // the point at which write() starts returning false
24464 // Note:
0 is a valid value, means that we always return false if
24465 // the entire buffer is not flushed immediately on write()
24466 var hwm = options.highWaterMark;
24467 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
24468 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
24471 this.highWaterMark = ~ ~this.highWaterMark;
24473 // drain event flag.
24474 this.needDrain = false;
24475 // at the start of calling end()
24476 this.ending = false;
24477 // when end() has been called, and returned
24478 this.ended = false;
24479 // when 'finish' is emitted
24480 this.finished = false;
24482 // should we decode strings into buffers before passing to _write?
24483 // this is here so that some node-core streams can optimize string
24484 // handling at a lower level.
24485 var noDecode = options.decodeStrings === false;
24486 this.decodeStrings = !noDecode;
24488 // Crypto is kind of old and crusty. Historically, its default string
24489 // encoding is 'binary' so we have to make this configurable.
24490 // Everything else in the universe uses 'utf8', though.
24491 this.defaultEncoding = options.defaultEncoding || 'utf8';
24493 // not an actual buffer we keep track of, but a measurement
24494 // of how much we're waiting to get pushed to some underlying
24498 // a flag to see when we're in the middle of a write.
24499 this.writing = false;
24501 // when true all writes will be buffered until .uncork() call
24504 // a flag to be able to tell if the onwrite cb is called immediately,
24505 // or on a later tick. We set this to true at first, because any
24506 // actions that shouldn't happen until "later" should generally also
24507 // not happen before the first write call.
24510 // a flag to know if we're processing previously buffered items, which
24511 // may call the _write() callback in the same tick, so that we don't
24512 // end up in an overlapped onwrite situation.
24513 this.bufferProcessing = false;
24515 // the callback that's passed to _write(chunk,cb)
24516 this.onwrite = function (er) {
24517 onwrite(stream, er);
24520 // the callback that the user supplies to write(chunk,encoding,cb)
24521 this.writecb = null;
24523 // the amount that is being written when _write is called.
24526 this.bufferedRequest = null;
24527 this.lastBufferedRequest = null;
24529 // number of pending user-supplied write callbacks
24530 // this must be
0 before 'finish' can be emitted
24531 this.pendingcb =
0;
24533 // emit prefinish if the only thing we're waiting for is _write cbs
24534 // This is relevant for synchronous Transform streams
24535 this.prefinished = false;
24537 // True if the error was already emitted and should not be thrown again
24538 this.errorEmitted = false;
24540 // count buffered requests
24541 this.bufferedRequestCount =
0;
24543 // allocate the first CorkedRequest, there is always
24544 // one allocated and free to use, and we maintain at most two
24545 this.corkedRequestsFree = new CorkedRequest(this);
24548 WritableState.prototype.getBuffer = function getBuffer() {
24549 var current = this.bufferedRequest;
24553 current = current.next;
24560 Object.defineProperty(WritableState.prototype, 'buffer', {
24561 get: internalUtil.deprecate(function () {
24562 return this.getBuffer();
24563 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
24568 // Test _writableState for inheritance to account for Duplex streams,
24569 // whose prototype chain only points to Readable.
24570 var realHasInstance;
24571 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
24572 realHasInstance = Function.prototype[Symbol.hasInstance];
24573 Object.defineProperty(Writable, Symbol.hasInstance, {
24574 value: function (object) {
24575 if (realHasInstance.call(this, object)) return true;
24577 return object && object._writableState instanceof WritableState;
24581 realHasInstance = function (object) {
24582 return object instanceof this;
24586 function Writable(options) {
24587 Duplex = Duplex || require('./_stream_duplex');
24589 // Writable ctor is applied to Duplexes, too.
24590 // `realHasInstance` is necessary because using plain `instanceof`
24591 // would return false, as no `_writableState` property is attached.
24593 // Trying to use the custom `instanceof` for Writable here will also break the
24594 // Node.js LazyTransform implementation, which has a non-trivial getter for
24595 // `_writableState` that would lead to infinite recursion.
24596 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
24597 return new Writable(options);
24600 this._writableState = new WritableState(options, this);
24603 this.writable = true;
24606 if (typeof options.write === 'function') this._write = options.write;
24608 if (typeof options.writev === 'function') this._writev = options.writev;
24614 // Otherwise people can pipe Writable streams, which is just wrong.
24615 Writable.prototype.pipe = function () {
24616 this.emit('error', new Error('Cannot pipe, not readable'));
24619 function writeAfterEnd(stream, cb) {
24620 var er = new Error('write after end');
24621 // TODO: defer error events consistently everywhere, not just the cb
24622 stream.emit('error', er);
24623 processNextTick(cb, er);
24626 // If we get something that is not a buffer, string, null, or undefined,
24627 // and we're not in objectMode, then that's an error.
24628 // Otherwise stream chunks are all considered to be of length=
1, and the
24629 // watermarks determine how many objects to keep in the buffer, rather than
24630 // how many bytes or characters.
24631 function validChunk(stream, state, chunk, cb) {
24634 // Always throw error if a null is written
24635 // if we are not in object mode then throw
24636 // if it is not a buffer, string, or undefined.
24637 if (chunk === null) {
24638 er = new TypeError('May not write null values to stream');
24639 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
24640 er = new TypeError('Invalid non-string/buffer chunk');
24643 stream.emit('error', er);
24644 processNextTick(cb, er);
24650 Writable.prototype.write = function (chunk, encoding, cb) {
24651 var state = this._writableState;
24654 if (typeof encoding === 'function') {
24659 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
24661 if (typeof cb !== 'function') cb = nop;
24663 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
24665 ret = writeOrBuffer(this, state, chunk, encoding, cb);
24671 Writable.prototype.cork = function () {
24672 var state = this._writableState;
24677 Writable.prototype.uncork = function () {
24678 var state = this._writableState;
24680 if (state.corked) {
24683 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
24687 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
24688 // node::ParseEncoding() requires lower case.
24689 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
24690 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);
24691 this._writableState.defaultEncoding = encoding;
24695 function decodeChunk(state, chunk, encoding) {
24696 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
24697 chunk = bufferShim.from(chunk, encoding);
24702 // if we're already writing something, then just put this
24703 // in the queue, and wait our turn. Otherwise, call _write
24704 // If we return false, then we need a drain event, so set that flag.
24705 function writeOrBuffer(stream, state, chunk, encoding, cb) {
24706 chunk = decodeChunk(state, chunk, encoding);
24708 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
24709 var len = state.objectMode ?
1 : chunk.length;
24711 state.length += len;
24713 var ret = state.length < state.highWaterMark;
24714 // we must ensure that previous needDrain will not be reset to false.
24715 if (!ret) state.needDrain = true;
24717 if (state.writing || state.corked) {
24718 var last = state.lastBufferedRequest;
24719 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
24721 last.next = state.lastBufferedRequest;
24723 state.bufferedRequest = state.lastBufferedRequest;
24725 state.bufferedRequestCount +=
1;
24727 doWrite(stream, state, false, len, chunk, encoding, cb);
24733 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
24734 state.writelen = len;
24735 state.writecb = cb;
24736 state.writing = true;
24738 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
24739 state.sync = false;
24742 function onwriteError(stream, state, sync, er, cb) {
24744 if (sync) processNextTick(cb, er);else cb(er);
24746 stream._writableState.errorEmitted = true;
24747 stream.emit('error', er);
24750 function onwriteStateUpdate(state) {
24751 state.writing = false;
24752 state.writecb = null;
24753 state.length -= state.writelen;
24754 state.writelen =
0;
24757 function onwrite(stream, er) {
24758 var state = stream._writableState;
24759 var sync = state.sync;
24760 var cb = state.writecb;
24762 onwriteStateUpdate(state);
24764 if (er) onwriteError(stream, state, sync, er, cb);else {
24765 // Check if we're actually ready to finish, but don't emit yet
24766 var finished = needFinish(state);
24768 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
24769 clearBuffer(stream, state);
24774 asyncWrite(afterWrite, stream, state, finished, cb);
24777 afterWrite(stream, state, finished, cb);
24782 function afterWrite(stream, state, finished, cb) {
24783 if (!finished) onwriteDrain(stream, state);
24786 finishMaybe(stream, state);
24789 // Must force callback to be called on nextTick, so that we don't
24790 // emit 'drain' before the write() consumer gets the 'false' return
24791 // value, and has a chance to attach a 'drain' listener.
24792 function onwriteDrain(stream, state) {
24793 if (state.length ===
0 && state.needDrain) {
24794 state.needDrain = false;
24795 stream.emit('drain');
24799 // if there's something in the buffer waiting, then process it
24800 function clearBuffer(stream, state) {
24801 state.bufferProcessing = true;
24802 var entry = state.bufferedRequest;
24804 if (stream._writev && entry && entry.next) {
24805 // Fast case, write everything using _writev()
24806 var l = state.bufferedRequestCount;
24807 var buffer = new Array(l);
24808 var holder = state.corkedRequestsFree;
24809 holder.entry = entry;
24813 buffer[count] = entry;
24814 entry = entry.next;
24818 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
24820 // doWrite is almost always async, defer these to save a bit of time
24821 // as the hot path ends with doWrite
24823 state.lastBufferedRequest = null;
24825 state.corkedRequestsFree = holder.next;
24826 holder.next = null;
24828 state.corkedRequestsFree = new CorkedRequest(state);
24831 // Slow case, write chunks one-by-one
24833 var chunk = entry.chunk;
24834 var encoding = entry.encoding;
24835 var cb = entry.callback;
24836 var len = state.objectMode ?
1 : chunk.length;
24838 doWrite(stream, state, false, len, chunk, encoding, cb);
24839 entry = entry.next;
24840 // if we didn't call the onwrite immediately, then
24841 // it means that we need to wait until it does.
24842 // also, that means that the chunk and cb are currently
24843 // being processed, so move the buffer counter past them.
24844 if (state.writing) {
24849 if (entry === null) state.lastBufferedRequest = null;
24852 state.bufferedRequestCount =
0;
24853 state.bufferedRequest = entry;
24854 state.bufferProcessing = false;
24857 Writable.prototype._write = function (chunk, encoding, cb) {
24858 cb(new Error('_write() is not implemented'));
24861 Writable.prototype._writev = null;
24863 Writable.prototype.end = function (chunk, encoding, cb) {
24864 var state = this._writableState;
24866 if (typeof chunk === 'function') {
24870 } else if (typeof encoding === 'function') {
24875 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
24877 // .end() fully uncorks
24878 if (state.corked) {
24883 // ignore unnecessary end() calls.
24884 if (!state.ending && !state.finished) endWritable(this, state, cb);
24887 function needFinish(state) {
24888 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
24891 function prefinish(stream, state) {
24892 if (!state.prefinished) {
24893 state.prefinished = true;
24894 stream.emit('prefinish');
24898 function finishMaybe(stream, state) {
24899 var need = needFinish(state);
24901 if (state.pendingcb ===
0) {
24902 prefinish(stream, state);
24903 state.finished = true;
24904 stream.emit('finish');
24906 prefinish(stream, state);
24912 function endWritable(stream, state, cb) {
24913 state.ending = true;
24914 finishMaybe(stream, state);
24916 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
24918 state.ended = true;
24919 stream.writable = false;
24922 // It seems a linked list but it is not
24923 // there will be only
2 of these for each stream
24924 function CorkedRequest(state) {
24930 this.finish = function (err) {
24931 var entry = _this.entry;
24932 _this.entry = null;
24934 var cb = entry.callback;
24937 entry = entry.next;
24939 if (state.corkedRequestsFree) {
24940 state.corkedRequestsFree.next = _this;
24942 state.corkedRequestsFree = _this;
24946 }).call(this,require('_process'))
24947 },{"./_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){
24950 var Buffer = require('buffer').Buffer;
24952 var bufferShim = require('buffer-shims');
24955 module.exports = BufferList;
24957 function BufferList() {
24963 BufferList.prototype.push = function (v) {
24964 var entry = { data: v, next: null };
24965 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
24970 BufferList.prototype.unshift = function (v) {
24971 var entry = { data: v, next: this.head };
24972 if (this.length ===
0) this.tail = entry;
24977 BufferList.prototype.shift = function () {
24978 if (this.length ===
0) return;
24979 var ret = this.head.data;
24980 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
24985 BufferList.prototype.clear = function () {
24986 this.head = this.tail = null;
24990 BufferList.prototype.join = function (s) {
24991 if (this.length ===
0) return '';
24993 var ret = '' + p.data;
24994 while (p = p.next) {
24999 BufferList.prototype.concat = function (n) {
25000 if (this.length ===
0) return bufferShim.alloc(
0);
25001 if (this.length ===
1) return this.head.data;
25002 var ret = bufferShim.allocUnsafe(n
>>> 0);
25006 p.data.copy(ret, i);
25007 i += p.data.length;
25012 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
25013 module.exports = require(
"./lib/_stream_passthrough.js")
25015 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
25016 (function (process){
25017 var Stream = (function (){
25019 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
25022 exports = module.exports = require('./lib/_stream_readable.js');
25023 exports.Stream = Stream || exports;
25024 exports.Readable = exports;
25025 exports.Writable = require('./lib/_stream_writable.js');
25026 exports.Duplex = require('./lib/_stream_duplex.js');
25027 exports.Transform = require('./lib/_stream_transform.js');
25028 exports.PassThrough = require('./lib/_stream_passthrough.js');
25030 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
25031 module.exports = Stream;
25034 }).call(this,require('_process'))
25035 },{
"./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){
25036 module.exports = require(
"./lib/_stream_transform.js")
25038 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
25039 module.exports = require(
"./lib/_stream_writable.js")
25041 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
25042 // Copyright Joyent, Inc. and other Node contributors.
25044 // Permission is hereby granted, free of charge, to any person obtaining a
25045 // copy of this software and associated documentation files (the
25046 //
"Software"), to deal in the Software without restriction, including
25047 // without limitation the rights to use, copy, modify, merge, publish,
25048 // distribute, sublicense, and/or sell copies of the Software, and to permit
25049 // persons to whom the Software is furnished to do so, subject to the
25050 // following conditions:
25052 // The above copyright notice and this permission notice shall be included
25053 // in all copies or substantial portions of the Software.
25055 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25056 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25057 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25058 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25059 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25060 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25061 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25063 module.exports = Stream;
25065 var EE = require('events').EventEmitter;
25066 var inherits = require('inherits');
25068 inherits(Stream, EE);
25069 Stream.Readable = require('readable-stream/readable.js');
25070 Stream.Writable = require('readable-stream/writable.js');
25071 Stream.Duplex = require('readable-stream/duplex.js');
25072 Stream.Transform = require('readable-stream/transform.js');
25073 Stream.PassThrough = require('readable-stream/passthrough.js');
25075 // Backwards-compat with node
0.4.x
25076 Stream.Stream = Stream;
25080 // old-style streams. Note that the pipe method (the only relevant
25081 // part of this class) is overridden in the Readable class.
25083 function Stream() {
25087 Stream.prototype.pipe = function(dest, options) {
25090 function ondata(chunk) {
25091 if (dest.writable) {
25092 if (false === dest.write(chunk) && source.pause) {
25098 source.on('data', ondata);
25100 function ondrain() {
25101 if (source.readable && source.resume) {
25106 dest.on('drain', ondrain);
25108 // If the 'end' option is not supplied, dest.end() will be called when
25109 // source gets the 'end' or 'close' events. Only dest.end() once.
25110 if (!dest._isStdio && (!options || options.end !== false)) {
25111 source.on('end', onend);
25112 source.on('close', onclose);
25115 var didOnEnd = false;
25117 if (didOnEnd) return;
25124 function onclose() {
25125 if (didOnEnd) return;
25128 if (typeof dest.destroy === 'function') dest.destroy();
25131 // don't leave dangling pipes when there are errors.
25132 function onerror(er) {
25134 if (EE.listenerCount(this, 'error') ===
0) {
25135 throw er; // Unhandled stream error in pipe.
25139 source.on('error', onerror);
25140 dest.on('error', onerror);
25142 // remove all the event listeners that were added.
25143 function cleanup() {
25144 source.removeListener('data', ondata);
25145 dest.removeListener('drain', ondrain);
25147 source.removeListener('end', onend);
25148 source.removeListener('close', onclose);
25150 source.removeListener('error', onerror);
25151 dest.removeListener('error', onerror);
25153 source.removeListener('end', cleanup);
25154 source.removeListener('close', cleanup);
25156 dest.removeListener('close', cleanup);
25159 source.on('end', cleanup);
25160 source.on('close', cleanup);
25162 dest.on('close', cleanup);
25164 dest.emit('pipe', source);
25166 // Allow for unix-like usage: A.pipe(B).pipe(C)
25170 },{
"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){
25171 // Copyright Joyent, Inc. and other Node contributors.
25173 // Permission is hereby granted, free of charge, to any person obtaining a
25174 // copy of this software and associated documentation files (the
25175 //
"Software"), to deal in the Software without restriction, including
25176 // without limitation the rights to use, copy, modify, merge, publish,
25177 // distribute, sublicense, and/or sell copies of the Software, and to permit
25178 // persons to whom the Software is furnished to do so, subject to the
25179 // following conditions:
25181 // The above copyright notice and this permission notice shall be included
25182 // in all copies or substantial portions of the Software.
25184 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25185 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25186 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25187 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25188 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25189 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25190 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25192 var Buffer = require('buffer').Buffer;
25194 var isBufferEncoding = Buffer.isEncoding
25195 || function(encoding) {
25196 switch (encoding && encoding.toLowerCase()) {
25197 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;
25198 default: return false;
25203 function assertEncoding(encoding) {
25204 if (encoding && !isBufferEncoding(encoding)) {
25205 throw new Error('Unknown encoding: ' + encoding);
25209 // StringDecoder provides an interface for efficiently splitting a series of
25210 // buffers into a series of JS strings without breaking apart multi-byte
25211 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
25213 // @TODO Handling all encodings inside a single object makes it very difficult
25214 // to reason about this code, so it should be split up in the future.
25215 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
25216 // points as used by CESU-
8.
25217 var StringDecoder = exports.StringDecoder = function(encoding) {
25218 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
25219 assertEncoding(encoding);
25220 switch (this.encoding) {
25222 // CESU-
8 represents each of Surrogate Pair by
3-bytes
25223 this.surrogateSize =
3;
25227 // UTF-
16 represents each of Surrogate Pair by
2-bytes
25228 this.surrogateSize =
2;
25229 this.detectIncompleteChar = utf16DetectIncompleteChar;
25232 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
25233 this.surrogateSize =
3;
25234 this.detectIncompleteChar = base64DetectIncompleteChar;
25237 this.write = passThroughWrite;
25241 // Enough space to store all bytes of a single character. UTF-
8 needs
4
25242 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
25243 this.charBuffer = new Buffer(
6);
25244 // Number of bytes received for the current incomplete multi-byte character.
25245 this.charReceived =
0;
25246 // Number of bytes expected for the current incomplete multi-byte character.
25247 this.charLength =
0;
25251 // write decodes the given buffer and returns it as JS string that is
25252 // guaranteed to not contain any partial multi-byte characters. Any partial
25253 // character found at the end of the buffer is buffered up, and will be
25254 // returned when calling write again with the remaining bytes.
25256 // Note: Converting a Buffer containing an orphan surrogate to a String
25257 // currently works, but converting a String to a Buffer (via `new Buffer`, or
25258 // Buffer#write) will replace incomplete surrogates with the unicode
25259 // replacement character. See https://codereview.chromium.org/
121173009/ .
25260 StringDecoder.prototype.write = function(buffer) {
25262 // if our last write ended with an incomplete multibyte character
25263 while (this.charLength) {
25264 // determine how many remaining bytes this buffer has to offer for this char
25265 var available = (buffer.length
>= this.charLength - this.charReceived) ?
25266 this.charLength - this.charReceived :
25269 // add the new bytes to the char buffer
25270 buffer.copy(this.charBuffer, this.charReceived,
0, available);
25271 this.charReceived += available;
25273 if (this.charReceived < this.charLength) {
25274 // still not enough chars in this buffer? wait for more ...
25278 // remove bytes belonging to the current character from the buffer
25279 buffer = buffer.slice(available, buffer.length);
25281 // get the character that was split
25282 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
25284 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25285 var charCode = charStr.charCodeAt(charStr.length -
1);
25286 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25287 this.charLength += this.surrogateSize;
25291 this.charReceived = this.charLength =
0;
25293 // if there are no more bytes in this buffer, just emit our char
25294 if (buffer.length ===
0) {
25300 // determine and set charLength / charReceived
25301 this.detectIncompleteChar(buffer);
25303 var end = buffer.length;
25304 if (this.charLength) {
25305 // buffer the incomplete character bytes we got
25306 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
25307 end -= this.charReceived;
25310 charStr += buffer.toString(this.encoding,
0, end);
25312 var end = charStr.length -
1;
25313 var charCode = charStr.charCodeAt(end);
25314 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25315 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25316 var size = this.surrogateSize;
25317 this.charLength += size;
25318 this.charReceived += size;
25319 this.charBuffer.copy(this.charBuffer, size,
0, size);
25320 buffer.copy(this.charBuffer,
0,
0, size);
25321 return charStr.substring(
0, end);
25324 // or just emit the charStr
25328 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
25329 // the end of the given buffer. If so, it sets this.charLength to the byte
25330 // length that character, and sets this.charReceived to the number of bytes
25331 // that are available for this character.
25332 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
25333 // determine how many bytes we have to check at the end of this buffer
25334 var i = (buffer.length
>=
3) ?
3 : buffer.length;
25336 // Figure out if one of the last i bytes of our buffer announces an
25337 // incomplete char.
25338 for (; i
> 0; i--) {
25339 var c = buffer[buffer.length - i];
25341 // See http://en.wikipedia.org/wiki/UTF-
8#Description
25344 if (i ==
1 && c
>> 5 ==
0x06) {
25345 this.charLength =
2;
25350 if (i <=
2 && c
>> 4 ==
0x0E) {
25351 this.charLength =
3;
25356 if (i <=
3 && c
>> 3 ==
0x1E) {
25357 this.charLength =
4;
25361 this.charReceived = i;
25364 StringDecoder.prototype.end = function(buffer) {
25366 if (buffer && buffer.length)
25367 res = this.write(buffer);
25369 if (this.charReceived) {
25370 var cr = this.charReceived;
25371 var buf = this.charBuffer;
25372 var enc = this.encoding;
25373 res += buf.slice(
0, cr).toString(enc);
25379 function passThroughWrite(buffer) {
25380 return buffer.toString(this.encoding);
25383 function utf16DetectIncompleteChar(buffer) {
25384 this.charReceived = buffer.length %
2;
25385 this.charLength = this.charReceived ?
2 :
0;
25388 function base64DetectIncompleteChar(buffer) {
25389 this.charReceived = buffer.length %
3;
25390 this.charLength = this.charReceived ?
3 :
0;
25393 },{
"buffer":
5}],
27:[function(require,module,exports){
25394 (function (global){
25400 module.exports = deprecate;
25403 * Mark that a method should not be used.
25404 * Returns a modified function which warns once by default.
25406 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
25408 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
25409 * will throw an Error when invoked.
25411 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
25412 * will invoke `console.trace()` instead of `console.error()`.
25414 * @param {Function} fn - the function to deprecate
25415 * @param {String} msg - the string to print to the console when `fn` is invoked
25416 * @returns {Function} a new
"deprecated" version of `fn`
25420 function deprecate (fn, msg) {
25421 if (config('noDeprecation')) {
25425 var warned = false;
25426 function deprecated() {
25428 if (config('throwDeprecation')) {
25429 throw new Error(msg);
25430 } else if (config('traceDeprecation')) {
25431 console.trace(msg);
25437 return fn.apply(this, arguments);
25444 * Checks `localStorage` for boolean values for the given `name`.
25446 * @param {String} name
25447 * @returns {Boolean}
25451 function config (name) {
25452 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
25454 if (!global.localStorage) return false;
25458 var val = global.localStorage[name];
25459 if (null == val) return false;
25460 return String(val).toLowerCase() === 'true';
25463 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
25464 },{}],
28:[function(require,module,exports){
25465 arguments[
4][
9][
0].apply(exports,arguments)
25466 },{
"dup":
9}],
29:[function(require,module,exports){
25467 module.exports = function isBuffer(arg) {
25468 return arg && typeof arg === 'object'
25469 && typeof arg.copy === 'function'
25470 && typeof arg.fill === 'function'
25471 && typeof arg.readUInt8 === 'function';
25473 },{}],
30:[function(require,module,exports){
25474 (function (process,global){
25475 // Copyright Joyent, Inc. and other Node contributors.
25477 // Permission is hereby granted, free of charge, to any person obtaining a
25478 // copy of this software and associated documentation files (the
25479 //
"Software"), to deal in the Software without restriction, including
25480 // without limitation the rights to use, copy, modify, merge, publish,
25481 // distribute, sublicense, and/or sell copies of the Software, and to permit
25482 // persons to whom the Software is furnished to do so, subject to the
25483 // following conditions:
25485 // The above copyright notice and this permission notice shall be included
25486 // in all copies or substantial portions of the Software.
25488 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25489 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25490 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25491 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25492 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25493 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25494 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25496 var formatRegExp = /%[sdj%]/g;
25497 exports.format = function(f) {
25498 if (!isString(f)) {
25500 for (var i =
0; i < arguments.length; i++) {
25501 objects.push(inspect(arguments[i]));
25503 return objects.join(' ');
25507 var args = arguments;
25508 var len = args.length;
25509 var str = String(f).replace(formatRegExp, function(x) {
25510 if (x === '%%') return '%';
25511 if (i
>= len) return x;
25513 case '%s': return String(args[i++]);
25514 case '%d': return Number(args[i++]);
25517 return JSON.stringify(args[i++]);
25519 return '[Circular]';
25525 for (var x = args[i]; i < len; x = args[++i]) {
25526 if (isNull(x) || !isObject(x)) {
25529 str += ' ' + inspect(x);
25536 // Mark that a method should not be used.
25537 // Returns a modified function which warns once by default.
25538 // If --no-deprecation is set, then it is a no-op.
25539 exports.deprecate = function(fn, msg) {
25540 // Allow for deprecating things in the process of starting up.
25541 if (isUndefined(global.process)) {
25542 return function() {
25543 return exports.deprecate(fn, msg).apply(this, arguments);
25547 if (process.noDeprecation === true) {
25551 var warned = false;
25552 function deprecated() {
25554 if (process.throwDeprecation) {
25555 throw new Error(msg);
25556 } else if (process.traceDeprecation) {
25557 console.trace(msg);
25559 console.error(msg);
25563 return fn.apply(this, arguments);
25572 exports.debuglog = function(set) {
25573 if (isUndefined(debugEnviron))
25574 debugEnviron = process.env.NODE_DEBUG || '';
25575 set = set.toUpperCase();
25576 if (!debugs[set]) {
25577 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
25578 var pid = process.pid;
25579 debugs[set] = function() {
25580 var msg = exports.format.apply(exports, arguments);
25581 console.error('%s %d: %s', set, pid, msg);
25584 debugs[set] = function() {};
25587 return debugs[set];
25592 * Echos the value of a value. Trys to print the value out
25593 * in the best way possible given the different types.
25595 * @param {Object} obj The object to print out.
25596 * @param {Object} opts Optional options object that alters the output.
25598 /* legacy: obj, showHidden, depth, colors*/
25599 function inspect(obj, opts) {
25603 stylize: stylizeNoColor
25606 if (arguments.length
>=
3) ctx.depth = arguments[
2];
25607 if (arguments.length
>=
4) ctx.colors = arguments[
3];
25608 if (isBoolean(opts)) {
25610 ctx.showHidden = opts;
25612 // got an "options" object
25613 exports._extend(ctx, opts);
25615 // set default options
25616 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
25617 if (isUndefined(ctx.depth)) ctx.depth =
2;
25618 if (isUndefined(ctx.colors)) ctx.colors = false;
25619 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
25620 if (ctx.colors) ctx.stylize = stylizeWithColor;
25621 return formatValue(ctx, obj, ctx.depth);
25623 exports.inspect = inspect;
25626 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
25629 'italic' : [
3,
23],
25630 'underline' : [
4,
24],
25631 'inverse' : [
7,
27],
25632 'white' : [
37,
39],
25634 'black' : [
30,
39],
25637 'green' : [
32,
39],
25638 'magenta' : [
35,
39],
25640 'yellow' : [
33,
39]
25643 // Don't use 'blue' not visible on cmd.exe
25646 'number': 'yellow',
25647 'boolean': 'yellow',
25648 'undefined': 'grey',
25652 // "name": intentionally not styling
25657 function stylizeWithColor(str, styleType) {
25658 var style = inspect.styles[styleType];
25661 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
25662 '\u001b[' + inspect.colors[style][
1] + 'm';
25669 function stylizeNoColor(str, styleType) {
25674 function arrayToHash(array) {
25677 array.forEach(function(val, idx) {
25685 function formatValue(ctx, value, recurseTimes) {
25686 // Provide a hook for user-specified inspect functions.
25687 // Check that value is an object with an inspect function on it
25688 if (ctx.customInspect &&
25690 isFunction(value.inspect) &&
25691 // Filter out the util module, it's inspect function is special
25692 value.inspect !== exports.inspect &&
25693 // Also filter out any prototype objects using the circular check.
25694 !(value.constructor && value.constructor.prototype === value)) {
25695 var ret = value.inspect(recurseTimes, ctx);
25696 if (!isString(ret)) {
25697 ret = formatValue(ctx, ret, recurseTimes);
25702 // Primitive types cannot have properties
25703 var primitive = formatPrimitive(ctx, value);
25708 // Look up the keys of the object.
25709 var keys = Object.keys(value);
25710 var visibleKeys = arrayToHash(keys);
25712 if (ctx.showHidden) {
25713 keys = Object.getOwnPropertyNames(value);
25716 // IE doesn't make error fields non-enumerable
25717 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
25719 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
25720 return formatError(value);
25723 // Some type of object without properties can be shortcutted.
25724 if (keys.length ===
0) {
25725 if (isFunction(value)) {
25726 var name = value.name ? ': ' + value.name : '';
25727 return ctx.stylize('[Function' + name + ']', 'special');
25729 if (isRegExp(value)) {
25730 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25732 if (isDate(value)) {
25733 return ctx.stylize(Date.prototype.toString.call(value), 'date');
25735 if (isError(value)) {
25736 return formatError(value);
25740 var base = '', array = false, braces = ['{', '}'];
25742 // Make Array say that they are Array
25743 if (isArray(value)) {
25745 braces = ['[', ']'];
25748 // Make functions say that they are functions
25749 if (isFunction(value)) {
25750 var n = value.name ? ': ' + value.name : '';
25751 base = ' [Function' + n + ']';
25754 // Make RegExps say that they are RegExps
25755 if (isRegExp(value)) {
25756 base = ' ' + RegExp.prototype.toString.call(value);
25759 // Make dates with properties first say the date
25760 if (isDate(value)) {
25761 base = ' ' + Date.prototype.toUTCString.call(value);
25764 // Make error with message first say the error
25765 if (isError(value)) {
25766 base = ' ' + formatError(value);
25769 if (keys.length ===
0 && (!array || value.length ==
0)) {
25770 return braces[
0] + base + braces[
1];
25773 if (recurseTimes <
0) {
25774 if (isRegExp(value)) {
25775 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25777 return ctx.stylize('[Object]', 'special');
25781 ctx.seen.push(value);
25785 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
25787 output = keys.map(function(key) {
25788 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
25794 return reduceToSingleString(output, base, braces);
25798 function formatPrimitive(ctx, value) {
25799 if (isUndefined(value))
25800 return ctx.stylize('undefined', 'undefined');
25801 if (isString(value)) {
25802 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
25803 .replace(/'/g, "\\'")
25804 .replace(/\\"/g, '"') + '\'';
25805 return ctx.stylize(simple, 'string');
25807 if (isNumber(value))
25808 return ctx.stylize('' + value, 'number');
25809 if (isBoolean(value))
25810 return ctx.stylize('' + value, 'boolean');
25811 // For some reason typeof null is "object", so special case here.
25813 return ctx.stylize('null', 'null');
25817 function formatError(value) {
25818 return '[' + Error.prototype.toString.call(value) + ']';
25822 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
25824 for (var i =
0, l = value.length; i < l; ++i) {
25825 if (hasOwnProperty(value, String(i))) {
25826 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25832 keys.forEach(function(key) {
25833 if (!key.match(/^\d+$/)) {
25834 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25842 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
25843 var name, str, desc;
25844 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
25847 str = ctx.stylize('[Getter/Setter]', 'special');
25849 str = ctx.stylize('[Getter]', 'special');
25853 str = ctx.stylize('[Setter]', 'special');
25856 if (!hasOwnProperty(visibleKeys, key)) {
25857 name = '[' + key + ']';
25860 if (ctx.seen.indexOf(desc.value) <
0) {
25861 if (isNull(recurseTimes)) {
25862 str = formatValue(ctx, desc.value, null);
25864 str = formatValue(ctx, desc.value, recurseTimes -
1);
25866 if (str.indexOf('\n')
> -
1) {
25868 str = str.split('\n').map(function(line) {
25870 }).join('\n').substr(
2);
25872 str = '\n' + str.split('\n').map(function(line) {
25878 str = ctx.stylize('[Circular]', 'special');
25881 if (isUndefined(name)) {
25882 if (array && key.match(/^\d+$/)) {
25885 name = JSON.stringify('' + key);
25886 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
25887 name = name.substr(
1, name.length -
2);
25888 name = ctx.stylize(name, 'name');
25890 name = name.replace(/'/g, "\\'")
25891 .replace(/\\"/g, '"')
25892 .replace(/(^"|"$)/g, "'");
25893 name = ctx.stylize(name, 'string');
25897 return name + ': ' + str;
25901 function reduceToSingleString(output, base, braces) {
25902 var numLinesEst =
0;
25903 var length = output.reduce(function(prev, cur) {
25905 if (cur.indexOf('\n')
>=
0) numLinesEst++;
25906 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
25911 (base === '' ? '' : base + '\n ') +
25913 output.join(',\n ') +
25918 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
25922 // NOTE: These type checking functions intentionally don't use `instanceof`
25923 // because it is fragile and can be easily faked with `Object.create()`.
25924 function isArray(ar) {
25925 return Array.isArray(ar);
25927 exports.isArray = isArray;
25929 function isBoolean(arg) {
25930 return typeof arg === 'boolean';
25932 exports.isBoolean = isBoolean;
25934 function isNull(arg) {
25935 return arg === null;
25937 exports.isNull = isNull;
25939 function isNullOrUndefined(arg) {
25940 return arg == null;
25942 exports.isNullOrUndefined = isNullOrUndefined;
25944 function isNumber(arg) {
25945 return typeof arg === 'number';
25947 exports.isNumber = isNumber;
25949 function isString(arg) {
25950 return typeof arg === 'string';
25952 exports.isString = isString;
25954 function isSymbol(arg) {
25955 return typeof arg === 'symbol';
25957 exports.isSymbol = isSymbol;
25959 function isUndefined(arg) {
25960 return arg === void
0;
25962 exports.isUndefined = isUndefined;
25964 function isRegExp(re) {
25965 return isObject(re) && objectToString(re) === '[object RegExp]';
25967 exports.isRegExp = isRegExp;
25969 function isObject(arg) {
25970 return typeof arg === 'object' && arg !== null;
25972 exports.isObject = isObject;
25974 function isDate(d) {
25975 return isObject(d) && objectToString(d) === '[object Date]';
25977 exports.isDate = isDate;
25979 function isError(e) {
25980 return isObject(e) &&
25981 (objectToString(e) === '[object Error]' || e instanceof Error);
25983 exports.isError = isError;
25985 function isFunction(arg) {
25986 return typeof arg === 'function';
25988 exports.isFunction = isFunction;
25990 function isPrimitive(arg) {
25991 return arg === null ||
25992 typeof arg === 'boolean' ||
25993 typeof arg === 'number' ||
25994 typeof arg === 'string' ||
25995 typeof arg === 'symbol' || // ES6 symbol
25996 typeof arg === 'undefined';
25998 exports.isPrimitive = isPrimitive;
26000 exports.isBuffer = require('./support/isBuffer');
26002 function objectToString(o) {
26003 return Object.prototype.toString.call(o);
26008 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
26012 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
26013 'Oct', 'Nov', 'Dec'];
26016 function timestamp() {
26017 var d = new Date();
26018 var time = [pad(d.getHours()),
26019 pad(d.getMinutes()),
26020 pad(d.getSeconds())].join(':');
26021 return [d.getDate(), months[d.getMonth()], time].join(' ');
26025 // log is just a thin wrapper to console.log that prepends a timestamp
26026 exports.log = function() {
26027 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
26032 * Inherit the prototype methods from one constructor into another.
26034 * The Function.prototype.inherits from lang.js rewritten as a standalone
26035 * function (not on Function.prototype). NOTE: If this file is to be loaded
26036 * during bootstrapping this function needs to be rewritten using some native
26037 * functions as prototype setup using normal JavaScript does not work as
26038 * expected during bootstrapping (see mirror.js in r114903).
26040 * @param {function} ctor Constructor function which needs to inherit the
26042 * @param {function} superCtor Constructor function to inherit prototype from.
26044 exports.inherits = require('inherits');
26046 exports._extend = function(origin, add) {
26047 // Don't do anything if add isn't an object
26048 if (!add || !isObject(add)) return origin;
26050 var keys = Object.keys(add);
26051 var i = keys.length;
26053 origin[keys[i]] = add[keys[i]];
26058 function hasOwnProperty(obj, prop) {
26059 return Object.prototype.hasOwnProperty.call(obj, prop);
26062 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
26063 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
26064 (function (Buffer){
26065 const createKeccakHash = require('keccak')
26066 const secp256k1 = require('secp256k1')
26067 const assert = require('assert')
26068 const rlp = require('rlp')
26069 const BN = require('bn.js')
26070 const createHash = require('create-hash')
26071 Object.assign(exports, require('ethjs-util'))
26074 * the max integer that this VM can handle (a ```BN```)
26075 * @var {BN} MAX_INTEGER
26077 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
26080 *
2^
256 (a ```BN```)
26081 * @var {BN} TWO_POW256
26083 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
26086 * SHA3-
256 hash of null (a ```String```)
26087 * @var {String} SHA3_NULL_S
26089 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
26092 * SHA3-
256 hash of null (a ```Buffer```)
26093 * @var {Buffer} SHA3_NULL
26095 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
26098 * SHA3-
256 of an RLP of an empty array (a ```String```)
26099 * @var {String} SHA3_RLP_ARRAY_S
26101 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
26104 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
26105 * @var {Buffer} SHA3_RLP_ARRAY
26107 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
26110 * SHA3-
256 hash of the RLP of null (a ```String```)
26111 * @var {String} SHA3_RLP_S
26113 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
26116 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
26117 * @var {Buffer} SHA3_RLP
26119 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
26122 * [`BN`](https://github.com/indutny/bn.js)
26128 * [`rlp`](https://github.com/ethereumjs/rlp)
26134 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
26137 exports.secp256k1 = secp256k1
26140 * Returns a buffer filled with
0s
26142 * @param {Number} bytes the number of bytes the buffer should be
26145 exports.zeros = function (bytes) {
26146 return Buffer.allocUnsafe(bytes).fill(
0)
26150 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26151 * Or it truncates the beginning if it exceeds.
26152 * @method lsetLength
26153 * @param {Buffer|Array} msg the value to pad
26154 * @param {Number} length the number of bytes the output should be
26155 * @param {Boolean} [right=false] whether to start padding form the left or right
26156 * @return {Buffer|Array}
26158 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
26159 var buf = exports.zeros(length)
26160 msg = exports.toBuffer(msg)
26162 if (msg.length < length) {
26166 return msg.slice(
0, length)
26168 if (msg.length < length) {
26169 msg.copy(buf, length - msg.length)
26172 return msg.slice(-length)
26177 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26178 * Or it truncates the beginning if it exceeds.
26179 * @param {Buffer|Array} msg the value to pad
26180 * @param {Number} length the number of bytes the output should be
26181 * @return {Buffer|Array}
26183 exports.setLengthRight = function (msg, length) {
26184 return exports.setLength(msg, length, true)
26188 * Trims leading zeros from a `Buffer` or an `Array`
26189 * @param {Buffer|Array|String} a
26190 * @return {Buffer|Array|String}
26192 exports.unpad = exports.stripZeros = function (a) {
26193 a = exports.stripHexPrefix(a)
26195 while (a.length
> 0 && first.toString() === '
0') {
26202 * 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.
26203 * @param {*} v the value
26205 exports.toBuffer = function (v) {
26206 if (!Buffer.isBuffer(v)) {
26207 if (Array.isArray(v)) {
26209 } else if (typeof v === 'string') {
26210 if (exports.isHexPrefixed(v)) {
26211 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
26215 } else if (typeof v === 'number') {
26216 v = exports.intToBuffer(v)
26217 } else if (v === null || v === undefined) {
26218 v = Buffer.allocUnsafe(
0)
26219 } else if (v.toArray) {
26220 // converts a BN to a Buffer
26221 v = Buffer.from(v.toArray())
26223 throw new Error('invalid type')
26230 * Converts a `Buffer` to a `Number`
26231 * @param {Buffer} buf
26233 * @throws If the input number exceeds
53 bits.
26235 exports.bufferToInt = function (buf) {
26236 return new BN(exports.toBuffer(buf)).toNumber()
26240 * Converts a `Buffer` into a hex `String`
26241 * @param {Buffer} buf
26244 exports.bufferToHex = function (buf) {
26245 buf = exports.toBuffer(buf)
26246 return '
0x' + buf.toString('hex')
26250 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
26251 * @param {Buffer} num
26254 exports.fromSigned = function (num) {
26255 return new BN(num).fromTwos(
256)
26259 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
26263 exports.toUnsigned = function (num) {
26264 return Buffer.from(num.toTwos(
256).toArray())
26268 * Creates SHA-
3 hash of the input
26269 * @param {Buffer|Array|String|Number} a the input data
26270 * @param {Number} [bits=
256] the SHA width
26273 exports.sha3 = function (a, bits) {
26274 a = exports.toBuffer(a)
26275 if (!bits) bits =
256
26277 return createKeccakHash('keccak' + bits).update(a).digest()
26281 * Creates SHA256 hash of the input
26282 * @param {Buffer|Array|String|Number} a the input data
26285 exports.sha256 = function (a) {
26286 a = exports.toBuffer(a)
26287 return createHash('sha256').update(a).digest()
26291 * Creates RIPEMD160 hash of the input
26292 * @param {Buffer|Array|String|Number} a the input data
26293 * @param {Boolean} padded whether it should be padded to
256 bits or not
26296 exports.ripemd160 = function (a, padded) {
26297 a = exports.toBuffer(a)
26298 var hash = createHash('rmd160').update(a).digest()
26299 if (padded === true) {
26300 return exports.setLength(hash,
32)
26307 * Creates SHA-
3 hash of the RLP encoded version of the input
26308 * @param {Buffer|Array|String|Number} a the input data
26311 exports.rlphash = function (a) {
26312 return exports.sha3(rlp.encode(a))
26316 * Checks if the private key satisfies the rules of the curve secp256k1.
26317 * @param {Buffer} privateKey
26318 * @return {Boolean}
26320 exports.isValidPrivate = function (privateKey) {
26321 return secp256k1.privateKeyVerify(privateKey)
26325 * Checks if the public key satisfies the rules of the curve secp256k1
26326 * and the requirements of Ethereum.
26327 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
26328 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26329 * @return {Boolean}
26331 exports.isValidPublic = function (publicKey, sanitize) {
26332 if (publicKey.length ===
64) {
26333 // Convert to SEC1 for secp256k1
26334 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
26341 return secp256k1.publicKeyVerify(publicKey)
26345 * Returns the ethereum address of a given public key.
26346 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
26347 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
26348 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26351 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
26352 pubKey = exports.toBuffer(pubKey)
26353 if (sanitize && (pubKey.length !==
64)) {
26354 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
26356 assert(pubKey.length ===
64)
26357 // Only take the lower
160bits of the hash
26358 return exports.sha3(pubKey).slice(-
20)
26362 * Returns the ethereum public key of a given private key
26363 * @param {Buffer} privateKey A private key must be
256 bits wide
26366 var privateToPublic = exports.privateToPublic = function (privateKey) {
26367 privateKey = exports.toBuffer(privateKey)
26368 // skip the type flag and use the X, Y points
26369 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
26373 * Converts a public key to the Ethereum format.
26374 * @param {Buffer} publicKey
26377 exports.importPublic = function (publicKey) {
26378 publicKey = exports.toBuffer(publicKey)
26379 if (publicKey.length !==
64) {
26380 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
26387 * @param {Buffer} msgHash
26388 * @param {Buffer} privateKey
26391 exports.ecsign = function (msgHash, privateKey) {
26392 var sig = secp256k1.sign(msgHash, privateKey)
26395 ret.r = sig.signature.slice(
0,
32)
26396 ret.s = sig.signature.slice(
32,
64)
26397 ret.v = sig.recovery +
27
26402 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
26403 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
26404 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
26405 * used to produce the signature.
26407 * @returns {Buffer} hash
26409 exports.hashPersonalMessage = function (message) {
26410 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
26411 return exports.sha3(Buffer.concat([prefix, message]))
26415 * ECDSA public key recovery from signature
26416 * @param {Buffer} msgHash
26417 * @param {Number} v
26418 * @param {Buffer} r
26419 * @param {Buffer} s
26420 * @return {Buffer} publicKey
26422 exports.ecrecover = function (msgHash, v, r, s) {
26423 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
26424 var recovery = v -
27
26425 if (recovery !==
0 && recovery !==
1) {
26426 throw new Error('Invalid signature v value')
26428 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
26429 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
26433 * Convert signature parameters into the format of `eth_sign` RPC method
26434 * @param {Number} v
26435 * @param {Buffer} r
26436 * @param {Buffer} s
26437 * @return {String} sig
26439 exports.toRpcSig = function (v, r, s) {
26440 // NOTE: with potential introduction of chainId this might need to be updated
26441 if (v !==
27 && v !==
28) {
26442 throw new Error('Invalid recovery id')
26445 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
26446 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
26447 return exports.bufferToHex(Buffer.concat([
26448 exports.setLengthLeft(r,
32),
26449 exports.setLengthLeft(s,
32),
26450 exports.toBuffer(v -
27)
26455 * Convert signature format of the `eth_sign` RPC method to signature parameters
26456 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
26457 * @param {String} sig
26460 exports.fromRpcSig = function (sig) {
26461 sig = exports.toBuffer(sig)
26463 // NOTE: with potential introduction of chainId this might need to be updated
26464 if (sig.length !==
65) {
26465 throw new Error('Invalid signature length')
26469 // support both versions of `eth_sign` responses
26476 r: sig.slice(
0,
32),
26477 s: sig.slice(
32,
64)
26482 * Returns the ethereum address of a given private key
26483 * @param {Buffer} privateKey A private key must be
256 bits wide
26486 exports.privateToAddress = function (privateKey) {
26487 return exports.publicToAddress(privateToPublic(privateKey))
26491 * Checks if the address is a valid. Accepts checksummed addresses too
26492 * @param {String} address
26493 * @return {Boolean}
26495 exports.isValidAddress = function (address) {
26496 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
26500 * Returns a checksummed address
26501 * @param {String} address
26504 exports.toChecksumAddress = function (address) {
26505 address = exports.stripHexPrefix(address).toLowerCase()
26506 var hash = exports.sha3(address).toString('hex')
26509 for (var i =
0; i < address.length; i++) {
26510 if (parseInt(hash[i],
16)
>=
8) {
26511 ret += address[i].toUpperCase()
26521 * Checks if the address is a valid checksummed address
26522 * @param {Buffer} address
26523 * @return {Boolean}
26525 exports.isValidChecksumAddress = function (address) {
26526 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
26530 * Generates an address of a newly created contract
26531 * @param {Buffer} from the address which is creating this new address
26532 * @param {Buffer} nonce the nonce of the from account
26535 exports.generateAddress = function (from, nonce) {
26536 from = exports.toBuffer(from)
26537 nonce = new BN(nonce)
26539 if (nonce.isZero()) {
26540 // in RLP we want to encode null in the case of zero nonce
26541 // read the RLP documentation for an answer if you dare
26544 nonce = Buffer.from(nonce.toArray())
26547 // Only take the lower
160bits of the hash
26548 return exports.rlphash([from, nonce]).slice(-
20)
26552 * Returns true if the supplied address belongs to a precompiled account
26553 * @param {Buffer|String} address
26554 * @return {Boolean}
26556 exports.isPrecompiled = function (address) {
26557 var a = exports.unpad(address)
26558 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
26562 * Adds
"0x" to a given `String` if it does not already start with
"0x"
26563 * @param {String} str
26566 exports.addHexPrefix = function (str) {
26567 if (typeof str !== 'string') {
26571 return exports.isHexPrefixed(str) ? str : '
0x' + str
26575 * Validate ECDSA signature
26576 * @method isValidSignature
26577 * @param {Buffer} v
26578 * @param {Buffer} r
26579 * @param {Buffer} s
26580 * @param {Boolean} [homestead=true]
26581 * @return {Boolean}
26584 exports.isValidSignature = function (v, r, s, homestead) {
26585 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
26586 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
26588 if (r.length !==
32 || s.length !==
32) {
26592 if (v !==
27 && v !==
28) {
26599 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
26603 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
26611 * Converts a `Buffer` or `Array` to JSON
26612 * @param {Buffer|Array} ba
26613 * @return {Array|String|null}
26615 exports.baToJSON = function (ba) {
26616 if (Buffer.isBuffer(ba)) {
26617 return '
0x' + ba.toString('hex')
26618 } else if (ba instanceof Array) {
26620 for (var i =
0; i < ba.length; i++) {
26621 array.push(exports.baToJSON(ba[i]))
26628 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
26629 * @param {Object} self the `Object` to define properties on
26630 * @param {Array} fields an array fields to define. Fields can contain:
26631 * * `name` - the name of the properties
26632 * * `length` - the number of bytes the field can have
26633 * * `allowLess` - if the field can be less than the length
26635 * @param {*} data data to be validated against the definitions
26637 exports.defineProperties = function (self, fields, data) {
26641 // attach the `toJSON`
26642 self.toJSON = function (label) {
26645 self._fields.forEach(function (field) {
26646 obj[field] = '
0x' + self[field].toString('hex')
26650 return exports.baToJSON(this.raw)
26653 self.serialize = function serialize () {
26654 return rlp.encode(self.raw)
26657 fields.forEach(function (field, i) {
26658 self._fields.push(field.name)
26659 function getter () {
26662 function setter (v) {
26663 v = exports.toBuffer(v)
26665 if (v.toString('hex') === '
00' && !field.allowZero) {
26666 v = Buffer.allocUnsafe(
0)
26669 if (field.allowLess && field.length) {
26670 v = exports.stripZeros(v)
26671 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
26672 } else if (!(field.allowZero && v.length ===
0) && field.length) {
26673 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
26679 Object.defineProperty(self, field.name, {
26681 configurable: true,
26686 if (field.default) {
26687 self[field.name] = field.default
26692 Object.defineProperty(self, field.alias, {
26694 configurable: true,
26701 // if the constuctor is passed data
26703 if (typeof data === 'string') {
26704 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
26707 if (Buffer.isBuffer(data)) {
26708 data = rlp.decode(data)
26711 if (Array.isArray(data)) {
26712 if (data.length
> self._fields.length) {
26713 throw (new Error('wrong number of fields in data'))
26716 // make sure all the items are buffers
26717 data.forEach(function (d, i) {
26718 self[self._fields[i]] = exports.toBuffer(d)
26720 } else if (typeof data === 'object') {
26721 const keys = Object.keys(data)
26722 fields.forEach(function (field) {
26723 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
26724 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
26727 throw new Error('invalid data')
26732 }).call(this,require("buffer").Buffer)
26733 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
26734 (function (Buffer){
26735 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
26736 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26737 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
26739 function check (buffer) {
26740 if (buffer.length <
8) return false
26741 if (buffer.length
> 72) return false
26742 if (buffer[
0] !==
0x30) return false
26743 if (buffer[
1] !== buffer.length -
2) return false
26744 if (buffer[
2] !==
0x02) return false
26746 var lenR = buffer[
3]
26747 if (lenR ===
0) return false
26748 if (
5 + lenR
>= buffer.length) return false
26749 if (buffer[
4 + lenR] !==
0x02) return false
26751 var lenS = buffer[
5 + lenR]
26752 if (lenS ===
0) return false
26753 if ((
6 + lenR + lenS) !== buffer.length) return false
26755 if (buffer[
4] &
0x80) return false
26756 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
26758 if (buffer[lenR +
6] &
0x80) return false
26759 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
26763 function decode (buffer) {
26764 if (buffer.length <
8) throw new Error('DER sequence length is too short')
26765 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
26766 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
26767 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
26768 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
26770 var lenR = buffer[
3]
26771 if (lenR ===
0) throw new Error('R length is zero')
26772 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
26773 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
26775 var lenS = buffer[
5 + lenR]
26776 if (lenS ===
0) throw new Error('S length is zero')
26777 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
26779 if (buffer[
4] &
0x80) throw new Error('R value is negative')
26780 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
26782 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
26783 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
26785 // non-BIP66 - extract R, S values
26787 r: buffer.slice(
4,
4 + lenR),
26788 s: buffer.slice(
6 + lenR)
26793 * Expects r and s to be positive DER integers.
26795 * The DER format uses the most significant bit as a sign bit (&
0x80).
26796 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
26811 *
62300 =
> 0x00f35c
26812 * -
62300 =
> 0xff0ca4
26814 function encode (r, s) {
26815 var lenR = r.length
26816 var lenS = s.length
26817 if (lenR ===
0) throw new Error('R length is zero')
26818 if (lenS ===
0) throw new Error('S length is zero')
26819 if (lenR
> 33) throw new Error('R length is too long')
26820 if (lenS
> 33) throw new Error('S length is too long')
26821 if (r[
0] &
0x80) throw new Error('R value is negative')
26822 if (s[
0] &
0x80) throw new Error('S value is negative')
26823 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
26824 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
26826 var signature = new Buffer(
6 + lenR + lenS)
26828 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26829 signature[
0] =
0x30
26830 signature[
1] = signature.length -
2
26831 signature[
2] =
0x02
26832 signature[
3] = r.length
26833 r.copy(signature,
4)
26834 signature[
4 + lenR] =
0x02
26835 signature[
5 + lenR] = s.length
26836 s.copy(signature,
6 + lenR)
26847 }).call(this,require(
"buffer").Buffer)
26848 },{
"buffer":
5}],
33:[function(require,module,exports){
26849 (function (module, exports) {
26853 function assert (val, msg) {
26854 if (!val) throw new Error(msg || 'Assertion failed');
26857 // Could use `inherits` module, but don't want to move from single file
26858 // architecture yet.
26859 function inherits (ctor, superCtor) {
26860 ctor.super_ = superCtor;
26861 var TempCtor = function () {};
26862 TempCtor.prototype = superCtor.prototype;
26863 ctor.prototype = new TempCtor();
26864 ctor.prototype.constructor = ctor;
26869 function BN (number, base, endian) {
26870 if (BN.isBN(number)) {
26878 // Reduction context
26881 if (number !== null) {
26882 if (base === 'le' || base === 'be') {
26887 this._init(number ||
0, base ||
10, endian || 'be');
26890 if (typeof module === 'object') {
26891 module.exports = BN;
26901 Buffer = require('buf' + 'fer').Buffer;
26905 BN.isBN = function isBN (num) {
26906 if (num instanceof BN) {
26910 return num !== null && typeof num === 'object' &&
26911 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
26914 BN.max = function max (left, right) {
26915 if (left.cmp(right)
> 0) return left;
26919 BN.min = function min (left, right) {
26920 if (left.cmp(right) <
0) return left;
26924 BN.prototype._init = function init (number, base, endian) {
26925 if (typeof number === 'number') {
26926 return this._initNumber(number, base, endian);
26929 if (typeof number === 'object') {
26930 return this._initArray(number, base, endian);
26933 if (base === 'hex') {
26936 assert(base === (base |
0) && base
>=
2 && base <=
36);
26938 number = number.toString().replace(/\s+/g, '');
26940 if (number[
0] === '-') {
26945 this._parseHex(number, start);
26947 this._parseBase(number, base, start);
26950 if (number[
0] === '-') {
26956 if (endian !== 'le') return;
26958 this._initArray(this.toArray(), base, endian);
26961 BN.prototype._initNumber = function _initNumber (number, base, endian) {
26966 if (number <
0x4000000) {
26967 this.words = [ number &
0x3ffffff ];
26969 } else if (number <
0x10000000000000) {
26971 number &
0x3ffffff,
26972 (number /
0x4000000) &
0x3ffffff
26976 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
26978 number &
0x3ffffff,
26979 (number /
0x4000000) &
0x3ffffff,
26985 if (endian !== 'le') return;
26987 // Reverse the bytes
26988 this._initArray(this.toArray(), base, endian);
26991 BN.prototype._initArray = function _initArray (number, base, endian) {
26992 // Perhaps a Uint8Array
26993 assert(typeof number.length === 'number');
26994 if (number.length <=
0) {
26995 this.words = [
0 ];
27000 this.length = Math.ceil(number.length /
3);
27001 this.words = new Array(this.length);
27002 for (var i =
0; i < this.length; i++) {
27008 if (endian === 'be') {
27009 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
27010 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
27011 this.words[j] |= (w << off) &
0x3ffffff;
27012 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27019 } else if (endian === 'le') {
27020 for (i =
0, j =
0; i < number.length; i +=
3) {
27021 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
27022 this.words[j] |= (w << off) &
0x3ffffff;
27023 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27031 return this.strip();
27034 function parseHex (str, start, end) {
27036 var len = Math.min(str.length, end);
27037 for (var i = start; i < len; i++) {
27038 var c = str.charCodeAt(i) -
48;
27043 if (c
>=
49 && c <=
54) {
27047 } else if (c
>=
17 && c <=
22) {
27058 BN.prototype._parseHex = function _parseHex (number, start) {
27059 // Create possibly bigger array to ensure that it fits the number
27060 this.length = Math.ceil((number.length - start) /
6);
27061 this.words = new Array(this.length);
27062 for (var i =
0; i < this.length; i++) {
27067 // Scan
24-bit chunks and add them to the number
27069 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
27070 w = parseHex(number, i, i +
6);
27071 this.words[j] |= (w << off) &
0x3ffffff;
27072 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
27073 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27080 if (i +
6 !== start) {
27081 w = parseHex(number, start, i +
6);
27082 this.words[j] |= (w << off) &
0x3ffffff;
27083 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27088 function parseBase (str, start, end, mul) {
27090 var len = Math.min(str.length, end);
27091 for (var i = start; i < len; i++) {
27092 var c = str.charCodeAt(i) -
48;
27101 } else if (c
>=
17) {
27112 BN.prototype._parseBase = function _parseBase (number, base, start) {
27113 // Initialize as zero
27114 this.words = [
0 ];
27117 // Find length of limb in base
27118 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
27122 limbPow = (limbPow / base) |
0;
27124 var total = number.length - start;
27125 var mod = total % limbLen;
27126 var end = Math.min(total, total - mod) + start;
27129 for (var i = start; i < end; i += limbLen) {
27130 word = parseBase(number, i, i + limbLen, base);
27132 this.imuln(limbPow);
27133 if (this.words[
0] + word <
0x4000000) {
27134 this.words[
0] += word;
27142 word = parseBase(number, i, number.length, base);
27144 for (i =
0; i < mod; i++) {
27149 if (this.words[
0] + word <
0x4000000) {
27150 this.words[
0] += word;
27157 BN.prototype.copy = function copy (dest) {
27158 dest.words = new Array(this.length);
27159 for (var i =
0; i < this.length; i++) {
27160 dest.words[i] = this.words[i];
27162 dest.length = this.length;
27163 dest.negative = this.negative;
27164 dest.red = this.red;
27167 BN.prototype.clone = function clone () {
27168 var r = new BN(null);
27173 BN.prototype._expand = function _expand (size) {
27174 while (this.length < size) {
27175 this.words[this.length++] =
0;
27180 // Remove leading `
0` from `this`
27181 BN.prototype.strip = function strip () {
27182 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
27185 return this._normSign();
27188 BN.prototype._normSign = function _normSign () {
27190 if (this.length ===
1 && this.words[
0] ===
0) {
27196 BN.prototype.inspect = function inspect () {
27197 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
27203 var groupSizes = [];
27204 var groupBases = [];
27208 while (++i < BN.wordSize) {
27217 while (++base <
36 +
1) {
27220 while (groupBase < (
1 << BN.wordSize) / base) {
27224 groupSizes[base] = groupSize;
27225 groupBases[base] = groupBase;
27247 '
0000000000000000',
27248 '
00000000000000000',
27249 '
000000000000000000',
27250 '
0000000000000000000',
27251 '
00000000000000000000',
27252 '
000000000000000000000',
27253 '
0000000000000000000000',
27254 '
00000000000000000000000',
27255 '
000000000000000000000000',
27256 '
0000000000000000000000000'
27261 25,
16,
12,
11,
10,
9,
8,
27262 8,
7,
7,
7,
7,
6,
6,
27263 6,
6,
6,
6,
6,
5,
5,
27264 5,
5,
5,
5,
5,
5,
5,
27265 5,
5,
5,
5,
5,
5,
5
27270 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
27271 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
27272 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
27273 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
27274 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
27277 BN.prototype.toString = function toString (base, padding) {
27279 padding = padding |
0 ||
1;
27282 if (base ===
16 || base === 'hex') {
27286 for (var i =
0; i < this.length; i++) {
27287 var w = this.words[i];
27288 var word = (((w << off) | carry) &
0xffffff).toString(
16);
27289 carry = (w
>>> (
24 - off)) &
0xffffff;
27290 if (carry !==
0 || i !== this.length -
1) {
27291 out = zeros[
6 - word.length] + word + out;
27302 out = carry.toString(
16) + out;
27304 while (out.length % padding !==
0) {
27307 if (this.negative !==
0) {
27313 if (base === (base |
0) && base
>=
2 && base <=
36) {
27314 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
27315 var groupSize = groupSizes[base];
27316 // var groupBase = Math.pow(base, groupSize);
27317 var groupBase = groupBases[base];
27319 var c = this.clone();
27321 while (!c.isZero()) {
27322 var r = c.modn(groupBase).toString(base);
27323 c = c.idivn(groupBase);
27326 out = zeros[groupSize - r.length] + r + out;
27331 if (this.isZero()) {
27334 while (out.length % padding !==
0) {
27337 if (this.negative !==
0) {
27343 assert(false, 'Base should be between
2 and
36');
27346 BN.prototype.toNumber = function toNumber () {
27347 var ret = this.words[
0];
27348 if (this.length ===
2) {
27349 ret += this.words[
1] *
0x4000000;
27350 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
27351 // NOTE: at this stage it is known that the top bit is set
27352 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
27353 } else if (this.length
> 2) {
27354 assert(false, 'Number can only safely store up to
53 bits');
27356 return (this.negative !==
0) ? -ret : ret;
27359 BN.prototype.toJSON = function toJSON () {
27360 return this.toString(
16);
27363 BN.prototype.toBuffer = function toBuffer (endian, length) {
27364 assert(typeof Buffer !== 'undefined');
27365 return this.toArrayLike(Buffer, endian, length);
27368 BN.prototype.toArray = function toArray (endian, length) {
27369 return this.toArrayLike(Array, endian, length);
27372 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
27373 var byteLength = this.byteLength();
27374 var reqLength = length || Math.max(
1, byteLength);
27375 assert(byteLength <= reqLength, 'byte array longer than desired length');
27376 assert(reqLength
> 0, 'Requested array length <=
0');
27379 var littleEndian = endian === 'le';
27380 var res = new ArrayType(reqLength);
27383 var q = this.clone();
27384 if (!littleEndian) {
27385 // Assume big-endian
27386 for (i =
0; i < reqLength - byteLength; i++) {
27390 for (i =
0; !q.isZero(); i++) {
27394 res[reqLength - i -
1] = b;
27397 for (i =
0; !q.isZero(); i++) {
27404 for (; i < reqLength; i++) {
27413 BN.prototype._countBits = function _countBits (w) {
27414 return
32 - Math.clz32(w);
27417 BN.prototype._countBits = function _countBits (w) {
27440 BN.prototype._zeroBits = function _zeroBits (w) {
27442 if (w ===
0) return
26;
27446 if ((t &
0x1fff) ===
0) {
27450 if ((t &
0x7f) ===
0) {
27454 if ((t &
0xf) ===
0) {
27458 if ((t &
0x3) ===
0) {
27462 if ((t &
0x1) ===
0) {
27468 // Return number of used bits in a BN
27469 BN.prototype.bitLength = function bitLength () {
27470 var w = this.words[this.length -
1];
27471 var hi = this._countBits(w);
27472 return (this.length -
1) *
26 + hi;
27475 function toBitArray (num) {
27476 var w = new Array(num.bitLength());
27478 for (var bit =
0; bit < w.length; bit++) {
27479 var off = (bit /
26) |
0;
27480 var wbit = bit %
26;
27482 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
27488 // Number of trailing zero bits
27489 BN.prototype.zeroBits = function zeroBits () {
27490 if (this.isZero()) return
0;
27493 for (var i =
0; i < this.length; i++) {
27494 var b = this._zeroBits(this.words[i]);
27496 if (b !==
26) break;
27501 BN.prototype.byteLength = function byteLength () {
27502 return Math.ceil(this.bitLength() /
8);
27505 BN.prototype.toTwos = function toTwos (width) {
27506 if (this.negative !==
0) {
27507 return this.abs().inotn(width).iaddn(
1);
27509 return this.clone();
27512 BN.prototype.fromTwos = function fromTwos (width) {
27513 if (this.testn(width -
1)) {
27514 return this.notn(width).iaddn(
1).ineg();
27516 return this.clone();
27519 BN.prototype.isNeg = function isNeg () {
27520 return this.negative !==
0;
27523 // Return negative clone of `this`
27524 BN.prototype.neg = function neg () {
27525 return this.clone().ineg();
27528 BN.prototype.ineg = function ineg () {
27529 if (!this.isZero()) {
27530 this.negative ^=
1;
27536 // Or `num` with `this` in-place
27537 BN.prototype.iuor = function iuor (num) {
27538 while (this.length < num.length) {
27539 this.words[this.length++] =
0;
27542 for (var i =
0; i < num.length; i++) {
27543 this.words[i] = this.words[i] | num.words[i];
27546 return this.strip();
27549 BN.prototype.ior = function ior (num) {
27550 assert((this.negative | num.negative) ===
0);
27551 return this.iuor(num);
27554 // Or `num` with `this`
27555 BN.prototype.or = function or (num) {
27556 if (this.length
> num.length) return this.clone().ior(num);
27557 return num.clone().ior(this);
27560 BN.prototype.uor = function uor (num) {
27561 if (this.length
> num.length) return this.clone().iuor(num);
27562 return num.clone().iuor(this);
27565 // And `num` with `this` in-place
27566 BN.prototype.iuand = function iuand (num) {
27567 // b = min-length(num, this)
27569 if (this.length
> num.length) {
27575 for (var i =
0; i < b.length; i++) {
27576 this.words[i] = this.words[i] & num.words[i];
27579 this.length = b.length;
27581 return this.strip();
27584 BN.prototype.iand = function iand (num) {
27585 assert((this.negative | num.negative) ===
0);
27586 return this.iuand(num);
27589 // And `num` with `this`
27590 BN.prototype.and = function and (num) {
27591 if (this.length
> num.length) return this.clone().iand(num);
27592 return num.clone().iand(this);
27595 BN.prototype.uand = function uand (num) {
27596 if (this.length
> num.length) return this.clone().iuand(num);
27597 return num.clone().iuand(this);
27600 // Xor `num` with `this` in-place
27601 BN.prototype.iuxor = function iuxor (num) {
27602 // a.length
> b.length
27605 if (this.length
> num.length) {
27613 for (var i =
0; i < b.length; i++) {
27614 this.words[i] = a.words[i] ^ b.words[i];
27618 for (; i < a.length; i++) {
27619 this.words[i] = a.words[i];
27623 this.length = a.length;
27625 return this.strip();
27628 BN.prototype.ixor = function ixor (num) {
27629 assert((this.negative | num.negative) ===
0);
27630 return this.iuxor(num);
27633 // Xor `num` with `this`
27634 BN.prototype.xor = function xor (num) {
27635 if (this.length
> num.length) return this.clone().ixor(num);
27636 return num.clone().ixor(this);
27639 BN.prototype.uxor = function uxor (num) {
27640 if (this.length
> num.length) return this.clone().iuxor(num);
27641 return num.clone().iuxor(this);
27644 // Not ``this`` with ``width`` bitwidth
27645 BN.prototype.inotn = function inotn (width) {
27646 assert(typeof width === 'number' && width
>=
0);
27648 var bytesNeeded = Math.ceil(width /
26) |
0;
27649 var bitsLeft = width %
26;
27651 // Extend the buffer with leading zeroes
27652 this._expand(bytesNeeded);
27654 if (bitsLeft
> 0) {
27658 // Handle complete words
27659 for (var i =
0; i < bytesNeeded; i++) {
27660 this.words[i] = ~this.words[i] &
0x3ffffff;
27663 // Handle the residue
27664 if (bitsLeft
> 0) {
27665 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
27668 // And remove leading zeroes
27669 return this.strip();
27672 BN.prototype.notn = function notn (width) {
27673 return this.clone().inotn(width);
27676 // Set `bit` of `this`
27677 BN.prototype.setn = function setn (bit, val) {
27678 assert(typeof bit === 'number' && bit
>=
0);
27680 var off = (bit /
26) |
0;
27681 var wbit = bit %
26;
27683 this._expand(off +
1);
27686 this.words[off] = this.words[off] | (
1 << wbit);
27688 this.words[off] = this.words[off] & ~(
1 << wbit);
27691 return this.strip();
27694 // Add `num` to `this` in-place
27695 BN.prototype.iadd = function iadd (num) {
27698 // negative + positive
27699 if (this.negative !==
0 && num.negative ===
0) {
27701 r = this.isub(num);
27702 this.negative ^=
1;
27703 return this._normSign();
27705 // positive + negative
27706 } else if (this.negative ===
0 && num.negative !==
0) {
27708 r = this.isub(num);
27710 return r._normSign();
27713 // a.length
> b.length
27715 if (this.length
> num.length) {
27724 for (var i =
0; i < b.length; i++) {
27725 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
27726 this.words[i] = r &
0x3ffffff;
27729 for (; carry !==
0 && i < a.length; i++) {
27730 r = (a.words[i] |
0) + carry;
27731 this.words[i] = r &
0x3ffffff;
27735 this.length = a.length;
27737 this.words[this.length] = carry;
27739 // Copy the rest of the words
27740 } else if (a !== this) {
27741 for (; i < a.length; i++) {
27742 this.words[i] = a.words[i];
27749 // Add `num` to `this`
27750 BN.prototype.add = function add (num) {
27752 if (num.negative !==
0 && this.negative ===
0) {
27754 res = this.sub(num);
27757 } else if (num.negative ===
0 && this.negative !==
0) {
27759 res = num.sub(this);
27764 if (this.length
> num.length) return this.clone().iadd(num);
27766 return num.clone().iadd(this);
27769 // Subtract `num` from `this` in-place
27770 BN.prototype.isub = function isub (num) {
27771 // this - (-num) = this + num
27772 if (num.negative !==
0) {
27774 var r = this.iadd(num);
27776 return r._normSign();
27778 // -this - num = -(this + num)
27779 } else if (this.negative !==
0) {
27783 return this._normSign();
27786 // At this point both numbers are positive
27787 var cmp = this.cmp(num);
27789 // Optimization - zeroify
27808 for (var i =
0; i < b.length; i++) {
27809 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
27811 this.words[i] = r &
0x3ffffff;
27813 for (; carry !==
0 && i < a.length; i++) {
27814 r = (a.words[i] |
0) + carry;
27816 this.words[i] = r &
0x3ffffff;
27819 // Copy rest of the words
27820 if (carry ===
0 && i < a.length && a !== this) {
27821 for (; i < a.length; i++) {
27822 this.words[i] = a.words[i];
27826 this.length = Math.max(this.length, i);
27832 return this.strip();
27835 // Subtract `num` from `this`
27836 BN.prototype.sub = function sub (num) {
27837 return this.clone().isub(num);
27840 function smallMulTo (self, num, out) {
27841 out.negative = num.negative ^ self.negative;
27842 var len = (self.length + num.length) |
0;
27844 len = (len -
1) |
0;
27846 // Peel one iteration (compiler can't do it, because of code complexity)
27847 var a = self.words[
0] |
0;
27848 var b = num.words[
0] |
0;
27851 var lo = r &
0x3ffffff;
27852 var carry = (r /
0x4000000) |
0;
27855 for (var k =
1; k < len; k++) {
27856 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
27857 // note that ncarry could be
>=
0x3ffffff
27858 var ncarry = carry
>>> 26;
27859 var rword = carry &
0x3ffffff;
27860 var maxJ = Math.min(k, num.length -
1);
27861 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
27862 var i = (k - j) |
0;
27863 a = self.words[i] |
0;
27864 b = num.words[j] |
0;
27866 ncarry += (r /
0x4000000) |
0;
27867 rword = r &
0x3ffffff;
27869 out.words[k] = rword |
0;
27870 carry = ncarry |
0;
27873 out.words[k] = carry |
0;
27878 return out.strip();
27881 // TODO(indutny): it may be reasonable to omit it for users who don't need
27882 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
27883 // multiplication (like elliptic secp256k1).
27884 var comb10MulTo = function comb10MulTo (self, num, out) {
27885 var a = self.words;
27893 var al0 = a0 &
0x1fff;
27894 var ah0 = a0
>>> 13;
27896 var al1 = a1 &
0x1fff;
27897 var ah1 = a1
>>> 13;
27899 var al2 = a2 &
0x1fff;
27900 var ah2 = a2
>>> 13;
27902 var al3 = a3 &
0x1fff;
27903 var ah3 = a3
>>> 13;
27905 var al4 = a4 &
0x1fff;
27906 var ah4 = a4
>>> 13;
27908 var al5 = a5 &
0x1fff;
27909 var ah5 = a5
>>> 13;
27911 var al6 = a6 &
0x1fff;
27912 var ah6 = a6
>>> 13;
27914 var al7 = a7 &
0x1fff;
27915 var ah7 = a7
>>> 13;
27917 var al8 = a8 &
0x1fff;
27918 var ah8 = a8
>>> 13;
27920 var al9 = a9 &
0x1fff;
27921 var ah9 = a9
>>> 13;
27923 var bl0 = b0 &
0x1fff;
27924 var bh0 = b0
>>> 13;
27926 var bl1 = b1 &
0x1fff;
27927 var bh1 = b1
>>> 13;
27929 var bl2 = b2 &
0x1fff;
27930 var bh2 = b2
>>> 13;
27932 var bl3 = b3 &
0x1fff;
27933 var bh3 = b3
>>> 13;
27935 var bl4 = b4 &
0x1fff;
27936 var bh4 = b4
>>> 13;
27938 var bl5 = b5 &
0x1fff;
27939 var bh5 = b5
>>> 13;
27941 var bl6 = b6 &
0x1fff;
27942 var bh6 = b6
>>> 13;
27944 var bl7 = b7 &
0x1fff;
27945 var bh7 = b7
>>> 13;
27947 var bl8 = b8 &
0x1fff;
27948 var bh8 = b8
>>> 13;
27950 var bl9 = b9 &
0x1fff;
27951 var bh9 = b9
>>> 13;
27953 out.negative = self.negative ^ num.negative;
27956 lo = Math.imul(al0, bl0);
27957 mid = Math.imul(al0, bh0);
27958 mid = (mid + Math.imul(ah0, bl0)) |
0;
27959 hi = Math.imul(ah0, bh0);
27960 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27961 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
27964 lo = Math.imul(al1, bl0);
27965 mid = Math.imul(al1, bh0);
27966 mid = (mid + Math.imul(ah1, bl0)) |
0;
27967 hi = Math.imul(ah1, bh0);
27968 lo = (lo + Math.imul(al0, bl1)) |
0;
27969 mid = (mid + Math.imul(al0, bh1)) |
0;
27970 mid = (mid + Math.imul(ah0, bl1)) |
0;
27971 hi = (hi + Math.imul(ah0, bh1)) |
0;
27972 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27973 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
27976 lo = Math.imul(al2, bl0);
27977 mid = Math.imul(al2, bh0);
27978 mid = (mid + Math.imul(ah2, bl0)) |
0;
27979 hi = Math.imul(ah2, bh0);
27980 lo = (lo + Math.imul(al1, bl1)) |
0;
27981 mid = (mid + Math.imul(al1, bh1)) |
0;
27982 mid = (mid + Math.imul(ah1, bl1)) |
0;
27983 hi = (hi + Math.imul(ah1, bh1)) |
0;
27984 lo = (lo + Math.imul(al0, bl2)) |
0;
27985 mid = (mid + Math.imul(al0, bh2)) |
0;
27986 mid = (mid + Math.imul(ah0, bl2)) |
0;
27987 hi = (hi + Math.imul(ah0, bh2)) |
0;
27988 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
27989 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
27992 lo = Math.imul(al3, bl0);
27993 mid = Math.imul(al3, bh0);
27994 mid = (mid + Math.imul(ah3, bl0)) |
0;
27995 hi = Math.imul(ah3, bh0);
27996 lo = (lo + Math.imul(al2, bl1)) |
0;
27997 mid = (mid + Math.imul(al2, bh1)) |
0;
27998 mid = (mid + Math.imul(ah2, bl1)) |
0;
27999 hi = (hi + Math.imul(ah2, bh1)) |
0;
28000 lo = (lo + Math.imul(al1, bl2)) |
0;
28001 mid = (mid + Math.imul(al1, bh2)) |
0;
28002 mid = (mid + Math.imul(ah1, bl2)) |
0;
28003 hi = (hi + Math.imul(ah1, bh2)) |
0;
28004 lo = (lo + Math.imul(al0, bl3)) |
0;
28005 mid = (mid + Math.imul(al0, bh3)) |
0;
28006 mid = (mid + Math.imul(ah0, bl3)) |
0;
28007 hi = (hi + Math.imul(ah0, bh3)) |
0;
28008 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28009 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
28012 lo = Math.imul(al4, bl0);
28013 mid = Math.imul(al4, bh0);
28014 mid = (mid + Math.imul(ah4, bl0)) |
0;
28015 hi = Math.imul(ah4, bh0);
28016 lo = (lo + Math.imul(al3, bl1)) |
0;
28017 mid = (mid + Math.imul(al3, bh1)) |
0;
28018 mid = (mid + Math.imul(ah3, bl1)) |
0;
28019 hi = (hi + Math.imul(ah3, bh1)) |
0;
28020 lo = (lo + Math.imul(al2, bl2)) |
0;
28021 mid = (mid + Math.imul(al2, bh2)) |
0;
28022 mid = (mid + Math.imul(ah2, bl2)) |
0;
28023 hi = (hi + Math.imul(ah2, bh2)) |
0;
28024 lo = (lo + Math.imul(al1, bl3)) |
0;
28025 mid = (mid + Math.imul(al1, bh3)) |
0;
28026 mid = (mid + Math.imul(ah1, bl3)) |
0;
28027 hi = (hi + Math.imul(ah1, bh3)) |
0;
28028 lo = (lo + Math.imul(al0, bl4)) |
0;
28029 mid = (mid + Math.imul(al0, bh4)) |
0;
28030 mid = (mid + Math.imul(ah0, bl4)) |
0;
28031 hi = (hi + Math.imul(ah0, bh4)) |
0;
28032 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28033 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
28036 lo = Math.imul(al5, bl0);
28037 mid = Math.imul(al5, bh0);
28038 mid = (mid + Math.imul(ah5, bl0)) |
0;
28039 hi = Math.imul(ah5, bh0);
28040 lo = (lo + Math.imul(al4, bl1)) |
0;
28041 mid = (mid + Math.imul(al4, bh1)) |
0;
28042 mid = (mid + Math.imul(ah4, bl1)) |
0;
28043 hi = (hi + Math.imul(ah4, bh1)) |
0;
28044 lo = (lo + Math.imul(al3, bl2)) |
0;
28045 mid = (mid + Math.imul(al3, bh2)) |
0;
28046 mid = (mid + Math.imul(ah3, bl2)) |
0;
28047 hi = (hi + Math.imul(ah3, bh2)) |
0;
28048 lo = (lo + Math.imul(al2, bl3)) |
0;
28049 mid = (mid + Math.imul(al2, bh3)) |
0;
28050 mid = (mid + Math.imul(ah2, bl3)) |
0;
28051 hi = (hi + Math.imul(ah2, bh3)) |
0;
28052 lo = (lo + Math.imul(al1, bl4)) |
0;
28053 mid = (mid + Math.imul(al1, bh4)) |
0;
28054 mid = (mid + Math.imul(ah1, bl4)) |
0;
28055 hi = (hi + Math.imul(ah1, bh4)) |
0;
28056 lo = (lo + Math.imul(al0, bl5)) |
0;
28057 mid = (mid + Math.imul(al0, bh5)) |
0;
28058 mid = (mid + Math.imul(ah0, bl5)) |
0;
28059 hi = (hi + Math.imul(ah0, bh5)) |
0;
28060 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28061 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
28064 lo = Math.imul(al6, bl0);
28065 mid = Math.imul(al6, bh0);
28066 mid = (mid + Math.imul(ah6, bl0)) |
0;
28067 hi = Math.imul(ah6, bh0);
28068 lo = (lo + Math.imul(al5, bl1)) |
0;
28069 mid = (mid + Math.imul(al5, bh1)) |
0;
28070 mid = (mid + Math.imul(ah5, bl1)) |
0;
28071 hi = (hi + Math.imul(ah5, bh1)) |
0;
28072 lo = (lo + Math.imul(al4, bl2)) |
0;
28073 mid = (mid + Math.imul(al4, bh2)) |
0;
28074 mid = (mid + Math.imul(ah4, bl2)) |
0;
28075 hi = (hi + Math.imul(ah4, bh2)) |
0;
28076 lo = (lo + Math.imul(al3, bl3)) |
0;
28077 mid = (mid + Math.imul(al3, bh3)) |
0;
28078 mid = (mid + Math.imul(ah3, bl3)) |
0;
28079 hi = (hi + Math.imul(ah3, bh3)) |
0;
28080 lo = (lo + Math.imul(al2, bl4)) |
0;
28081 mid = (mid + Math.imul(al2, bh4)) |
0;
28082 mid = (mid + Math.imul(ah2, bl4)) |
0;
28083 hi = (hi + Math.imul(ah2, bh4)) |
0;
28084 lo = (lo + Math.imul(al1, bl5)) |
0;
28085 mid = (mid + Math.imul(al1, bh5)) |
0;
28086 mid = (mid + Math.imul(ah1, bl5)) |
0;
28087 hi = (hi + Math.imul(ah1, bh5)) |
0;
28088 lo = (lo + Math.imul(al0, bl6)) |
0;
28089 mid = (mid + Math.imul(al0, bh6)) |
0;
28090 mid = (mid + Math.imul(ah0, bl6)) |
0;
28091 hi = (hi + Math.imul(ah0, bh6)) |
0;
28092 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28093 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
28096 lo = Math.imul(al7, bl0);
28097 mid = Math.imul(al7, bh0);
28098 mid = (mid + Math.imul(ah7, bl0)) |
0;
28099 hi = Math.imul(ah7, bh0);
28100 lo = (lo + Math.imul(al6, bl1)) |
0;
28101 mid = (mid + Math.imul(al6, bh1)) |
0;
28102 mid = (mid + Math.imul(ah6, bl1)) |
0;
28103 hi = (hi + Math.imul(ah6, bh1)) |
0;
28104 lo = (lo + Math.imul(al5, bl2)) |
0;
28105 mid = (mid + Math.imul(al5, bh2)) |
0;
28106 mid = (mid + Math.imul(ah5, bl2)) |
0;
28107 hi = (hi + Math.imul(ah5, bh2)) |
0;
28108 lo = (lo + Math.imul(al4, bl3)) |
0;
28109 mid = (mid + Math.imul(al4, bh3)) |
0;
28110 mid = (mid + Math.imul(ah4, bl3)) |
0;
28111 hi = (hi + Math.imul(ah4, bh3)) |
0;
28112 lo = (lo + Math.imul(al3, bl4)) |
0;
28113 mid = (mid + Math.imul(al3, bh4)) |
0;
28114 mid = (mid + Math.imul(ah3, bl4)) |
0;
28115 hi = (hi + Math.imul(ah3, bh4)) |
0;
28116 lo = (lo + Math.imul(al2, bl5)) |
0;
28117 mid = (mid + Math.imul(al2, bh5)) |
0;
28118 mid = (mid + Math.imul(ah2, bl5)) |
0;
28119 hi = (hi + Math.imul(ah2, bh5)) |
0;
28120 lo = (lo + Math.imul(al1, bl6)) |
0;
28121 mid = (mid + Math.imul(al1, bh6)) |
0;
28122 mid = (mid + Math.imul(ah1, bl6)) |
0;
28123 hi = (hi + Math.imul(ah1, bh6)) |
0;
28124 lo = (lo + Math.imul(al0, bl7)) |
0;
28125 mid = (mid + Math.imul(al0, bh7)) |
0;
28126 mid = (mid + Math.imul(ah0, bl7)) |
0;
28127 hi = (hi + Math.imul(ah0, bh7)) |
0;
28128 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28129 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
28132 lo = Math.imul(al8, bl0);
28133 mid = Math.imul(al8, bh0);
28134 mid = (mid + Math.imul(ah8, bl0)) |
0;
28135 hi = Math.imul(ah8, bh0);
28136 lo = (lo + Math.imul(al7, bl1)) |
0;
28137 mid = (mid + Math.imul(al7, bh1)) |
0;
28138 mid = (mid + Math.imul(ah7, bl1)) |
0;
28139 hi = (hi + Math.imul(ah7, bh1)) |
0;
28140 lo = (lo + Math.imul(al6, bl2)) |
0;
28141 mid = (mid + Math.imul(al6, bh2)) |
0;
28142 mid = (mid + Math.imul(ah6, bl2)) |
0;
28143 hi = (hi + Math.imul(ah6, bh2)) |
0;
28144 lo = (lo + Math.imul(al5, bl3)) |
0;
28145 mid = (mid + Math.imul(al5, bh3)) |
0;
28146 mid = (mid + Math.imul(ah5, bl3)) |
0;
28147 hi = (hi + Math.imul(ah5, bh3)) |
0;
28148 lo = (lo + Math.imul(al4, bl4)) |
0;
28149 mid = (mid + Math.imul(al4, bh4)) |
0;
28150 mid = (mid + Math.imul(ah4, bl4)) |
0;
28151 hi = (hi + Math.imul(ah4, bh4)) |
0;
28152 lo = (lo + Math.imul(al3, bl5)) |
0;
28153 mid = (mid + Math.imul(al3, bh5)) |
0;
28154 mid = (mid + Math.imul(ah3, bl5)) |
0;
28155 hi = (hi + Math.imul(ah3, bh5)) |
0;
28156 lo = (lo + Math.imul(al2, bl6)) |
0;
28157 mid = (mid + Math.imul(al2, bh6)) |
0;
28158 mid = (mid + Math.imul(ah2, bl6)) |
0;
28159 hi = (hi + Math.imul(ah2, bh6)) |
0;
28160 lo = (lo + Math.imul(al1, bl7)) |
0;
28161 mid = (mid + Math.imul(al1, bh7)) |
0;
28162 mid = (mid + Math.imul(ah1, bl7)) |
0;
28163 hi = (hi + Math.imul(ah1, bh7)) |
0;
28164 lo = (lo + Math.imul(al0, bl8)) |
0;
28165 mid = (mid + Math.imul(al0, bh8)) |
0;
28166 mid = (mid + Math.imul(ah0, bl8)) |
0;
28167 hi = (hi + Math.imul(ah0, bh8)) |
0;
28168 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28169 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
28172 lo = Math.imul(al9, bl0);
28173 mid = Math.imul(al9, bh0);
28174 mid = (mid + Math.imul(ah9, bl0)) |
0;
28175 hi = Math.imul(ah9, bh0);
28176 lo = (lo + Math.imul(al8, bl1)) |
0;
28177 mid = (mid + Math.imul(al8, bh1)) |
0;
28178 mid = (mid + Math.imul(ah8, bl1)) |
0;
28179 hi = (hi + Math.imul(ah8, bh1)) |
0;
28180 lo = (lo + Math.imul(al7, bl2)) |
0;
28181 mid = (mid + Math.imul(al7, bh2)) |
0;
28182 mid = (mid + Math.imul(ah7, bl2)) |
0;
28183 hi = (hi + Math.imul(ah7, bh2)) |
0;
28184 lo = (lo + Math.imul(al6, bl3)) |
0;
28185 mid = (mid + Math.imul(al6, bh3)) |
0;
28186 mid = (mid + Math.imul(ah6, bl3)) |
0;
28187 hi = (hi + Math.imul(ah6, bh3)) |
0;
28188 lo = (lo + Math.imul(al5, bl4)) |
0;
28189 mid = (mid + Math.imul(al5, bh4)) |
0;
28190 mid = (mid + Math.imul(ah5, bl4)) |
0;
28191 hi = (hi + Math.imul(ah5, bh4)) |
0;
28192 lo = (lo + Math.imul(al4, bl5)) |
0;
28193 mid = (mid + Math.imul(al4, bh5)) |
0;
28194 mid = (mid + Math.imul(ah4, bl5)) |
0;
28195 hi = (hi + Math.imul(ah4, bh5)) |
0;
28196 lo = (lo + Math.imul(al3, bl6)) |
0;
28197 mid = (mid + Math.imul(al3, bh6)) |
0;
28198 mid = (mid + Math.imul(ah3, bl6)) |
0;
28199 hi = (hi + Math.imul(ah3, bh6)) |
0;
28200 lo = (lo + Math.imul(al2, bl7)) |
0;
28201 mid = (mid + Math.imul(al2, bh7)) |
0;
28202 mid = (mid + Math.imul(ah2, bl7)) |
0;
28203 hi = (hi + Math.imul(ah2, bh7)) |
0;
28204 lo = (lo + Math.imul(al1, bl8)) |
0;
28205 mid = (mid + Math.imul(al1, bh8)) |
0;
28206 mid = (mid + Math.imul(ah1, bl8)) |
0;
28207 hi = (hi + Math.imul(ah1, bh8)) |
0;
28208 lo = (lo + Math.imul(al0, bl9)) |
0;
28209 mid = (mid + Math.imul(al0, bh9)) |
0;
28210 mid = (mid + Math.imul(ah0, bl9)) |
0;
28211 hi = (hi + Math.imul(ah0, bh9)) |
0;
28212 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28213 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
28216 lo = Math.imul(al9, bl1);
28217 mid = Math.imul(al9, bh1);
28218 mid = (mid + Math.imul(ah9, bl1)) |
0;
28219 hi = Math.imul(ah9, bh1);
28220 lo = (lo + Math.imul(al8, bl2)) |
0;
28221 mid = (mid + Math.imul(al8, bh2)) |
0;
28222 mid = (mid + Math.imul(ah8, bl2)) |
0;
28223 hi = (hi + Math.imul(ah8, bh2)) |
0;
28224 lo = (lo + Math.imul(al7, bl3)) |
0;
28225 mid = (mid + Math.imul(al7, bh3)) |
0;
28226 mid = (mid + Math.imul(ah7, bl3)) |
0;
28227 hi = (hi + Math.imul(ah7, bh3)) |
0;
28228 lo = (lo + Math.imul(al6, bl4)) |
0;
28229 mid = (mid + Math.imul(al6, bh4)) |
0;
28230 mid = (mid + Math.imul(ah6, bl4)) |
0;
28231 hi = (hi + Math.imul(ah6, bh4)) |
0;
28232 lo = (lo + Math.imul(al5, bl5)) |
0;
28233 mid = (mid + Math.imul(al5, bh5)) |
0;
28234 mid = (mid + Math.imul(ah5, bl5)) |
0;
28235 hi = (hi + Math.imul(ah5, bh5)) |
0;
28236 lo = (lo + Math.imul(al4, bl6)) |
0;
28237 mid = (mid + Math.imul(al4, bh6)) |
0;
28238 mid = (mid + Math.imul(ah4, bl6)) |
0;
28239 hi = (hi + Math.imul(ah4, bh6)) |
0;
28240 lo = (lo + Math.imul(al3, bl7)) |
0;
28241 mid = (mid + Math.imul(al3, bh7)) |
0;
28242 mid = (mid + Math.imul(ah3, bl7)) |
0;
28243 hi = (hi + Math.imul(ah3, bh7)) |
0;
28244 lo = (lo + Math.imul(al2, bl8)) |
0;
28245 mid = (mid + Math.imul(al2, bh8)) |
0;
28246 mid = (mid + Math.imul(ah2, bl8)) |
0;
28247 hi = (hi + Math.imul(ah2, bh8)) |
0;
28248 lo = (lo + Math.imul(al1, bl9)) |
0;
28249 mid = (mid + Math.imul(al1, bh9)) |
0;
28250 mid = (mid + Math.imul(ah1, bl9)) |
0;
28251 hi = (hi + Math.imul(ah1, bh9)) |
0;
28252 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28253 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
28256 lo = Math.imul(al9, bl2);
28257 mid = Math.imul(al9, bh2);
28258 mid = (mid + Math.imul(ah9, bl2)) |
0;
28259 hi = Math.imul(ah9, bh2);
28260 lo = (lo + Math.imul(al8, bl3)) |
0;
28261 mid = (mid + Math.imul(al8, bh3)) |
0;
28262 mid = (mid + Math.imul(ah8, bl3)) |
0;
28263 hi = (hi + Math.imul(ah8, bh3)) |
0;
28264 lo = (lo + Math.imul(al7, bl4)) |
0;
28265 mid = (mid + Math.imul(al7, bh4)) |
0;
28266 mid = (mid + Math.imul(ah7, bl4)) |
0;
28267 hi = (hi + Math.imul(ah7, bh4)) |
0;
28268 lo = (lo + Math.imul(al6, bl5)) |
0;
28269 mid = (mid + Math.imul(al6, bh5)) |
0;
28270 mid = (mid + Math.imul(ah6, bl5)) |
0;
28271 hi = (hi + Math.imul(ah6, bh5)) |
0;
28272 lo = (lo + Math.imul(al5, bl6)) |
0;
28273 mid = (mid + Math.imul(al5, bh6)) |
0;
28274 mid = (mid + Math.imul(ah5, bl6)) |
0;
28275 hi = (hi + Math.imul(ah5, bh6)) |
0;
28276 lo = (lo + Math.imul(al4, bl7)) |
0;
28277 mid = (mid + Math.imul(al4, bh7)) |
0;
28278 mid = (mid + Math.imul(ah4, bl7)) |
0;
28279 hi = (hi + Math.imul(ah4, bh7)) |
0;
28280 lo = (lo + Math.imul(al3, bl8)) |
0;
28281 mid = (mid + Math.imul(al3, bh8)) |
0;
28282 mid = (mid + Math.imul(ah3, bl8)) |
0;
28283 hi = (hi + Math.imul(ah3, bh8)) |
0;
28284 lo = (lo + Math.imul(al2, bl9)) |
0;
28285 mid = (mid + Math.imul(al2, bh9)) |
0;
28286 mid = (mid + Math.imul(ah2, bl9)) |
0;
28287 hi = (hi + Math.imul(ah2, bh9)) |
0;
28288 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28289 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
28292 lo = Math.imul(al9, bl3);
28293 mid = Math.imul(al9, bh3);
28294 mid = (mid + Math.imul(ah9, bl3)) |
0;
28295 hi = Math.imul(ah9, bh3);
28296 lo = (lo + Math.imul(al8, bl4)) |
0;
28297 mid = (mid + Math.imul(al8, bh4)) |
0;
28298 mid = (mid + Math.imul(ah8, bl4)) |
0;
28299 hi = (hi + Math.imul(ah8, bh4)) |
0;
28300 lo = (lo + Math.imul(al7, bl5)) |
0;
28301 mid = (mid + Math.imul(al7, bh5)) |
0;
28302 mid = (mid + Math.imul(ah7, bl5)) |
0;
28303 hi = (hi + Math.imul(ah7, bh5)) |
0;
28304 lo = (lo + Math.imul(al6, bl6)) |
0;
28305 mid = (mid + Math.imul(al6, bh6)) |
0;
28306 mid = (mid + Math.imul(ah6, bl6)) |
0;
28307 hi = (hi + Math.imul(ah6, bh6)) |
0;
28308 lo = (lo + Math.imul(al5, bl7)) |
0;
28309 mid = (mid + Math.imul(al5, bh7)) |
0;
28310 mid = (mid + Math.imul(ah5, bl7)) |
0;
28311 hi = (hi + Math.imul(ah5, bh7)) |
0;
28312 lo = (lo + Math.imul(al4, bl8)) |
0;
28313 mid = (mid + Math.imul(al4, bh8)) |
0;
28314 mid = (mid + Math.imul(ah4, bl8)) |
0;
28315 hi = (hi + Math.imul(ah4, bh8)) |
0;
28316 lo = (lo + Math.imul(al3, bl9)) |
0;
28317 mid = (mid + Math.imul(al3, bh9)) |
0;
28318 mid = (mid + Math.imul(ah3, bl9)) |
0;
28319 hi = (hi + Math.imul(ah3, bh9)) |
0;
28320 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28321 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
28324 lo = Math.imul(al9, bl4);
28325 mid = Math.imul(al9, bh4);
28326 mid = (mid + Math.imul(ah9, bl4)) |
0;
28327 hi = Math.imul(ah9, bh4);
28328 lo = (lo + Math.imul(al8, bl5)) |
0;
28329 mid = (mid + Math.imul(al8, bh5)) |
0;
28330 mid = (mid + Math.imul(ah8, bl5)) |
0;
28331 hi = (hi + Math.imul(ah8, bh5)) |
0;
28332 lo = (lo + Math.imul(al7, bl6)) |
0;
28333 mid = (mid + Math.imul(al7, bh6)) |
0;
28334 mid = (mid + Math.imul(ah7, bl6)) |
0;
28335 hi = (hi + Math.imul(ah7, bh6)) |
0;
28336 lo = (lo + Math.imul(al6, bl7)) |
0;
28337 mid = (mid + Math.imul(al6, bh7)) |
0;
28338 mid = (mid + Math.imul(ah6, bl7)) |
0;
28339 hi = (hi + Math.imul(ah6, bh7)) |
0;
28340 lo = (lo + Math.imul(al5, bl8)) |
0;
28341 mid = (mid + Math.imul(al5, bh8)) |
0;
28342 mid = (mid + Math.imul(ah5, bl8)) |
0;
28343 hi = (hi + Math.imul(ah5, bh8)) |
0;
28344 lo = (lo + Math.imul(al4, bl9)) |
0;
28345 mid = (mid + Math.imul(al4, bh9)) |
0;
28346 mid = (mid + Math.imul(ah4, bl9)) |
0;
28347 hi = (hi + Math.imul(ah4, bh9)) |
0;
28348 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28349 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
28352 lo = Math.imul(al9, bl5);
28353 mid = Math.imul(al9, bh5);
28354 mid = (mid + Math.imul(ah9, bl5)) |
0;
28355 hi = Math.imul(ah9, bh5);
28356 lo = (lo + Math.imul(al8, bl6)) |
0;
28357 mid = (mid + Math.imul(al8, bh6)) |
0;
28358 mid = (mid + Math.imul(ah8, bl6)) |
0;
28359 hi = (hi + Math.imul(ah8, bh6)) |
0;
28360 lo = (lo + Math.imul(al7, bl7)) |
0;
28361 mid = (mid + Math.imul(al7, bh7)) |
0;
28362 mid = (mid + Math.imul(ah7, bl7)) |
0;
28363 hi = (hi + Math.imul(ah7, bh7)) |
0;
28364 lo = (lo + Math.imul(al6, bl8)) |
0;
28365 mid = (mid + Math.imul(al6, bh8)) |
0;
28366 mid = (mid + Math.imul(ah6, bl8)) |
0;
28367 hi = (hi + Math.imul(ah6, bh8)) |
0;
28368 lo = (lo + Math.imul(al5, bl9)) |
0;
28369 mid = (mid + Math.imul(al5, bh9)) |
0;
28370 mid = (mid + Math.imul(ah5, bl9)) |
0;
28371 hi = (hi + Math.imul(ah5, bh9)) |
0;
28372 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28373 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
28376 lo = Math.imul(al9, bl6);
28377 mid = Math.imul(al9, bh6);
28378 mid = (mid + Math.imul(ah9, bl6)) |
0;
28379 hi = Math.imul(ah9, bh6);
28380 lo = (lo + Math.imul(al8, bl7)) |
0;
28381 mid = (mid + Math.imul(al8, bh7)) |
0;
28382 mid = (mid + Math.imul(ah8, bl7)) |
0;
28383 hi = (hi + Math.imul(ah8, bh7)) |
0;
28384 lo = (lo + Math.imul(al7, bl8)) |
0;
28385 mid = (mid + Math.imul(al7, bh8)) |
0;
28386 mid = (mid + Math.imul(ah7, bl8)) |
0;
28387 hi = (hi + Math.imul(ah7, bh8)) |
0;
28388 lo = (lo + Math.imul(al6, bl9)) |
0;
28389 mid = (mid + Math.imul(al6, bh9)) |
0;
28390 mid = (mid + Math.imul(ah6, bl9)) |
0;
28391 hi = (hi + Math.imul(ah6, bh9)) |
0;
28392 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28393 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
28396 lo = Math.imul(al9, bl7);
28397 mid = Math.imul(al9, bh7);
28398 mid = (mid + Math.imul(ah9, bl7)) |
0;
28399 hi = Math.imul(ah9, bh7);
28400 lo = (lo + Math.imul(al8, bl8)) |
0;
28401 mid = (mid + Math.imul(al8, bh8)) |
0;
28402 mid = (mid + Math.imul(ah8, bl8)) |
0;
28403 hi = (hi + Math.imul(ah8, bh8)) |
0;
28404 lo = (lo + Math.imul(al7, bl9)) |
0;
28405 mid = (mid + Math.imul(al7, bh9)) |
0;
28406 mid = (mid + Math.imul(ah7, bl9)) |
0;
28407 hi = (hi + Math.imul(ah7, bh9)) |
0;
28408 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28409 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
28412 lo = Math.imul(al9, bl8);
28413 mid = Math.imul(al9, bh8);
28414 mid = (mid + Math.imul(ah9, bl8)) |
0;
28415 hi = Math.imul(ah9, bh8);
28416 lo = (lo + Math.imul(al8, bl9)) |
0;
28417 mid = (mid + Math.imul(al8, bh9)) |
0;
28418 mid = (mid + Math.imul(ah8, bl9)) |
0;
28419 hi = (hi + Math.imul(ah8, bh9)) |
0;
28420 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28421 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
28424 lo = Math.imul(al9, bl9);
28425 mid = Math.imul(al9, bh9);
28426 mid = (mid + Math.imul(ah9, bl9)) |
0;
28427 hi = Math.imul(ah9, bh9);
28428 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28429 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
28459 comb10MulTo = smallMulTo;
28462 function bigMulTo (self, num, out) {
28463 out.negative = num.negative ^ self.negative;
28464 out.length = self.length + num.length;
28468 for (var k =
0; k < out.length -
1; k++) {
28469 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
28470 // note that ncarry could be
>=
0x3ffffff
28471 var ncarry = hncarry;
28473 var rword = carry &
0x3ffffff;
28474 var maxJ = Math.min(k, num.length -
1);
28475 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
28477 var a = self.words[i] |
0;
28478 var b = num.words[j] |
0;
28481 var lo = r &
0x3ffffff;
28482 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
28483 lo = (lo + rword) |
0;
28484 rword = lo &
0x3ffffff;
28485 ncarry = (ncarry + (lo
>>> 26)) |
0;
28487 hncarry += ncarry
>>> 26;
28488 ncarry &=
0x3ffffff;
28490 out.words[k] = rword;
28495 out.words[k] = carry;
28500 return out.strip();
28503 function jumboMulTo (self, num, out) {
28504 var fftm = new FFTM();
28505 return fftm.mulp(self, num, out);
28508 BN.prototype.mulTo = function mulTo (num, out) {
28510 var len = this.length + num.length;
28511 if (this.length ===
10 && num.length ===
10) {
28512 res = comb10MulTo(this, num, out);
28513 } else if (len <
63) {
28514 res = smallMulTo(this, num, out);
28515 } else if (len <
1024) {
28516 res = bigMulTo(this, num, out);
28518 res = jumboMulTo(this, num, out);
28524 // Cooley-Tukey algorithm for FFT
28525 // slightly revisited to rely on looping instead of recursion
28527 function FFTM (x, y) {
28532 FFTM.prototype.makeRBT = function makeRBT (N) {
28533 var t = new Array(N);
28534 var l = BN.prototype._countBits(N) -
1;
28535 for (var i =
0; i < N; i++) {
28536 t[i] = this.revBin(i, l, N);
28542 // Returns binary-reversed representation of `x`
28543 FFTM.prototype.revBin = function revBin (x, l, N) {
28544 if (x ===
0 || x === N -
1) return x;
28547 for (var i =
0; i < l; i++) {
28548 rb |= (x &
1) << (l - i -
1);
28555 // Performs "tweedling" phase, therefore 'emulating'
28556 // behaviour of the recursive algorithm
28557 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
28558 for (var i =
0; i < N; i++) {
28559 rtws[i] = rws[rbt[i]];
28560 itws[i] = iws[rbt[i]];
28564 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
28565 this.permute(rbt, rws, iws, rtws, itws, N);
28567 for (var s =
1; s < N; s <<=
1) {
28570 var rtwdf = Math.cos(
2 * Math.PI / l);
28571 var itwdf = Math.sin(
2 * Math.PI / l);
28573 for (var p =
0; p < N; p += l) {
28574 var rtwdf_ = rtwdf;
28575 var itwdf_ = itwdf;
28577 for (var j =
0; j < s; j++) {
28578 var re = rtws[p + j];
28579 var ie = itws[p + j];
28581 var ro = rtws[p + j + s];
28582 var io = itws[p + j + s];
28584 var rx = rtwdf_ * ro - itwdf_ * io;
28586 io = rtwdf_ * io + itwdf_ * ro;
28589 rtws[p + j] = re + ro;
28590 itws[p + j] = ie + io;
28592 rtws[p + j + s] = re - ro;
28593 itws[p + j + s] = ie - io;
28595 /* jshint maxdepth : false */
28597 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
28599 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
28607 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
28608 var N = Math.max(m, n) |
1;
28611 for (N = N /
2 |
0; N; N = N
>>> 1) {
28615 return
1 << i +
1 + odd;
28618 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
28619 if (N <=
1) return;
28621 for (var i =
0; i < N /
2; i++) {
28624 rws[i] = rws[N - i -
1];
28625 rws[N - i -
1] = t;
28629 iws[i] = -iws[N - i -
1];
28630 iws[N - i -
1] = -t;
28634 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
28636 for (var i =
0; i < N /
2; i++) {
28637 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
28638 Math.round(ws[
2 * i] / N) +
28641 ws[i] = w &
0x3ffffff;
28643 if (w <
0x4000000) {
28646 carry = w /
0x4000000 |
0;
28653 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
28655 for (var i =
0; i < len; i++) {
28656 carry = carry + (ws[i] |
0);
28658 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
28659 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
28663 for (i =
2 * len; i < N; ++i) {
28667 assert(carry ===
0);
28668 assert((carry & ~
0x1fff) ===
0);
28671 FFTM.prototype.stub = function stub (N) {
28672 var ph = new Array(N);
28673 for (var i =
0; i < N; i++) {
28680 FFTM.prototype.mulp = function mulp (x, y, out) {
28681 var N =
2 * this.guessLen13b(x.length, y.length);
28683 var rbt = this.makeRBT(N);
28685 var _ = this.stub(N);
28687 var rws = new Array(N);
28688 var rwst = new Array(N);
28689 var iwst = new Array(N);
28691 var nrws = new Array(N);
28692 var nrwst = new Array(N);
28693 var niwst = new Array(N);
28695 var rmws = out.words;
28698 this.convert13b(x.words, x.length, rws, N);
28699 this.convert13b(y.words, y.length, nrws, N);
28701 this.transform(rws, _, rwst, iwst, N, rbt);
28702 this.transform(nrws, _, nrwst, niwst, N, rbt);
28704 for (var i =
0; i < N; i++) {
28705 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
28706 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
28710 this.conjugate(rwst, iwst, N);
28711 this.transform(rwst, iwst, rmws, _, N, rbt);
28712 this.conjugate(rmws, _, N);
28713 this.normalize13b(rmws, N);
28715 out.negative = x.negative ^ y.negative;
28716 out.length = x.length + y.length;
28717 return out.strip();
28720 // Multiply `this` by `num`
28721 BN.prototype.mul = function mul (num) {
28722 var out = new BN(null);
28723 out.words = new Array(this.length + num.length);
28724 return this.mulTo(num, out);
28727 // Multiply employing FFT
28728 BN.prototype.mulf = function mulf (num) {
28729 var out = new BN(null);
28730 out.words = new Array(this.length + num.length);
28731 return jumboMulTo(this, num, out);
28734 // In-place Multiplication
28735 BN.prototype.imul = function imul (num) {
28736 return this.clone().mulTo(num, this);
28739 BN.prototype.imuln = function imuln (num) {
28740 assert(typeof num === 'number');
28741 assert(num <
0x4000000);
28745 for (var i =
0; i < this.length; i++) {
28746 var w = (this.words[i] |
0) * num;
28747 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
28749 carry += (w /
0x4000000) |
0;
28750 // NOTE: lo is
27bit maximum
28751 carry += lo
>>> 26;
28752 this.words[i] = lo &
0x3ffffff;
28756 this.words[i] = carry;
28763 BN.prototype.muln = function muln (num) {
28764 return this.clone().imuln(num);
28768 BN.prototype.sqr = function sqr () {
28769 return this.mul(this);
28772 // `this` * `this` in-place
28773 BN.prototype.isqr = function isqr () {
28774 return this.imul(this.clone());
28777 // Math.pow(`this`, `num`)
28778 BN.prototype.pow = function pow (num) {
28779 var w = toBitArray(num);
28780 if (w.length ===
0) return new BN(
1);
28782 // Skip leading zeroes
28784 for (var i =
0; i < w.length; i++, res = res.sqr()) {
28785 if (w[i] !==
0) break;
28788 if (++i < w.length) {
28789 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
28790 if (w[i] ===
0) continue;
28799 // Shift-left in-place
28800 BN.prototype.iushln = function iushln (bits) {
28801 assert(typeof bits === 'number' && bits
>=
0);
28803 var s = (bits - r) /
26;
28804 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
28810 for (i =
0; i < this.length; i++) {
28811 var newCarry = this.words[i] & carryMask;
28812 var c = ((this.words[i] |
0) - newCarry) << r;
28813 this.words[i] = c | carry;
28814 carry = newCarry
>>> (
26 - r);
28818 this.words[i] = carry;
28824 for (i = this.length -
1; i
>=
0; i--) {
28825 this.words[i + s] = this.words[i];
28828 for (i =
0; i < s; i++) {
28835 return this.strip();
28838 BN.prototype.ishln = function ishln (bits) {
28839 // TODO(indutny): implement me
28840 assert(this.negative ===
0);
28841 return this.iushln(bits);
28844 // Shift-right in-place
28845 // NOTE: `hint` is a lowest bit before trailing zeroes
28846 // NOTE: if `extended` is present - it will be filled with destroyed bits
28847 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
28848 assert(typeof bits === 'number' && bits
>=
0);
28851 h = (hint - (hint %
26)) /
26;
28857 var s = Math.min((bits - r) /
26, this.length);
28858 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28859 var maskedWords = extended;
28862 h = Math.max(
0, h);
28864 // Extended mode, copy masked part
28866 for (var i =
0; i < s; i++) {
28867 maskedWords.words[i] = this.words[i];
28869 maskedWords.length = s;
28873 // No-op, we should not move anything at all
28874 } else if (this.length
> s) {
28876 for (i =
0; i < this.length; i++) {
28877 this.words[i] = this.words[i + s];
28885 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
28886 var word = this.words[i] |
0;
28887 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
28888 carry = word & mask;
28891 // Push carried bits as a mask
28892 if (maskedWords && carry !==
0) {
28893 maskedWords.words[maskedWords.length++] = carry;
28896 if (this.length ===
0) {
28901 return this.strip();
28904 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
28905 // TODO(indutny): implement me
28906 assert(this.negative ===
0);
28907 return this.iushrn(bits, hint, extended);
28911 BN.prototype.shln = function shln (bits) {
28912 return this.clone().ishln(bits);
28915 BN.prototype.ushln = function ushln (bits) {
28916 return this.clone().iushln(bits);
28920 BN.prototype.shrn = function shrn (bits) {
28921 return this.clone().ishrn(bits);
28924 BN.prototype.ushrn = function ushrn (bits) {
28925 return this.clone().iushrn(bits);
28928 // Test if n bit is set
28929 BN.prototype.testn = function testn (bit) {
28930 assert(typeof bit === 'number' && bit
>=
0);
28932 var s = (bit - r) /
26;
28935 // Fast case: bit is much higher than all existing words
28936 if (this.length <= s) return false;
28938 // Check bit and return
28939 var w = this.words[s];
28944 // Return only lowers bits of number (in-place)
28945 BN.prototype.imaskn = function imaskn (bits) {
28946 assert(typeof bits === 'number' && bits
>=
0);
28948 var s = (bits - r) /
26;
28950 assert(this.negative ===
0, 'imaskn works only with positive numbers');
28952 if (this.length <= s) {
28959 this.length = Math.min(s, this.length);
28962 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28963 this.words[this.length -
1] &= mask;
28966 return this.strip();
28969 // Return only lowers bits of number
28970 BN.prototype.maskn = function maskn (bits) {
28971 return this.clone().imaskn(bits);
28974 // Add plain number `num` to `this`
28975 BN.prototype.iaddn = function iaddn (num) {
28976 assert(typeof num === 'number');
28977 assert(num <
0x4000000);
28978 if (num <
0) return this.isubn(-num);
28980 // Possible sign change
28981 if (this.negative !==
0) {
28982 if (this.length ===
1 && (this.words[
0] |
0) < num) {
28983 this.words[
0] = num - (this.words[
0] |
0);
28994 // Add without checks
28995 return this._iaddn(num);
28998 BN.prototype._iaddn = function _iaddn (num) {
28999 this.words[
0] += num;
29002 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
29003 this.words[i] -=
0x4000000;
29004 if (i === this.length -
1) {
29005 this.words[i +
1] =
1;
29007 this.words[i +
1]++;
29010 this.length = Math.max(this.length, i +
1);
29015 // Subtract plain number `num` from `this`
29016 BN.prototype.isubn = function isubn (num) {
29017 assert(typeof num === 'number');
29018 assert(num <
0x4000000);
29019 if (num <
0) return this.iaddn(-num);
29021 if (this.negative !==
0) {
29028 this.words[
0] -= num;
29030 if (this.length ===
1 && this.words[
0] <
0) {
29031 this.words[
0] = -this.words[
0];
29035 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
29036 this.words[i] +=
0x4000000;
29037 this.words[i +
1] -=
1;
29041 return this.strip();
29044 BN.prototype.addn = function addn (num) {
29045 return this.clone().iaddn(num);
29048 BN.prototype.subn = function subn (num) {
29049 return this.clone().isubn(num);
29052 BN.prototype.iabs = function iabs () {
29058 BN.prototype.abs = function abs () {
29059 return this.clone().iabs();
29062 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
29063 var len = num.length + shift;
29070 for (i =
0; i < num.length; i++) {
29071 w = (this.words[i + shift] |
0) + carry;
29072 var right = (num.words[i] |
0) * mul;
29073 w -= right &
0x3ffffff;
29074 carry = (w
>> 26) - ((right /
0x4000000) |
0);
29075 this.words[i + shift] = w &
0x3ffffff;
29077 for (; i < this.length - shift; i++) {
29078 w = (this.words[i + shift] |
0) + carry;
29080 this.words[i + shift] = w &
0x3ffffff;
29083 if (carry ===
0) return this.strip();
29085 // Subtraction overflow
29086 assert(carry === -
1);
29088 for (i =
0; i < this.length; i++) {
29089 w = -(this.words[i] |
0) + carry;
29091 this.words[i] = w &
0x3ffffff;
29095 return this.strip();
29098 BN.prototype._wordDiv = function _wordDiv (num, mode) {
29099 var shift = this.length - num.length;
29101 var a = this.clone();
29105 var bhi = b.words[b.length -
1] |
0;
29106 var bhiBits = this._countBits(bhi);
29107 shift =
26 - bhiBits;
29109 b = b.ushln(shift);
29111 bhi = b.words[b.length -
1] |
0;
29114 // Initialize quotient
29115 var m = a.length - b.length;
29118 if (mode !== 'mod') {
29121 q.words = new Array(q.length);
29122 for (var i =
0; i < q.length; i++) {
29127 var diff = a.clone()._ishlnsubmul(b,
1, m);
29128 if (diff.negative ===
0) {
29135 for (var j = m -
1; j
>=
0; j--) {
29136 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
29137 (a.words[b.length + j -
1] |
0);
29139 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
29141 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
29143 a._ishlnsubmul(b, qj, j);
29144 while (a.negative !==
0) {
29147 a._ishlnsubmul(b,
1, j);
29162 if (mode !== 'div' && shift !==
0) {
29172 // NOTE:
1) `mode` can be set to `mod` to request mod only,
29173 // to `div` to request div only, or be absent to
29174 // request both div & mod
29175 //
2) `positive` is true if unsigned mod is requested
29176 BN.prototype.divmod = function divmod (num, mode, positive) {
29177 assert(!num.isZero());
29179 if (this.isZero()) {
29187 if (this.negative !==
0 && num.negative ===
0) {
29188 res = this.neg().divmod(num, mode);
29190 if (mode !== 'mod') {
29191 div = res.div.neg();
29194 if (mode !== 'div') {
29195 mod = res.mod.neg();
29196 if (positive && mod.negative !==
0) {
29207 if (this.negative ===
0 && num.negative !==
0) {
29208 res = this.divmod(num.neg(), mode);
29210 if (mode !== 'mod') {
29211 div = res.div.neg();
29220 if ((this.negative & num.negative) !==
0) {
29221 res = this.neg().divmod(num.neg(), mode);
29223 if (mode !== 'div') {
29224 mod = res.mod.neg();
29225 if (positive && mod.negative !==
0) {
29236 // Both numbers are positive at this point
29238 // Strip both numbers to approximate shift value
29239 if (num.length
> this.length || this.cmp(num) <
0) {
29246 // Very short reduction
29247 if (num.length ===
1) {
29248 if (mode === 'div') {
29250 div: this.divn(num.words[
0]),
29255 if (mode === 'mod') {
29258 mod: new BN(this.modn(num.words[
0]))
29263 div: this.divn(num.words[
0]),
29264 mod: new BN(this.modn(num.words[
0]))
29268 return this._wordDiv(num, mode);
29271 // Find `this` / `num`
29272 BN.prototype.div = function div (num) {
29273 return this.divmod(num, 'div', false).div;
29276 // Find `this` % `num`
29277 BN.prototype.mod = function mod (num) {
29278 return this.divmod(num, 'mod', false).mod;
29281 BN.prototype.umod = function umod (num) {
29282 return this.divmod(num, 'mod', true).mod;
29285 // Find Round(`this` / `num`)
29286 BN.prototype.divRound = function divRound (num) {
29287 var dm = this.divmod(num);
29289 // Fast case - exact division
29290 if (dm.mod.isZero()) return dm.div;
29292 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
29294 var half = num.ushrn(
1);
29295 var r2 = num.andln(
1);
29296 var cmp = mod.cmp(half);
29299 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
29302 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
29305 BN.prototype.modn = function modn (num) {
29306 assert(num <=
0x3ffffff);
29307 var p = (
1 <<
26) % num;
29310 for (var i = this.length -
1; i
>=
0; i--) {
29311 acc = (p * acc + (this.words[i] |
0)) % num;
29317 // In-place division by number
29318 BN.prototype.idivn = function idivn (num) {
29319 assert(num <=
0x3ffffff);
29322 for (var i = this.length -
1; i
>=
0; i--) {
29323 var w = (this.words[i] |
0) + carry *
0x4000000;
29324 this.words[i] = (w / num) |
0;
29328 return this.strip();
29331 BN.prototype.divn = function divn (num) {
29332 return this.clone().idivn(num);
29335 BN.prototype.egcd = function egcd (p) {
29336 assert(p.negative ===
0);
29337 assert(!p.isZero());
29342 if (x.negative !==
0) {
29348 // A * x + B * y = x
29352 // C * x + D * y = y
29358 while (x.isEven() && y.isEven()) {
29364 var yp = y.clone();
29365 var xp = x.clone();
29367 while (!x.isZero()) {
29368 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29372 if (A.isOdd() || B.isOdd()) {
29382 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29386 if (C.isOdd() || D.isOdd()) {
29396 if (x.cmp(y)
>=
0) {
29414 // This is reduced incarnation of the binary EEA
29415 // above, designated to invert members of the
29416 // _prime_ fields F(p) at a maximal speed
29417 BN.prototype._invmp = function _invmp (p) {
29418 assert(p.negative ===
0);
29419 assert(!p.isZero());
29424 if (a.negative !==
0) {
29430 var x1 = new BN(
1);
29431 var x2 = new BN(
0);
29433 var delta = b.clone();
29435 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
29436 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29448 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29460 if (a.cmp(b)
>=
0) {
29470 if (a.cmpn(
1) ===
0) {
29476 if (res.cmpn(
0) <
0) {
29483 BN.prototype.gcd = function gcd (num) {
29484 if (this.isZero()) return num.abs();
29485 if (num.isZero()) return this.abs();
29487 var a = this.clone();
29488 var b = num.clone();
29492 // Remove common factor of two
29493 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
29499 while (a.isEven()) {
29502 while (b.isEven()) {
29508 // Swap `a` and `b` to make `a` always bigger than `b`
29512 } else if (r ===
0 || b.cmpn(
1) ===
0) {
29519 return b.iushln(shift);
29522 // Invert number in the field F(num)
29523 BN.prototype.invm = function invm (num) {
29524 return this.egcd(num).a.umod(num);
29527 BN.prototype.isEven = function isEven () {
29528 return (this.words[
0] &
1) ===
0;
29531 BN.prototype.isOdd = function isOdd () {
29532 return (this.words[
0] &
1) ===
1;
29535 // And first word and num
29536 BN.prototype.andln = function andln (num) {
29537 return this.words[
0] & num;
29540 // Increment at the bit position in-line
29541 BN.prototype.bincn = function bincn (bit) {
29542 assert(typeof bit === 'number');
29544 var s = (bit - r) /
26;
29547 // Fast case: bit is much higher than all existing words
29548 if (this.length <= s) {
29549 this._expand(s +
1);
29550 this.words[s] |= q;
29554 // Add bit and propagate, if needed
29556 for (var i = s; carry !==
0 && i < this.length; i++) {
29557 var w = this.words[i] |
0;
29564 this.words[i] = carry;
29570 BN.prototype.isZero = function isZero () {
29571 return this.length ===
1 && this.words[
0] ===
0;
29574 BN.prototype.cmpn = function cmpn (num) {
29575 var negative = num <
0;
29577 if (this.negative !==
0 && !negative) return -
1;
29578 if (this.negative ===
0 && negative) return
1;
29583 if (this.length
> 1) {
29590 assert(num <=
0x3ffffff, 'Number is too big');
29592 var w = this.words[
0] |
0;
29593 res = w === num ?
0 : w < num ? -
1 :
1;
29595 if (this.negative !==
0) return -res |
0;
29599 // Compare two numbers and return:
29600 //
1 - if `this`
> `num`
29601 //
0 - if `this` == `num`
29602 // -
1 - if `this` < `num`
29603 BN.prototype.cmp = function cmp (num) {
29604 if (this.negative !==
0 && num.negative ===
0) return -
1;
29605 if (this.negative ===
0 && num.negative !==
0) return
1;
29607 var res = this.ucmp(num);
29608 if (this.negative !==
0) return -res |
0;
29612 // Unsigned comparison
29613 BN.prototype.ucmp = function ucmp (num) {
29614 // At this point both numbers have the same sign
29615 if (this.length
> num.length) return
1;
29616 if (this.length < num.length) return -
1;
29619 for (var i = this.length -
1; i
>=
0; i--) {
29620 var a = this.words[i] |
0;
29621 var b = num.words[i] |
0;
29623 if (a === b) continue;
29626 } else if (a
> b) {
29634 BN.prototype.gtn = function gtn (num) {
29635 return this.cmpn(num) ===
1;
29638 BN.prototype.gt = function gt (num) {
29639 return this.cmp(num) ===
1;
29642 BN.prototype.gten = function gten (num) {
29643 return this.cmpn(num)
>=
0;
29646 BN.prototype.gte = function gte (num) {
29647 return this.cmp(num)
>=
0;
29650 BN.prototype.ltn = function ltn (num) {
29651 return this.cmpn(num) === -
1;
29654 BN.prototype.lt = function lt (num) {
29655 return this.cmp(num) === -
1;
29658 BN.prototype.lten = function lten (num) {
29659 return this.cmpn(num) <=
0;
29662 BN.prototype.lte = function lte (num) {
29663 return this.cmp(num) <=
0;
29666 BN.prototype.eqn = function eqn (num) {
29667 return this.cmpn(num) ===
0;
29670 BN.prototype.eq = function eq (num) {
29671 return this.cmp(num) ===
0;
29675 // A reduce context, could be using montgomery or something better, depending
29676 // on the `m` itself.
29678 BN.red = function red (num) {
29679 return new Red(num);
29682 BN.prototype.toRed = function toRed (ctx) {
29683 assert(!this.red, 'Already a number in reduction context');
29684 assert(this.negative ===
0, 'red works only with positives');
29685 return ctx.convertTo(this)._forceRed(ctx);
29688 BN.prototype.fromRed = function fromRed () {
29689 assert(this.red, 'fromRed works only with numbers in reduction context');
29690 return this.red.convertFrom(this);
29693 BN.prototype._forceRed = function _forceRed (ctx) {
29698 BN.prototype.forceRed = function forceRed (ctx) {
29699 assert(!this.red, 'Already a number in reduction context');
29700 return this._forceRed(ctx);
29703 BN.prototype.redAdd = function redAdd (num) {
29704 assert(this.red, 'redAdd works only with red numbers');
29705 return this.red.add(this, num);
29708 BN.prototype.redIAdd = function redIAdd (num) {
29709 assert(this.red, 'redIAdd works only with red numbers');
29710 return this.red.iadd(this, num);
29713 BN.prototype.redSub = function redSub (num) {
29714 assert(this.red, 'redSub works only with red numbers');
29715 return this.red.sub(this, num);
29718 BN.prototype.redISub = function redISub (num) {
29719 assert(this.red, 'redISub works only with red numbers');
29720 return this.red.isub(this, num);
29723 BN.prototype.redShl = function redShl (num) {
29724 assert(this.red, 'redShl works only with red numbers');
29725 return this.red.shl(this, num);
29728 BN.prototype.redMul = function redMul (num) {
29729 assert(this.red, 'redMul works only with red numbers');
29730 this.red._verify2(this, num);
29731 return this.red.mul(this, num);
29734 BN.prototype.redIMul = function redIMul (num) {
29735 assert(this.red, 'redMul works only with red numbers');
29736 this.red._verify2(this, num);
29737 return this.red.imul(this, num);
29740 BN.prototype.redSqr = function redSqr () {
29741 assert(this.red, 'redSqr works only with red numbers');
29742 this.red._verify1(this);
29743 return this.red.sqr(this);
29746 BN.prototype.redISqr = function redISqr () {
29747 assert(this.red, 'redISqr works only with red numbers');
29748 this.red._verify1(this);
29749 return this.red.isqr(this);
29752 // Square root over p
29753 BN.prototype.redSqrt = function redSqrt () {
29754 assert(this.red, 'redSqrt works only with red numbers');
29755 this.red._verify1(this);
29756 return this.red.sqrt(this);
29759 BN.prototype.redInvm = function redInvm () {
29760 assert(this.red, 'redInvm works only with red numbers');
29761 this.red._verify1(this);
29762 return this.red.invm(this);
29765 // Return negative clone of `this` % `red modulo`
29766 BN.prototype.redNeg = function redNeg () {
29767 assert(this.red, 'redNeg works only with red numbers');
29768 this.red._verify1(this);
29769 return this.red.neg(this);
29772 BN.prototype.redPow = function redPow (num) {
29773 assert(this.red && !num.red, 'redPow(normalNum)');
29774 this.red._verify1(this);
29775 return this.red.pow(this, num);
29778 // Prime numbers with efficient reduction
29786 // Pseudo-Mersenne prime
29787 function MPrime (name, p) {
29790 this.p = new BN(p,
16);
29791 this.n = this.p.bitLength();
29792 this.k = new BN(
1).iushln(this.n).isub(this.p);
29794 this.tmp = this._tmp();
29797 MPrime.prototype._tmp = function _tmp () {
29798 var tmp = new BN(null);
29799 tmp.words = new Array(Math.ceil(this.n /
13));
29803 MPrime.prototype.ireduce = function ireduce (num) {
29804 // Assumes that `num` is less than `P^
2`
29805 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
29810 this.split(r, this.tmp);
29812 r = r.iadd(this.tmp);
29813 rlen = r.bitLength();
29814 } while (rlen
> this.n);
29816 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
29820 } else if (cmp
> 0) {
29829 MPrime.prototype.split = function split (input, out) {
29830 input.iushrn(this.n,
0, out);
29833 MPrime.prototype.imulK = function imulK (num) {
29834 return num.imul(this.k);
29841 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
29843 inherits(K256, MPrime);
29845 K256.prototype.split = function split (input, output) {
29846 //
256 =
9 *
26 +
22
29847 var mask =
0x3fffff;
29849 var outLen = Math.min(input.length,
9);
29850 for (var i =
0; i < outLen; i++) {
29851 output.words[i] = input.words[i];
29853 output.length = outLen;
29855 if (input.length <=
9) {
29856 input.words[
0] =
0;
29861 // Shift by
9 limbs
29862 var prev = input.words[
9];
29863 output.words[output.length++] = prev & mask;
29865 for (i =
10; i < input.length; i++) {
29866 var next = input.words[i] |
0;
29867 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
29871 input.words[i -
10] = prev;
29872 if (prev ===
0 && input.length
> 10) {
29873 input.length -=
10;
29879 K256.prototype.imulK = function imulK (num) {
29880 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
29881 num.words[num.length] =
0;
29882 num.words[num.length +
1] =
0;
29885 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
29887 for (var i =
0; i < num.length; i++) {
29888 var w = num.words[i] |
0;
29890 num.words[i] = lo &
0x3ffffff;
29891 lo = w *
0x40 + ((lo /
0x4000000) |
0);
29894 // Fast length reduction
29895 if (num.words[num.length -
1] ===
0) {
29897 if (num.words[num.length -
1] ===
0) {
29908 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
29910 inherits(P224, MPrime);
29916 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
29918 inherits(P192, MPrime);
29920 function P25519 () {
29925 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
29927 inherits(P25519, MPrime);
29929 P25519.prototype.imulK = function imulK (num) {
29932 for (var i =
0; i < num.length; i++) {
29933 var hi = (num.words[i] |
0) *
0x13 + carry;
29934 var lo = hi &
0x3ffffff;
29941 num.words[num.length++] = carry;
29946 // Exported mostly for testing purposes, use plain name instead
29947 BN._prime = function prime (name) {
29948 // Cached version of prime
29949 if (primes[name]) return primes[name];
29952 if (name === 'k256') {
29953 prime = new K256();
29954 } else if (name === 'p224') {
29955 prime = new P224();
29956 } else if (name === 'p192') {
29957 prime = new P192();
29958 } else if (name === 'p25519') {
29959 prime = new P25519();
29961 throw new Error('Unknown prime ' + name);
29963 primes[name] = prime;
29969 // Base reduction engine
29972 if (typeof m === 'string') {
29973 var prime = BN._prime(m);
29975 this.prime = prime;
29977 assert(m.gtn(
1), 'modulus must be greater than
1');
29983 Red.prototype._verify1 = function _verify1 (a) {
29984 assert(a.negative ===
0, 'red works only with positives');
29985 assert(a.red, 'red works only with red numbers');
29988 Red.prototype._verify2 = function _verify2 (a, b) {
29989 assert((a.negative | b.negative) ===
0, 'red works only with positives');
29990 assert(a.red && a.red === b.red,
29991 'red works only with red numbers');
29994 Red.prototype.imod = function imod (a) {
29995 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
29996 return a.umod(this.m)._forceRed(this);
29999 Red.prototype.neg = function neg (a) {
30004 return this.m.sub(a)._forceRed(this);
30007 Red.prototype.add = function add (a, b) {
30008 this._verify2(a, b);
30010 var res = a.add(b);
30011 if (res.cmp(this.m)
>=
0) {
30014 return res._forceRed(this);
30017 Red.prototype.iadd = function iadd (a, b) {
30018 this._verify2(a, b);
30020 var res = a.iadd(b);
30021 if (res.cmp(this.m)
>=
0) {
30027 Red.prototype.sub = function sub (a, b) {
30028 this._verify2(a, b);
30030 var res = a.sub(b);
30031 if (res.cmpn(
0) <
0) {
30034 return res._forceRed(this);
30037 Red.prototype.isub = function isub (a, b) {
30038 this._verify2(a, b);
30040 var res = a.isub(b);
30041 if (res.cmpn(
0) <
0) {
30047 Red.prototype.shl = function shl (a, num) {
30049 return this.imod(a.ushln(num));
30052 Red.prototype.imul = function imul (a, b) {
30053 this._verify2(a, b);
30054 return this.imod(a.imul(b));
30057 Red.prototype.mul = function mul (a, b) {
30058 this._verify2(a, b);
30059 return this.imod(a.mul(b));
30062 Red.prototype.isqr = function isqr (a) {
30063 return this.imul(a, a.clone());
30066 Red.prototype.sqr = function sqr (a) {
30067 return this.mul(a, a);
30070 Red.prototype.sqrt = function sqrt (a) {
30071 if (a.isZero()) return a.clone();
30073 var mod3 = this.m.andln(
3);
30074 assert(mod3 %
2 ===
1);
30078 var pow = this.m.add(new BN(
1)).iushrn(
2);
30079 return this.pow(a, pow);
30082 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
30084 // Find Q and S, that Q *
2 ^ S = (P -
1)
30085 var q = this.m.subn(
1);
30087 while (!q.isZero() && q.andln(
1) ===
0) {
30091 assert(!q.isZero());
30093 var one = new BN(
1).toRed(this);
30094 var nOne = one.redNeg();
30096 // Find quadratic non-residue
30097 // NOTE: Max is such because of generalized Riemann hypothesis.
30098 var lpow = this.m.subn(
1).iushrn(
1);
30099 var z = this.m.bitLength();
30100 z = new BN(
2 * z * z).toRed(this);
30102 while (this.pow(z, lpow).cmp(nOne) !==
0) {
30106 var c = this.pow(z, q);
30107 var r = this.pow(a, q.addn(
1).iushrn(
1));
30108 var t = this.pow(a, q);
30110 while (t.cmp(one) !==
0) {
30112 for (var i =
0; tmp.cmp(one) !==
0; i++) {
30113 tmp = tmp.redSqr();
30116 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
30127 Red.prototype.invm = function invm (a) {
30128 var inv = a._invmp(this.m);
30129 if (inv.negative !==
0) {
30131 return this.imod(inv).redNeg();
30133 return this.imod(inv);
30137 Red.prototype.pow = function pow (a, num) {
30138 if (num.isZero()) return new BN(
1);
30139 if (num.cmpn(
1) ===
0) return a.clone();
30141 var windowSize =
4;
30142 var wnd = new Array(
1 << windowSize);
30143 wnd[
0] = new BN(
1).toRed(this);
30145 for (var i =
2; i < wnd.length; i++) {
30146 wnd[i] = this.mul(wnd[i -
1], a);
30151 var currentLen =
0;
30152 var start = num.bitLength() %
26;
30157 for (i = num.length -
1; i
>=
0; i--) {
30158 var word = num.words[i];
30159 for (var j = start -
1; j
>=
0; j--) {
30160 var bit = (word
>> j) &
1;
30161 if (res !== wnd[
0]) {
30162 res = this.sqr(res);
30165 if (bit ===
0 && current ===
0) {
30173 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
30175 res = this.mul(res, wnd[current]);
30185 Red.prototype.convertTo = function convertTo (num) {
30186 var r = num.umod(this.m);
30188 return r === num ? r.clone() : r;
30191 Red.prototype.convertFrom = function convertFrom (num) {
30192 var res = num.clone();
30198 // Montgomery method engine
30201 BN.mont = function mont (num) {
30202 return new Mont(num);
30205 function Mont (m) {
30208 this.shift = this.m.bitLength();
30209 if (this.shift %
26 !==
0) {
30210 this.shift +=
26 - (this.shift %
26);
30213 this.r = new BN(
1).iushln(this.shift);
30214 this.r2 = this.imod(this.r.sqr());
30215 this.rinv = this.r._invmp(this.m);
30217 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
30218 this.minv = this.minv.umod(this.r);
30219 this.minv = this.r.sub(this.minv);
30221 inherits(Mont, Red);
30223 Mont.prototype.convertTo = function convertTo (num) {
30224 return this.imod(num.ushln(this.shift));
30227 Mont.prototype.convertFrom = function convertFrom (num) {
30228 var r = this.imod(num.mul(this.rinv));
30233 Mont.prototype.imul = function imul (a, b) {
30234 if (a.isZero() || b.isZero()) {
30241 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30242 var u = t.isub(c).iushrn(this.shift);
30245 if (u.cmp(this.m)
>=
0) {
30246 res = u.isub(this.m);
30247 } else if (u.cmpn(
0) <
0) {
30248 res = u.iadd(this.m);
30251 return res._forceRed(this);
30254 Mont.prototype.mul = function mul (a, b) {
30255 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
30258 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30259 var u = t.isub(c).iushrn(this.shift);
30261 if (u.cmp(this.m)
>=
0) {
30262 res = u.isub(this.m);
30263 } else if (u.cmpn(
0) <
0) {
30264 res = u.iadd(this.m);
30267 return res._forceRed(this);
30270 Mont.prototype.invm = function invm (a) {
30271 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
30272 var res = this.imod(a._invmp(this.m).mul(this.r2));
30273 return res._forceRed(this);
30275 })(typeof module === 'undefined' || module, this);
30277 },{}],
34:[function(require,module,exports){
30280 module.exports = function rand(len) {
30282 r = new Rand(null);
30284 return r.generate(len);
30287 function Rand(rand) {
30290 module.exports.Rand = Rand;
30292 Rand.prototype.generate = function generate(len) {
30293 return this._rand(len);
30296 if (typeof self === 'object') {
30297 if (self.crypto && self.crypto.getRandomValues) {
30299 Rand.prototype._rand = function _rand(n) {
30300 var arr = new Uint8Array(n);
30301 self.crypto.getRandomValues(arr);
30304 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
30306 Rand.prototype._rand = function _rand(n) {
30307 var arr = new Uint8Array(n);
30308 self.msCrypto.getRandomValues(arr);
30313 Rand.prototype._rand = function() {
30314 throw new Error('Not implemented yet');
30318 // Node.js or Web worker with no crypto support
30320 var crypto = require('crypto');
30322 Rand.prototype._rand = function _rand(n) {
30323 return crypto.randomBytes(n);
30326 // Emulate crypto API using randy
30327 Rand.prototype._rand = function _rand(n) {
30328 var res = new Uint8Array(n);
30329 for (var i =
0; i < res.length; i++)
30330 res[i] = this.rand.getByte();
30336 },{"crypto":
3}],
35:[function(require,module,exports){
30337 (function (Buffer){
30338 var Transform = require('stream').Transform
30339 var inherits = require('inherits')
30340 var StringDecoder = require('string_decoder').StringDecoder
30341 module.exports = CipherBase
30342 inherits(CipherBase, Transform)
30343 function CipherBase (hashMode) {
30344 Transform.call(this)
30345 this.hashMode = typeof hashMode === 'string'
30346 if (this.hashMode) {
30347 this[hashMode] = this._finalOrDigest
30349 this.final = this._finalOrDigest
30351 this._decoder = null
30352 this._encoding = null
30354 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
30355 if (typeof data === 'string') {
30356 data = new Buffer(data, inputEnc)
30358 var outData = this._update(data)
30359 if (this.hashMode) {
30363 outData = this._toString(outData, outputEnc)
30368 CipherBase.prototype.setAutoPadding = function () {}
30370 CipherBase.prototype.getAuthTag = function () {
30371 throw new Error('trying to get auth tag in unsupported state')
30374 CipherBase.prototype.setAuthTag = function () {
30375 throw new Error('trying to set auth tag in unsupported state')
30378 CipherBase.prototype.setAAD = function () {
30379 throw new Error('trying to set aad in unsupported state')
30382 CipherBase.prototype._transform = function (data, _, next) {
30385 if (this.hashMode) {
30388 this.push(this._update(data))
30396 CipherBase.prototype._flush = function (done) {
30399 this.push(this._final())
30406 CipherBase.prototype._finalOrDigest = function (outputEnc) {
30407 var outData = this._final() || new Buffer('')
30409 outData = this._toString(outData, outputEnc, true)
30414 CipherBase.prototype._toString = function (value, enc, fin) {
30415 if (!this._decoder) {
30416 this._decoder = new StringDecoder(enc)
30417 this._encoding = enc
30419 if (this._encoding !== enc) {
30420 throw new Error('can\'t switch encodings')
30422 var out = this._decoder.write(value)
30424 out += this._decoder.end()
30429 }).call(this,require("buffer").Buffer)
30430 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
30431 (function (Buffer){
30433 var inherits = require('inherits')
30434 var md5 = require('./md5')
30435 var rmd160 = require('ripemd160')
30436 var sha = require('sha.js')
30438 var Base = require('cipher-base')
30440 function HashNoConstructor(hash) {
30441 Base.call(this, 'digest')
30447 inherits(HashNoConstructor, Base)
30449 HashNoConstructor.prototype._update = function (data) {
30450 this.buffers.push(data)
30453 HashNoConstructor.prototype._final = function () {
30454 var buf = Buffer.concat(this.buffers)
30455 var r = this._hash(buf)
30456 this.buffers = null
30461 function Hash(hash) {
30462 Base.call(this, 'digest')
30467 inherits(Hash, Base)
30469 Hash.prototype._update = function (data) {
30470 this._hash.update(data)
30473 Hash.prototype._final = function () {
30474 return this._hash.digest()
30477 module.exports = function createHash (alg) {
30478 alg = alg.toLowerCase()
30479 if ('md5' === alg) return new HashNoConstructor(md5)
30480 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
30482 return new Hash(sha(alg))
30485 }).call(this,require("buffer").Buffer)
30486 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
30487 (function (Buffer){
30490 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
30493 function toArray(buf, bigEndian) {
30494 if ((buf.length % intSize) !==
0) {
30495 var len = buf.length + (intSize - (buf.length % intSize));
30496 buf = Buffer.concat([buf, zeroBuffer], len);
30500 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
30501 for (var i =
0; i < buf.length; i += intSize) {
30502 arr.push(fn.call(buf, i));
30507 function toBuffer(arr, size, bigEndian) {
30508 var buf = new Buffer(size);
30509 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
30510 for (var i =
0; i < arr.length; i++) {
30511 fn.call(buf, arr[i], i *
4, true);
30516 function hash(buf, fn, hashSize, bigEndian) {
30517 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
30518 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
30519 return toBuffer(arr, hashSize, bigEndian);
30521 exports.hash = hash;
30522 }).call(this,require("buffer").Buffer)
30523 },{"buffer":
5}],
38:[function(require,module,exports){
30526 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
30527 * Digest Algorithm, as defined in RFC
1321.
30528 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
30529 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
30530 * Distributed under the BSD License
30531 * See http://pajhome.org.uk/crypt/md5 for more info.
30534 var helpers = require('./helpers');
30537 * Calculate the MD5 of an array of little-endian words, and a bit length
30539 function core_md5(x, len)
30541 /* append padding */
30542 x[len
>> 5] |=
0x80 << ((len) %
32);
30543 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
30545 var a =
1732584193;
30546 var b = -
271733879;
30547 var c = -
1732584194;
30550 for(var i =
0; i < x.length; i +=
16)
30557 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
30558 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
30559 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
30560 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
30561 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
30562 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
30563 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
30564 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
30565 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
30566 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
30567 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
30568 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
30569 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
30570 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
30571 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
30572 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
30574 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
30575 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
30576 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
30577 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
30578 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
30579 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
30580 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
30581 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
30582 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
30583 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
30584 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
30585 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
30586 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
30587 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
30588 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
30589 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
30591 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
30592 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
30593 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
30594 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
30595 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
30596 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
30597 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
30598 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
30599 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
30600 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
30601 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
30602 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
30603 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
30604 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
30605 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
30606 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
30608 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
30609 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
30610 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
30611 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
30612 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
30613 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
30614 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
30615 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
30616 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
30617 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
30618 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
30619 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
30620 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
30621 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
30622 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
30623 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
30625 a = safe_add(a, olda);
30626 b = safe_add(b, oldb);
30627 c = safe_add(c, oldc);
30628 d = safe_add(d, oldd);
30630 return Array(a, b, c, d);
30635 * These functions implement the four basic operations the algorithm uses.
30637 function md5_cmn(q, a, b, x, s, t)
30639 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
30641 function md5_ff(a, b, c, d, x, s, t)
30643 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
30645 function md5_gg(a, b, c, d, x, s, t)
30647 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
30649 function md5_hh(a, b, c, d, x, s, t)
30651 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30653 function md5_ii(a, b, c, d, x, s, t)
30655 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
30659 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
30660 * to work around bugs in some JS interpreters.
30662 function safe_add(x, y)
30664 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
30665 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
30666 return (msw <<
16) | (lsw &
0xFFFF);
30670 * Bitwise rotate a
32-bit number to the left.
30672 function bit_rol(num, cnt)
30674 return (num << cnt) | (num
>>> (
32 - cnt));
30677 module.exports = function md5(buf) {
30678 return helpers.hash(buf, core_md5,
16);
30680 },{"./helpers":
37}],
39:[function(require,module,exports){
30683 var elliptic = exports;
30685 elliptic.version = require('../package.json').version;
30686 elliptic.utils = require('./elliptic/utils');
30687 elliptic.rand = require('brorand');
30688 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
30689 elliptic.curve = require('./elliptic/curve');
30690 elliptic.curves = require('./elliptic/curves');
30693 elliptic.ec = require('./elliptic/ec');
30694 elliptic.eddsa = require('./elliptic/eddsa');
30696 },{"../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){
30699 var BN = require('bn.js');
30700 var elliptic = require('../../elliptic');
30701 var utils = elliptic.utils;
30702 var getNAF = utils.getNAF;
30703 var getJSF = utils.getJSF;
30704 var assert = utils.assert;
30706 function BaseCurve(type, conf) {
30708 this.p = new BN(conf.p,
16);
30710 // Use Montgomery, when there is no fast reduction for the prime
30711 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
30713 // Useful for many curves
30714 this.zero = new BN(
0).toRed(this.red);
30715 this.one = new BN(
1).toRed(this.red);
30716 this.two = new BN(
2).toRed(this.red);
30718 // Curve configuration, optional
30719 this.n = conf.n && new BN(conf.n,
16);
30720 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
30722 // Temporary arrays
30723 this._wnafT1 = new Array(
4);
30724 this._wnafT2 = new Array(
4);
30725 this._wnafT3 = new Array(
4);
30726 this._wnafT4 = new Array(
4);
30728 // Generalized Greg Maxwell's trick
30729 var adjustCount = this.n && this.p.div(this.n);
30730 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
30733 this._maxwellTrick = true;
30734 this.redN = this.n.toRed(this.red);
30737 module.exports = BaseCurve;
30739 BaseCurve.prototype.point = function point() {
30740 throw new Error('Not implemented');
30743 BaseCurve.prototype.validate = function validate() {
30744 throw new Error('Not implemented');
30747 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
30748 assert(p.precomputed);
30749 var doubles = p._getDoubles();
30751 var naf = getNAF(k,
1);
30752 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
30755 // Translate into more windowed form
30757 for (var j =
0; j < naf.length; j += doubles.step) {
30759 for (var k = j + doubles.step -
1; k
>= j; k--)
30760 nafW = (nafW <<
1) + naf[k];
30764 var a = this.jpoint(null, null, null);
30765 var b = this.jpoint(null, null, null);
30766 for (var i = I; i
> 0; i--) {
30767 for (var j =
0; j < repr.length; j++) {
30768 var nafW = repr[j];
30770 b = b.mixedAdd(doubles.points[j]);
30771 else if (nafW === -i)
30772 b = b.mixedAdd(doubles.points[j].neg());
30779 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
30782 // Precompute window
30783 var nafPoints = p._getNAFPoints(w);
30785 var wnd = nafPoints.points;
30788 var naf = getNAF(k, w);
30790 // Add `this`*(N+
1) for every w-NAF index
30791 var acc = this.jpoint(null, null, null);
30792 for (var i = naf.length -
1; i
>=
0; i--) {
30794 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
30804 if (p.type === 'affine') {
30807 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
30809 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
30813 acc = acc.add(wnd[(z -
1)
>> 1]);
30815 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
30818 return p.type === 'affine' ? acc.toP() : acc;
30821 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
30826 var wndWidth = this._wnafT1;
30827 var wnd = this._wnafT2;
30828 var naf = this._wnafT3;
30832 for (var i =
0; i < len; i++) {
30834 var nafPoints = p._getNAFPoints(defW);
30835 wndWidth[i] = nafPoints.wnd;
30836 wnd[i] = nafPoints.points;
30839 // Comb small window NAFs
30840 for (var i = len -
1; i
>=
1; i -=
2) {
30843 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
30844 naf[a] = getNAF(coeffs[a], wndWidth[a]);
30845 naf[b] = getNAF(coeffs[b], wndWidth[b]);
30846 max = Math.max(naf[a].length, max);
30847 max = Math.max(naf[b].length, max);
30858 // Try to avoid Projective points, if possible
30859 if (points[a].y.cmp(points[b].y) ===
0) {
30860 comb[
1] = points[a].add(points[b]);
30861 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30862 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
30863 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30864 comb[
2] = points[a].add(points[b].neg());
30866 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30867 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30882 var jsf = getJSF(coeffs[a], coeffs[b]);
30883 max = Math.max(jsf[
0].length, max);
30884 naf[a] = new Array(max);
30885 naf[b] = new Array(max);
30886 for (var j =
0; j < max; j++) {
30887 var ja = jsf[
0][j] |
0;
30888 var jb = jsf[
1][j] |
0;
30890 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
30896 var acc = this.jpoint(null, null, null);
30897 var tmp = this._wnafT4;
30898 for (var i = max; i
>=
0; i--) {
30903 for (var j =
0; j < len; j++) {
30904 tmp[j] = naf[j][i] |
0;
30919 for (var j =
0; j < len; j++) {
30925 p = wnd[j][(z -
1)
>> 1];
30927 p = wnd[j][(-z -
1)
>> 1].neg();
30929 if (p.type === 'affine')
30930 acc = acc.mixedAdd(p);
30935 // Zeroify references
30936 for (var i =
0; i < len; i++)
30939 if (jacobianResult)
30945 function BasePoint(curve, type) {
30946 this.curve = curve;
30948 this.precomputed = null;
30950 BaseCurve.BasePoint = BasePoint;
30952 BasePoint.prototype.eq = function eq(/*other*/) {
30953 throw new Error('Not implemented');
30956 BasePoint.prototype.validate = function validate() {
30957 return this.curve.validate(this);
30960 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
30961 bytes = utils.toArray(bytes, enc);
30963 var len = this.p.byteLength();
30965 // uncompressed, hybrid-odd, hybrid-even
30966 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
30967 bytes.length -
1 ===
2 * len) {
30968 if (bytes[
0] ===
0x06)
30969 assert(bytes[bytes.length -
1] %
2 ===
0);
30970 else if (bytes[
0] ===
0x07)
30971 assert(bytes[bytes.length -
1] %
2 ===
1);
30973 var res = this.point(bytes.slice(
1,
1 + len),
30974 bytes.slice(
1 + len,
1 +
2 * len));
30977 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
30978 bytes.length -
1 === len) {
30979 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
30981 throw new Error('Unknown point format');
30984 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
30985 return this.encode(enc, true);
30988 BasePoint.prototype._encode = function _encode(compact) {
30989 var len = this.curve.p.byteLength();
30990 var x = this.getX().toArray('be', len);
30993 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
30995 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
30998 BasePoint.prototype.encode = function encode(enc, compact) {
30999 return utils.encode(this._encode(compact), enc);
31002 BasePoint.prototype.precompute = function precompute(power) {
31003 if (this.precomputed)
31006 var precomputed = {
31011 precomputed.naf = this._getNAFPoints(
8);
31012 precomputed.doubles = this._getDoubles(
4, power);
31013 precomputed.beta = this._getBeta();
31014 this.precomputed = precomputed;
31019 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
31020 if (!this.precomputed)
31023 var doubles = this.precomputed.doubles;
31027 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
31030 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
31031 if (this.precomputed && this.precomputed.doubles)
31032 return this.precomputed.doubles;
31034 var doubles = [ this ];
31036 for (var i =
0; i < power; i += step) {
31037 for (var j =
0; j < step; j++)
31047 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
31048 if (this.precomputed && this.precomputed.naf)
31049 return this.precomputed.naf;
31051 var res = [ this ];
31052 var max = (
1 << wnd) -
1;
31053 var dbl = max ===
1 ? null : this.dbl();
31054 for (var i =
1; i < max; i++)
31055 res[i] = res[i -
1].add(dbl);
31062 BasePoint.prototype._getBeta = function _getBeta() {
31066 BasePoint.prototype.dblp = function dblp(k) {
31068 for (var i =
0; i < k; i++)
31073 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
31076 var curve = require('../curve');
31077 var elliptic = require('../../elliptic');
31078 var BN = require('bn.js');
31079 var inherits = require('inherits');
31080 var Base = curve.base;
31082 var assert = elliptic.utils.assert;
31084 function EdwardsCurve(conf) {
31085 // NOTE: Important as we are creating point in Base.call()
31086 this.twisted = (conf.a |
0) !==
1;
31087 this.mOneA = this.twisted && (conf.a |
0) === -
1;
31088 this.extended = this.mOneA;
31090 Base.call(this, 'edwards', conf);
31092 this.a = new BN(conf.a,
16).umod(this.red.m);
31093 this.a = this.a.toRed(this.red);
31094 this.c = new BN(conf.c,
16).toRed(this.red);
31095 this.c2 = this.c.redSqr();
31096 this.d = new BN(conf.d,
16).toRed(this.red);
31097 this.dd = this.d.redAdd(this.d);
31099 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
31100 this.oneC = (conf.c |
0) ===
1;
31102 inherits(EdwardsCurve, Base);
31103 module.exports = EdwardsCurve;
31105 EdwardsCurve.prototype._mulA = function _mulA(num) {
31107 return num.redNeg();
31109 return this.a.redMul(num);
31112 EdwardsCurve.prototype._mulC = function _mulC(num) {
31116 return this.c.redMul(num);
31119 // Just for compatibility with Short curve
31120 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
31121 return this.point(x, y, z, t);
31124 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
31127 x = x.toRed(this.red);
31129 var x2 = x.redSqr();
31130 var rhs = this.c2.redSub(this.a.redMul(x2));
31131 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
31133 var y2 = rhs.redMul(lhs.redInvm());
31134 var y = y2.redSqrt();
31135 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31136 throw new Error('invalid point');
31138 var isOdd = y.fromRed().isOdd();
31139 if (odd && !isOdd || !odd && isOdd)
31142 return this.point(x, y);
31145 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
31148 y = y.toRed(this.red);
31150 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
31151 var y2 = y.redSqr();
31152 var lhs = y2.redSub(this.one);
31153 var rhs = y2.redMul(this.d).redAdd(this.one);
31154 var x2 = lhs.redMul(rhs.redInvm());
31156 if (x2.cmp(this.zero) ===
0) {
31158 throw new Error('invalid point');
31160 return this.point(this.zero, y);
31163 var x = x2.redSqrt();
31164 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
31165 throw new Error('invalid point');
31167 if (x.isOdd() !== odd)
31170 return this.point(x, y);
31173 EdwardsCurve.prototype.validate = function validate(point) {
31174 if (point.isInfinity())
31177 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
31180 var x2 = point.x.redSqr();
31181 var y2 = point.y.redSqr();
31182 var lhs = x2.redMul(this.a).redAdd(y2);
31183 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
31185 return lhs.cmp(rhs) ===
0;
31188 function Point(curve, x, y, z, t) {
31189 Base.BasePoint.call(this, curve, 'projective');
31190 if (x === null && y === null && z === null) {
31191 this.x = this.curve.zero;
31192 this.y = this.curve.one;
31193 this.z = this.curve.one;
31194 this.t = this.curve.zero;
31197 this.x = new BN(x,
16);
31198 this.y = new BN(y,
16);
31199 this.z = z ? new BN(z,
16) : this.curve.one;
31200 this.t = t && new BN(t,
16);
31202 this.x = this.x.toRed(this.curve.red);
31204 this.y = this.y.toRed(this.curve.red);
31206 this.z = this.z.toRed(this.curve.red);
31207 if (this.t && !this.t.red)
31208 this.t = this.t.toRed(this.curve.red);
31209 this.zOne = this.z === this.curve.one;
31211 // Use extended coordinates
31212 if (this.curve.extended && !this.t) {
31213 this.t = this.x.redMul(this.y);
31215 this.t = this.t.redMul(this.z.redInvm());
31219 inherits(Point, Base.BasePoint);
31221 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31222 return Point.fromJSON(this, obj);
31225 EdwardsCurve.prototype.point = function point(x, y, z, t) {
31226 return new Point(this, x, y, z, t);
31229 Point.fromJSON = function fromJSON(curve, obj) {
31230 return new Point(curve, obj[
0], obj[
1], obj[
2]);
31233 Point.prototype.inspect = function inspect() {
31234 if (this.isInfinity())
31235 return '
<EC Point Infinity
>';
31236 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31237 ' y: ' + this.y.fromRed().toString(
16,
2) +
31238 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31241 Point.prototype.isInfinity = function isInfinity() {
31242 // XXX This code assumes that zero is always zero in red
31243 return this.x.cmpn(
0) ===
0 &&
31244 this.y.cmp(this.z) ===
0;
31247 Point.prototype._extDbl = function _extDbl() {
31248 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31249 // #doubling-dbl-
2008-hwcd
31253 var a = this.x.redSqr();
31255 var b = this.y.redSqr();
31257 var c = this.z.redSqr();
31260 var d = this.curve._mulA(a);
31261 // E = (X1 + Y1)^
2 - A - B
31262 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
31264 var g = d.redAdd(b);
31266 var f = g.redSub(c);
31268 var h = d.redSub(b);
31270 var nx = e.redMul(f);
31272 var ny = g.redMul(h);
31274 var nt = e.redMul(h);
31276 var nz = f.redMul(g);
31277 return this.curve.point(nx, ny, nz, nt);
31280 Point.prototype._projDbl = function _projDbl() {
31281 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31282 // #doubling-dbl-
2008-bbjlp
31283 // #doubling-dbl-
2007-bl
31285 // Generally
3M +
4S or
2M +
4S
31288 var b = this.x.redAdd(this.y).redSqr();
31290 var c = this.x.redSqr();
31292 var d = this.y.redSqr();
31297 if (this.curve.twisted) {
31299 var e = this.curve._mulA(c);
31301 var f = e.redAdd(d);
31303 // X3 = (B - C - D) * (F -
2)
31304 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
31305 // Y3 = F * (E - D)
31306 ny = f.redMul(e.redSub(d));
31307 // Z3 = F^
2 -
2 * F
31308 nz = f.redSqr().redSub(f).redSub(f);
31311 var h = this.z.redSqr();
31313 var j = f.redSub(h).redISub(h);
31315 nx = b.redSub(c).redISub(d).redMul(j);
31316 // Y3 = F * (E - D)
31317 ny = f.redMul(e.redSub(d));
31323 var e = c.redAdd(d);
31325 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
31327 var j = e.redSub(h).redSub(h);
31328 // X3 = c * (B - E) * J
31329 nx = this.curve._mulC(b.redISub(e)).redMul(j);
31330 // Y3 = c * E * (C - D)
31331 ny = this.curve._mulC(e).redMul(c.redISub(d));
31335 return this.curve.point(nx, ny, nz);
31338 Point.prototype.dbl = function dbl() {
31339 if (this.isInfinity())
31342 // Double in extended coordinates
31343 if (this.curve.extended)
31344 return this._extDbl();
31346 return this._projDbl();
31349 Point.prototype._extAdd = function _extAdd(p) {
31350 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31351 // #addition-add-
2008-hwcd-
3
31354 // A = (Y1 - X1) * (Y2 - X2)
31355 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
31356 // B = (Y1 + X1) * (Y2 + X2)
31357 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
31359 var c = this.t.redMul(this.curve.dd).redMul(p.t);
31361 var d = this.z.redMul(p.z.redAdd(p.z));
31363 var e = b.redSub(a);
31365 var f = d.redSub(c);
31367 var g = d.redAdd(c);
31369 var h = b.redAdd(a);
31371 var nx = e.redMul(f);
31373 var ny = g.redMul(h);
31375 var nt = e.redMul(h);
31377 var nz = f.redMul(g);
31378 return this.curve.point(nx, ny, nz, nt);
31381 Point.prototype._projAdd = function _projAdd(p) {
31382 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31383 // #addition-add-
2008-bbjlp
31384 // #addition-add-
2007-bl
31388 var a = this.z.redMul(p.z);
31390 var b = a.redSqr();
31392 var c = this.x.redMul(p.x);
31394 var d = this.y.redMul(p.y);
31396 var e = this.curve.d.redMul(c).redMul(d);
31398 var f = b.redSub(e);
31400 var g = b.redAdd(e);
31401 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
31402 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
31403 var nx = a.redMul(f).redMul(tmp);
31406 if (this.curve.twisted) {
31407 // Y3 = A * G * (D - a * C)
31408 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
31412 // Y3 = A * G * (D - C)
31413 ny = a.redMul(g).redMul(d.redSub(c));
31415 nz = this.curve._mulC(f).redMul(g);
31417 return this.curve.point(nx, ny, nz);
31420 Point.prototype.add = function add(p) {
31421 if (this.isInfinity())
31423 if (p.isInfinity())
31426 if (this.curve.extended)
31427 return this._extAdd(p);
31429 return this._projAdd(p);
31432 Point.prototype.mul = function mul(k) {
31433 if (this._hasDoubles(k))
31434 return this.curve._fixedNafMul(this, k);
31436 return this.curve._wnafMul(this, k);
31439 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
31440 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
31443 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
31444 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
31447 Point.prototype.normalize = function normalize() {
31451 // Normalize coordinates
31452 var zi = this.z.redInvm();
31453 this.x = this.x.redMul(zi);
31454 this.y = this.y.redMul(zi);
31456 this.t = this.t.redMul(zi);
31457 this.z = this.curve.one;
31462 Point.prototype.neg = function neg() {
31463 return this.curve.point(this.x.redNeg(),
31466 this.t && this.t.redNeg());
31469 Point.prototype.getX = function getX() {
31471 return this.x.fromRed();
31474 Point.prototype.getY = function getY() {
31476 return this.y.fromRed();
31479 Point.prototype.eq = function eq(other) {
31480 return this === other ||
31481 this.getX().cmp(other.getX()) ===
0 &&
31482 this.getY().cmp(other.getY()) ===
0;
31485 Point.prototype.eqXToP = function eqXToP(x) {
31486 var rx = x.toRed(this.curve.red).redMul(this.z);
31487 if (this.x.cmp(rx) ===
0)
31490 var xc = x.clone();
31491 var t = this.curve.redN.redMul(this.z);
31493 xc.iadd(this.curve.n);
31494 if (xc.cmp(this.curve.p)
>=
0)
31498 if (this.x.cmp(rx) ===
0)
31504 // Compatibility with BaseCurve
31505 Point.prototype.toP = Point.prototype.normalize;
31506 Point.prototype.mixedAdd = Point.prototype.add;
31508 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
31511 var curve = exports;
31513 curve.base = require('./base');
31514 curve.short = require('./short');
31515 curve.mont = require('./mont');
31516 curve.edwards = require('./edwards');
31518 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
31521 var curve = require('../curve');
31522 var BN = require('bn.js');
31523 var inherits = require('inherits');
31524 var Base = curve.base;
31526 var elliptic = require('../../elliptic');
31527 var utils = elliptic.utils;
31529 function MontCurve(conf) {
31530 Base.call(this, 'mont', conf);
31532 this.a = new BN(conf.a,
16).toRed(this.red);
31533 this.b = new BN(conf.b,
16).toRed(this.red);
31534 this.i4 = new BN(
4).toRed(this.red).redInvm();
31535 this.two = new BN(
2).toRed(this.red);
31536 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
31538 inherits(MontCurve, Base);
31539 module.exports = MontCurve;
31541 MontCurve.prototype.validate = function validate(point) {
31542 var x = point.normalize().x;
31543 var x2 = x.redSqr();
31544 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
31545 var y = rhs.redSqrt();
31547 return y.redSqr().cmp(rhs) ===
0;
31550 function Point(curve, x, z) {
31551 Base.BasePoint.call(this, curve, 'projective');
31552 if (x === null && z === null) {
31553 this.x = this.curve.one;
31554 this.z = this.curve.zero;
31556 this.x = new BN(x,
16);
31557 this.z = new BN(z,
16);
31559 this.x = this.x.toRed(this.curve.red);
31561 this.z = this.z.toRed(this.curve.red);
31564 inherits(Point, Base.BasePoint);
31566 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31567 return this.point(utils.toArray(bytes, enc),
1);
31570 MontCurve.prototype.point = function point(x, z) {
31571 return new Point(this, x, z);
31574 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31575 return Point.fromJSON(this, obj);
31578 Point.prototype.precompute = function precompute() {
31582 Point.prototype._encode = function _encode() {
31583 return this.getX().toArray('be', this.curve.p.byteLength());
31586 Point.fromJSON = function fromJSON(curve, obj) {
31587 return new Point(curve, obj[
0], obj[
1] || curve.one);
31590 Point.prototype.inspect = function inspect() {
31591 if (this.isInfinity())
31592 return '
<EC Point Infinity
>';
31593 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31594 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31597 Point.prototype.isInfinity = function isInfinity() {
31598 // XXX This code assumes that zero is always zero in red
31599 return this.z.cmpn(
0) ===
0;
31602 Point.prototype.dbl = function dbl() {
31603 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
31607 var a = this.x.redAdd(this.z);
31609 var aa = a.redSqr();
31611 var b = this.x.redSub(this.z);
31613 var bb = b.redSqr();
31615 var c = aa.redSub(bb);
31617 var nx = aa.redMul(bb);
31618 // Z3 = C * (BB + A24 * C)
31619 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
31620 return this.curve.point(nx, nz);
31623 Point.prototype.add = function add() {
31624 throw new Error('Not supported on Montgomery curve');
31627 Point.prototype.diffAdd = function diffAdd(p, diff) {
31628 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
31632 var a = this.x.redAdd(this.z);
31634 var b = this.x.redSub(this.z);
31636 var c = p.x.redAdd(p.z);
31638 var d = p.x.redSub(p.z);
31640 var da = d.redMul(a);
31642 var cb = c.redMul(b);
31643 // X5 = Z1 * (DA + CB)^
2
31644 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
31645 // Z5 = X1 * (DA - CB)^
2
31646 var nz = diff.x.redMul(da.redISub(cb).redSqr());
31647 return this.curve.point(nx, nz);
31650 Point.prototype.mul = function mul(k) {
31652 var a = this; // (N /
2) * Q + Q
31653 var b = this.curve.point(null, null); // (N /
2) * Q
31656 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
31657 bits.push(t.andln(
1));
31659 for (var i = bits.length -
1; i
>=
0; i--) {
31660 if (bits[i] ===
0) {
31661 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
31662 a = a.diffAdd(b, c);
31663 // N * Q =
2 * ((N /
2) * Q + Q))
31666 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
31667 b = a.diffAdd(b, c);
31668 // N * Q + Q =
2 * ((N /
2) * Q + Q)
31675 Point.prototype.mulAdd = function mulAdd() {
31676 throw new Error('Not supported on Montgomery curve');
31679 Point.prototype.jumlAdd = function jumlAdd() {
31680 throw new Error('Not supported on Montgomery curve');
31683 Point.prototype.eq = function eq(other) {
31684 return this.getX().cmp(other.getX()) ===
0;
31687 Point.prototype.normalize = function normalize() {
31688 this.x = this.x.redMul(this.z.redInvm());
31689 this.z = this.curve.one;
31693 Point.prototype.getX = function getX() {
31694 // Normalize coordinates
31697 return this.x.fromRed();
31700 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
31703 var curve = require('../curve');
31704 var elliptic = require('../../elliptic');
31705 var BN = require('bn.js');
31706 var inherits = require('inherits');
31707 var Base = curve.base;
31709 var assert = elliptic.utils.assert;
31711 function ShortCurve(conf) {
31712 Base.call(this, 'short', conf);
31714 this.a = new BN(conf.a,
16).toRed(this.red);
31715 this.b = new BN(conf.b,
16).toRed(this.red);
31716 this.tinv = this.two.redInvm();
31718 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
31719 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
31721 // If the curve is endomorphic, precalculate beta and lambda
31722 this.endo = this._getEndomorphism(conf);
31723 this._endoWnafT1 = new Array(
4);
31724 this._endoWnafT2 = new Array(
4);
31726 inherits(ShortCurve, Base);
31727 module.exports = ShortCurve;
31729 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
31730 // No efficient endomorphism
31731 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
31734 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
31738 beta = new BN(conf.beta,
16).toRed(this.red);
31740 var betas = this._getEndoRoots(this.p);
31741 // Choose the smallest beta
31742 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
31743 beta = beta.toRed(this.red);
31746 lambda = new BN(conf.lambda,
16);
31748 // Choose the lambda that is matching selected beta
31749 var lambdas = this._getEndoRoots(this.n);
31750 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
31751 lambda = lambdas[
0];
31753 lambda = lambdas[
1];
31754 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
31758 // Get basis vectors, used for balanced length-two representation
31761 basis = conf.basis.map(function(vec) {
31763 a: new BN(vec.a,
16),
31764 b: new BN(vec.b,
16)
31768 basis = this._getEndoBasis(lambda);
31778 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
31779 // Find roots of for x^
2 + x +
1 in F
31780 // Root = (-
1 +- Sqrt(-
3)) /
2
31782 var red = num === this.p ? this.red : BN.mont(num);
31783 var tinv = new BN(
2).toRed(red).redInvm();
31784 var ntinv = tinv.redNeg();
31786 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
31788 var l1 = ntinv.redAdd(s).fromRed();
31789 var l2 = ntinv.redSub(s).fromRed();
31793 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
31794 // aprxSqrt
>= sqrt(this.n)
31795 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
31798 // Run EGCD, until r(L +
1) < aprxSqrt
31800 var v = this.n.clone();
31801 var x1 = new BN(
1);
31802 var y1 = new BN(
0);
31803 var x2 = new BN(
0);
31804 var y2 = new BN(
1);
31806 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
31820 while (u.cmpn(
0) !==
0) {
31822 r = v.sub(q.mul(u));
31823 x = x2.sub(q.mul(x1));
31824 var y = y2.sub(q.mul(y1));
31826 if (!a1 && r.cmp(aprxSqrt) <
0) {
31831 } else if (a1 && ++i ===
2) {
31846 var len1 = a1.sqr().add(b1.sqr());
31847 var len2 = a2.sqr().add(b2.sqr());
31848 if (len2.cmp(len1)
>=
0) {
31869 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
31870 var basis = this.endo.basis;
31874 var c1 = v2.b.mul(k).divRound(this.n);
31875 var c2 = v1.b.neg().mul(k).divRound(this.n);
31877 var p1 = c1.mul(v1.a);
31878 var p2 = c2.mul(v2.a);
31879 var q1 = c1.mul(v1.b);
31880 var q2 = c2.mul(v2.b);
31882 // Calculate answer
31883 var k1 = k.sub(p1).sub(p2);
31884 var k2 = q1.add(q2).neg();
31885 return { k1: k1, k2: k2 };
31888 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
31891 x = x.toRed(this.red);
31893 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
31894 var y = y2.redSqrt();
31895 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31896 throw new Error('invalid point');
31898 // XXX Is there any way to tell if the number is odd without converting it
31899 // to non-red form?
31900 var isOdd = y.fromRed().isOdd();
31901 if (odd && !isOdd || !odd && isOdd)
31904 return this.point(x, y);
31907 ShortCurve.prototype.validate = function validate(point) {
31914 var ax = this.a.redMul(x);
31915 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
31916 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
31919 ShortCurve.prototype._endoWnafMulAdd =
31920 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
31921 var npoints = this._endoWnafT1;
31922 var ncoeffs = this._endoWnafT2;
31923 for (var i =
0; i < points.length; i++) {
31924 var split = this._endoSplit(coeffs[i]);
31926 var beta = p._getBeta();
31928 if (split.k1.negative) {
31932 if (split.k2.negative) {
31934 beta = beta.neg(true);
31937 npoints[i *
2] = p;
31938 npoints[i *
2 +
1] = beta;
31939 ncoeffs[i *
2] = split.k1;
31940 ncoeffs[i *
2 +
1] = split.k2;
31942 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
31944 // Clean-up references to points and coefficients
31945 for (var j =
0; j < i *
2; j++) {
31952 function Point(curve, x, y, isRed) {
31953 Base.BasePoint.call(this, curve, 'affine');
31954 if (x === null && y === null) {
31959 this.x = new BN(x,
16);
31960 this.y = new BN(y,
16);
31961 // Force redgomery representation when loading from JSON
31963 this.x.forceRed(this.curve.red);
31964 this.y.forceRed(this.curve.red);
31967 this.x = this.x.toRed(this.curve.red);
31969 this.y = this.y.toRed(this.curve.red);
31973 inherits(Point, Base.BasePoint);
31975 ShortCurve.prototype.point = function point(x, y, isRed) {
31976 return new Point(this, x, y, isRed);
31979 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
31980 return Point.fromJSON(this, obj, red);
31983 Point.prototype._getBeta = function _getBeta() {
31984 if (!this.curve.endo)
31987 var pre = this.precomputed;
31988 if (pre && pre.beta)
31991 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
31993 var curve = this.curve;
31994 var endoMul = function(p) {
31995 return curve.point(p.x.redMul(curve.endo.beta), p.y);
31998 beta.precomputed = {
32002 points: pre.naf.points.map(endoMul)
32004 doubles: pre.doubles && {
32005 step: pre.doubles.step,
32006 points: pre.doubles.points.map(endoMul)
32013 Point.prototype.toJSON = function toJSON() {
32014 if (!this.precomputed)
32015 return [ this.x, this.y ];
32017 return [ this.x, this.y, this.precomputed && {
32018 doubles: this.precomputed.doubles && {
32019 step: this.precomputed.doubles.step,
32020 points: this.precomputed.doubles.points.slice(
1)
32022 naf: this.precomputed.naf && {
32023 wnd: this.precomputed.naf.wnd,
32024 points: this.precomputed.naf.points.slice(
1)
32029 Point.fromJSON = function fromJSON(curve, obj, red) {
32030 if (typeof obj === 'string')
32031 obj = JSON.parse(obj);
32032 var res = curve.point(obj[
0], obj[
1], red);
32036 function obj2point(obj) {
32037 return curve.point(obj[
0], obj[
1], red);
32041 res.precomputed = {
32043 doubles: pre.doubles && {
32044 step: pre.doubles.step,
32045 points: [ res ].concat(pre.doubles.points.map(obj2point))
32049 points: [ res ].concat(pre.naf.points.map(obj2point))
32055 Point.prototype.inspect = function inspect() {
32056 if (this.isInfinity())
32057 return '
<EC Point Infinity
>';
32058 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
32059 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
32062 Point.prototype.isInfinity = function isInfinity() {
32066 Point.prototype.add = function add(p) {
32080 if (this.neg().eq(p))
32081 return this.curve.point(null, null);
32084 if (this.x.cmp(p.x) ===
0)
32085 return this.curve.point(null, null);
32087 var c = this.y.redSub(p.y);
32088 if (c.cmpn(
0) !==
0)
32089 c = c.redMul(this.x.redSub(p.x).redInvm());
32090 var nx = c.redSqr().redISub(this.x).redISub(p.x);
32091 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32092 return this.curve.point(nx, ny);
32095 Point.prototype.dbl = function dbl() {
32100 var ys1 = this.y.redAdd(this.y);
32101 if (ys1.cmpn(
0) ===
0)
32102 return this.curve.point(null, null);
32104 var a = this.curve.a;
32106 var x2 = this.x.redSqr();
32107 var dyinv = ys1.redInvm();
32108 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
32110 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
32111 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32112 return this.curve.point(nx, ny);
32115 Point.prototype.getX = function getX() {
32116 return this.x.fromRed();
32119 Point.prototype.getY = function getY() {
32120 return this.y.fromRed();
32123 Point.prototype.mul = function mul(k) {
32126 if (this._hasDoubles(k))
32127 return this.curve._fixedNafMul(this, k);
32128 else if (this.curve.endo)
32129 return this.curve._endoWnafMulAdd([ this ], [ k ]);
32131 return this.curve._wnafMul(this, k);
32134 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
32135 var points = [ this, p2 ];
32136 var coeffs = [ k1, k2 ];
32137 if (this.curve.endo)
32138 return this.curve._endoWnafMulAdd(points, coeffs);
32140 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
32143 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
32144 var points = [ this, p2 ];
32145 var coeffs = [ k1, k2 ];
32146 if (this.curve.endo)
32147 return this.curve._endoWnafMulAdd(points, coeffs, true);
32149 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
32152 Point.prototype.eq = function eq(p) {
32153 return this === p ||
32154 this.inf === p.inf &&
32155 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
32158 Point.prototype.neg = function neg(_precompute) {
32162 var res = this.curve.point(this.x, this.y.redNeg());
32163 if (_precompute && this.precomputed) {
32164 var pre = this.precomputed;
32165 var negate = function(p) {
32168 res.precomputed = {
32171 points: pre.naf.points.map(negate)
32173 doubles: pre.doubles && {
32174 step: pre.doubles.step,
32175 points: pre.doubles.points.map(negate)
32182 Point.prototype.toJ = function toJ() {
32184 return this.curve.jpoint(null, null, null);
32186 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
32190 function JPoint(curve, x, y, z) {
32191 Base.BasePoint.call(this, curve, 'jacobian');
32192 if (x === null && y === null && z === null) {
32193 this.x = this.curve.one;
32194 this.y = this.curve.one;
32195 this.z = new BN(
0);
32197 this.x = new BN(x,
16);
32198 this.y = new BN(y,
16);
32199 this.z = new BN(z,
16);
32202 this.x = this.x.toRed(this.curve.red);
32204 this.y = this.y.toRed(this.curve.red);
32206 this.z = this.z.toRed(this.curve.red);
32208 this.zOne = this.z === this.curve.one;
32210 inherits(JPoint, Base.BasePoint);
32212 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
32213 return new JPoint(this, x, y, z);
32216 JPoint.prototype.toP = function toP() {
32217 if (this.isInfinity())
32218 return this.curve.point(null, null);
32220 var zinv = this.z.redInvm();
32221 var zinv2 = zinv.redSqr();
32222 var ax = this.x.redMul(zinv2);
32223 var ay = this.y.redMul(zinv2).redMul(zinv);
32225 return this.curve.point(ax, ay);
32228 JPoint.prototype.neg = function neg() {
32229 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
32232 JPoint.prototype.add = function add(p) {
32234 if (this.isInfinity())
32238 if (p.isInfinity())
32242 var pz2 = p.z.redSqr();
32243 var z2 = this.z.redSqr();
32244 var u1 = this.x.redMul(pz2);
32245 var u2 = p.x.redMul(z2);
32246 var s1 = this.y.redMul(pz2.redMul(p.z));
32247 var s2 = p.y.redMul(z2.redMul(this.z));
32249 var h = u1.redSub(u2);
32250 var r = s1.redSub(s2);
32251 if (h.cmpn(
0) ===
0) {
32252 if (r.cmpn(
0) !==
0)
32253 return this.curve.jpoint(null, null, null);
32258 var h2 = h.redSqr();
32259 var h3 = h2.redMul(h);
32260 var v = u1.redMul(h2);
32262 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32263 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32264 var nz = this.z.redMul(p.z).redMul(h);
32266 return this.curve.jpoint(nx, ny, nz);
32269 JPoint.prototype.mixedAdd = function mixedAdd(p) {
32271 if (this.isInfinity())
32275 if (p.isInfinity())
32279 var z2 = this.z.redSqr();
32281 var u2 = p.x.redMul(z2);
32283 var s2 = p.y.redMul(z2).redMul(this.z);
32285 var h = u1.redSub(u2);
32286 var r = s1.redSub(s2);
32287 if (h.cmpn(
0) ===
0) {
32288 if (r.cmpn(
0) !==
0)
32289 return this.curve.jpoint(null, null, null);
32294 var h2 = h.redSqr();
32295 var h3 = h2.redMul(h);
32296 var v = u1.redMul(h2);
32298 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32299 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32300 var nz = this.z.redMul(h);
32302 return this.curve.jpoint(nx, ny, nz);
32305 JPoint.prototype.dblp = function dblp(pow) {
32308 if (this.isInfinity())
32313 if (this.curve.zeroA || this.curve.threeA) {
32315 for (var i =
0; i < pow; i++)
32320 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
32321 // N =
1 =
> 6M +
6S +
9A
32322 var a = this.curve.a;
32323 var tinv = this.curve.tinv;
32328 var jz4 = jz.redSqr().redSqr();
32331 var jyd = jy.redAdd(jy);
32332 for (var i =
0; i < pow; i++) {
32333 var jx2 = jx.redSqr();
32334 var jyd2 = jyd.redSqr();
32335 var jyd4 = jyd2.redSqr();
32336 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32338 var t1 = jx.redMul(jyd2);
32339 var nx = c.redSqr().redISub(t1.redAdd(t1));
32340 var t2 = t1.redISub(nx);
32341 var dny = c.redMul(t2);
32342 dny = dny.redIAdd(dny).redISub(jyd4);
32343 var nz = jyd.redMul(jz);
32345 jz4 = jz4.redMul(jyd4);
32352 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
32355 JPoint.prototype.dbl = function dbl() {
32356 if (this.isInfinity())
32359 if (this.curve.zeroA)
32360 return this._zeroDbl();
32361 else if (this.curve.threeA)
32362 return this._threeDbl();
32364 return this._dbl();
32367 JPoint.prototype._zeroDbl = function _zeroDbl() {
32373 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32374 // #doubling-mdbl-
2007-bl
32378 var xx = this.x.redSqr();
32380 var yy = this.y.redSqr();
32382 var yyyy = yy.redSqr();
32383 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32384 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32386 // M =
3 * XX + a; a =
0
32387 var m = xx.redAdd(xx).redIAdd(xx);
32389 var t = m.redSqr().redISub(s).redISub(s);
32392 var yyyy8 = yyyy.redIAdd(yyyy);
32393 yyyy8 = yyyy8.redIAdd(yyyy8);
32394 yyyy8 = yyyy8.redIAdd(yyyy8);
32398 // Y3 = M * (S - T) -
8 * YYYY
32399 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32401 nz = this.y.redAdd(this.y);
32403 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32404 // #doubling-dbl-
2009-l
32408 var a = this.x.redSqr();
32410 var b = this.y.redSqr();
32412 var c = b.redSqr();
32413 // D =
2 * ((X1 + B)^
2 - A - C)
32414 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
32417 var e = a.redAdd(a).redIAdd(a);
32419 var f = e.redSqr();
32422 var c8 = c.redIAdd(c);
32423 c8 = c8.redIAdd(c8);
32424 c8 = c8.redIAdd(c8);
32427 nx = f.redISub(d).redISub(d);
32428 // Y3 = E * (D - X3) -
8 * C
32429 ny = e.redMul(d.redISub(nx)).redISub(c8);
32430 // Z3 =
2 * Y1 * Z1
32431 nz = this.y.redMul(this.z);
32432 nz = nz.redIAdd(nz);
32435 return this.curve.jpoint(nx, ny, nz);
32438 JPoint.prototype._threeDbl = function _threeDbl() {
32444 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
32445 // #doubling-mdbl-
2007-bl
32449 var xx = this.x.redSqr();
32451 var yy = this.y.redSqr();
32453 var yyyy = yy.redSqr();
32454 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32455 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32458 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
32460 var t = m.redSqr().redISub(s).redISub(s);
32463 // Y3 = M * (S - T) -
8 * YYYY
32464 var yyyy8 = yyyy.redIAdd(yyyy);
32465 yyyy8 = yyyy8.redIAdd(yyyy8);
32466 yyyy8 = yyyy8.redIAdd(yyyy8);
32467 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32469 nz = this.y.redAdd(this.y);
32471 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
32475 var delta = this.z.redSqr();
32477 var gamma = this.y.redSqr();
32478 // beta = X1 * gamma
32479 var beta = this.x.redMul(gamma);
32480 // alpha =
3 * (X1 - delta) * (X1 + delta)
32481 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
32482 alpha = alpha.redAdd(alpha).redIAdd(alpha);
32483 // X3 = alpha^
2 -
8 * beta
32484 var beta4 = beta.redIAdd(beta);
32485 beta4 = beta4.redIAdd(beta4);
32486 var beta8 = beta4.redAdd(beta4);
32487 nx = alpha.redSqr().redISub(beta8);
32488 // Z3 = (Y1 + Z1)^
2 - gamma - delta
32489 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
32490 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
32491 var ggamma8 = gamma.redSqr();
32492 ggamma8 = ggamma8.redIAdd(ggamma8);
32493 ggamma8 = ggamma8.redIAdd(ggamma8);
32494 ggamma8 = ggamma8.redIAdd(ggamma8);
32495 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
32498 return this.curve.jpoint(nx, ny, nz);
32501 JPoint.prototype._dbl = function _dbl() {
32502 var a = this.curve.a;
32508 var jz4 = jz.redSqr().redSqr();
32510 var jx2 = jx.redSqr();
32511 var jy2 = jy.redSqr();
32513 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32515 var jxd4 = jx.redAdd(jx);
32516 jxd4 = jxd4.redIAdd(jxd4);
32517 var t1 = jxd4.redMul(jy2);
32518 var nx = c.redSqr().redISub(t1.redAdd(t1));
32519 var t2 = t1.redISub(nx);
32521 var jyd8 = jy2.redSqr();
32522 jyd8 = jyd8.redIAdd(jyd8);
32523 jyd8 = jyd8.redIAdd(jyd8);
32524 jyd8 = jyd8.redIAdd(jyd8);
32525 var ny = c.redMul(t2).redISub(jyd8);
32526 var nz = jy.redAdd(jy).redMul(jz);
32528 return this.curve.jpoint(nx, ny, nz);
32531 JPoint.prototype.trpl = function trpl() {
32532 if (!this.curve.zeroA)
32533 return this.dbl().add(this);
32535 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
32539 var xx = this.x.redSqr();
32541 var yy = this.y.redSqr();
32543 var zz = this.z.redSqr();
32545 var yyyy = yy.redSqr();
32546 // M =
3 * XX + a * ZZ2; a =
0
32547 var m = xx.redAdd(xx).redIAdd(xx);
32549 var mm = m.redSqr();
32550 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
32551 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32553 e = e.redAdd(e).redIAdd(e);
32556 var ee = e.redSqr();
32558 var t = yyyy.redIAdd(yyyy);
32562 // U = (M + E)^
2 - MM - EE - T
32563 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
32564 // X3 =
4 * (X1 * EE -
4 * YY * U)
32565 var yyu4 = yy.redMul(u);
32566 yyu4 = yyu4.redIAdd(yyu4);
32567 yyu4 = yyu4.redIAdd(yyu4);
32568 var nx = this.x.redMul(ee).redISub(yyu4);
32569 nx = nx.redIAdd(nx);
32570 nx = nx.redIAdd(nx);
32571 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
32572 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
32573 ny = ny.redIAdd(ny);
32574 ny = ny.redIAdd(ny);
32575 ny = ny.redIAdd(ny);
32576 // Z3 = (Z1 + E)^
2 - ZZ - EE
32577 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
32579 return this.curve.jpoint(nx, ny, nz);
32582 JPoint.prototype.mul = function mul(k, kbase) {
32583 k = new BN(k, kbase);
32585 return this.curve._wnafMul(this, k);
32588 JPoint.prototype.eq = function eq(p) {
32589 if (p.type === 'affine')
32590 return this.eq(p.toJ());
32595 // x1 * z2^
2 == x2 * z1^
2
32596 var z2 = this.z.redSqr();
32597 var pz2 = p.z.redSqr();
32598 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
32601 // y1 * z2^
3 == y2 * z1^
3
32602 var z3 = z2.redMul(this.z);
32603 var pz3 = pz2.redMul(p.z);
32604 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
32607 JPoint.prototype.eqXToP = function eqXToP(x) {
32608 var zs = this.z.redSqr();
32609 var rx = x.toRed(this.curve.red).redMul(zs);
32610 if (this.x.cmp(rx) ===
0)
32613 var xc = x.clone();
32614 var t = this.curve.redN.redMul(zs);
32616 xc.iadd(this.curve.n);
32617 if (xc.cmp(this.curve.p)
>=
0)
32621 if (this.x.cmp(rx) ===
0)
32627 JPoint.prototype.inspect = function inspect() {
32628 if (this.isInfinity())
32629 return '
<EC JPoint Infinity
>';
32630 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
32631 ' y: ' + this.y.toString(
16,
2) +
32632 ' z: ' + this.z.toString(
16,
2) + '
>';
32635 JPoint.prototype.isInfinity = function isInfinity() {
32636 // XXX This code assumes that zero is always zero in red
32637 return this.z.cmpn(
0) ===
0;
32640 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
32643 var curves = exports;
32645 var hash = require('hash.js');
32646 var elliptic = require('../elliptic');
32648 var assert = elliptic.utils.assert;
32650 function PresetCurve(options) {
32651 if (options.type === 'short')
32652 this.curve = new elliptic.curve.short(options);
32653 else if (options.type === 'edwards')
32654 this.curve = new elliptic.curve.edwards(options);
32656 this.curve = new elliptic.curve.mont(options);
32657 this.g = this.curve.g;
32658 this.n = this.curve.n;
32659 this.hash = options.hash;
32661 assert(this.g.validate(), 'Invalid curve');
32662 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
32664 curves.PresetCurve = PresetCurve;
32666 function defineCurve(name, options) {
32667 Object.defineProperty(curves, name, {
32668 configurable: true,
32671 var curve = new PresetCurve(options);
32672 Object.defineProperty(curves, name, {
32673 configurable: true,
32682 defineCurve('p192', {
32685 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
32686 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
32687 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
32688 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
32692 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
32693 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
32697 defineCurve('p224', {
32700 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
32701 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
32702 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
32703 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
32707 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
32708 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
32712 defineCurve('p256', {
32715 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
32716 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
32717 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
32718 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
32722 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
32723 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
32727 defineCurve('p384', {
32730 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32731 'fffffffe ffffffff
00000000 00000000 ffffffff',
32732 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32733 'fffffffe ffffffff
00000000 00000000 fffffffc',
32734 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
32735 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
32736 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
32737 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
32741 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
32742 '
5502f25d bf55296c
3a545e38
72760ab7',
32743 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
32744 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
32748 defineCurve('p521', {
32751 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32752 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32753 'ffffffff ffffffff ffffffff ffffffff ffffffff',
32754 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32755 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32756 'ffffffff ffffffff ffffffff ffffffff fffffffc',
32757 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
32758 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
32759 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
32760 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32761 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
32762 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
32766 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
32767 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
32768 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
32769 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
32770 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
32771 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
32775 defineCurve('curve25519', {
32778 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32781 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32789 defineCurve('ed25519', {
32792 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32795 // -
121665 * (
121666^(-
1)) (mod P)
32796 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
32797 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32801 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
32804 '
6666666666666666666666666666666666666666666666666666666666666658'
32810 pre = require('./precomputed/secp256k1');
32815 defineCurve('secp256k1', {
32818 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
32821 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
32825 // Precomputed endomorphism
32826 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
32827 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
32830 a: '
3086d221a7d46bcde86c90e49284eb15',
32831 b: '-e4437ed6010e88286f547fa90abfe4c3'
32834 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
32835 b: '
3086d221a7d46bcde86c90e49284eb15'
32841 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
32842 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
32847 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
32850 var BN = require('bn.js');
32851 var elliptic = require('../../elliptic');
32852 var utils = elliptic.utils;
32853 var assert = utils.assert;
32855 var KeyPair = require('./key');
32856 var Signature = require('./signature');
32858 function EC(options) {
32859 if (!(this instanceof EC))
32860 return new EC(options);
32862 // Shortcut `elliptic.ec(curve-name)`
32863 if (typeof options === 'string') {
32864 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
32866 options = elliptic.curves[options];
32869 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
32870 if (options instanceof elliptic.curves.PresetCurve)
32871 options = { curve: options };
32873 this.curve = options.curve.curve;
32874 this.n = this.curve.n;
32875 this.nh = this.n.ushrn(
1);
32876 this.g = this.curve.g;
32879 this.g = options.curve.g;
32880 this.g.precompute(options.curve.n.bitLength() +
1);
32882 // Hash for function for DRBG
32883 this.hash = options.hash || options.curve.hash;
32885 module.exports = EC;
32887 EC.prototype.keyPair = function keyPair(options) {
32888 return new KeyPair(this, options);
32891 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
32892 return KeyPair.fromPrivate(this, priv, enc);
32895 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
32896 return KeyPair.fromPublic(this, pub, enc);
32899 EC.prototype.genKeyPair = function genKeyPair(options) {
32903 // Instantiate Hmac_DRBG
32904 var drbg = new elliptic.hmacDRBG({
32906 pers: options.pers,
32907 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
32908 nonce: this.n.toArray()
32911 var bytes = this.n.byteLength();
32912 var ns2 = this.n.sub(new BN(
2));
32914 var priv = new BN(drbg.generate(bytes));
32915 if (priv.cmp(ns2)
> 0)
32919 return this.keyFromPrivate(priv);
32923 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
32924 var delta = msg.byteLength() *
8 - this.n.bitLength();
32926 msg = msg.ushrn(delta);
32927 if (!truncOnly && msg.cmp(this.n)
>=
0)
32928 return msg.sub(this.n);
32933 EC.prototype.sign = function sign(msg, key, enc, options) {
32934 if (typeof enc === 'object') {
32941 key = this.keyFromPrivate(key, enc);
32942 msg = this._truncateToN(new BN(msg,
16));
32944 // Zero-extend key to provide enough entropy
32945 var bytes = this.n.byteLength();
32946 var bkey = key.getPrivate().toArray('be', bytes);
32948 // Zero-extend nonce to have the same byte size as N
32949 var nonce = msg.toArray('be', bytes);
32951 // Instantiate Hmac_DRBG
32952 var drbg = new elliptic.hmacDRBG({
32956 pers: options.pers,
32957 persEnc: options.persEnc
32960 // Number of bytes to generate
32961 var ns1 = this.n.sub(new BN(
1));
32963 for (var iter =
0; true; iter++) {
32964 var k = options.k ?
32966 new BN(drbg.generate(this.n.byteLength()));
32967 k = this._truncateToN(k, true);
32968 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
32971 var kp = this.g.mul(k);
32972 if (kp.isInfinity())
32975 var kpX = kp.getX();
32976 var r = kpX.umod(this.n);
32977 if (r.cmpn(
0) ===
0)
32980 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
32981 s = s.umod(this.n);
32982 if (s.cmpn(
0) ===
0)
32985 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
32986 (kpX.cmp(r) !==
0 ?
2 :
0);
32988 // Use complement of `s`, if it is
> `n /
2`
32989 if (options.canonical && s.cmp(this.nh)
> 0) {
32991 recoveryParam ^=
1;
32994 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
32998 EC.prototype.verify = function verify(msg, signature, key, enc) {
32999 msg = this._truncateToN(new BN(msg,
16));
33000 key = this.keyFromPublic(key, enc);
33001 signature = new Signature(signature, 'hex');
33003 // Perform primitive values validation
33004 var r = signature.r;
33005 var s = signature.s;
33006 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
33008 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
33011 // Validate signature
33012 var sinv = s.invm(this.n);
33013 var u1 = sinv.mul(msg).umod(this.n);
33014 var u2 = sinv.mul(r).umod(this.n);
33016 if (!this.curve._maxwellTrick) {
33017 var p = this.g.mulAdd(u1, key.getPublic(), u2);
33018 if (p.isInfinity())
33021 return p.getX().umod(this.n).cmp(r) ===
0;
33024 // NOTE: Greg Maxwell's trick, inspired by:
33025 // https://git.io/vad3K
33027 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
33028 if (p.isInfinity())
33031 // Compare `p.x` of Jacobian point with `r`,
33032 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
33033 // inverse of `p.z^
2`
33034 return p.eqXToP(r);
33037 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
33038 assert((
3 & j) === j, 'The recovery param is more than two bits');
33039 signature = new Signature(signature, enc);
33042 var e = new BN(msg);
33043 var r = signature.r;
33044 var s = signature.s;
33046 // A set LSB signifies that the y-coordinate is odd
33047 var isYOdd = j &
1;
33048 var isSecondKey = j
>> 1;
33049 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
33050 throw new Error('Unable to find sencond key candinate');
33052 //
1.1. Let x = r + jn.
33054 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
33056 r = this.curve.pointFromX(r, isYOdd);
33058 var rInv = signature.r.invm(n);
33059 var s1 = n.sub(e).mul(rInv).umod(n);
33060 var s2 = s.mul(rInv).umod(n);
33062 //
1.6.1 Compute Q = r^-
1 (sR - eG)
33063 // Q = r^-
1 (sR + -eG)
33064 return this.g.mulAdd(s1, r, s2);
33067 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
33068 signature = new Signature(signature, enc);
33069 if (signature.recoveryParam !== null)
33070 return signature.recoveryParam;
33072 for (var i =
0; i <
4; i++) {
33075 Qprime = this.recoverPubKey(e, signature, i);
33083 throw new Error('Unable to find valid recovery factor');
33086 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
33089 var BN = require('bn.js');
33090 var elliptic = require('../../elliptic');
33091 var utils = elliptic.utils;
33092 var assert = utils.assert;
33094 function KeyPair(ec, options) {
33099 // KeyPair(ec, { priv: ..., pub: ... })
33101 this._importPrivate(options.priv, options.privEnc);
33103 this._importPublic(options.pub, options.pubEnc);
33105 module.exports = KeyPair;
33107 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
33108 if (pub instanceof KeyPair)
33111 return new KeyPair(ec, {
33117 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33118 if (priv instanceof KeyPair)
33121 return new KeyPair(ec, {
33127 KeyPair.prototype.validate = function validate() {
33128 var pub = this.getPublic();
33130 if (pub.isInfinity())
33131 return { result: false, reason: 'Invalid public key' };
33132 if (!pub.validate())
33133 return { result: false, reason: 'Public key is not a point' };
33134 if (!pub.mul(this.ec.curve.n).isInfinity())
33135 return { result: false, reason: 'Public key * N != O' };
33137 return { result: true, reason: null };
33140 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
33141 // compact is optional argument
33142 if (typeof compact === 'string') {
33148 this.pub = this.ec.g.mul(this.priv);
33153 return this.pub.encode(enc, compact);
33156 KeyPair.prototype.getPrivate = function getPrivate(enc) {
33158 return this.priv.toString(
16,
2);
33163 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
33164 this.priv = new BN(key, enc ||
16);
33166 // Ensure that the priv won't be bigger than n, otherwise we may fail
33167 // in fixed multiplication method
33168 this.priv = this.priv.umod(this.ec.curve.n);
33171 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
33172 if (key.x || key.y) {
33173 // Montgomery points only have an `x` coordinate.
33174 // Weierstrass/Edwards points on the other hand have both `x` and
33175 // `y` coordinates.
33176 if (this.ec.curve.type === 'mont') {
33177 assert(key.x, 'Need x coordinate');
33178 } else if (this.ec.curve.type === 'short' ||
33179 this.ec.curve.type === 'edwards') {
33180 assert(key.x && key.y, 'Need both x and y coordinate');
33182 this.pub = this.ec.curve.point(key.x, key.y);
33185 this.pub = this.ec.curve.decodePoint(key, enc);
33189 KeyPair.prototype.derive = function derive(pub) {
33190 return pub.mul(this.priv).getX();
33194 KeyPair.prototype.sign = function sign(msg, enc, options) {
33195 return this.ec.sign(msg, this, enc, options);
33198 KeyPair.prototype.verify = function verify(msg, signature) {
33199 return this.ec.verify(msg, signature, this);
33202 KeyPair.prototype.inspect = function inspect() {
33203 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
33204 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
33207 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
33210 var BN = require('bn.js');
33212 var elliptic = require('../../elliptic');
33213 var utils = elliptic.utils;
33214 var assert = utils.assert;
33216 function Signature(options, enc) {
33217 if (options instanceof Signature)
33220 if (this._importDER(options, enc))
33223 assert(options.r && options.s, 'Signature without r or s');
33224 this.r = new BN(options.r,
16);
33225 this.s = new BN(options.s,
16);
33226 if (options.recoveryParam === undefined)
33227 this.recoveryParam = null;
33229 this.recoveryParam = options.recoveryParam;
33231 module.exports = Signature;
33233 function Position() {
33237 function getLength(buf, p) {
33238 var initial = buf[p.place++];
33239 if (!(initial &
0x80)) {
33242 var octetLen = initial &
0xf;
33244 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
33252 function rmPadding(buf) {
33254 var len = buf.length -
1;
33255 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
33261 return buf.slice(i);
33264 Signature.prototype._importDER = function _importDER(data, enc) {
33265 data = utils.toArray(data, enc);
33266 var p = new Position();
33267 if (data[p.place++] !==
0x30) {
33270 var len = getLength(data, p);
33271 if ((len + p.place) !== data.length) {
33274 if (data[p.place++] !==
0x02) {
33277 var rlen = getLength(data, p);
33278 var r = data.slice(p.place, rlen + p.place);
33280 if (data[p.place++] !==
0x02) {
33283 var slen = getLength(data, p);
33284 if (data.length !== slen + p.place) {
33287 var s = data.slice(p.place, slen + p.place);
33288 if (r[
0] ===
0 && (r[
1] &
0x80)) {
33291 if (s[
0] ===
0 && (s[
1] &
0x80)) {
33295 this.r = new BN(r);
33296 this.s = new BN(s);
33297 this.recoveryParam = null;
33302 function constructLength(arr, len) {
33307 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
33308 arr.push(octets |
0x80);
33310 arr.push((len
>>> (octets <<
3)) &
0xff);
33315 Signature.prototype.toDER = function toDER(enc) {
33316 var r = this.r.toArray();
33317 var s = this.s.toArray();
33321 r = [
0 ].concat(r);
33324 s = [
0 ].concat(s);
33329 while (!s[
0] && !(s[
1] &
0x80)) {
33332 var arr = [
0x02 ];
33333 constructLength(arr, r.length);
33334 arr = arr.concat(r);
33336 constructLength(arr, s.length);
33337 var backHalf = arr.concat(s);
33338 var res = [
0x30 ];
33339 constructLength(res, backHalf.length);
33340 res = res.concat(backHalf);
33341 return utils.encode(res, enc);
33344 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
33347 var hash = require('hash.js');
33348 var elliptic = require('../../elliptic');
33349 var utils = elliptic.utils;
33350 var assert = utils.assert;
33351 var parseBytes = utils.parseBytes;
33352 var KeyPair = require('./key');
33353 var Signature = require('./signature');
33355 function EDDSA(curve) {
33356 assert(curve === 'ed25519', 'only tested with ed25519 so far');
33358 if (!(this instanceof EDDSA))
33359 return new EDDSA(curve);
33361 var curve = elliptic.curves[curve].curve;
33362 this.curve = curve;
33364 this.g.precompute(curve.n.bitLength() +
1);
33366 this.pointClass = curve.point().constructor;
33367 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
33368 this.hash = hash.sha512;
33371 module.exports = EDDSA;
33374 * @param {Array|String} message - message bytes
33375 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
33376 * @returns {Signature} - signature
33378 EDDSA.prototype.sign = function sign(message, secret) {
33379 message = parseBytes(message);
33380 var key = this.keyFromSecret(secret);
33381 var r = this.hashInt(key.messagePrefix(), message);
33382 var R = this.g.mul(r);
33383 var Rencoded = this.encodePoint(R);
33384 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
33386 var S = r.add(s_).umod(this.curve.n);
33387 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
33391 * @param {Array} message - message bytes
33392 * @param {Array|String|Signature} sig - sig bytes
33393 * @param {Array|String|Point|KeyPair} pub - public key
33394 * @returns {Boolean} - true if public key matches sig of message
33396 EDDSA.prototype.verify = function verify(message, sig, pub) {
33397 message = parseBytes(message);
33398 sig = this.makeSignature(sig);
33399 var key = this.keyFromPublic(pub);
33400 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
33401 var SG = this.g.mul(sig.S());
33402 var RplusAh = sig.R().add(key.pub().mul(h));
33403 return RplusAh.eq(SG);
33406 EDDSA.prototype.hashInt = function hashInt() {
33407 var hash = this.hash();
33408 for (var i =
0; i < arguments.length; i++)
33409 hash.update(arguments[i]);
33410 return utils.intFromLE(hash.digest()).umod(this.curve.n);
33413 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
33414 return KeyPair.fromPublic(this, pub);
33417 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
33418 return KeyPair.fromSecret(this, secret);
33421 EDDSA.prototype.makeSignature = function makeSignature(sig) {
33422 if (sig instanceof Signature)
33424 return new Signature(this, sig);
33428 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
33430 * EDDSA defines methods for encoding and decoding points and integers. These are
33431 * helper convenience methods, that pass along to utility functions implied
33435 EDDSA.prototype.encodePoint = function encodePoint(point) {
33436 var enc = point.getY().toArray('le', this.encodingLength);
33437 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
33441 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
33442 bytes = utils.parseBytes(bytes);
33444 var lastIx = bytes.length -
1;
33445 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
33446 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
33448 var y = utils.intFromLE(normed);
33449 return this.curve.pointFromY(y, xIsOdd);
33452 EDDSA.prototype.encodeInt = function encodeInt(num) {
33453 return num.toArray('le', this.encodingLength);
33456 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
33457 return utils.intFromLE(bytes);
33460 EDDSA.prototype.isPoint = function isPoint(val) {
33461 return val instanceof this.pointClass;
33464 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
33467 var elliptic = require('../../elliptic');
33468 var utils = elliptic.utils;
33469 var assert = utils.assert;
33470 var parseBytes = utils.parseBytes;
33471 var cachedProperty = utils.cachedProperty;
33474 * @param {EDDSA} eddsa - instance
33475 * @param {Object} params - public/private key parameters
33477 * @param {Array
<Byte>} [params.secret] - secret seed bytes
33478 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
33479 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
33482 function KeyPair(eddsa, params) {
33483 this.eddsa = eddsa;
33484 this._secret = parseBytes(params.secret);
33485 if (eddsa.isPoint(params.pub))
33486 this._pub = params.pub;
33488 this._pubBytes = parseBytes(params.pub);
33491 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
33492 if (pub instanceof KeyPair)
33494 return new KeyPair(eddsa, { pub: pub });
33497 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
33498 if (secret instanceof KeyPair)
33500 return new KeyPair(eddsa, { secret: secret });
33503 KeyPair.prototype.secret = function secret() {
33504 return this._secret;
33507 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
33508 return this.eddsa.encodePoint(this.pub());
33511 cachedProperty(KeyPair, 'pub', function pub() {
33512 if (this._pubBytes)
33513 return this.eddsa.decodePoint(this._pubBytes);
33514 return this.eddsa.g.mul(this.priv());
33517 cachedProperty(KeyPair, 'privBytes', function privBytes() {
33518 var eddsa = this.eddsa;
33519 var hash = this.hash();
33520 var lastIx = eddsa.encodingLength -
1;
33522 var a = hash.slice(
0, eddsa.encodingLength);
33530 cachedProperty(KeyPair, 'priv', function priv() {
33531 return this.eddsa.decodeInt(this.privBytes());
33534 cachedProperty(KeyPair, 'hash', function hash() {
33535 return this.eddsa.hash().update(this.secret()).digest();
33538 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
33539 return this.hash().slice(this.eddsa.encodingLength);
33542 KeyPair.prototype.sign = function sign(message) {
33543 assert(this._secret, 'KeyPair can only verify');
33544 return this.eddsa.sign(message, this);
33547 KeyPair.prototype.verify = function verify(message, sig) {
33548 return this.eddsa.verify(message, sig, this);
33551 KeyPair.prototype.getSecret = function getSecret(enc) {
33552 assert(this._secret, 'KeyPair is public only');
33553 return utils.encode(this.secret(), enc);
33556 KeyPair.prototype.getPublic = function getPublic(enc) {
33557 return utils.encode(this.pubBytes(), enc);
33560 module.exports = KeyPair;
33562 },{"../../elliptic":
39}],
51:[function(require,module,exports){
33565 var BN = require('bn.js');
33566 var elliptic = require('../../elliptic');
33567 var utils = elliptic.utils;
33568 var assert = utils.assert;
33569 var cachedProperty = utils.cachedProperty;
33570 var parseBytes = utils.parseBytes;
33573 * @param {EDDSA} eddsa - eddsa instance
33574 * @param {Array
<Bytes>|Object} sig -
33575 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
33576 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
33577 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
33578 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
33580 function Signature(eddsa, sig) {
33581 this.eddsa = eddsa;
33583 if (typeof sig !== 'object')
33584 sig = parseBytes(sig);
33586 if (Array.isArray(sig)) {
33588 R: sig.slice(
0, eddsa.encodingLength),
33589 S: sig.slice(eddsa.encodingLength)
33593 assert(sig.R && sig.S, 'Signature without R or S');
33595 if (eddsa.isPoint(sig.R))
33597 if (sig.S instanceof BN)
33600 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
33601 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
33604 cachedProperty(Signature, 'S', function S() {
33605 return this.eddsa.decodeInt(this.Sencoded());
33608 cachedProperty(Signature, 'R', function R() {
33609 return this.eddsa.decodePoint(this.Rencoded());
33612 cachedProperty(Signature, 'Rencoded', function Rencoded() {
33613 return this.eddsa.encodePoint(this.R());
33616 cachedProperty(Signature, 'Sencoded', function Sencoded() {
33617 return this.eddsa.encodeInt(this.S());
33620 Signature.prototype.toBytes = function toBytes() {
33621 return this.Rencoded().concat(this.Sencoded());
33624 Signature.prototype.toHex = function toHex() {
33625 return utils.encode(this.toBytes(), 'hex').toUpperCase();
33628 module.exports = Signature;
33630 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
33633 var hash = require('hash.js');
33634 var elliptic = require('../elliptic');
33635 var utils = elliptic.utils;
33636 var assert = utils.assert;
33638 function HmacDRBG(options) {
33639 if (!(this instanceof HmacDRBG))
33640 return new HmacDRBG(options);
33641 this.hash = options.hash;
33642 this.predResist = !!options.predResist;
33644 this.outLen = this.hash.outSize;
33645 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
33647 this.reseed = null;
33648 this.reseedInterval = null;
33652 var entropy = utils.toArray(options.entropy, options.entropyEnc);
33653 var nonce = utils.toArray(options.nonce, options.nonceEnc);
33654 var pers = utils.toArray(options.pers, options.persEnc);
33655 assert(entropy.length
>= (this.minEntropy /
8),
33656 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33657 this._init(entropy, nonce, pers);
33659 module.exports = HmacDRBG;
33661 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
33662 var seed = entropy.concat(nonce).concat(pers);
33664 this.K = new Array(this.outLen /
8);
33665 this.V = new Array(this.outLen /
8);
33666 for (var i =
0; i < this.V.length; i++) {
33671 this._update(seed);
33673 this.reseedInterval =
0x1000000000000; //
2^
48
33676 HmacDRBG.prototype._hmac = function hmac() {
33677 return new hash.hmac(this.hash, this.K);
33680 HmacDRBG.prototype._update = function update(seed) {
33681 var kmac = this._hmac()
33685 kmac = kmac.update(seed);
33686 this.K = kmac.digest();
33687 this.V = this._hmac().update(this.V).digest();
33691 this.K = this._hmac()
33696 this.V = this._hmac().update(this.V).digest();
33699 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
33700 // Optional entropy enc
33701 if (typeof entropyEnc !== 'string') {
33707 entropy = utils.toBuffer(entropy, entropyEnc);
33708 add = utils.toBuffer(add, addEnc);
33710 assert(entropy.length
>= (this.minEntropy /
8),
33711 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33713 this._update(entropy.concat(add || []));
33717 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
33718 if (this.reseed
> this.reseedInterval)
33719 throw new Error('Reseed is required');
33721 // Optional encoding
33722 if (typeof enc !== 'string') {
33728 // Optional additional data
33730 add = utils.toArray(add, addEnc);
33735 while (temp.length < len) {
33736 this.V = this._hmac().update(this.V).digest();
33737 temp = temp.concat(this.V);
33740 var res = temp.slice(
0, len);
33743 return utils.encode(res, enc);
33746 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
33752 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
33753 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
33756 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
33757 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
33760 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
33761 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
33764 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
33765 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
33768 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
33769 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
33772 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
33773 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
33776 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
33777 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
33780 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
33781 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
33784 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
33785 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
33788 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
33789 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
33792 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
33793 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
33796 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
33797 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
33800 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
33801 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
33804 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
33805 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
33808 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
33809 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
33812 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
33813 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
33816 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
33817 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
33820 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
33821 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
33824 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
33825 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
33828 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
33829 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
33832 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
33833 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
33836 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
33837 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
33840 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
33841 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
33844 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
33845 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
33848 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
33849 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
33852 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
33853 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
33856 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
33857 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
33860 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
33861 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
33864 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
33865 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
33868 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
33869 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
33872 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
33873 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
33876 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
33877 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
33880 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
33881 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
33884 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
33885 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
33888 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
33889 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
33892 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
33893 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
33896 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
33897 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
33900 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
33901 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
33904 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
33905 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
33908 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
33909 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
33912 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
33913 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
33916 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
33917 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
33920 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
33921 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
33924 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
33925 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
33928 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
33929 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
33932 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
33933 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
33936 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
33937 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
33940 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
33941 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
33944 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
33945 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
33948 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
33949 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
33952 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
33953 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
33956 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
33957 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
33960 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
33961 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
33964 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
33965 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
33968 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
33969 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
33972 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
33973 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
33976 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
33977 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
33980 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
33981 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
33984 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
33985 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
33988 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
33989 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
33992 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
33993 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
33996 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
33997 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
34000 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
34001 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
34004 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
34005 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
34008 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
34009 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
34017 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
34018 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
34021 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
34022 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
34025 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
34026 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
34029 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
34030 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
34033 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
34034 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
34037 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
34038 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
34041 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
34042 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
34045 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
34046 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
34049 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
34050 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
34053 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
34054 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
34057 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
34058 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
34061 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
34062 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
34065 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
34066 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
34069 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
34070 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
34073 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
34074 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
34077 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
34078 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
34081 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
34082 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
34085 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
34086 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
34089 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
34090 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
34093 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
34094 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
34097 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
34098 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
34101 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
34102 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
34105 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
34106 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
34109 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
34110 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
34113 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
34114 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
34117 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
34118 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
34121 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
34122 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
34125 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
34126 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
34129 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
34130 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
34133 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
34134 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
34137 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
34138 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
34141 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
34142 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
34145 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
34146 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
34149 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
34150 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
34153 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
34154 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
34157 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
34158 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
34161 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
34162 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
34165 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
34166 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
34169 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
34170 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
34173 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
34174 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
34177 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
34178 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
34181 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
34182 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
34185 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
34186 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
34189 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
34190 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
34193 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
34194 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
34197 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
34198 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
34201 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
34202 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
34205 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
34206 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
34209 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
34210 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
34213 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
34214 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
34217 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
34218 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
34221 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
34222 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
34225 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
34226 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
34229 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
34230 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
34233 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
34234 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
34237 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
34238 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
34241 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
34242 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
34245 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
34246 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
34249 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
34250 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
34253 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
34254 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
34257 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
34258 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
34261 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
34262 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
34265 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
34266 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
34269 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
34270 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
34273 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
34274 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
34277 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
34278 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
34281 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
34282 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
34285 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
34286 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
34289 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
34290 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
34293 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
34294 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
34297 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
34298 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
34301 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
34302 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
34305 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
34306 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
34309 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
34310 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
34313 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
34314 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
34317 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
34318 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
34321 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
34322 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
34325 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
34326 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
34329 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
34330 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
34333 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
34334 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
34337 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
34338 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
34341 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
34342 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
34345 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
34346 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
34349 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
34350 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
34353 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
34354 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
34357 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
34358 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
34361 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
34362 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
34365 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
34366 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
34369 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
34370 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
34373 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
34374 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
34377 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
34378 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
34381 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
34382 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
34385 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
34386 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
34389 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
34390 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
34393 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
34394 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
34397 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
34398 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
34401 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
34402 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
34405 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
34406 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
34409 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
34410 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
34413 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
34414 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
34417 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
34418 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
34421 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
34422 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
34425 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
34426 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
34429 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
34430 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
34433 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
34434 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
34437 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
34438 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
34441 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
34442 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
34445 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
34446 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
34449 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
34450 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
34453 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
34454 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
34457 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
34458 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
34461 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
34462 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
34465 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
34466 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
34469 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
34470 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
34473 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
34474 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
34477 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
34478 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
34481 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
34482 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
34485 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
34486 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
34489 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
34490 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
34493 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
34494 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
34497 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
34498 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
34501 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
34502 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
34505 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
34506 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
34509 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
34510 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
34513 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
34514 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
34517 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
34518 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
34521 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
34522 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
34528 },{}],
54:[function(require,module,exports){
34531 var utils = exports;
34532 var BN = require('bn.js');
34534 utils.assert = function assert(val, msg) {
34536 throw new Error(msg || 'Assertion failed');
34539 function toArray(msg, enc) {
34540 if (Array.isArray(msg))
34541 return msg.slice();
34545 if (typeof msg !== 'string') {
34546 for (var i =
0; i < msg.length; i++)
34547 res[i] = msg[i] |
0;
34551 for (var i =
0; i < msg.length; i++) {
34552 var c = msg.charCodeAt(i);
34560 } else if (enc === 'hex') {
34561 msg = msg.replace(/[^a-z0-
9]+/ig, '');
34562 if (msg.length %
2 !==
0)
34564 for (var i =
0; i < msg.length; i +=
2)
34565 res.push(parseInt(msg[i] + msg[i +
1],
16));
34569 utils.toArray = toArray;
34571 function zero2(word) {
34572 if (word.length ===
1)
34577 utils.zero2 = zero2;
34579 function toHex(msg) {
34581 for (var i =
0; i < msg.length; i++)
34582 res += zero2(msg[i].toString(
16));
34585 utils.toHex = toHex;
34587 utils.encode = function encode(arr, enc) {
34594 // Represent num in a w-NAF form
34595 function getNAF(num, w) {
34597 var ws =
1 << (w +
1);
34598 var k = num.clone();
34599 while (k.cmpn(
1)
>=
0) {
34602 var mod = k.andln(ws -
1);
34603 if (mod
> (ws
>> 1) -
1)
34604 z = (ws
>> 1) - mod;
34613 // Optimization, shift by word if possible
34614 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
34615 for (var i =
1; i < shift; i++)
34622 utils.getNAF = getNAF;
34624 // Represent k1, k2 in a Joint Sparse Form
34625 function getJSF(k1, k2) {
34635 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
34638 var m14 = (k1.andln(
3) + d1) &
3;
34639 var m24 = (k2.andln(
3) + d2) &
3;
34645 if ((m14 &
1) ===
0) {
34648 var m8 = (k1.andln(
7) + d1) &
7;
34649 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
34657 if ((m24 &
1) ===
0) {
34660 var m8 = (k2.andln(
7) + d2) &
7;
34661 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
34669 if (
2 * d1 === u1 +
1)
34671 if (
2 * d2 === u2 +
1)
34679 utils.getJSF = getJSF;
34681 function cachedProperty(obj, name, computer) {
34682 var key = '_' + name;
34683 obj.prototype[name] = function cachedProperty() {
34684 return this[key] !== undefined ? this[key] :
34685 this[key] = computer.call(this);
34688 utils.cachedProperty = cachedProperty;
34690 function parseBytes(bytes) {
34691 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
34694 utils.parseBytes = parseBytes;
34696 function intFromLE(bytes) {
34697 return new BN(bytes, 'hex', 'le');
34699 utils.intFromLE = intFromLE;
34702 },{
"bn.js":
33}],
55:[function(require,module,exports){
34707 "raw":
"elliptic@^6.2.3",
34709 "escapedName":
"elliptic",
34710 "name":
"elliptic",
34711 "rawSpec":
"^6.2.3",
34712 "spec":
">=6.2.3 <7.0.0",
34715 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
34718 "_from":
"elliptic@>=6.2.3 <7.0.0",
34719 "_id":
"elliptic@6.3.3",
34721 "_location":
"/elliptic",
34722 "_nodeVersion":
"7.0.0",
34723 "_npmOperationalInternal": {
34724 "host":
"packages-18-east.internal.npmjs.com",
34725 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
34729 "email":
"fedor@indutny.com"
34731 "_npmVersion":
"3.10.8",
34732 "_phantomChildren": {},
34734 "raw":
"elliptic@^6.2.3",
34736 "escapedName":
"elliptic",
34737 "name":
"elliptic",
34738 "rawSpec":
"^6.2.3",
34739 "spec":
">=6.2.3 <7.0.0",
34743 "/browserify-sign",
34747 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
34748 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34749 "_shrinkwrap": null,
34750 "_spec":
"elliptic@^6.2.3",
34751 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
34753 "name":
"Fedor Indutny",
34754 "email":
"fedor@indutny.com"
34757 "url":
"https://github.com/indutny/elliptic/issues"
34761 "brorand":
"^1.0.1",
34762 "hash.js":
"^1.0.0",
34763 "inherits":
"^2.0.1"
34765 "description":
"EC cryptography",
34766 "devDependencies": {
34768 "coveralls":
"^2.11.3",
34770 "grunt-browserify":
"^5.0.0",
34771 "grunt-cli":
"^1.2.0",
34772 "grunt-contrib-connect":
"^1.0.0",
34773 "grunt-contrib-copy":
"^1.0.0",
34774 "grunt-contrib-uglify":
"^1.0.1",
34775 "grunt-mocha-istanbul":
"^3.0.1",
34776 "grunt-saucelabs":
"^8.6.2",
34777 "istanbul":
"^0.4.2",
34779 "jshint":
"^2.6.0",
34784 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34785 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
34790 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
34791 "homepage":
"https://github.com/indutny/elliptic",
34799 "main":
"lib/elliptic.js",
34803 "email":
"fedor@indutny.com"
34806 "name":
"elliptic",
34807 "optionalDependencies": {},
34808 "readme":
"ERROR: No README data found!",
34811 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
34814 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34815 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34816 "lint":
"npm run jscs && npm run jshint",
34817 "test":
"npm run lint && npm run unit",
34818 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
34819 "version":
"grunt dist && git add dist/"
34824 },{}],
56:[function(require,module,exports){
34825 (function (Buffer){
34828 var isHexPrefixed = require('is-hex-prefixed');
34829 var stripHexPrefix = require('strip-hex-prefix');
34832 * Pads a `String` to have an even length
34833 * @param {String} value
34834 * @return {String} output
34836 function padToEven(value) {
34837 var a = value; // eslint-disable-line
34839 if (typeof a !== 'string') {
34840 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
34843 if (a.length %
2) {
34851 * Converts a `Number` into a hex `String`
34852 * @param {Number} i
34855 function intToHex(i) {
34856 var hex = i.toString(
16); // eslint-disable-line
34858 return '
0x' + padToEven(hex);
34862 * Converts an `Number` to a `Buffer`
34863 * @param {Number} i
34866 function intToBuffer(i) {
34867 var hex = intToHex(i);
34869 return new Buffer(hex.slice(
2), 'hex');
34873 * Get the binary size of a string
34874 * @param {String} str
34877 function getBinarySize(str) {
34878 if (typeof str !== 'string') {
34879 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
34882 return Buffer.byteLength(str, 'utf8');
34886 * Returns TRUE if the first specified array contains all elements
34887 * from the second one. FALSE otherwise.
34889 * @param {array} superset
34890 * @param {array} subset
34892 * @returns {boolean}
34894 function arrayContainsArray(superset, subset, some) {
34895 if (Array.isArray(superset) !== true) {
34896 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
34898 if (Array.isArray(subset) !== true) {
34899 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
34902 return subset[Boolean(some) && 'some' || 'every'](function (value) {
34903 return superset.indexOf(value)
>=
0;
34908 * Should be called to get utf8 from it's hex representation
34911 * @param {String} string in hex
34912 * @returns {String} ascii string representation of hex value
34914 function toUtf8(hex) {
34915 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
34917 return bufferValue.toString('utf8');
34921 * Should be called to get ascii from it's hex representation
34924 * @param {String} string in hex
34925 * @returns {String} ascii string representation of hex value
34927 function toAscii(hex) {
34928 var str = ''; // eslint-disable-line
34930 l = hex.length; // eslint-disable-line
34932 if (hex.substring(
0,
2) === '
0x') {
34936 for (; i < l; i +=
2) {
34937 var code = parseInt(hex.substr(i,
2),
16);
34938 str += String.fromCharCode(code);
34945 * Should be called to get hex representation (prefixed by
0x) of utf8 string
34948 * @param {String} string
34949 * @param {Number} optional padding
34950 * @returns {String} hex representation of input string
34952 function fromUtf8(stringValue) {
34953 var str = new Buffer(stringValue, 'utf8');
34955 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
34959 * Should be called to get hex representation (prefixed by
0x) of ascii string
34961 * @method fromAscii
34962 * @param {String} string
34963 * @param {Number} optional padding
34964 * @returns {String} hex representation of input string
34966 function fromAscii(stringValue) {
34967 var hex = ''; // eslint-disable-line
34968 for (var i =
0; i < stringValue.length; i++) {
34969 // eslint-disable-line
34970 var code = stringValue.charCodeAt(i);
34971 var n = code.toString(
16);
34972 hex += n.length <
2 ? '
0' + n : n;
34979 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
34981 * @method getKeys get specific key from inner object array of objects
34982 * @param {String} params
34983 * @param {String} key
34984 * @param {Boolean} allowEmpty
34985 * @returns {Array} output just a simple array of output keys
34987 function getKeys(params, key, allowEmpty) {
34988 if (!Array.isArray(params)) {
34989 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
34991 if (typeof key !== 'string') {
34992 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
34995 var result = []; // eslint-disable-line
34997 for (var i =
0; i < params.length; i++) {
34998 // eslint-disable-line
34999 var value = params[i][key]; // eslint-disable-line
35000 if (allowEmpty && !value) {
35002 } else if (typeof value !== 'string') {
35003 throw new Error('invalid abi');
35005 result.push(value);
35012 * Is the string a hex string.
35014 * @method check if string is hex string of specific length
35015 * @param {String} value
35016 * @param {Number} length
35017 * @returns {Boolean} output the string is a hex string
35019 function isHexString(value, length) {
35020 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
35024 if (length && value.length !==
2 +
2 * length) {
35032 arrayContainsArray: arrayContainsArray,
35033 intToBuffer: intToBuffer,
35034 getBinarySize: getBinarySize,
35035 isHexPrefixed: isHexPrefixed,
35036 stripHexPrefix: stripHexPrefix,
35037 padToEven: padToEven,
35038 intToHex: intToHex,
35039 fromAscii: fromAscii,
35040 fromUtf8: fromUtf8,
35044 isHexString: isHexString
35046 }).call(this,require("buffer").Buffer)
35047 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
35048 var hash = exports;
35050 hash.utils = require('./hash/utils');
35051 hash.common = require('./hash/common');
35052 hash.sha = require('./hash/sha');
35053 hash.ripemd = require('./hash/ripemd');
35054 hash.hmac = require('./hash/hmac');
35056 // Proxy hash functions to the main object
35057 hash.sha1 = hash.sha.sha1;
35058 hash.sha256 = hash.sha.sha256;
35059 hash.sha224 = hash.sha.sha224;
35060 hash.sha384 = hash.sha.sha384;
35061 hash.sha512 = hash.sha.sha512;
35062 hash.ripemd160 = hash.ripemd.ripemd160;
35064 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
35065 var hash = require('../hash');
35066 var utils = hash.utils;
35067 var assert = utils.assert;
35069 function BlockHash() {
35070 this.pending = null;
35071 this.pendingTotal =
0;
35072 this.blockSize = this.constructor.blockSize;
35073 this.outSize = this.constructor.outSize;
35074 this.hmacStrength = this.constructor.hmacStrength;
35075 this.padLength = this.constructor.padLength /
8;
35076 this.endian = 'big';
35078 this._delta8 = this.blockSize /
8;
35079 this._delta32 = this.blockSize /
32;
35081 exports.BlockHash = BlockHash;
35083 BlockHash.prototype.update = function update(msg, enc) {
35084 // Convert message to array, pad it, and join into
32bit blocks
35085 msg = utils.toArray(msg, enc);
35087 this.pending = msg;
35089 this.pending = this.pending.concat(msg);
35090 this.pendingTotal += msg.length;
35092 // Enough data, try updating
35093 if (this.pending.length
>= this._delta8) {
35094 msg = this.pending;
35096 // Process pending data in blocks
35097 var r = msg.length % this._delta8;
35098 this.pending = msg.slice(msg.length - r, msg.length);
35099 if (this.pending.length ===
0)
35100 this.pending = null;
35102 msg = utils.join32(msg,
0, msg.length - r, this.endian);
35103 for (var i =
0; i < msg.length; i += this._delta32)
35104 this._update(msg, i, i + this._delta32);
35110 BlockHash.prototype.digest = function digest(enc) {
35111 this.update(this._pad());
35112 assert(this.pending === null);
35114 return this._digest(enc);
35117 BlockHash.prototype._pad = function pad() {
35118 var len = this.pendingTotal;
35119 var bytes = this._delta8;
35120 var k = bytes - ((len + this.padLength) % bytes);
35121 var res = new Array(k + this.padLength);
35123 for (var i =
1; i < k; i++)
35128 if (this.endian === 'big') {
35129 for (var t =
8; t < this.padLength; t++)
35136 res[i++] = (len
>>> 24) &
0xff;
35137 res[i++] = (len
>>> 16) &
0xff;
35138 res[i++] = (len
>>> 8) &
0xff;
35139 res[i++] = len &
0xff;
35141 res[i++] = len &
0xff;
35142 res[i++] = (len
>>> 8) &
0xff;
35143 res[i++] = (len
>>> 16) &
0xff;
35144 res[i++] = (len
>>> 24) &
0xff;
35150 for (var t =
8; t < this.padLength; t++)
35157 },{
"../hash":
57}],
59:[function(require,module,exports){
35158 var hmac = exports;
35160 var hash = require('../hash');
35161 var utils = hash.utils;
35162 var assert = utils.assert;
35164 function Hmac(hash, key, enc) {
35165 if (!(this instanceof Hmac))
35166 return new Hmac(hash, key, enc);
35168 this.blockSize = hash.blockSize /
8;
35169 this.outSize = hash.outSize /
8;
35173 this._init(utils.toArray(key, enc));
35175 module.exports = Hmac;
35177 Hmac.prototype._init = function init(key) {
35178 // Shorten key, if needed
35179 if (key.length
> this.blockSize)
35180 key = new this.Hash().update(key).digest();
35181 assert(key.length <= this.blockSize);
35183 // Add padding to key
35184 for (var i = key.length; i < this.blockSize; i++)
35187 for (var i =
0; i < key.length; i++)
35189 this.inner = new this.Hash().update(key);
35191 //
0x36 ^
0x5c =
0x6a
35192 for (var i =
0; i < key.length; i++)
35194 this.outer = new this.Hash().update(key);
35197 Hmac.prototype.update = function update(msg, enc) {
35198 this.inner.update(msg, enc);
35202 Hmac.prototype.digest = function digest(enc) {
35203 this.outer.update(this.inner.digest());
35204 return this.outer.digest(enc);
35207 },{"../hash":
57}],
60:[function(require,module,exports){
35208 var hash = require('../hash');
35209 var utils = hash.utils;
35211 var rotl32 = utils.rotl32;
35212 var sum32 = utils.sum32;
35213 var sum32_3 = utils.sum32_3;
35214 var sum32_4 = utils.sum32_4;
35215 var BlockHash = hash.common.BlockHash;
35217 function RIPEMD160() {
35218 if (!(this instanceof RIPEMD160))
35219 return new RIPEMD160();
35221 BlockHash.call(this);
35223 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
35224 this.endian = 'little';
35226 utils.inherits(RIPEMD160, BlockHash);
35227 exports.ripemd160 = RIPEMD160;
35229 RIPEMD160.blockSize =
512;
35230 RIPEMD160.outSize =
160;
35231 RIPEMD160.hmacStrength =
192;
35232 RIPEMD160.padLength =
64;
35234 RIPEMD160.prototype._update = function update(msg, start) {
35245 for (var j =
0; j <
80; j++) {
35248 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
35258 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
35263 Dh = rotl32(Ch,
10);
35267 T = sum32_3(this.h[
1], C, Dh);
35268 this.h[
1] = sum32_3(this.h[
2], D, Eh);
35269 this.h[
2] = sum32_3(this.h[
3], E, Ah);
35270 this.h[
3] = sum32_3(this.h[
4], A, Bh);
35271 this.h[
4] = sum32_3(this.h[
0], B, Ch);
35275 RIPEMD160.prototype._digest = function digest(enc) {
35277 return utils.toHex32(this.h, 'little');
35279 return utils.split32(this.h, 'little');
35282 function f(j, x, y, z) {
35286 return (x & y) | ((~x) & z);
35288 return (x | (~y)) ^ z;
35290 return (x & z) | (y & (~z));
35292 return x ^ (y | (~z));
35322 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
35323 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
35324 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
35325 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
35326 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
35330 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
35331 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
35332 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
35333 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
35334 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
35338 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
35339 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
35340 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
35341 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
35342 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
35346 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
35347 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
35348 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
35349 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
35350 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
35353 },{"../hash":
57}],
61:[function(require,module,exports){
35354 var hash = require('../hash');
35355 var utils = hash.utils;
35356 var assert = utils.assert;
35358 var rotr32 = utils.rotr32;
35359 var rotl32 = utils.rotl32;
35360 var sum32 = utils.sum32;
35361 var sum32_4 = utils.sum32_4;
35362 var sum32_5 = utils.sum32_5;
35363 var rotr64_hi = utils.rotr64_hi;
35364 var rotr64_lo = utils.rotr64_lo;
35365 var shr64_hi = utils.shr64_hi;
35366 var shr64_lo = utils.shr64_lo;
35367 var sum64 = utils.sum64;
35368 var sum64_hi = utils.sum64_hi;
35369 var sum64_lo = utils.sum64_lo;
35370 var sum64_4_hi = utils.sum64_4_hi;
35371 var sum64_4_lo = utils.sum64_4_lo;
35372 var sum64_5_hi = utils.sum64_5_hi;
35373 var sum64_5_lo = utils.sum64_5_lo;
35374 var BlockHash = hash.common.BlockHash;
35377 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
35378 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
35379 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
35380 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
35381 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
35382 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
35383 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
35384 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
35385 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
35386 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
35387 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
35388 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
35389 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
35390 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
35391 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
35392 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
35396 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35397 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35398 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35399 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35400 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35401 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35402 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35403 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35404 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35405 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35406 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35407 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35408 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35409 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35410 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35411 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35412 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35413 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35414 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35415 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35416 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35417 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35418 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35419 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35420 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35421 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35422 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35423 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35424 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35425 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35426 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35427 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35428 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35429 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35430 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35431 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35432 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35433 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35434 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35435 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35439 0x5A827999,
0x6ED9EBA1,
35440 0x8F1BBCDC,
0xCA62C1D6
35443 function SHA256() {
35444 if (!(this instanceof SHA256))
35445 return new SHA256();
35447 BlockHash.call(this);
35448 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
35449 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
35451 this.W = new Array(
64);
35453 utils.inherits(SHA256, BlockHash);
35454 exports.sha256 = SHA256;
35456 SHA256.blockSize =
512;
35457 SHA256.outSize =
256;
35458 SHA256.hmacStrength =
192;
35459 SHA256.padLength =
64;
35461 SHA256.prototype._update = function _update(msg, start) {
35464 for (var i =
0; i <
16; i++)
35465 W[i] = msg[start + i];
35466 for (; i < W.length; i++)
35467 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
35478 assert(this.k.length === W.length);
35479 for (var i =
0; i < W.length; i++) {
35480 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
35481 var T2 = sum32(s0_256(a), maj32(a, b, c));
35492 this.h[
0] = sum32(this.h[
0], a);
35493 this.h[
1] = sum32(this.h[
1], b);
35494 this.h[
2] = sum32(this.h[
2], c);
35495 this.h[
3] = sum32(this.h[
3], d);
35496 this.h[
4] = sum32(this.h[
4], e);
35497 this.h[
5] = sum32(this.h[
5], f);
35498 this.h[
6] = sum32(this.h[
6], g);
35499 this.h[
7] = sum32(this.h[
7], h);
35502 SHA256.prototype._digest = function digest(enc) {
35504 return utils.toHex32(this.h, 'big');
35506 return utils.split32(this.h, 'big');
35509 function SHA224() {
35510 if (!(this instanceof SHA224))
35511 return new SHA224();
35514 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
35515 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
35517 utils.inherits(SHA224, SHA256);
35518 exports.sha224 = SHA224;
35520 SHA224.blockSize =
512;
35521 SHA224.outSize =
224;
35522 SHA224.hmacStrength =
192;
35523 SHA224.padLength =
64;
35525 SHA224.prototype._digest = function digest(enc) {
35526 // Just truncate output
35528 return utils.toHex32(this.h.slice(
0,
7), 'big');
35530 return utils.split32(this.h.slice(
0,
7), 'big');
35533 function SHA512() {
35534 if (!(this instanceof SHA512))
35535 return new SHA512();
35537 BlockHash.call(this);
35538 this.h = [
0x6a09e667,
0xf3bcc908,
35539 0xbb67ae85,
0x84caa73b,
35540 0x3c6ef372,
0xfe94f82b,
35541 0xa54ff53a,
0x5f1d36f1,
35542 0x510e527f,
0xade682d1,
35543 0x9b05688c,
0x2b3e6c1f,
35544 0x1f83d9ab,
0xfb41bd6b,
35545 0x5be0cd19,
0x137e2179 ];
35547 this.W = new Array(
160);
35549 utils.inherits(SHA512, BlockHash);
35550 exports.sha512 = SHA512;
35552 SHA512.blockSize =
1024;
35553 SHA512.outSize =
512;
35554 SHA512.hmacStrength =
192;
35555 SHA512.padLength =
128;
35557 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
35560 //
32 x
32bit words
35561 for (var i =
0; i <
32; i++)
35562 W[i] = msg[start + i];
35563 for (; i < W.length; i +=
2) {
35564 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
35565 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
35566 var c1_hi = W[i -
14]; // i -
7
35567 var c1_lo = W[i -
13];
35568 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
35569 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
35570 var c3_hi = W[i -
32]; // i -
16
35571 var c3_lo = W[i -
31];
35573 W[i] = sum64_4_hi(c0_hi, c0_lo,
35577 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
35584 SHA512.prototype._update = function _update(msg, start) {
35585 this._prepareBlock(msg, start);
35589 var ah = this.h[
0];
35590 var al = this.h[
1];
35591 var bh = this.h[
2];
35592 var bl = this.h[
3];
35593 var ch = this.h[
4];
35594 var cl = this.h[
5];
35595 var dh = this.h[
6];
35596 var dl = this.h[
7];
35597 var eh = this.h[
8];
35598 var el = this.h[
9];
35599 var fh = this.h[
10];
35600 var fl = this.h[
11];
35601 var gh = this.h[
12];
35602 var gl = this.h[
13];
35603 var hh = this.h[
14];
35604 var hl = this.h[
15];
35606 assert(this.k.length === W.length);
35607 for (var i =
0; i < W.length; i +=
2) {
35610 var c1_hi = s1_512_hi(eh, el);
35611 var c1_lo = s1_512_lo(eh, el);
35612 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
35613 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
35614 var c3_hi = this.k[i];
35615 var c3_lo = this.k[i +
1];
35617 var c4_lo = W[i +
1];
35619 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
35624 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
35630 var c0_hi = s0_512_hi(ah, al);
35631 var c0_lo = s0_512_lo(ah, al);
35632 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
35633 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
35635 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
35636 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
35647 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
35648 el = sum64_lo(dl, dl, T1_hi, T1_lo);
35659 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
35660 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
35663 sum64(this.h,
0, ah, al);
35664 sum64(this.h,
2, bh, bl);
35665 sum64(this.h,
4, ch, cl);
35666 sum64(this.h,
6, dh, dl);
35667 sum64(this.h,
8, eh, el);
35668 sum64(this.h,
10, fh, fl);
35669 sum64(this.h,
12, gh, gl);
35670 sum64(this.h,
14, hh, hl);
35673 SHA512.prototype._digest = function digest(enc) {
35675 return utils.toHex32(this.h, 'big');
35677 return utils.split32(this.h, 'big');
35680 function SHA384() {
35681 if (!(this instanceof SHA384))
35682 return new SHA384();
35685 this.h = [
0xcbbb9d5d,
0xc1059ed8,
35686 0x629a292a,
0x367cd507,
35687 0x9159015a,
0x3070dd17,
35688 0x152fecd8,
0xf70e5939,
35689 0x67332667,
0xffc00b31,
35690 0x8eb44a87,
0x68581511,
35691 0xdb0c2e0d,
0x64f98fa7,
35692 0x47b5481d,
0xbefa4fa4 ];
35694 utils.inherits(SHA384, SHA512);
35695 exports.sha384 = SHA384;
35697 SHA384.blockSize =
1024;
35698 SHA384.outSize =
384;
35699 SHA384.hmacStrength =
192;
35700 SHA384.padLength =
128;
35702 SHA384.prototype._digest = function digest(enc) {
35704 return utils.toHex32(this.h.slice(
0,
12), 'big');
35706 return utils.split32(this.h.slice(
0,
12), 'big');
35710 if (!(this instanceof SHA1))
35713 BlockHash.call(this);
35714 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
35715 0x10325476,
0xc3d2e1f0 ];
35716 this.W = new Array(
80);
35719 utils.inherits(SHA1, BlockHash);
35720 exports.sha1 = SHA1;
35722 SHA1.blockSize =
512;
35723 SHA1.outSize =
160;
35724 SHA1.hmacStrength =
80;
35725 SHA1.padLength =
64;
35727 SHA1.prototype._update = function _update(msg, start) {
35730 for (var i =
0; i <
16; i++)
35731 W[i] = msg[start + i];
35733 for(; i < W.length; i++)
35734 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
35742 for (var i =
0; i < W.length; i++) {
35743 var s = ~~(i /
20);
35744 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
35752 this.h[
0] = sum32(this.h[
0], a);
35753 this.h[
1] = sum32(this.h[
1], b);
35754 this.h[
2] = sum32(this.h[
2], c);
35755 this.h[
3] = sum32(this.h[
3], d);
35756 this.h[
4] = sum32(this.h[
4], e);
35759 SHA1.prototype._digest = function digest(enc) {
35761 return utils.toHex32(this.h, 'big');
35763 return utils.split32(this.h, 'big');
35766 function ch32(x, y, z) {
35767 return (x & y) ^ ((~x) & z);
35770 function maj32(x, y, z) {
35771 return (x & y) ^ (x & z) ^ (y & z);
35774 function p32(x, y, z) {
35778 function s0_256(x) {
35779 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
35782 function s1_256(x) {
35783 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
35786 function g0_256(x) {
35787 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
35790 function g1_256(x) {
35791 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
35794 function ft_1(s, x, y, z) {
35796 return ch32(x, y, z);
35797 if (s ===
1 || s ===
3)
35798 return p32(x, y, z);
35800 return maj32(x, y, z);
35803 function ch64_hi(xh, xl, yh, yl, zh, zl) {
35804 var r = (xh & yh) ^ ((~xh) & zh);
35810 function ch64_lo(xh, xl, yh, yl, zh, zl) {
35811 var r = (xl & yl) ^ ((~xl) & zl);
35817 function maj64_hi(xh, xl, yh, yl, zh, zl) {
35818 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
35824 function maj64_lo(xh, xl, yh, yl, zh, zl) {
35825 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
35831 function s0_512_hi(xh, xl) {
35832 var c0_hi = rotr64_hi(xh, xl,
28);
35833 var c1_hi = rotr64_hi(xl, xh,
2); //
34
35834 var c2_hi = rotr64_hi(xl, xh,
7); //
39
35836 var r = c0_hi ^ c1_hi ^ c2_hi;
35842 function s0_512_lo(xh, xl) {
35843 var c0_lo = rotr64_lo(xh, xl,
28);
35844 var c1_lo = rotr64_lo(xl, xh,
2); //
34
35845 var c2_lo = rotr64_lo(xl, xh,
7); //
39
35847 var r = c0_lo ^ c1_lo ^ c2_lo;
35853 function s1_512_hi(xh, xl) {
35854 var c0_hi = rotr64_hi(xh, xl,
14);
35855 var c1_hi = rotr64_hi(xh, xl,
18);
35856 var c2_hi = rotr64_hi(xl, xh,
9); //
41
35858 var r = c0_hi ^ c1_hi ^ c2_hi;
35864 function s1_512_lo(xh, xl) {
35865 var c0_lo = rotr64_lo(xh, xl,
14);
35866 var c1_lo = rotr64_lo(xh, xl,
18);
35867 var c2_lo = rotr64_lo(xl, xh,
9); //
41
35869 var r = c0_lo ^ c1_lo ^ c2_lo;
35875 function g0_512_hi(xh, xl) {
35876 var c0_hi = rotr64_hi(xh, xl,
1);
35877 var c1_hi = rotr64_hi(xh, xl,
8);
35878 var c2_hi = shr64_hi(xh, xl,
7);
35880 var r = c0_hi ^ c1_hi ^ c2_hi;
35886 function g0_512_lo(xh, xl) {
35887 var c0_lo = rotr64_lo(xh, xl,
1);
35888 var c1_lo = rotr64_lo(xh, xl,
8);
35889 var c2_lo = shr64_lo(xh, xl,
7);
35891 var r = c0_lo ^ c1_lo ^ c2_lo;
35897 function g1_512_hi(xh, xl) {
35898 var c0_hi = rotr64_hi(xh, xl,
19);
35899 var c1_hi = rotr64_hi(xl, xh,
29); //
61
35900 var c2_hi = shr64_hi(xh, xl,
6);
35902 var r = c0_hi ^ c1_hi ^ c2_hi;
35908 function g1_512_lo(xh, xl) {
35909 var c0_lo = rotr64_lo(xh, xl,
19);
35910 var c1_lo = rotr64_lo(xl, xh,
29); //
61
35911 var c2_lo = shr64_lo(xh, xl,
6);
35913 var r = c0_lo ^ c1_lo ^ c2_lo;
35919 },{
"../hash":
57}],
62:[function(require,module,exports){
35920 var utils = exports;
35921 var inherits = require('inherits');
35923 function toArray(msg, enc) {
35924 if (Array.isArray(msg))
35925 return msg.slice();
35929 if (typeof msg === 'string') {
35931 for (var i =
0; i < msg.length; i++) {
35932 var c = msg.charCodeAt(i);
35940 } else if (enc === 'hex') {
35941 msg = msg.replace(/[^a-z0-
9]+/ig, '');
35942 if (msg.length %
2 !==
0)
35944 for (var i =
0; i < msg.length; i +=
2)
35945 res.push(parseInt(msg[i] + msg[i +
1],
16));
35948 for (var i =
0; i < msg.length; i++)
35949 res[i] = msg[i] |
0;
35953 utils.toArray = toArray;
35955 function toHex(msg) {
35957 for (var i =
0; i < msg.length; i++)
35958 res += zero2(msg[i].toString(
16));
35961 utils.toHex = toHex;
35963 function htonl(w) {
35964 var res = (w
>>> 24) |
35965 ((w
>>> 8) &
0xff00) |
35966 ((w <<
8) &
0xff0000) |
35967 ((w &
0xff) <<
24);
35970 utils.htonl = htonl;
35972 function toHex32(msg, endian) {
35974 for (var i =
0; i < msg.length; i++) {
35976 if (endian === 'little')
35978 res += zero8(w.toString(
16));
35982 utils.toHex32 = toHex32;
35984 function zero2(word) {
35985 if (word.length ===
1)
35990 utils.zero2 = zero2;
35992 function zero8(word) {
35993 if (word.length ===
7)
35995 else if (word.length ===
6)
35996 return '
00' + word;
35997 else if (word.length ===
5)
35998 return '
000' + word;
35999 else if (word.length ===
4)
36000 return '
0000' + word;
36001 else if (word.length ===
3)
36002 return '
00000' + word;
36003 else if (word.length ===
2)
36004 return '
000000' + word;
36005 else if (word.length ===
1)
36006 return '
0000000' + word;
36010 utils.zero8 = zero8;
36012 function join32(msg, start, end, endian) {
36013 var len = end - start;
36014 assert(len %
4 ===
0);
36015 var res = new Array(len /
4);
36016 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
36018 if (endian === 'big')
36019 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
36021 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
36026 utils.join32 = join32;
36028 function split32(msg, endian) {
36029 var res = new Array(msg.length *
4);
36030 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
36032 if (endian === 'big') {
36034 res[k +
1] = (m
>>> 16) &
0xff;
36035 res[k +
2] = (m
>>> 8) &
0xff;
36036 res[k +
3] = m &
0xff;
36038 res[k +
3] = m
>>> 24;
36039 res[k +
2] = (m
>>> 16) &
0xff;
36040 res[k +
1] = (m
>>> 8) &
0xff;
36046 utils.split32 = split32;
36048 function rotr32(w, b) {
36049 return (w
>>> b) | (w << (
32 - b));
36051 utils.rotr32 = rotr32;
36053 function rotl32(w, b) {
36054 return (w << b) | (w
>>> (
32 - b));
36056 utils.rotl32 = rotl32;
36058 function sum32(a, b) {
36059 return (a + b)
>>> 0;
36061 utils.sum32 = sum32;
36063 function sum32_3(a, b, c) {
36064 return (a + b + c)
>>> 0;
36066 utils.sum32_3 = sum32_3;
36068 function sum32_4(a, b, c, d) {
36069 return (a + b + c + d)
>>> 0;
36071 utils.sum32_4 = sum32_4;
36073 function sum32_5(a, b, c, d, e) {
36074 return (a + b + c + d + e)
>>> 0;
36076 utils.sum32_5 = sum32_5;
36078 function assert(cond, msg) {
36080 throw new Error(msg || 'Assertion failed');
36082 utils.assert = assert;
36084 utils.inherits = inherits;
36086 function sum64(buf, pos, ah, al) {
36088 var bl = buf[pos +
1];
36090 var lo = (al + bl)
>>> 0;
36091 var hi = (lo < al ?
1 :
0) + ah + bh;
36092 buf[pos] = hi
>>> 0;
36095 exports.sum64 = sum64;
36097 function sum64_hi(ah, al, bh, bl) {
36098 var lo = (al + bl)
>>> 0;
36099 var hi = (lo < al ?
1 :
0) + ah + bh;
36102 exports.sum64_hi = sum64_hi;
36104 function sum64_lo(ah, al, bh, bl) {
36108 exports.sum64_lo = sum64_lo;
36110 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
36113 lo = (lo + bl)
>>> 0;
36114 carry += lo < al ?
1 :
0;
36115 lo = (lo + cl)
>>> 0;
36116 carry += lo < cl ?
1 :
0;
36117 lo = (lo + dl)
>>> 0;
36118 carry += lo < dl ?
1 :
0;
36120 var hi = ah + bh + ch + dh + carry;
36123 exports.sum64_4_hi = sum64_4_hi;
36125 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
36126 var lo = al + bl + cl + dl;
36129 exports.sum64_4_lo = sum64_4_lo;
36131 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36134 lo = (lo + bl)
>>> 0;
36135 carry += lo < al ?
1 :
0;
36136 lo = (lo + cl)
>>> 0;
36137 carry += lo < cl ?
1 :
0;
36138 lo = (lo + dl)
>>> 0;
36139 carry += lo < dl ?
1 :
0;
36140 lo = (lo + el)
>>> 0;
36141 carry += lo < el ?
1 :
0;
36143 var hi = ah + bh + ch + dh + eh + carry;
36146 exports.sum64_5_hi = sum64_5_hi;
36148 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36149 var lo = al + bl + cl + dl + el;
36153 exports.sum64_5_lo = sum64_5_lo;
36155 function rotr64_hi(ah, al, num) {
36156 var r = (al << (
32 - num)) | (ah
>>> num);
36159 exports.rotr64_hi = rotr64_hi;
36161 function rotr64_lo(ah, al, num) {
36162 var r = (ah << (
32 - num)) | (al
>>> num);
36165 exports.rotr64_lo = rotr64_lo;
36167 function shr64_hi(ah, al, num) {
36170 exports.shr64_hi = shr64_hi;
36172 function shr64_lo(ah, al, num) {
36173 var r = (ah << (
32 - num)) | (al
>>> num);
36176 exports.shr64_lo = shr64_lo;
36178 },{
"inherits":
63}],
63:[function(require,module,exports){
36179 arguments[
4][
9][
0].apply(exports,arguments)
36180 },{
"dup":
9}],
64:[function(require,module,exports){
36182 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
36183 * @param {String} str the string input value
36184 * @return {Boolean} a boolean if it is or is not hex prefixed
36185 * @throws if the str input is not a string
36187 module.exports = function isHexPrefixed(str) {
36188 if (typeof str !== 'string') {
36189 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
36192 return str.slice(
0,
2) === '
0x';
36195 },{}],
65:[function(require,module,exports){
36197 module.exports = require('./lib/api')(require('./lib/keccak'))
36199 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
36201 var createKeccak = require('./keccak')
36202 var createShake = require('./shake')
36204 module.exports = function (KeccakState) {
36205 var Keccak = createKeccak(KeccakState)
36206 var Shake = createShake(KeccakState)
36208 return function (algorithm, options) {
36209 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
36211 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
36212 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
36213 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
36214 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
36216 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
36217 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
36218 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
36219 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
36221 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
36222 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
36224 default: throw new Error('Invald algorithm: ' + algorithm)
36229 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
36230 (function (Buffer){
36232 var Transform = require('stream').Transform
36233 var inherits = require('inherits')
36235 module.exports = function (KeccakState) {
36236 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
36237 Transform.call(this, options)
36240 this._capacity = capacity
36241 this._delimitedSuffix = delimitedSuffix
36242 this._hashBitLength = hashBitLength
36243 this._options = options
36245 this._state = new KeccakState()
36246 this._state.initialize(rate, capacity)
36247 this._finalized = false
36250 inherits(Keccak, Transform)
36252 Keccak.prototype._transform = function (chunk, encoding, callback) {
36255 this.update(chunk, encoding)
36263 Keccak.prototype._flush = function (callback) {
36266 this.push(this.digest())
36274 Keccak.prototype.update = function (data, encoding) {
36275 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36276 if (this._finalized) throw new Error('Digest already called')
36277 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36279 this._state.absorb(data)
36284 Keccak.prototype.digest = function (encoding) {
36285 if (this._finalized) throw new Error('Digest already called')
36286 this._finalized = true
36288 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
36289 var digest = this._state.squeeze(this._hashBitLength /
8)
36290 if (encoding !== undefined) digest = digest.toString(encoding)
36297 // remove result from memory
36298 Keccak.prototype._resetState = function () {
36299 this._state.initialize(this._rate, this._capacity)
36303 // because sometimes we need hash right now and little later
36304 Keccak.prototype._clone = function () {
36305 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
36306 this._state.copy(clone._state)
36307 clone._finalized = this._finalized
36315 }).call(this,require(
"buffer").Buffer)
36316 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
36317 (function (Buffer){
36319 var Transform = require('stream').Transform
36320 var inherits = require('inherits')
36322 module.exports = function (KeccakState) {
36323 function Shake (rate, capacity, delimitedSuffix, options) {
36324 Transform.call(this, options)
36327 this._capacity = capacity
36328 this._delimitedSuffix = delimitedSuffix
36329 this._options = options
36331 this._state = new KeccakState()
36332 this._state.initialize(rate, capacity)
36333 this._finalized = false
36336 inherits(Shake, Transform)
36338 Shake.prototype._transform = function (chunk, encoding, callback) {
36341 this.update(chunk, encoding)
36349 Shake.prototype._flush = function () {}
36351 Shake.prototype._read = function (size) {
36352 this.push(this.squeeze(size))
36355 Shake.prototype.update = function (data, encoding) {
36356 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36357 if (this._finalized) throw new Error('Squeeze already called')
36358 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36360 this._state.absorb(data)
36365 Shake.prototype.squeeze = function (dataByteLength, encoding) {
36366 if (!this._finalized) {
36367 this._finalized = true
36368 this._state.absorbLastFewBits(this._delimitedSuffix)
36371 var data = this._state.squeeze(dataByteLength)
36372 if (encoding !== undefined) data = data.toString(encoding)
36377 Shake.prototype._resetState = function () {
36378 this._state.initialize(this._rate, this._capacity)
36382 Shake.prototype._clone = function () {
36383 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
36384 this._state.copy(clone._state)
36385 clone._finalized = this._finalized
36393 }).call(this,require(
"buffer").Buffer)
36394 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
36396 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]
36398 exports.p1600 = function (s) {
36399 for (var round =
0; round <
24; ++round) {
36401 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
36402 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
36403 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
36404 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
36405 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
36406 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
36407 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
36408 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
36409 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
36410 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
36412 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
36413 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
36414 var t1slo0 = s[
0] ^ lo
36415 var t1shi0 = s[
1] ^ hi
36416 var t1slo5 = s[
10] ^ lo
36417 var t1shi5 = s[
11] ^ hi
36418 var t1slo10 = s[
20] ^ lo
36419 var t1shi10 = s[
21] ^ hi
36420 var t1slo15 = s[
30] ^ lo
36421 var t1shi15 = s[
31] ^ hi
36422 var t1slo20 = s[
40] ^ lo
36423 var t1shi20 = s[
41] ^ hi
36424 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
36425 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
36426 var t1slo1 = s[
2] ^ lo
36427 var t1shi1 = s[
3] ^ hi
36428 var t1slo6 = s[
12] ^ lo
36429 var t1shi6 = s[
13] ^ hi
36430 var t1slo11 = s[
22] ^ lo
36431 var t1shi11 = s[
23] ^ hi
36432 var t1slo16 = s[
32] ^ lo
36433 var t1shi16 = s[
33] ^ hi
36434 var t1slo21 = s[
42] ^ lo
36435 var t1shi21 = s[
43] ^ hi
36436 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
36437 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
36438 var t1slo2 = s[
4] ^ lo
36439 var t1shi2 = s[
5] ^ hi
36440 var t1slo7 = s[
14] ^ lo
36441 var t1shi7 = s[
15] ^ hi
36442 var t1slo12 = s[
24] ^ lo
36443 var t1shi12 = s[
25] ^ hi
36444 var t1slo17 = s[
34] ^ lo
36445 var t1shi17 = s[
35] ^ hi
36446 var t1slo22 = s[
44] ^ lo
36447 var t1shi22 = s[
45] ^ hi
36448 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
36449 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
36450 var t1slo3 = s[
6] ^ lo
36451 var t1shi3 = s[
7] ^ hi
36452 var t1slo8 = s[
16] ^ lo
36453 var t1shi8 = s[
17] ^ hi
36454 var t1slo13 = s[
26] ^ lo
36455 var t1shi13 = s[
27] ^ hi
36456 var t1slo18 = s[
36] ^ lo
36457 var t1shi18 = s[
37] ^ hi
36458 var t1slo23 = s[
46] ^ lo
36459 var t1shi23 = s[
47] ^ hi
36460 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
36461 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
36462 var t1slo4 = s[
8] ^ lo
36463 var t1shi4 = s[
9] ^ hi
36464 var t1slo9 = s[
18] ^ lo
36465 var t1shi9 = s[
19] ^ hi
36466 var t1slo14 = s[
28] ^ lo
36467 var t1shi14 = s[
29] ^ hi
36468 var t1slo19 = s[
38] ^ lo
36469 var t1shi19 = s[
39] ^ hi
36470 var t1slo24 = s[
48] ^ lo
36471 var t1shi24 = s[
49] ^ hi
36474 var t2slo0 = t1slo0
36475 var t2shi0 = t1shi0
36476 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
36477 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
36478 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
36479 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
36480 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
36481 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
36482 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
36483 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
36484 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
36485 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
36486 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
36487 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
36488 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
36489 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
36490 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
36491 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
36492 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
36493 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
36494 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
36495 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
36496 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
36497 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
36498 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
36499 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
36500 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
36501 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
36502 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
36503 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
36504 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
36505 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
36506 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
36507 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
36508 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
36509 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
36510 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
36511 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
36512 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
36513 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
36514 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
36515 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
36516 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
36517 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
36518 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
36519 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
36520 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
36521 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
36522 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
36523 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
36526 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
36527 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
36528 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
36529 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
36530 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
36531 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
36532 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
36533 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
36534 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
36535 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
36536 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
36537 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
36538 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
36539 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
36540 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
36541 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
36542 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
36543 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
36544 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
36545 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
36546 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
36547 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
36548 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
36549 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
36550 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
36551 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
36552 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
36553 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
36554 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
36555 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
36556 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
36557 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
36558 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
36559 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
36560 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
36561 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
36562 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
36563 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
36564 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
36565 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
36566 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
36567 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
36568 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
36569 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
36570 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
36571 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
36572 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
36573 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
36574 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
36575 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
36578 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
36579 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
36583 },{}],
70:[function(require,module,exports){
36584 (function (Buffer){
36586 var keccakState = require('./keccak-state-unroll')
36588 function Keccak () {
36589 // much faster than `new Array(
50)`
36598 this.blockSize = null
36600 this.squeezing = false
36603 Keccak.prototype.initialize = function (rate, capacity) {
36604 for (var i =
0; i <
50; ++i) this.state[i] =
0
36605 this.blockSize = rate /
8
36607 this.squeezing = false
36610 Keccak.prototype.absorb = function (data) {
36611 for (var i =
0; i < data.length; ++i) {
36612 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
36614 if (this.count === this.blockSize) {
36615 keccakState.p1600(this.state)
36621 Keccak.prototype.absorbLastFewBits = function (bits) {
36622 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
36623 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
36624 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
36625 keccakState.p1600(this.state)
36627 this.squeezing = true
36630 Keccak.prototype.squeeze = function (length) {
36631 if (!this.squeezing) this.absorbLastFewBits(
0x01)
36633 var output = Buffer.allocUnsafe(length)
36634 for (var i =
0; i < length; ++i) {
36635 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
36637 if (this.count === this.blockSize) {
36638 keccakState.p1600(this.state)
36646 Keccak.prototype.copy = function (dest) {
36647 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
36648 dest.blockSize = this.blockSize
36649 dest.count = this.count
36650 dest.squeezing = this.squeezing
36653 module.exports = Keccak
36655 }).call(this,require("buffer").Buffer)
36656 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
36657 (function (Buffer){
36660 code.google.com/p/crypto-js
36661 (c)
2009-
2013 by Jeff Mott. All rights reserved.
36662 code.google.com/p/crypto-js/wiki/License
36665 (c)
2012 by Cédric Mesnil. All rights reserved.
36667 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
36669 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
36670 - 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.
36672 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.
36677 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
36678 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
36679 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
36680 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
36681 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
36685 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
36686 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
36687 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
36688 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
36689 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
36693 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
36694 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
36695 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
36696 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
36697 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
36701 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
36702 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
36703 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
36704 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
36705 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
36708 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
36709 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
36711 function bytesToWords (bytes) {
36713 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
36714 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
36719 function wordsToBytes (words) {
36721 for (var b =
0; b < words.length *
32; b +=
8) {
36722 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
36727 function processBlock (H, M, offset) {
36729 for (var i =
0; i <
16; i++) {
36730 var offset_i = offset + i
36731 var M_offset_i = M[offset_i]
36735 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
36736 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
36740 // Working variables
36741 var al, bl, cl, dl, el
36742 var ar, br, cr, dr, er
36752 for (i =
0; i <
80; i +=
1) {
36753 t = (al + M[offset + zl[i]]) |
0
36755 t += f1(bl, cl, dl) + hl[
0]
36756 } else if (i <
32) {
36757 t += f2(bl, cl, dl) + hl[
1]
36758 } else if (i <
48) {
36759 t += f3(bl, cl, dl) + hl[
2]
36760 } else if (i <
64) {
36761 t += f4(bl, cl, dl) + hl[
3]
36762 } else {// if (i
<80) {
36763 t += f5(bl, cl, dl) + hl[
4]
36774 t = (ar + M[offset + zr[i]]) |
0
36776 t += f5(br, cr, dr) + hr[
0]
36777 } else if (i <
32) {
36778 t += f4(br, cr, dr) + hr[
1]
36779 } else if (i <
48) {
36780 t += f3(br, cr, dr) + hr[
2]
36781 } else if (i <
64) {
36782 t += f2(br, cr, dr) + hr[
3]
36783 } else {// if (i
<80) {
36784 t += f1(br, cr, dr) + hr[
4]
36797 // intermediate hash value
36798 t = (H[
1] + cl + dr) |
0
36799 H[
1] = (H[
2] + dl + er) |
0
36800 H[
2] = (H[
3] + el + ar) |
0
36801 H[
3] = (H[
4] + al + br) |
0
36802 H[
4] = (H[
0] + bl + cr) |
0
36806 function f1 (x, y, z) {
36807 return ((x) ^ (y) ^ (z))
36810 function f2 (x, y, z) {
36811 return (((x) & (y)) | ((~x) & (z)))
36814 function f3 (x, y, z) {
36815 return (((x) | (~(y))) ^ (z))
36818 function f4 (x, y, z) {
36819 return (((x) & (z)) | ((y) & (~(z))))
36822 function f5 (x, y, z) {
36823 return ((x) ^ ((y) | (~(z))))
36826 function rotl (x, n) {
36827 return (x << n) | (x
>>> (
32 - n))
36830 function ripemd160 (message) {
36831 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
36833 if (typeof message === 'string') {
36834 message = new Buffer(message, 'utf8')
36837 var m = bytesToWords(message)
36839 var nBitsLeft = message.length *
8
36840 var nBitsTotal = message.length *
8
36843 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
36844 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
36845 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
36846 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
36849 for (var i =
0; i < m.length; i +=
16) {
36850 processBlock(H, m, i)
36854 for (i =
0; i <
5; i++) {
36859 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
36860 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
36863 var digestbytes = wordsToBytes(H)
36864 return new Buffer(digestbytes)
36867 module.exports = ripemd160
36869 }).call(this,require(
"buffer").Buffer)
36870 },{
"buffer":
5}],
72:[function(require,module,exports){
36871 (function (Buffer){
36872 const assert = require('assert')
36874 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
36875 * This function takes in a data, convert it to buffer if not, and a length for recursion
36877 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36878 * @returns {Buffer} - returns buffer of encoded data
36880 exports.encode = function (input) {
36881 if (input instanceof Array) {
36883 for (var i =
0; i < input.length; i++) {
36884 output.push(exports.encode(input[i]))
36886 var buf = Buffer.concat(output)
36887 return Buffer.concat([encodeLength(buf.length,
192), buf])
36889 input = toBuffer(input)
36890 if (input.length ===
1 && input[
0] <
128) {
36893 return Buffer.concat([encodeLength(input.length,
128), input])
36898 function safeParseInt (v, base) {
36899 if (v.slice(
0,
2) === '
00') {
36900 throw (new Error('invalid RLP: extra zeros'))
36903 return parseInt(v, base)
36906 function encodeLength (len, offset) {
36908 return new Buffer([len + offset])
36910 var hexLength = intToHex(len)
36911 var lLength = hexLength.length /
2
36912 var firstByte = intToHex(offset +
55 + lLength)
36913 return new Buffer(firstByte + hexLength, 'hex')
36918 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
36919 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36920 * @returns {Array} - returns decode Array of Buffers containg the original message
36922 exports.decode = function (input, stream) {
36923 if (!input || input.length ===
0) {
36924 return new Buffer([])
36927 input = toBuffer(input)
36928 var decoded = _decode(input)
36934 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
36935 return decoded.data
36938 exports.getLength = function (input) {
36939 if (!input || input.length ===
0) {
36940 return new Buffer([])
36943 input = toBuffer(input)
36944 var firstByte = input[
0]
36945 if (firstByte <=
0x7f) {
36946 return input.length
36947 } else if (firstByte <=
0xb7) {
36948 return firstByte -
0x7f
36949 } else if (firstByte <=
0xbf) {
36950 return firstByte -
0xb6
36951 } else if (firstByte <=
0xf7) {
36952 // a list between
0-
55 bytes long
36953 return firstByte -
0xbf
36955 // a list over
55 bytes long
36956 var llength = firstByte -
0xf6
36957 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
36958 return llength + length
36962 function _decode (input) {
36963 var length, llength, data, innerRemainder, d
36965 var firstByte = input[
0]
36967 if (firstByte <=
0x7f) {
36968 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
36970 data: input.slice(
0,
1),
36971 remainder: input.slice(
1)
36973 } else if (firstByte <=
0xb7) {
36974 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
36975 // The range of the first byte is [
0x80,
0xb7]
36976 length = firstByte -
0x7f
36978 // set
0x80 null to
0
36979 if (firstByte ===
0x80) {
36980 data = new Buffer([])
36982 data = input.slice(
1, length)
36985 if (length ===
2 && data[
0] <
0x80) {
36986 throw new Error('invalid rlp encoding: byte must be less
0x80')
36991 remainder: input.slice(length)
36993 } else if (firstByte <=
0xbf) {
36994 llength = firstByte -
0xb6
36995 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
36996 data = input.slice(llength, length + llength)
36997 if (data.length < length) {
36998 throw (new Error('invalid RLP'))
37003 remainder: input.slice(length + llength)
37005 } else if (firstByte <=
0xf7) {
37006 // a list between
0-
55 bytes long
37007 length = firstByte -
0xbf
37008 innerRemainder = input.slice(
1, length)
37009 while (innerRemainder.length) {
37010 d = _decode(innerRemainder)
37011 decoded.push(d.data)
37012 innerRemainder = d.remainder
37017 remainder: input.slice(length)
37020 // a list over
55 bytes long
37021 llength = firstByte -
0xf6
37022 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37023 var totalLength = llength + length
37024 if (totalLength
> input.length) {
37025 throw new Error('invalid rlp: total length is larger than the data')
37028 innerRemainder = input.slice(llength, totalLength)
37029 if (innerRemainder.length ===
0) {
37030 throw new Error('invalid rlp, List has a invalid length')
37033 while (innerRemainder.length) {
37034 d = _decode(innerRemainder)
37035 decoded.push(d.data)
37036 innerRemainder = d.remainder
37040 remainder: input.slice(totalLength)
37045 function isHexPrefixed (str) {
37046 return str.slice(
0,
2) === '
0x'
37049 // Removes
0x from a given String
37050 function stripHexPrefix (str) {
37051 if (typeof str !== 'string') {
37054 return isHexPrefixed(str) ? str.slice(
2) : str
37057 function intToHex (i) {
37058 var hex = i.toString(
16)
37059 if (hex.length %
2) {
37066 function padToEven (a) {
37067 if (a.length %
2) a = '
0' + a
37071 function intToBuffer (i) {
37072 var hex = intToHex(i)
37073 return new Buffer(hex, 'hex')
37076 function toBuffer (v) {
37077 if (!Buffer.isBuffer(v)) {
37078 if (typeof v === 'string') {
37079 if (isHexPrefixed(v)) {
37080 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
37084 } else if (typeof v === 'number') {
37090 } else if (v === null || v === undefined) {
37092 } else if (v.toArray) {
37093 // converts a BN to a Buffer
37094 v = new Buffer(v.toArray())
37096 throw new Error('invalid type')
37102 }).call(this,require("buffer").Buffer)
37103 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
37105 module.exports = require('./lib')(require('./lib/elliptic'))
37107 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
37108 (function (Buffer){
37110 var toString = Object.prototype.toString
37113 exports.isArray = function (value, message) {
37114 if (!Array.isArray(value)) throw TypeError(message)
37117 exports.isBoolean = function (value, message) {
37118 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
37121 exports.isBuffer = function (value, message) {
37122 if (!Buffer.isBuffer(value)) throw TypeError(message)
37125 exports.isFunction = function (value, message) {
37126 if (toString.call(value) !== '[object Function]') throw TypeError(message)
37129 exports.isNumber = function (value, message) {
37130 if (toString.call(value) !== '[object Number]') throw TypeError(message)
37133 exports.isObject = function (value, message) {
37134 if (toString.call(value) !== '[object Object]') throw TypeError(message)
37138 exports.isBufferLength = function (buffer, length, message) {
37139 if (buffer.length !== length) throw RangeError(message)
37142 exports.isBufferLength2 = function (buffer, length1, length2, message) {
37143 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
37146 exports.isLengthGTZero = function (value, message) {
37147 if (value.length ===
0) throw RangeError(message)
37150 exports.isNumberInInterval = function (number, x, y, message) {
37151 if (number <= x || number
>= y) throw RangeError(message)
37154 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
37155 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
37156 (function (Buffer){
37158 var bip66 = require('bip66')
37160 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
37162 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
37164 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37165 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37167 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37168 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37169 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37170 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37171 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37172 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37173 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37174 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37175 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
37177 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37178 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37182 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
37184 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
37186 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37187 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37189 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37190 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37191 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37192 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37193 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37194 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37195 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
37196 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
37197 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37198 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37199 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
37201 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37202 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37203 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37204 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37208 var ZERO_BUFFER_32 = new Buffer([
37209 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37210 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
37213 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
37214 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
37215 privateKey.copy(result, compressed ?
8 :
9)
37216 publicKey.copy(result, compressed ?
181 :
214)
37220 exports.privateKeyImport = function (privateKey) {
37221 var length = privateKey.length
37225 if (length < index +
1 || privateKey[index] !==
0x30) return
37228 // sequence length constructor
37229 if (length < index +
1 || !(privateKey[index] &
0x80)) return
37231 var lenb = privateKey[index] &
0x7f
37233 if (lenb <
1 || lenb
> 2) return
37234 if (length < index + lenb) return
37237 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
37239 if (length < index + len) return
37241 // sequence element
0: version number (=
1)
37242 if (length < index +
3 ||
37243 privateKey[index] !==
0x02 ||
37244 privateKey[index +
1] !==
0x01 ||
37245 privateKey[index +
2] !==
0x01) {
37250 // sequence element
1: octet string, up to
32 bytes
37251 if (length < index +
2 ||
37252 privateKey[index] !==
0x04 ||
37253 privateKey[index +
1]
> 0x20 ||
37254 length < index +
2 + privateKey[index +
1]) {
37258 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
37261 exports.signatureExport = function (sigObj) {
37262 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
37263 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
37265 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
37266 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
37268 return bip66.encode(r.slice(posR), s.slice(posS))
37271 exports.signatureImport = function (sig) {
37272 var r = new Buffer(ZERO_BUFFER_32)
37273 var s = new Buffer(ZERO_BUFFER_32)
37276 var sigObj = bip66.decode(sig)
37277 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
37278 if (sigObj.r.length
> 32) throw new Error('R length is too long')
37279 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
37280 if (sigObj.s.length
> 32) throw new Error('S length is too long')
37285 sigObj.r.copy(r,
32 - sigObj.r.length)
37286 sigObj.s.copy(s,
32 - sigObj.s.length)
37288 return { r: r, s: s }
37291 exports.signatureImportLax = function (sig) {
37292 var r = new Buffer(ZERO_BUFFER_32)
37293 var s = new Buffer(ZERO_BUFFER_32)
37295 var length = sig.length
37298 // sequence tag byte
37299 if (sig[index++] !==
0x30) return
37301 // sequence length byte
37302 var lenbyte = sig[index++]
37303 if (lenbyte &
0x80) {
37304 index += lenbyte -
0x80
37305 if (index
> length) return
37308 // sequence tag byte for r
37309 if (sig[index++] !==
0x02) return
37312 var rlen = sig[index++]
37314 lenbyte = rlen -
0x80
37315 if (index + lenbyte
> length) return
37316 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37317 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
37319 if (rlen
> length - index) return
37323 // sequence tag byte for s
37324 if (sig[index++] !==
0x02) return
37327 var slen = sig[index++]
37329 lenbyte = slen -
0x80
37330 if (index + lenbyte
> length) return
37331 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37332 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
37334 if (slen
> length - index) return
37338 // ignore leading zeros in r
37339 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
37341 if (rlen
> 32) return
37342 var rvalue = sig.slice(rindex, rindex + rlen)
37343 rvalue.copy(r,
32 - rvalue.length)
37345 // ignore leading zeros in s
37346 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
37348 if (slen
> 32) return
37349 var svalue = sig.slice(sindex, sindex + slen)
37350 svalue.copy(s,
32 - svalue.length)
37352 return { r: r, s: s }
37355 }).call(this,require(
"buffer").Buffer)
37356 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
37357 (function (Buffer){
37359 var createHash = require('create-hash')
37360 var BN = require('bn.js')
37361 var EC = require('elliptic').ec
37363 var messages = require('../messages.json')
37365 var ec = new EC('secp256k1')
37366 var ecparams = ec.curve
37368 function loadCompressedPublicKey (first, xBuffer) {
37369 var x = new BN(xBuffer)
37372 if (x.cmp(ecparams.p)
>=
0) return null
37373 x = x.toRed(ecparams.red)
37375 // compute corresponding Y
37376 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
37377 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
37379 return ec.keyPair({ pub: { x: x, y: y } })
37382 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
37383 var x = new BN(xBuffer)
37384 var y = new BN(yBuffer)
37387 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
37389 x = x.toRed(ecparams.red)
37390 y = y.toRed(ecparams.red)
37393 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
37396 var x3 = x.redSqr().redIMul(x)
37397 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
37399 return ec.keyPair({ pub: { x: x, y: y } })
37402 function loadPublicKey (publicKey) {
37403 var first = publicKey[
0]
37407 if (publicKey.length !==
33) return null
37408 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
37412 if (publicKey.length !==
65) return null
37413 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
37419 exports.privateKeyVerify = function (privateKey) {
37420 var bn = new BN(privateKey)
37421 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
37424 exports.privateKeyExport = function (privateKey, compressed) {
37425 var d = new BN(privateKey)
37426 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
37428 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37431 exports.privateKeyTweakAdd = function (privateKey, tweak) {
37432 var bn = new BN(tweak)
37433 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37435 bn.iadd(new BN(privateKey))
37436 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
37437 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37439 return bn.toArrayLike(Buffer, 'be',
32)
37442 exports.privateKeyTweakMul = function (privateKey, tweak) {
37443 var bn = new BN(tweak)
37444 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
37446 bn.imul(new BN(privateKey))
37447 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
37449 return bn.toArrayLike(Buffer, 'be',
32)
37452 exports.publicKeyCreate = function (privateKey, compressed) {
37453 var d = new BN(privateKey)
37454 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
37456 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37459 exports.publicKeyConvert = function (publicKey, compressed) {
37460 var pair = loadPublicKey(publicKey)
37461 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37463 return new Buffer(pair.getPublic(compressed, true))
37466 exports.publicKeyVerify = function (publicKey) {
37467 return loadPublicKey(publicKey) !== null
37470 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
37471 var pair = loadPublicKey(publicKey)
37472 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37474 tweak = new BN(tweak)
37475 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
37477 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
37480 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
37481 var pair = loadPublicKey(publicKey)
37482 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37484 tweak = new BN(tweak)
37485 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
37487 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
37490 exports.publicKeyCombine = function (publicKeys, compressed) {
37491 var pairs = new Array(publicKeys.length)
37492 for (var i =
0; i < publicKeys.length; ++i) {
37493 pairs[i] = loadPublicKey(publicKeys[i])
37494 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37497 var point = pairs[
0].pub
37498 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
37499 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
37501 return new Buffer(point.encode(true, compressed))
37504 exports.signatureNormalize = function (signature) {
37505 var r = new BN(signature.slice(
0,
32))
37506 var s = new BN(signature.slice(
32,
64))
37507 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37509 var result = new Buffer(signature)
37510 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
37515 exports.signatureExport = function (signature) {
37516 var r = signature.slice(
0,
32)
37517 var s = signature.slice(
32,
64)
37518 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37520 return { r: r, s: s }
37523 exports.signatureImport = function (sigObj) {
37524 var r = new BN(sigObj.r)
37525 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
37527 var s = new BN(sigObj.s)
37528 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
37530 return Buffer.concat([
37531 r.toArrayLike(Buffer, 'be',
32),
37532 s.toArrayLike(Buffer, 'be',
32)
37536 exports.sign = function (message, privateKey, noncefn, data) {
37537 if (typeof noncefn === 'function') {
37538 var getNonce = noncefn
37539 noncefn = function (counter) {
37540 var nonce = getNonce(message, privateKey, null, data, counter)
37541 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
37543 return new BN(nonce)
37547 var d = new BN(privateKey)
37548 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
37550 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
37552 signature: Buffer.concat([
37553 result.r.toArrayLike(Buffer, 'be',
32),
37554 result.s.toArrayLike(Buffer, 'be',
32)
37556 recovery: result.recoveryParam
37560 exports.verify = function (message, signature, publicKey) {
37561 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37563 var sigr = new BN(sigObj.r)
37564 var sigs = new BN(sigObj.s)
37565 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37566 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
37568 var pair = loadPublicKey(publicKey)
37569 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37571 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
37574 exports.recover = function (message, signature, recovery, compressed) {
37575 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37577 var sigr = new BN(sigObj.r)
37578 var sigs = new BN(sigObj.s)
37579 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37582 if (sigr.isZero() || sigs.isZero()) throw new Error()
37584 var point = ec.recoverPubKey(message, sigObj, recovery)
37585 return new Buffer(point.encode(true, compressed))
37587 throw new Error(messages.ECDSA_RECOVER_FAIL)
37591 exports.ecdh = function (publicKey, privateKey) {
37592 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
37593 return createHash('sha256').update(shared).digest()
37596 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
37597 var pair = loadPublicKey(publicKey)
37598 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37600 var scalar = new BN(privateKey)
37601 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
37603 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
37606 }).call(this,require("buffer").Buffer)
37607 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
37609 var assert = require('./assert')
37610 var der = require('./der')
37611 var messages = require('./messages.json')
37613 function initCompressedValue (value, defaultValue) {
37614 if (value === undefined) return defaultValue
37616 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
37620 module.exports = function (secp256k1) {
37622 privateKeyVerify: function (privateKey) {
37623 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37624 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
37627 privateKeyExport: function (privateKey, compressed) {
37628 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37629 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37631 compressed = initCompressedValue(compressed, true)
37632 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
37634 return der.privateKeyExport(privateKey, publicKey, compressed)
37637 privateKeyImport: function (privateKey) {
37638 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37640 privateKey = der.privateKeyImport(privateKey)
37641 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
37643 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
37646 privateKeyTweakAdd: function (privateKey, tweak) {
37647 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37648 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37650 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37651 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37653 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
37656 privateKeyTweakMul: function (privateKey, tweak) {
37657 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37658 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37660 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37661 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37663 return secp256k1.privateKeyTweakMul(privateKey, tweak)
37666 publicKeyCreate: function (privateKey, compressed) {
37667 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37668 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37670 compressed = initCompressedValue(compressed, true)
37672 return secp256k1.publicKeyCreate(privateKey, compressed)
37675 publicKeyConvert: function (publicKey, compressed) {
37676 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37677 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37679 compressed = initCompressedValue(compressed, true)
37681 return secp256k1.publicKeyConvert(publicKey, compressed)
37684 publicKeyVerify: function (publicKey) {
37685 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37686 return secp256k1.publicKeyVerify(publicKey)
37689 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
37690 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37691 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37693 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37694 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37696 compressed = initCompressedValue(compressed, true)
37698 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
37701 publicKeyTweakMul: function (publicKey, tweak, compressed) {
37702 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37703 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37705 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37706 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37708 compressed = initCompressedValue(compressed, true)
37710 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
37713 publicKeyCombine: function (publicKeys, compressed) {
37714 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
37715 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
37716 for (var i =
0; i < publicKeys.length; ++i) {
37717 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
37718 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37721 compressed = initCompressedValue(compressed, true)
37723 return secp256k1.publicKeyCombine(publicKeys, compressed)
37726 signatureNormalize: function (signature) {
37727 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37728 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37730 return secp256k1.signatureNormalize(signature)
37733 signatureExport: function (signature) {
37734 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37735 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37737 var sigObj = secp256k1.signatureExport(signature)
37738 return der.signatureExport(sigObj)
37741 signatureImport: function (sig) {
37742 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37743 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37745 var sigObj = der.signatureImport(sig)
37746 if (sigObj) return secp256k1.signatureImport(sigObj)
37748 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37751 signatureImportLax: function (sig) {
37752 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37753 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37755 var sigObj = der.signatureImportLax(sig)
37756 if (sigObj) return secp256k1.signatureImport(sigObj)
37758 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37761 sign: function (message, privateKey, options) {
37762 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37763 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37765 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37766 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37770 if (options !== undefined) {
37771 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
37773 if (options.data !== undefined) {
37774 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
37775 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
37776 data = options.data
37779 if (options.noncefn !== undefined) {
37780 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
37781 noncefn = options.noncefn
37785 return secp256k1.sign(message, privateKey, noncefn, data)
37788 verify: function (message, signature, publicKey) {
37789 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37790 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37792 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37793 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37795 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37796 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37798 return secp256k1.verify(message, signature, publicKey)
37801 recover: function (message, signature, recovery, compressed) {
37802 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37803 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37805 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37806 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37808 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
37809 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
37811 compressed = initCompressedValue(compressed, true)
37813 return secp256k1.recover(message, signature, recovery, compressed)
37816 ecdh: function (publicKey, privateKey) {
37817 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37818 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37820 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37821 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37823 return secp256k1.ecdh(publicKey, privateKey)
37826 ecdhUnsafe: function (publicKey, privateKey, compressed) {
37827 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37828 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37830 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37831 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37833 compressed = initCompressedValue(compressed, true)
37835 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
37840 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
37842 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
37843 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
37844 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
37845 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
37846 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37847 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
37848 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
37849 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
37850 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
37851 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
37852 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
37853 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
37854 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
37855 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
37856 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37857 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
37858 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
37859 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
37860 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
37861 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
37862 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
37863 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
37864 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
37865 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
37866 "MSG32_TYPE_INVALID": "message should be a Buffer",
37867 "MSG32_LENGTH_INVALID": "message length is invalid",
37868 "OPTIONS_TYPE_INVALID": "options should be an Object",
37869 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
37870 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
37871 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
37872 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
37873 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
37874 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
37875 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
37878 },{}],
79:[function(require,module,exports){
37879 (function (Buffer){
37880 // prototype class for hash functions
37881 function Hash (blockSize, finalSize) {
37882 this._block = new Buffer(blockSize)
37883 this._finalSize = finalSize
37884 this._blockSize = blockSize
37889 Hash.prototype.update = function (data, enc) {
37890 if (typeof data === 'string') {
37891 enc = enc || 'utf8'
37892 data = new Buffer(data, enc)
37895 var l = this._len += data.length
37896 var s = this._s ||
0
37898 var buffer = this._block
37901 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
37904 for (var i =
0; i < ch; i++) {
37905 buffer[(s % this._blockSize) + i] = data[i + f]
37911 if ((s % this._blockSize) ===
0) {
37912 this._update(buffer)
37920 Hash.prototype.digest = function (enc) {
37921 // Suppose the length of the message M, in bits, is l
37922 var l = this._len *
8
37924 // Append the bit
1 to the end of the message
37925 this._block[this._len % this._blockSize] =
0x80
37927 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
37928 this._block.fill(
0, this._len % this._blockSize +
1)
37930 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
37931 this._update(this._block)
37932 this._block.fill(
0)
37935 // to this append the block which is equal to the number l written in binary
37936 // TODO: handle case where l is
> Math.pow(
2,
29)
37937 this._block.writeInt32BE(l, this._blockSize -
4)
37939 var hash = this._update(this._block) || this._hash()
37941 return enc ? hash.toString(enc) : hash
37944 Hash.prototype._update = function () {
37945 throw new Error('_update must be implemented by subclass')
37948 module.exports = Hash
37950 }).call(this,require("buffer").Buffer)
37951 },{"buffer":
5}],
80:[function(require,module,exports){
37952 var exports = module.exports = function SHA (algorithm) {
37953 algorithm = algorithm.toLowerCase()
37955 var Algorithm = exports[algorithm]
37956 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
37958 return new Algorithm()
37961 exports.sha = require('./sha')
37962 exports.sha1 = require('./sha1')
37963 exports.sha224 = require('./sha224')
37964 exports.sha256 = require('./sha256')
37965 exports.sha384 = require('./sha384')
37966 exports.sha512 = require('./sha512')
37968 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
37969 (function (Buffer){
37971 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
37972 * in FIPS PUB
180-
1
37973 * This source code is derived from sha1.js of the same repository.
37974 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
37975 * operation was added.
37978 var inherits = require('inherits')
37979 var Hash = require('./hash')
37982 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
37985 var W = new Array(
80)
37991 Hash.call(this,
64,
56)
37994 inherits(Sha, Hash)
37996 Sha.prototype.init = function () {
37997 this._a =
0x67452301
37998 this._b =
0xefcdab89
37999 this._c =
0x98badcfe
38000 this._d =
0x10325476
38001 this._e =
0xc3d2e1f0
38006 function rotl5 (num) {
38007 return (num <<
5) | (num
>>> 27)
38010 function rotl30 (num) {
38011 return (num <<
30) | (num
>>> 2)
38014 function ft (s, b, c, d) {
38015 if (s ===
0) return (b & c) | ((~b) & d)
38016 if (s ===
2) return (b & c) | (b & d) | (c & d)
38020 Sha.prototype._update = function (M) {
38023 var a = this._a |
0
38024 var b = this._b |
0
38025 var c = this._c |
0
38026 var d = this._d |
0
38027 var e = this._e |
0
38029 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38030 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
38032 for (var j =
0; j <
80; ++j) {
38034 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38043 this._a = (a + this._a) |
0
38044 this._b = (b + this._b) |
0
38045 this._c = (c + this._c) |
0
38046 this._d = (d + this._d) |
0
38047 this._e = (e + this._e) |
0
38050 Sha.prototype._hash = function () {
38051 var H = new Buffer(
20)
38053 H.writeInt32BE(this._a |
0,
0)
38054 H.writeInt32BE(this._b |
0,
4)
38055 H.writeInt32BE(this._c |
0,
8)
38056 H.writeInt32BE(this._d |
0,
12)
38057 H.writeInt32BE(this._e |
0,
16)
38062 module.exports = Sha
38064 }).call(this,require(
"buffer").Buffer)
38065 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
38066 (function (Buffer){
38068 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
38069 * in FIPS PUB
180-
1
38070 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
38071 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38072 * Distributed under the BSD License
38073 * See http://pajhome.org.uk/crypt/md5 for details.
38076 var inherits = require('inherits')
38077 var Hash = require('./hash')
38080 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38083 var W = new Array(
80)
38089 Hash.call(this,
64,
56)
38092 inherits(Sha1, Hash)
38094 Sha1.prototype.init = function () {
38095 this._a =
0x67452301
38096 this._b =
0xefcdab89
38097 this._c =
0x98badcfe
38098 this._d =
0x10325476
38099 this._e =
0xc3d2e1f0
38104 function rotl1 (num) {
38105 return (num <<
1) | (num
>>> 31)
38108 function rotl5 (num) {
38109 return (num <<
5) | (num
>>> 27)
38112 function rotl30 (num) {
38113 return (num <<
30) | (num
>>> 2)
38116 function ft (s, b, c, d) {
38117 if (s ===
0) return (b & c) | ((~b) & d)
38118 if (s ===
2) return (b & c) | (b & d) | (c & d)
38122 Sha1.prototype._update = function (M) {
38125 var a = this._a |
0
38126 var b = this._b |
0
38127 var c = this._c |
0
38128 var d = this._d |
0
38129 var e = this._e |
0
38131 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38132 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
38134 for (var j =
0; j <
80; ++j) {
38136 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38145 this._a = (a + this._a) |
0
38146 this._b = (b + this._b) |
0
38147 this._c = (c + this._c) |
0
38148 this._d = (d + this._d) |
0
38149 this._e = (e + this._e) |
0
38152 Sha1.prototype._hash = function () {
38153 var H = new Buffer(
20)
38155 H.writeInt32BE(this._a |
0,
0)
38156 H.writeInt32BE(this._b |
0,
4)
38157 H.writeInt32BE(this._c |
0,
8)
38158 H.writeInt32BE(this._d |
0,
12)
38159 H.writeInt32BE(this._e |
0,
16)
38164 module.exports = Sha1
38166 }).call(this,require(
"buffer").Buffer)
38167 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
38168 (function (Buffer){
38170 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38172 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38173 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38177 var inherits = require('inherits')
38178 var Sha256 = require('./sha256')
38179 var Hash = require('./hash')
38181 var W = new Array(
64)
38183 function Sha224 () {
38186 this._w = W // new Array(
64)
38188 Hash.call(this,
64,
56)
38191 inherits(Sha224, Sha256)
38193 Sha224.prototype.init = function () {
38194 this._a =
0xc1059ed8
38195 this._b =
0x367cd507
38196 this._c =
0x3070dd17
38197 this._d =
0xf70e5939
38198 this._e =
0xffc00b31
38199 this._f =
0x68581511
38200 this._g =
0x64f98fa7
38201 this._h =
0xbefa4fa4
38206 Sha224.prototype._hash = function () {
38207 var H = new Buffer(
28)
38209 H.writeInt32BE(this._a,
0)
38210 H.writeInt32BE(this._b,
4)
38211 H.writeInt32BE(this._c,
8)
38212 H.writeInt32BE(this._d,
12)
38213 H.writeInt32BE(this._e,
16)
38214 H.writeInt32BE(this._f,
20)
38215 H.writeInt32BE(this._g,
24)
38220 module.exports = Sha224
38222 }).call(this,require(
"buffer").Buffer)
38223 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
38224 (function (Buffer){
38226 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38228 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38229 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38233 var inherits = require('inherits')
38234 var Hash = require('./hash')
38237 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
38238 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
38239 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
38240 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
38241 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
38242 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
38243 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
38244 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
38245 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
38246 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
38247 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
38248 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
38249 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
38250 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
38251 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
38252 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
38255 var W = new Array(
64)
38257 function Sha256 () {
38260 this._w = W // new Array(
64)
38262 Hash.call(this,
64,
56)
38265 inherits(Sha256, Hash)
38267 Sha256.prototype.init = function () {
38268 this._a =
0x6a09e667
38269 this._b =
0xbb67ae85
38270 this._c =
0x3c6ef372
38271 this._d =
0xa54ff53a
38272 this._e =
0x510e527f
38273 this._f =
0x9b05688c
38274 this._g =
0x1f83d9ab
38275 this._h =
0x5be0cd19
38280 function ch (x, y, z) {
38281 return z ^ (x & (y ^ z))
38284 function maj (x, y, z) {
38285 return (x & y) | (z & (x | y))
38288 function sigma0 (x) {
38289 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
38292 function sigma1 (x) {
38293 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
38296 function gamma0 (x) {
38297 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
38300 function gamma1 (x) {
38301 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
38304 Sha256.prototype._update = function (M) {
38307 var a = this._a |
0
38308 var b = this._b |
0
38309 var c = this._c |
0
38310 var d = this._d |
0
38311 var e = this._e |
0
38312 var f = this._f |
0
38313 var g = this._g |
0
38314 var h = this._h |
0
38316 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38317 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
38319 for (var j =
0; j <
64; ++j) {
38320 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
38321 var T2 = (sigma0(a) + maj(a, b, c)) |
0
38333 this._a = (a + this._a) |
0
38334 this._b = (b + this._b) |
0
38335 this._c = (c + this._c) |
0
38336 this._d = (d + this._d) |
0
38337 this._e = (e + this._e) |
0
38338 this._f = (f + this._f) |
0
38339 this._g = (g + this._g) |
0
38340 this._h = (h + this._h) |
0
38343 Sha256.prototype._hash = function () {
38344 var H = new Buffer(
32)
38346 H.writeInt32BE(this._a,
0)
38347 H.writeInt32BE(this._b,
4)
38348 H.writeInt32BE(this._c,
8)
38349 H.writeInt32BE(this._d,
12)
38350 H.writeInt32BE(this._e,
16)
38351 H.writeInt32BE(this._f,
20)
38352 H.writeInt32BE(this._g,
24)
38353 H.writeInt32BE(this._h,
28)
38358 module.exports = Sha256
38360 }).call(this,require(
"buffer").Buffer)
38361 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
38362 (function (Buffer){
38363 var inherits = require('inherits')
38364 var SHA512 = require('./sha512')
38365 var Hash = require('./hash')
38367 var W = new Array(
160)
38369 function Sha384 () {
38373 Hash.call(this,
128,
112)
38376 inherits(Sha384, SHA512)
38378 Sha384.prototype.init = function () {
38379 this._ah =
0xcbbb9d5d
38380 this._bh =
0x629a292a
38381 this._ch =
0x9159015a
38382 this._dh =
0x152fecd8
38383 this._eh =
0x67332667
38384 this._fh =
0x8eb44a87
38385 this._gh =
0xdb0c2e0d
38386 this._hh =
0x47b5481d
38388 this._al =
0xc1059ed8
38389 this._bl =
0x367cd507
38390 this._cl =
0x3070dd17
38391 this._dl =
0xf70e5939
38392 this._el =
0xffc00b31
38393 this._fl =
0x68581511
38394 this._gl =
0x64f98fa7
38395 this._hl =
0xbefa4fa4
38400 Sha384.prototype._hash = function () {
38401 var H = new Buffer(
48)
38403 function writeInt64BE (h, l, offset) {
38404 H.writeInt32BE(h, offset)
38405 H.writeInt32BE(l, offset +
4)
38408 writeInt64BE(this._ah, this._al,
0)
38409 writeInt64BE(this._bh, this._bl,
8)
38410 writeInt64BE(this._ch, this._cl,
16)
38411 writeInt64BE(this._dh, this._dl,
24)
38412 writeInt64BE(this._eh, this._el,
32)
38413 writeInt64BE(this._fh, this._fl,
40)
38418 module.exports = Sha384
38420 }).call(this,require(
"buffer").Buffer)
38421 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
38422 (function (Buffer){
38423 var inherits = require('inherits')
38424 var Hash = require('./hash')
38427 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
38428 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
38429 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
38430 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
38431 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
38432 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
38433 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
38434 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
38435 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
38436 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
38437 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
38438 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
38439 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
38440 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
38441 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
38442 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
38443 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
38444 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
38445 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
38446 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
38447 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
38448 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
38449 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
38450 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
38451 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
38452 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
38453 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
38454 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
38455 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
38456 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
38457 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
38458 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
38459 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
38460 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
38461 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
38462 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
38463 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
38464 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
38465 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
38466 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
38469 var W = new Array(
160)
38471 function Sha512 () {
38475 Hash.call(this,
128,
112)
38478 inherits(Sha512, Hash)
38480 Sha512.prototype.init = function () {
38481 this._ah =
0x6a09e667
38482 this._bh =
0xbb67ae85
38483 this._ch =
0x3c6ef372
38484 this._dh =
0xa54ff53a
38485 this._eh =
0x510e527f
38486 this._fh =
0x9b05688c
38487 this._gh =
0x1f83d9ab
38488 this._hh =
0x5be0cd19
38490 this._al =
0xf3bcc908
38491 this._bl =
0x84caa73b
38492 this._cl =
0xfe94f82b
38493 this._dl =
0x5f1d36f1
38494 this._el =
0xade682d1
38495 this._fl =
0x2b3e6c1f
38496 this._gl =
0xfb41bd6b
38497 this._hl =
0x137e2179
38502 function Ch (x, y, z) {
38503 return z ^ (x & (y ^ z))
38506 function maj (x, y, z) {
38507 return (x & y) | (z & (x | y))
38510 function sigma0 (x, xl) {
38511 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
38514 function sigma1 (x, xl) {
38515 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
38518 function Gamma0 (x, xl) {
38519 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
38522 function Gamma0l (x, xl) {
38523 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
38526 function Gamma1 (x, xl) {
38527 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
38530 function Gamma1l (x, xl) {
38531 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
38534 function getCarry (a, b) {
38535 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
38538 Sha512.prototype._update = function (M) {
38541 var ah = this._ah |
0
38542 var bh = this._bh |
0
38543 var ch = this._ch |
0
38544 var dh = this._dh |
0
38545 var eh = this._eh |
0
38546 var fh = this._fh |
0
38547 var gh = this._gh |
0
38548 var hh = this._hh |
0
38550 var al = this._al |
0
38551 var bl = this._bl |
0
38552 var cl = this._cl |
0
38553 var dl = this._dl |
0
38554 var el = this._el |
0
38555 var fl = this._fl |
0
38556 var gl = this._gl |
0
38557 var hl = this._hl |
0
38559 for (var i =
0; i <
32; i +=
2) {
38560 W[i] = M.readInt32BE(i *
4)
38561 W[i +
1] = M.readInt32BE(i *
4 +
4)
38563 for (; i <
160; i +=
2) {
38564 var xh = W[i -
15 *
2]
38565 var xl = W[i -
15 *
2 +
1]
38566 var gamma0 = Gamma0(xh, xl)
38567 var gamma0l = Gamma0l(xl, xh)
38570 xl = W[i -
2 *
2 +
1]
38571 var gamma1 = Gamma1(xh, xl)
38572 var gamma1l = Gamma1l(xl, xh)
38574 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
38575 var Wi7h = W[i -
7 *
2]
38576 var Wi7l = W[i -
7 *
2 +
1]
38578 var Wi16h = W[i -
16 *
2]
38579 var Wi16l = W[i -
16 *
2 +
1]
38581 var Wil = (gamma0l + Wi7l) |
0
38582 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
38583 Wil = (Wil + gamma1l) |
0
38584 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
38585 Wil = (Wil + Wi16l) |
0
38586 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
38592 for (var j =
0; j <
160; j +=
2) {
38596 var majh = maj(ah, bh, ch)
38597 var majl = maj(al, bl, cl)
38599 var sigma0h = sigma0(ah, al)
38600 var sigma0l = sigma0(al, ah)
38601 var sigma1h = sigma1(eh, el)
38602 var sigma1l = sigma1(el, eh)
38604 // t1 = h + sigma1 + ch + K[j] + W[j]
38608 var chh = Ch(eh, fh, gh)
38609 var chl = Ch(el, fl, gl)
38611 var t1l = (hl + sigma1l) |
0
38612 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
38613 t1l = (t1l + chl) |
0
38614 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
38615 t1l = (t1l + Kil) |
0
38616 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
38617 t1l = (t1l + Wil) |
0
38618 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
38620 // t2 = sigma0 + maj
38621 var t2l = (sigma0l + majl) |
0
38622 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
38630 el = (dl + t1l) |
0
38631 eh = (dh + t1h + getCarry(el, dl)) |
0
38638 al = (t1l + t2l) |
0
38639 ah = (t1h + t2h + getCarry(al, t1l)) |
0
38642 this._al = (this._al + al) |
0
38643 this._bl = (this._bl + bl) |
0
38644 this._cl = (this._cl + cl) |
0
38645 this._dl = (this._dl + dl) |
0
38646 this._el = (this._el + el) |
0
38647 this._fl = (this._fl + fl) |
0
38648 this._gl = (this._gl + gl) |
0
38649 this._hl = (this._hl + hl) |
0
38651 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
38652 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
38653 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
38654 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
38655 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
38656 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
38657 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
38658 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
38661 Sha512.prototype._hash = function () {
38662 var H = new Buffer(
64)
38664 function writeInt64BE (h, l, offset) {
38665 H.writeInt32BE(h, offset)
38666 H.writeInt32BE(l, offset +
4)
38669 writeInt64BE(this._ah, this._al,
0)
38670 writeInt64BE(this._bh, this._bl,
8)
38671 writeInt64BE(this._ch, this._cl,
16)
38672 writeInt64BE(this._dh, this._dl,
24)
38673 writeInt64BE(this._eh, this._el,
32)
38674 writeInt64BE(this._fh, this._fl,
40)
38675 writeInt64BE(this._gh, this._gl,
48)
38676 writeInt64BE(this._hh, this._hl,
56)
38681 module.exports = Sha512
38683 }).call(this,require(
"buffer").Buffer)
38684 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
38685 var isHexPrefixed = require('is-hex-prefixed');
38688 * Removes '
0x' from a given `String` is present
38689 * @param {String} str the string value
38690 * @return {String|Optional} a string by pass if necessary
38692 module.exports = function stripHexPrefix(str) {
38693 if (typeof str !== 'string') {
38697 return isHexPrefixed(str) ? str.slice(
2) : str;
38700 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
38702 <script>function convertRippleAdrr(address) {
38703 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
38704 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
38708 function convertRipplePriv(priv) {
38709 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2)
38713 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
38717 /** @fileOverview Javascript cryptography implementation.
38719 * Crush to remove comments, shorten variable names and
38720 * generally reduce transmission size.
38722 * @author Emily Stark
38723 * @author Mike Hamburg
38724 * @author Dan Boneh
38728 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
38729 /*global document, window, escape, unescape, module, require, Uint32Array */
38731 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
38733 /** @namespace Symmetric ciphers. */
38736 /** @namespace Hash functions. Right now only SHA256 is implemented. */
38739 /** @namespace Key exchange functions. Right now only SRP is implemented. */
38742 /** @namespace Block cipher modes of operation. */
38745 /** @namespace Miscellaneous. HMAC and PBKDF2. */
38749 * @namespace Bit array encoders and decoders.
38752 * The members of this namespace are functions which translate between
38753 * SJCL's bitArrays and other objects (usually strings). Because it
38754 * isn't always clear which direction is encoding and which is decoding,
38755 * the method names are "fromBits" and "toBits".
38759 /** @namespace Exceptions. */
38761 /** @constructor Ciphertext is corrupt. */
38762 corrupt: function(message) {
38763 this.toString = function() { return "CORRUPT: "+this.message; };
38764 this.message = message;
38767 /** @constructor Invalid parameter. */
38768 invalid: function(message) {
38769 this.toString = function() { return "INVALID: "+this.message; };
38770 this.message = message;
38773 /** @constructor Bug or missing feature in SJCL. @constructor */
38774 bug: function(message) {
38775 this.toString = function() { return "BUG: "+this.message; };
38776 this.message = message;
38779 /** @constructor Something isn't ready. */
38780 notReady: function(message) {
38781 this.toString = function() { return "NOT READY: "+this.message; };
38782 this.message = message;
38787 if(typeof module !== 'undefined' && module.exports){
38788 module.exports = sjcl;
38790 if (typeof define === "function") {
38791 define([], function () {
38799 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
38801 * @author Emily Stark
38802 * @author Mike Hamburg
38803 * @author Dan Boneh
38806 /** @namespace Arrays of bits, encoded as arrays of Numbers.
38810 * These objects are the currency accepted by SJCL's crypto functions.
38814 * Most of our crypto primitives operate on arrays of
4-byte words internally,
38815 * but many of them can take arguments that are not a multiple of
4 bytes.
38816 * This library encodes arrays of bits (whose size need not be a multiple of
8
38817 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
38818 * array of words,
32 bits at a time. Since the words are double-precision
38819 * floating point numbers, they fit some extra data. We use this (in a private,
38820 * possibly-changing manner) to encode the number of bits actually present
38821 * in the last word of the array.
38825 * Because bitwise ops clear this out-of-band data, these arrays can be passed
38826 * to ciphers like AES which want arrays of words.
38831 * Array slices in units of bits.
38832 * @param {bitArray} a The array to slice.
38833 * @param {Number} bstart The offset to the start of the slice, in bits.
38834 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
38835 * slice until the end of the array.
38836 * @return {bitArray} The requested slice.
38838 bitSlice: function (a, bstart, bend) {
38839 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
38840 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
38844 * Extract a number packed into a bit array.
38845 * @param {bitArray} a The array to slice.
38846 * @param {Number} bstart The offset to the start of the slice, in bits.
38847 * @param {Number} length The length of the number to extract.
38848 * @return {Number} The requested slice.
38850 extract: function(a, bstart, blength) {
38851 // FIXME: this Math.floor is not necessary at all, but for some reason
38852 // seems to suppress a bug in the Chromium JIT.
38853 var x, sh = Math.floor((-bstart-blength) &
31);
38854 if ((bstart + blength -
1 ^ bstart) & -
32) {
38855 // it crosses a boundary
38856 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
38858 // within a single word
38859 x = a[bstart/
32|
0]
>>> sh;
38861 return x & ((
1<
<blength) -
1);
38865 * Concatenate two bit arrays.
38866 * @param {bitArray} a1 The first array.
38867 * @param {bitArray} a2 The second array.
38868 * @return {bitArray} The concatenation of a1 and a2.
38870 concat: function (a1, a2) {
38871 if (a1.length ===
0 || a2.length ===
0) {
38872 return a1.concat(a2);
38875 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
38876 if (shift ===
32) {
38877 return a1.concat(a2);
38879 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
38884 * Find the length of an array of bits.
38885 * @param {bitArray} a The array.
38886 * @return {Number} The length of a, in bits.
38888 bitLength: function (a) {
38889 var l = a.length, x;
38890 if (l ===
0) { return
0; }
38892 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
38896 * Truncate an array.
38897 * @param {bitArray} a The array.
38898 * @param {Number} len The length to truncate to, in bits.
38899 * @return {bitArray} A new array, truncated to len bits.
38901 clamp: function (a, len) {
38902 if (a.length *
32 < len) { return a; }
38903 a = a.slice(
0, Math.ceil(len /
32));
38906 if (l
> 0 && len) {
38907 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
38913 * Make a partial word for a bit array.
38914 * @param {Number} len The number of bits in the word.
38915 * @param {Number} x The bits.
38916 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
38917 * @return {Number} The partial word.
38919 partial: function (len, x, _end) {
38920 if (len ===
32) { return x; }
38921 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
38925 * Get the number of bits used by a partial word.
38926 * @param {Number} x The partial word.
38927 * @return {Number} The number of bits used by the partial word.
38929 getPartial: function (x) {
38930 return Math.round(x/
0x10000000000) ||
32;
38934 * Compare two arrays for equality in a predictable amount of time.
38935 * @param {bitArray} a The first array.
38936 * @param {bitArray} b The second array.
38937 * @return {boolean} true if a == b; false otherwise.
38939 equal: function (a, b) {
38940 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
38944 for (i=
0; i
<a.length; i++) {
38950 /** Shift an array right.
38951 * @param {bitArray} a The array to shift.
38952 * @param {Number} shift The number of bits to shift.
38953 * @param {Number} [carry=
0] A byte to carry in
38954 * @param {bitArray} [out=[]] An array to prepend to the output.
38957 _shiftRight: function (a, shift, carry, out) {
38958 var i, last2=
0, shift2;
38959 if (out === undefined) { out = []; }
38961 for (; shift
>=
32; shift -=
32) {
38966 return out.concat(a);
38969 for (i=
0; i
<a.length; i++) {
38970 out.push(carry | a[i]
>>>shift);
38971 carry = a[i] << (
32-shift);
38973 last2 = a.length ? a[a.length-
1] :
0;
38974 shift2 = sjcl.bitArray.getPartial(last2);
38975 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
38979 /** xor a block of
4 words together.
38982 _xor4: function(x,y) {
38983 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
38986 /** byteswap a word array inplace.
38987 * (does not handle partial words)
38988 * @param {sjcl.bitArray} a word array
38989 * @return {sjcl.bitArray} byteswapped array
38991 byteswapM: function(a) {
38992 var i, v, m =
0xff00;
38993 for (i =
0; i < a.length; ++i) {
38995 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
39002 //// codecString.js
39004 /** @fileOverview Bit array codec implementations.
39006 * @author Emily Stark
39007 * @author Mike Hamburg
39008 * @author Dan Boneh
39011 /** @namespace UTF-
8 strings */
39012 sjcl.codec.utf8String = {
39013 /** Convert from a bitArray to a UTF-
8 string. */
39014 fromBits: function (arr) {
39015 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
39016 for (i=
0; i
<bl/
8; i++) {
39020 out += String.fromCharCode(tmp
>>> 24);
39023 return decodeURIComponent(escape(out));
39026 /** Convert from a UTF-
8 string to a bitArray. */
39027 toBits: function (str) {
39028 str = unescape(encodeURIComponent(str));
39029 var out = [], i, tmp=
0;
39030 for (i=
0; i
<str.length; i++) {
39031 tmp = tmp <<
8 | str.charCodeAt(i);
39038 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
39047 /** @fileOverview Bit array codec implementations.
39049 * @author Emily Stark
39050 * @author Mike Hamburg
39051 * @author Dan Boneh
39054 /** @namespace Hexadecimal */
39056 /** Convert from a bitArray to a hex string. */
39057 fromBits: function (arr) {
39059 for (i=
0; i
<arr.length; i++) {
39060 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
39062 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
39064 /** Convert from a hex string to a bitArray. */
39065 toBits: function (str) {
39066 var i, out=[], len;
39067 str = str.replace(/\s|
0x/g,
"");
39069 str = str +
"00000000";
39070 for (i=
0; i
<str.length; i+=
8) {
39071 out.push(parseInt(str.substr(i,
8),
16)^
0);
39073 return sjcl.bitArray.clamp(out, len*
4);
39080 /** @fileOverview Javascript SHA-
512 implementation.
39082 * This implementation was written for CryptoJS by Jeff Mott and adapted for
39083 * SJCL by Stefan Thomas.
39085 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
39086 * Released with New BSD License
39088 * @author Emily Stark
39089 * @author Mike Hamburg
39090 * @author Dan Boneh
39091 * @author Jeff Mott
39092 * @author Stefan Thomas
39096 * Context for a SHA-
512 operation in progress.
39098 * @class Secure Hash Algorithm,
512 bits.
39100 sjcl.hash.sha512 = function (hash) {
39101 if (!this._key[
0]) { this._precompute(); }
39103 this._h = hash._h.slice(
0);
39104 this._buffer = hash._buffer.slice(
0);
39105 this._length = hash._length;
39112 * Hash a string or an array of words.
39114 * @param {bitArray|String} data the data to hash.
39115 * @return {bitArray} The hash value, an array of
16 big-endian words.
39117 sjcl.hash.sha512.hash = function (data) {
39118 return (new sjcl.hash.sha512()).update(data).finalize();
39121 sjcl.hash.sha512.prototype = {
39123 * The hash's block size, in bits.
39129 * Reset the hash state.
39132 reset:function () {
39133 this._h = this._init.slice(
0);
39140 * Input several words to the hash.
39141 * @param {bitArray|String} data the data to hash.
39144 update: function (data) {
39145 if (typeof data ===
"string") {
39146 data = sjcl.codec.utf8String.toBits(data);
39148 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39150 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39151 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
39152 this._block(b.splice(
0,
32));
39158 * Complete hashing and output the hash value.
39159 * @return {bitArray} The hash value, an array of
16 big-endian words.
39161 finalize:function () {
39162 var i, b = this._buffer, h = this._h;
39164 // Round out and push the buffer
39165 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39167 // Round out the buffer to a multiple of
32 words, less the
4 length words.
39168 for (i = b.length +
4; i &
31; i++) {
39172 // append the length
39175 b.push(Math.floor(this._length /
0x100000000));
39176 b.push(this._length |
0);
39179 this._block(b.splice(
0,
32));
39187 * The SHA-
512 initialization vector, to be precomputed.
39193 * Least significant
24 bits of SHA512 initialization values.
39195 * Javascript only has
53 bits of precision, so we compute the
40 most
39196 * significant bits and add the remaining
24 bits as constants.
39200 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
39204 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
39205 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
39209 * The SHA-
512 hash key, to be precomputed.
39215 * Least significant
24 bits of SHA512 key values.
39219 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
39220 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
39221 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
39222 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
39223 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
39224 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
39225 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
39226 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
39227 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
39228 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
39232 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
39233 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
39234 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
39235 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
39236 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
39237 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
39238 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
39239 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
39240 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
39241 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
39242 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
39243 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
39244 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
39245 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
39246 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
39247 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
39248 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
39249 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
39250 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
39251 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
39255 * Function to precompute _init and _key.
39258 _precompute: function () {
39259 // XXX: This code is for precomputing the SHA256 constants, change for
39260 // SHA512 and re-enable.
39261 var i =
0, prime =
2, factor;
39263 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39264 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
39266 outer: for (; i
<80; prime++) {
39267 for (factor=
2; factor*factor <= prime; factor++) {
39268 if (prime % factor ===
0) {
39275 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
39276 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
39278 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
39279 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
39285 * Perform one cycle of SHA-
512.
39286 * @param {bitArray} words one block of words.
39289 _block:function (words) {
39291 w = words.slice(
0),
39294 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
39295 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
39296 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
39297 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
39299 // Working variables
39300 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
39301 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
39302 eh = h4h, el = h4l, fh = h5h, fl = h5l,
39303 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
39305 for (i=
0; i
<80; i++) {
39306 // load up the input word for this round
39309 wrl = w[i *
2 +
1];
39312 var gamma0xh = w[(i-
15) *
2];
39313 var gamma0xl = w[(i-
15) *
2 +
1];
39315 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
39316 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
39319 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
39320 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
39321 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
39324 var gamma1xh = w[(i-
2) *
2];
39325 var gamma1xl = w[(i-
2) *
2 +
1];
39327 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
39328 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
39331 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
39332 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
39333 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
39336 var wr7h = w[(i-
7) *
2];
39337 var wr7l = w[(i-
7) *
2 +
1];
39339 var wr16h = w[(i-
16) *
2];
39340 var wr16l = w[(i-
16) *
2 +
1];
39342 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
39343 wrl = gamma0l + wr7l;
39344 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
39346 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
39348 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
39352 w[i*
2 +
1] = wrl |=
0;
39355 var chh = (eh & fh) ^ (~eh & gh);
39356 var chl = (el & fl) ^ (~el & gl);
39359 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
39360 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
39363 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
39364 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
39367 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
39368 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
39372 var krl = k[i*
2+
1];
39374 // t1 = h + sigma1 + ch + K(round) + W(round)
39375 var t1l = hl + sigma1l;
39376 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
39378 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
39380 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
39381 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
39382 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
39384 // t2 = sigma0 + maj
39385 var t2l = sigma0l + majl;
39386 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
39388 // Update working variables
39395 el = (dl + t1l) |
0;
39396 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39403 al = (t1l + t2l) |
0;
39404 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
39407 // Intermediate hash
39408 h0l = h[
1] = (h0l + al) |
0;
39409 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
39410 h1l = h[
3] = (h1l + bl) |
0;
39411 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
39412 h2l = h[
5] = (h2l + cl) |
0;
39413 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
39414 h3l = h[
7] = (h3l + dl) |
0;
39415 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39416 h4l = h[
9] = (h4l + el) |
0;
39417 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
39418 h5l = h[
11] = (h5l + fl) |
0;
39419 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
39420 h6l = h[
13] = (h6l + gl) |
0;
39421 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
39422 h7l = h[
15] = (h7l + hl) |
0;
39423 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
39430 /** @fileOverview HMAC implementation.
39432 * @author Emily Stark
39433 * @author Mike Hamburg
39434 * @author Dan Boneh
39437 /** HMAC with the specified hash function.
39439 * @param {bitArray} key the key for HMAC.
39440 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
39442 sjcl.misc.hmac = function (key, Hash) {
39443 this._hash = Hash = Hash || sjcl.hash.sha256;
39444 var exKey = [[],[]], i,
39445 bs = Hash.prototype.blockSize /
32;
39446 this._baseHash = [new Hash(), new Hash()];
39448 if (key.length
> bs) {
39449 key = Hash.hash(key);
39452 for (i=
0; i
<bs; i++) {
39453 exKey[
0][i] = key[i]^
0x36363636;
39454 exKey[
1][i] = key[i]^
0x5C5C5C5C;
39457 this._baseHash[
0].update(exKey[
0]);
39458 this._baseHash[
1].update(exKey[
1]);
39459 this._resultHash = new Hash(this._baseHash[
0]);
39462 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
39463 * @param {bitArray|String} data The data to mac.
39465 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
39466 if (!this._updated) {
39468 return this.digest(data);
39470 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
39474 sjcl.misc.hmac.prototype.reset = function () {
39475 this._resultHash = new this._hash(this._baseHash[
0]);
39476 this._updated = false;
39479 sjcl.misc.hmac.prototype.update = function (data) {
39480 this._updated = true;
39481 this._resultHash.update(data);
39484 sjcl.misc.hmac.prototype.digest = function () {
39485 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
39496 /** @fileOverview Password-based key-derivation function, version
2.0.
39498 * @author Emily Stark
39499 * @author Mike Hamburg
39500 * @author Dan Boneh
39503 /** Password-Based Key-Derivation Function, version
2.0.
39505 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
39507 * This is the method specified by RSA's PKCS #
5 standard.
39509 * @param {bitArray|String} password The password.
39510 * @param {bitArray|String} salt The salt. Should have lots of entropy.
39511 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
39512 * @param {Number} [length] The length of the derived key. Defaults to the
39513 output size of the hash function.
39514 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
39515 * @return {bitArray} the derived key.
39517 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
39518 count = count ||
1000;
39520 if (length <
0 || count <
0) {
39521 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
39524 if (typeof password ===
"string") {
39525 password = sjcl.codec.utf8String.toBits(password);
39528 if (typeof salt ===
"string") {
39529 salt = sjcl.codec.utf8String.toBits(salt);
39532 Prff = Prff || sjcl.misc.hmac;
39534 var prf = new Prff(password),
39535 u, ui, i, j, k, out = [], b = sjcl.bitArray;
39537 for (k =
1;
32 * out.length < (length ||
1); k++) {
39538 u = ui = prf.encrypt(b.concat(salt,[k]));
39540 for (i=
1; i
<count; i++) {
39541 ui = prf.encrypt(ui);
39542 for (j=
0; j
<ui.length; j++) {
39547 out = out.concat(u);
39550 if (length) { out = b.clamp(out, length); }
39558 /** @fileOverview Javascript SHA-
256 implementation.
39560 * An older version of this implementation is available in the public
39561 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
39562 * Stanford University
2008-
2010 and BSD-licensed for liability
39565 * Special thanks to Aldo Cortesi for pointing out several bugs in
39568 * @author Emily Stark
39569 * @author Mike Hamburg
39570 * @author Dan Boneh
39574 * Context for a SHA-
256 operation in progress.
39576 * @class Secure Hash Algorithm,
256 bits.
39578 sjcl.hash.sha256 = function (hash) {
39579 if (!this._key[
0]) { this._precompute(); }
39581 this._h = hash._h.slice(
0);
39582 this._buffer = hash._buffer.slice(
0);
39583 this._length = hash._length;
39590 * Hash a string or an array of words.
39592 * @param {bitArray|String} data the data to hash.
39593 * @return {bitArray} The hash value, an array of
16 big-endian words.
39595 sjcl.hash.sha256.hash = function (data) {
39596 return (new sjcl.hash.sha256()).update(data).finalize();
39599 sjcl.hash.sha256.prototype = {
39601 * The hash's block size, in bits.
39607 * Reset the hash state.
39610 reset:function () {
39611 this._h = this._init.slice(
0);
39618 * Input several words to the hash.
39619 * @param {bitArray|String} data the data to hash.
39622 update: function (data) {
39623 if (typeof data ===
"string") {
39624 data = sjcl.codec.utf8String.toBits(data);
39626 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39628 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39629 for (i =
512+ol & -
512; i <= nl; i+=
512) {
39630 this._block(b.splice(
0,
16));
39636 * Complete hashing and output the hash value.
39637 * @return {bitArray} The hash value, an array of
8 big-endian words.
39639 finalize:function () {
39640 var i, b = this._buffer, h = this._h;
39642 // Round out and push the buffer
39643 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39645 // Round out the buffer to a multiple of
16 words, less the
2 length words.
39646 for (i = b.length +
2; i &
15; i++) {
39650 // append the length
39651 b.push(Math.floor(this._length /
0x100000000));
39652 b.push(this._length |
0);
39655 this._block(b.splice(
0,
16));
39663 * The SHA-
256 initialization vector, to be precomputed.
39668 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
39672 * The SHA-
256 hash key, to be precomputed.
39678 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
39679 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
39680 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
39681 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
39682 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
39683 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
39684 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
39685 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
39690 * Function to precompute _init and _key.
39693 _precompute: function () {
39694 var i =
0, prime =
2, factor;
39696 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39698 outer: for (; i
<64; prime++) {
39699 for (factor=
2; factor*factor <= prime; factor++) {
39700 if (prime % factor ===
0) {
39707 this._init[i] = frac(Math.pow(prime,
1/
2));
39709 this._key[i] = frac(Math.pow(prime,
1/
3));
39715 * Perform one cycle of SHA-
256.
39716 * @param {bitArray} words one block of words.
39719 _block:function (words) {
39721 w = words.slice(
0),
39724 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
39725 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
39727 /* Rationale for placement of |
0 :
39728 * If a value can overflow is original
32 bits by a factor of more than a few
39729 * million (
2^
23 ish), there is a possibility that it might overflow the
39730 *
53-bit mantissa and lose precision.
39732 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
39733 * propagates around the loop, and on the hash state h[]. I don't believe
39734 * that the clamps on h4 and on h0 are strictly necessary, but it's close
39735 * (for h4 anyway), and better safe than sorry.
39737 * The clamps on h[] are necessary for the output to be correct even in the
39738 * common case and for short inputs.
39740 for (i=
0; i
<64; i++) {
39741 // load up the input word for this round
39745 a = w[(i+
1 ) &
15];
39746 b = w[(i+
14) &
15];
39747 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
39748 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
39749 w[i&
15] + w[(i+
9) &
15]) |
0;
39752 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
39755 h7 = h6; h6 = h5; h5 = h4;
39757 h3 = h2; h2 = h1; h1 = h0;
39759 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
39762 h[
0] = h[
0]+h0 |
0;
39763 h[
1] = h[
1]+h1 |
0;
39764 h[
2] = h[
2]+h2 |
0;
39765 h[
3] = h[
3]+h3 |
0;
39766 h[
4] = h[
4]+h4 |
0;
39767 h[
5] = h[
5]+h5 |
0;
39768 h[
6] = h[
6]+h6 |
0;
39769 h[
7] = h[
7]+h7 |
0;
39773 <script>// An extremely basic translation library
39777 // Set some html to be translated. Do this using the 'data-translate' attribute:
39779 //
<div data-translate
>Test
</div>
39780 //
<div data-translate-html
><em>keep em tag
</em></div>
39781 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
39782 //
<span data-translate-title
title=
"Example title"></span>
39784 // Obtain all the phrases to be translated via js debug console:
39786 // Translate.phrasesAsJson();
39788 // Use that template to translate the phrases into another language.
39789 // Leave the key the same. Change the value to the new language.
39791 // Create a js file to load the new phrases. In this example for Spanish,
39792 // es.js will contain the following code:
39794 // Translate.loadForeignPhrases("es", {
39795 // "Test": "Test in Spanish",
39796 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
39797 // "Example placeholder
": "Example placeholder in Spanish
"
39798 // "Example title
": "Example title in Spanish
"
39801 // In your UI put a listener for clicking on the Spanish button:
39803 // mySpanishButton.addEventListener("click
", function() {
39804 // Translate.setLanguage("es
");
39806 // myEnglishButton.addEventListener("click
", function() {
39807 // Translate.setLanguage("en
");
39810 Translate = new (function() {
39812 var defaultLanguage = "en
";
39814 var allPhrases = {};
39815 allPhrases[defaultLanguage] = {};
39820 selector: "[data-translate]
",
39821 getKey: function() {
39822 return this.textContent.trim().replace(/\s+/g, " ");
39824 setPhrase: function(p) {
39825 this.textContent = p;
39830 selector: "[data-translate-html]
",
39831 getKey: function() {
39832 return this.innerHTML.trim().replace(/\s+/g, " ");
39834 setPhrase: function(p) {
39835 this.innerHTML = p;
39839 var placeholder = {
39840 selector: "[data-translate-placeholder]
",
39841 getKey: function() {
39842 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
39844 setPhrase: function(p) {
39845 this.setAttribute("placeholder
", p);
39850 selector: "[data-translate-title]
",
39851 getKey: function() {
39852 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
39854 setPhrase: function(p) {
39855 this.setAttribute("title
", p);
39859 // Get elements to be translated
39860 var allEls = getEls(text)
39861 .concat(getEls(html))
39862 .concat(getEls(placeholder))
39863 .concat(getEls(title));
39865 // Provides access to phrases from a non-default language.
39866 // See phrases_en.js for example usage.
39867 this.loadForeignPhrases = function(language, phrases) {
39868 allPhrases[language] = phrases;
39871 // Displays a different language, eg "en
" or "fr
"
39872 this.setLanguage = function(language) {
39873 for (var i=0; i<allEls.length; i++) {
39874 var el = allEls[i];
39876 if (!(language in allPhrases)) {
39877 console.log(language + " not in allPhrases
");
39880 if (!(key in allPhrases[language])) {
39881 console.log(language + " does not contain phrase:
" + key);
39884 var phrase = allPhrases[language][key];
39885 el.setPhrase(phrase);
39889 // Converts the phrases to a key-pair json file.
39890 // This is a good way to export phrases for use in translation tools.
39891 this.phrasesAsJson = function(language) {
39893 for (var i=0; i<allEls.length; i++) {
39894 var el = allEls[i];
39900 for (var i=0; i<keys.length; i++) {
39902 var translated = "";
39903 if (language in allPhrases && key in allPhrases[language]) {
39904 translated = allPhrases[language][key];
39906 output[key] = translated;
39908 return JSON.stringify(output, null, 2);
39911 function getEls(nodeType) {
39912 var nodes = document.querySelectorAll(nodeType.selector);
39914 for (var i=0; i<nodes.length; i++) {
39915 var node = nodes[i];
39916 node.getKey = nodeType.getKey;
39917 node.setPhrase = nodeType.setPhrase;
39918 node.key = node.getKey();
39919 allPhrases[defaultLanguage][node.key] = node.key;
39927 <script>Translate.loadForeignPhrases("en",
39929 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
39930 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
39931 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
39932 "
<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).",
39933 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
39934 "Account": "Account",
39935 "Address": "Address",
39936 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
39937 "BIP32 Derivation Path": "BIP32 Derivation Path",
39938 "BIP32 Extended Key": "BIP32 Extended Key",
39939 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
39940 "BIP32 Root Key": "BIP32 Root Key",
39941 "BIP39 Mnemonic": "BIP39 Mnemonic",
39942 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
39943 "BIP39 Seed": "BIP39 Seed",
39944 "Base
10": "Base
10",
39945 "Base
6": "Base
6",
39946 "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.",
39947 "Binary": "Binary",
39948 "Bitcoin Core": "Bitcoin Core",
39949 "Bits Per Event": "Bits Per Event",
39950 "Block Explorers": "Block Explorers",
39951 "Can be used with": "Can be used with",
39955 "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.",
39956 "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.",
39957 "Entropy": "Entropy",
39958 "Entropy Type": "Entropy Type",
39959 "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.",
39960 "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>.",
39961 "Event Count": "Event Count",
39962 "External / Internal": "External / Internal",
39963 "Filtered Entropy": "Filtered Entropy",
39964 "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>",
39965 "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>.",
39966 "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>.",
39967 "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>",
39968 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
39969 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
39970 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
39971 "Get the source code from the repository
": "Get the source code from the repository
",
39973 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
39974 "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.
",
39975 "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.
",
39976 "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.
",
39977 "Libraries
": "Libraries
",
39978 "Mnemonic Language
": "Mnemonic Language
",
39979 "Mnemonic Length
": "Mnemonic Length
",
39980 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
39981 "More info
": "More info
",
39982 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
39983 "Mycelium Wallet
": "Mycelium Wallet
",
39984 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
39985 "Offline Usage
": "Offline Usage
",
39986 "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.",
39988 "Private Key": "Private Key",
39989 "Private Keys": "Private Keys",
39990 "Public Key": "Public Key",
39991 "Purpose": "Purpose",
39992 "Raw Binary": "Raw Binary",
39993 "Read more": "Read more",
39994 "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>",
39995 "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>",
39996 "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>",
39997 "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>",
39999 "Show more rows
": "Show more rows
",
40000 "Strength
": "Strength
",
40001 "Supply my own source of entropy
": "Supply my own source of entropy
",
40002 "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.
",
40003 "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>.",
40004 "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.",
40005 "This project is
100% open-source code": "This project is
100% open-source code",
40006 "Toggle": "Toggle",
40007 "Total Bits": "Total Bits",
40008 "Use hardened addresses": "Use hardened addresses",
40009 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
40010 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
40011 "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>.",
40012 "Valid entropy values include:": "Valid entropy values include:",
40013 "Warning": "Warning",
40014 "Word Count": "Word Count",
40015 "You are not a good source of entropy.": "You are not a good source of entropy.",
40016 "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).",
40017 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
40022 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40023 WORDLISTS["english"] = [
40024 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
40025 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
40026 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
40027 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
40028 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
40029 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
40030 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
40031 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
40032 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
40033 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
40034 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
40035 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
40036 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
40037 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
40038 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
40039 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
40040 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
40041 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
40042 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
40043 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
40044 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
40045 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
40046 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
40047 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
40048 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
40049 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
40050 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
40051 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
40052 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
40053 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
40054 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
40055 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
40056 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
40057 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
40058 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
40059 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
40060 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
40061 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
40062 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
40063 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
40064 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
40065 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
40066 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
40067 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
40068 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
40069 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
40070 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
40071 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
40072 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
40073 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
40074 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
40075 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
40076 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
40077 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
40078 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
40079 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
40080 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
40081 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
40082 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
40083 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
40084 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
40085 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
40086 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
40087 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
40088 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
40089 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
40090 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
40091 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
40092 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
40093 "film","filter","final","find","fine","finger","finish","fire","firm","first",
40094 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
40095 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
40096 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
40097 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
40098 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
40099 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
40100 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
40101 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
40102 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
40103 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
40104 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
40105 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
40106 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
40107 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
40108 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
40109 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
40110 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
40111 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
40112 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
40113 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
40114 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
40115 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
40116 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
40117 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
40118 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
40119 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
40120 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
40121 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
40122 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
40123 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
40124 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
40125 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
40126 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
40127 "liar","liberty","library","license","life","lift","light","like","limb","limit",
40128 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
40129 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
40130 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
40131 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
40132 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
40133 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
40134 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
40135 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
40136 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
40137 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
40138 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
40139 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
40140 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
40141 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
40142 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
40143 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
40144 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
40145 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
40146 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
40147 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
40148 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
40149 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
40150 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
40151 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
40152 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
40153 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
40154 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
40155 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
40156 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
40157 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
40158 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
40159 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
40160 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
40161 "prize","problem","process","produce","profit","program","project","promote","proof","property",
40162 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
40163 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
40164 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
40165 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
40166 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
40167 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
40168 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
40169 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
40170 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
40171 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
40172 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
40173 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
40174 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
40175 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
40176 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
40177 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
40178 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
40179 "scrub","sea","search","season","seat","second","secret","section","security","seed",
40180 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
40181 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
40182 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
40183 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
40184 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
40185 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
40186 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
40187 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
40188 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
40189 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
40190 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
40191 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
40192 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
40193 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
40194 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
40195 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
40196 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
40197 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
40198 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
40199 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
40200 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
40201 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
40202 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
40203 "thank","that","theme","then","theory","there","they","thing","this","thought",
40204 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
40205 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
40206 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
40207 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
40208 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
40209 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
40210 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
40211 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
40212 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
40213 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
40214 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
40215 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
40216 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
40217 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
40218 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
40219 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
40220 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
40221 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
40222 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
40223 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
40224 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
40225 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
40226 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
40227 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
40228 "yellow","you","young","youth","zebra","zero","zone","zoo"]
40230 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40231 WORDLISTS["japanese"] = [
40232 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
40233 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
40234 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
40235 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
40236 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
40237 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
40238 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
40239 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
40240 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
40241 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
40242 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
40243 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
40244 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
40245 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
40246 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
40247 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
40248 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
40249 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
40250 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
40251 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
40252 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
40253 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
40254 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
40255 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
40256 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
40257 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
40258 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
40259 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
40260 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
40261 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
40262 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
40263 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
40264 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
40265 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
40266 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
40267 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
40268 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
40269 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
40270 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
40271 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
40272 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
40273 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
40274 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
40275 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
40276 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
40277 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
40278 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
40279 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
40280 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
40281 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
40282 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
40283 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
40284 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
40285 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
40286 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
40287 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
40288 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
40289 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
40290 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
40291 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
40292 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
40293 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
40294 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
40295 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
40296 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
40297 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
40298 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
40299 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
40300 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
40301 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
40302 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
40303 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
40304 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
40305 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
40306 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
40307 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
40308 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
40309 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
40310 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
40311 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
40312 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
40313 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
40314 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
40315 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
40316 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
40317 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
40318 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
40319 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
40320 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
40321 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
40322 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
40323 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
40324 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
40325 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
40326 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
40327 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
40328 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
40329 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
40330 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
40331 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
40332 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
40333 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
40334 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
40335 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
40336 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
40337 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
40338 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
40339 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
40340 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
40341 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
40342 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
40343 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
40344 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
40345 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
40346 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
40347 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
40348 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
40349 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
40350 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
40351 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
40352 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
40353 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
40354 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
40355 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
40356 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
40357 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
40358 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
40359 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
40360 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
40361 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
40362 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
40363 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
40364 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
40365 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
40366 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
40367 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
40368 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
40369 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
40370 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
40371 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
40372 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
40373 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
40374 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
40375 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
40376 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
40377 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
40378 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
40379 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
40380 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
40381 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
40382 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
40383 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
40384 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
40385 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
40386 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
40387 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
40388 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
40389 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
40390 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
40391 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
40392 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
40393 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
40394 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
40395 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
40396 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
40397 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
40398 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
40399 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
40400 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
40401 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
40402 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
40403 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
40404 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
40405 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
40406 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
40407 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
40408 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
40409 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
40410 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
40411 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
40412 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
40413 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
40414 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
40415 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
40416 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
40417 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
40418 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
40419 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
40420 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
40421 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
40422 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
40423 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
40424 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
40425 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
40426 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
40427 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
40428 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
40429 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
40430 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
40431 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
40432 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
40433 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
40434 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
40435 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
40436 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
40438 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40439 WORDLISTS["spanish"] = [
40440 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
40441 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
40442 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
40443 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
40444 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
40445 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
40446 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
40447 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
40448 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
40449 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
40450 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
40451 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
40452 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
40453 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
40454 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
40455 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
40456 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
40457 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
40458 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
40459 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
40460 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
40461 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
40462 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
40463 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
40464 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
40465 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
40466 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
40467 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
40468 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
40469 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
40470 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
40471 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
40472 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
40473 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
40474 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
40475 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
40476 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
40477 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
40478 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
40479 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
40480 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
40481 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
40482 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
40483 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
40484 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
40485 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
40486 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
40487 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
40488 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
40489 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
40490 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
40491 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
40492 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
40493 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
40494 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
40495 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
40496 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
40497 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
40498 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
40499 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
40500 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
40501 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
40502 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
40503 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
40504 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
40505 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
40506 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
40507 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
40508 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
40509 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
40510 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
40511 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
40512 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
40513 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
40514 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
40515 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
40516 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
40517 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
40518 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
40519 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
40520 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
40521 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
40522 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
40523 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
40524 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
40525 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
40526 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
40527 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
40528 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
40529 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
40530 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
40531 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
40532 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
40533 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
40534 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
40535 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
40536 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
40537 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
40538 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
40539 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
40540 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
40541 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
40542 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
40543 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
40544 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
40545 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
40546 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
40547 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
40548 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
40549 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
40550 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
40551 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
40552 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
40553 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
40554 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
40555 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
40556 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
40557 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
40558 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
40559 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
40560 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
40561 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
40562 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
40563 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
40564 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
40565 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
40566 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
40567 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
40568 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
40569 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
40570 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
40571 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
40572 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
40573 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
40574 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
40575 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
40576 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
40577 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
40578 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
40579 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
40580 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
40581 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
40582 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
40583 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
40584 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
40585 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
40586 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
40587 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
40588 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
40589 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
40590 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
40591 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
40592 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
40593 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
40594 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
40595 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
40596 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
40597 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
40598 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
40599 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
40600 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
40601 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
40602 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
40603 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
40604 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
40605 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
40606 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
40607 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
40608 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
40609 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
40610 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
40611 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
40612 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
40613 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
40614 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
40615 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
40616 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
40617 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
40618 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
40619 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
40620 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
40621 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
40622 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
40623 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
40624 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
40625 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
40626 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
40627 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
40628 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
40629 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
40630 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
40631 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
40632 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
40633 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
40634 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
40635 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
40636 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
40637 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
40638 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
40639 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
40640 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
40641 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
40642 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
40643 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
40644 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
40646 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40647 WORDLISTS["chinese_simplified"] = [
40648 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
40649 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
40650 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
40651 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
40652 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
40653 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
40654 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
40655 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
40656 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
40657 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
40658 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
40659 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40660 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
40661 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
40662 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
40663 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
40664 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
40665 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
40666 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
40667 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
40668 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
40669 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
40670 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
40671 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
40672 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
40673 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
40674 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
40675 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
40676 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
40677 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
40678 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
40679 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
40680 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
40681 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
40682 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
40683 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
40684 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
40685 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
40686 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
40687 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
40688 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
40689 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
40690 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
40691 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
40692 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
40693 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
40694 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
40695 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
40696 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
40697 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
40698 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
40699 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
40700 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
40701 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
40702 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
40703 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
40704 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
40705 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
40706 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
40707 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
40708 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
40709 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
40710 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
40711 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
40712 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
40713 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
40714 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
40715 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
40716 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
40717 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
40718 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
40719 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
40720 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
40721 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
40722 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
40723 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40724 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
40725 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
40726 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
40727 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
40728 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
40729 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
40730 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
40731 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
40732 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
40733 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
40734 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
40735 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
40736 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
40737 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
40738 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
40739 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
40740 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40741 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
40742 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
40743 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
40744 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
40745 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
40746 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
40747 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
40748 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
40749 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
40750 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
40751 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
40752 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
40753 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
40754 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
40755 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
40756 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40757 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40758 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
40759 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
40760 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
40761 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
40762 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
40763 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
40764 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
40765 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
40766 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
40767 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
40768 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
40769 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40770 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
40771 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
40772 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
40773 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
40774 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
40775 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
40776 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
40777 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
40778 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
40779 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
40780 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
40781 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
40782 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
40783 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
40784 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
40785 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
40786 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
40787 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
40788 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
40789 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
40790 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
40791 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
40792 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
40793 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
40794 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
40795 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
40796 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
40797 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
40798 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
40799 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
40800 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
40801 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
40802 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
40803 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
40804 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
40805 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
40806 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
40807 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
40808 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
40809 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
40810 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
40811 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
40812 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
40813 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
40814 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
40815 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
40816 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
40817 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
40818 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
40819 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
40820 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
40821 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
40822 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
40823 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
40824 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
40825 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
40826 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
40827 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
40828 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
40829 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
40830 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
40831 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
40832 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
40833 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
40834 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
40835 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
40836 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
40837 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
40838 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
40839 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
40840 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
40841 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
40842 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
40843 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
40844 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
40845 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
40846 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
40847 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
40848 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
40849 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
40850 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
40851 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
40852 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
40854 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40855 WORDLISTS["chinese_traditional"] = [
40856 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
40857 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
40858 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
40859 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
40860 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
40861 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
40862 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
40863 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
40864 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
40865 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
40866 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
40867 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40868 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
40869 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
40870 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
40871 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
40872 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
40873 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
40874 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
40875 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
40876 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
40877 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
40878 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
40879 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
40880 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
40881 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
40882 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
40883 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
40884 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
40885 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
40886 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
40887 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
40888 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
40889 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
40890 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
40891 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
40892 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
40893 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
40894 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
40895 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
40896 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
40897 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
40898 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
40899 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
40900 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
40901 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
40902 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
40903 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
40904 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
40905 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
40906 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
40907 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
40908 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
40909 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
40910 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
40911 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
40912 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
40913 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
40914 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
40915 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
40916 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
40917 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
40918 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
40919 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
40920 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
40921 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
40922 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
40923 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
40924 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
40925 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
40926 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
40927 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
40928 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
40929 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
40930 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
40931 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40932 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
40933 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
40934 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
40935 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
40936 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
40937 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
40938 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
40939 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
40940 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
40941 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
40942 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
40943 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
40944 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
40945 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
40946 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
40947 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
40948 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40949 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
40950 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
40951 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
40952 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
40953 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
40954 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
40955 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
40956 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
40957 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
40958 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
40959 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
40960 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
40961 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
40962 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
40963 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
40964 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40965 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40966 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
40967 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
40968 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
40969 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
40970 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
40971 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
40972 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
40973 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
40974 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
40975 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
40976 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
40977 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40978 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
40979 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
40980 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
40981 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
40982 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
40983 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
40984 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
40985 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
40986 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
40987 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
40988 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
40989 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
40990 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
40991 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
40992 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
40993 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
40994 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
40995 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
40996 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
40997 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
40998 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
40999 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
41000 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
41001 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
41002 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
41003 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
41004 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
41005 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
41006 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
41007 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
41008 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
41009 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
41010 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
41011 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
41012 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
41013 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
41014 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
41015 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
41016 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
41017 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
41018 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
41019 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
41020 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
41021 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
41022 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
41023 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
41024 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
41025 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
41026 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
41027 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
41028 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
41029 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
41030 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
41031 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
41032 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
41033 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
41034 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
41035 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
41036 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
41037 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
41038 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
41039 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
41040 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
41041 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
41042 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
41043 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
41044 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
41045 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
41046 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
41047 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
41048 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
41049 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
41050 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
41051 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
41052 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
41053 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
41054 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
41055 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
41056 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
41057 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
41058 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
41059 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
41060 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
41062 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41063 WORDLISTS["french"] = [
41064 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
41065 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
41066 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
41067 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
41068 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
41069 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
41070 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
41071 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
41072 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
41073 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
41074 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
41075 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
41076 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
41077 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
41078 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
41079 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
41080 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
41081 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
41082 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
41083 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
41084 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
41085 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
41086 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
41087 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
41088 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
41089 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
41090 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
41091 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
41092 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
41093 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
41094 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
41095 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
41096 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
41097 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
41098 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
41099 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
41100 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
41101 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
41102 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
41103 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
41104 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
41105 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
41106 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
41107 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
41108 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
41109 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
41110 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
41111 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
41112 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
41113 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
41114 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
41115 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
41116 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
41117 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
41118 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
41119 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
41120 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
41121 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
41122 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
41123 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
41124 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
41125 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
41126 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
41127 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
41128 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
41129 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
41130 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
41131 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
41132 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
41133 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
41134 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
41135 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
41136 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
41137 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
41138 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
41139 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
41140 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
41141 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
41142 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
41143 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
41144 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
41145 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
41146 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
41147 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
41148 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
41149 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
41150 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
41151 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
41152 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
41153 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
41154 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
41155 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
41156 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
41157 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
41158 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
41159 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
41160 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
41161 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
41162 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
41163 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
41164 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
41165 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
41166 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
41167 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
41168 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
41169 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
41170 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
41171 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
41172 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
41173 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
41174 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
41175 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
41176 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
41177 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
41178 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
41179 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
41180 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
41181 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
41182 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
41183 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
41184 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
41185 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
41186 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
41187 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
41188 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
41189 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
41190 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
41191 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
41192 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
41193 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
41194 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
41195 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
41196 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
41197 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
41198 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
41199 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
41200 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
41201 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
41202 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
41203 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
41204 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
41205 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
41206 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
41207 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
41208 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
41209 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
41210 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
41211 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
41212 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
41213 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
41214 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
41215 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
41216 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
41217 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
41218 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
41219 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
41220 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
41221 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
41222 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
41223 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
41224 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
41225 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
41226 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
41227 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
41228 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
41229 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
41230 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
41231 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
41232 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
41233 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
41234 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
41235 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
41236 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
41237 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
41238 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
41239 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
41240 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
41241 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
41242 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
41243 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
41244 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
41245 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
41246 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
41247 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
41248 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
41249 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
41250 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
41251 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
41252 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
41253 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
41254 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
41255 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
41256 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
41257 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
41258 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
41259 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
41260 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
41261 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
41262 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
41263 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
41264 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
41265 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
41266 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
41267 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
41268 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
41270 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41271 WORDLISTS["italian"] = [
41272 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
41273 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
41274 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
41275 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
41276 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
41277 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
41278 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
41279 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
41280 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
41281 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
41282 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
41283 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
41284 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
41285 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
41286 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
41287 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
41288 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
41289 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
41290 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
41291 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
41292 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
41293 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
41294 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
41295 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
41296 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
41297 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
41298 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
41299 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
41300 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
41301 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
41302 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
41303 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
41304 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
41305 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
41306 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
41307 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
41308 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
41309 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
41310 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
41311 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
41312 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
41313 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
41314 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
41315 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
41316 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
41317 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
41318 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
41319 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
41320 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
41321 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
41322 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
41323 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
41324 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
41325 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
41326 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
41327 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
41328 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
41329 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
41330 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
41331 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
41332 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
41333 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
41334 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
41335 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
41336 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
41337 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
41338 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
41339 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
41340 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
41341 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
41342 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
41343 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
41344 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
41345 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
41346 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
41347 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
41348 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
41349 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
41350 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
41351 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
41352 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
41353 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
41354 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
41355 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
41356 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
41357 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
41358 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
41359 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
41360 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
41361 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
41362 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
41363 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
41364 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
41365 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
41366 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
41367 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
41368 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
41369 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
41370 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
41371 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
41372 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
41373 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
41374 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
41375 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
41376 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
41377 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
41378 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
41379 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
41380 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
41381 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
41382 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
41383 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
41384 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
41385 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
41386 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
41387 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
41388 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
41389 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
41390 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
41391 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
41392 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
41393 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
41394 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
41395 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
41396 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
41397 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
41398 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
41399 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
41400 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
41401 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
41402 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
41403 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
41404 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
41405 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
41406 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
41407 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
41408 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
41409 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
41410 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
41411 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
41412 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
41413 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
41414 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
41415 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
41416 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
41417 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
41418 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
41419 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
41420 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
41421 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
41422 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
41423 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
41424 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
41425 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
41426 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
41427 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
41428 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
41429 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
41430 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
41431 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
41432 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
41433 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
41434 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
41435 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
41436 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
41437 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
41438 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
41439 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
41440 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
41441 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
41442 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
41443 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
41444 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
41445 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
41446 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
41447 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
41448 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
41449 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
41450 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
41451 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
41452 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
41453 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
41454 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
41455 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
41456 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
41457 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
41458 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
41459 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
41460 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
41461 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
41462 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
41463 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
41464 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
41465 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
41466 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
41467 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
41468 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
41469 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
41470 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
41471 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
41472 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
41473 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
41474 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
41475 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
41476 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
41479 * Copyright (c)
2013 Pavol Rusnak
41481 * Permission is hereby granted, free of charge, to any person obtaining a copy of
41482 * this software and associated documentation files (the "Software"), to deal in
41483 * the Software without restriction, including without limitation the rights to
41484 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
41485 * of the Software, and to permit persons to whom the Software is furnished to do
41486 * so, subject to the following conditions:
41488 * The above copyright notice and this permission notice shall be included in all
41489 * copies or substantial portions of the Software.
41491 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41492 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41493 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41494 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41495 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41496 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41500 * Javascript port from python by Ian Coleman
41502 * Requires code from sjcl
41503 * https://github.com/bitwiseshiftleft/sjcl
41506 var Mnemonic = function(language) {
41508 var PBKDF2_ROUNDS =
2048;
41514 var hmacSHA512 = function(key) {
41515 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
41516 this.encrypt = function() {
41517 return hasher.encrypt.apply(hasher, arguments);
41522 wordlist = WORDLISTS[language];
41523 if (wordlist.length != RADIX) {
41524 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
41529 self.generate = function(strength) {
41530 strength = strength ||
128;
41531 var r = strength %
32;
41533 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
41535 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
41536 if (!hasStrongCrypto) {
41537 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
41539 var buffer = new Uint8Array(strength /
8);
41540 var data = crypto.getRandomValues(buffer);
41541 return self.toMnemonic(data);
41544 self.toMnemonic = function(byteArray) {
41545 if (byteArray.length %
4 > 0) {
41546 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
41549 //h = hashlib.sha256(data).hexdigest()
41550 var data = byteArrayToWordArray(byteArray);
41551 var hash = sjcl.hash.sha256.hash(data);
41552 var h = sjcl.codec.hex.fromBits(hash);
41554 // b is a binary string, eg '
00111010101100...'
41555 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
41556 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
41558 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
41559 // c = bin(int(h,
16))[
2:].zfill(
256)
41560 // d = c[:len(data) *
8 /
32]
41561 var a = byteArrayToBinaryString(byteArray);
41562 var c = zfill(hexStringToBinaryString(h),
256);
41563 var d = c.substring(
0, byteArray.length *
8 /
32);
41564 // b = line1 + line2
41568 var blen = b.length /
11;
41569 for (var i=
0; i
<blen; i++) {
41570 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
41571 result.push(wordlist[idx]);
41573 return self.joinWords(result);
41576 self.check = function(mnemonic) {
41577 var mnemonic = self.splitWords(mnemonic);
41578 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
41581 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
41583 for (var i=
0; i
<mnemonic.length; i++) {
41584 var word = mnemonic[i];
41585 var wordIndex = wordlist.indexOf(word);
41586 if (wordIndex == -
1) {
41589 var binaryIndex = zfill(wordIndex.toString(
2),
11);
41590 idx.push(binaryIndex);
41592 var b = idx.join('');
41594 //d = b[:l /
33 *
32]
41596 var d = b.substring(
0, l /
33 *
32);
41597 var h = b.substring(l - l /
33, l);
41598 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
41599 var nd = binaryStringToWordArray(d);
41600 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
41601 var ndHash = sjcl.hash.sha256.hash(nd);
41602 var ndHex = sjcl.codec.hex.fromBits(ndHash);
41603 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
41604 var nh = ndBstr.substring(
0,l/
33);
41608 self.toSeed = function(mnemonic, passphrase) {
41609 passphrase = passphrase || '';
41610 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
41611 var mnemonicNormalized = self.normalizeString(mnemonic);
41612 passphrase = self.normalizeString(passphrase)
41613 passphrase =
"mnemonic" + passphrase;
41614 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
41615 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
41616 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
41617 var hashHex = sjcl.codec.hex.fromBits(result);
41621 self.splitWords = function(mnemonic) {
41622 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
41625 self.joinWords = function(words) {
41626 // Set space correctly depending on the language
41627 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
41629 if (language ==
"japanese") {
41630 space =
"\u3000"; // ideographic space
41632 return words.join(space);
41635 self.normalizeString = function(str) {
41636 if (typeof str.normalize ==
"function") {
41637 return str.normalize(
"NFKD");
41640 // TODO decide how to handle this in the future.
41641 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
41646 function byteArrayToWordArray(data) {
41648 for (var i=
0; i
<data.length/
4; i++) {
41650 v += data[i*
4 +
0] <<
8 *
3;
41651 v += data[i*
4 +
1] <<
8 *
2;
41652 v += data[i*
4 +
2] <<
8 *
1;
41653 v += data[i*
4 +
3] <<
8 *
0;
41659 function byteArrayToBinaryString(data) {
41661 for (var i=
0; i
<data.length; i++) {
41662 bin += zfill(data[i].toString(
2),
8);
41667 function hexStringToBinaryString(hexString) {
41669 for (var i=
0; i
<hexString.length; i++) {
41670 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
41672 return binaryString;
41675 function binaryStringToWordArray(binary) {
41676 var aLen = binary.length /
32;
41678 for (var i=
0; i
<aLen; i++) {
41679 var valueStr = binary.substring(
0,
32);
41680 var value = parseInt(valueStr,
2);
41682 binary = binary.slice(
32);
41687 // Pad a numeric string on the left with zero digits until the given width
41689 // Note this differs to the python implementation because it does not
41690 // handle numbers starting with a sign.
41691 function zfill(source, length) {
41692 source = source.toString();
41693 while (source.length < length) {
41694 source = '
0' + source;
41704 JavaScript BigInteger library version
0.9.1
41705 http://silentmatt.com/biginteger/
41707 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
41708 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
41709 Licensed under the MIT license.
41711 Support for arbitrary internal representation base was added by
41716 File: biginteger.js
41722 (function(exports) {
41726 An arbitrarily-large integer.
41728 <BigInteger> objects should be considered immutable. None of the "built-in"
41729 methods modify *this* or their arguments. All properties should be
41730 considered private.
41732 All the methods of
<BigInteger> instances can be called "statically". The
41733 static versions are convenient if you don't already have a
<BigInteger>
41736 As an example, these calls are equivalent.
41738 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
41739 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
41742 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
41745 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
41748 Constructor: BigInteger()
41749 Convert a value to a
<BigInteger>.
41751 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
41752 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
41753 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
41754 without a radix argument.
41756 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
41757 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
41758 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
41759 > var n3 = BigInteger(n2); // Return n2, unchanged
41761 The constructor form only takes an array and a sign. *n* must be an
41762 array of numbers in little-endian order, where each digit is between
0
41763 and BigInteger.base. The second parameter sets the sign: -
1 for
41764 negative, +
1 for positive, or
0 for zero. The array is *not copied and
41765 may be modified*. If the array contains only zeros, the sign parameter
41766 is ignored and is forced to zero.
41768 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
41772 n - Value to convert to a
<BigInteger>.
41776 A
<BigInteger> value.
41780 <parse>,
<BigInteger>
41782 function BigInteger(n, s, token) {
41783 if (token !== CONSTRUCT) {
41784 if (n instanceof BigInteger) {
41787 else if (typeof n === "undefined") {
41790 return BigInteger.parse(n);
41793 n = n || []; // Provide the nullary constructor for subclasses.
41794 while (n.length && !n[n.length -
1]) {
41798 this._s = n.length ? (s ||
1) :
0;
41801 BigInteger._construct = function(n, s) {
41802 return new BigInteger(n, s, CONSTRUCT);
41805 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
41806 // require base to be a power of
10.
10^
7 is the largest such power
41807 // that won't cause a precision loss when digits are multiplied.
41808 var BigInteger_base =
10000000;
41809 var BigInteger_base_log10 =
7;
41811 BigInteger.base = BigInteger_base;
41812 BigInteger.base_log10 = BigInteger_base_log10;
41814 var ZERO = new BigInteger([],
0, CONSTRUCT);
41817 BigInteger.ZERO = ZERO;
41819 var ONE = new BigInteger([
1],
1, CONSTRUCT);
41822 BigInteger.ONE = ONE;
41824 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
41826 //
<BigInteger> -
1.
41827 BigInteger.M_ONE = M_ONE;
41830 // Shortcut for
<ZERO>.
41831 BigInteger._0 = ZERO;
41834 // Shortcut for
<ONE>.
41835 BigInteger._1 = ONE;
41839 Array of
<BigIntegers> from
0 to
36.
41841 These are used internally for parsing, but useful when you need a "small"
41846 <ZERO>,
<ONE>,
<_0>,
<_1>
41848 BigInteger.small = [
41851 /* Assuming BigInteger_base
> 36 */
41852 new BigInteger( [
2],
1, CONSTRUCT),
41853 new BigInteger( [
3],
1, CONSTRUCT),
41854 new BigInteger( [
4],
1, CONSTRUCT),
41855 new BigInteger( [
5],
1, CONSTRUCT),
41856 new BigInteger( [
6],
1, CONSTRUCT),
41857 new BigInteger( [
7],
1, CONSTRUCT),
41858 new BigInteger( [
8],
1, CONSTRUCT),
41859 new BigInteger( [
9],
1, CONSTRUCT),
41860 new BigInteger([
10],
1, CONSTRUCT),
41861 new BigInteger([
11],
1, CONSTRUCT),
41862 new BigInteger([
12],
1, CONSTRUCT),
41863 new BigInteger([
13],
1, CONSTRUCT),
41864 new BigInteger([
14],
1, CONSTRUCT),
41865 new BigInteger([
15],
1, CONSTRUCT),
41866 new BigInteger([
16],
1, CONSTRUCT),
41867 new BigInteger([
17],
1, CONSTRUCT),
41868 new BigInteger([
18],
1, CONSTRUCT),
41869 new BigInteger([
19],
1, CONSTRUCT),
41870 new BigInteger([
20],
1, CONSTRUCT),
41871 new BigInteger([
21],
1, CONSTRUCT),
41872 new BigInteger([
22],
1, CONSTRUCT),
41873 new BigInteger([
23],
1, CONSTRUCT),
41874 new BigInteger([
24],
1, CONSTRUCT),
41875 new BigInteger([
25],
1, CONSTRUCT),
41876 new BigInteger([
26],
1, CONSTRUCT),
41877 new BigInteger([
27],
1, CONSTRUCT),
41878 new BigInteger([
28],
1, CONSTRUCT),
41879 new BigInteger([
29],
1, CONSTRUCT),
41880 new BigInteger([
30],
1, CONSTRUCT),
41881 new BigInteger([
31],
1, CONSTRUCT),
41882 new BigInteger([
32],
1, CONSTRUCT),
41883 new BigInteger([
33],
1, CONSTRUCT),
41884 new BigInteger([
34],
1, CONSTRUCT),
41885 new BigInteger([
35],
1, CONSTRUCT),
41886 new BigInteger([
36],
1, CONSTRUCT)
41889 // Used for parsing/radix conversion
41890 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
41894 Convert a
<BigInteger> to a string.
41896 When *base* is greater than
10, letters are upper case.
41900 base - Optional base to represent the number in (default is base
10).
41901 Must be between
2 and
36 inclusive, or an Error will be thrown.
41905 The string representation of the
<BigInteger>.
41907 BigInteger.prototype.toString = function(base) {
41908 base = +base ||
10;
41909 if (base <
2 || base
> 36) {
41910 throw new Error(
"illegal radix " + base +
".");
41912 if (this._s ===
0) {
41916 var str = this._s <
0 ?
"-" :
"";
41917 str += this._d[this._d.length -
1].toString();
41918 for (var i = this._d.length -
2; i
>=
0; i--) {
41919 var group = this._d[i].toString();
41920 while (group.length < BigInteger_base_log10) group = '
0' + group;
41926 var numerals = BigInteger.digits;
41927 base = BigInteger.small[base];
41928 var sign = this._s;
41930 var n = this.abs();
41934 while (n._s !==
0) {
41935 var divmod = n.divRem(base);
41938 // TODO: This could be changed to unshift instead of reversing at the end.
41939 // Benchmark both to compare speeds.
41940 digits.push(numerals[digit.valueOf()]);
41942 return (sign <
0 ? "-" : "") + digits.reverse().join("");
41946 // Verify strings for parsing
41947 BigInteger.radixRegex = [
41989 Parse a string into a
<BigInteger>.
41991 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
41992 *base* is not provided, it will be guessed based on the leading characters
41995 - "
0x" or "
0X": *base* =
16
41996 - "
0c" or "
0C": *base* =
8
41997 - "
0b" or "
0B": *base* =
2
41998 - else: *base* =
10
42000 If no base is provided, or *base* is
10, the number can be in exponential
42001 form. For example, these are all valid:
42003 > BigInteger.parse("
1e9"); // Same as "
1000000000"
42004 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
42005 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
42007 If any characters fall outside the range defined by the radix, an exception
42012 s - The string to parse.
42013 base - Optional radix (default is to guess based on *s*).
42017 a
<BigInteger> instance.
42019 BigInteger.parse = function(s, base) {
42020 // Expands a number in exponential form to decimal form.
42021 // expandExponential("-
13.441*
10^
5") === "
1344100";
42022 // expandExponential("
1.12300e-1") === "
0.112300";
42023 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
42024 function expandExponential(str) {
42025 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
42027 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
42030 var i = n.length + c;
42031 x = (l ? n : f).length;
42032 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
42033 var z = (new Array(c +
1)).join("
0");
42035 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
42040 if (typeof base === "undefined" || +base ===
10) {
42041 s = expandExponential(s);
42045 if (typeof base === "undefined") {
42046 prefixRE = '
0[xcb]';
42048 else if (base ==
16) {
42051 else if (base ==
8) {
42054 else if (base ==
2) {
42060 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
42062 var sign = parts[
1] || "+";
42063 var baseSection = parts[
2] || "";
42064 var digits = parts[
3] || "";
42066 if (typeof base === "undefined") {
42068 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
42071 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
42074 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
42081 else if (base <
2 || base
> 36) {
42082 throw new Error(
"Illegal radix " + base +
".");
42087 // Check for digits outside the range
42088 if (!(BigInteger.radixRegex[base].test(digits))) {
42089 throw new Error(
"Bad digit for radix " + base);
42092 // Strip leading zeros, and convert to array
42093 digits = digits.replace(/^
0+/,
"").split(
"");
42094 if (digits.length ===
0) {
42098 // Get the sign (we know it's not zero)
42099 sign = (sign ===
"-") ? -
1 :
1;
42104 while (digits.length
>= BigInteger_base_log10) {
42105 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
42107 d.push(parseInt(digits.join(''),
10));
42108 return new BigInteger(d, sign, CONSTRUCT);
42111 // Do the conversion
42113 base = BigInteger.small[base];
42114 var small = BigInteger.small;
42115 for (var i =
0; i < digits.length; i++) {
42116 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
42118 return new BigInteger(d._d, sign, CONSTRUCT);
42121 throw new Error("Invalid BigInteger format: " + s);
42127 Add two
<BigIntegers>.
42131 n - The number to add to *this*. Will be converted to a
<BigInteger>.
42135 The numbers added together.
42139 <subtract>,
<multiply>,
<quotient>,
<next>
42141 BigInteger.prototype.add = function(n) {
42142 if (this._s ===
0) {
42143 return BigInteger(n);
42150 if (this._s !== n._s) {
42152 return this.subtract(n);
42159 var sum = new Array(Math.max(al, bl) +
1);
42160 var size = Math.min(al, bl);
42164 for (var i =
0; i < size; i++) {
42165 digit = a[i] + b[i] + carry;
42166 sum[i] = digit % BigInteger_base;
42167 carry = (digit / BigInteger_base) |
0;
42173 for (i = size; carry && i < al; i++) {
42174 digit = a[i] + carry;
42175 sum[i] = digit % BigInteger_base;
42176 carry = (digit / BigInteger_base) |
0;
42182 for ( ; i < al; i++) {
42186 return new BigInteger(sum, this._s, CONSTRUCT);
42191 Get the additive inverse of a
<BigInteger>.
42195 A
<BigInteger> with the same magnatude, but with the opposite sign.
42201 BigInteger.prototype.negate = function() {
42202 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
42207 Get the absolute value of a
<BigInteger>.
42211 A
<BigInteger> with the same magnatude, but always positive (or zero).
42217 BigInteger.prototype.abs = function() {
42218 return (this._s <
0) ? this.negate() : this;
42223 Subtract two
<BigIntegers>.
42227 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
42231 The *n* subtracted from *this*.
42235 <add>,
<multiply>,
<quotient>,
<prev>
42237 BigInteger.prototype.subtract = function(n) {
42238 if (this._s ===
0) {
42239 return BigInteger(n).negate();
42246 if (this._s !== n._s) {
42248 return this.add(n);
42252 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
42254 m = new BigInteger(n._d,
1, CONSTRUCT);
42255 n = new BigInteger(this._d,
1, CONSTRUCT);
42258 // Both are positive =
> a - b
42259 var sign = m.compareAbs(n);
42263 else if (sign <
0) {
42275 var diff = new Array(al); // al
>= bl since a
> b
42280 for (i =
0; i < bl; i++) {
42281 digit = a[i] - borrow - b[i];
42283 digit += BigInteger_base;
42291 for (i = bl; i < al; i++) {
42292 digit = a[i] - borrow;
42294 digit += BigInteger_base;
42302 for ( ; i < al; i++) {
42306 return new BigInteger(diff, sign, CONSTRUCT);
42310 function addOne(n, sign) {
42312 var sum = a.slice();
42317 var digit = (a[i] ||
0) +
1;
42318 sum[i] = digit % BigInteger_base;
42319 if (digit <= BigInteger_base -
1) {
42325 return new BigInteger(sum, sign, CONSTRUCT);
42328 function subtractOne(n, sign) {
42330 var sum = a.slice();
42335 var digit = (a[i] ||
0) -
1;
42337 sum[i] = digit + BigInteger_base;
42346 return new BigInteger(sum, sign, CONSTRUCT);
42351 Get the next
<BigInteger> (add one).
42361 BigInteger.prototype.next = function() {
42366 return subtractOne(this, -
1);
42369 return addOne(this,
1);
42375 Get the previous
<BigInteger> (subtract one).
42385 BigInteger.prototype.prev = function() {
42390 return addOne(this, -
1);
42393 return subtractOne(this,
1);
42399 Function: compareAbs
42400 Compare the absolute value of two
<BigIntegers>.
42402 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
42406 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42410 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
42416 BigInteger.prototype.compareAbs = function(n) {
42421 if (!(n instanceof BigInteger)) {
42422 if (!isFinite(n)) {
42423 return(isNaN(n) ? n : -
1);
42428 if (this._s ===
0) {
42429 return (n._s !==
0) ? -
1 :
0;
42435 var l = this._d.length;
42436 var nl = n._d.length;
42446 for (var i = l-
1; i
>=
0; i--) {
42447 if (a[i] !== b[i]) {
42448 return a[i] < b[i] ? -
1 :
1;
42457 Compare two
<BigIntegers>.
42461 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42465 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
42469 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
42471 BigInteger.prototype.compare = function(n) {
42478 if (this._s ===
0) {
42482 if (this._s === n._s) { // both positive or both negative
42483 var cmp = this.compareAbs(n);
42484 return cmp * this._s;
42493 Return true iff *this* is either
1 or -
1.
42497 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
42501 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
42502 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
42504 BigInteger.prototype.isUnit = function() {
42505 return this === ONE ||
42507 (this._d.length ===
1 && this._d[
0] ===
1);
42512 Multiply two
<BigIntegers>.
42516 n - The number to multiply *this* by. Will be converted to a
42521 The numbers multiplied together.
42525 <add>,
<subtract>,
<quotient>,
<square>
42527 BigInteger.prototype.multiply = function(n) {
42528 // TODO: Consider adding Karatsuba multiplication for large numbers
42529 if (this._s ===
0) {
42537 if (this.isUnit()) {
42545 return this.negate();
42550 return this.square();
42553 var r = (this._d.length
>= n._d.length);
42554 var a = (r ? this : n)._d; // a will be longer than b
42555 var b = (r ? n : this)._d;
42560 var partial = new Array(pl);
42562 for (i =
0; i < pl; i++) {
42566 for (i =
0; i < bl; i++) {
42569 var jlimit = al + i;
42571 for (var j = i; j < jlimit; j++) {
42572 digit = partial[j] + bi * a[j - i] + carry;
42573 carry = (digit / BigInteger_base) |
0;
42574 partial[j] = (digit % BigInteger_base) |
0;
42577 digit = partial[j] + carry;
42578 carry = (digit / BigInteger_base) |
0;
42579 partial[j] = digit % BigInteger_base;
42582 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
42585 // Multiply a BigInteger by a single-digit native number
42586 // Assumes that this and n are
>=
0
42587 // This is not really intended to be used outside the library itself
42588 BigInteger.prototype.multiplySingleDigit = function(n) {
42589 if (n ===
0 || this._s ===
0) {
42597 if (this._d.length ===
1) {
42598 digit = this._d[
0] * n;
42599 if (digit
>= BigInteger_base) {
42600 return new BigInteger([(digit % BigInteger_base)|
0,
42601 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
42603 return new BigInteger([digit],
1, CONSTRUCT);
42607 return this.add(this);
42609 if (this.isUnit()) {
42610 return new BigInteger([n],
1, CONSTRUCT);
42617 var partial = new Array(pl);
42618 for (var i =
0; i < pl; i++) {
42623 for (var j =
0; j < al; j++) {
42624 digit = n * a[j] + carry;
42625 carry = (digit / BigInteger_base) |
0;
42626 partial[j] = (digit % BigInteger_base) |
0;
42629 partial[j] = carry;
42632 return new BigInteger(partial,
1, CONSTRUCT);
42637 Multiply a
<BigInteger> by itself.
42639 This is slightly faster than regular multiplication, since it removes the
42640 duplicated multiplcations.
42644 > this.multiply(this)
42649 BigInteger.prototype.square = function() {
42650 // Normally, squaring a
10-digit number would take
100 multiplications.
42651 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
42652 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
42653 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
42655 if (this._s ===
0) {
42658 if (this.isUnit()) {
42662 var digits = this._d;
42663 var length = digits.length;
42664 var imult1 = new Array(length + length +
1);
42665 var product, carry, k;
42668 // Calculate diagonal
42669 for (i =
0; i < length; i++) {
42671 product = digits[i] * digits[i];
42672 carry = (product / BigInteger_base) |
0;
42673 imult1[k] = product % BigInteger_base;
42674 imult1[k +
1] = carry;
42677 // Calculate repeating part
42678 for (i =
0; i < length; i++) {
42681 for (var j = i +
1; j < length; j++, k++) {
42682 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
42683 carry = (product / BigInteger_base) |
0;
42684 imult1[k] = product % BigInteger_base;
42687 var digit = carry + imult1[k];
42688 carry = (digit / BigInteger_base) |
0;
42689 imult1[k] = digit % BigInteger_base;
42690 imult1[k +
1] += carry;
42693 return new BigInteger(imult1,
1, CONSTRUCT);
42698 Divide two
<BigIntegers> and truncate towards zero.
42700 <quotient> throws an exception if *n* is zero.
42704 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42708 The *this* / *n*, truncated to an integer.
42712 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
42714 BigInteger.prototype.quotient = function(n) {
42715 return this.divRem(n)[
0];
42720 Deprecated synonym for
<quotient>.
42722 BigInteger.prototype.divide = BigInteger.prototype.quotient;
42725 Function: remainder
42726 Calculate the remainder of two
<BigIntegers>.
42728 <remainder> throws an exception if *n* is zero.
42732 n - The remainder after *this* is divided *this* by *n*. Will be
42733 converted to a
<BigInteger>.
42741 <divRem>,
<quotient>
42743 BigInteger.prototype.remainder = function(n) {
42744 return this.divRem(n)[
1];
42749 Calculate the integer quotient and remainder of two
<BigIntegers>.
42751 <divRem> throws an exception if *n* is zero.
42755 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42759 A two-element array containing the quotient and the remainder.
42763 is exactly equivalent to
42765 > [a.quotient(b), a.remainder(b)]
42767 except it is faster, because they are calculated at the same time.
42771 <quotient>,
<remainder>
42773 BigInteger.prototype.divRem = function(n) {
42776 throw new Error("Divide by zero");
42778 if (this._s ===
0) {
42779 return [ZERO, ZERO];
42781 if (n._d.length ===
1) {
42782 return this.divRemSmall(n._s * n._d[
0]);
42785 // Test for easy cases -- |n1| <= |n2|
42786 switch (this.compareAbs(n)) {
42787 case
0: // n1 == n2
42788 return [this._s === n._s ? ONE : M_ONE, ZERO];
42789 case -
1: // |n1| < |n2|
42790 return [ZERO, this];
42793 var sign = this._s * n._s;
42795 var b_digits = this._d;
42796 var b_index = b_digits.length;
42797 var digits = n._d.length;
42801 var part = new BigInteger([],
0, CONSTRUCT);
42804 part._d.unshift(b_digits[--b_index]);
42805 part = new BigInteger(part._d,
1, CONSTRUCT);
42807 if (part.compareAbs(n) <
0) {
42811 if (part._s ===
0) {
42815 var xlen = part._d.length, ylen = a._d.length;
42816 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
42817 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
42818 if (part._d.length
> a._d.length) {
42819 // The length of part._d can either match a._d length,
42820 // or exceed it by one.
42821 highx = (highx+
1)*BigInteger_base;
42823 guess = Math.ceil(highx/highy);
42826 var check = a.multiplySingleDigit(guess);
42827 if (check.compareAbs(part) <=
0) {
42837 var diff = part.subtract(check);
42838 part._d = diff._d.slice();
42841 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
42842 new BigInteger(part._d, this._s, CONSTRUCT)];
42845 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
42846 // [
1, BigInteger.base). It's not necessary to call this, since the
42847 // other division functions will call it if they are able to.
42848 BigInteger.prototype.divRemSmall = function(n) {
42852 throw new Error("Divide by zero");
42855 var n_s = n <
0 ? -
1 :
1;
42856 var sign = this._s * n_s;
42859 if (n <
1 || n
>= BigInteger_base) {
42860 throw new Error("Argument out of range");
42863 if (this._s ===
0) {
42864 return [ZERO, ZERO];
42867 if (n ===
1 || n === -
1) {
42868 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
42871 //
2 <= n < BigInteger_base
42873 // divide a single digit by a single digit
42874 if (this._d.length ===
1) {
42875 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
42876 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
42886 var digits = this._d.slice();
42887 var quot = new Array(digits.length);
42893 while (digits.length) {
42894 part = part * BigInteger_base + digits[digits.length -
1];
42898 diff = BigInteger_base * diff + part;
42905 guess = (part / n) |
0;
42908 var check = n * guess;
42909 diff = part - check;
42920 r = new BigInteger([diff],
1, CONSTRUCT);
42924 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
42929 Return true iff *this* is divisible by two.
42931 Note that
<BigInteger.ZERO
> is even.
42935 true if *this* is even, false otherwise.
42941 BigInteger.prototype.isEven = function() {
42942 var digits = this._d;
42943 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
42948 Return true iff *this* is not divisible by two.
42952 true if *this* is odd, false otherwise.
42958 BigInteger.prototype.isOdd = function() {
42959 return !this.isEven();
42964 Get the sign of a
<BigInteger>.
42974 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
42976 BigInteger.prototype.sign = function() {
42981 Function: isPositive
42982 Return true iff *this*
> 0.
42986 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
42990 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
42992 BigInteger.prototype.isPositive = function() {
42993 return this._s
> 0;
42997 Function: isNegative
42998 Return true iff *this* <
0.
43002 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
43006 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43008 BigInteger.prototype.isNegative = function() {
43009 return this._s <
0;
43014 Return true iff *this* ==
0.
43018 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
43022 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
43024 BigInteger.prototype.isZero = function() {
43025 return this._s ===
0;
43030 Multiply a
<BigInteger> by a power of
10.
43032 This is equivalent to, but faster than
43035 > return this.multiply(BigInteger("
1e" + n));
43038 > return this.quotient(BigInteger("
1e" + -n));
43043 n - The power of
10 to multiply *this* by. *n* is converted to a
43044 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
43045 (
0x7FFFFFFF), or an exception will be thrown.
43049 *this* * (
10 ** *n*), truncated to an integer if necessary.
43055 BigInteger.prototype.exp10 = function(n) {
43060 if (Math.abs(n)
> Number(MAX_EXP)) {
43061 throw new Error("exponent too large in BigInteger.exp10");
43063 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
43064 if (this._s ===
0) {
43068 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43070 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43076 k = k.multiplySingleDigit(Math.pow(
10, n));
43077 return (this._s <
0 ? k.negate() : k);
43078 } else if (-n
>= this._d.length*BigInteger_base_log10) {
43081 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43083 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43086 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
43092 Raise a
<BigInteger> to a power.
43094 In this implementation,
0**
0 is
1.
43098 n - The exponent to raise *this* by. *n* must be no greater than
43099 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
43103 *this* raised to the *nth* power.
43109 BigInteger.prototype.pow = function(n) {
43110 if (this.isUnit()) {
43115 return BigInteger(n).isOdd() ? this : this.negate();
43123 else if (n._s <
0) {
43124 if (this._s ===
0) {
43125 throw new Error(
"Divide by zero");
43131 if (this._s ===
0) {
43138 if (n.compareAbs(MAX_EXP)
> 0) {
43139 throw new Error(
"exponent too large in BigInteger.pow");
43143 var two = BigInteger.small[
2];
43145 while (n.isPositive()) {
43147 aux = aux.multiply(x);
43153 n = n.quotient(two);
43161 Raise a
<BigInteger> to a power (mod m).
43163 Because it is reduced by a modulus,
<modPow> is not limited by
43164 <BigInteger.MAX_EXP
> like
<pow>.
43168 exponent - The exponent to raise *this* by. Must be positive.
43169 modulus - The modulus.
43173 *this* ^ *exponent* (mod *modulus*).
43179 BigInteger.prototype.modPow = function(exponent, modulus) {
43183 while (exponent.isPositive()) {
43184 if (exponent.isOdd()) {
43185 result = result.multiply(base).remainder(modulus);
43188 exponent = exponent.quotient(BigInteger.small[
2]);
43189 if (exponent.isPositive()) {
43190 base = base.square().remainder(modulus);
43199 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
43201 This is equivalent to
43203 > Math.log(this.toJSValue())
43205 but handles values outside of the native number range.
43215 BigInteger.prototype.log = function() {
43217 case
0: return -Infinity;
43218 case -
1: return NaN;
43219 default: // Fall through.
43222 var l = this._d.length;
43224 if (l*BigInteger_base_log10 <
30) {
43225 return Math.log(this.valueOf());
43228 var N = Math.ceil(
30/BigInteger_base_log10);
43229 var firstNdigits = this._d.slice(l - N);
43230 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
43235 Convert a
<BigInteger> to a native JavaScript integer.
43237 This is called automatically by JavaScipt to convert a
<BigInteger> to a
43242 > parseInt(this.toString(),
10)
43246 <toString>,
<toJSValue>
43248 BigInteger.prototype.valueOf = function() {
43249 return parseInt(this.toString(),
10);
43253 Function: toJSValue
43254 Convert a
<BigInteger> to a native JavaScript integer.
43256 This is the same as valueOf, but more explicitly named.
43260 > parseInt(this.toString(),
10)
43264 <toString>,
<valueOf>
43266 BigInteger.prototype.toJSValue = function() {
43267 return parseInt(this.toString(),
10);
43270 var MAX_EXP = BigInteger(
0x7FFFFFFF);
43271 // Constant: MAX_EXP
43272 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
43273 BigInteger.MAX_EXP = MAX_EXP;
43276 function makeUnary(fn) {
43277 return function(a) {
43278 return fn.call(BigInteger(a));
43282 function makeBinary(fn) {
43283 return function(a, b) {
43284 return fn.call(BigInteger(a), BigInteger(b));
43288 function makeTrinary(fn) {
43289 return function(a, b, c) {
43290 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
43296 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
43297 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
43298 var trinary = ["modPow"];
43300 for (i =
0; i < unary.length; i++) {
43302 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
43305 for (i =
0; i < binary.length; i++) {
43307 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
43310 for (i =
0; i < trinary.length; i++) {
43312 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
43315 BigInteger.exp10 = function(x, n) {
43316 return BigInteger(x).exp10(n);
43321 exports.BigInteger = BigInteger;
43322 })(typeof exports !== 'undefined' ? exports : this);
43324 <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){
43325 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;
43327 },{}],
2:[function(require,module,exports){
43328 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;
43330 },{"./scoring":
6}],
3:[function(require,module,exports){
43331 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(","),
43332 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(","),
43333 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(","),
43334 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(","),
43335 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;
43337 },{}],
4:[function(require,module,exports){
43338 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;
43340 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
43341 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;
43343 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
43344 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;
43346 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
43347 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;
43351 //# sourceMappingURL=zxcvbn.js.map
43354 * Detects entropy from a string.
43361 * hexadecimal [
0-
9A-F]
43362 * card [A2-
9TJQK][CDHS]
43364 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
43365 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
43369 window.Entropy = new (function() {
43371 var TWO = new BigInteger(
2);
43373 // matchers returns an array of the matched events for each type of entropy.
43375 // matchers.binary("
010") returns ["
0", "
1", "
0"]
43376 // matchers.binary("a10") returns ["
1", "
0"]
43377 // matchers.hex("a10") returns ["a", "
1", "
0"]
43379 binary: function(str) {
43380 return str.match(/[
0-
1]/gi) || [];
43382 base6: function(str) {
43383 return str.match(/[
0-
5]/gi) || [];
43385 dice: function(str) {
43386 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
43388 base10: function(str) {
43389 return str.match(/[
0-
9]/gi) || [];
43391 hex: function(str) {
43392 return str.match(/[
0-
9A-F]/gi) || [];
43394 card: function(str) {
43395 // Format is NumberSuit, eg
43396 // AH ace of hearts
43397 //
8C eight of clubs
43398 // TD ten of diamonds
43399 // JS jack of spades
43400 // QH queen of hearts
43401 // KC king of clubs
43402 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
43406 // Convert array of cards from ["ac", "
4d", "ks"]
43407 // to numbers between
0 and
51 [
0,
16,
51]
43408 function convertCardsToInts(cards) {
43410 var values = "a23456789tjqk";
43411 var suits = "cdhs";
43412 for (var i=
0; i
<cards.length; i++) {
43413 var card = cards[i].toLowerCase();
43414 var value = card[
0];
43415 var suit = card[
1];
43416 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
43422 this.fromString = function(rawEntropyStr) {
43423 // Find type of entropy being used (binary, hex, dice etc)
43424 var base = getBase(rawEntropyStr);
43425 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
43426 // This is done by changing all
6s to
0s
43427 if (base.str ==
"dice") {
43430 for (var i=
0; i
<base.parts.length; i++) {
43431 var c = base.parts[i];
43432 if (
"12345".indexOf(c)
> -
1) {
43433 newParts[i] = base.parts[i];
43434 newInts[i] = base.ints[i];
43441 base.str = "base
6 (dice)";
43442 base.ints = newInts;
43443 base.parts = newParts;
43444 base.matcher = matchers.base6;
43446 // Detect empty entropy
43447 if (base.parts.length ==
0) {
43455 // Convert base.ints to BigInteger.
43456 // Due to using unusual bases, eg cards of base52, this is not as simple as
43457 // using BigInteger.parse()
43458 var entropyInt = BigInteger.ZERO;
43459 for (var i=base.ints.length-
1; i
>=
0; i--) {
43460 var thisInt = BigInteger.parse(base.ints[i]);
43461 var power = (base.ints.length -
1) - i;
43462 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
43463 entropyInt = entropyInt.add(additionalEntropy);
43465 // Convert entropy to binary
43466 var entropyBin = entropyInt.toString(
2);
43467 // If the first integer is small, it must be padded with zeros.
43468 // Otherwise the chance of the first bit being
1 is
100%, which is
43469 // obviously incorrect.
43470 // This is not perfect for non-
2^n bases.
43471 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
43472 while (entropyBin.length < expectedBits) {
43473 entropyBin = "
0" + entropyBin;
43475 // Calculate the number of bits per event
43476 var bitsPerEvent = Math.log2(base.asInt);
43477 // Cards binary must be handled differently, since they're not replaced
43478 if (base.asInt ==
52) {
43479 var cardEntropy = processCardEntropy(base.parts);
43480 entropyBin = cardEntropy.binaryStr;
43481 bitsPerEvent = cardEntropy.bitsPerEvent;
43483 // Supply a 'filtered' entropy string for display purposes
43484 var entropyClean = base.parts.join("");
43485 var entropyHtml = base.parts.join("");
43486 if (base.asInt ==
52) {
43487 entropyClean = base.parts.join(" ").toUpperCase();
43488 entropyClean = entropyClean.replace(/C/g, "\u2663");
43489 entropyClean = entropyClean.replace(/D/g, "\u2666");
43490 entropyClean = entropyClean.replace(/H/g, "\u2665");
43491 entropyClean = entropyClean.replace(/S/g, "\u2660");
43492 entropyHtml = base.parts.join(" ").toUpperCase();
43493 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
43494 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
43495 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
43496 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
43498 // Return the result
43500 binaryStr: entropyBin,
43501 cleanStr: entropyClean,
43502 cleanHtml: entropyHtml,
43503 bitsPerEvent: bitsPerEvent,
43509 function getSortedDeck() {
43511 var suits = "CDHS
";
43512 var values = "A23456789TJQK
";
43513 for (var i=0; i<suits.length; i++) {
43514 for (var j=0; j<values.length; j++) {
43515 s.push(values[j]+suits[i]);
43521 function getBase(str) {
43522 // Need to get the lowest base for the supplied entropy.
43523 // This prevents interpreting, say, dice rolls as hexadecimal.
43524 var binaryMatches = matchers.binary(str);
43525 var hexMatches = matchers.hex(str);
43526 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
43527 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
43528 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
43531 parts: binaryMatches,
43532 matcher: matchers.binary,
43537 var cardMatches = matchers.card(str);
43538 if (cardMatches.length >= hexMatches.length / 2) {
43539 var ints = convertCardsToInts(cardMatches);
43542 parts: cardMatches,
43543 matcher: matchers.card,
43548 var diceMatches = matchers.dice(str);
43549 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
43550 var ints = diceMatches.map(function(i) { return parseInt(i) });
43553 parts: diceMatches,
43554 matcher: matchers.dice,
43559 var base6Matches = matchers.base6(str);
43560 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
43561 var ints = base6Matches.map(function(i) { return parseInt(i) });
43564 parts: base6Matches,
43565 matcher: matchers.base6,
43570 var base10Matches = matchers.base10(str);
43571 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
43572 var ints = base10Matches.map(function(i) { return parseInt(i) });
43575 parts: base10Matches,
43576 matcher: matchers.base10,
43581 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
43585 matcher: matchers.hex,
43587 str:
"hexadecimal",
43591 // Assume cards are NOT replaced.
43592 // Additional entropy decreases as more cards are used. This means
43593 // total possible entropy is measured using n!, not base^n.
43594 // eg the second last card can be only one of two, not one of fifty two
43595 // so the added entropy for that card is only one bit at most
43596 function processCardEntropy(cards) {
43597 // Track how many instances of each card have been used, and thus
43598 // how many decks are in use.
43599 var cardCounts = {};
43600 var numberOfDecks =
0;
43601 // Work out number of decks by max(duplicates)
43602 for (var i=
0; i
<cards.length; i++) {
43603 // Get the card that was drawn
43604 var cardLower = cards[i];
43605 var card = cardLower.toUpperCase();
43606 // Initialize the count for this card if needed
43607 if (!(card in cardCounts)) {
43608 cardCounts[card] =
0;
43610 cardCounts[card] +=
1;
43611 // See if this is max(duplicates)
43612 if (cardCounts[card]
> numberOfDecks) {
43613 numberOfDecks = cardCounts[card];
43616 // Work out the total number of bits for this many decks
43617 // See http://crypto.stackexchange.com/q/
41886
43618 var gainedBits =
0;
43619 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
43620 // which becomes infinity for numberOfDecks
> 4
43621 for (var i=
1; i<=
52*numberOfDecks; i++) {
43622 gainedBits = gainedBits + Math.log2(i);
43624 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
43625 var maxBits = gainedBits - lostBits;
43626 // Convert the drawn cards to a binary representation.
43627 // The exact technique for doing this is unclear.
43629 // http://crypto.stackexchange.com/a/
41896
43630 //
"I even doubt that this is well defined (only the average entropy
43631 // is, I believe)."
43633 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
43634 //
"The binary representation can be the first log(permutations,2) bits
43635 // of the sha-2 hash of the normalized deck string."
43637 // In this specific implementation, the first N bits of the hash of the
43638 // normalized cards string is being used. Uppercase, no spaces; eg
43639 // sha256(
"AH8DQSTC2H")
43640 var totalCards = numberOfDecks *
52;
43641 var percentUsed = cards.length / totalCards;
43642 // Calculate the average number of bits of entropy for the number of
43644 var numberOfBits = Math.floor(maxBits * percentUsed);
43645 // Create a normalized string of the selected cards
43646 var normalizedCards = cards.join(
"").toUpperCase();
43647 // Convert to binary using the SHA256 hash of the normalized cards.
43648 // If the number of bits is more than
256, multiple hashes
43649 // are used until the required number of bits is reached.
43650 var entropyBin =
"";
43651 var iterations =
0;
43652 while (entropyBin.length < numberOfBits) {
43653 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
43654 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
43655 for (var i=
0; i
<hashHex.length; i++) {
43656 var decimal = parseInt(hashHex[i],
16);
43657 var binary = decimal.toString(
2);
43658 while (binary.length <
4) {
43659 binary =
"0" + binary;
43661 entropyBin = entropyBin + binary;
43663 iterations = iterations +
1;
43665 // Truncate to the appropriate number of bits.
43666 entropyBin = entropyBin.substring(
0, numberOfBits);
43667 // Get the number of bits per event
43668 bitsPerEvent = maxBits / totalCards;
43670 binaryStr: entropyBin,
43671 bitsPerEvent: bitsPerEvent,
43675 // Polyfill for Math.log2
43676 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
43677 Math.log2 = Math.log2 || function(x) {
43678 // The polyfill isn't good enough because of the poor accuracy of
43680 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
43681 // So instead use the BigInteger library to get it right.
43682 return BigInteger.log(x) / BigInteger.log(
2);
43685 // Depends on BigInteger
43686 function factorial(n) {
43690 f = BigInteger.ONE;
43691 for (var i=
1; i<=n; i++) {
43692 f = f.multiply(new BigInteger(i));
43699 <script>(function() {
43701 // mnemonics is populated as required by getLanguage
43702 var mnemonics = { "english": new Mnemonic("english") };
43703 var mnemonic = mnemonics["english"];
43705 var bip32RootKey = null;
43706 var bip32ExtendedKey = null;
43707 var network = bitcoin.networks.bitcoin;
43708 var addressRowTemplate = $("#address-row-template");
43710 var showIndex = true;
43711 var showAddress = true;
43712 var showPubKey = true;
43713 var showPrivKey = true;
43714 var showQr = false;
43716 var entropyChangeTimeoutEvent = null;
43717 var phraseChangeTimeoutEvent = null;
43718 var rootKeyChangedTimeoutEvent = null;
43720 var generationProcesses = [];
43723 DOM.network = $(".network");
43724 DOM.bip32Client = $("#bip32-client");
43725 DOM.phraseNetwork = $("#network-phrase");
43726 DOM.useEntropy = $(".use-entropy");
43727 DOM.entropyContainer = $(".entropy-container");
43728 DOM.entropy = $(".entropy");
43729 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
43730 DOM.entropyType = DOM.entropyContainer.find(".type");
43731 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
43732 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
43733 DOM.entropyBits = DOM.entropyContainer.find(".bits");
43734 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
43735 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
43736 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
43737 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
43738 DOM.phrase = $(".phrase");
43739 DOM.passphrase = $(".passphrase");
43740 DOM.generateContainer = $(".generate-container");
43741 DOM.generate = $(".generate");
43742 DOM.seed = $(".seed");
43743 DOM.rootKey = $(".root-key");
43744 DOM.extendedPrivKey = $(".extended-priv-key");
43745 DOM.extendedPubKey = $(".extended-pub-key");
43746 DOM.bip32tab = $("#bip32-tab");
43747 DOM.bip44tab = $("#bip44-tab");
43748 DOM.bip32panel = $("#bip32");
43749 DOM.bip44panel = $("#bip44");
43750 DOM.bip32path = $("#bip32-path");
43751 DOM.bip44path = $("#bip44-path");
43752 DOM.bip44purpose = $("#bip44 .purpose");
43753 DOM.bip44coin = $("#bip44 .coin");
43754 DOM.bip44account = $("#bip44 .account");
43755 DOM.bip44accountXprv = $("#bip44 .account-xprv");
43756 DOM.bip44accountXpub = $("#bip44 .account-xpub");
43757 DOM.bip44change = $("#bip44 .change");
43758 DOM.generatedStrength = $(".generate-container .strength");
43759 DOM.hardenedAddresses = $(".hardened-addresses");
43760 DOM.addresses = $(".addresses");
43761 DOM.rowsToAdd = $(".rows-to-add");
43762 DOM.more = $(".more");
43763 DOM.feedback = $(".feedback");
43764 DOM.tab = $(".derivation-type a");
43765 DOM.indexToggle = $(".index-toggle");
43766 DOM.addressToggle = $(".address-toggle");
43767 DOM.publicKeyToggle = $(".public-key-toggle");
43768 DOM.privateKeyToggle = $(".private-key-toggle");
43769 DOM.languages = $(".languages a");
43770 DOM.qrContainer = $(".qr-container");
43771 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
43772 DOM.qrImage = DOM.qrContainer.find(".qr-image");
43773 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
43774 DOM.showQrEls = $("[data-show-qr]");
43778 DOM.network.on("change", networkChanged);
43779 DOM.bip32Client.on("change", bip32ClientChanged);
43780 DOM.useEntropy.on("change", setEntropyVisibility);
43781 DOM.entropy.on("input", delayedEntropyChanged);
43782 DOM.entropyMnemonicLength.on("change", entropyChanged);
43783 DOM.phrase.on("input", delayedPhraseChanged);
43784 DOM.passphrase.on("input", delayedPhraseChanged);
43785 DOM.generate.on("click", generateClicked);
43786 DOM.more.on("click", showMore);
43787 DOM.rootKey.on("input", delayedRootKeyChanged);
43788 DOM.bip32path.on("input", calcForDerivationPath);
43789 DOM.bip44purpose.on("input", calcForDerivationPath);
43790 DOM.bip44coin.on("input", calcForDerivationPath);
43791 DOM.bip44account.on("input", calcForDerivationPath);
43792 DOM.bip44change.on("input", calcForDerivationPath);
43793 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
43794 DOM.hardenedAddresses.on("change", calcForDerivationPath);
43795 DOM.indexToggle.on("click", toggleIndexes);
43796 DOM.addressToggle.on("click", toggleAddresses);
43797 DOM.publicKeyToggle.on("click", togglePublicKeys);
43798 DOM.privateKeyToggle.on("click", togglePrivateKeys);
43799 DOM.languages.on("click", languageChanged);
43800 setQrEvents(DOM.showQrEls);
43803 hideValidationError();
43804 populateNetworkSelect();
43805 populateClientSelect();
43810 function networkChanged(e) {
43811 var networkIndex = e.target.value;
43812 networks[networkIndex].onSelect();
43813 if (seed != null) {
43821 function bip32ClientChanged(e) {
43822 var clientIndex = DOM.bip32Client.val();
43823 if (clientIndex == "custom") {
43824 DOM.bip32path.prop("readonly", false);
43827 DOM.bip32path.prop("readonly", true);
43828 clients[clientIndex].onSelect();
43829 if (seed != null) {
43838 function setEntropyVisibility() {
43839 if (isUsingOwnEntropy()) {
43840 DOM.entropyContainer.removeClass("hidden");
43841 DOM.generateContainer.addClass("hidden");
43842 DOM.phrase.prop("readonly", true);
43843 DOM.entropy.focus();
43847 DOM.entropyContainer.addClass("hidden");
43848 DOM.generateContainer.removeClass("hidden");
43849 DOM.phrase.prop("readonly", false);
43854 function delayedPhraseChanged() {
43855 hideValidationError();
43857 if (phraseChangeTimeoutEvent != null) {
43858 clearTimeout(phraseChangeTimeoutEvent);
43860 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
43863 function phraseChanged() {
43865 hideValidationError();
43866 setMnemonicLanguage();
43867 // Get the mnemonic phrase
43868 var phrase = DOM.phrase.val();
43869 var errorText = findPhraseErrors(phrase);
43871 showValidationError(errorText);
43874 // Calculate and display
43875 var passphrase = DOM.passphrase.val();
43876 calcBip32RootKeyFromSeed(phrase, passphrase);
43877 calcForDerivationPath();
43881 function delayedEntropyChanged() {
43882 hideValidationError();
43884 if (entropyChangeTimeoutEvent != null) {
43885 clearTimeout(entropyChangeTimeoutEvent);
43887 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
43890 function entropyChanged() {
43891 // If blank entropy, clear mnemonic, addresses, errors
43892 if (DOM.entropy.val().trim().length ==
0) {
43894 clearEntropyFeedback();
43895 DOM.phrase.val("");
43896 showValidationError("Blank entropy");
43899 // Get the current phrase to detect changes
43900 var phrase = DOM.phrase.val();
43901 // Set the phrase from the entropy
43902 setMnemonicFromEntropy();
43903 // Recalc addresses if the phrase has changed
43904 var newPhrase = DOM.phrase.val();
43905 if (newPhrase != phrase) {
43906 if (newPhrase.length ==
0) {
43918 function delayedRootKeyChanged() {
43919 // Warn if there is an existing mnemonic or passphrase.
43920 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
43921 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
43922 DOM.rootKey.val(bip32RootKey);
43926 hideValidationError();
43928 // Clear existing mnemonic and passphrase
43929 DOM.phrase.val(
"");
43930 DOM.passphrase.val(
"");
43932 if (rootKeyChangedTimeoutEvent != null) {
43933 clearTimeout(rootKeyChangedTimeoutEvent);
43935 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
43938 function rootKeyChanged() {
43940 hideValidationError();
43941 // Validate the root key TODO
43942 var rootKeyBase58 = DOM.rootKey.val();
43943 var errorText = validateRootKey(rootKeyBase58);
43945 showValidationError(errorText);
43948 // Calculate and display
43949 calcBip32RootKeyFromBase58(rootKeyBase58);
43950 calcForDerivationPath();
43953 function calcForDerivationPath() {
43955 clearAddressesList();
43956 hideValidationError();
43957 // Get the derivation path
43958 var derivationPath = getDerivationPath();
43959 var errorText = findDerivationPathErrors(derivationPath);
43961 showValidationError(errorText);
43964 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
43965 if (bip44TabSelected()) {
43966 displayBip44Info();
43968 displayBip32Info();
43972 function generateClicked() {
43973 if (isUsingOwnEntropy()) {
43978 setTimeout(function() {
43979 setMnemonicLanguage();
43980 var phrase = generateRandomPhrase();
43988 function languageChanged() {
43989 setTimeout(function() {
43990 setMnemonicLanguage();
43991 if (DOM.phrase.val().length
> 0) {
43992 var newPhrase = convertPhraseToNewLanguage();
43993 DOM.phrase.val(newPhrase);
43997 DOM.generate.trigger(
"click");
44002 function toggleIndexes() {
44003 showIndex = !showIndex;
44004 $(
"td.index span").toggleClass(
"invisible");
44007 function toggleAddresses() {
44008 showAddress = !showAddress;
44009 $(
"td.address span").toggleClass(
"invisible");
44012 function togglePublicKeys() {
44013 showPubKey = !showPubKey;
44014 $(
"td.pubkey span").toggleClass(
"invisible");
44017 function togglePrivateKeys() {
44018 showPrivKey = !showPrivKey;
44019 $(
"td.privkey span").toggleClass(
"invisible");
44024 function generateRandomPhrase() {
44025 if (!hasStrongRandom()) {
44026 var errorText =
"This browser does not support strong randomness";
44027 showValidationError(errorText);
44030 var numWords = parseInt(DOM.generatedStrength.val());
44031 var strength = numWords /
3 *
32;
44032 var words = mnemonic.generate(strength);
44033 DOM.phrase.val(words);
44037 function calcBip32RootKeyFromSeed(phrase, passphrase) {
44038 seed = mnemonic.toSeed(phrase, passphrase);
44039 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
44042 function calcBip32RootKeyFromBase58(rootKeyBase58) {
44043 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
44046 function calcBip32ExtendedKey(path) {
44047 // Check there's a root key to derive from
44048 if (!bip32RootKey) {
44049 return bip32RootKey;
44051 var extendedKey = bip32RootKey;
44052 // Derive the key from the path
44053 var pathBits = path.split(
"/");
44054 for (var i=
0; i
<pathBits.length; i++) {
44055 var bit = pathBits[i];
44056 var index = parseInt(bit);
44057 if (isNaN(index)) {
44060 var hardened = bit[bit.length-
1] ==
"'";
44061 var isPriv =
"privKey" in extendedKey;
44062 var invalidDerivationPath = hardened && !isPriv;
44063 if (invalidDerivationPath) {
44064 extendedKey = null;
44066 else if (hardened) {
44067 extendedKey = extendedKey.deriveHardened(index);
44070 extendedKey = extendedKey.derive(index);
44076 function showValidationError(errorText) {
44082 function hideValidationError() {
44088 function findPhraseErrors(phrase) {
44089 // Preprocess the words
44090 phrase = mnemonic.normalizeString(phrase);
44091 var words = phraseToWordArray(phrase);
44092 // Detect blank phrase
44093 if (words.length ==
0) {
44094 return
"Blank mnemonic";
44097 for (var i=
0; i
<words.length; i++) {
44098 var word = words[i];
44099 var language = getLanguage();
44100 if (WORDLISTS[language].indexOf(word) == -
1) {
44101 console.log(
"Finding closest match to " + word);
44102 var nearestWord = findNearestWord(word);
44103 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
44106 // Check the words are valid
44107 var properPhrase = wordArrayToPhrase(words);
44108 var isValid = mnemonic.check(properPhrase);
44110 return
"Invalid mnemonic";
44115 function validateRootKey(rootKeyBase58) {
44117 bitcoin.HDNode.fromBase58(rootKeyBase58);
44120 return
"Invalid root key";
44125 function getDerivationPath() {
44126 if (bip44TabSelected()) {
44127 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44128 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44129 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44130 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
44132 path += purpose +
"'/";
44133 path += coin +
"'/";
44134 path += account +
"'/";
44136 DOM.bip44path.val(path);
44137 var derivationPath = DOM.bip44path.val();
44138 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
44139 return derivationPath;
44141 else if (bip32TabSelected()) {
44142 var derivationPath = DOM.bip32path.val();
44143 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
44144 return derivationPath;
44147 console.log(
"Unknown derivation path");
44151 function findDerivationPathErrors(path) {
44152 // TODO is not perfect but is better than nothing
44154 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
44156 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
44157 var maxDepth =
255; // TODO verify this!!
44158 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
44159 if (path[
0] !=
"m") {
44160 return
"First character must be 'm'";
44162 if (path.length
> 1) {
44163 if (path[
1] !=
"/") {
44164 return
"Separator must be '/'";
44166 var indexes = path.split(
"/");
44167 if (indexes.length
> maxDepth) {
44168 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
44170 for (var depth =
1; depth
<indexes.length; depth++) {
44171 var index = indexes[depth];
44172 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
44173 if (invalidChars.length
> 0) {
44174 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
44176 var indexValue = parseInt(index.replace(
"'",
""));
44177 if (isNaN(depth)) {
44178 return
"Invalid number at depth " + depth;
44180 if (indexValue
> maxIndexValue) {
44181 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
44185 // Check root key exists or else derivation path is useless!
44186 if (!bip32RootKey) {
44187 return "No root key";
44189 // Check no hardened derivation path when using xpub keys
44190 var hardened = path.indexOf("'")
> -
1;
44191 var isXpubkey = !("privKey" in bip32RootKey);
44192 if (hardened && isXpubkey) {
44193 return "Hardened derivation path is invalid with xpub key";
44198 function displayBip44Info() {
44199 // Get the derivation path for the account
44200 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44201 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44202 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44204 path += purpose + "'/";
44205 path += coin + "'/";
44206 path += account + "'/";
44207 // Calculate the account extended keys
44208 var accountExtendedKey = calcBip32ExtendedKey(path);
44209 var accountXprv = accountExtendedKey.toBase58();
44210 var accountXpub = accountExtendedKey.toBase58(false);
44211 // Display the extended keys
44212 DOM.bip44accountXprv.val(accountXprv);
44213 DOM.bip44accountXpub.val(accountXpub);
44216 function displayBip32Info() {
44218 DOM.seed.val(seed);
44219 var rootKey = bip32RootKey.toBase58();
44220 DOM.rootKey.val(rootKey);
44221 var xprvkeyB58 = "NA";
44222 if (bip32ExtendedKey.privKey) {
44223 xprvkeyB58 = bip32ExtendedKey.toBase58();
44225 var extendedPrivKey = xprvkeyB58;
44226 DOM.extendedPrivKey.val(extendedPrivKey);
44227 var extendedPubKey = bip32ExtendedKey.toBase58(false);
44228 DOM.extendedPubKey.val(extendedPubKey);
44229 // Display the addresses and privkeys
44230 clearAddressesList();
44231 displayAddresses(
0,
20);
44234 function displayAddresses(start, total) {
44235 generationProcesses.push(new (function() {
44239 this.stop = function() {
44240 for (var i=
0; i
<rows.length; i++) {
44241 rows[i].shouldGenerate = false;
44245 for (var i=
0; i
<total; i++) {
44246 var index = i + start;
44247 rows.push(new TableRow(index));
44253 function TableRow(index) {
44256 this.shouldGenerate = true;
44257 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
44263 function calculateValues() {
44264 setTimeout(function() {
44265 if (!self.shouldGenerate) {
44269 if (useHardenedAddresses) {
44270 key = bip32ExtendedKey.deriveHardened(index);
44273 key = bip32ExtendedKey.derive(index);
44275 var address = key.getAddress().toString();
44276 var privkey =
"NA";
44278 privkey = key.privKey.toWIF(network);
44280 var pubkey = key.pubKey.toHex();
44281 var indexText = getDerivationPath() +
"/" + index;
44282 if (useHardenedAddresses) {
44283 indexText = indexText +
"'";
44285 // Ethereum values are different
44286 if (networks[DOM.network.val()].name ==
"Ethereum") {
44287 var privKeyBuffer = key.privKey.d.toBuffer();
44288 privkey = privKeyBuffer.toString('hex');
44289 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
44290 var hexAddress = addressBuffer.toString('hex');
44291 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
44292 address = ethUtil.addHexPrefix(checksumAddress);
44294 // Ripple values are different
44295 if (networks[DOM.network.val()].name ==
"Ripple") {
44296 privkey = convertRipplePriv(privkey);
44297 address = convertRippleAdrr(address);
44299 addAddressToList(indexText, address, pubkey, privkey);
44307 function showMore() {
44308 var start = DOM.addresses.children().length;
44309 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
44310 if (isNaN(rowsToAdd)) {
44312 DOM.rowsToAdd.val(
"20");
44314 if (rowsToAdd
> 200) {
44315 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
44316 msg +=
"Do you want to continue?";
44317 if (!confirm(msg)) {
44321 displayAddresses(start, rowsToAdd);
44324 function clearDisplay() {
44325 clearAddressesList();
44327 hideValidationError();
44330 function clearAddressesList() {
44331 DOM.addresses.empty();
44335 function stopGenerating() {
44336 while (generationProcesses.length
> 0) {
44337 var generation = generationProcesses.shift();
44342 function clearKey() {
44343 DOM.rootKey.val(
"");
44344 DOM.extendedPrivKey.val(
"");
44345 DOM.extendedPubKey.val(
"");
44348 function addAddressToList(indexText, address, pubkey, privkey) {
44349 var row = $(addressRowTemplate.html());
44351 var indexCell = row.find(
".index span");
44352 var addressCell = row.find(
".address span");
44353 var pubkeyCell = row.find(
".pubkey span");
44354 var privkeyCell = row.find(
".privkey span");
44356 indexCell.text(indexText);
44357 addressCell.text(address);
44358 pubkeyCell.text(pubkey);
44359 privkeyCell.text(privkey);
44362 indexCell.addClass(
"invisible");
44364 if (!showAddress) {
44365 addressCell.addClass(
"invisible");
44368 pubkeyCell.addClass(
"invisible");
44370 if (!showPrivKey) {
44371 privkeyCell.addClass(
"invisible");
44373 DOM.addresses.append(row);
44374 var rowShowQrEls = row.find(
"[data-show-qr]");
44375 setQrEvents(rowShowQrEls);
44378 function hasStrongRandom() {
44379 return 'crypto' in window && window['crypto'] !== null;
44382 function disableForms() {
44383 $(
"form").on(
"submit", function(e) {
44384 e.preventDefault();
44388 function parseIntNoNaN(val, defaultVal) {
44389 var v = parseInt(val);
44396 function showPending() {
44398 .text(
"Calculating...")
44402 function findNearestWord(word) {
44403 var language = getLanguage();
44404 var words = WORDLISTS[language];
44405 var minDistance =
99;
44406 var closestWord = words[
0];
44407 for (var i=
0; i
<words.length; i++) {
44408 var comparedTo = words[i];
44409 if (comparedTo.indexOf(word) ==
0) {
44412 var distance = Levenshtein.get(word, comparedTo);
44413 if (distance < minDistance) {
44414 closestWord = comparedTo;
44415 minDistance = distance;
44418 return closestWord;
44421 function hidePending() {
44427 function populateNetworkSelect() {
44428 for (var i=
0; i
<networks.length; i++) {
44429 var network = networks[i];
44430 var option = $(
"<option>");
44431 option.attr(
"value", i);
44432 option.text(network.name);
44433 DOM.phraseNetwork.append(option);
44437 function populateClientSelect() {
44438 for (var i=
0; i
<clients.length; i++) {
44439 var client = clients[i];
44440 var option = $(
"<option>");
44441 option.attr(
"value", i);
44442 option.text(client.name);
44443 DOM.bip32Client.append(option);
44447 function getLanguage() {
44448 var defaultLanguage =
"english";
44449 // Try to get from existing phrase
44450 var language = getLanguageFromPhrase();
44451 // Try to get from url if not from phrase
44452 if (language.length ==
0) {
44453 language = getLanguageFromUrl();
44455 // Default to English if no other option
44456 if (language.length ==
0) {
44457 language = defaultLanguage;
44462 function getLanguageFromPhrase(phrase) {
44463 // Check if how many words from existing phrase match a language.
44466 phrase = DOM.phrase.val();
44468 if (phrase.length
> 0) {
44469 var words = phraseToWordArray(phrase);
44470 var languageMatches = {};
44471 for (l in WORDLISTS) {
44472 // Track how many words match in this language
44473 languageMatches[l] =
0;
44474 for (var i=
0; i
<words.length; i++) {
44475 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
44476 if (wordInLanguage) {
44477 languageMatches[l]++;
44480 // Find languages with most word matches.
44481 // This is made difficult due to commonalities between Chinese
44482 // simplified vs traditional.
44483 var mostMatches =
0;
44484 var mostMatchedLanguages = [];
44485 for (var l in languageMatches) {
44486 var numMatches = languageMatches[l];
44487 if (numMatches
> mostMatches) {
44488 mostMatches = numMatches;
44489 mostMatchedLanguages = [l];
44491 else if (numMatches == mostMatches) {
44492 mostMatchedLanguages.push(l);
44496 if (mostMatchedLanguages.length
> 0) {
44497 // Use first language and warn if multiple detected
44498 language = mostMatchedLanguages[
0];
44499 if (mostMatchedLanguages.length
> 1) {
44500 console.warn(
"Multiple possible languages");
44501 console.warn(mostMatchedLanguages);
44508 function getLanguageFromUrl() {
44509 for (var language in WORDLISTS) {
44510 if (window.location.hash.indexOf(language)
> -
1) {
44517 function setMnemonicLanguage() {
44518 var language = getLanguage();
44519 // Load the bip39 mnemonic generator for this language if required
44520 if (!(language in mnemonics)) {
44521 mnemonics[language] = new Mnemonic(language);
44523 mnemonic = mnemonics[language];
44526 function convertPhraseToNewLanguage() {
44527 var oldLanguage = getLanguageFromPhrase();
44528 var newLanguage = getLanguageFromUrl();
44529 var oldPhrase = DOM.phrase.val();
44530 var oldWords = phraseToWordArray(oldPhrase);
44532 for (var i=
0; i
<oldWords.length; i++) {
44533 var oldWord = oldWords[i];
44534 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
44535 var newWord = WORDLISTS[newLanguage][index];
44536 newWords.push(newWord);
44538 newPhrase = wordArrayToPhrase(newWords);
44542 // TODO look at jsbip39 - mnemonic.splitWords
44543 function phraseToWordArray(phrase) {
44544 var words = phrase.split(/\s/g);
44546 for (var i=
0; i
<words.length; i++) {
44547 var word = words[i];
44548 if (word.length
> 0) {
44549 noBlanks.push(word);
44555 // TODO look at jsbip39 - mnemonic.joinWords
44556 function wordArrayToPhrase(words) {
44557 var phrase = words.join(
" ");
44558 var language = getLanguageFromPhrase(phrase);
44559 if (language ==
"japanese") {
44560 phrase = words.join(
"\u3000");
44565 function isUsingOwnEntropy() {
44566 return DOM.useEntropy.prop(
"checked");
44569 function setMnemonicFromEntropy() {
44570 clearEntropyFeedback();
44571 // Get entropy value
44572 var entropyStr = DOM.entropy.val();
44573 // Work out minimum base for entropy
44574 var entropy = Entropy.fromString(entropyStr);
44575 if (entropy.binaryStr.length ==
0) {
44578 // Show entropy details
44579 showEntropyFeedback(entropy);
44580 // Use entropy hash if not using raw entropy
44581 var bits = entropy.binaryStr;
44582 var mnemonicLength = DOM.entropyMnemonicLength.val();
44583 if (mnemonicLength !=
"raw") {
44584 // Get bits by hashing entropy with SHA256
44585 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
44586 var hex = sjcl.codec.hex.fromBits(hash);
44587 bits = BigInteger.parse(hex,
16).toString(
2);
44588 while (bits.length %
256 !=
0) {
44591 // Truncate hash to suit number of words
44592 mnemonicLength = parseInt(mnemonicLength);
44593 var numberOfBits =
32 * mnemonicLength /
3;
44594 bits = bits.substring(
0, numberOfBits);
44596 // Discard trailing entropy
44597 var bitsToUse = Math.floor(bits.length /
32) *
32;
44598 var start = bits.length - bitsToUse;
44599 var binaryStr = bits.substring(start);
44600 // Convert entropy string to numeric array
44601 var entropyArr = [];
44602 for (var i=
0; i
<binaryStr.length /
8; i++) {
44603 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
44604 var entropyByte = parseInt(byteAsBits,
2);
44605 entropyArr.push(entropyByte)
44607 // Convert entropy array to mnemonic
44608 var phrase = mnemonic.toMnemonic(entropyArr);
44609 // Set the mnemonic in the UI
44610 DOM.phrase.val(phrase);
44613 function clearEntropyFeedback() {
44614 DOM.entropyStrength.text(
"...");
44615 DOM.entropyType.text(
"");
44616 DOM.entropyWordCount.text(
"0");
44617 DOM.entropyEventCount.text(
"0");
44618 DOM.entropyBitsPerEvent.text(
"0");
44619 DOM.entropyBits.text(
"0");
44620 DOM.entropyFiltered.html(
" ");
44621 DOM.entropyBinary.html(
" ");
44624 function showEntropyFeedback(entropy) {
44625 var numberOfBits = entropy.binaryStr.length;
44626 var strength =
"extremely weak";
44627 if (numberOfBits
>=
64) {
44628 strength = "very weak";
44630 if (numberOfBits
>=
96) {
44633 if (numberOfBits
>=
128) {
44634 strength = "strong";
44636 if (numberOfBits
>=
160) {
44637 strength = "very strong";
44639 if (numberOfBits
>=
192) {
44640 strength = "extremely strong";
44642 // If time to crack is less than one day, and password is considered
44643 // strong or better based on the number of bits, rename strength to
44644 // 'easily cracked'.
44646 var z = zxcvbn(entropy.base.parts.join(""));
44647 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
44648 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
44649 strength = "easily cracked";
44650 if (z.feedback.warning != "") {
44651 strength = strength + " - " + z.feedback.warning;
44656 strength = "unknown";
44657 console.log("Error detecting entropy strength with zxcvbn:");
44660 var entropyTypeStr = getEntropyTypeStr(entropy);
44661 var wordCount = Math.floor(numberOfBits /
32) *
3;
44662 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
44663 DOM.entropyFiltered.html(entropy.cleanHtml);
44664 DOM.entropyType.text(entropyTypeStr);
44665 DOM.entropyStrength.text(strength);
44666 DOM.entropyEventCount.text(entropy.base.ints.length);
44667 DOM.entropyBits.text(numberOfBits);
44668 DOM.entropyWordCount.text(wordCount);
44669 DOM.entropyBinary.text(entropy.binaryStr);
44670 DOM.entropyBitsPerEvent.text(bitsPerEvent);
44673 function getEntropyTypeStr(entropy) {
44674 var typeStr = entropy.base.str;
44675 // Add some detail if these are cards
44676 if (entropy.base.asInt ==
52) {
44677 var cardDetail = []; // array of message strings
44678 // Detect duplicates
44680 var dupeTracker = {};
44681 for (var i=
0; i
<entropy.base.parts.length; i++) {
44682 var card = entropy.base.parts[i];
44683 var cardUpper = card.toUpperCase();
44684 if (cardUpper in dupeTracker) {
44687 dupeTracker[cardUpper] = true;
44689 if (dupes.length
> 0) {
44690 var dupeWord =
"duplicates";
44691 if (dupes.length ==
1) {
44692 dupeWord =
"duplicate";
44694 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
44695 if (dupes.length
> 3) {
44698 cardDetail.push(msg);
44700 // Detect full deck
44701 var uniqueCards = [];
44702 for (var uniqueCard in dupeTracker) {
44703 uniqueCards.push(uniqueCard);
44705 if (uniqueCards.length ==
52) {
44706 cardDetail.unshift(
"full deck");
44708 // Detect missing cards
44709 var values =
"A23456789TJQK";
44710 var suits =
"CDHS";
44711 var missingCards = [];
44712 for (var i=
0; i
<suits.length; i++) {
44713 for (var j=
0; j
<values.length; j++) {
44714 var card = values[j] + suits[i];
44715 if (!(card in dupeTracker)) {
44716 missingCards.push(card);
44720 // Display missing cards if six or less, ie clearly going for full deck
44721 if (missingCards.length
> 0 && missingCards.length <=
6) {
44722 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
44723 if (missingCards.length
> 3) {
44726 cardDetail.push(msg);
44728 // Add card details to typeStr
44729 if (cardDetail.length
> 0) {
44730 typeStr +=
" (" + cardDetail.join(
", ") +
")";
44736 function setQrEvents(els) {
44737 els.on(
"mouseenter", createQr);
44738 els.on(
"mouseleave", destroyQr);
44739 els.on(
"click", toggleQr);
44742 function createQr(e) {
44743 var content = e.target.textContent || e.target.value;
44746 DOM.qrImage.qrcode({width: size, height: size, text: content});
44748 DOM.qrHider.addClass(
"hidden");
44751 DOM.qrHider.removeClass(
"hidden");
44753 DOM.qrContainer.removeClass(
"hidden");
44757 function destroyQr() {
44758 DOM.qrImage.text(
"");
44759 DOM.qrContainer.addClass(
"hidden");
44762 function toggleQr() {
44764 DOM.qrHider.toggleClass(
"hidden");
44765 DOM.qrHint.toggleClass(
"hidden");
44768 function bip44TabSelected() {
44769 return DOM.bip44tab.hasClass(
"active");
44772 function bip32TabSelected() {
44773 return DOM.bip32tab.hasClass(
"active");
44779 onSelect: function() {
44780 network = bitcoin.networks.bitcoin;
44781 DOM.bip44coin.val(
0);
44785 name:
"Bitcoin Testnet",
44786 onSelect: function() {
44787 network = bitcoin.networks.testnet;
44788 DOM.bip44coin.val(
1);
44793 onSelect: function() {
44794 network = bitcoin.networks.clam;
44795 DOM.bip44coin.val(
23);
44800 onSelect: function() {
44801 network = bitcoin.networks.dogecoin;
44802 DOM.bip44coin.val(
3);
44807 onSelect: function() {
44808 network = bitcoin.networks.dash;
44809 DOM.bip44coin.val(
5);
44814 onSelect: function() {
44815 network = bitcoin.networks.bitcoin;
44816 DOM.bip44coin.val(
60);
44821 onSelect: function() {
44822 network = bitcoin.networks.game;
44823 DOM.bip44coin.val(
101);
44828 onSelect: function() {
44829 network = bitcoin.networks.jumbucks;
44830 DOM.bip44coin.val(
26);
44835 onSelect: function() {
44836 network = bitcoin.networks.litecoin;
44837 DOM.bip44coin.val(
2);
44842 onSelect: function() {
44843 network = bitcoin.networks.namecoin;
44844 DOM.bip44coin.val(
7);
44849 onSelect: function() {
44850 network = bitcoin.networks.peercoin;
44851 DOM.bip44coin.val(
6);
44856 onSelect: function() {
44857 network = bitcoin.networks.bitcoin;
44858 DOM.bip44coin.val(
144);
44862 name:
"ShadowCash",
44863 onSelect: function() {
44864 network = bitcoin.networks.shadow;
44865 DOM.bip44coin.val(
35);
44869 name:
"ShadowCash Testnet",
44870 onSelect: function() {
44871 network = bitcoin.networks.shadowtn;
44872 DOM.bip44coin.val(
1);
44877 onSelect: function() {
44878 network = bitcoin.networks.viacoin;
44879 DOM.bip44coin.val(
14);
44883 name:
"Viacoin Testnet",
44884 onSelect: function() {
44885 network = bitcoin.networks.viacointestnet;
44886 DOM.bip44coin.val(
1);
44893 name:
"Bitcoin Core",
44894 onSelect: function() {
44895 DOM.bip32path.val(
"m/0'/0'");
44896 DOM.hardenedAddresses.prop('checked', true);
44900 name:
"blockchain.info",
44901 onSelect: function() {
44902 DOM.bip32path.val(
"m/44'/0'/0'");
44903 DOM.hardenedAddresses.prop('checked', false);
44907 name:
"MultiBit HD",
44908 onSelect: function() {
44909 DOM.bip32path.val(
"m/0'/0");
44910 DOM.hardenedAddresses.prop('checked', false);