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>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
4475 !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)
4476 },_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))
4477 },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});
4480 * Bootstrap v3.2.0 (http://getbootstrap.com)
4481 * Copyright 2011-2014 Twitter, Inc.
4482 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4484 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>
4485 <script>(function() {
4489 * Extend an Object with another Object's properties.
4491 * The source objects are specified as additional arguments.
4493 * @param dst Object the object to extend.
4495 * @return Object the final object.
4497 var _extend = function(dst) {
4498 var sources = Array.prototype.slice.call(arguments,
1);
4499 for (var i=
0; i
<sources.length; ++i) {
4500 var src = sources[i];
4501 for (var p in src) {
4502 if (src.hasOwnProperty(p)) dst[p] = src[p];
4510 * Defer execution of given function.
4511 * @param {Function} func
4513 var _defer = function(func) {
4514 if (typeof setImmediate === 'function') {
4515 return setImmediate(func);
4517 return setTimeout(func,
0);
4522 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
4526 * Calculate levenshtein distance of the two strings.
4528 * @param str1 String the first string.
4529 * @param str2 String the second string.
4530 * @return Integer the levenshtein distance (
0 and above).
4532 get: function(str1, str2) {
4534 if (str1 === str2) return
0;
4535 if (str1.length ===
0) return str2.length;
4536 if (str2.length ===
0) return str1.length;
4539 var prevRow = new Array(str2.length +
1),
4540 curCol, nextCol, i, j, tmp;
4542 // initialise previous row
4543 for (i=
0; i
<prevRow.length; ++i) {
4547 // calculate current row distance from previous row
4548 for (i=
0; i
<str1.length; ++i) {
4551 for (j=
0; j
<str2.length; ++j) {
4555 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4558 if (nextCol
> tmp) {
4562 tmp = prevRow[j +
1] +
1;
4563 if (nextCol
> tmp) {
4567 // copy current col value into previous (in preparation for next iteration)
4568 prevRow[j] = curCol;
4571 // copy last col value into previous (in preparation for next iteration)
4572 prevRow[j] = nextCol;
4579 * Asynchronously calculate levenshtein distance of the two strings.
4581 * @param str1 String the first string.
4582 * @param str2 String the second string.
4583 * @param cb Function callback function with signature: function(Error err, int distance)
4584 * @param [options] Object additional options.
4585 * @param [options.progress] Function progress callback with signature: function(percentComplete)
4587 getAsync: function(str1, str2, cb, options) {
4588 options = _extend({}, {
4593 if (str1 === str2) return cb(null,
0);
4594 if (str1.length ===
0) return cb(null, str2.length);
4595 if (str2.length ===
0) return cb(null, str1.length);
4598 var prevRow = new Array(str2.length +
1),
4601 startTime, currentTime;
4603 // initialise previous row
4604 for (i=
0; i
<prevRow.length; ++i) {
4612 var __calculate = function() {
4614 startTime = new Date().valueOf();
4615 currentTime = startTime;
4617 // keep going until one second has elapsed
4618 while (currentTime - startTime <
1000) {
4619 // reached end of current row?
4620 if (str2.length <= (++j)) {
4621 // copy current into previous (in preparation for next iteration)
4622 prevRow[j] = nextCol;
4624 // if already done all chars
4625 if (str1.length <= (++i)) {
4626 return cb(null, nextCol);
4628 // else if we have more left to do
4639 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4642 if (nextCol
> tmp) {
4646 tmp = prevRow[j +
1] +
1;
4647 if (nextCol
> tmp) {
4651 // copy current into previous (in preparation for next iteration)
4652 prevRow[j] = curCol;
4655 currentTime = new Date().valueOf();
4658 // send a progress update?
4659 if (null !== options.progress) {
4661 options.progress.call(null, (i *
100.0/ str1.length));
4663 return cb('Progress callback: ' + err.toString());
4668 _defer(__calculate);
4677 if (typeof define !== "undefined" && define !== null && define.amd) {
4683 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
4684 module.exports = Levenshtein;
4687 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
4688 self.Levenshtein = Levenshtein;
4690 // browser main thread
4691 else if (typeof window !== "undefined" && window !== null) {
4692 window.Levenshtein = Levenshtein;
4697 <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},
4698 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;
4699 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-
4700 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]=
4701 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},
4702 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=
4703 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-
4704 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,
4705 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=
4706 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&&
4707 (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,
4708 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)-
4709 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:"+
4710 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:"+
4711 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+
4712 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),
4713 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>
4714 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],
4715 [
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,
4716 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,
4717 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,
4718 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,
4719 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,
4720 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*
4721 (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,
4722 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),
4723 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",
4724 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
4726 <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){
4727 // (public) Constructor
4728 function BigInteger(a, b, c) {
4729 if (!(this instanceof BigInteger))
4730 return new BigInteger(a, b, c)
4733 if (
"number" == typeof a) this.fromNumber(a, b, c)
4734 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
4735 else this.fromString(a, b)
4739 var proto = BigInteger.prototype
4741 // duck-typed isBigInteger
4742 proto.__bigi = require('../package.json').version
4743 BigInteger.isBigInteger = function (obj, check_ver) {
4744 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
4750 // am: Compute w_j += (x*this_i), propagate carries,
4751 // c is initial carry, returns final carry.
4752 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
4753 // We need to select the fastest one that works in this environment.
4755 // am1: use a single mult and divide to get the high bits,
4756 // max digit bits should be
26 because
4757 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
4758 function am1(i, x, w, j, c, n) {
4760 var v = x * this[i++] + w[j] + c
4761 c = Math.floor(v /
0x4000000)
4762 w[j++] = v &
0x3ffffff
4766 // am2 avoids a big mult-and-extract completely.
4767 // Max digit bits should be <=
30 because we do bitwise ops
4768 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
4769 function am2(i, x, w, j, c, n) {
4770 var xl = x &
0x7fff,
4773 var l = this[i] &
0x7fff
4774 var h = this[i++]
>> 15
4775 var m = xh * l + h * xl
4776 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
4777 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
4778 w[j++] = l &
0x3fffffff
4782 // Alternately, set max digit bits to
28 since some
4783 // browsers slow down when dealing with
32-bit numbers.
4784 function am3(i, x, w, j, c, n) {
4785 var xl = x &
0x3fff,
4788 var l = this[i] &
0x3fff
4789 var h = this[i++]
>> 14
4790 var m = xh * l + h * xl
4791 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
4792 c = (l
>> 28) + (m
>> 14) + xh * h
4793 w[j++] = l &
0xfffffff
4799 BigInteger.prototype.am = am1
4802 BigInteger.prototype.DB = dbits
4803 BigInteger.prototype.DM = ((
1 << dbits) -
1)
4804 var DV = BigInteger.prototype.DV = (
1 << dbits)
4807 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
4808 BigInteger.prototype.F1 = BI_FP - dbits
4809 BigInteger.prototype.F2 =
2 * dbits - BI_FP
4811 // Digit conversions
4812 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
4813 var BI_RC = new Array()
4815 rr =
"0".charCodeAt(
0)
4816 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
4817 rr =
"a".charCodeAt(
0)
4818 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4819 rr =
"A".charCodeAt(
0)
4820 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4822 function int2char(n) {
4823 return BI_RM.charAt(n)
4826 function intAt(s, i) {
4827 var c = BI_RC[s.charCodeAt(i)]
4828 return (c == null) ? -
1 : c
4831 // (protected) copy this to r
4832 function bnpCopyTo(r) {
4833 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
4838 // (protected) set from integer value x, -DV <= x < DV
4839 function bnpFromInt(x) {
4841 this.s = (x <
0) ? -
1 :
0
4842 if (x
> 0) this[
0] = x
4843 else if (x < -
1) this[
0] = x + DV
4847 // return bigint initialized to value
4849 var r = new BigInteger()
4854 // (protected) set from string and radix
4855 function bnpFromString(s, b) {
4860 else if (b ==
8) k =
3
4861 else if (b ==
256) k =
8; // byte array
4862 else if (b ==
2) k =
1
4863 else if (b ==
32) k =
5
4864 else if (b ==
4) k =
2
4866 self.fromRadix(s, b)
4875 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
4877 if (s.charAt(i) == "-") mi = true
4883 else if (sh + k
> self.DB) {
4884 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
4885 self[self.t++] = (x
>> (self.DB - sh))
4887 self[self.t -
1] |= x << sh
4889 if (sh
>= self.DB) sh -= self.DB
4891 if (k ==
8 && (s[
0] &
0x80) !=
0) {
4893 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
4896 if (mi) BigInteger.ZERO.subTo(self, self)
4899 // (protected) clamp off excess high words
4900 function bnpClamp() {
4901 var c = this.s & this.DM
4902 while (this.t
> 0 && this[this.t -
1] == c)--this.t
4905 // (public) return string representation in given radix
4906 function bnToString(b) {
4908 if (self.s <
0) return
"-" + self.negate()
4912 else if (b ==
8) k =
3
4913 else if (b ==
2) k =
1
4914 else if (b ==
32) k =
5
4915 else if (b ==
4) k =
2
4916 else return self.toRadix(b)
4917 var km = (
1 << k) -
1,
4921 var p = self.DB - (i * self.DB) % k
4923 if (p < self.DB && (d = self[i]
>> p)
> 0) {
4929 d = (self[i] & ((
1 << p) -
1)) << (k - p)
4930 d |= self[--i]
>> (p += self.DB - k)
4932 d = (self[i]
>> (p -= k)) & km
4939 if (m) r += int2char(d)
4946 function bnNegate() {
4947 var r = new BigInteger()
4948 BigInteger.ZERO.subTo(this, r)
4954 return (this.s <
0) ? this.negate() : this
4957 // (public) return + if this
> a, - if this < a,
0 if equal
4958 function bnCompareTo(a) {
4959 var r = this.s - a.s
4960 if (r !=
0) return r
4963 if (r !=
0) return (this.s <
0) ? -r : r
4965 if ((r = this[i] - a[i]) !=
0) return r
4969 // returns bit length of the integer x
4973 if ((t = x
>>> 16) !=
0) {
4977 if ((t = x
>> 8) !=
0) {
4981 if ((t = x
>> 4) !=
0) {
4985 if ((t = x
>> 2) !=
0) {
4989 if ((t = x
>> 1) !=
0) {
4996 // (public) return the number of bits in
"this"
4997 function bnBitLength() {
4998 if (this.t <=
0) return
0
4999 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
5002 // (public) return the number of bytes in
"this"
5003 function bnByteLength() {
5004 return this.bitLength()
>> 3
5007 // (protected) r = this << n*DB
5008 function bnpDLShiftTo(n, r) {
5010 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
5011 for (i = n -
1; i
>=
0; --i) r[i] =
0
5016 // (protected) r = this
>> n*DB
5017 function bnpDRShiftTo(n, r) {
5018 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
5019 r.t = Math.max(this.t - n,
0)
5023 // (protected) r = this << n
5024 function bnpLShiftTo(n, r) {
5026 var bs = n % self.DB
5027 var cbs = self.DB - bs
5028 var bm = (
1 << cbs) -
1
5029 var ds = Math.floor(n / self.DB),
5030 c = (self.s << bs) & self.DM,
5032 for (i = self.t -
1; i
>=
0; --i) {
5033 r[i + ds +
1] = (self[i]
>> cbs) | c
5034 c = (self[i] & bm) << bs
5036 for (i = ds -
1; i
>=
0; --i) r[i] =
0
5038 r.t = self.t + ds +
1
5043 // (protected) r = this
>> n
5044 function bnpRShiftTo(n, r) {
5047 var ds = Math.floor(n / self.DB)
5052 var bs = n % self.DB
5053 var cbs = self.DB - bs
5054 var bm = (
1 << bs) -
1
5055 r[
0] = self[ds]
>> bs
5056 for (var i = ds +
1; i < self.t; ++i) {
5057 r[i - ds -
1] |= (self[i] & bm) << cbs
5058 r[i - ds] = self[i]
>> bs
5060 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
5065 // (protected) r = this - a
5066 function bnpSubTo(a, r) {
5070 m = Math.min(a.t, self.t)
5073 r[i++] = c & self.DM
5078 while (i < self.t) {
5080 r[i++] = c & self.DM
5088 r[i++] = c & self.DM
5093 r.s = (c <
0) ? -
1 :
0
5094 if (c < -
1) r[i++] = self.DV + c
5095 else if (c
> 0) r[i++] = c
5100 // (protected) r = this * a, r != this,a (HAC
14.12)
5101 //
"this" should be the larger one if appropriate.
5102 function bnpMultiplyTo(a, r) {
5107 while (--i
>=
0) r[i] =
0
5108 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
5111 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
5114 // (protected) r = this^
2, r != this (HAC
14.16)
5115 function bnpSquareTo(r) {
5117 var i = r.t =
2 * x.t
5118 while (--i
>=
0) r[i] =
0
5119 for (i =
0; i < x.t -
1; ++i) {
5120 var c = x.am(i, x[i], r,
2 * i,
0,
1)
5121 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
5126 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
5131 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
5132 // r != q, this != m. q or r may be null.
5133 function bnpDivRemTo(m, q, r) {
5136 if (pm.t <=
0) return
5139 if (q != null) q.fromInt(
0)
5140 if (r != null) self.copyTo(r)
5143 if (r == null) r = new BigInteger()
5144 var y = new BigInteger(),
5147 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
5158 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
5159 var d1 = self.FV / yt,
5160 d2 = (
1 << self.F1) / yt,
5164 t = (q == null) ? new BigInteger() : q
5166 if (r.compareTo(t)
>=
0) {
5170 BigInteger.ONE.dlShiftTo(ys, t)
5171 t.subTo(y, y); // "negative" y so we can replace sub with am later
5172 while (y.t < ys) y[y.t++] =
0
5174 // Estimate quotient digit
5175 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
5176 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
5179 while (r[i] < --qd) r.subTo(t, r)
5184 if (ts != ms) BigInteger.ZERO.subTo(q, q)
5188 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
5189 if (ts <
0) BigInteger.ZERO.subTo(r, r)
5192 // (public) this mod a
5194 var r = new BigInteger()
5196 .divRemTo(a, null, r)
5197 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
5201 // Modular reduction using
"classic" algorithm
5202 function Classic(m) {
5206 function cConvert(x) {
5207 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
5211 function cRevert(x) {
5215 function cReduce(x) {
5216 x.divRemTo(this.m, null, x)
5219 function cMulTo(x, y, r) {
5224 function cSqrTo(x, r) {
5229 Classic.prototype.convert = cConvert
5230 Classic.prototype.revert = cRevert
5231 Classic.prototype.reduce = cReduce
5232 Classic.prototype.mulTo = cMulTo
5233 Classic.prototype.sqrTo = cSqrTo
5235 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
5239 // xy(
2-xy) = (
1+km)(
1-km)
5240 // x[y(
2-xy)] =
1-k^
2m^
2
5241 // x[y(
2-xy)] ==
1 (mod m^
2)
5242 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
5243 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
5244 // JS multiply "overflows" differently from C/C++, so care is needed here.
5245 function bnpInvDigit() {
5246 if (this.t <
1) return
0
5248 if ((x &
1) ==
0) return
0
5249 var y = x &
3; // y ==
1/x mod
2^
2
5250 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
5251 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
5252 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
5253 // last step - calculate inverse mod DV directly
5254 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
5255 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
5256 // we really want the negative inverse, and -DV < y < DV
5257 return (y
> 0) ? this.DV - y : -y
5260 // Montgomery reduction
5261 function Montgomery(m) {
5263 this.mp = m.invDigit()
5264 this.mpl = this.mp &
0x7fff
5265 this.mph = this.mp
>> 15
5266 this.um = (
1 << (m.DB -
15)) -
1
5271 function montConvert(x) {
5272 var r = new BigInteger()
5274 .dlShiftTo(this.m.t, r)
5275 r.divRemTo(this.m, null, r)
5276 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
5281 function montRevert(x) {
5282 var r = new BigInteger()
5288 // x = x/R mod m (HAC
14.32)
5289 function montReduce(x) {
5290 while (x.t <= this.mt2) // pad x so am has enough room later
5292 for (var i =
0; i < this.m.t; ++i) {
5293 // faster way of calculating u0 = x[i]*mp mod DV
5294 var j = x[i] &
0x7fff
5295 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
5296 // use am to combine the multiply-shift-add into one call
5298 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
5300 while (x[j]
>= x.DV) {
5306 x.drShiftTo(this.m.t, x)
5307 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
5310 // r = "x^
2/R mod m"; x != r
5311 function montSqrTo(x, r) {
5316 // r = "xy/R mod m"; x,y != r
5317 function montMulTo(x, y, r) {
5322 Montgomery.prototype.convert = montConvert
5323 Montgomery.prototype.revert = montRevert
5324 Montgomery.prototype.reduce = montReduce
5325 Montgomery.prototype.mulTo = montMulTo
5326 Montgomery.prototype.sqrTo = montSqrTo
5328 // (protected) true iff this is even
5329 function bnpIsEven() {
5330 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
5333 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
5334 function bnpExp(e, z) {
5335 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
5336 var r = new BigInteger(),
5337 r2 = new BigInteger(),
5338 g = z.convert(this),
5343 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
5353 // (public) this^e % m,
0 <= e <
2^
32
5354 function bnModPowInt(e, m) {
5356 if (e <
256 || m.isEven()) z = new Classic(m)
5357 else z = new Montgomery(m)
5358 return this.exp(e, z)
5362 proto.copyTo = bnpCopyTo
5363 proto.fromInt = bnpFromInt
5364 proto.fromString = bnpFromString
5365 proto.clamp = bnpClamp
5366 proto.dlShiftTo = bnpDLShiftTo
5367 proto.drShiftTo = bnpDRShiftTo
5368 proto.lShiftTo = bnpLShiftTo
5369 proto.rShiftTo = bnpRShiftTo
5370 proto.subTo = bnpSubTo
5371 proto.multiplyTo = bnpMultiplyTo
5372 proto.squareTo = bnpSquareTo
5373 proto.divRemTo = bnpDivRemTo
5374 proto.invDigit = bnpInvDigit
5375 proto.isEven = bnpIsEven
5379 proto.toString = bnToString
5380 proto.negate = bnNegate
5382 proto.compareTo = bnCompareTo
5383 proto.bitLength = bnBitLength
5384 proto.byteLength = bnByteLength
5386 proto.modPowInt = bnModPowInt
5389 function bnClone() {
5390 var r = new BigInteger()
5395 // (public) return value as integer
5396 function bnIntValue() {
5398 if (this.t ==
1) return this[
0] - this.DV
5399 else if (this.t ==
0) return -
1
5400 } else if (this.t ==
1) return this[
0]
5401 else if (this.t ==
0) return
0
5402 // assumes
16 < DB <
32
5403 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
5406 // (public) return value as byte
5407 function bnByteValue() {
5408 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
5411 // (public) return value as short (assumes DB
>=
16)
5412 function bnShortValue() {
5413 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
5416 // (protected) return x s.t. r^x < DV
5417 function bnpChunkSize(r) {
5418 return Math.floor(Math.LN2 * this.DB / Math.log(r))
5421 // (public)
0 if this ==
0,
1 if this
> 0
5422 function bnSigNum() {
5423 if (this.s <
0) return -
1
5424 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
5428 // (protected) convert to radix string
5429 function bnpToRadix(b) {
5430 if (b == null) b =
10
5431 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
5432 var cs = this.chunkSize(b)
5433 var a = Math.pow(b, cs)
5435 y = new BigInteger(),
5436 z = new BigInteger(),
5438 this.divRemTo(d, y, z)
5439 while (y.signum()
> 0) {
5440 r = (a + z.intValue())
5449 // (protected) convert from radix string
5450 function bnpFromRadix(s, b) {
5453 if (b == null) b =
10
5454 var cs = self.chunkSize(b)
5455 var d = Math.pow(b, cs),
5459 for (var i =
0; i < s.length; ++i) {
5462 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
5468 self.dAddOffset(w,
0)
5474 self.dMultiply(Math.pow(b, j))
5475 self.dAddOffset(w,
0)
5477 if (mi) BigInteger.ZERO.subTo(self, self)
5480 // (protected) alternate constructor
5481 function bnpFromNumber(a, b, c) {
5483 if (
"number" == typeof b) {
5484 // new BigInteger(int,int,RNG)
5485 if (a <
2) self.fromInt(
1)
5487 self.fromNumber(a, c)
5488 if (!self.testBit(a -
1)) // force MSB set
5489 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
5490 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
5491 while (!self.isProbablePrime(b)) {
5492 self.dAddOffset(
2,
0)
5493 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
5497 // new BigInteger(int,RNG)
5498 var x = new Array(),
5500 x.length = (a
>> 3) +
1
5502 if (t
> 0) x[
0] &= ((
1 << t) -
1)
5504 self.fromString(x,
256)
5508 // (public) convert to bigendian byte array
5509 function bnToByteArray() {
5514 var p = self.DB - (i * self.DB) %
8,
5517 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
5518 r[k++] = d | (self.s << (self.DB - p))
5521 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
5522 d |= self[--i]
>> (p += self.DB -
8)
5524 d = (self[i]
>> (p -=
8)) &
0xff
5530 if ((d &
0x80) !=
0) d |= -
256
5531 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
5532 if (k
> 0 || d != self.s) r[k++] = d
5538 function bnEquals(a) {
5539 return (this.compareTo(a) ==
0)
5543 return (this.compareTo(a) <
0) ? this : a
5547 return (this.compareTo(a)
> 0) ? this : a
5550 // (protected) r = this op a (bitwise)
5551 function bnpBitwiseTo(a, op, r) {
5553 var i, f, m = Math.min(a.t, self.t)
5554 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
5557 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
5560 f = self.s & self.DM
5561 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
5564 r.s = op(self.s, a.s)
5568 // (public) this & a
5569 function op_and(x, y) {
5574 var r = new BigInteger()
5575 this.bitwiseTo(a, op_and, r)
5579 // (public) this | a
5580 function op_or(x, y) {
5585 var r = new BigInteger()
5586 this.bitwiseTo(a, op_or, r)
5590 // (public) this ^ a
5591 function op_xor(x, y) {
5596 var r = new BigInteger()
5597 this.bitwiseTo(a, op_xor, r)
5601 // (public) this & ~a
5602 function op_andnot(x, y) {
5606 function bnAndNot(a) {
5607 var r = new BigInteger()
5608 this.bitwiseTo(a, op_andnot, r)
5614 var r = new BigInteger()
5615 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
5621 // (public) this << n
5622 function bnShiftLeft(n) {
5623 var r = new BigInteger()
5624 if (n <
0) this.rShiftTo(-n, r)
5625 else this.lShiftTo(n, r)
5629 // (public) this
>> n
5630 function bnShiftRight(n) {
5631 var r = new BigInteger()
5632 if (n <
0) this.lShiftTo(-n, r)
5633 else this.rShiftTo(n, r)
5637 // return index of lowest
1-bit in x, x <
2^
31
5639 if (x ==
0) return -
1
5641 if ((x &
0xffff) ==
0) {
5645 if ((x &
0xff) ==
0) {
5649 if ((x &
0xf) ==
0) {
5657 if ((x &
1) ==
0)++r
5661 // (public) returns index of lowest
1-bit (or -
1 if none)
5662 function bnGetLowestSetBit() {
5663 for (var i =
0; i < this.t; ++i)
5664 if (this[i] !=
0) return i * this.DB + lbit(this[i])
5665 if (this.s <
0) return this.t * this.DB
5669 // return number of
1 bits in x
5679 // (public) return number of set bits
5680 function bnBitCount() {
5682 x = this.s & this.DM
5683 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
5687 // (public) true iff nth bit is set
5688 function bnTestBit(n) {
5689 var j = Math.floor(n / this.DB)
5690 if (j
>= this.t) return (this.s !=
0)
5691 return ((this[j] & (
1 << (n % this.DB))) !=
0)
5694 // (protected) this op (
1<
<n)
5695 function bnpChangeBit(n, op) {
5696 var r = BigInteger.ONE.shiftLeft(n)
5697 this.bitwiseTo(r, op, r)
5701 // (public) this | (
1<
<n)
5702 function bnSetBit(n) {
5703 return this.changeBit(n, op_or)
5706 // (public) this & ~(
1<
<n)
5707 function bnClearBit(n) {
5708 return this.changeBit(n, op_andnot)
5711 // (public) this ^ (
1<
<n)
5712 function bnFlipBit(n) {
5713 return this.changeBit(n, op_xor)
5716 // (protected) r = this + a
5717 function bnpAddTo(a, r) {
5722 m = Math.min(a.t, self.t)
5725 r[i++] = c & self.DM
5730 while (i < self.t) {
5732 r[i++] = c & self.DM
5740 r[i++] = c & self.DM
5745 r.s = (c <
0) ? -
1 :
0
5746 if (c
> 0) r[i++] = c
5747 else if (c < -
1) r[i++] = self.DV + c
5752 // (public) this + a
5754 var r = new BigInteger()
5759 // (public) this - a
5760 function bnSubtract(a) {
5761 var r = new BigInteger()
5766 // (public) this * a
5767 function bnMultiply(a) {
5768 var r = new BigInteger()
5769 this.multiplyTo(a, r)
5774 function bnSquare() {
5775 var r = new BigInteger()
5780 // (public) this / a
5781 function bnDivide(a) {
5782 var r = new BigInteger()
5783 this.divRemTo(a, r, null)
5787 // (public) this % a
5788 function bnRemainder(a) {
5789 var r = new BigInteger()
5790 this.divRemTo(a, null, r)
5794 // (public) [this/a,this%a]
5795 function bnDivideAndRemainder(a) {
5796 var q = new BigInteger(),
5797 r = new BigInteger()
5798 this.divRemTo(a, q, r)
5799 return new Array(q, r)
5802 // (protected) this *= n, this
>=
0,
1 < n < DV
5803 function bnpDMultiply(n) {
5804 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
5809 // (protected) this += n << w words, this
>=
0
5810 function bnpDAddOffset(n, w) {
5812 while (this.t <= w) this[this.t++] =
0
5814 while (this[w]
>= this.DV) {
5816 if (++w
>= this.t) this[this.t++] =
0
5822 function NullExp() {}
5828 function nMulTo(x, y, r) {
5832 function nSqrTo(x, r) {
5836 NullExp.prototype.convert = nNop
5837 NullExp.prototype.revert = nNop
5838 NullExp.prototype.mulTo = nMulTo
5839 NullExp.prototype.sqrTo = nSqrTo
5843 return this.exp(e, new NullExp())
5846 // (protected) r = lower n words of "this * a", a.t <= n
5847 // "this" should be the larger one if appropriate.
5848 function bnpMultiplyLowerTo(a, n, r) {
5849 var i = Math.min(this.t + a.t, n)
5850 r.s =
0; // assumes a,this
>=
0
5852 while (i
> 0) r[--i] =
0
5854 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
5855 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
5859 // (protected) r =
"this * a" without lower n words, n
> 0
5860 //
"this" should be the larger one if appropriate.
5861 function bnpMultiplyUpperTo(a, n, r) {
5863 var i = r.t = this.t + a.t - n
5864 r.s =
0; // assumes a,this
>=
0
5865 while (--i
>=
0) r[i] =
0
5866 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
5867 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
5872 // Barrett modular reduction
5873 function Barrett(m) {
5875 this.r2 = new BigInteger()
5876 this.q3 = new BigInteger()
5877 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
5878 this.mu = this.r2.divide(m)
5882 function barrettConvert(x) {
5883 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
5884 else if (x.compareTo(this.m) <
0) return x
5886 var r = new BigInteger()
5893 function barrettRevert(x) {
5897 // x = x mod m (HAC
14.42)
5898 function barrettReduce(x) {
5900 x.drShiftTo(self.m.t -
1, self.r2)
5901 if (x.t
> self.m.t +
1) {
5905 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
5906 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
5907 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
5909 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
5912 // r = x^
2 mod m; x != r
5913 function barrettSqrTo(x, r) {
5918 // r = x*y mod m; x,y != r
5919 function barrettMulTo(x, y, r) {
5924 Barrett.prototype.convert = barrettConvert
5925 Barrett.prototype.revert = barrettRevert
5926 Barrett.prototype.reduce = barrettReduce
5927 Barrett.prototype.mulTo = barrettMulTo
5928 Barrett.prototype.sqrTo = barrettSqrTo
5930 // (public) this^e % m (HAC
14.85)
5931 function bnModPow(e, m) {
5932 var i = e.bitLength(),
5935 if (i <=
0) return r
5936 else if (i <
18) k =
1
5937 else if (i <
48) k =
3
5938 else if (i <
144) k =
4
5939 else if (i <
768) k =
5
5943 else if (m.isEven())
5946 z = new Montgomery(m)
5949 var g = new Array(),
5953 g[
1] = z.convert(this)
5955 var g2 = new BigInteger()
5958 g[n] = new BigInteger()
5959 z.mulTo(g2, g[n -
2], g[n])
5966 r2 = new BigInteger(),
5970 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
5972 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
5973 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
5977 while ((w &
1) ==
0) {
5985 if (is1) { // ret ==
1, don't bother squaring or multiplying it
5994 if (n
> 0) z.sqrTo(r, r2)
6000 z.mulTo(r2, g[w], r)
6003 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
6017 // (public) gcd(this,a) (HAC
14.54)
6019 var x = (this.s <
0) ? this.negate() : this.clone()
6020 var y = (a.s <
0) ? a.negate() : a.clone()
6021 if (x.compareTo(y) <
0) {
6026 var i = x.getLowestSetBit(),
6027 g = y.getLowestSetBit()
6034 while (x.signum()
> 0) {
6035 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
6036 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
6037 if (x.compareTo(y)
>=
0) {
6045 if (g
> 0) y.lShiftTo(g, y)
6049 // (protected) this % n, n <
2^
26
6050 function bnpModInt(n) {
6051 if (n <=
0) return
0
6052 var d = this.DV % n,
6053 r = (this.s <
0) ? n -
1 :
0
6055 if (d ==
0) r = this[
0] % n
6057 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
6061 // (public)
1/this % m (HAC
14.61)
6062 function bnModInverse(m) {
6064 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
6071 while (u.signum() !=
0) {
6072 while (u.isEven()) {
6075 if (!a.isEven() || !b.isEven()) {
6080 } else if (!b.isEven()) b.subTo(m, b)
6083 while (v.isEven()) {
6086 if (!c.isEven() || !d.isEven()) {
6091 } else if (!d.isEven()) d.subTo(m, d)
6094 if (u.compareTo(v)
>=
0) {
6096 if (ac) a.subTo(c, a)
6100 if (ac) c.subTo(a, c)
6104 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
6105 if (d.compareTo(m)
>=
0) return d.subtract(m)
6106 if (d.signum() <
0) d.addTo(m, d)
6108 if (d.signum() <
0) return d.add(m)
6113 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
6114 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
6115 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
6116 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
6117 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
6118 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
6119 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
6120 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
6121 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
6122 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
6123 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
6126 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
6128 // (public) test primality with certainty
>=
1-
.5^t
6129 function bnIsProbablePrime(t) {
6130 var i, x = this.abs()
6131 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
6132 for (i =
0; i < lowprimes.length; ++i)
6133 if (x[
0] == lowprimes[i]) return true
6136 if (x.isEven()) return false
6138 while (i < lowprimes.length) {
6139 var m = lowprimes[i],
6141 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
6143 while (i < j) if (m % lowprimes[i++] ==
0) return false
6145 return x.millerRabin(t)
6148 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
6149 function bnpMillerRabin(t) {
6150 var n1 = this.subtract(BigInteger.ONE)
6151 var k = n1.getLowestSetBit()
6152 if (k <=
0) return false
6153 var r = n1.shiftRight(k)
6155 if (t
> lowprimes.length) t = lowprimes.length
6156 var a = new BigInteger(null)
6158 for (var i =
0; i < t; ++i) {
6160 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
6161 if (bases.indexOf(j) == -
1) break
6165 var y = a.modPow(r, this)
6166 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
6168 while (j++ < k && y.compareTo(n1) !=
0) {
6169 y = y.modPowInt(
2, this)
6170 if (y.compareTo(BigInteger.ONE) ==
0) return false
6172 if (y.compareTo(n1) !=
0) return false
6179 proto.chunkSize = bnpChunkSize
6180 proto.toRadix = bnpToRadix
6181 proto.fromRadix = bnpFromRadix
6182 proto.fromNumber = bnpFromNumber
6183 proto.bitwiseTo = bnpBitwiseTo
6184 proto.changeBit = bnpChangeBit
6185 proto.addTo = bnpAddTo
6186 proto.dMultiply = bnpDMultiply
6187 proto.dAddOffset = bnpDAddOffset
6188 proto.multiplyLowerTo = bnpMultiplyLowerTo
6189 proto.multiplyUpperTo = bnpMultiplyUpperTo
6190 proto.modInt = bnpModInt
6191 proto.millerRabin = bnpMillerRabin
6194 proto.clone = bnClone
6195 proto.intValue = bnIntValue
6196 proto.byteValue = bnByteValue
6197 proto.shortValue = bnShortValue
6198 proto.signum = bnSigNum
6199 proto.toByteArray = bnToByteArray
6200 proto.equals = bnEquals
6206 proto.andNot = bnAndNot
6208 proto.shiftLeft = bnShiftLeft
6209 proto.shiftRight = bnShiftRight
6210 proto.getLowestSetBit = bnGetLowestSetBit
6211 proto.bitCount = bnBitCount
6212 proto.testBit = bnTestBit
6213 proto.setBit = bnSetBit
6214 proto.clearBit = bnClearBit
6215 proto.flipBit = bnFlipBit
6217 proto.subtract = bnSubtract
6218 proto.multiply = bnMultiply
6219 proto.divide = bnDivide
6220 proto.remainder = bnRemainder
6221 proto.divideAndRemainder = bnDivideAndRemainder
6222 proto.modPow = bnModPow
6223 proto.modInverse = bnModInverse
6226 proto.isProbablePrime = bnIsProbablePrime
6228 // JSBN-specific extension
6229 proto.square = bnSquare
6232 BigInteger.ZERO = nbv(
0)
6233 BigInteger.ONE = nbv(
1)
6234 BigInteger.valueOf = nbv
6236 module.exports = BigInteger
6238 },{"../package.json":
4}],
2:[function(require,module,exports){
6240 // FIXME: Kind of a weird way to throw exceptions, consider removing
6241 var assert = require('assert')
6242 var BigInteger = require('./bigi')
6245 * Turns a byte array into a big integer.
6247 * This function will interpret a byte array as a big integer in big
6250 BigInteger.fromByteArrayUnsigned = function(byteArray) {
6251 // BigInteger expects a DER integer conformant byte array
6252 if (byteArray[
0] &
0x80) {
6253 return new BigInteger([
0].concat(byteArray))
6256 return new BigInteger(byteArray)
6260 * Returns a byte array representation of the big integer.
6262 * This returns the absolute of the contained value in big endian
6263 * form. A value of zero results in an empty array.
6265 BigInteger.prototype.toByteArrayUnsigned = function() {
6266 var byteArray = this.toByteArray()
6267 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
6270 BigInteger.fromDERInteger = function(byteArray) {
6271 return new BigInteger(byteArray)
6275 * Converts BigInteger to a DER integer representation.
6277 * The format for this value uses the most significant bit as a sign
6278 * bit. If the most significant bit is already set and the integer is
6279 * positive, a
0x00 is prepended.
6295 * -
62300 =
> 0xff0ca4
6297 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
6299 BigInteger.fromBuffer = function(buffer) {
6300 // BigInteger expects a DER integer conformant byte array
6301 if (buffer[
0] &
0x80) {
6302 var byteArray = Array.prototype.slice.call(buffer)
6304 return new BigInteger([
0].concat(byteArray))
6307 return new BigInteger(buffer)
6310 BigInteger.fromHex = function(hex) {
6311 if (hex === '') return BigInteger.ZERO
6313 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
6314 assert.equal(hex.length %
2,
0, 'Incomplete hex')
6315 return new BigInteger(hex,
16)
6318 BigInteger.prototype.toBuffer = function(size) {
6319 var byteArray = this.toByteArrayUnsigned()
6322 var padding = size - byteArray.length
6323 while (zeros.length < padding) zeros.push(
0)
6325 return new Buffer(zeros.concat(byteArray))
6328 BigInteger.prototype.toHex = function(size) {
6329 return this.toBuffer(size).toString('hex')
6332 }).call(this,require(
"buffer").Buffer)
6333 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
6334 var BigInteger = require('./bigi')
6337 require('./convert')
6339 module.exports = BigInteger
6340 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
6344 "description":
"Big integers.",
6362 "devDependencies": {
6365 "coveralls":
"^2.10.0",
6366 "istanbul":
"^0.2.11"
6369 "url":
"https://github.com/cryptocoinjs/bigi",
6372 "main":
"./lib/index.js",
6374 "test":
"_mocha -- test/*.js",
6375 "jshint":
"jshint --config jshint.json lib/*.js ; true",
6377 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
6378 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
6382 "files":
"test/*.js",
6388 "safari/6.0..latest",
6389 "iphone/6.0..latest",
6390 "android-browser/4.2..latest"
6394 "url":
"https://github.com/cryptocoinjs/bigi/issues"
6396 "homepage":
"https://github.com/cryptocoinjs/bigi",
6397 "_id":
"bigi@1.4.0",
6399 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6400 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6402 "_from":
"bigi@^1.4.0",
6403 "_npmVersion":
"1.4.3",
6406 "email":
"jprichardson@gmail.com"
6411 "email":
"jprichardson@gmail.com"
6414 "name":
"midnightlightning",
6415 "email":
"boydb@midnightdesign.ws"
6418 "name":
"sidazhang",
6419 "email":
"sidazhang89@gmail.com"
6423 "email":
"npm@shesek.info"
6427 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6428 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6431 },{}],
5:[function(require,module,exports){
6432 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
6434 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
6436 // Originally from narwhal.js (http://narwhaljs.org)
6437 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
6439 // Permission is hereby granted, free of charge, to any person obtaining a copy
6440 // of this software and associated documentation files (the 'Software'), to
6441 // deal in the Software without restriction, including without limitation the
6442 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
6443 // sell copies of the Software, and to permit persons to whom the Software is
6444 // furnished to do so, subject to the following conditions:
6446 // The above copyright notice and this permission notice shall be included in
6447 // all copies or substantial portions of the Software.
6449 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6450 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6451 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
6452 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
6453 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
6454 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6456 // when used in node, this will actually load the util module we depend on
6457 // versus loading the builtin util module as happens otherwise
6458 // this is a bug in node module loading as far as I am concerned
6459 var util = require('util/');
6461 var pSlice = Array.prototype.slice;
6462 var hasOwn = Object.prototype.hasOwnProperty;
6464 //
1. The assert module provides functions that throw
6465 // AssertionError's when particular conditions are not met. The
6466 // assert module must conform to the following interface.
6468 var assert = module.exports = ok;
6470 //
2. The AssertionError is defined in assert.
6471 // new assert.AssertionError({ message: message,
6473 // expected: expected })
6475 assert.AssertionError = function AssertionError(options) {
6476 this.name = 'AssertionError';
6477 this.actual = options.actual;
6478 this.expected = options.expected;
6479 this.operator = options.operator;
6480 if (options.message) {
6481 this.message = options.message;
6482 this.generatedMessage = false;
6484 this.message = getMessage(this);
6485 this.generatedMessage = true;
6487 var stackStartFunction = options.stackStartFunction || fail;
6489 if (Error.captureStackTrace) {
6490 Error.captureStackTrace(this, stackStartFunction);
6493 // non v8 browsers so we can have a stacktrace
6494 var err = new Error();
6496 var out = err.stack;
6498 // try to strip useless frames
6499 var fn_name = stackStartFunction.name;
6500 var idx = out.indexOf('\n' + fn_name);
6502 // once we have located the function frame
6503 // we need to strip out everything before it (and its line)
6504 var next_line = out.indexOf('\n', idx +
1);
6505 out = out.substring(next_line +
1);
6513 // assert.AssertionError instanceof Error
6514 util.inherits(assert.AssertionError, Error);
6516 function replacer(key, value) {
6517 if (util.isUndefined(value)) {
6520 if (util.isNumber(value) && !isFinite(value)) {
6521 return value.toString();
6523 if (util.isFunction(value) || util.isRegExp(value)) {
6524 return value.toString();
6529 function truncate(s, n) {
6530 if (util.isString(s)) {
6531 return s.length < n ? s : s.slice(
0, n);
6537 function getMessage(self) {
6538 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
6539 self.operator + ' ' +
6540 truncate(JSON.stringify(self.expected, replacer),
128);
6543 // At present only the three keys mentioned above are used and
6544 // understood by the spec. Implementations or sub modules can pass
6545 // other keys to the AssertionError's constructor - they will be
6548 //
3. All of the following functions must throw an AssertionError
6549 // when a corresponding condition is not met, with a message that
6550 // may be undefined if not provided. All assertion methods provide
6551 // both the actual and expected values to the assertion error for
6552 // display purposes.
6554 function fail(actual, expected, message, operator, stackStartFunction) {
6555 throw new assert.AssertionError({
6560 stackStartFunction: stackStartFunction
6564 // EXTENSION! allows for well behaved errors defined elsewhere.
6567 //
4. Pure assertion tests whether a value is truthy, as determined
6569 // assert.ok(guard, message_opt);
6570 // This statement is equivalent to assert.equal(true, !!guard,
6571 // message_opt);. To test strictly for the value true, use
6572 // assert.strictEqual(true, guard, message_opt);.
6574 function ok(value, message) {
6575 if (!value) fail(value, true, message, '==', assert.ok);
6579 //
5. The equality assertion tests shallow, coercive equality with
6581 // assert.equal(actual, expected, message_opt);
6583 assert.equal = function equal(actual, expected, message) {
6584 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
6587 //
6. The non-equality assertion tests for whether two objects are not equal
6588 // with != assert.notEqual(actual, expected, message_opt);
6590 assert.notEqual = function notEqual(actual, expected, message) {
6591 if (actual == expected) {
6592 fail(actual, expected, message, '!=', assert.notEqual);
6596 //
7. The equivalence assertion tests a deep equality relation.
6597 // assert.deepEqual(actual, expected, message_opt);
6599 assert.deepEqual = function deepEqual(actual, expected, message) {
6600 if (!_deepEqual(actual, expected)) {
6601 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
6605 function _deepEqual(actual, expected) {
6606 //
7.1. All identical values are equivalent, as determined by ===.
6607 if (actual === expected) {
6610 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
6611 if (actual.length != expected.length) return false;
6613 for (var i =
0; i < actual.length; i++) {
6614 if (actual[i] !== expected[i]) return false;
6619 //
7.2. If the expected value is a Date object, the actual value is
6620 // equivalent if it is also a Date object that refers to the same time.
6621 } else if (util.isDate(actual) && util.isDate(expected)) {
6622 return actual.getTime() === expected.getTime();
6624 //
7.3 If the expected value is a RegExp object, the actual value is
6625 // equivalent if it is also a RegExp object with the same source and
6626 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
6627 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
6628 return actual.source === expected.source &&
6629 actual.global === expected.global &&
6630 actual.multiline === expected.multiline &&
6631 actual.lastIndex === expected.lastIndex &&
6632 actual.ignoreCase === expected.ignoreCase;
6634 //
7.4. Other pairs that do not both pass typeof value == 'object',
6635 // equivalence is determined by ==.
6636 } else if (!util.isObject(actual) && !util.isObject(expected)) {
6637 return actual == expected;
6639 //
7.5 For all other Object pairs, including Array objects, equivalence is
6640 // determined by having the same number of owned properties (as verified
6641 // with Object.prototype.hasOwnProperty.call), the same set of keys
6642 // (although not necessarily the same order), equivalent values for every
6643 // corresponding key, and an identical 'prototype' property. Note: this
6644 // accounts for both named and indexed properties on Arrays.
6646 return objEquiv(actual, expected);
6650 function isArguments(object) {
6651 return Object.prototype.toString.call(object) == '[object Arguments]';
6654 function objEquiv(a, b) {
6655 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
6657 // an identical 'prototype' property.
6658 if (a.prototype !== b.prototype) return false;
6659 // if one is a primitive, the other must be same
6660 if (util.isPrimitive(a) || util.isPrimitive(b)) {
6663 var aIsArgs = isArguments(a),
6664 bIsArgs = isArguments(b);
6665 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
6670 return _deepEqual(a, b);
6672 var ka = objectKeys(a),
6675 // having the same number of owned properties (keys incorporates
6677 if (ka.length != kb.length)
6679 //the same set of keys (although not necessarily the same order),
6683 for (i = ka.length -
1; i
>=
0; i--) {
6687 //equivalent values for every corresponding key, and
6688 //~~~possibly expensive deep test
6689 for (i = ka.length -
1; i
>=
0; i--) {
6691 if (!_deepEqual(a[key], b[key])) return false;
6696 //
8. The non-equivalence assertion tests for any deep inequality.
6697 // assert.notDeepEqual(actual, expected, message_opt);
6699 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
6700 if (_deepEqual(actual, expected)) {
6701 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
6705 //
9. The strict equality assertion tests strict equality, as determined by ===.
6706 // assert.strictEqual(actual, expected, message_opt);
6708 assert.strictEqual = function strictEqual(actual, expected, message) {
6709 if (actual !== expected) {
6710 fail(actual, expected, message, '===', assert.strictEqual);
6714 //
10. The strict non-equality assertion tests for strict inequality, as
6715 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
6717 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
6718 if (actual === expected) {
6719 fail(actual, expected, message, '!==', assert.notStrictEqual);
6723 function expectedException(actual, expected) {
6724 if (!actual || !expected) {
6728 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
6729 return expected.test(actual);
6730 } else if (actual instanceof expected) {
6732 } else if (expected.call({}, actual) === true) {
6739 function _throws(shouldThrow, block, expected, message) {
6742 if (util.isString(expected)) {
6753 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
6754 (message ? ' ' + message : '.');
6756 if (shouldThrow && !actual) {
6757 fail(actual, expected, 'Missing expected exception' + message);
6760 if (!shouldThrow && expectedException(actual, expected)) {
6761 fail(actual, expected, 'Got unwanted exception' + message);
6764 if ((shouldThrow && actual && expected &&
6765 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
6770 //
11. Expected to throw an error:
6771 // assert.throws(block, Error_opt, message_opt);
6773 assert.throws = function(block, /*optional*/error, /*optional*/message) {
6774 _throws.apply(this, [true].concat(pSlice.call(arguments)));
6777 // EXTENSION! This is annoying to write outside this module.
6778 assert.doesNotThrow = function(block, /*optional*/message) {
6779 _throws.apply(this, [false].concat(pSlice.call(arguments)));
6782 assert.ifError = function(err) { if (err) {throw err;}};
6784 var objectKeys = Object.keys || function (obj) {
6786 for (var key in obj) {
6787 if (hasOwn.call(obj, key)) keys.push(key);
6792 },{"util/":
29}],
6:[function(require,module,exports){
6794 },{}],
7:[function(require,module,exports){
6796 * The buffer module from node.js, for the browser.
6798 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
6802 var base64 = require('base64-js')
6803 var ieee754 = require('ieee754')
6804 var isArray = require('is-array')
6806 exports.Buffer = Buffer
6807 exports.SlowBuffer = SlowBuffer
6808 exports.INSPECT_MAX_BYTES =
50
6809 Buffer.poolSize =
8192 // not used by this implementation
6814 * If `Buffer.TYPED_ARRAY_SUPPORT`:
6815 * === true Use Uint8Array implementation (fastest)
6816 * === false Use Object implementation (most compatible, even IE6)
6818 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
6819 * Opera
11.6+, iOS
4.2+.
6821 * Due to various browser bugs, sometimes the Object implementation will be used even
6822 * when the browser supports typed arrays.
6826 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
6827 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
6829 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
6832 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
6834 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
6835 * incorrect length in some situations.
6837 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
6838 * get the Object implementation, which is slower but behaves correctly.
6840 Buffer.TYPED_ARRAY_SUPPORT = (function () {
6843 var arr = new Uint8Array(
1)
6844 arr.foo = function () { return
42 }
6845 arr.constructor = Bar
6846 return arr.foo() ===
42 && // typed array instances can be augmented
6847 arr.constructor === Bar && // constructor can be set
6848 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
6849 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
6855 function kMaxLength () {
6856 return Buffer.TYPED_ARRAY_SUPPORT
6865 * The Buffer constructor returns instances of `Uint8Array` that are augmented
6866 * with function properties for all the node `Buffer` API functions. We use
6867 * `Uint8Array` so that square bracket notation works as expected -- it returns
6870 * By augmenting the instances, we can avoid modifying the `Uint8Array`
6873 function Buffer (arg) {
6874 if (!(this instanceof Buffer)) {
6875 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
6876 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
6877 return new Buffer(arg)
6881 this.parent = undefined
6884 if (typeof arg === 'number') {
6885 return fromNumber(this, arg)
6888 // Slightly less common case.
6889 if (typeof arg === 'string') {
6890 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
6894 return fromObject(this, arg)
6897 function fromNumber (that, length) {
6898 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
6899 if (!Buffer.TYPED_ARRAY_SUPPORT) {
6900 for (var i =
0; i < length; i++) {
6907 function fromString (that, string, encoding) {
6908 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
6910 // Assumption: byteLength() return value is always < kMaxLength.
6911 var length = byteLength(string, encoding) |
0
6912 that = allocate(that, length)
6914 that.write(string, encoding)
6918 function fromObject (that, object) {
6919 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
6921 if (isArray(object)) return fromArray(that, object)
6923 if (object == null) {
6924 throw new TypeError('must start with number, buffer, array or string')
6927 if (typeof ArrayBuffer !== 'undefined') {
6928 if (object.buffer instanceof ArrayBuffer) {
6929 return fromTypedArray(that, object)
6931 if (object instanceof ArrayBuffer) {
6932 return fromArrayBuffer(that, object)
6936 if (object.length) return fromArrayLike(that, object)
6938 return fromJsonObject(that, object)
6941 function fromBuffer (that, buffer) {
6942 var length = checked(buffer.length) |
0
6943 that = allocate(that, length)
6944 buffer.copy(that,
0,
0, length)
6948 function fromArray (that, array) {
6949 var length = checked(array.length) |
0
6950 that = allocate(that, length)
6951 for (var i =
0; i < length; i +=
1) {
6952 that[i] = array[i] &
255
6957 // Duplicate of fromArray() to keep fromArray() monomorphic.
6958 function fromTypedArray (that, array) {
6959 var length = checked(array.length) |
0
6960 that = allocate(that, length)
6961 // Truncating the elements is probably not what people expect from typed
6962 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
6963 // of the old Buffer constructor.
6964 for (var i =
0; i < length; i +=
1) {
6965 that[i] = array[i] &
255
6970 function fromArrayBuffer (that, array) {
6971 if (Buffer.TYPED_ARRAY_SUPPORT) {
6972 // Return an augmented `Uint8Array` instance, for best performance
6974 that = Buffer._augment(new Uint8Array(array))
6976 // Fallback: Return an object instance of the Buffer class
6977 that = fromTypedArray(that, new Uint8Array(array))
6982 function fromArrayLike (that, array) {
6983 var length = checked(array.length) |
0
6984 that = allocate(that, length)
6985 for (var i =
0; i < length; i +=
1) {
6986 that[i] = array[i] &
255
6991 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
6992 // Returns a zero-length buffer for inputs that don't conform to the spec.
6993 function fromJsonObject (that, object) {
6997 if (object.type === 'Buffer' && isArray(object.data)) {
6999 length = checked(array.length) |
0
7001 that = allocate(that, length)
7003 for (var i =
0; i < length; i +=
1) {
7004 that[i] = array[i] &
255
7009 function allocate (that, length) {
7010 if (Buffer.TYPED_ARRAY_SUPPORT) {
7011 // Return an augmented `Uint8Array` instance, for best performance
7012 that = Buffer._augment(new Uint8Array(length))
7014 // Fallback: Return an object instance of the Buffer class
7015 that.length = length
7016 that._isBuffer = true
7019 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
7020 if (fromPool) that.parent = rootParent
7025 function checked (length) {
7026 // Note: cannot use `length < kMaxLength` here because that fails when
7027 // length is NaN (which is otherwise coerced to zero.)
7028 if (length
>= kMaxLength()) {
7029 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
7030 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
7035 function SlowBuffer (subject, encoding) {
7036 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
7038 var buf = new Buffer(subject, encoding)
7043 Buffer.isBuffer = function isBuffer (b) {
7044 return !!(b != null && b._isBuffer)
7047 Buffer.compare = function compare (a, b) {
7048 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
7049 throw new TypeError('Arguments must be Buffers')
7052 if (a === b) return
0
7058 var len = Math.min(x, y)
7060 if (a[i] !== b[i]) break
7070 if (x < y) return -
1
7075 Buffer.isEncoding = function isEncoding (encoding) {
7076 switch (String(encoding).toLowerCase()) {
7094 Buffer.concat = function concat (list, length) {
7095 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
7097 if (list.length ===
0) {
7098 return new Buffer(
0)
7102 if (length === undefined) {
7104 for (i =
0; i < list.length; i++) {
7105 length += list[i].length
7109 var buf = new Buffer(length)
7111 for (i =
0; i < list.length; i++) {
7119 function byteLength (string, encoding) {
7120 if (typeof string !== 'string') string = '' + string
7122 var len = string.length
7123 if (len ===
0) return
0
7125 // Use a for loop to avoid recursion
7126 var loweredCase = false
7137 return utf8ToBytes(string).length
7146 return base64ToBytes(string).length
7148 if (loweredCase) return utf8ToBytes(string).length // assume utf8
7149 encoding = ('' + encoding).toLowerCase()
7154 Buffer.byteLength = byteLength
7156 // pre-set for values that may exist in the future
7157 Buffer.prototype.length = undefined
7158 Buffer.prototype.parent = undefined
7160 function slowToString (encoding, start, end) {
7161 var loweredCase = false
7164 end = end === undefined || end === Infinity ? this.length : end |
0
7166 if (!encoding) encoding = 'utf8'
7167 if (start <
0) start =
0
7168 if (end
> this.length) end = this.length
7169 if (end <= start) return ''
7174 return hexSlice(this, start, end)
7178 return utf8Slice(this, start, end)
7181 return asciiSlice(this, start, end)
7184 return binarySlice(this, start, end)
7187 return base64Slice(this, start, end)
7193 return utf16leSlice(this, start, end)
7196 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7197 encoding = (encoding + '').toLowerCase()
7203 Buffer.prototype.toString = function toString () {
7204 var length = this.length |
0
7205 if (length ===
0) return ''
7206 if (arguments.length ===
0) return utf8Slice(this,
0, length)
7207 return slowToString.apply(this, arguments)
7210 Buffer.prototype.equals = function equals (b) {
7211 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7212 if (this === b) return true
7213 return Buffer.compare(this, b) ===
0
7216 Buffer.prototype.inspect = function inspect () {
7218 var max = exports.INSPECT_MAX_BYTES
7219 if (this.length
> 0) {
7220 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
7221 if (this.length
> max) str += ' ... '
7223 return '
<Buffer ' + str + '
>'
7226 Buffer.prototype.compare = function compare (b) {
7227 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7228 if (this === b) return
0
7229 return Buffer.compare(this, b)
7232 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
7233 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
7234 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
7237 if (this.length ===
0) return -
1
7238 if (byteOffset
>= this.length) return -
1
7240 // Negative offsets start from the end of the buffer
7241 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
7243 if (typeof val === 'string') {
7244 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
7245 return String.prototype.indexOf.call(this, val, byteOffset)
7247 if (Buffer.isBuffer(val)) {
7248 return arrayIndexOf(this, val, byteOffset)
7250 if (typeof val === 'number') {
7251 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
7252 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
7254 return arrayIndexOf(this, [ val ], byteOffset)
7257 function arrayIndexOf (arr, val, byteOffset) {
7259 for (var i =
0; byteOffset + i < arr.length; i++) {
7260 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
7261 if (foundIndex === -
1) foundIndex = i
7262 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
7270 throw new TypeError('val must be string, number or Buffer')
7273 // `get` is deprecated
7274 Buffer.prototype.get = function get (offset) {
7275 console.log('.get() is deprecated. Access using array indexes instead.')
7276 return this.readUInt8(offset)
7279 // `set` is deprecated
7280 Buffer.prototype.set = function set (v, offset) {
7281 console.log('.set() is deprecated. Access using array indexes instead.')
7282 return this.writeUInt8(v, offset)
7285 function hexWrite (buf, string, offset, length) {
7286 offset = Number(offset) ||
0
7287 var remaining = buf.length - offset
7291 length = Number(length)
7292 if (length
> remaining) {
7297 // must be an even number of digits
7298 var strLen = string.length
7299 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
7301 if (length
> strLen /
2) {
7304 for (var i =
0; i < length; i++) {
7305 var parsed = parseInt(string.substr(i *
2,
2),
16)
7306 if (isNaN(parsed)) throw new Error('Invalid hex string')
7307 buf[offset + i] = parsed
7312 function utf8Write (buf, string, offset, length) {
7313 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
7316 function asciiWrite (buf, string, offset, length) {
7317 return blitBuffer(asciiToBytes(string), buf, offset, length)
7320 function binaryWrite (buf, string, offset, length) {
7321 return asciiWrite(buf, string, offset, length)
7324 function base64Write (buf, string, offset, length) {
7325 return blitBuffer(base64ToBytes(string), buf, offset, length)
7328 function ucs2Write (buf, string, offset, length) {
7329 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
7332 Buffer.prototype.write = function write (string, offset, length, encoding) {
7333 // Buffer#write(string)
7334 if (offset === undefined) {
7336 length = this.length
7338 // Buffer#write(string, encoding)
7339 } else if (length === undefined && typeof offset === 'string') {
7341 length = this.length
7343 // Buffer#write(string, offset[, length][, encoding])
7344 } else if (isFinite(offset)) {
7346 if (isFinite(length)) {
7348 if (encoding === undefined) encoding = 'utf8'
7353 // legacy write(string, encoding, offset, length) - remove in v0.13
7361 var remaining = this.length - offset
7362 if (length === undefined || length
> remaining) length = remaining
7364 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
7365 throw new RangeError('attempt to write outside buffer bounds')
7368 if (!encoding) encoding = 'utf8'
7370 var loweredCase = false
7374 return hexWrite(this, string, offset, length)
7378 return utf8Write(this, string, offset, length)
7381 return asciiWrite(this, string, offset, length)
7384 return binaryWrite(this, string, offset, length)
7387 // Warning: maxLength not taken into account in base64Write
7388 return base64Write(this, string, offset, length)
7394 return ucs2Write(this, string, offset, length)
7397 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7398 encoding = ('' + encoding).toLowerCase()
7404 Buffer.prototype.toJSON = function toJSON () {
7407 data: Array.prototype.slice.call(this._arr || this,
0)
7411 function base64Slice (buf, start, end) {
7412 if (start ===
0 && end === buf.length) {
7413 return base64.fromByteArray(buf)
7415 return base64.fromByteArray(buf.slice(start, end))
7419 function utf8Slice (buf, start, end) {
7420 end = Math.min(buf.length, end)
7425 var bytesPerSequence
7431 for (; i < end; i += bytesPerSequence) {
7435 if (firstByte
> 0xEF) {
7436 bytesPerSequence =
4
7437 } else if (firstByte
> 0xDF) {
7438 bytesPerSequence =
3
7439 } else if (firstByte
> 0xBF) {
7440 bytesPerSequence =
2
7442 bytesPerSequence =
1
7445 if (i + bytesPerSequence <= end) {
7446 switch (bytesPerSequence) {
7448 if (firstByte <
0x80) {
7449 codePoint = firstByte
7453 secondByte = buf[i +
1]
7454 if ((secondByte &
0xC0) ===
0x80) {
7455 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
7456 if (tempCodePoint
> 0x7F) {
7457 codePoint = tempCodePoint
7462 secondByte = buf[i +
1]
7463 thirdByte = buf[i +
2]
7464 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
7465 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
7466 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
7467 codePoint = tempCodePoint
7472 secondByte = buf[i +
1]
7473 thirdByte = buf[i +
2]
7474 fourthByte = buf[i +
3]
7475 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
7476 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
7477 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
7478 codePoint = tempCodePoint
7484 if (codePoint ===
0xFFFD) {
7485 // we generated an invalid codePoint so make sure to only advance by
1 byte
7486 bytesPerSequence =
1
7487 } else if (codePoint
> 0xFFFF) {
7488 // encode to utf16 (surrogate pair dance)
7489 codePoint -=
0x10000
7490 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
7491 codePoint =
0xDC00 | codePoint &
0x3FF
7497 return String.fromCharCode.apply(String, res)
7500 function asciiSlice (buf, start, end) {
7502 end = Math.min(buf.length, end)
7504 for (var i = start; i < end; i++) {
7505 ret += String.fromCharCode(buf[i] &
0x7F)
7510 function binarySlice (buf, start, end) {
7512 end = Math.min(buf.length, end)
7514 for (var i = start; i < end; i++) {
7515 ret += String.fromCharCode(buf[i])
7520 function hexSlice (buf, start, end) {
7521 var len = buf.length
7523 if (!start || start <
0) start =
0
7524 if (!end || end <
0 || end
> len) end = len
7527 for (var i = start; i < end; i++) {
7528 out += toHex(buf[i])
7533 function utf16leSlice (buf, start, end) {
7534 var bytes = buf.slice(start, end)
7536 for (var i =
0; i < bytes.length; i +=
2) {
7537 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
7542 Buffer.prototype.slice = function slice (start, end) {
7543 var len = this.length
7545 end = end === undefined ? len : ~~end
7549 if (start <
0) start =
0
7550 } else if (start
> len) {
7556 if (end <
0) end =
0
7557 } else if (end
> len) {
7561 if (end < start) end = start
7564 if (Buffer.TYPED_ARRAY_SUPPORT) {
7565 newBuf = Buffer._augment(this.subarray(start, end))
7567 var sliceLen = end - start
7568 newBuf = new Buffer(sliceLen, undefined)
7569 for (var i =
0; i < sliceLen; i++) {
7570 newBuf[i] = this[i + start]
7574 if (newBuf.length) newBuf.parent = this.parent || this
7580 * Need to make sure that buffer isn't trying to write out of bounds.
7582 function checkOffset (offset, ext, length) {
7583 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
7584 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
7587 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
7589 byteLength = byteLength |
0
7590 if (!noAssert) checkOffset(offset, byteLength, this.length)
7592 var val = this[offset]
7595 while (++i < byteLength && (mul *=
0x100)) {
7596 val += this[offset + i] * mul
7602 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
7604 byteLength = byteLength |
0
7606 checkOffset(offset, byteLength, this.length)
7609 var val = this[offset + --byteLength]
7611 while (byteLength
> 0 && (mul *=
0x100)) {
7612 val += this[offset + --byteLength] * mul
7618 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
7619 if (!noAssert) checkOffset(offset,
1, this.length)
7623 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
7624 if (!noAssert) checkOffset(offset,
2, this.length)
7625 return this[offset] | (this[offset +
1] <<
8)
7628 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
7629 if (!noAssert) checkOffset(offset,
2, this.length)
7630 return (this[offset] <<
8) | this[offset +
1]
7633 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
7634 if (!noAssert) checkOffset(offset,
4, this.length)
7636 return ((this[offset]) |
7637 (this[offset +
1] <<
8) |
7638 (this[offset +
2] <<
16)) +
7639 (this[offset +
3] *
0x1000000)
7642 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
7643 if (!noAssert) checkOffset(offset,
4, this.length)
7645 return (this[offset] *
0x1000000) +
7646 ((this[offset +
1] <<
16) |
7647 (this[offset +
2] <<
8) |
7651 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
7653 byteLength = byteLength |
0
7654 if (!noAssert) checkOffset(offset, byteLength, this.length)
7656 var val = this[offset]
7659 while (++i < byteLength && (mul *=
0x100)) {
7660 val += this[offset + i] * mul
7664 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7669 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
7671 byteLength = byteLength |
0
7672 if (!noAssert) checkOffset(offset, byteLength, this.length)
7676 var val = this[offset + --i]
7677 while (i
> 0 && (mul *=
0x100)) {
7678 val += this[offset + --i] * mul
7682 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7687 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
7688 if (!noAssert) checkOffset(offset,
1, this.length)
7689 if (!(this[offset] &
0x80)) return (this[offset])
7690 return ((
0xff - this[offset] +
1) * -
1)
7693 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
7694 if (!noAssert) checkOffset(offset,
2, this.length)
7695 var val = this[offset] | (this[offset +
1] <<
8)
7696 return (val &
0x8000) ? val |
0xFFFF0000 : val
7699 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
7700 if (!noAssert) checkOffset(offset,
2, this.length)
7701 var val = this[offset +
1] | (this[offset] <<
8)
7702 return (val &
0x8000) ? val |
0xFFFF0000 : val
7705 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
7706 if (!noAssert) checkOffset(offset,
4, this.length)
7708 return (this[offset]) |
7709 (this[offset +
1] <<
8) |
7710 (this[offset +
2] <<
16) |
7711 (this[offset +
3] <<
24)
7714 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
7715 if (!noAssert) checkOffset(offset,
4, this.length)
7717 return (this[offset] <<
24) |
7718 (this[offset +
1] <<
16) |
7719 (this[offset +
2] <<
8) |
7723 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
7724 if (!noAssert) checkOffset(offset,
4, this.length)
7725 return ieee754.read(this, offset, true,
23,
4)
7728 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
7729 if (!noAssert) checkOffset(offset,
4, this.length)
7730 return ieee754.read(this, offset, false,
23,
4)
7733 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
7734 if (!noAssert) checkOffset(offset,
8, this.length)
7735 return ieee754.read(this, offset, true,
52,
8)
7738 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
7739 if (!noAssert) checkOffset(offset,
8, this.length)
7740 return ieee754.read(this, offset, false,
52,
8)
7743 function checkInt (buf, value, offset, ext, max, min) {
7744 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
7745 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7746 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7749 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
7752 byteLength = byteLength |
0
7753 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7757 this[offset] = value &
0xFF
7758 while (++i < byteLength && (mul *=
0x100)) {
7759 this[offset + i] = (value / mul) &
0xFF
7762 return offset + byteLength
7765 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
7768 byteLength = byteLength |
0
7769 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7771 var i = byteLength -
1
7773 this[offset + i] = value &
0xFF
7774 while (--i
>=
0 && (mul *=
0x100)) {
7775 this[offset + i] = (value / mul) &
0xFF
7778 return offset + byteLength
7781 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
7784 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
7785 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7786 this[offset] = value
7790 function objectWriteUInt16 (buf, value, offset, littleEndian) {
7791 if (value <
0) value =
0xffff + value +
1
7792 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
7793 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
7794 (littleEndian ? i :
1 - i) *
8
7798 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
7801 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7802 if (Buffer.TYPED_ARRAY_SUPPORT) {
7803 this[offset] = value
7804 this[offset +
1] = (value
>>> 8)
7806 objectWriteUInt16(this, value, offset, true)
7811 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
7814 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7815 if (Buffer.TYPED_ARRAY_SUPPORT) {
7816 this[offset] = (value
>>> 8)
7817 this[offset +
1] = value
7819 objectWriteUInt16(this, value, offset, false)
7824 function objectWriteUInt32 (buf, value, offset, littleEndian) {
7825 if (value <
0) value =
0xffffffff + value +
1
7826 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
7827 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
7831 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
7834 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7835 if (Buffer.TYPED_ARRAY_SUPPORT) {
7836 this[offset +
3] = (value
>>> 24)
7837 this[offset +
2] = (value
>>> 16)
7838 this[offset +
1] = (value
>>> 8)
7839 this[offset] = value
7841 objectWriteUInt32(this, value, offset, true)
7846 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
7849 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7850 if (Buffer.TYPED_ARRAY_SUPPORT) {
7851 this[offset] = (value
>>> 24)
7852 this[offset +
1] = (value
>>> 16)
7853 this[offset +
2] = (value
>>> 8)
7854 this[offset +
3] = value
7856 objectWriteUInt32(this, value, offset, false)
7861 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
7865 var limit = Math.pow(
2,
8 * byteLength -
1)
7867 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7872 var sub = value <
0 ?
1 :
0
7873 this[offset] = value &
0xFF
7874 while (++i < byteLength && (mul *=
0x100)) {
7875 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7878 return offset + byteLength
7881 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
7885 var limit = Math.pow(
2,
8 * byteLength -
1)
7887 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7890 var i = byteLength -
1
7892 var sub = value <
0 ?
1 :
0
7893 this[offset + i] = value &
0xFF
7894 while (--i
>=
0 && (mul *=
0x100)) {
7895 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7898 return offset + byteLength
7901 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
7904 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
7905 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7906 if (value <
0) value =
0xff + value +
1
7907 this[offset] = value
7911 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
7914 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7915 if (Buffer.TYPED_ARRAY_SUPPORT) {
7916 this[offset] = value
7917 this[offset +
1] = (value
>>> 8)
7919 objectWriteUInt16(this, value, offset, true)
7924 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
7927 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7928 if (Buffer.TYPED_ARRAY_SUPPORT) {
7929 this[offset] = (value
>>> 8)
7930 this[offset +
1] = value
7932 objectWriteUInt16(this, value, offset, false)
7937 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
7940 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7941 if (Buffer.TYPED_ARRAY_SUPPORT) {
7942 this[offset] = value
7943 this[offset +
1] = (value
>>> 8)
7944 this[offset +
2] = (value
>>> 16)
7945 this[offset +
3] = (value
>>> 24)
7947 objectWriteUInt32(this, value, offset, true)
7952 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
7955 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7956 if (value <
0) value =
0xffffffff + value +
1
7957 if (Buffer.TYPED_ARRAY_SUPPORT) {
7958 this[offset] = (value
>>> 24)
7959 this[offset +
1] = (value
>>> 16)
7960 this[offset +
2] = (value
>>> 8)
7961 this[offset +
3] = value
7963 objectWriteUInt32(this, value, offset, false)
7968 function checkIEEE754 (buf, value, offset, ext, max, min) {
7969 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7970 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7971 if (offset <
0) throw new RangeError('index out of range')
7974 function writeFloat (buf, value, offset, littleEndian, noAssert) {
7976 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
7978 ieee754.write(buf, value, offset, littleEndian,
23,
4)
7982 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
7983 return writeFloat(this, value, offset, true, noAssert)
7986 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
7987 return writeFloat(this, value, offset, false, noAssert)
7990 function writeDouble (buf, value, offset, littleEndian, noAssert) {
7992 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
7994 ieee754.write(buf, value, offset, littleEndian,
52,
8)
7998 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
7999 return writeDouble(this, value, offset, true, noAssert)
8002 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
8003 return writeDouble(this, value, offset, false, noAssert)
8006 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
8007 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
8008 if (!start) start =
0
8009 if (!end && end !==
0) end = this.length
8010 if (targetStart
>= target.length) targetStart = target.length
8011 if (!targetStart) targetStart =
0
8012 if (end
> 0 && end < start) end = start
8014 // Copy
0 bytes; we're done
8015 if (end === start) return
0
8016 if (target.length ===
0 || this.length ===
0) return
0
8018 // Fatal error conditions
8019 if (targetStart <
0) {
8020 throw new RangeError('targetStart out of bounds')
8022 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
8023 if (end <
0) throw new RangeError('sourceEnd out of bounds')
8026 if (end
> this.length) end = this.length
8027 if (target.length - targetStart < end - start) {
8028 end = target.length - targetStart + start
8031 var len = end - start
8034 if (this === target && start < targetStart && targetStart < end) {
8035 // descending copy from end
8036 for (i = len -
1; i
>=
0; i--) {
8037 target[i + targetStart] = this[i + start]
8039 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
8040 // ascending copy from start
8041 for (i =
0; i < len; i++) {
8042 target[i + targetStart] = this[i + start]
8045 target._set(this.subarray(start, start + len), targetStart)
8051 // fill(value, start=
0, end=buffer.length)
8052 Buffer.prototype.fill = function fill (value, start, end) {
8053 if (!value) value =
0
8054 if (!start) start =
0
8055 if (!end) end = this.length
8057 if (end < start) throw new RangeError('end < start')
8059 // Fill
0 bytes; we're done
8060 if (end === start) return
8061 if (this.length ===
0) return
8063 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
8064 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
8067 if (typeof value === 'number') {
8068 for (i = start; i < end; i++) {
8072 var bytes = utf8ToBytes(value.toString())
8073 var len = bytes.length
8074 for (i = start; i < end; i++) {
8075 this[i] = bytes[i % len]
8083 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
8084 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
8086 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
8087 if (typeof Uint8Array !== 'undefined') {
8088 if (Buffer.TYPED_ARRAY_SUPPORT) {
8089 return (new Buffer(this)).buffer
8091 var buf = new Uint8Array(this.length)
8092 for (var i =
0, len = buf.length; i < len; i +=
1) {
8098 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
8105 var BP = Buffer.prototype
8108 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
8110 Buffer._augment = function _augment (arr) {
8111 arr.constructor = Buffer
8112 arr._isBuffer = true
8114 // save reference to original Uint8Array set method before overwriting
8121 arr.write = BP.write
8122 arr.toString = BP.toString
8123 arr.toLocaleString = BP.toString
8124 arr.toJSON = BP.toJSON
8125 arr.equals = BP.equals
8126 arr.compare = BP.compare
8127 arr.indexOf = BP.indexOf
8129 arr.slice = BP.slice
8130 arr.readUIntLE = BP.readUIntLE
8131 arr.readUIntBE = BP.readUIntBE
8132 arr.readUInt8 = BP.readUInt8
8133 arr.readUInt16LE = BP.readUInt16LE
8134 arr.readUInt16BE = BP.readUInt16BE
8135 arr.readUInt32LE = BP.readUInt32LE
8136 arr.readUInt32BE = BP.readUInt32BE
8137 arr.readIntLE = BP.readIntLE
8138 arr.readIntBE = BP.readIntBE
8139 arr.readInt8 = BP.readInt8
8140 arr.readInt16LE = BP.readInt16LE
8141 arr.readInt16BE = BP.readInt16BE
8142 arr.readInt32LE = BP.readInt32LE
8143 arr.readInt32BE = BP.readInt32BE
8144 arr.readFloatLE = BP.readFloatLE
8145 arr.readFloatBE = BP.readFloatBE
8146 arr.readDoubleLE = BP.readDoubleLE
8147 arr.readDoubleBE = BP.readDoubleBE
8148 arr.writeUInt8 = BP.writeUInt8
8149 arr.writeUIntLE = BP.writeUIntLE
8150 arr.writeUIntBE = BP.writeUIntBE
8151 arr.writeUInt16LE = BP.writeUInt16LE
8152 arr.writeUInt16BE = BP.writeUInt16BE
8153 arr.writeUInt32LE = BP.writeUInt32LE
8154 arr.writeUInt32BE = BP.writeUInt32BE
8155 arr.writeIntLE = BP.writeIntLE
8156 arr.writeIntBE = BP.writeIntBE
8157 arr.writeInt8 = BP.writeInt8
8158 arr.writeInt16LE = BP.writeInt16LE
8159 arr.writeInt16BE = BP.writeInt16BE
8160 arr.writeInt32LE = BP.writeInt32LE
8161 arr.writeInt32BE = BP.writeInt32BE
8162 arr.writeFloatLE = BP.writeFloatLE
8163 arr.writeFloatBE = BP.writeFloatBE
8164 arr.writeDoubleLE = BP.writeDoubleLE
8165 arr.writeDoubleBE = BP.writeDoubleBE
8167 arr.inspect = BP.inspect
8168 arr.toArrayBuffer = BP.toArrayBuffer
8173 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
8175 function base64clean (str) {
8176 // Node strips out invalid characters like \n and \t from the string, base64-js does not
8177 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
8178 // Node converts strings with length <
2 to ''
8179 if (str.length <
2) return ''
8180 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
8181 while (str.length %
4 !==
0) {
8187 function stringtrim (str) {
8188 if (str.trim) return str.trim()
8189 return str.replace(/^\s+|\s+$/g, '')
8192 function toHex (n) {
8193 if (n <
16) return '
0' + n.toString(
16)
8194 return n.toString(
16)
8197 function utf8ToBytes (string, units) {
8198 units = units || Infinity
8200 var length = string.length
8201 var leadSurrogate = null
8204 for (var i =
0; i < length; i++) {
8205 codePoint = string.charCodeAt(i)
8207 // is surrogate component
8208 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
8209 // last char was a lead
8210 if (!leadSurrogate) {
8212 if (codePoint
> 0xDBFF) {
8214 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8217 } else if (i +
1 === length) {
8219 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8224 leadSurrogate = codePoint
8230 if (codePoint <
0xDC00) {
8231 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8232 leadSurrogate = codePoint
8236 // valid surrogate pair
8237 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
8239 } else if (leadSurrogate) {
8240 // valid bmp char, but last char was a lead
8241 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8244 leadSurrogate = null
8247 if (codePoint <
0x80) {
8248 if ((units -=
1) <
0) break
8249 bytes.push(codePoint)
8250 } else if (codePoint <
0x800) {
8251 if ((units -=
2) <
0) break
8253 codePoint
>> 0x6 |
0xC0,
8254 codePoint &
0x3F |
0x80
8256 } else if (codePoint <
0x10000) {
8257 if ((units -=
3) <
0) break
8259 codePoint
>> 0xC |
0xE0,
8260 codePoint
>> 0x6 &
0x3F |
0x80,
8261 codePoint &
0x3F |
0x80
8263 } else if (codePoint <
0x110000) {
8264 if ((units -=
4) <
0) break
8266 codePoint
>> 0x12 |
0xF0,
8267 codePoint
>> 0xC &
0x3F |
0x80,
8268 codePoint
>> 0x6 &
0x3F |
0x80,
8269 codePoint &
0x3F |
0x80
8272 throw new Error('Invalid code point')
8279 function asciiToBytes (str) {
8281 for (var i =
0; i < str.length; i++) {
8282 // Node's code seems to be doing this and not &
0x7F..
8283 byteArray.push(str.charCodeAt(i) &
0xFF)
8288 function utf16leToBytes (str, units) {
8291 for (var i =
0; i < str.length; i++) {
8292 if ((units -=
2) <
0) break
8294 c = str.charCodeAt(i)
8304 function base64ToBytes (str) {
8305 return base64.toByteArray(base64clean(str))
8308 function blitBuffer (src, dst, offset, length) {
8309 for (var i =
0; i < length; i++) {
8310 if ((i + offset
>= dst.length) || (i
>= src.length)) break
8311 dst[i + offset] = src[i]
8316 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
8317 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
8319 ;(function (exports) {
8322 var Arr = (typeof Uint8Array !== 'undefined')
8326 var PLUS = '+'.charCodeAt(
0)
8327 var SLASH = '/'.charCodeAt(
0)
8328 var NUMBER = '
0'.charCodeAt(
0)
8329 var LOWER = 'a'.charCodeAt(
0)
8330 var UPPER = 'A'.charCodeAt(
0)
8331 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
8332 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
8334 function decode (elt) {
8335 var code = elt.charCodeAt(
0)
8336 if (code === PLUS ||
8337 code === PLUS_URL_SAFE)
8339 if (code === SLASH ||
8340 code === SLASH_URL_SAFE)
8343 return -
1 //no match
8344 if (code < NUMBER +
10)
8345 return code - NUMBER +
26 +
26
8346 if (code < UPPER +
26)
8348 if (code < LOWER +
26)
8349 return code - LOWER +
26
8352 function b64ToByteArray (b64) {
8353 var i, j, l, tmp, placeHolders, arr
8355 if (b64.length %
4 > 0) {
8356 throw new Error('Invalid string. Length must be a multiple of
4')
8359 // the number of equal signs (place holders)
8360 // if there are two placeholders, than the two characters before it
8361 // represent one byte
8362 // if there is only one, then the three characters before it represent
2 bytes
8363 // this is just a cheap hack to not do indexOf twice
8364 var len = b64.length
8365 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
8367 // base64 is
4/
3 + up to two characters of the original data
8368 arr = new Arr(b64.length *
3 /
4 - placeHolders)
8370 // if there are placeholders, only get up to the last complete
4 chars
8371 l = placeHolders
> 0 ? b64.length -
4 : b64.length
8379 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
8380 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
8381 push((tmp &
0xFF0000)
>> 16)
8382 push((tmp &
0xFF00)
>> 8)
8386 if (placeHolders ===
2) {
8387 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
8389 } else if (placeHolders ===
1) {
8390 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
8391 push((tmp
>> 8) &
0xFF)
8398 function uint8ToBase64 (uint8) {
8400 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
8404 function encode (num) {
8405 return lookup.charAt(num)
8408 function tripletToBase64 (num) {
8409 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
8412 // go through the array every three bytes, we'll deal with trailing stuff later
8413 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
8414 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
8415 output += tripletToBase64(temp)
8418 // pad the end with zeros, but make sure to not forget the extra bytes
8419 switch (extraBytes) {
8421 temp = uint8[uint8.length -
1]
8422 output += encode(temp
>> 2)
8423 output += encode((temp <<
4) &
0x3F)
8427 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
8428 output += encode(temp
>> 10)
8429 output += encode((temp
>> 4) &
0x3F)
8430 output += encode((temp <<
2) &
0x3F)
8438 exports.toByteArray = b64ToByteArray
8439 exports.fromByteArray = uint8ToBase64
8440 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
8442 },{}],
9:[function(require,module,exports){
8443 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
8445 var eLen = nBytes *
8 - mLen -
1
8446 var eMax = (
1 << eLen) -
1
8447 var eBias = eMax
>> 1
8449 var i = isLE ? (nBytes -
1) :
0
8450 var d = isLE ? -
1 :
1
8451 var s = buffer[offset + i]
8455 e = s & ((
1 << (-nBits)) -
1)
8458 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8460 m = e & ((
1 << (-nBits)) -
1)
8463 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8467 } else if (e === eMax) {
8468 return m ? NaN : ((s ? -
1 :
1) * Infinity)
8470 m = m + Math.pow(
2, mLen)
8473 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
8476 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
8478 var eLen = nBytes *
8 - mLen -
1
8479 var eMax = (
1 << eLen) -
1
8480 var eBias = eMax
>> 1
8481 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
8482 var i = isLE ?
0 : (nBytes -
1)
8483 var d = isLE ?
1 : -
1
8484 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
8486 value = Math.abs(value)
8488 if (isNaN(value) || value === Infinity) {
8489 m = isNaN(value) ?
1 :
0
8492 e = Math.floor(Math.log(value) / Math.LN2)
8493 if (value * (c = Math.pow(
2, -e)) <
1) {
8497 if (e + eBias
>=
1) {
8500 value += rt * Math.pow(
2,
1 - eBias)
8502 if (value * c
>=
2) {
8507 if (e + eBias
>= eMax) {
8510 } else if (e + eBias
>=
1) {
8511 m = (value * c -
1) * Math.pow(
2, mLen)
8514 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
8519 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
8523 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
8525 buffer[offset + i - d] |= s *
128
8528 },{}],
10:[function(require,module,exports){
8534 var isArray = Array.isArray;
8540 var str = Object.prototype.toString;
8543 * Whether or not the given `val`
8550 * isArray(arguments);
8555 * @param {mixed} val
8559 module.exports = isArray || function (val) {
8560 return !! val && '[object Array]' == str.call(val);
8563 },{}],
11:[function(require,module,exports){
8564 // Copyright Joyent, Inc. and other Node contributors.
8566 // Permission is hereby granted, free of charge, to any person obtaining a
8567 // copy of this software and associated documentation files (the
8568 // "Software"), to deal in the Software without restriction, including
8569 // without limitation the rights to use, copy, modify, merge, publish,
8570 // distribute, sublicense, and/or sell copies of the Software, and to permit
8571 // persons to whom the Software is furnished to do so, subject to the
8572 // following conditions:
8574 // The above copyright notice and this permission notice shall be included
8575 // in all copies or substantial portions of the Software.
8577 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
8578 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
8579 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
8580 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
8581 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
8582 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
8583 // USE OR OTHER DEALINGS IN THE SOFTWARE.
8585 function EventEmitter() {
8586 this._events = this._events || {};
8587 this._maxListeners = this._maxListeners || undefined;
8589 module.exports = EventEmitter;
8591 // Backwards-compat with node
0.10.x
8592 EventEmitter.EventEmitter = EventEmitter;
8594 EventEmitter.prototype._events = undefined;
8595 EventEmitter.prototype._maxListeners = undefined;
8597 // By default EventEmitters will print a warning if more than
10 listeners are
8598 // added to it. This is a useful default which helps finding memory leaks.
8599 EventEmitter.defaultMaxListeners =
10;
8601 // Obviously not all Emitters should be limited to
10. This function allows
8602 // that to be increased. Set to zero for unlimited.
8603 EventEmitter.prototype.setMaxListeners = function(n) {
8604 if (!isNumber(n) || n <
0 || isNaN(n))
8605 throw TypeError('n must be a positive number');
8606 this._maxListeners = n;
8610 EventEmitter.prototype.emit = function(type) {
8611 var er, handler, len, args, i, listeners;
8616 // If there is no 'error' event listener then throw.
8617 if (type === 'error') {
8618 if (!this._events.error ||
8619 (isObject(this._events.error) && !this._events.error.length)) {
8621 if (er instanceof Error) {
8622 throw er; // Unhandled 'error' event
8624 throw TypeError('Uncaught, unspecified "error" event.');
8628 handler = this._events[type];
8630 if (isUndefined(handler))
8633 if (isFunction(handler)) {
8634 switch (arguments.length) {
8640 handler.call(this, arguments[
1]);
8643 handler.call(this, arguments[
1], arguments[
2]);
8647 len = arguments.length;
8648 args = new Array(len -
1);
8649 for (i =
1; i < len; i++)
8650 args[i -
1] = arguments[i];
8651 handler.apply(this, args);
8653 } else if (isObject(handler)) {
8654 len = arguments.length;
8655 args = new Array(len -
1);
8656 for (i =
1; i < len; i++)
8657 args[i -
1] = arguments[i];
8659 listeners = handler.slice();
8660 len = listeners.length;
8661 for (i =
0; i < len; i++)
8662 listeners[i].apply(this, args);
8668 EventEmitter.prototype.addListener = function(type, listener) {
8671 if (!isFunction(listener))
8672 throw TypeError('listener must be a function');
8677 // To avoid recursion in the case that type === "newListener"! Before
8678 // adding it to the listeners, first emit "newListener".
8679 if (this._events.newListener)
8680 this.emit('newListener', type,
8681 isFunction(listener.listener) ?
8682 listener.listener : listener);
8684 if (!this._events[type])
8685 // Optimize the case of one listener. Don't need the extra array object.
8686 this._events[type] = listener;
8687 else if (isObject(this._events[type]))
8688 // If we've already got an array, just append.
8689 this._events[type].push(listener);
8691 // Adding the second element, need to change to array.
8692 this._events[type] = [this._events[type], listener];
8694 // Check for listener leak
8695 if (isObject(this._events[type]) && !this._events[type].warned) {
8697 if (!isUndefined(this._maxListeners)) {
8698 m = this._maxListeners;
8700 m = EventEmitter.defaultMaxListeners;
8703 if (m && m
> 0 && this._events[type].length
> m) {
8704 this._events[type].warned = true;
8705 console.error('(node) warning: possible EventEmitter memory ' +
8706 'leak detected. %d listeners added. ' +
8707 'Use emitter.setMaxListeners() to increase limit.',
8708 this._events[type].length);
8709 if (typeof console.trace === 'function') {
8710 // not supported in IE
10
8719 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
8721 EventEmitter.prototype.once = function(type, listener) {
8722 if (!isFunction(listener))
8723 throw TypeError('listener must be a function');
8728 this.removeListener(type, g);
8732 listener.apply(this, arguments);
8736 g.listener = listener;
8742 // emits a 'removeListener' event iff the listener was removed
8743 EventEmitter.prototype.removeListener = function(type, listener) {
8744 var list, position, length, i;
8746 if (!isFunction(listener))
8747 throw TypeError('listener must be a function');
8749 if (!this._events || !this._events[type])
8752 list = this._events[type];
8753 length = list.length;
8756 if (list === listener ||
8757 (isFunction(list.listener) && list.listener === listener)) {
8758 delete this._events[type];
8759 if (this._events.removeListener)
8760 this.emit('removeListener', type, listener);
8762 } else if (isObject(list)) {
8763 for (i = length; i--
> 0;) {
8764 if (list[i] === listener ||
8765 (list[i].listener && list[i].listener === listener)) {
8774 if (list.length ===
1) {
8776 delete this._events[type];
8778 list.splice(position,
1);
8781 if (this._events.removeListener)
8782 this.emit('removeListener', type, listener);
8788 EventEmitter.prototype.removeAllListeners = function(type) {
8794 // not listening for removeListener, no need to emit
8795 if (!this._events.removeListener) {
8796 if (arguments.length ===
0)
8798 else if (this._events[type])
8799 delete this._events[type];
8803 // emit removeListener for all listeners on all events
8804 if (arguments.length ===
0) {
8805 for (key in this._events) {
8806 if (key === 'removeListener') continue;
8807 this.removeAllListeners(key);
8809 this.removeAllListeners('removeListener');
8814 listeners = this._events[type];
8816 if (isFunction(listeners)) {
8817 this.removeListener(type, listeners);
8820 while (listeners.length)
8821 this.removeListener(type, listeners[listeners.length -
1]);
8823 delete this._events[type];
8828 EventEmitter.prototype.listeners = function(type) {
8830 if (!this._events || !this._events[type])
8832 else if (isFunction(this._events[type]))
8833 ret = [this._events[type]];
8835 ret = this._events[type].slice();
8839 EventEmitter.listenerCount = function(emitter, type) {
8841 if (!emitter._events || !emitter._events[type])
8843 else if (isFunction(emitter._events[type]))
8846 ret = emitter._events[type].length;
8850 function isFunction(arg) {
8851 return typeof arg === 'function';
8854 function isNumber(arg) {
8855 return typeof arg === 'number';
8858 function isObject(arg) {
8859 return typeof arg === 'object' && arg !== null;
8862 function isUndefined(arg) {
8863 return arg === void
0;
8866 },{}],
12:[function(require,module,exports){
8867 if (typeof Object.create === 'function') {
8868 // implementation from standard node.js 'util' module
8869 module.exports = function inherits(ctor, superCtor) {
8870 ctor.super_ = superCtor
8871 ctor.prototype = Object.create(superCtor.prototype, {
8881 // old school shim for old browsers
8882 module.exports = function inherits(ctor, superCtor) {
8883 ctor.super_ = superCtor
8884 var TempCtor = function () {}
8885 TempCtor.prototype = superCtor.prototype
8886 ctor.prototype = new TempCtor()
8887 ctor.prototype.constructor = ctor
8891 },{}],
13:[function(require,module,exports){
8892 module.exports = Array.isArray || function (arr) {
8893 return Object.prototype.toString.call(arr) == '[object Array]';
8896 },{}],
14:[function(require,module,exports){
8897 // shim for using process in browser
8899 var process = module.exports = {};
8901 var draining = false;
8903 var queueIndex = -
1;
8905 function cleanUpNextTick() {
8907 if (currentQueue.length) {
8908 queue = currentQueue.concat(queue);
8917 function drainQueue() {
8921 var timeout = setTimeout(cleanUpNextTick);
8924 var len = queue.length;
8926 currentQueue = queue;
8928 while (++queueIndex < len) {
8929 currentQueue[queueIndex].run();
8934 currentQueue = null;
8936 clearTimeout(timeout);
8939 process.nextTick = function (fun) {
8940 var args = new Array(arguments.length -
1);
8941 if (arguments.length
> 1) {
8942 for (var i =
1; i < arguments.length; i++) {
8943 args[i -
1] = arguments[i];
8946 queue.push(new Item(fun, args));
8947 if (queue.length ===
1 && !draining) {
8948 setTimeout(drainQueue,
0);
8952 // v8 likes predictible objects
8953 function Item(fun, array) {
8957 Item.prototype.run = function () {
8958 this.fun.apply(null, this.array);
8960 process.title = 'browser';
8961 process.browser = true;
8964 process.version = ''; // empty string to avoid regexp issues
8965 process.versions = {};
8970 process.addListener = noop;
8971 process.once = noop;
8973 process.removeListener = noop;
8974 process.removeAllListeners = noop;
8975 process.emit = noop;
8977 process.binding = function (name) {
8978 throw new Error('process.binding is not supported');
8982 process.cwd = function () { return '/' };
8983 process.chdir = function (dir) {
8984 throw new Error('process.chdir is not supported');
8986 process.umask = function() { return
0; };
8988 },{}],
15:[function(require,module,exports){
8989 module.exports = require(
"./lib/_stream_duplex.js")
8991 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
8992 (function (process){
8993 // Copyright Joyent, Inc. and other Node contributors.
8995 // Permission is hereby granted, free of charge, to any person obtaining a
8996 // copy of this software and associated documentation files (the
8997 //
"Software"), to deal in the Software without restriction, including
8998 // without limitation the rights to use, copy, modify, merge, publish,
8999 // distribute, sublicense, and/or sell copies of the Software, and to permit
9000 // persons to whom the Software is furnished to do so, subject to the
9001 // following conditions:
9003 // The above copyright notice and this permission notice shall be included
9004 // in all copies or substantial portions of the Software.
9006 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9007 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9008 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9009 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9010 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9011 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9012 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9014 // a duplex stream is just a stream that is both readable and writable.
9015 // Since JS doesn't have multiple prototypal inheritance, this class
9016 // prototypally inherits from Readable, and then parasitically from
9019 module.exports = Duplex;
9022 var objectKeys = Object.keys || function (obj) {
9024 for (var key in obj) keys.push(key);
9031 var util = require('core-util-is');
9032 util.inherits = require('inherits');
9035 var Readable = require('./_stream_readable');
9036 var Writable = require('./_stream_writable');
9038 util.inherits(Duplex, Readable);
9040 forEach(objectKeys(Writable.prototype), function(method) {
9041 if (!Duplex.prototype[method])
9042 Duplex.prototype[method] = Writable.prototype[method];
9045 function Duplex(options) {
9046 if (!(this instanceof Duplex))
9047 return new Duplex(options);
9049 Readable.call(this, options);
9050 Writable.call(this, options);
9052 if (options && options.readable === false)
9053 this.readable = false;
9055 if (options && options.writable === false)
9056 this.writable = false;
9058 this.allowHalfOpen = true;
9059 if (options && options.allowHalfOpen === false)
9060 this.allowHalfOpen = false;
9062 this.once('end', onend);
9065 // the no-half-open enforcer
9067 // if we allow half-open state, or if the writable side ended,
9069 if (this.allowHalfOpen || this._writableState.ended)
9072 // no more data can be written.
9073 // But allow more writes to happen in this tick.
9074 process.nextTick(this.end.bind(this));
9077 function forEach (xs, f) {
9078 for (var i =
0, l = xs.length; i < l; i++) {
9083 }).call(this,require('_process'))
9084 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
9085 // Copyright Joyent, Inc. and other Node contributors.
9087 // Permission is hereby granted, free of charge, to any person obtaining a
9088 // copy of this software and associated documentation files (the
9089 // "Software"), to deal in the Software without restriction, including
9090 // without limitation the rights to use, copy, modify, merge, publish,
9091 // distribute, sublicense, and/or sell copies of the Software, and to permit
9092 // persons to whom the Software is furnished to do so, subject to the
9093 // following conditions:
9095 // The above copyright notice and this permission notice shall be included
9096 // in all copies or substantial portions of the Software.
9098 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9099 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9100 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9101 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9102 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9103 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9104 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9106 // a passthrough stream.
9107 // basically just the most minimal sort of Transform stream.
9108 // Every written chunk gets output as-is.
9110 module.exports = PassThrough;
9112 var Transform = require('./_stream_transform');
9115 var util = require('core-util-is');
9116 util.inherits = require('inherits');
9119 util.inherits(PassThrough, Transform);
9121 function PassThrough(options) {
9122 if (!(this instanceof PassThrough))
9123 return new PassThrough(options);
9125 Transform.call(this, options);
9128 PassThrough.prototype._transform = function(chunk, encoding, cb) {
9132 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
9133 (function (process){
9134 // Copyright Joyent, Inc. and other Node contributors.
9136 // Permission is hereby granted, free of charge, to any person obtaining a
9137 // copy of this software and associated documentation files (the
9138 // "Software"), to deal in the Software without restriction, including
9139 // without limitation the rights to use, copy, modify, merge, publish,
9140 // distribute, sublicense, and/or sell copies of the Software, and to permit
9141 // persons to whom the Software is furnished to do so, subject to the
9142 // following conditions:
9144 // The above copyright notice and this permission notice shall be included
9145 // in all copies or substantial portions of the Software.
9147 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9148 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9149 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9150 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9151 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9152 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9153 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9155 module.exports = Readable;
9158 var isArray = require('isarray');
9163 var Buffer = require('buffer').Buffer;
9166 Readable.ReadableState = ReadableState;
9168 var EE = require('events').EventEmitter;
9171 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
9172 return emitter.listeners(type).length;
9176 var Stream = require('stream');
9179 var util = require('core-util-is');
9180 util.inherits = require('inherits');
9187 var debug = require('util');
9188 if (debug && debug.debuglog) {
9189 debug = debug.debuglog('stream');
9191 debug = function () {};
9196 util.inherits(Readable, Stream);
9198 function ReadableState(options, stream) {
9199 var Duplex = require('./_stream_duplex');
9201 options = options || {};
9203 // the point at which it stops calling _read() to fill the buffer
9204 // Note:
0 is a valid value, means "don't call _read preemptively ever"
9205 var hwm = options.highWaterMark;
9206 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
9207 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
9210 this.highWaterMark = ~~this.highWaterMark;
9215 this.pipesCount =
0;
9216 this.flowing = null;
9218 this.endEmitted = false;
9219 this.reading = false;
9221 // a flag to be able to tell if the onwrite cb is called immediately,
9222 // or on a later tick. We set this to true at first, because any
9223 // actions that shouldn't happen until "later" should generally also
9224 // not happen before the first write call.
9227 // whenever we return null, then we set a flag to say
9228 // that we're awaiting a 'readable' event emission.
9229 this.needReadable = false;
9230 this.emittedReadable = false;
9231 this.readableListening = false;
9234 // object stream flag. Used to make read(n) ignore n and to
9235 // make all the buffer merging and length checks go away
9236 this.objectMode = !!options.objectMode;
9238 if (stream instanceof Duplex)
9239 this.objectMode = this.objectMode || !!options.readableObjectMode;
9241 // Crypto is kind of old and crusty. Historically, its default string
9242 // encoding is 'binary' so we have to make this configurable.
9243 // Everything else in the universe uses 'utf8', though.
9244 this.defaultEncoding = options.defaultEncoding || 'utf8';
9246 // when piping, we only care about 'readable' events that happen
9247 // after read()ing all the bytes and not getting any pushback.
9248 this.ranOut = false;
9250 // the number of writers that are awaiting a drain event in .pipe()s
9251 this.awaitDrain =
0;
9253 // if true, a maybeReadMore has been scheduled
9254 this.readingMore = false;
9256 this.decoder = null;
9257 this.encoding = null;
9258 if (options.encoding) {
9260 StringDecoder = require('string_decoder/').StringDecoder;
9261 this.decoder = new StringDecoder(options.encoding);
9262 this.encoding = options.encoding;
9266 function Readable(options) {
9267 var Duplex = require('./_stream_duplex');
9269 if (!(this instanceof Readable))
9270 return new Readable(options);
9272 this._readableState = new ReadableState(options, this);
9275 this.readable = true;
9280 // Manually shove something into the read() buffer.
9281 // This returns true if the highWaterMark has not been hit yet,
9282 // similar to how Writable.write() returns true if you should
9283 // write() some more.
9284 Readable.prototype.push = function(chunk, encoding) {
9285 var state = this._readableState;
9287 if (util.isString(chunk) && !state.objectMode) {
9288 encoding = encoding || state.defaultEncoding;
9289 if (encoding !== state.encoding) {
9290 chunk = new Buffer(chunk, encoding);
9295 return readableAddChunk(this, state, chunk, encoding, false);
9298 // Unshift should *always* be something directly out of read()
9299 Readable.prototype.unshift = function(chunk) {
9300 var state = this._readableState;
9301 return readableAddChunk(this, state, chunk, '', true);
9304 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
9305 var er = chunkInvalid(state, chunk);
9307 stream.emit('error', er);
9308 } else if (util.isNullOrUndefined(chunk)) {
9309 state.reading = false;
9311 onEofChunk(stream, state);
9312 } else if (state.objectMode || chunk && chunk.length
> 0) {
9313 if (state.ended && !addToFront) {
9314 var e = new Error('stream.push() after EOF');
9315 stream.emit('error', e);
9316 } else if (state.endEmitted && addToFront) {
9317 var e = new Error('stream.unshift() after end event');
9318 stream.emit('error', e);
9320 if (state.decoder && !addToFront && !encoding)
9321 chunk = state.decoder.write(chunk);
9324 state.reading = false;
9326 // if we want the data now, just emit it.
9327 if (state.flowing && state.length ===
0 && !state.sync) {
9328 stream.emit('data', chunk);
9331 // update the buffer info.
9332 state.length += state.objectMode ?
1 : chunk.length;
9334 state.buffer.unshift(chunk);
9336 state.buffer.push(chunk);
9338 if (state.needReadable)
9339 emitReadable(stream);
9342 maybeReadMore(stream, state);
9344 } else if (!addToFront) {
9345 state.reading = false;
9348 return needMoreData(state);
9353 // if it's past the high water mark, we can push in some more.
9354 // Also, if we have no data yet, we can stand some
9355 // more bytes. This is to work around cases where hwm=
0,
9356 // such as the repl. Also, if the push() triggered a
9357 // readable event, and the user called read(largeNumber) such that
9358 // needReadable was set, then we ought to push more, so that another
9359 // 'readable' event will be triggered.
9360 function needMoreData(state) {
9361 return !state.ended &&
9362 (state.needReadable ||
9363 state.length < state.highWaterMark ||
9364 state.length ===
0);
9367 // backwards compatibility.
9368 Readable.prototype.setEncoding = function(enc) {
9370 StringDecoder = require('string_decoder/').StringDecoder;
9371 this._readableState.decoder = new StringDecoder(enc);
9372 this._readableState.encoding = enc;
9376 // Don't raise the hwm
> 128MB
9377 var MAX_HWM =
0x800000;
9378 function roundUpToNextPowerOf2(n) {
9382 // Get the next highest power of
2
9384 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
9390 function howMuchToRead(n, state) {
9391 if (state.length ===
0 && state.ended)
9394 if (state.objectMode)
9395 return n ===
0 ?
0 :
1;
9397 if (isNaN(n) || util.isNull(n)) {
9398 // only flow one buffer at a time
9399 if (state.flowing && state.buffer.length)
9400 return state.buffer[
0].length;
9402 return state.length;
9408 // If we're asking for more than the target buffer level,
9409 // then raise the water mark. Bump up to the next highest
9410 // power of
2, to prevent increasing it excessively in tiny
9412 if (n
> state.highWaterMark)
9413 state.highWaterMark = roundUpToNextPowerOf2(n);
9415 // don't have that much. return null, unless we've ended.
9416 if (n
> state.length) {
9418 state.needReadable = true;
9421 return state.length;
9427 // you can override either this method, or the async _read(n) below.
9428 Readable.prototype.read = function(n) {
9430 var state = this._readableState;
9433 if (!util.isNumber(n) || n
> 0)
9434 state.emittedReadable = false;
9436 // if we're doing read(
0) to trigger a readable event, but we
9437 // already have a bunch of data in the buffer, then just trigger
9438 // the 'readable' event and move on.
9440 state.needReadable &&
9441 (state.length
>= state.highWaterMark || state.ended)) {
9442 debug('read: emitReadable', state.length, state.ended);
9443 if (state.length ===
0 && state.ended)
9450 n = howMuchToRead(n, state);
9452 // if we've ended, and we're now clear, then finish it up.
9453 if (n ===
0 && state.ended) {
9454 if (state.length ===
0)
9459 // All the actual chunk generation logic needs to be
9460 // *below* the call to _read. The reason is that in certain
9461 // synthetic stream cases, such as passthrough streams, _read
9462 // may be a completely synchronous operation which may change
9463 // the state of the read buffer, providing enough data when
9464 // before there was *not* enough.
9466 // So, the steps are:
9467 //
1. Figure out what the state of things will be after we do
9468 // a read from the buffer.
9470 //
2. If that resulting state will trigger a _read, then call _read.
9471 // Note that this may be asynchronous, or synchronous. Yes, it is
9472 // deeply ugly to write APIs this way, but that still doesn't mean
9473 // that the Readable class should behave improperly, as streams are
9474 // designed to be sync/async agnostic.
9475 // Take note if the _read call is sync or async (ie, if the read call
9476 // has returned yet), so that we know whether or not it's safe to emit
9479 //
3. Actually pull the requested chunks out of the buffer and return.
9481 // if we need a readable event, then we need to do some reading.
9482 var doRead = state.needReadable;
9483 debug('need readable', doRead);
9485 // if we currently have less than the highWaterMark, then also read some
9486 if (state.length ===
0 || state.length - n < state.highWaterMark) {
9488 debug('length less than watermark', doRead);
9491 // however, if we've ended, then there's no point, and if we're already
9492 // reading, then it's unnecessary.
9493 if (state.ended || state.reading) {
9495 debug('reading or ended', doRead);
9500 state.reading = true;
9502 // if the length is currently zero, then we *need* a readable event.
9503 if (state.length ===
0)
9504 state.needReadable = true;
9505 // call internal read method
9506 this._read(state.highWaterMark);
9510 // If _read pushed data synchronously, then `reading` will be false,
9511 // and we need to re-evaluate how much data we can return to the user.
9512 if (doRead && !state.reading)
9513 n = howMuchToRead(nOrig, state);
9517 ret = fromList(n, state);
9521 if (util.isNull(ret)) {
9522 state.needReadable = true;
9528 // If we have nothing in the buffer, then we want to know
9529 // as soon as we *do* get something into the buffer.
9530 if (state.length ===
0 && !state.ended)
9531 state.needReadable = true;
9533 // If we tried to read() past the EOF, then emit end on the next tick.
9534 if (nOrig !== n && state.ended && state.length ===
0)
9537 if (!util.isNull(ret))
9538 this.emit('data', ret);
9543 function chunkInvalid(state, chunk) {
9545 if (!util.isBuffer(chunk) &&
9546 !util.isString(chunk) &&
9547 !util.isNullOrUndefined(chunk) &&
9548 !state.objectMode) {
9549 er = new TypeError('Invalid non-string/buffer chunk');
9555 function onEofChunk(stream, state) {
9556 if (state.decoder && !state.ended) {
9557 var chunk = state.decoder.end();
9558 if (chunk && chunk.length) {
9559 state.buffer.push(chunk);
9560 state.length += state.objectMode ?
1 : chunk.length;
9565 // emit 'readable' now to make sure it gets picked up.
9566 emitReadable(stream);
9569 // Don't emit readable right away in sync mode, because this can trigger
9570 // another read() call =
> stack overflow. This way, it might trigger
9571 // a nextTick recursion warning, but that's not so bad.
9572 function emitReadable(stream) {
9573 var state = stream._readableState;
9574 state.needReadable = false;
9575 if (!state.emittedReadable) {
9576 debug('emitReadable', state.flowing);
9577 state.emittedReadable = true;
9579 process.nextTick(function() {
9580 emitReadable_(stream);
9583 emitReadable_(stream);
9587 function emitReadable_(stream) {
9588 debug('emit readable');
9589 stream.emit('readable');
9594 // at this point, the user has presumably seen the 'readable' event,
9595 // and called read() to consume some data. that may have triggered
9596 // in turn another _read(n) call, in which case reading = true if
9597 // it's in progress.
9598 // However, if we're not ended, or reading, and the length < hwm,
9599 // then go ahead and try to read some more preemptively.
9600 function maybeReadMore(stream, state) {
9601 if (!state.readingMore) {
9602 state.readingMore = true;
9603 process.nextTick(function() {
9604 maybeReadMore_(stream, state);
9609 function maybeReadMore_(stream, state) {
9610 var len = state.length;
9611 while (!state.reading && !state.flowing && !state.ended &&
9612 state.length < state.highWaterMark) {
9613 debug('maybeReadMore read
0');
9615 if (len === state.length)
9616 // didn't get any data, stop spinning.
9621 state.readingMore = false;
9624 // abstract method. to be overridden in specific implementation classes.
9625 // call cb(er, data) where data is <= n in length.
9626 // for virtual (non-string, non-buffer) streams, "length" is somewhat
9627 // arbitrary, and perhaps not very meaningful.
9628 Readable.prototype._read = function(n) {
9629 this.emit('error', new Error('not implemented'));
9632 Readable.prototype.pipe = function(dest, pipeOpts) {
9634 var state = this._readableState;
9636 switch (state.pipesCount) {
9641 state.pipes = [state.pipes, dest];
9644 state.pipes.push(dest);
9647 state.pipesCount +=
1;
9648 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
9650 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
9651 dest !== process.stdout &&
9652 dest !== process.stderr;
9654 var endFn = doEnd ? onend : cleanup;
9655 if (state.endEmitted)
9656 process.nextTick(endFn);
9658 src.once('end', endFn);
9660 dest.on('unpipe', onunpipe);
9661 function onunpipe(readable) {
9663 if (readable === src) {
9673 // when the dest drains, it reduces the awaitDrain counter
9674 // on the source. This would be more elegant with a .once()
9675 // handler in flow(), but adding and removing repeatedly is
9677 var ondrain = pipeOnDrain(src);
9678 dest.on('drain', ondrain);
9680 function cleanup() {
9682 // cleanup event handlers once the pipe is broken
9683 dest.removeListener('close', onclose);
9684 dest.removeListener('finish', onfinish);
9685 dest.removeListener('drain', ondrain);
9686 dest.removeListener('error', onerror);
9687 dest.removeListener('unpipe', onunpipe);
9688 src.removeListener('end', onend);
9689 src.removeListener('end', cleanup);
9690 src.removeListener('data', ondata);
9692 // if the reader is waiting for a drain event from this
9693 // specific writer, then it would cause it to never start
9695 // So, if this is awaiting a drain, then we just call it now.
9696 // If we don't know, then assume that we are waiting for one.
9697 if (state.awaitDrain &&
9698 (!dest._writableState || dest._writableState.needDrain))
9702 src.on('data', ondata);
9703 function ondata(chunk) {
9705 var ret = dest.write(chunk);
9706 if (false === ret) {
9707 debug('false write response, pause',
9708 src._readableState.awaitDrain);
9709 src._readableState.awaitDrain++;
9714 // if the dest has an error, then stop piping into it.
9715 // however, don't suppress the throwing behavior for this.
9716 function onerror(er) {
9717 debug('onerror', er);
9719 dest.removeListener('error', onerror);
9720 if (EE.listenerCount(dest, 'error') ===
0)
9721 dest.emit('error', er);
9723 // This is a brutally ugly hack to make sure that our error handler
9724 // is attached before any userland ones. NEVER DO THIS.
9725 if (!dest._events || !dest._events.error)
9726 dest.on('error', onerror);
9727 else if (isArray(dest._events.error))
9728 dest._events.error.unshift(onerror);
9730 dest._events.error = [onerror, dest._events.error];
9734 // Both close and finish should trigger unpipe, but only once.
9735 function onclose() {
9736 dest.removeListener('finish', onfinish);
9739 dest.once('close', onclose);
9740 function onfinish() {
9742 dest.removeListener('close', onclose);
9745 dest.once('finish', onfinish);
9752 // tell the dest that it's being piped to
9753 dest.emit('pipe', src);
9755 // start the flow if it hasn't been started already.
9756 if (!state.flowing) {
9757 debug('pipe resume');
9764 function pipeOnDrain(src) {
9766 var state = src._readableState;
9767 debug('pipeOnDrain', state.awaitDrain);
9768 if (state.awaitDrain)
9770 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
9771 state.flowing = true;
9778 Readable.prototype.unpipe = function(dest) {
9779 var state = this._readableState;
9781 // if we're not piping anywhere, then do nothing.
9782 if (state.pipesCount ===
0)
9785 // just one destination. most common case.
9786 if (state.pipesCount ===
1) {
9787 // passed in one, but it's not the right one.
9788 if (dest && dest !== state.pipes)
9796 state.pipesCount =
0;
9797 state.flowing = false;
9799 dest.emit('unpipe', this);
9803 // slow case. multiple pipe destinations.
9807 var dests = state.pipes;
9808 var len = state.pipesCount;
9810 state.pipesCount =
0;
9811 state.flowing = false;
9813 for (var i =
0; i < len; i++)
9814 dests[i].emit('unpipe', this);
9818 // try to find the right one.
9819 var i = indexOf(state.pipes, dest);
9823 state.pipes.splice(i,
1);
9824 state.pipesCount -=
1;
9825 if (state.pipesCount ===
1)
9826 state.pipes = state.pipes[
0];
9828 dest.emit('unpipe', this);
9833 // set up data events if they are asked for
9834 // Ensure readable listeners eventually get something
9835 Readable.prototype.on = function(ev, fn) {
9836 var res = Stream.prototype.on.call(this, ev, fn);
9838 // If listening to data, and it has not explicitly been paused,
9839 // then call resume to start the flow of data on the next tick.
9840 if (ev === 'data' && false !== this._readableState.flowing) {
9844 if (ev === 'readable' && this.readable) {
9845 var state = this._readableState;
9846 if (!state.readableListening) {
9847 state.readableListening = true;
9848 state.emittedReadable = false;
9849 state.needReadable = true;
9850 if (!state.reading) {
9852 process.nextTick(function() {
9853 debug('readable nexttick read
0');
9856 } else if (state.length) {
9857 emitReadable(this, state);
9864 Readable.prototype.addListener = Readable.prototype.on;
9866 // pause() and resume() are remnants of the legacy readable stream API
9867 // If the user uses them, then switch into old mode.
9868 Readable.prototype.resume = function() {
9869 var state = this._readableState;
9870 if (!state.flowing) {
9872 state.flowing = true;
9873 if (!state.reading) {
9874 debug('resume read
0');
9877 resume(this, state);
9882 function resume(stream, state) {
9883 if (!state.resumeScheduled) {
9884 state.resumeScheduled = true;
9885 process.nextTick(function() {
9886 resume_(stream, state);
9891 function resume_(stream, state) {
9892 state.resumeScheduled = false;
9893 stream.emit('resume');
9895 if (state.flowing && !state.reading)
9899 Readable.prototype.pause = function() {
9900 debug('call pause flowing=%j', this._readableState.flowing);
9901 if (false !== this._readableState.flowing) {
9903 this._readableState.flowing = false;
9909 function flow(stream) {
9910 var state = stream._readableState;
9911 debug('flow', state.flowing);
9912 if (state.flowing) {
9914 var chunk = stream.read();
9915 } while (null !== chunk && state.flowing);
9919 // wrap an old-style stream as the async data source.
9920 // This is *not* part of the readable stream interface.
9921 // It is an ugly unfortunate mess of history.
9922 Readable.prototype.wrap = function(stream) {
9923 var state = this._readableState;
9927 stream.on('end', function() {
9928 debug('wrapped end');
9929 if (state.decoder && !state.ended) {
9930 var chunk = state.decoder.end();
9931 if (chunk && chunk.length)
9938 stream.on('data', function(chunk) {
9939 debug('wrapped data');
9941 chunk = state.decoder.write(chunk);
9942 if (!chunk || !state.objectMode && !chunk.length)
9945 var ret = self.push(chunk);
9952 // proxy all the other methods.
9953 // important when wrapping filters and duplexes.
9954 for (var i in stream) {
9955 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
9956 this[i] = function(method) { return function() {
9957 return stream[method].apply(stream, arguments);
9962 // proxy certain important events.
9963 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
9964 forEach(events, function(ev) {
9965 stream.on(ev, self.emit.bind(self, ev));
9968 // when we try to consume some more bytes, simply unpause the
9969 // underlying stream.
9970 self._read = function(n) {
9971 debug('wrapped _read', n);
9983 // exposed for testing purposes only.
9984 Readable._fromList = fromList;
9986 // Pluck off n bytes from an array of buffers.
9987 // Length is the combined lengths of all the buffers in the list.
9988 function fromList(n, state) {
9989 var list = state.buffer;
9990 var length = state.length;
9991 var stringMode = !!state.decoder;
9992 var objectMode = !!state.objectMode;
9995 // nothing in the list, definitely empty.
9996 if (list.length ===
0)
10001 else if (objectMode)
10002 ret = list.shift();
10003 else if (!n || n
>= length) {
10004 // read it all, truncate the array.
10006 ret = list.join('');
10008 ret = Buffer.concat(list, length);
10011 // read just some of it.
10012 if (n < list[
0].length) {
10013 // just take a part of the first list item.
10014 // slice is the same for buffers and strings.
10016 ret = buf.slice(
0, n);
10017 list[
0] = buf.slice(n);
10018 } else if (n === list[
0].length) {
10019 // first list is a perfect match
10020 ret = list.shift();
10023 // we have enough to cover it, but it spans past the first buffer.
10027 ret = new Buffer(n);
10030 for (var i =
0, l = list.length; i < l && c < n; i++) {
10032 var cpy = Math.min(n - c, buf.length);
10035 ret += buf.slice(
0, cpy);
10037 buf.copy(ret, c,
0, cpy);
10039 if (cpy < buf.length)
10040 list[
0] = buf.slice(cpy);
10052 function endReadable(stream) {
10053 var state = stream._readableState;
10055 // If we get here before consuming all the bytes, then that is a
10056 // bug in node. Should never happen.
10057 if (state.length
> 0)
10058 throw new Error('endReadable called on non-empty stream');
10060 if (!state.endEmitted) {
10061 state.ended = true;
10062 process.nextTick(function() {
10063 // Check that we didn't get one last unshift.
10064 if (!state.endEmitted && state.length ===
0) {
10065 state.endEmitted = true;
10066 stream.readable = false;
10067 stream.emit('end');
10073 function forEach (xs, f) {
10074 for (var i =
0, l = xs.length; i < l; i++) {
10079 function indexOf (xs, x) {
10080 for (var i =
0, l = xs.length; i < l; i++) {
10081 if (xs[i] === x) return i;
10086 }).call(this,require('_process'))
10087 },{
"./_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){
10088 // Copyright Joyent, Inc. and other Node contributors.
10090 // Permission is hereby granted, free of charge, to any person obtaining a
10091 // copy of this software and associated documentation files (the
10092 //
"Software"), to deal in the Software without restriction, including
10093 // without limitation the rights to use, copy, modify, merge, publish,
10094 // distribute, sublicense, and/or sell copies of the Software, and to permit
10095 // persons to whom the Software is furnished to do so, subject to the
10096 // following conditions:
10098 // The above copyright notice and this permission notice shall be included
10099 // in all copies or substantial portions of the Software.
10101 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10102 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10103 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10104 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10105 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10106 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10107 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10110 // a transform stream is a readable/writable stream where you do
10111 // something with the data. Sometimes it's called a
"filter",
10112 // but that's not a great name for it, since that implies a thing where
10113 // some bits pass through, and others are simply ignored. (That would
10114 // be a valid example of a transform, of course.)
10116 // While the output is causally related to the input, it's not a
10117 // necessarily symmetric or synchronous transformation. For example,
10118 // a zlib stream might take multiple plain-text writes(), and then
10119 // emit a single compressed chunk some time in the future.
10121 // Here's how this works:
10123 // The Transform stream has all the aspects of the readable and writable
10124 // stream classes. When you write(chunk), that calls _write(chunk,cb)
10125 // internally, and returns false if there's a lot of pending writes
10126 // buffered up. When you call read(), that calls _read(n) until
10127 // there's enough pending readable data buffered up.
10129 // In a transform stream, the written data is placed in a buffer. When
10130 // _read(n) is called, it transforms the queued up data, calling the
10131 // buffered _write cb's as it consumes chunks. If consuming a single
10132 // written chunk would result in multiple output chunks, then the first
10133 // outputted bit calls the readcb, and subsequent chunks just go into
10134 // the read buffer, and will cause it to emit 'readable' if necessary.
10136 // This way, back-pressure is actually determined by the reading side,
10137 // since _read has to be called to start processing a new chunk. However,
10138 // a pathological inflate type of transform can cause excessive buffering
10139 // here. For example, imagine a stream where every byte of input is
10140 // interpreted as an integer from
0-
255, and then results in that many
10141 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
10142 //
1kb of data being output. In this case, you could write a very small
10143 // amount of input, and end up with a very large amount of output. In
10144 // such a pathological inflating mechanism, there'd be no way to tell
10145 // the system to stop doing the transform. A single
4MB write could
10146 // cause the system to run out of memory.
10148 // However, even in such a pathological case, only a single written chunk
10149 // would be consumed, and then the rest would wait (un-transformed) until
10150 // the results of the previous transformed chunk were consumed.
10152 module.exports = Transform;
10154 var Duplex = require('./_stream_duplex');
10157 var util = require('core-util-is');
10158 util.inherits = require('inherits');
10161 util.inherits(Transform, Duplex);
10164 function TransformState(options, stream) {
10165 this.afterTransform = function(er, data) {
10166 return afterTransform(stream, er, data);
10169 this.needTransform = false;
10170 this.transforming = false;
10171 this.writecb = null;
10172 this.writechunk = null;
10175 function afterTransform(stream, er, data) {
10176 var ts = stream._transformState;
10177 ts.transforming = false;
10179 var cb = ts.writecb;
10182 return stream.emit('error', new Error('no writecb in Transform class'));
10184 ts.writechunk = null;
10187 if (!util.isNullOrUndefined(data))
10193 var rs = stream._readableState;
10194 rs.reading = false;
10195 if (rs.needReadable || rs.length < rs.highWaterMark) {
10196 stream._read(rs.highWaterMark);
10201 function Transform(options) {
10202 if (!(this instanceof Transform))
10203 return new Transform(options);
10205 Duplex.call(this, options);
10207 this._transformState = new TransformState(options, this);
10209 // when the writable side finishes, then flush out anything remaining.
10212 // start out asking for a readable event once data is transformed.
10213 this._readableState.needReadable = true;
10215 // we have implemented the _read method, and done the other things
10216 // that Readable wants before the first _read call, so unset the
10217 // sync guard flag.
10218 this._readableState.sync = false;
10220 this.once('prefinish', function() {
10221 if (util.isFunction(this._flush))
10222 this._flush(function(er) {
10230 Transform.prototype.push = function(chunk, encoding) {
10231 this._transformState.needTransform = false;
10232 return Duplex.prototype.push.call(this, chunk, encoding);
10235 // This is the part where you do stuff!
10236 // override this function in implementation classes.
10237 // 'chunk' is an input chunk.
10239 // Call `push(newChunk)` to pass along transformed output
10240 // to the readable side. You may call 'push' zero or more times.
10242 // Call `cb(err)` when you are done with this chunk. If you pass
10243 // an error, then that'll put the hurt on the whole operation. If you
10244 // never call cb(), then you'll never get another chunk.
10245 Transform.prototype._transform = function(chunk, encoding, cb) {
10246 throw new Error('not implemented');
10249 Transform.prototype._write = function(chunk, encoding, cb) {
10250 var ts = this._transformState;
10252 ts.writechunk = chunk;
10253 ts.writeencoding = encoding;
10254 if (!ts.transforming) {
10255 var rs = this._readableState;
10256 if (ts.needTransform ||
10258 rs.length < rs.highWaterMark)
10259 this._read(rs.highWaterMark);
10263 // Doesn't matter what the args are here.
10264 // _transform does all the work.
10265 // That we got here means that the readable side wants more data.
10266 Transform.prototype._read = function(n) {
10267 var ts = this._transformState;
10269 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
10270 ts.transforming = true;
10271 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
10273 // mark that we need a transform, so that any data that comes in
10274 // will get processed, now that we've asked for it.
10275 ts.needTransform = true;
10280 function done(stream, er) {
10282 return stream.emit('error', er);
10284 // if there's nothing in the write buffer, then that means
10285 // that nothing more will ever be provided
10286 var ws = stream._writableState;
10287 var ts = stream._transformState;
10290 throw new Error('calling transform done when ws.length !=
0');
10292 if (ts.transforming)
10293 throw new Error('calling transform done when still transforming');
10295 return stream.push(null);
10298 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
10299 (function (process){
10300 // Copyright Joyent, Inc. and other Node contributors.
10302 // Permission is hereby granted, free of charge, to any person obtaining a
10303 // copy of this software and associated documentation files (the
10304 // "Software"), to deal in the Software without restriction, including
10305 // without limitation the rights to use, copy, modify, merge, publish,
10306 // distribute, sublicense, and/or sell copies of the Software, and to permit
10307 // persons to whom the Software is furnished to do so, subject to the
10308 // following conditions:
10310 // The above copyright notice and this permission notice shall be included
10311 // in all copies or substantial portions of the Software.
10313 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10314 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10315 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10316 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10317 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10318 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10319 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10321 // A bit simpler than readable streams.
10322 // Implement an async ._write(chunk, cb), and it'll handle all
10323 // the drain event emission and buffering.
10325 module.exports = Writable;
10328 var Buffer = require('buffer').Buffer;
10331 Writable.WritableState = WritableState;
10335 var util = require('core-util-is');
10336 util.inherits = require('inherits');
10339 var Stream = require('stream');
10341 util.inherits(Writable, Stream);
10343 function WriteReq(chunk, encoding, cb) {
10344 this.chunk = chunk;
10345 this.encoding = encoding;
10346 this.callback = cb;
10349 function WritableState(options, stream) {
10350 var Duplex = require('./_stream_duplex');
10352 options = options || {};
10354 // the point at which write() starts returning false
10355 // Note:
0 is a valid value, means that we always return false if
10356 // the entire buffer is not flushed immediately on write()
10357 var hwm = options.highWaterMark;
10358 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
10359 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
10361 // object stream flag to indicate whether or not this stream
10362 // contains buffers or objects.
10363 this.objectMode = !!options.objectMode;
10365 if (stream instanceof Duplex)
10366 this.objectMode = this.objectMode || !!options.writableObjectMode;
10369 this.highWaterMark = ~~this.highWaterMark;
10371 this.needDrain = false;
10372 // at the start of calling end()
10373 this.ending = false;
10374 // when end() has been called, and returned
10375 this.ended = false;
10376 // when 'finish' is emitted
10377 this.finished = false;
10379 // should we decode strings into buffers before passing to _write?
10380 // this is here so that some node-core streams can optimize string
10381 // handling at a lower level.
10382 var noDecode = options.decodeStrings === false;
10383 this.decodeStrings = !noDecode;
10385 // Crypto is kind of old and crusty. Historically, its default string
10386 // encoding is 'binary' so we have to make this configurable.
10387 // Everything else in the universe uses 'utf8', though.
10388 this.defaultEncoding = options.defaultEncoding || 'utf8';
10390 // not an actual buffer we keep track of, but a measurement
10391 // of how much we're waiting to get pushed to some underlying
10395 // a flag to see when we're in the middle of a write.
10396 this.writing = false;
10398 // when true all writes will be buffered until .uncork() call
10401 // a flag to be able to tell if the onwrite cb is called immediately,
10402 // or on a later tick. We set this to true at first, because any
10403 // actions that shouldn't happen until "later" should generally also
10404 // not happen before the first write call.
10407 // a flag to know if we're processing previously buffered items, which
10408 // may call the _write() callback in the same tick, so that we don't
10409 // end up in an overlapped onwrite situation.
10410 this.bufferProcessing = false;
10412 // the callback that's passed to _write(chunk,cb)
10413 this.onwrite = function(er) {
10414 onwrite(stream, er);
10417 // the callback that the user supplies to write(chunk,encoding,cb)
10418 this.writecb = null;
10420 // the amount that is being written when _write is called.
10425 // number of pending user-supplied write callbacks
10426 // this must be
0 before 'finish' can be emitted
10427 this.pendingcb =
0;
10429 // emit prefinish if the only thing we're waiting for is _write cbs
10430 // This is relevant for synchronous Transform streams
10431 this.prefinished = false;
10433 // True if the error was already emitted and should not be thrown again
10434 this.errorEmitted = false;
10437 function Writable(options) {
10438 var Duplex = require('./_stream_duplex');
10440 // Writable ctor is applied to Duplexes, though they're not
10441 // instanceof Writable, they're instanceof Readable.
10442 if (!(this instanceof Writable) && !(this instanceof Duplex))
10443 return new Writable(options);
10445 this._writableState = new WritableState(options, this);
10448 this.writable = true;
10453 // Otherwise people can pipe Writable streams, which is just wrong.
10454 Writable.prototype.pipe = function() {
10455 this.emit('error', new Error('Cannot pipe. Not readable.'));
10459 function writeAfterEnd(stream, state, cb) {
10460 var er = new Error('write after end');
10461 // TODO: defer error events consistently everywhere, not just the cb
10462 stream.emit('error', er);
10463 process.nextTick(function() {
10468 // If we get something that is not a buffer, string, null, or undefined,
10469 // and we're not in objectMode, then that's an error.
10470 // Otherwise stream chunks are all considered to be of length=
1, and the
10471 // watermarks determine how many objects to keep in the buffer, rather than
10472 // how many bytes or characters.
10473 function validChunk(stream, state, chunk, cb) {
10475 if (!util.isBuffer(chunk) &&
10476 !util.isString(chunk) &&
10477 !util.isNullOrUndefined(chunk) &&
10478 !state.objectMode) {
10479 var er = new TypeError('Invalid non-string/buffer chunk');
10480 stream.emit('error', er);
10481 process.nextTick(function() {
10489 Writable.prototype.write = function(chunk, encoding, cb) {
10490 var state = this._writableState;
10493 if (util.isFunction(encoding)) {
10498 if (util.isBuffer(chunk))
10499 encoding = 'buffer';
10500 else if (!encoding)
10501 encoding = state.defaultEncoding;
10503 if (!util.isFunction(cb))
10504 cb = function() {};
10507 writeAfterEnd(this, state, cb);
10508 else if (validChunk(this, state, chunk, cb)) {
10510 ret = writeOrBuffer(this, state, chunk, encoding, cb);
10516 Writable.prototype.cork = function() {
10517 var state = this._writableState;
10522 Writable.prototype.uncork = function() {
10523 var state = this._writableState;
10525 if (state.corked) {
10528 if (!state.writing &&
10531 !state.bufferProcessing &&
10532 state.buffer.length)
10533 clearBuffer(this, state);
10537 function decodeChunk(state, chunk, encoding) {
10538 if (!state.objectMode &&
10539 state.decodeStrings !== false &&
10540 util.isString(chunk)) {
10541 chunk = new Buffer(chunk, encoding);
10546 // if we're already writing something, then just put this
10547 // in the queue, and wait our turn. Otherwise, call _write
10548 // If we return false, then we need a drain event, so set that flag.
10549 function writeOrBuffer(stream, state, chunk, encoding, cb) {
10550 chunk = decodeChunk(state, chunk, encoding);
10551 if (util.isBuffer(chunk))
10552 encoding = 'buffer';
10553 var len = state.objectMode ?
1 : chunk.length;
10555 state.length += len;
10557 var ret = state.length < state.highWaterMark;
10558 // we must ensure that previous needDrain will not be reset to false.
10560 state.needDrain = true;
10562 if (state.writing || state.corked)
10563 state.buffer.push(new WriteReq(chunk, encoding, cb));
10565 doWrite(stream, state, false, len, chunk, encoding, cb);
10570 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
10571 state.writelen = len;
10572 state.writecb = cb;
10573 state.writing = true;
10576 stream._writev(chunk, state.onwrite);
10578 stream._write(chunk, encoding, state.onwrite);
10579 state.sync = false;
10582 function onwriteError(stream, state, sync, er, cb) {
10584 process.nextTick(function() {
10593 stream._writableState.errorEmitted = true;
10594 stream.emit('error', er);
10597 function onwriteStateUpdate(state) {
10598 state.writing = false;
10599 state.writecb = null;
10600 state.length -= state.writelen;
10601 state.writelen =
0;
10604 function onwrite(stream, er) {
10605 var state = stream._writableState;
10606 var sync = state.sync;
10607 var cb = state.writecb;
10609 onwriteStateUpdate(state);
10612 onwriteError(stream, state, sync, er, cb);
10614 // Check if we're actually ready to finish, but don't emit yet
10615 var finished = needFinish(stream, state);
10619 !state.bufferProcessing &&
10620 state.buffer.length) {
10621 clearBuffer(stream, state);
10625 process.nextTick(function() {
10626 afterWrite(stream, state, finished, cb);
10629 afterWrite(stream, state, finished, cb);
10634 function afterWrite(stream, state, finished, cb) {
10636 onwriteDrain(stream, state);
10639 finishMaybe(stream, state);
10642 // Must force callback to be called on nextTick, so that we don't
10643 // emit 'drain' before the write() consumer gets the 'false' return
10644 // value, and has a chance to attach a 'drain' listener.
10645 function onwriteDrain(stream, state) {
10646 if (state.length ===
0 && state.needDrain) {
10647 state.needDrain = false;
10648 stream.emit('drain');
10653 // if there's something in the buffer waiting, then process it
10654 function clearBuffer(stream, state) {
10655 state.bufferProcessing = true;
10657 if (stream._writev && state.buffer.length
> 1) {
10658 // Fast case, write everything using _writev()
10660 for (var c =
0; c < state.buffer.length; c++)
10661 cbs.push(state.buffer[c].callback);
10663 // count the one we are adding, as well.
10664 // TODO(isaacs) clean this up
10666 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
10667 for (var i =
0; i < cbs.length; i++) {
10676 // Slow case, write chunks one-by-one
10677 for (var c =
0; c < state.buffer.length; c++) {
10678 var entry = state.buffer[c];
10679 var chunk = entry.chunk;
10680 var encoding = entry.encoding;
10681 var cb = entry.callback;
10682 var len = state.objectMode ?
1 : chunk.length;
10684 doWrite(stream, state, false, len, chunk, encoding, cb);
10686 // if we didn't call the onwrite immediately, then
10687 // it means that we need to wait until it does.
10688 // also, that means that the chunk and cb are currently
10689 // being processed, so move the buffer counter past them.
10690 if (state.writing) {
10696 if (c < state.buffer.length)
10697 state.buffer = state.buffer.slice(c);
10699 state.buffer.length =
0;
10702 state.bufferProcessing = false;
10705 Writable.prototype._write = function(chunk, encoding, cb) {
10706 cb(new Error('not implemented'));
10710 Writable.prototype._writev = null;
10712 Writable.prototype.end = function(chunk, encoding, cb) {
10713 var state = this._writableState;
10715 if (util.isFunction(chunk)) {
10719 } else if (util.isFunction(encoding)) {
10724 if (!util.isNullOrUndefined(chunk))
10725 this.write(chunk, encoding);
10727 // .end() fully uncorks
10728 if (state.corked) {
10733 // ignore unnecessary end() calls.
10734 if (!state.ending && !state.finished)
10735 endWritable(this, state, cb);
10739 function needFinish(stream, state) {
10740 return (state.ending &&
10741 state.length ===
0 &&
10746 function prefinish(stream, state) {
10747 if (!state.prefinished) {
10748 state.prefinished = true;
10749 stream.emit('prefinish');
10753 function finishMaybe(stream, state) {
10754 var need = needFinish(stream, state);
10756 if (state.pendingcb ===
0) {
10757 prefinish(stream, state);
10758 state.finished = true;
10759 stream.emit('finish');
10761 prefinish(stream, state);
10766 function endWritable(stream, state, cb) {
10767 state.ending = true;
10768 finishMaybe(stream, state);
10770 if (state.finished)
10771 process.nextTick(cb);
10773 stream.once('finish', cb);
10775 state.ended = true;
10778 }).call(this,require('_process'))
10779 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
10780 (function (Buffer){
10781 // Copyright Joyent, Inc. and other Node contributors.
10783 // Permission is hereby granted, free of charge, to any person obtaining a
10784 // copy of this software and associated documentation files (the
10785 //
"Software"), to deal in the Software without restriction, including
10786 // without limitation the rights to use, copy, modify, merge, publish,
10787 // distribute, sublicense, and/or sell copies of the Software, and to permit
10788 // persons to whom the Software is furnished to do so, subject to the
10789 // following conditions:
10791 // The above copyright notice and this permission notice shall be included
10792 // in all copies or substantial portions of the Software.
10794 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10795 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10796 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10797 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10798 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10799 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10800 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10802 // NOTE: These type checking functions intentionally don't use `instanceof`
10803 // because it is fragile and can be easily faked with `Object.create()`.
10804 function isArray(ar) {
10805 return Array.isArray(ar);
10807 exports.isArray = isArray;
10809 function isBoolean(arg) {
10810 return typeof arg === 'boolean';
10812 exports.isBoolean = isBoolean;
10814 function isNull(arg) {
10815 return arg === null;
10817 exports.isNull = isNull;
10819 function isNullOrUndefined(arg) {
10820 return arg == null;
10822 exports.isNullOrUndefined = isNullOrUndefined;
10824 function isNumber(arg) {
10825 return typeof arg === 'number';
10827 exports.isNumber = isNumber;
10829 function isString(arg) {
10830 return typeof arg === 'string';
10832 exports.isString = isString;
10834 function isSymbol(arg) {
10835 return typeof arg === 'symbol';
10837 exports.isSymbol = isSymbol;
10839 function isUndefined(arg) {
10840 return arg === void
0;
10842 exports.isUndefined = isUndefined;
10844 function isRegExp(re) {
10845 return isObject(re) && objectToString(re) === '[object RegExp]';
10847 exports.isRegExp = isRegExp;
10849 function isObject(arg) {
10850 return typeof arg === 'object' && arg !== null;
10852 exports.isObject = isObject;
10854 function isDate(d) {
10855 return isObject(d) && objectToString(d) === '[object Date]';
10857 exports.isDate = isDate;
10859 function isError(e) {
10860 return isObject(e) &&
10861 (objectToString(e) === '[object Error]' || e instanceof Error);
10863 exports.isError = isError;
10865 function isFunction(arg) {
10866 return typeof arg === 'function';
10868 exports.isFunction = isFunction;
10870 function isPrimitive(arg) {
10871 return arg === null ||
10872 typeof arg === 'boolean' ||
10873 typeof arg === 'number' ||
10874 typeof arg === 'string' ||
10875 typeof arg === 'symbol' || // ES6 symbol
10876 typeof arg === 'undefined';
10878 exports.isPrimitive = isPrimitive;
10880 function isBuffer(arg) {
10881 return Buffer.isBuffer(arg);
10883 exports.isBuffer = isBuffer;
10885 function objectToString(o) {
10886 return Object.prototype.toString.call(o);
10888 }).call(this,require(
"buffer").Buffer)
10889 },{
"buffer":
7}],
22:[function(require,module,exports){
10890 module.exports = require(
"./lib/_stream_passthrough.js")
10892 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
10893 exports = module.exports = require('./lib/_stream_readable.js');
10894 exports.Stream = require('stream');
10895 exports.Readable = exports;
10896 exports.Writable = require('./lib/_stream_writable.js');
10897 exports.Duplex = require('./lib/_stream_duplex.js');
10898 exports.Transform = require('./lib/_stream_transform.js');
10899 exports.PassThrough = require('./lib/_stream_passthrough.js');
10901 },{
"./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){
10902 module.exports = require(
"./lib/_stream_transform.js")
10904 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
10905 module.exports = require(
"./lib/_stream_writable.js")
10907 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
10908 // Copyright Joyent, Inc. and other Node contributors.
10910 // Permission is hereby granted, free of charge, to any person obtaining a
10911 // copy of this software and associated documentation files (the
10912 //
"Software"), to deal in the Software without restriction, including
10913 // without limitation the rights to use, copy, modify, merge, publish,
10914 // distribute, sublicense, and/or sell copies of the Software, and to permit
10915 // persons to whom the Software is furnished to do so, subject to the
10916 // following conditions:
10918 // The above copyright notice and this permission notice shall be included
10919 // in all copies or substantial portions of the Software.
10921 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10922 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10923 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10924 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10925 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10926 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10927 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10929 module.exports = Stream;
10931 var EE = require('events').EventEmitter;
10932 var inherits = require('inherits');
10934 inherits(Stream, EE);
10935 Stream.Readable = require('readable-stream/readable.js');
10936 Stream.Writable = require('readable-stream/writable.js');
10937 Stream.Duplex = require('readable-stream/duplex.js');
10938 Stream.Transform = require('readable-stream/transform.js');
10939 Stream.PassThrough = require('readable-stream/passthrough.js');
10941 // Backwards-compat with node
0.4.x
10942 Stream.Stream = Stream;
10946 // old-style streams. Note that the pipe method (the only relevant
10947 // part of this class) is overridden in the Readable class.
10949 function Stream() {
10953 Stream.prototype.pipe = function(dest, options) {
10956 function ondata(chunk) {
10957 if (dest.writable) {
10958 if (false === dest.write(chunk) && source.pause) {
10964 source.on('data', ondata);
10966 function ondrain() {
10967 if (source.readable && source.resume) {
10972 dest.on('drain', ondrain);
10974 // If the 'end' option is not supplied, dest.end() will be called when
10975 // source gets the 'end' or 'close' events. Only dest.end() once.
10976 if (!dest._isStdio && (!options || options.end !== false)) {
10977 source.on('end', onend);
10978 source.on('close', onclose);
10981 var didOnEnd = false;
10983 if (didOnEnd) return;
10990 function onclose() {
10991 if (didOnEnd) return;
10994 if (typeof dest.destroy === 'function') dest.destroy();
10997 // don't leave dangling pipes when there are errors.
10998 function onerror(er) {
11000 if (EE.listenerCount(this, 'error') ===
0) {
11001 throw er; // Unhandled stream error in pipe.
11005 source.on('error', onerror);
11006 dest.on('error', onerror);
11008 // remove all the event listeners that were added.
11009 function cleanup() {
11010 source.removeListener('data', ondata);
11011 dest.removeListener('drain', ondrain);
11013 source.removeListener('end', onend);
11014 source.removeListener('close', onclose);
11016 source.removeListener('error', onerror);
11017 dest.removeListener('error', onerror);
11019 source.removeListener('end', cleanup);
11020 source.removeListener('close', cleanup);
11022 dest.removeListener('close', cleanup);
11025 source.on('end', cleanup);
11026 source.on('close', cleanup);
11028 dest.on('close', cleanup);
11030 dest.emit('pipe', source);
11032 // Allow for unix-like usage: A.pipe(B).pipe(C)
11036 },{
"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){
11037 // Copyright Joyent, Inc. and other Node contributors.
11039 // Permission is hereby granted, free of charge, to any person obtaining a
11040 // copy of this software and associated documentation files (the
11041 //
"Software"), to deal in the Software without restriction, including
11042 // without limitation the rights to use, copy, modify, merge, publish,
11043 // distribute, sublicense, and/or sell copies of the Software, and to permit
11044 // persons to whom the Software is furnished to do so, subject to the
11045 // following conditions:
11047 // The above copyright notice and this permission notice shall be included
11048 // in all copies or substantial portions of the Software.
11050 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11051 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11052 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11053 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11054 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11055 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11056 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11058 var Buffer = require('buffer').Buffer;
11060 var isBufferEncoding = Buffer.isEncoding
11061 || function(encoding) {
11062 switch (encoding && encoding.toLowerCase()) {
11063 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;
11064 default: return false;
11069 function assertEncoding(encoding) {
11070 if (encoding && !isBufferEncoding(encoding)) {
11071 throw new Error('Unknown encoding: ' + encoding);
11075 // StringDecoder provides an interface for efficiently splitting a series of
11076 // buffers into a series of JS strings without breaking apart multi-byte
11077 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
11079 // @TODO Handling all encodings inside a single object makes it very difficult
11080 // to reason about this code, so it should be split up in the future.
11081 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
11082 // points as used by CESU-
8.
11083 var StringDecoder = exports.StringDecoder = function(encoding) {
11084 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
11085 assertEncoding(encoding);
11086 switch (this.encoding) {
11088 // CESU-
8 represents each of Surrogate Pair by
3-bytes
11089 this.surrogateSize =
3;
11093 // UTF-
16 represents each of Surrogate Pair by
2-bytes
11094 this.surrogateSize =
2;
11095 this.detectIncompleteChar = utf16DetectIncompleteChar;
11098 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
11099 this.surrogateSize =
3;
11100 this.detectIncompleteChar = base64DetectIncompleteChar;
11103 this.write = passThroughWrite;
11107 // Enough space to store all bytes of a single character. UTF-
8 needs
4
11108 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
11109 this.charBuffer = new Buffer(
6);
11110 // Number of bytes received for the current incomplete multi-byte character.
11111 this.charReceived =
0;
11112 // Number of bytes expected for the current incomplete multi-byte character.
11113 this.charLength =
0;
11117 // write decodes the given buffer and returns it as JS string that is
11118 // guaranteed to not contain any partial multi-byte characters. Any partial
11119 // character found at the end of the buffer is buffered up, and will be
11120 // returned when calling write again with the remaining bytes.
11122 // Note: Converting a Buffer containing an orphan surrogate to a String
11123 // currently works, but converting a String to a Buffer (via `new Buffer`, or
11124 // Buffer#write) will replace incomplete surrogates with the unicode
11125 // replacement character. See https://codereview.chromium.org/
121173009/ .
11126 StringDecoder.prototype.write = function(buffer) {
11128 // if our last write ended with an incomplete multibyte character
11129 while (this.charLength) {
11130 // determine how many remaining bytes this buffer has to offer for this char
11131 var available = (buffer.length
>= this.charLength - this.charReceived) ?
11132 this.charLength - this.charReceived :
11135 // add the new bytes to the char buffer
11136 buffer.copy(this.charBuffer, this.charReceived,
0, available);
11137 this.charReceived += available;
11139 if (this.charReceived < this.charLength) {
11140 // still not enough chars in this buffer? wait for more ...
11144 // remove bytes belonging to the current character from the buffer
11145 buffer = buffer.slice(available, buffer.length);
11147 // get the character that was split
11148 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
11150 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11151 var charCode = charStr.charCodeAt(charStr.length -
1);
11152 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11153 this.charLength += this.surrogateSize;
11157 this.charReceived = this.charLength =
0;
11159 // if there are no more bytes in this buffer, just emit our char
11160 if (buffer.length ===
0) {
11166 // determine and set charLength / charReceived
11167 this.detectIncompleteChar(buffer);
11169 var end = buffer.length;
11170 if (this.charLength) {
11171 // buffer the incomplete character bytes we got
11172 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
11173 end -= this.charReceived;
11176 charStr += buffer.toString(this.encoding,
0, end);
11178 var end = charStr.length -
1;
11179 var charCode = charStr.charCodeAt(end);
11180 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11181 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11182 var size = this.surrogateSize;
11183 this.charLength += size;
11184 this.charReceived += size;
11185 this.charBuffer.copy(this.charBuffer, size,
0, size);
11186 buffer.copy(this.charBuffer,
0,
0, size);
11187 return charStr.substring(
0, end);
11190 // or just emit the charStr
11194 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
11195 // the end of the given buffer. If so, it sets this.charLength to the byte
11196 // length that character, and sets this.charReceived to the number of bytes
11197 // that are available for this character.
11198 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
11199 // determine how many bytes we have to check at the end of this buffer
11200 var i = (buffer.length
>=
3) ?
3 : buffer.length;
11202 // Figure out if one of the last i bytes of our buffer announces an
11203 // incomplete char.
11204 for (; i
> 0; i--) {
11205 var c = buffer[buffer.length - i];
11207 // See http://en.wikipedia.org/wiki/UTF-
8#Description
11210 if (i ==
1 && c
>> 5 ==
0x06) {
11211 this.charLength =
2;
11216 if (i <=
2 && c
>> 4 ==
0x0E) {
11217 this.charLength =
3;
11222 if (i <=
3 && c
>> 3 ==
0x1E) {
11223 this.charLength =
4;
11227 this.charReceived = i;
11230 StringDecoder.prototype.end = function(buffer) {
11232 if (buffer && buffer.length)
11233 res = this.write(buffer);
11235 if (this.charReceived) {
11236 var cr = this.charReceived;
11237 var buf = this.charBuffer;
11238 var enc = this.encoding;
11239 res += buf.slice(
0, cr).toString(enc);
11245 function passThroughWrite(buffer) {
11246 return buffer.toString(this.encoding);
11249 function utf16DetectIncompleteChar(buffer) {
11250 this.charReceived = buffer.length %
2;
11251 this.charLength = this.charReceived ?
2 :
0;
11254 function base64DetectIncompleteChar(buffer) {
11255 this.charReceived = buffer.length %
3;
11256 this.charLength = this.charReceived ?
3 :
0;
11259 },{
"buffer":
7}],
28:[function(require,module,exports){
11260 module.exports = function isBuffer(arg) {
11261 return arg && typeof arg === 'object'
11262 && typeof arg.copy === 'function'
11263 && typeof arg.fill === 'function'
11264 && typeof arg.readUInt8 === 'function';
11266 },{}],
29:[function(require,module,exports){
11267 (function (process,global){
11268 // Copyright Joyent, Inc. and other Node contributors.
11270 // Permission is hereby granted, free of charge, to any person obtaining a
11271 // copy of this software and associated documentation files (the
11272 //
"Software"), to deal in the Software without restriction, including
11273 // without limitation the rights to use, copy, modify, merge, publish,
11274 // distribute, sublicense, and/or sell copies of the Software, and to permit
11275 // persons to whom the Software is furnished to do so, subject to the
11276 // following conditions:
11278 // The above copyright notice and this permission notice shall be included
11279 // in all copies or substantial portions of the Software.
11281 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11282 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11283 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11284 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11285 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11286 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11287 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11289 var formatRegExp = /%[sdj%]/g;
11290 exports.format = function(f) {
11291 if (!isString(f)) {
11293 for (var i =
0; i < arguments.length; i++) {
11294 objects.push(inspect(arguments[i]));
11296 return objects.join(' ');
11300 var args = arguments;
11301 var len = args.length;
11302 var str = String(f).replace(formatRegExp, function(x) {
11303 if (x === '%%') return '%';
11304 if (i
>= len) return x;
11306 case '%s': return String(args[i++]);
11307 case '%d': return Number(args[i++]);
11310 return JSON.stringify(args[i++]);
11312 return '[Circular]';
11318 for (var x = args[i]; i < len; x = args[++i]) {
11319 if (isNull(x) || !isObject(x)) {
11322 str += ' ' + inspect(x);
11329 // Mark that a method should not be used.
11330 // Returns a modified function which warns once by default.
11331 // If --no-deprecation is set, then it is a no-op.
11332 exports.deprecate = function(fn, msg) {
11333 // Allow for deprecating things in the process of starting up.
11334 if (isUndefined(global.process)) {
11335 return function() {
11336 return exports.deprecate(fn, msg).apply(this, arguments);
11340 if (process.noDeprecation === true) {
11344 var warned = false;
11345 function deprecated() {
11347 if (process.throwDeprecation) {
11348 throw new Error(msg);
11349 } else if (process.traceDeprecation) {
11350 console.trace(msg);
11352 console.error(msg);
11356 return fn.apply(this, arguments);
11365 exports.debuglog = function(set) {
11366 if (isUndefined(debugEnviron))
11367 debugEnviron = process.env.NODE_DEBUG || '';
11368 set = set.toUpperCase();
11369 if (!debugs[set]) {
11370 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
11371 var pid = process.pid;
11372 debugs[set] = function() {
11373 var msg = exports.format.apply(exports, arguments);
11374 console.error('%s %d: %s', set, pid, msg);
11377 debugs[set] = function() {};
11380 return debugs[set];
11385 * Echos the value of a value. Trys to print the value out
11386 * in the best way possible given the different types.
11388 * @param {Object} obj The object to print out.
11389 * @param {Object} opts Optional options object that alters the output.
11391 /* legacy: obj, showHidden, depth, colors*/
11392 function inspect(obj, opts) {
11396 stylize: stylizeNoColor
11399 if (arguments.length
>=
3) ctx.depth = arguments[
2];
11400 if (arguments.length
>=
4) ctx.colors = arguments[
3];
11401 if (isBoolean(opts)) {
11403 ctx.showHidden = opts;
11405 // got an "options" object
11406 exports._extend(ctx, opts);
11408 // set default options
11409 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
11410 if (isUndefined(ctx.depth)) ctx.depth =
2;
11411 if (isUndefined(ctx.colors)) ctx.colors = false;
11412 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
11413 if (ctx.colors) ctx.stylize = stylizeWithColor;
11414 return formatValue(ctx, obj, ctx.depth);
11416 exports.inspect = inspect;
11419 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
11422 'italic' : [
3,
23],
11423 'underline' : [
4,
24],
11424 'inverse' : [
7,
27],
11425 'white' : [
37,
39],
11427 'black' : [
30,
39],
11430 'green' : [
32,
39],
11431 'magenta' : [
35,
39],
11433 'yellow' : [
33,
39]
11436 // Don't use 'blue' not visible on cmd.exe
11439 'number': 'yellow',
11440 'boolean': 'yellow',
11441 'undefined': 'grey',
11445 // "name": intentionally not styling
11450 function stylizeWithColor(str, styleType) {
11451 var style = inspect.styles[styleType];
11454 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
11455 '\u001b[' + inspect.colors[style][
1] + 'm';
11462 function stylizeNoColor(str, styleType) {
11467 function arrayToHash(array) {
11470 array.forEach(function(val, idx) {
11478 function formatValue(ctx, value, recurseTimes) {
11479 // Provide a hook for user-specified inspect functions.
11480 // Check that value is an object with an inspect function on it
11481 if (ctx.customInspect &&
11483 isFunction(value.inspect) &&
11484 // Filter out the util module, it's inspect function is special
11485 value.inspect !== exports.inspect &&
11486 // Also filter out any prototype objects using the circular check.
11487 !(value.constructor && value.constructor.prototype === value)) {
11488 var ret = value.inspect(recurseTimes, ctx);
11489 if (!isString(ret)) {
11490 ret = formatValue(ctx, ret, recurseTimes);
11495 // Primitive types cannot have properties
11496 var primitive = formatPrimitive(ctx, value);
11501 // Look up the keys of the object.
11502 var keys = Object.keys(value);
11503 var visibleKeys = arrayToHash(keys);
11505 if (ctx.showHidden) {
11506 keys = Object.getOwnPropertyNames(value);
11509 // IE doesn't make error fields non-enumerable
11510 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
11512 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
11513 return formatError(value);
11516 // Some type of object without properties can be shortcutted.
11517 if (keys.length ===
0) {
11518 if (isFunction(value)) {
11519 var name = value.name ? ': ' + value.name : '';
11520 return ctx.stylize('[Function' + name + ']', 'special');
11522 if (isRegExp(value)) {
11523 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11525 if (isDate(value)) {
11526 return ctx.stylize(Date.prototype.toString.call(value), 'date');
11528 if (isError(value)) {
11529 return formatError(value);
11533 var base = '', array = false, braces = ['{', '}'];
11535 // Make Array say that they are Array
11536 if (isArray(value)) {
11538 braces = ['[', ']'];
11541 // Make functions say that they are functions
11542 if (isFunction(value)) {
11543 var n = value.name ? ': ' + value.name : '';
11544 base = ' [Function' + n + ']';
11547 // Make RegExps say that they are RegExps
11548 if (isRegExp(value)) {
11549 base = ' ' + RegExp.prototype.toString.call(value);
11552 // Make dates with properties first say the date
11553 if (isDate(value)) {
11554 base = ' ' + Date.prototype.toUTCString.call(value);
11557 // Make error with message first say the error
11558 if (isError(value)) {
11559 base = ' ' + formatError(value);
11562 if (keys.length ===
0 && (!array || value.length ==
0)) {
11563 return braces[
0] + base + braces[
1];
11566 if (recurseTimes <
0) {
11567 if (isRegExp(value)) {
11568 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11570 return ctx.stylize('[Object]', 'special');
11574 ctx.seen.push(value);
11578 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
11580 output = keys.map(function(key) {
11581 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
11587 return reduceToSingleString(output, base, braces);
11591 function formatPrimitive(ctx, value) {
11592 if (isUndefined(value))
11593 return ctx.stylize('undefined', 'undefined');
11594 if (isString(value)) {
11595 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
11596 .replace(/'/g, "\\'")
11597 .replace(/\\"/g, '"') + '\'';
11598 return ctx.stylize(simple, 'string');
11600 if (isNumber(value))
11601 return ctx.stylize('' + value, 'number');
11602 if (isBoolean(value))
11603 return ctx.stylize('' + value, 'boolean');
11604 // For some reason typeof null is "object", so special case here.
11606 return ctx.stylize('null', 'null');
11610 function formatError(value) {
11611 return '[' + Error.prototype.toString.call(value) + ']';
11615 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
11617 for (var i =
0, l = value.length; i < l; ++i) {
11618 if (hasOwnProperty(value, String(i))) {
11619 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11625 keys.forEach(function(key) {
11626 if (!key.match(/^\d+$/)) {
11627 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11635 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
11636 var name, str, desc;
11637 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
11640 str = ctx.stylize('[Getter/Setter]', 'special');
11642 str = ctx.stylize('[Getter]', 'special');
11646 str = ctx.stylize('[Setter]', 'special');
11649 if (!hasOwnProperty(visibleKeys, key)) {
11650 name = '[' + key + ']';
11653 if (ctx.seen.indexOf(desc.value) <
0) {
11654 if (isNull(recurseTimes)) {
11655 str = formatValue(ctx, desc.value, null);
11657 str = formatValue(ctx, desc.value, recurseTimes -
1);
11659 if (str.indexOf('\n')
> -
1) {
11661 str = str.split('\n').map(function(line) {
11663 }).join('\n').substr(
2);
11665 str = '\n' + str.split('\n').map(function(line) {
11671 str = ctx.stylize('[Circular]', 'special');
11674 if (isUndefined(name)) {
11675 if (array && key.match(/^\d+$/)) {
11678 name = JSON.stringify('' + key);
11679 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
11680 name = name.substr(
1, name.length -
2);
11681 name = ctx.stylize(name, 'name');
11683 name = name.replace(/'/g, "\\'")
11684 .replace(/\\"/g, '"')
11685 .replace(/(^"|"$)/g, "'");
11686 name = ctx.stylize(name, 'string');
11690 return name + ': ' + str;
11694 function reduceToSingleString(output, base, braces) {
11695 var numLinesEst =
0;
11696 var length = output.reduce(function(prev, cur) {
11698 if (cur.indexOf('\n')
>=
0) numLinesEst++;
11699 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
11704 (base === '' ? '' : base + '\n ') +
11706 output.join(',\n ') +
11711 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
11715 // NOTE: These type checking functions intentionally don't use `instanceof`
11716 // because it is fragile and can be easily faked with `Object.create()`.
11717 function isArray(ar) {
11718 return Array.isArray(ar);
11720 exports.isArray = isArray;
11722 function isBoolean(arg) {
11723 return typeof arg === 'boolean';
11725 exports.isBoolean = isBoolean;
11727 function isNull(arg) {
11728 return arg === null;
11730 exports.isNull = isNull;
11732 function isNullOrUndefined(arg) {
11733 return arg == null;
11735 exports.isNullOrUndefined = isNullOrUndefined;
11737 function isNumber(arg) {
11738 return typeof arg === 'number';
11740 exports.isNumber = isNumber;
11742 function isString(arg) {
11743 return typeof arg === 'string';
11745 exports.isString = isString;
11747 function isSymbol(arg) {
11748 return typeof arg === 'symbol';
11750 exports.isSymbol = isSymbol;
11752 function isUndefined(arg) {
11753 return arg === void
0;
11755 exports.isUndefined = isUndefined;
11757 function isRegExp(re) {
11758 return isObject(re) && objectToString(re) === '[object RegExp]';
11760 exports.isRegExp = isRegExp;
11762 function isObject(arg) {
11763 return typeof arg === 'object' && arg !== null;
11765 exports.isObject = isObject;
11767 function isDate(d) {
11768 return isObject(d) && objectToString(d) === '[object Date]';
11770 exports.isDate = isDate;
11772 function isError(e) {
11773 return isObject(e) &&
11774 (objectToString(e) === '[object Error]' || e instanceof Error);
11776 exports.isError = isError;
11778 function isFunction(arg) {
11779 return typeof arg === 'function';
11781 exports.isFunction = isFunction;
11783 function isPrimitive(arg) {
11784 return arg === null ||
11785 typeof arg === 'boolean' ||
11786 typeof arg === 'number' ||
11787 typeof arg === 'string' ||
11788 typeof arg === 'symbol' || // ES6 symbol
11789 typeof arg === 'undefined';
11791 exports.isPrimitive = isPrimitive;
11793 exports.isBuffer = require('./support/isBuffer');
11795 function objectToString(o) {
11796 return Object.prototype.toString.call(o);
11801 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
11805 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
11806 'Oct', 'Nov', 'Dec'];
11809 function timestamp() {
11810 var d = new Date();
11811 var time = [pad(d.getHours()),
11812 pad(d.getMinutes()),
11813 pad(d.getSeconds())].join(':');
11814 return [d.getDate(), months[d.getMonth()], time].join(' ');
11818 // log is just a thin wrapper to console.log that prepends a timestamp
11819 exports.log = function() {
11820 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
11825 * Inherit the prototype methods from one constructor into another.
11827 * The Function.prototype.inherits from lang.js rewritten as a standalone
11828 * function (not on Function.prototype). NOTE: If this file is to be loaded
11829 * during bootstrapping this function needs to be rewritten using some native
11830 * functions as prototype setup using normal JavaScript does not work as
11831 * expected during bootstrapping (see mirror.js in r114903).
11833 * @param {function} ctor Constructor function which needs to inherit the
11835 * @param {function} superCtor Constructor function to inherit prototype from.
11837 exports.inherits = require('inherits');
11839 exports._extend = function(origin, add) {
11840 // Don't do anything if add isn't an object
11841 if (!add || !isObject(add)) return origin;
11843 var keys = Object.keys(add);
11844 var i = keys.length;
11846 origin[keys[i]] = add[keys[i]];
11851 function hasOwnProperty(obj, prop) {
11852 return Object.prototype.hasOwnProperty.call(obj, prop);
11855 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11856 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
11857 // Base58 encoding/decoding
11858 // Originally written by Mike Hearn for BitcoinJ
11859 // Copyright (c)
2011 Google Inc
11860 // Ported to JavaScript by Stefan Thomas
11861 // Merged Buffer refactorings from base58-native by Stephen Pair
11862 // Copyright (c)
2013 BitPay Inc
11864 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
11865 var ALPHABET_MAP = {}
11866 for(var i =
0; i < ALPHABET.length; i++) {
11867 ALPHABET_MAP[ALPHABET.charAt(i)] = i
11871 function encode(buffer) {
11872 if (buffer.length ===
0) return ''
11874 var i, j, digits = [
0]
11875 for (i =
0; i < buffer.length; i++) {
11876 for (j =
0; j < digits.length; j++) digits[j] <<=
8
11878 digits[
0] += buffer[i]
11881 for (j =
0; j < digits.length; ++j) {
11884 carry = (digits[j] / BASE) |
0
11889 digits.push(carry % BASE)
11891 carry = (carry / BASE) |
0
11895 // deal with leading zeros
11896 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
11898 // convert digits to a string
11899 var stringOutput =
""
11900 for (var i = digits.length -
1; i
>=
0; i--) {
11901 stringOutput = stringOutput + ALPHABET[digits[i]]
11903 return stringOutput
11906 function decode(string) {
11907 if (string.length ===
0) return []
11909 var i, j, bytes = [
0]
11910 for (i =
0; i < string.length; i++) {
11912 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
11914 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
11915 bytes[
0] += ALPHABET_MAP[c]
11918 for (j =
0; j < bytes.length; ++j) {
11921 carry = bytes[j]
>> 8
11926 bytes.push(carry &
0xff)
11932 // deal with leading zeros
11933 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
11935 return bytes.reverse()
11943 },{}],
31:[function(require,module,exports){
11944 (function (Buffer){
11947 var base58 = require('bs58')
11948 var createHash = require('create-hash')
11950 // SHA256(SHA256(buffer))
11951 function sha256x2 (buffer) {
11952 buffer = createHash('sha256').update(buffer).digest()
11953 return createHash('sha256').update(buffer).digest()
11956 // Encode a buffer as a base58-check encoded string
11957 function encode (payload) {
11958 var checksum = sha256x2(payload).slice(
0,
4)
11960 return base58.encode(Buffer.concat([
11966 // Decode a base58-check encoded string to a buffer
11967 function decode (string) {
11968 var buffer = new Buffer(base58.decode(string))
11970 var payload = buffer.slice(
0, -
4)
11971 var checksum = buffer.slice(-
4)
11972 var newChecksum = sha256x2(payload).slice(
0,
4)
11974 for (var i =
0; i < newChecksum.length; ++i) {
11975 if (newChecksum[i] === checksum[i]) continue
11977 throw new Error('Invalid checksum')
11988 }).call(this,require("buffer").Buffer)
11989 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
11990 (function (Buffer){
11992 var inherits = require('inherits')
11993 var md5 = require('./md5')
11994 var rmd160 = require('ripemd160')
11995 var sha = require('sha.js')
11997 var Transform = require('stream').Transform
11999 function HashNoConstructor(hash) {
12000 Transform.call(this)
12006 inherits(HashNoConstructor, Transform)
12008 HashNoConstructor.prototype._transform = function (data, _, next) {
12009 this.buffers.push(data)
12014 HashNoConstructor.prototype._flush = function (next) {
12015 this.push(this.digest())
12019 HashNoConstructor.prototype.update = function (data, enc) {
12020 if (typeof data === 'string') {
12021 data = new Buffer(data, enc)
12024 this.buffers.push(data)
12028 HashNoConstructor.prototype.digest = function (enc) {
12029 var buf = Buffer.concat(this.buffers)
12030 var r = this._hash(buf)
12031 this.buffers = null
12033 return enc ? r.toString(enc) : r
12036 function Hash(hash) {
12037 Transform.call(this)
12042 inherits(Hash, Transform)
12044 Hash.prototype._transform = function (data, enc, next) {
12045 if (enc) data = new Buffer(data, enc)
12047 this._hash.update(data)
12052 Hash.prototype._flush = function (next) {
12053 this.push(this._hash.digest())
12059 Hash.prototype.update = function (data, enc) {
12060 if (typeof data === 'string') {
12061 data = new Buffer(data, enc)
12064 this._hash.update(data)
12068 Hash.prototype.digest = function (enc) {
12069 var outData = this._hash.digest()
12071 return enc ? outData.toString(enc) : outData
12074 module.exports = function createHash (alg) {
12075 if ('md5' === alg) return new HashNoConstructor(md5)
12076 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
12078 return new Hash(sha(alg))
12081 }).call(this,require("buffer").Buffer)
12082 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
12083 (function (Buffer){
12086 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
12089 function toArray(buf, bigEndian) {
12090 if ((buf.length % intSize) !==
0) {
12091 var len = buf.length + (intSize - (buf.length % intSize));
12092 buf = Buffer.concat([buf, zeroBuffer], len);
12096 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
12097 for (var i =
0; i < buf.length; i += intSize) {
12098 arr.push(fn.call(buf, i));
12103 function toBuffer(arr, size, bigEndian) {
12104 var buf = new Buffer(size);
12105 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
12106 for (var i =
0; i < arr.length; i++) {
12107 fn.call(buf, arr[i], i *
4, true);
12112 function hash(buf, fn, hashSize, bigEndian) {
12113 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
12114 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
12115 return toBuffer(arr, hashSize, bigEndian);
12117 exports.hash = hash;
12118 }).call(this,require("buffer").Buffer)
12119 },{"buffer":
7}],
34:[function(require,module,exports){
12122 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
12123 * Digest Algorithm, as defined in RFC
1321.
12124 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
12125 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12126 * Distributed under the BSD License
12127 * See http://pajhome.org.uk/crypt/md5 for more info.
12130 var helpers = require('./helpers');
12133 * Calculate the MD5 of an array of little-endian words, and a bit length
12135 function core_md5(x, len)
12137 /* append padding */
12138 x[len
>> 5] |=
0x80 << ((len) %
32);
12139 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
12141 var a =
1732584193;
12142 var b = -
271733879;
12143 var c = -
1732584194;
12146 for(var i =
0; i < x.length; i +=
16)
12153 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
12154 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
12155 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
12156 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
12157 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
12158 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
12159 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
12160 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
12161 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
12162 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
12163 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
12164 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
12165 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
12166 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
12167 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
12168 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
12170 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
12171 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
12172 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
12173 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
12174 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
12175 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
12176 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
12177 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
12178 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
12179 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
12180 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
12181 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
12182 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
12183 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
12184 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
12185 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
12187 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
12188 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
12189 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
12190 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
12191 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
12192 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
12193 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
12194 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
12195 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
12196 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
12197 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
12198 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
12199 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
12200 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
12201 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
12202 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
12204 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
12205 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
12206 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
12207 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
12208 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
12209 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
12210 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
12211 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
12212 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
12213 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
12214 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
12215 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
12216 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
12217 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
12218 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
12219 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
12221 a = safe_add(a, olda);
12222 b = safe_add(b, oldb);
12223 c = safe_add(c, oldc);
12224 d = safe_add(d, oldd);
12226 return Array(a, b, c, d);
12231 * These functions implement the four basic operations the algorithm uses.
12233 function md5_cmn(q, a, b, x, s, t)
12235 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
12237 function md5_ff(a, b, c, d, x, s, t)
12239 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
12241 function md5_gg(a, b, c, d, x, s, t)
12243 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
12245 function md5_hh(a, b, c, d, x, s, t)
12247 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
12249 function md5_ii(a, b, c, d, x, s, t)
12251 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
12255 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
12256 * to work around bugs in some JS interpreters.
12258 function safe_add(x, y)
12260 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
12261 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
12262 return (msw <<
16) | (lsw &
0xFFFF);
12266 * Bitwise rotate a
32-bit number to the left.
12268 function bit_rol(num, cnt)
12270 return (num << cnt) | (num
>>> (
32 - cnt));
12273 module.exports = function md5(buf) {
12274 return helpers.hash(buf, core_md5,
16);
12276 },{"./helpers":
33}],
35:[function(require,module,exports){
12277 arguments[
4][
12][
0].apply(exports,arguments)
12278 },{"dup":
12}],
36:[function(require,module,exports){
12279 (function (Buffer){
12282 code.google.com/p/crypto-js
12283 (c)
2009-
2013 by Jeff Mott. All rights reserved.
12284 code.google.com/p/crypto-js/wiki/License
12287 (c)
2012 by Cédric Mesnil. All rights reserved.
12289 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12291 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
12292 - 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.
12294 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.
12299 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
12300 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
12301 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
12302 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
12303 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
12307 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
12308 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
12309 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
12310 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
12311 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
12315 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
12316 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
12317 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
12318 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
12319 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
12323 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
12324 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
12325 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
12326 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
12327 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
12330 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
12331 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
12333 function bytesToWords (bytes) {
12335 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
12336 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
12341 function wordsToBytes (words) {
12343 for (var b =
0; b < words.length *
32; b +=
8) {
12344 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
12349 function processBlock (H, M, offset) {
12351 for (var i =
0; i <
16; i++) {
12352 var offset_i = offset + i
12353 var M_offset_i = M[offset_i]
12357 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
12358 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
12362 // Working variables
12363 var al, bl, cl, dl, el
12364 var ar, br, cr, dr, er
12374 for (i =
0; i <
80; i +=
1) {
12375 t = (al + M[offset + zl[i]]) |
0
12377 t += f1(bl, cl, dl) + hl[
0]
12378 } else if (i <
32) {
12379 t += f2(bl, cl, dl) + hl[
1]
12380 } else if (i <
48) {
12381 t += f3(bl, cl, dl) + hl[
2]
12382 } else if (i <
64) {
12383 t += f4(bl, cl, dl) + hl[
3]
12384 } else {// if (i
<80) {
12385 t += f5(bl, cl, dl) + hl[
4]
12396 t = (ar + M[offset + zr[i]]) |
0
12398 t += f5(br, cr, dr) + hr[
0]
12399 } else if (i <
32) {
12400 t += f4(br, cr, dr) + hr[
1]
12401 } else if (i <
48) {
12402 t += f3(br, cr, dr) + hr[
2]
12403 } else if (i <
64) {
12404 t += f2(br, cr, dr) + hr[
3]
12405 } else {// if (i
<80) {
12406 t += f1(br, cr, dr) + hr[
4]
12419 // intermediate hash value
12420 t = (H[
1] + cl + dr) |
0
12421 H[
1] = (H[
2] + dl + er) |
0
12422 H[
2] = (H[
3] + el + ar) |
0
12423 H[
3] = (H[
4] + al + br) |
0
12424 H[
4] = (H[
0] + bl + cr) |
0
12428 function f1 (x, y, z) {
12429 return ((x) ^ (y) ^ (z))
12432 function f2 (x, y, z) {
12433 return (((x) & (y)) | ((~x) & (z)))
12436 function f3 (x, y, z) {
12437 return (((x) | (~(y))) ^ (z))
12440 function f4 (x, y, z) {
12441 return (((x) & (z)) | ((y) & (~(z))))
12444 function f5 (x, y, z) {
12445 return ((x) ^ ((y) | (~(z))))
12448 function rotl (x, n) {
12449 return (x << n) | (x
>>> (
32 - n))
12452 function ripemd160 (message) {
12453 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
12455 if (typeof message === 'string') {
12456 message = new Buffer(message, 'utf8')
12459 var m = bytesToWords(message)
12461 var nBitsLeft = message.length *
8
12462 var nBitsTotal = message.length *
8
12465 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
12466 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
12467 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
12468 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
12471 for (var i =
0; i < m.length; i +=
16) {
12472 processBlock(H, m, i)
12476 for (i =
0; i <
5; i++) {
12481 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
12482 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
12485 var digestbytes = wordsToBytes(H)
12486 return new Buffer(digestbytes)
12489 module.exports = ripemd160
12491 }).call(this,require(
"buffer").Buffer)
12492 },{
"buffer":
7}],
37:[function(require,module,exports){
12493 (function (Buffer){
12494 // prototype class for hash functions
12495 function Hash (blockSize, finalSize) {
12496 this._block = new Buffer(blockSize)
12497 this._finalSize = finalSize
12498 this._blockSize = blockSize
12503 Hash.prototype.update = function (data, enc) {
12504 if (typeof data === 'string') {
12505 enc = enc || 'utf8'
12506 data = new Buffer(data, enc)
12509 var l = this._len += data.length
12510 var s = this._s ||
0
12512 var buffer = this._block
12515 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
12518 for (var i =
0; i < ch; i++) {
12519 buffer[(s % this._blockSize) + i] = data[i + f]
12525 if ((s % this._blockSize) ===
0) {
12526 this._update(buffer)
12534 Hash.prototype.digest = function (enc) {
12535 // Suppose the length of the message M, in bits, is l
12536 var l = this._len *
8
12538 // Append the bit
1 to the end of the message
12539 this._block[this._len % this._blockSize] =
0x80
12541 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
12542 this._block.fill(
0, this._len % this._blockSize +
1)
12544 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
12545 this._update(this._block)
12546 this._block.fill(
0)
12549 // to this append the block which is equal to the number l written in binary
12550 // TODO: handle case where l is
> Math.pow(
2,
29)
12551 this._block.writeInt32BE(l, this._blockSize -
4)
12553 var hash = this._update(this._block) || this._hash()
12555 return enc ? hash.toString(enc) : hash
12558 Hash.prototype._update = function () {
12559 throw new Error('_update must be implemented by subclass')
12562 module.exports = Hash
12564 }).call(this,require("buffer").Buffer)
12565 },{"buffer":
7}],
38:[function(require,module,exports){
12566 var exports = module.exports = function SHA (algorithm) {
12567 algorithm = algorithm.toLowerCase()
12569 var Algorithm = exports[algorithm]
12570 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
12572 return new Algorithm()
12575 exports.sha = require('./sha')
12576 exports.sha1 = require('./sha1')
12577 exports.sha224 = require('./sha224')
12578 exports.sha256 = require('./sha256')
12579 exports.sha384 = require('./sha384')
12580 exports.sha512 = require('./sha512')
12582 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
12583 (function (Buffer){
12585 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
12586 * in FIPS PUB
180-
1
12587 * This source code is derived from sha1.js of the same repository.
12588 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
12589 * operation was added.
12592 var inherits = require('inherits')
12593 var Hash = require('./hash')
12595 var W = new Array(
80)
12601 Hash.call(this,
64,
56)
12604 inherits(Sha, Hash)
12606 Sha.prototype.init = function () {
12607 this._a =
0x67452301 |
0
12608 this._b =
0xefcdab89 |
0
12609 this._c =
0x98badcfe |
0
12610 this._d =
0x10325476 |
0
12611 this._e =
0xc3d2e1f0 |
0
12617 * Bitwise rotate a
32-bit number to the left.
12619 function rol (num, cnt) {
12620 return (num << cnt) | (num
>>> (
32 - cnt))
12623 Sha.prototype._update = function (M) {
12635 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
12636 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12638 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
12639 function loop (w, f) {
12642 var t = rol(a,
5) + f + e + w + k
12653 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12654 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12656 while (j <
40) loop(calcW(), b ^ c ^ d)
12658 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12660 while (j <
80) loop(calcW(), b ^ c ^ d)
12662 this._a = (a + this._a) |
0
12663 this._b = (b + this._b) |
0
12664 this._c = (c + this._c) |
0
12665 this._d = (d + this._d) |
0
12666 this._e = (e + this._e) |
0
12669 Sha.prototype._hash = function () {
12670 var H = new Buffer(
20)
12672 H.writeInt32BE(this._a |
0,
0)
12673 H.writeInt32BE(this._b |
0,
4)
12674 H.writeInt32BE(this._c |
0,
8)
12675 H.writeInt32BE(this._d |
0,
12)
12676 H.writeInt32BE(this._e |
0,
16)
12681 module.exports = Sha
12684 }).call(this,require("buffer").Buffer)
12685 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
12686 (function (Buffer){
12688 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
12689 * in FIPS PUB
180-
1
12690 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
12691 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12692 * Distributed under the BSD License
12693 * See http://pajhome.org.uk/crypt/md5 for details.
12696 var inherits = require('inherits')
12697 var Hash = require('./hash')
12699 var W = new Array(
80)
12705 Hash.call(this,
64,
56)
12708 inherits(Sha1, Hash)
12710 Sha1.prototype.init = function () {
12711 this._a =
0x67452301 |
0
12712 this._b =
0xefcdab89 |
0
12713 this._c =
0x98badcfe |
0
12714 this._d =
0x10325476 |
0
12715 this._e =
0xc3d2e1f0 |
0
12721 * Bitwise rotate a
32-bit number to the left.
12723 function rol (num, cnt) {
12724 return (num << cnt) | (num
>>> (
32 - cnt))
12727 Sha1.prototype._update = function (M) {
12738 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12739 function loop (w, f) {
12742 var t = rol(a,
5) + f + e + w + k
12753 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12754 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12756 while (j <
40) loop(calcW(), b ^ c ^ d)
12758 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12760 while (j <
80) loop(calcW(), b ^ c ^ d)
12762 this._a = (a + this._a) |
0
12763 this._b = (b + this._b) |
0
12764 this._c = (c + this._c) |
0
12765 this._d = (d + this._d) |
0
12766 this._e = (e + this._e) |
0
12769 Sha1.prototype._hash = function () {
12770 var H = new Buffer(
20)
12772 H.writeInt32BE(this._a |
0,
0)
12773 H.writeInt32BE(this._b |
0,
4)
12774 H.writeInt32BE(this._c |
0,
8)
12775 H.writeInt32BE(this._d |
0,
12)
12776 H.writeInt32BE(this._e |
0,
16)
12781 module.exports = Sha1
12783 }).call(this,require("buffer").Buffer)
12784 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
12785 (function (Buffer){
12787 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12789 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12790 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12794 var inherits = require('inherits')
12795 var Sha256 = require('./sha256')
12796 var Hash = require('./hash')
12798 var W = new Array(
64)
12800 function Sha224 () {
12803 this._w = W // new Array(
64)
12805 Hash.call(this,
64,
56)
12808 inherits(Sha224, Sha256)
12810 Sha224.prototype.init = function () {
12811 this._a =
0xc1059ed8 |
0
12812 this._b =
0x367cd507 |
0
12813 this._c =
0x3070dd17 |
0
12814 this._d =
0xf70e5939 |
0
12815 this._e =
0xffc00b31 |
0
12816 this._f =
0x68581511 |
0
12817 this._g =
0x64f98fa7 |
0
12818 this._h =
0xbefa4fa4 |
0
12823 Sha224.prototype._hash = function () {
12824 var H = new Buffer(
28)
12826 H.writeInt32BE(this._a,
0)
12827 H.writeInt32BE(this._b,
4)
12828 H.writeInt32BE(this._c,
8)
12829 H.writeInt32BE(this._d,
12)
12830 H.writeInt32BE(this._e,
16)
12831 H.writeInt32BE(this._f,
20)
12832 H.writeInt32BE(this._g,
24)
12837 module.exports = Sha224
12839 }).call(this,require("buffer").Buffer)
12840 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
12841 (function (Buffer){
12843 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12845 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12846 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12850 var inherits = require('inherits')
12851 var Hash = require('./hash')
12854 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
12855 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
12856 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
12857 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
12858 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
12859 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
12860 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
12861 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
12862 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
12863 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
12864 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
12865 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
12866 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
12867 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
12868 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
12869 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
12872 var W = new Array(
64)
12874 function Sha256 () {
12877 this._w = W // new Array(
64)
12879 Hash.call(this,
64,
56)
12882 inherits(Sha256, Hash)
12884 Sha256.prototype.init = function () {
12885 this._a =
0x6a09e667 |
0
12886 this._b =
0xbb67ae85 |
0
12887 this._c =
0x3c6ef372 |
0
12888 this._d =
0xa54ff53a |
0
12889 this._e =
0x510e527f |
0
12890 this._f =
0x9b05688c |
0
12891 this._g =
0x1f83d9ab |
0
12892 this._h =
0x5be0cd19 |
0
12897 function S (X, n) {
12898 return (X
>>> n) | (X << (
32 - n))
12901 function R (X, n) {
12905 function Ch (x, y, z) {
12906 return ((x & y) ^ ((~x) & z))
12909 function Maj (x, y, z) {
12910 return ((x & y) ^ (x & z) ^ (y & z))
12913 function Sigma0256 (x) {
12914 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
12917 function Sigma1256 (x) {
12918 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
12921 function Gamma0256 (x) {
12922 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
12925 function Gamma1256 (x) {
12926 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
12929 Sha256.prototype._update = function (M) {
12932 var a = this._a |
0
12933 var b = this._b |
0
12934 var c = this._c |
0
12935 var d = this._d |
0
12936 var e = this._e |
0
12937 var f = this._f |
0
12938 var g = this._g |
0
12939 var h = this._h |
0
12943 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
12944 function loop (w) {
12947 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
12948 var T2 = Sigma0256(a) + Maj(a, b, c)
12962 while (j <
16) loop(M.readInt32BE(j *
4))
12963 while (j <
64) loop(calcW())
12965 this._a = (a + this._a) |
0
12966 this._b = (b + this._b) |
0
12967 this._c = (c + this._c) |
0
12968 this._d = (d + this._d) |
0
12969 this._e = (e + this._e) |
0
12970 this._f = (f + this._f) |
0
12971 this._g = (g + this._g) |
0
12972 this._h = (h + this._h) |
0
12975 Sha256.prototype._hash = function () {
12976 var H = new Buffer(
32)
12978 H.writeInt32BE(this._a,
0)
12979 H.writeInt32BE(this._b,
4)
12980 H.writeInt32BE(this._c,
8)
12981 H.writeInt32BE(this._d,
12)
12982 H.writeInt32BE(this._e,
16)
12983 H.writeInt32BE(this._f,
20)
12984 H.writeInt32BE(this._g,
24)
12985 H.writeInt32BE(this._h,
28)
12990 module.exports = Sha256
12992 }).call(this,require("buffer").Buffer)
12993 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
12994 (function (Buffer){
12995 var inherits = require('inherits')
12996 var SHA512 = require('./sha512')
12997 var Hash = require('./hash')
12999 var W = new Array(
160)
13001 function Sha384 () {
13005 Hash.call(this,
128,
112)
13008 inherits(Sha384, SHA512)
13010 Sha384.prototype.init = function () {
13011 this._a =
0xcbbb9d5d |
0
13012 this._b =
0x629a292a |
0
13013 this._c =
0x9159015a |
0
13014 this._d =
0x152fecd8 |
0
13015 this._e =
0x67332667 |
0
13016 this._f =
0x8eb44a87 |
0
13017 this._g =
0xdb0c2e0d |
0
13018 this._h =
0x47b5481d |
0
13020 this._al =
0xc1059ed8 |
0
13021 this._bl =
0x367cd507 |
0
13022 this._cl =
0x3070dd17 |
0
13023 this._dl =
0xf70e5939 |
0
13024 this._el =
0xffc00b31 |
0
13025 this._fl =
0x68581511 |
0
13026 this._gl =
0x64f98fa7 |
0
13027 this._hl =
0xbefa4fa4 |
0
13032 Sha384.prototype._hash = function () {
13033 var H = new Buffer(
48)
13035 function writeInt64BE (h, l, offset) {
13036 H.writeInt32BE(h, offset)
13037 H.writeInt32BE(l, offset +
4)
13040 writeInt64BE(this._a, this._al,
0)
13041 writeInt64BE(this._b, this._bl,
8)
13042 writeInt64BE(this._c, this._cl,
16)
13043 writeInt64BE(this._d, this._dl,
24)
13044 writeInt64BE(this._e, this._el,
32)
13045 writeInt64BE(this._f, this._fl,
40)
13050 module.exports = Sha384
13052 }).call(this,require("buffer").Buffer)
13053 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
13054 (function (Buffer){
13055 var inherits = require('inherits')
13056 var Hash = require('./hash')
13059 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
13060 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
13061 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
13062 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
13063 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
13064 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
13065 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
13066 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
13067 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
13068 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
13069 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
13070 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
13071 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
13072 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
13073 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
13074 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
13075 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
13076 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
13077 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
13078 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
13079 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
13080 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
13081 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
13082 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
13083 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
13084 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
13085 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
13086 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
13087 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
13088 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
13089 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
13090 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
13091 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
13092 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
13093 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
13094 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
13095 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
13096 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
13097 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
13098 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
13101 var W = new Array(
160)
13103 function Sha512 () {
13107 Hash.call(this,
128,
112)
13110 inherits(Sha512, Hash)
13112 Sha512.prototype.init = function () {
13113 this._a =
0x6a09e667 |
0
13114 this._b =
0xbb67ae85 |
0
13115 this._c =
0x3c6ef372 |
0
13116 this._d =
0xa54ff53a |
0
13117 this._e =
0x510e527f |
0
13118 this._f =
0x9b05688c |
0
13119 this._g =
0x1f83d9ab |
0
13120 this._h =
0x5be0cd19 |
0
13122 this._al =
0xf3bcc908 |
0
13123 this._bl =
0x84caa73b |
0
13124 this._cl =
0xfe94f82b |
0
13125 this._dl =
0x5f1d36f1 |
0
13126 this._el =
0xade682d1 |
0
13127 this._fl =
0x2b3e6c1f |
0
13128 this._gl =
0xfb41bd6b |
0
13129 this._hl =
0x137e2179 |
0
13134 function S (X, Xl, n) {
13135 return (X
>>> n) | (Xl << (
32 - n))
13138 function Ch (x, y, z) {
13139 return ((x & y) ^ ((~x) & z))
13142 function Maj (x, y, z) {
13143 return ((x & y) ^ (x & z) ^ (y & z))
13146 Sha512.prototype._update = function (M) {
13149 var a = this._a |
0
13150 var b = this._b |
0
13151 var c = this._c |
0
13152 var d = this._d |
0
13153 var e = this._e |
0
13154 var f = this._f |
0
13155 var g = this._g |
0
13156 var h = this._h |
0
13158 var al = this._al |
0
13159 var bl = this._bl |
0
13160 var cl = this._cl |
0
13161 var dl = this._dl |
0
13162 var el = this._el |
0
13163 var fl = this._fl |
0
13164 var gl = this._gl |
0
13165 var hl = this._hl |
0
13169 function calcW () {
13170 var x = W[j -
15 *
2]
13171 var xl = W[j -
15 *
2 +
1]
13172 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
13173 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
13176 xl = W[j -
2 *
2 +
1]
13177 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
13178 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
13180 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
13181 var Wi7 = W[j -
7 *
2]
13182 var Wi7l = W[j -
7 *
2 +
1]
13184 var Wi16 = W[j -
16 *
2]
13185 var Wi16l = W[j -
16 *
2 +
1]
13187 Wil = gamma0l + Wi7l
13188 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
13189 Wil = Wil + gamma1l
13190 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
13192 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
13199 var maj = Maj(a, b, c)
13200 var majl = Maj(al, bl, cl)
13202 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
13203 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
13204 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
13205 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
13207 // t1 = h + sigma1 + ch + K[i] + W[i]
13211 var ch = Ch(e, f, g)
13212 var chl = Ch(el, fl, gl)
13214 var t1l = hl + sigma1l
13215 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
13217 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
13219 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
13221 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
13223 // t2 = sigma0 + maj
13224 var t2l = sigma0l + majl
13225 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
13233 el = (dl + t1l) |
0
13234 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13241 al = (t1l + t2l) |
0
13242 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
13249 Wi = M.readInt32BE(j *
4)
13250 Wil = M.readInt32BE(j *
4 +
4)
13260 this._al = (this._al + al) |
0
13261 this._bl = (this._bl + bl) |
0
13262 this._cl = (this._cl + cl) |
0
13263 this._dl = (this._dl + dl) |
0
13264 this._el = (this._el + el) |
0
13265 this._fl = (this._fl + fl) |
0
13266 this._gl = (this._gl + gl) |
0
13267 this._hl = (this._hl + hl) |
0
13269 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
13270 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
13271 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
13272 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13273 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
13274 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
13275 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
13276 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
13279 Sha512.prototype._hash = function () {
13280 var H = new Buffer(
64)
13282 function writeInt64BE (h, l, offset) {
13283 H.writeInt32BE(h, offset)
13284 H.writeInt32BE(l, offset +
4)
13287 writeInt64BE(this._a, this._al,
0)
13288 writeInt64BE(this._b, this._bl,
8)
13289 writeInt64BE(this._c, this._cl,
16)
13290 writeInt64BE(this._d, this._dl,
24)
13291 writeInt64BE(this._e, this._el,
32)
13292 writeInt64BE(this._f, this._fl,
40)
13293 writeInt64BE(this._g, this._gl,
48)
13294 writeInt64BE(this._h, this._hl,
56)
13299 module.exports = Sha512
13301 }).call(this,require(
"buffer").Buffer)
13302 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
13303 (function (Buffer){
13305 var createHash = require('create-hash/browser');
13306 var inherits = require('inherits')
13308 var Transform = require('stream').Transform
13310 var ZEROS = new Buffer(
128)
13313 function Hmac(alg, key) {
13314 Transform.call(this)
13316 if (typeof key === 'string') {
13317 key = new Buffer(key)
13320 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
13325 if (key.length
> blocksize) {
13326 key = createHash(alg).update(key).digest()
13328 } else if (key.length < blocksize) {
13329 key = Buffer.concat([key, ZEROS], blocksize)
13332 var ipad = this._ipad = new Buffer(blocksize)
13333 var opad = this._opad = new Buffer(blocksize)
13335 for (var i =
0; i < blocksize; i++) {
13336 ipad[i] = key[i] ^
0x36
13337 opad[i] = key[i] ^
0x5C
13340 this._hash = createHash(alg).update(ipad)
13343 inherits(Hmac, Transform)
13345 Hmac.prototype.update = function (data, enc) {
13346 this._hash.update(data, enc)
13351 Hmac.prototype._transform = function (data, _, next) {
13352 this._hash.update(data)
13357 Hmac.prototype._flush = function (next) {
13358 this.push(this.digest())
13363 Hmac.prototype.digest = function (enc) {
13364 var h = this._hash.digest()
13366 return createHash(this._alg).update(this._opad).update(h).digest(enc)
13369 module.exports = function createHmac(alg, key) {
13370 return new Hmac(alg, key)
13373 }).call(this,require("buffer").Buffer)
13374 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
13375 arguments[
4][
12][
0].apply(exports,arguments)
13376 },{"dup":
12}],
47:[function(require,module,exports){
13377 var assert = require('assert')
13378 var BigInteger = require('bigi')
13380 var Point = require('./point')
13382 function Curve(p, a, b, Gx, Gy, n, h) {
13386 this.G = Point.fromAffine(this, Gx, Gy)
13390 this.infinity = new Point(this, null, null, BigInteger.ZERO)
13393 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
13396 Curve.prototype.pointFromX = function(isOdd, x) {
13397 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
13398 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
13401 if (beta.isEven() ^ !isOdd) {
13402 y = this.p.subtract(y) // -y % p
13405 return Point.fromAffine(this, x, y)
13408 Curve.prototype.isInfinity = function(Q) {
13409 if (Q === this.infinity) return true
13411 return Q.z.signum() ===
0 && Q.y.signum() !==
0
13414 Curve.prototype.isOnCurve = function(Q) {
13415 if (this.isInfinity(Q)) return true
13423 // Check that xQ and yQ are integers in the interval [
0, p -
1]
13424 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
13425 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
13427 // and check that y^
2 = x^
3 + ax + b (mod p)
13428 var lhs = y.square().mod(p)
13429 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
13430 return lhs.equals(rhs)
13434 * Validate an elliptic curve point.
13436 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
13438 Curve.prototype.validate = function(Q) {
13440 assert(!this.isInfinity(Q), 'Point is at infinity')
13441 assert(this.isOnCurve(Q), 'Point is not on the curve')
13443 // Check nQ = O (where Q is a scalar multiple of G)
13444 var nQ = Q.multiply(this.n)
13445 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
13450 module.exports = Curve
13452 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
13455 "p": "fffffffdffffffffffffffffffffffff",
13456 "a": "fffffffdfffffffffffffffffffffffc",
13457 "b": "e87579c11079f43dd824993c2cee5ed3",
13458 "n": "fffffffe0000000075a30d1b9038a115",
13460 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
13461 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
13464 "p": "fffffffffffffffffffffffffffffffeffffac73",
13467 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
13469 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
13470 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
13473 "p": "ffffffffffffffffffffffffffffffff7fffffff",
13474 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
13475 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
13476 "n": "
0100000000000000000001f4c8f927aed3ca752257",
13478 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
13479 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
13482 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
13485 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
13487 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
13488 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
13491 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
13492 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
13493 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
13494 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
13496 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
13497 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
13500 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
13503 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
13505 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
13506 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
13509 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
13510 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
13511 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
13512 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
13514 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
13515 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
13519 },{}],
49:[function(require,module,exports){
13520 var Point = require('./point')
13521 var Curve = require('./curve')
13523 var getCurveByName = require('./names')
13528 getCurveByName: getCurveByName
13531 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
13532 var BigInteger = require('bigi')
13534 var curves = require('./curves')
13535 var Curve = require('./curve')
13537 function getCurveByName(name) {
13538 var curve = curves[name]
13539 if (!curve) return null
13541 var p = new BigInteger(curve.p,
16)
13542 var a = new BigInteger(curve.a,
16)
13543 var b = new BigInteger(curve.b,
16)
13544 var n = new BigInteger(curve.n,
16)
13545 var h = new BigInteger(curve.h,
16)
13546 var Gx = new BigInteger(curve.Gx,
16)
13547 var Gy = new BigInteger(curve.Gy,
16)
13549 return new Curve(p, a, b, Gx, Gy, n, h)
13552 module.exports = getCurveByName
13554 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
13555 (function (Buffer){
13556 var assert = require('assert')
13557 var BigInteger = require('bigi')
13559 var THREE = BigInteger.valueOf(
3)
13561 function Point(curve, x, y, z) {
13562 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
13570 this.compressed = true
13573 Object.defineProperty(Point.prototype, 'zInv', {
13575 if (this._zInv === null) {
13576 this._zInv = this.z.modInverse(this.curve.p)
13583 Object.defineProperty(Point.prototype, 'affineX', {
13585 return this.x.multiply(this.zInv).mod(this.curve.p)
13589 Object.defineProperty(Point.prototype, 'affineY', {
13591 return this.y.multiply(this.zInv).mod(this.curve.p)
13595 Point.fromAffine = function(curve, x, y) {
13596 return new Point(curve, x, y, BigInteger.ONE)
13599 Point.prototype.equals = function(other) {
13600 if (other === this) return true
13601 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
13602 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
13604 // u = Y2 * Z1 - Y1 * Z2
13605 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
13607 if (u.signum() !==
0) return false
13609 // v = X2 * Z1 - X1 * Z2
13610 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
13612 return v.signum() ===
0
13615 Point.prototype.negate = function() {
13616 var y = this.curve.p.subtract(this.y)
13618 return new Point(this.curve, this.x, y, this.z)
13621 Point.prototype.add = function(b) {
13622 if (this.curve.isInfinity(this)) return b
13623 if (this.curve.isInfinity(b)) return this
13630 // u = Y2 * Z1 - Y1 * Z2
13631 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
13632 // v = X2 * Z1 - X1 * Z2
13633 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
13635 if (v.signum() ===
0) {
13636 if (u.signum() ===
0) {
13637 return this.twice() // this == b, so double
13640 return this.curve.infinity // this = -b, so infinity
13643 var v2 = v.square()
13644 var v3 = v2.multiply(v)
13645 var x1v2 = x1.multiply(v2)
13646 var zu2 = u.square().multiply(this.z)
13648 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
13649 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
13650 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
13651 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)
13652 // z3 = v^
3 * z1 * z2
13653 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
13655 return new Point(this.curve, x3, y3, z3)
13658 Point.prototype.twice = function() {
13659 if (this.curve.isInfinity(this)) return this
13660 if (this.y.signum() ===
0) return this.curve.infinity
13665 var y1z1 = y1.multiply(this.z)
13666 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
13667 var a = this.curve.a
13669 // w =
3 * x1^
2 + a * z1^
2
13670 var w = x1.square().multiply(THREE)
13672 if (a.signum() !==
0) {
13673 w = w.add(this.z.square().multiply(a))
13676 w = w.mod(this.curve.p)
13677 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
13678 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
13679 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
13680 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
13681 // z3 =
8 * (y1 * z1)^
3
13682 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
13684 return new Point(this.curve, x3, y3, z3)
13687 // Simple NAF (Non-Adjacent Form) multiplication algorithm
13688 // TODO: modularize the multiplication algorithm
13689 Point.prototype.multiply = function(k) {
13690 if (this.curve.isInfinity(this)) return this
13691 if (k.signum() ===
0) return this.curve.infinity
13694 var h = e.multiply(THREE)
13696 var neg = this.negate()
13699 for (var i = h.bitLength() -
2; i
> 0; --i) {
13702 var hBit = h.testBit(i)
13703 var eBit = e.testBit(i)
13705 if (hBit != eBit) {
13706 R = R.add(hBit ? this : neg)
13713 // Compute this*j + x*k (simultaneous multiplication)
13714 Point.prototype.multiplyTwo = function(j, x, k) {
13717 if (j.bitLength()
> k.bitLength())
13718 i = j.bitLength() -
1
13720 i = k.bitLength() -
1
13722 var R = this.curve.infinity
13723 var both = this.add(x)
13728 var jBit = j.testBit(i)
13729 var kBit = k.testBit(i)
13750 Point.prototype.getEncoded = function(compressed) {
13751 if (compressed == undefined) compressed = this.compressed
13752 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
13754 var x = this.affineX
13755 var y = this.affineY
13759 // Determine size of q in bytes
13760 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
13764 buffer = new Buffer(
1 + byteLength)
13765 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
13769 buffer = new Buffer(
1 + byteLength + byteLength)
13770 buffer.writeUInt8(
0x04,
0)
13772 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
13775 x.toBuffer(byteLength).copy(buffer,
1)
13780 Point.decodeFrom = function(curve, buffer) {
13781 var type = buffer.readUInt8(
0)
13782 var compressed = (type !==
4)
13784 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
13785 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
13789 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
13790 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
13792 var isOdd = (type ===
0x03)
13793 Q = curve.pointFromX(isOdd, x)
13796 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
13798 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
13799 Q = Point.fromAffine(curve, x, y)
13802 Q.compressed = compressed
13806 Point.prototype.toString = function () {
13807 if (this.curve.isInfinity(this)) return '(INFINITY)'
13809 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
13812 module.exports = Point
13814 }).call(this,require("buffer").Buffer)
13815 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
13816 (function (process,global,Buffer){
13819 var crypto = global.crypto || global.msCrypto
13820 if(crypto && crypto.getRandomValues) {
13821 module.exports = randomBytes;
13823 module.exports = oldBrowser;
13825 function randomBytes(size, cb) {
13826 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
13827 /* This will not work in older browsers.
13828 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
13831 crypto.getRandomValues(bytes);
13832 if (typeof cb === 'function') {
13833 return process.nextTick(function () {
13839 function oldBrowser() {
13841 'secure random number generation not supported by this browser\n'+
13842 'use chrome, FireFox or Internet Explorer
11'
13846 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
13847 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
13848 (function (Buffer){
13851 function getFunctionName(fn) {
13852 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
13855 function getTypeTypeName(type) {
13856 if (nativeTypes.Function(type)) {
13857 type = type.toJSON ? type.toJSON() : getFunctionName(type);
13859 if (nativeTypes.Object(type)) return JSON.stringify(type);
13864 function getValueTypeName(value) {
13865 if (nativeTypes.Null(value)) return '';
13867 return getFunctionName(value.constructor);
13870 function tfErrorString(type, value) {
13871 var typeTypeName = getTypeTypeName(type);
13872 var valueTypeName = getValueTypeName(value);
13874 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
13877 function tfPropertyErrorString(type, name, value) {
13878 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
13881 var nativeTypes = {
13882 Array: (function (_Array) {
13883 function Array(_x) {
13884 return _Array.apply(this, arguments);
13887 Array.toString = function () {
13888 return _Array.toString();
13892 })(function (value) {
13893 return value !== null && value !== undefined && value.constructor === Array;
13895 Boolean: function Boolean(value) {
13896 return typeof value === 'boolean';
13898 Buffer: (function (_Buffer) {
13899 function Buffer(_x2) {
13900 return _Buffer.apply(this, arguments);
13903 Buffer.toString = function () {
13904 return _Buffer.toString();
13908 })(function (value) {
13909 return Buffer.isBuffer(value);
13911 Function: function Function(value) {
13912 return typeof value === 'function';
13914 Null: function Null(value) {
13915 return value === undefined || value === null;
13917 Number: function Number(value) {
13918 return typeof value === 'number';
13920 Object: function Object(value) {
13921 return typeof value === 'object';
13923 String: function String(value) {
13924 return typeof value === 'string';
13931 function tJSON(type) {
13932 return type && type.toJSON ? type.toJSON() : type;
13935 function sJSON(type) {
13936 var json = tJSON(type);
13937 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
13941 arrayOf: function arrayOf(type) {
13942 function arrayOf(value, strict) {
13944 return nativeTypes.Array(value) && value.every(function (x) {
13945 return typeforce(type, x, strict);
13951 arrayOf.toJSON = function () {
13952 return [tJSON(type)];
13958 maybe: function maybe(type) {
13959 function maybe(value, strict) {
13960 return nativeTypes.Null(value) || typeforce(type, value, strict);
13962 maybe.toJSON = function () {
13963 return '?' + sJSON(type);
13969 object: function object(type) {
13970 function object(value, strict) {
13971 typeforce(nativeTypes.Object, value, strict);
13973 var propertyName, propertyType, propertyValue;
13976 for (propertyName in type) {
13977 propertyType = type[propertyName];
13978 propertyValue = value[propertyName];
13980 typeforce(propertyType, propertyValue, strict);
13983 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
13987 for (propertyName in value) {
13988 if (type[propertyName]) continue;
13990 throw new TypeError('Unexpected property "' + propertyName + '"');
13996 object.toJSON = function () {
14003 oneOf: function oneOf() {
14004 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
14005 types[_key] = arguments[_key];
14008 function oneOf(value, strict) {
14009 return types.some(function (type) {
14011 return typeforce(type, value, strict);
14017 oneOf.toJSON = function () {
14018 return types.map(sJSON).join('|');
14024 quacksLike: function quacksLike(type) {
14025 function quacksLike(value, strict) {
14026 return type === getValueTypeName(value);
14028 quacksLike.toJSON = function () {
14035 tuple: function tuple() {
14036 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
14037 types[_key2] = arguments[_key2];
14040 function tuple(value, strict) {
14041 return types.every(function (type, i) {
14042 return typeforce(type, value[i], strict);
14045 tuple.toJSON = function () {
14046 return '(' + types.map(sJSON).join(', ') + ')';
14052 value: function value(expected) {
14053 function value(actual) {
14054 return actual === expected;
14056 value.toJSON = function () {
14064 function compile(type) {
14065 if (nativeTypes.String(type)) {
14066 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
14068 return nativeTypes[type] || otherTypes.quacksLike(type);
14069 } else if (type && nativeTypes.Object(type)) {
14070 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
14074 for (var propertyName in type) {
14075 compiled[propertyName] = compile(type[propertyName]);
14078 return otherTypes.object(compiled);
14079 } else if (nativeTypes.Function(type)) {
14083 return otherTypes.value(type);
14086 function typeforce(_x3, _x4, _x5) {
14089 _function: while (_again) {
14095 if (nativeTypes.Function(type)) {
14096 if (type(value, strict)) return true;
14098 throw new TypeError(tfErrorString(type, value));
14102 _x3 = compile(type);
14106 continue _function;
14110 // assign all types to typeforce function
14112 Object.keys(nativeTypes).forEach(function (typeName) {
14113 var nativeType = nativeTypes[typeName];
14114 nativeType.toJSON = function () {
14118 typeforce[typeName] = nativeType;
14121 for (typeName in otherTypes) {
14122 typeforce[typeName] = otherTypes[typeName];
14125 module.exports = typeforce;
14126 module.exports.compile = compile;
14127 }).call(this,require("buffer").Buffer)
14128 },{"buffer":
7}],
54:[function(require,module,exports){
14129 (function (Buffer){
14130 var assert = require('assert')
14131 var base58check = require('bs58check')
14132 var typeForce = require('typeforce')
14133 var networks = require('./networks')
14134 var scripts = require('./scripts')
14136 function findScriptTypeByVersion (version) {
14137 for (var networkName in networks) {
14138 var network = networks[networkName]
14140 if (version === network.pubKeyHash) return 'pubkeyhash'
14141 if (version === network.scriptHash) return 'scripthash'
14145 function Address (hash, version) {
14146 typeForce('Buffer', hash)
14148 assert.strictEqual(hash.length,
20, 'Invalid hash length')
14149 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
14152 this.version = version
14155 Address.fromBase58Check = function (string) {
14156 var payload = base58check.decode(string)
14157 var version = payload.readUInt8(
0)
14158 var hash = payload.slice(
1)
14160 return new Address(hash, version)
14163 Address.fromOutputScript = function (script, network) {
14164 network = network || networks.bitcoin
14166 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
14167 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
14169 assert(false, script.toASM() + ' has no matching Address')
14172 Address.prototype.toBase58Check = function () {
14173 var payload = new Buffer(
21)
14174 payload.writeUInt8(this.version,
0)
14175 this.hash.copy(payload,
1)
14177 return base58check.encode(payload)
14180 Address.prototype.toOutputScript = function () {
14181 var scriptType = findScriptTypeByVersion(this.version)
14183 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
14184 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
14186 assert(false, this.toString() + ' has no matching Script')
14189 Address.prototype.toString = Address.prototype.toBase58Check
14191 module.exports = Address
14193 }).call(this,require("buffer").Buffer)
14194 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
14195 var bs58check = require('bs58check')
14197 function decode () {
14198 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14200 return bs58check.decode.apply(undefined, arguments)
14203 function encode () {
14204 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14206 return bs58check.encode.apply(undefined, arguments)
14214 },{"bs58check":
31}],
56:[function(require,module,exports){
14215 (function (Buffer){
14216 var assert = require('assert')
14217 var bufferutils = require('./bufferutils')
14218 var crypto = require('./crypto')
14220 var Transaction = require('./transaction')
14222 function Block () {
14224 this.prevHash = null
14225 this.merkleRoot = null
14231 Block.fromBuffer = function (buffer) {
14232 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
14235 function readSlice (n) {
14237 return buffer.slice(offset - n, offset)
14240 function readUInt32 () {
14241 var i = buffer.readUInt32LE(offset)
14246 var block = new Block()
14247 block.version = readUInt32()
14248 block.prevHash = readSlice(
32)
14249 block.merkleRoot = readSlice(
32)
14250 block.timestamp = readUInt32()
14251 block.bits = readUInt32()
14252 block.nonce = readUInt32()
14254 if (buffer.length ===
80) return block
14256 function readVarInt () {
14257 var vi = bufferutils.readVarInt(buffer, offset)
14262 // FIXME: poor performance
14263 function readTransaction () {
14264 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
14266 offset += tx.toBuffer().length
14270 var nTransactions = readVarInt()
14271 block.transactions = []
14273 for (var i =
0; i < nTransactions; ++i) {
14274 var tx = readTransaction()
14275 block.transactions.push(tx)
14281 Block.fromHex = function (hex) {
14282 return Block.fromBuffer(new Buffer(hex, 'hex'))
14285 Block.prototype.getHash = function () {
14286 return crypto.hash256(this.toBuffer(true))
14289 Block.prototype.getId = function () {
14290 return bufferutils.reverse(this.getHash()).toString('hex')
14293 Block.prototype.getUTCDate = function () {
14294 var date = new Date(
0) // epoch
14295 date.setUTCSeconds(this.timestamp)
14300 Block.prototype.toBuffer = function (headersOnly) {
14301 var buffer = new Buffer(
80)
14304 function writeSlice (slice) {
14305 slice.copy(buffer, offset)
14306 offset += slice.length
14309 function writeUInt32 (i) {
14310 buffer.writeUInt32LE(i, offset)
14314 writeUInt32(this.version)
14315 writeSlice(this.prevHash)
14316 writeSlice(this.merkleRoot)
14317 writeUInt32(this.timestamp)
14318 writeUInt32(this.bits)
14319 writeUInt32(this.nonce)
14321 if (headersOnly || !this.transactions) return buffer
14323 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
14324 var txBuffers = this.transactions.map(function (tx) {
14325 return tx.toBuffer()
14328 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
14331 Block.prototype.toHex = function (headersOnly) {
14332 return this.toBuffer(headersOnly).toString('hex')
14335 module.exports = Block
14337 }).call(this,require("buffer").Buffer)
14338 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
14339 (function (Buffer){
14340 var assert = require('assert')
14341 var opcodes = require('./opcodes')
14343 // https://github.com/feross/buffer/blob/master/index.js#L1127
14344 function verifuint (value, max) {
14345 assert(typeof value === 'number', 'cannot write a non-number as a number')
14346 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
14347 assert(value <= max, 'value is larger than maximum value for type')
14348 assert(Math.floor(value) === value, 'value has a fractional component')
14351 function pushDataSize (i) {
14352 return i < opcodes.OP_PUSHDATA1 ?
1
14358 function readPushDataInt (buffer, offset) {
14359 var opcode = buffer.readUInt8(offset)
14363 if (opcode < opcodes.OP_PUSHDATA1) {
14368 } else if (opcode === opcodes.OP_PUSHDATA1) {
14369 if (offset +
2 > buffer.length) return null
14370 number = buffer.readUInt8(offset +
1)
14374 } else if (opcode === opcodes.OP_PUSHDATA2) {
14375 if (offset +
3 > buffer.length) return null
14376 number = buffer.readUInt16LE(offset +
1)
14381 if (offset +
5 > buffer.length) return null
14382 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
14384 number = buffer.readUInt32LE(offset +
1)
14395 function readUInt64LE (buffer, offset) {
14396 var a = buffer.readUInt32LE(offset)
14397 var b = buffer.readUInt32LE(offset +
4)
14400 verifuint(b + a,
0x001fffffffffffff)
14405 function readVarInt (buffer, offset) {
14406 var t = buffer.readUInt8(offset)
14415 } else if (t <
254) {
14416 number = buffer.readUInt16LE(offset +
1)
14420 } else if (t <
255) {
14421 number = buffer.readUInt32LE(offset +
1)
14426 number = readUInt64LE(buffer, offset +
1)
14436 function writePushDataInt (buffer, number, offset) {
14437 var size = pushDataSize(number)
14441 buffer.writeUInt8(number, offset)
14444 } else if (size ===
2) {
14445 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
14446 buffer.writeUInt8(number, offset +
1)
14449 } else if (size ===
3) {
14450 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
14451 buffer.writeUInt16LE(number, offset +
1)
14455 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
14456 buffer.writeUInt32LE(number, offset +
1)
14462 function writeUInt64LE (buffer, value, offset) {
14463 verifuint(value,
0x001fffffffffffff)
14465 buffer.writeInt32LE(value & -
1, offset)
14466 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
14469 function varIntSize (i) {
14472 : i <
0x100000000 ?
5
14476 function writeVarInt (buffer, number, offset) {
14477 var size = varIntSize(number)
14481 buffer.writeUInt8(number, offset)
14484 } else if (size ===
3) {
14485 buffer.writeUInt8(
253, offset)
14486 buffer.writeUInt16LE(number, offset +
1)
14489 } else if (size ===
5) {
14490 buffer.writeUInt8(
254, offset)
14491 buffer.writeUInt32LE(number, offset +
1)
14495 buffer.writeUInt8(
255, offset)
14496 writeUInt64LE(buffer, number, offset +
1)
14502 function varIntBuffer (i) {
14503 var size = varIntSize(i)
14504 var buffer = new Buffer(size)
14505 writeVarInt(buffer, i,
0)
14510 function reverse (buffer) {
14511 var buffer2 = new Buffer(buffer)
14512 Array.prototype.reverse.call(buffer2)
14517 pushDataSize: pushDataSize,
14518 readPushDataInt: readPushDataInt,
14519 readUInt64LE: readUInt64LE,
14520 readVarInt: readVarInt,
14522 varIntBuffer: varIntBuffer,
14523 varIntSize: varIntSize,
14524 writePushDataInt: writePushDataInt,
14525 writeUInt64LE: writeUInt64LE,
14526 writeVarInt: writeVarInt
14529 }).call(this,require("buffer").Buffer)
14530 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
14531 var createHash = require('create-hash')
14533 function hash160 (buffer) {
14534 return ripemd160(sha256(buffer))
14537 function hash256 (buffer) {
14538 return sha256(sha256(buffer))
14541 function ripemd160 (buffer) {
14542 return createHash('rmd160').update(buffer).digest()
14545 function sha1 (buffer) {
14546 return createHash('sha1').update(buffer).digest()
14549 function sha256 (buffer) {
14550 return createHash('sha256').update(buffer).digest()
14553 // FIXME: Name not consistent with others
14554 var createHmac = require('create-hmac')
14556 function HmacSHA256 (buffer, secret) {
14557 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14558 return createHmac('sha256', secret).update(buffer).digest()
14561 function HmacSHA512 (buffer, secret) {
14562 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14563 return createHmac('sha512', secret).update(buffer).digest()
14567 ripemd160: ripemd160,
14572 HmacSHA256: HmacSHA256,
14573 HmacSHA512: HmacSHA512
14576 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
14577 (function (Buffer){
14578 var assert = require('assert')
14579 var createHmac = require('create-hmac')
14580 var typeForce = require('typeforce')
14582 var BigInteger = require('bigi')
14583 var ECSignature = require('./ecsignature')
14585 var ZERO = new Buffer([
0])
14586 var ONE = new Buffer([
1])
14588 // https://tools.ietf.org/html/rfc6979#section-
3.2
14589 function deterministicGenerateK (curve, hash, d, checkSig) {
14590 typeForce('Buffer', hash)
14591 typeForce('BigInteger', d)
14593 // FIXME: remove/uncomment for
2.0.0
14594 // typeForce('Function', checkSig)
14596 if (typeof checkSig !== 'function') {
14597 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
14599 checkSig = function (k) {
14602 var e = BigInteger.fromBuffer(hash)
14604 var Q = G.multiply(k)
14606 if (curve.isInfinity(Q))
14609 var r = Q.affineX.mod(n)
14610 if (r.signum() ===
0)
14613 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14614 if (s.signum() ===
0)
14622 assert.equal(hash.length,
32, 'Hash must be
256 bit')
14624 var x = d.toBuffer(
32)
14625 var k = new Buffer(
32)
14626 var v = new Buffer(
32)
14628 // Step A, ignored as hash already provided
14636 k = createHmac('sha256', k)
14644 v = createHmac('sha256', k).update(v).digest()
14647 k = createHmac('sha256', k)
14655 v = createHmac('sha256', k).update(v).digest()
14657 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
14659 v = createHmac('sha256', k).update(v).digest()
14661 var T = BigInteger.fromBuffer(v)
14663 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
14664 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
14665 k = createHmac('sha256', k)
14670 v = createHmac('sha256', k).update(v).digest()
14672 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
14674 v = createHmac('sha256', k).update(v).digest()
14675 T = BigInteger.fromBuffer(v)
14681 function sign (curve, hash, d) {
14684 var e = BigInteger.fromBuffer(hash)
14688 deterministicGenerateK(curve, hash, d, function (k) {
14689 var Q = G.multiply(k)
14691 if (curve.isInfinity(Q))
14694 r = Q.affineX.mod(n)
14695 if (r.signum() ===
0)
14698 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14699 if (s.signum() ===
0)
14705 var N_OVER_TWO = n.shiftRight(
1)
14707 // enforce low S values, see bip62: 'low s values in signatures'
14708 if (s.compareTo(N_OVER_TWO)
> 0) {
14712 return new ECSignature(r, s)
14715 function verifyRaw (curve, e, signature, Q) {
14719 var r = signature.r
14720 var s = signature.s
14722 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
14723 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
14724 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
14727 var c = s.modInverse(n)
14729 //
1.4.4 Compute u1 = es^−
1 mod n
14730 // u2 = rs^−
1 mod n
14731 var u1 = e.multiply(c).mod(n)
14732 var u2 = r.multiply(c).mod(n)
14734 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
14735 var R = G.multiplyTwo(u1, Q, u2)
14736 var v = R.affineX.mod(n)
14738 //
1.4.5 (cont.) Enforce R is not at infinity
14739 if (curve.isInfinity(R)) return false
14741 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
14745 function verify (curve, hash, signature, Q) {
14746 //
1.4.2 H = Hash(M), already done by the user
14748 var e = BigInteger.fromBuffer(hash)
14750 return verifyRaw(curve, e, signature, Q)
14754 * Recover a public key from a signature.
14756 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
14757 * Key Recovery Operation".
14759 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
14761 function recoverPubKey (curve, e, signature, i) {
14762 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
14767 var r = signature.r
14768 var s = signature.s
14770 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
14771 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
14773 // A set LSB signifies that the y-coordinate is odd
14776 // The more significant bit specifies whether we should use the
14777 // first or second candidate key.
14778 var isSecondKey = i
>> 1
14780 //
1.1 Let x = r + jn
14781 var x = isSecondKey ? r.add(n) : r
14782 var R = curve.pointFromX(isYOdd, x)
14784 //
1.4 Check that nR is at infinity
14785 var nR = R.multiply(n)
14786 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
14788 // Compute -e from e
14789 var eNeg = e.negate().mod(n)
14791 //
1.6.1 Compute Q = r^-
1 (sR - eG)
14792 // Q = r^-
1 (sR + -eG)
14793 var rInv = r.modInverse(n)
14795 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
14802 * Calculate pubkey extraction parameter.
14804 * When extracting a pubkey from a signature, we have to
14805 * distinguish four different cases. Rather than putting this
14806 * burden on the verifier, Bitcoin includes a
2-bit value with the
14809 * This function simply tries all four cases and returns the value
14810 * that resulted in a successful pubkey recovery.
14812 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
14813 for (var i =
0; i <
4; i++) {
14814 var Qprime = recoverPubKey(curve, e, signature, i)
14817 if (Qprime.equals(Q)) {
14822 throw new Error('Unable to find valid recovery factor')
14826 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
14827 deterministicGenerateK: deterministicGenerateK,
14828 recoverPubKey: recoverPubKey,
14831 verifyRaw: verifyRaw
14834 }).call(this,require(
"buffer").Buffer)
14835 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
14836 (function (Buffer){
14837 var assert = require('assert')
14838 var base58check = require('bs58check')
14839 var ecdsa = require('./ecdsa')
14840 var networks = require('./networks')
14841 var randomBytes = require('randombytes')
14842 var typeForce = require('typeforce')
14844 var BigInteger = require('bigi')
14845 var ECPubKey = require('./ecpubkey')
14847 var ecurve = require('ecurve')
14848 var secp256k1 = ecurve.getCurveByName('secp256k1')
14850 function ECKey (d, compressed) {
14851 assert(d.signum()
> 0, 'Private key must be greater than
0')
14852 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
14854 var Q = ECKey.curve.G.multiply(d)
14857 this.pub = new ECPubKey(Q, compressed)
14861 ECKey.curve = secp256k1
14863 // Static constructors
14864 ECKey.fromWIF = function (string) {
14865 var payload = base58check.decode(string)
14866 var compressed = false
14868 // Ignore the version byte
14869 payload = payload.slice(
1)
14871 if (payload.length ===
33) {
14872 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
14874 // Truncate the compression flag
14875 payload = payload.slice(
0, -
1)
14879 assert.equal(payload.length,
32, 'Invalid WIF payload length')
14881 var d = BigInteger.fromBuffer(payload)
14882 return new ECKey(d, compressed)
14885 ECKey.makeRandom = function (compressed, rng) {
14886 rng = rng || randomBytes
14888 var buffer = rng(
32)
14889 typeForce('Buffer', buffer)
14890 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
14892 var d = BigInteger.fromBuffer(buffer)
14893 d = d.mod(ECKey.curve.n)
14895 return new ECKey(d, compressed)
14898 // Export functions
14899 ECKey.prototype.toWIF = function (network) {
14900 network = network || networks.bitcoin
14902 var bufferLen = this.pub.compressed ?
34 :
33
14903 var buffer = new Buffer(bufferLen)
14905 buffer.writeUInt8(network.wif,
0)
14906 this.d.toBuffer(
32).copy(buffer,
1)
14908 if (this.pub.compressed) {
14909 buffer.writeUInt8(
0x01,
33)
14912 return base58check.encode(buffer)
14916 ECKey.prototype.sign = function (hash) {
14917 return ecdsa.sign(ECKey.curve, hash, this.d)
14920 module.exports = ECKey
14922 }).call(this,require(
"buffer").Buffer)
14923 },{
"./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){
14924 (function (Buffer){
14925 var crypto = require('./crypto')
14926 var ecdsa = require('./ecdsa')
14927 var typeForce = require('typeforce')
14928 var networks = require('./networks')
14930 var Address = require('./address')
14932 var ecurve = require('ecurve')
14933 var secp256k1 = ecurve.getCurveByName('secp256k1')
14935 function ECPubKey (Q, compressed) {
14936 if (compressed === undefined) {
14940 typeForce('Point', Q)
14941 typeForce('Boolean', compressed)
14943 this.compressed = compressed
14948 ECPubKey.curve = secp256k1
14950 // Static constructors
14951 ECPubKey.fromBuffer = function (buffer) {
14952 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
14953 return new ECPubKey(Q, Q.compressed)
14956 ECPubKey.fromHex = function (hex) {
14957 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
14961 ECPubKey.prototype.getAddress = function (network) {
14962 network = network || networks.bitcoin
14964 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
14967 ECPubKey.prototype.verify = function (hash, signature) {
14968 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
14971 // Export functions
14972 ECPubKey.prototype.toBuffer = function () {
14973 return this.Q.getEncoded(this.compressed)
14976 ECPubKey.prototype.toHex = function () {
14977 return this.toBuffer().toString('hex')
14980 module.exports = ECPubKey
14982 }).call(this,require(
"buffer").Buffer)
14983 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
14984 (function (Buffer){
14985 var assert = require('assert')
14986 var typeForce = require('typeforce')
14988 var BigInteger = require('bigi')
14990 function ECSignature (r, s) {
14991 typeForce('BigInteger', r)
14992 typeForce('BigInteger', s)
14998 ECSignature.parseCompact = function (buffer) {
14999 assert.equal(buffer.length,
65, 'Invalid signature length')
15000 var i = buffer.readUInt8(
0) -
27
15003 assert.equal(i, i &
7, 'Invalid signature parameter')
15004 var compressed = !!(i &
4)
15006 // Recovery param only
15009 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
15010 var s = BigInteger.fromBuffer(buffer.slice(
33))
15013 compressed: compressed,
15015 signature: new ECSignature(r, s)
15019 ECSignature.fromDER = function (buffer) {
15020 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
15021 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
15022 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
15024 var rLen = buffer.readUInt8(
3)
15025 assert(rLen
> 0, 'R length is zero')
15027 var offset =
4 + rLen
15028 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
15030 var sLen = buffer.readUInt8(offset +
1)
15031 assert(sLen
> 0, 'S length is zero')
15033 var rB = buffer.slice(
4, offset)
15034 var sB = buffer.slice(offset +
2)
15037 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
15038 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
15041 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
15042 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
15045 assert.equal(offset, buffer.length, 'Invalid DER encoding')
15046 var r = BigInteger.fromDERInteger(rB)
15047 var s = BigInteger.fromDERInteger(sB)
15049 assert(r.signum()
>=
0, 'R value is negative')
15050 assert(s.signum()
>=
0, 'S value is negative')
15052 return new ECSignature(r, s)
15055 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
15056 ECSignature.parseScriptSignature = function (buffer) {
15057 var hashType = buffer.readUInt8(buffer.length -
1)
15058 var hashTypeMod = hashType & ~
0x80
15060 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15063 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
15068 ECSignature.prototype.toCompact = function (i, compressed) {
15075 var buffer = new Buffer(
65)
15076 buffer.writeUInt8(i,
0)
15078 this.r.toBuffer(
32).copy(buffer,
1)
15079 this.s.toBuffer(
32).copy(buffer,
33)
15084 ECSignature.prototype.toDER = function () {
15085 var rBa = this.r.toDERInteger()
15086 var sBa = this.s.toDERInteger()
15091 sequence.push(
0x02, rBa.length)
15092 sequence = sequence.concat(rBa)
15095 sequence.push(
0x02, sBa.length)
15096 sequence = sequence.concat(sBa)
15099 sequence.unshift(
0x30, sequence.length)
15101 return new Buffer(sequence)
15104 ECSignature.prototype.toScriptSignature = function (hashType) {
15105 var hashTypeMod = hashType & ~
0x80
15106 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15108 var hashTypeBuffer = new Buffer(
1)
15109 hashTypeBuffer.writeUInt8(hashType,
0)
15111 return Buffer.concat([this.toDER(), hashTypeBuffer])
15114 module.exports = ECSignature
15116 }).call(this,require(
"buffer").Buffer)
15117 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
15118 (function (Buffer){
15119 var assert = require('assert')
15120 var base58check = require('bs58check')
15121 var bcrypto = require('./crypto')
15122 var createHmac = require('create-hmac')
15123 var typeForce = require('typeforce')
15124 var networks = require('./networks')
15126 var BigInteger = require('bigi')
15127 var ECKey = require('./eckey')
15128 var ECPubKey = require('./ecpubkey')
15130 var ecurve = require('ecurve')
15131 var curve = ecurve.getCurveByName('secp256k1')
15133 function findBIP32NetworkByVersion (version) {
15134 for (var name in networks) {
15135 var network = networks[name]
15137 if (version === network.bip32.private || version === network.bip32.public) {
15142 assert(false, 'Could not find network for ' + version.toString(
16))
15145 function HDNode (K, chainCode, network) {
15146 network = network || networks.bitcoin
15148 typeForce('Buffer', chainCode)
15150 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
15151 assert(network.bip32, 'Unknown BIP32 constants for network')
15153 this.chainCode = chainCode
15156 this.parentFingerprint =
0x00000000
15157 this.network = network
15159 if (K instanceof BigInteger) {
15160 this.privKey = new ECKey(K, true)
15161 this.pubKey = this.privKey.pub
15162 } else if (K instanceof ECKey) {
15163 assert(K.pub.compressed, 'ECKey must be compressed')
15165 this.pubKey = K.pub
15166 } else if (K instanceof ECPubKey) {
15167 assert(K.compressed, 'ECPubKey must be compressed')
15170 this.pubKey = new ECPubKey(K, true)
15174 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
15175 HDNode.HIGHEST_BIT =
0x80000000
15178 HDNode.fromSeedBuffer = function (seed, network) {
15179 typeForce('Buffer', seed)
15181 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
15182 assert(seed.length <=
64, 'Seed should be at most
512 bits')
15184 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
15185 var IL = I.slice(
0,
32)
15186 var IR = I.slice(
32)
15188 // In case IL is
0 or
>= n, the master key is invalid
15189 // This is handled by `new ECKey` in the HDNode constructor
15190 var pIL = BigInteger.fromBuffer(IL)
15192 return new HDNode(pIL, IR, network)
15195 HDNode.fromSeedHex = function (hex, network) {
15196 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
15199 HDNode.fromBase58 = function (string, network) {
15200 return HDNode.fromBuffer(base58check.decode(string), network, true)
15203 // FIXME: remove in
2.x.y
15204 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
15205 if (!__ignoreDeprecation) {
15206 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
15209 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
15211 //
4 byte: version bytes
15212 var version = buffer.readUInt32BE(
0)
15215 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
15219 network = findBIP32NetworkByVersion(version)
15222 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
15223 var depth = buffer.readUInt8(
4)
15225 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15226 var parentFingerprint = buffer.readUInt32BE(
5)
15228 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
15231 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15232 // This is encoded in MSB order. (
0x00000000 if master key)
15233 var index = buffer.readUInt32BE(
9)
15234 assert(depth
> 0 || index ===
0, 'Invalid index')
15236 //
32 bytes: the chain code
15237 var chainCode = buffer.slice(
13,
45)
15240 //
33 bytes: private key data (
0x00 + k)
15241 if (version === network.bip32.private) {
15242 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
15243 data = buffer.slice(
46,
78)
15244 var d = BigInteger.fromBuffer(data)
15245 hd = new HDNode(d, chainCode, network)
15247 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
15249 data = buffer.slice(
45,
78)
15250 var Q = ecurve.Point.decodeFrom(curve, data)
15251 assert.equal(Q.compressed, true, 'Invalid public key')
15253 // Verify that the X coordinate in the public point corresponds to a point on the curve.
15254 // If not, the extended public key is invalid.
15257 hd = new HDNode(Q, chainCode, network)
15262 hd.parentFingerprint = parentFingerprint
15267 // FIXME: remove in
2.x.y
15268 HDNode.fromHex = function (hex, network) {
15269 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
15272 HDNode.prototype.getIdentifier = function () {
15273 return bcrypto.hash160(this.pubKey.toBuffer())
15276 HDNode.prototype.getFingerprint = function () {
15277 return this.getIdentifier().slice(
0,
4)
15280 HDNode.prototype.getAddress = function () {
15281 return this.pubKey.getAddress(this.network)
15284 HDNode.prototype.neutered = function () {
15285 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
15286 neutered.depth = this.depth
15287 neutered.index = this.index
15288 neutered.parentFingerprint = this.parentFingerprint
15293 HDNode.prototype.toBase58 = function (isPrivate) {
15294 return base58check.encode(this.toBuffer(isPrivate, true))
15297 // FIXME: remove in
2.x.y
15298 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
15299 if (isPrivate === undefined) {
15300 isPrivate = !!this.privKey
15302 // FIXME: remove in
2.x.y
15304 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
15307 if (!__ignoreDeprecation) {
15308 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
15312 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
15313 var buffer = new Buffer(HDNode.LENGTH)
15315 //
4 bytes: version bytes
15316 buffer.writeUInt32BE(version,
0)
15319 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
15320 buffer.writeUInt8(this.depth,
4)
15322 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15323 buffer.writeUInt32BE(this.parentFingerprint,
5)
15325 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15326 // This is encoded in Big endian. (
0x00000000 if master key)
15327 buffer.writeUInt32BE(this.index,
9)
15329 //
32 bytes: the chain code
15330 this.chainCode.copy(buffer,
13)
15332 //
33 bytes: the public key or private key data
15334 // FIXME: remove in
2.x.y
15335 assert(this.privKey, 'Missing private key')
15337 //
0x00 + k for private keys
15338 buffer.writeUInt8(
0,
45)
15339 this.privKey.d.toBuffer(
32).copy(buffer,
46)
15341 // X9.62 encoding for public keys
15342 this.pubKey.toBuffer().copy(buffer,
45)
15348 // FIXME: remove in
2.x.y
15349 HDNode.prototype.toHex = function (isPrivate) {
15350 return this.toBuffer(isPrivate).toString('hex')
15353 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
15354 HDNode.prototype.derive = function (index) {
15355 var isHardened = index
>= HDNode.HIGHEST_BIT
15356 var indexBuffer = new Buffer(
4)
15357 indexBuffer.writeUInt32BE(index,
0)
15363 assert(this.privKey, 'Could not derive hardened child key')
15365 // data =
0x00 || ser256(kpar) || ser32(index)
15366 data = Buffer.concat([
15367 this.privKey.d.toBuffer(
33),
15373 // data = serP(point(kpar)) || ser32(index)
15374 // = serP(Kpar) || ser32(index)
15375 data = Buffer.concat([
15376 this.pubKey.toBuffer(),
15381 var I = createHmac('sha512', this.chainCode).update(data).digest()
15382 var IL = I.slice(
0,
32)
15383 var IR = I.slice(
32)
15385 var pIL = BigInteger.fromBuffer(IL)
15387 // In case parse256(IL)
>= n, proceed with the next value for i
15388 if (pIL.compareTo(curve.n)
>=
0) {
15389 return this.derive(index +
1)
15392 // Private parent key -
> private child key
15394 if (this.privKey) {
15395 // ki = parse256(IL) + kpar (mod n)
15396 var ki = pIL.add(this.privKey.d).mod(curve.n)
15398 // In case ki ==
0, proceed with the next value for i
15399 if (ki.signum() ===
0) {
15400 return this.derive(index +
1)
15403 hd = new HDNode(ki, IR, this.network)
15405 // Public parent key -
> public child key
15407 // Ki = point(parse256(IL)) + Kpar
15409 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
15411 // In case Ki is the point at infinity, proceed with the next value for i
15412 if (curve.isInfinity(Ki)) {
15413 return this.derive(index +
1)
15416 hd = new HDNode(Ki, IR, this.network)
15419 hd.depth = this.depth +
1
15421 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
15426 HDNode.prototype.deriveHardened = function (index) {
15427 // Only derives hardened private keys by default
15428 return this.derive(index + HDNode.HIGHEST_BIT)
15431 HDNode.prototype.toString = HDNode.prototype.toBase58
15433 module.exports = HDNode
15435 }).call(this,require("buffer").Buffer)
15436 },{"./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){
15438 Address: require('./address'),
15439 base58check: require('./base58check'),
15440 Block: require('./block'),
15441 bufferutils: require('./bufferutils'),
15442 crypto: require('./crypto'),
15443 ecdsa: require('./ecdsa'),
15444 ECKey: require('./eckey'),
15445 ECPubKey: require('./ecpubkey'),
15446 ECSignature: require('./ecsignature'),
15447 Message: require('./message'),
15448 opcodes: require('./opcodes'),
15449 HDNode: require('./hdnode'),
15450 Script: require('./script'),
15451 scripts: require('./scripts'),
15452 Transaction: require('./transaction'),
15453 TransactionBuilder: require('./transaction_builder'),
15454 networks: require('./networks'),
15455 Wallet: require('./wallet')
15458 },{"./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){
15459 (function (Buffer){
15460 var bufferutils = require('./bufferutils')
15461 var crypto = require('./crypto')
15462 var ecdsa = require('./ecdsa')
15463 var networks = require('./networks')
15465 var BigInteger = require('bigi')
15466 var ECPubKey = require('./ecpubkey')
15467 var ECSignature = require('./ecsignature')
15469 var ecurve = require('ecurve')
15470 var ecparams = ecurve.getCurveByName('secp256k1')
15472 function magicHash (message, network) {
15473 var magicPrefix = new Buffer(network.magicPrefix)
15474 var messageBuffer = new Buffer(message)
15475 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
15477 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
15478 return crypto.hash256(buffer)
15481 function sign (privKey, message, network) {
15482 network = network || networks.bitcoin
15484 var hash = magicHash(message, network)
15485 var signature = privKey.sign(hash)
15486 var e = BigInteger.fromBuffer(hash)
15487 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
15489 return signature.toCompact(i, privKey.pub.compressed)
15492 // TODO: network could be implied from address
15493 function verify (address, signature, message, network) {
15494 if (!Buffer.isBuffer(signature)) {
15495 signature = new Buffer(signature, 'base64')
15498 network = network || networks.bitcoin
15500 var hash = magicHash(message, network)
15501 var parsed = ECSignature.parseCompact(signature)
15502 var e = BigInteger.fromBuffer(hash)
15503 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
15505 var pubKey = new ECPubKey(Q, parsed.compressed)
15506 return pubKey.getAddress(network).toString() === address.toString()
15510 magicHash: magicHash,
15515 }).call(this,require("buffer").Buffer)
15516 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
15517 // https://en.bitcoin.it/wiki/List_of_address_prefixes
15518 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
15522 magicPrefix: '\x18Bitcoin Signed Message:\n',
15524 public:
0x0488b21e,
15525 private:
0x0488ade4
15530 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
15531 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
15532 estimateFee: estimateFee('bitcoin')
15535 magicPrefix: '\x18Bitcoin Signed Message:\n',
15537 public:
0x043587cf,
15538 private:
0x04358394
15543 dustThreshold:
546,
15545 estimateFee: estimateFee('testnet')
15548 magicPrefix: '\x19Litecoin Signed Message:\n',
15550 public:
0x019da462,
15551 private:
0x019d9cfe
15556 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
15557 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
15558 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
15559 estimateFee: estimateFee('litecoin')
15562 magicPrefix: '\x19Dogecoin Signed Message:\n',
15564 public:
0x02facafd,
15565 private:
0x02fac398
15570 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
15571 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
15572 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
15573 estimateFee: estimateFee('dogecoin')
15576 magicPrefix: '\x18Viacoin Signed Message:\n',
15578 public:
0x0488b21e,
15579 private:
0x0488ade4
15584 dustThreshold:
560,
15585 dustSoftThreshold:
100000,
15586 feePerKb:
100000, //
15587 estimateFee: estimateFee('viacoin')
15590 magicPrefix: '\x18Viacoin Signed Message:\n',
15592 public:
0x043587cf,
15593 private:
0x04358394
15598 dustThreshold:
560,
15599 dustSoftThreshold:
100000,
15601 estimateFee: estimateFee('viacointestnet')
15604 magicPrefix: '\x19Gamerscoin Signed Message:\n',
15606 public:
0x019da462,
15607 private:
0x019d9cfe
15612 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
15613 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
15614 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
15615 estimateFee: estimateFee('gamerscoin')
15618 magicPrefix: '\x19Jumbucks Signed Message:\n',
15620 public:
0x037a689a,
15621 private:
0x037a6460
15627 dustSoftThreshold:
10000,
15629 estimateFee: estimateFee('jumbucks')
15632 magicPrefix: '\x18Zetacoin Signed Message:\n',
15634 public:
0x0488b21e,
15635 private:
0x0488ade4
15640 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
15641 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
15642 estimateFee: estimateFee('zetacoin')
15646 function estimateFee (type) {
15647 return function (tx) {
15648 var network = networks[type]
15649 var baseFee = network.feePerKb
15650 var byteSize = tx.toBuffer().length
15652 var fee = baseFee * Math.ceil(byteSize /
1000)
15653 if (network.dustSoftThreshold === undefined) return fee
15655 tx.outs.forEach(function (e) {
15656 if (e.value < network.dustSoftThreshold) {
15665 module.exports = networks
15667 },{}],
67:[function(require,module,exports){
15708 OP_TOALTSTACK:
107,
15709 OP_FROMALTSTACK:
108,
15741 OP_EQUALVERIFY:
136,
15766 OP_NUMEQUALVERIFY:
157,
15767 OP_NUMNOTEQUAL:
158,
15769 OP_GREATERTHAN:
160,
15770 OP_LESSTHANOREQUAL:
161,
15771 OP_GREATERTHANOREQUAL:
162,
15783 OP_CODESEPARATOR:
171,
15785 OP_CHECKSIGVERIFY:
173,
15786 OP_CHECKMULTISIG:
174,
15787 OP_CHECKMULTISIGVERIFY:
175,
15801 // template matching params
15802 OP_PUBKEYHASH:
253,
15804 OP_INVALIDOPCODE:
255
15807 },{}],
68:[function(require,module,exports){
15808 (function (Buffer){
15809 var assert = require('assert')
15810 var bufferutils = require('./bufferutils')
15811 var crypto = require('./crypto')
15812 var typeForce = require('typeforce')
15813 var opcodes = require('./opcodes')
15815 function Script (buffer, chunks) {
15816 typeForce('Buffer', buffer)
15817 typeForce('Array', chunks)
15819 this.buffer = buffer
15820 this.chunks = chunks
15823 Script.fromASM = function (asm) {
15824 var strChunks = asm.split(' ')
15825 var chunks = strChunks.map(function (strChunk) {
15827 if (strChunk in opcodes) {
15828 return opcodes[strChunk]
15832 return new Buffer(strChunk, 'hex')
15836 return Script.fromChunks(chunks)
15839 Script.fromBuffer = function (buffer) {
15843 while (i < buffer.length) {
15844 var opcode = buffer.readUInt8(i)
15847 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
15848 var d = bufferutils.readPushDataInt(buffer, i)
15850 // did reading a pushDataInt fail? return non-chunked script
15851 if (d === null) return new Script(buffer, [])
15854 // attempt to read too much data?
15855 if (i + d.number
> buffer.length) return new Script(buffer, [])
15857 var data = buffer.slice(i, i + d.number)
15864 chunks.push(opcode)
15870 return new Script(buffer, chunks)
15873 Script.fromChunks = function (chunks) {
15874 typeForce('Array', chunks)
15876 var bufferSize = chunks.reduce(function (accum, chunk) {
15878 if (Buffer.isBuffer(chunk)) {
15879 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
15886 var buffer = new Buffer(bufferSize)
15889 chunks.forEach(function (chunk) {
15891 if (Buffer.isBuffer(chunk)) {
15892 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
15894 chunk.copy(buffer, offset)
15895 offset += chunk.length
15899 buffer.writeUInt8(chunk, offset)
15904 assert.equal(offset, buffer.length, 'Could not decode chunks')
15905 return new Script(buffer, chunks)
15908 Script.fromHex = function (hex) {
15909 return Script.fromBuffer(new Buffer(hex, 'hex'))
15912 Script.EMPTY = Script.fromChunks([])
15914 Script.prototype.getHash = function () {
15915 return crypto.hash160(this.buffer)
15918 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
15919 Script.prototype.without = function (needle) {
15920 return Script.fromChunks(this.chunks.filter(function (op) {
15921 return op !== needle
15925 var reverseOps = []
15926 for (var op in opcodes) {
15927 var code = opcodes[op]
15928 reverseOps[code] = op
15931 Script.prototype.toASM = function () {
15932 return this.chunks.map(function (chunk) {
15934 if (Buffer.isBuffer(chunk)) {
15935 return chunk.toString('hex')
15939 return reverseOps[chunk]
15944 Script.prototype.toBuffer = function () {
15948 Script.prototype.toHex = function () {
15949 return this.toBuffer().toString('hex')
15952 module.exports = Script
15954 }).call(this,require("buffer").Buffer)
15955 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
15956 (function (Buffer){
15957 var assert = require('assert')
15958 var ops = require('./opcodes')
15959 var typeForce = require('typeforce')
15961 var ecurve = require('ecurve')
15962 var curve = ecurve.getCurveByName('secp256k1')
15964 var ECSignature = require('./ecsignature')
15965 var Script = require('./script')
15967 function isCanonicalPubKey (buffer) {
15968 if (!Buffer.isBuffer(buffer)) return false
15971 ecurve.Point.decodeFrom(curve, buffer)
15973 if (!(e.message.match(/Invalid sequence (length|tag)/)))
15982 function isCanonicalSignature (buffer) {
15983 if (!Buffer.isBuffer(buffer)) return false
15986 ECSignature.parseScriptSignature(buffer)
15988 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/))) {
15998 function isPubKeyHashInput (script) {
15999 return script.chunks.length ===
2 &&
16000 isCanonicalSignature(script.chunks[
0]) &&
16001 isCanonicalPubKey(script.chunks[
1])
16004 function isPubKeyHashOutput (script) {
16005 return script.chunks.length ===
5 &&
16006 script.chunks[
0] === ops.OP_DUP &&
16007 script.chunks[
1] === ops.OP_HASH160 &&
16008 Buffer.isBuffer(script.chunks[
2]) &&
16009 script.chunks[
2].length ===
20 &&
16010 script.chunks[
3] === ops.OP_EQUALVERIFY &&
16011 script.chunks[
4] === ops.OP_CHECKSIG
16014 function isPubKeyInput (script) {
16015 return script.chunks.length ===
1 &&
16016 isCanonicalSignature(script.chunks[
0])
16019 function isPubKeyOutput (script) {
16020 return script.chunks.length ===
2 &&
16021 isCanonicalPubKey(script.chunks[
0]) &&
16022 script.chunks[
1] === ops.OP_CHECKSIG
16025 function isScriptHashInput (script, allowIncomplete) {
16026 if (script.chunks.length <
2) return false
16028 var lastChunk = script.chunks[script.chunks.length -
1]
16029 if (!Buffer.isBuffer(lastChunk)) return false
16031 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
16032 var redeemScript = Script.fromBuffer(lastChunk)
16034 // is redeemScript a valid script?
16035 if (redeemScript.chunks.length ===
0) return false
16037 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
16040 function isScriptHashOutput (script) {
16041 return script.chunks.length ===
3 &&
16042 script.chunks[
0] === ops.OP_HASH160 &&
16043 Buffer.isBuffer(script.chunks[
1]) &&
16044 script.chunks[
1].length ===
20 &&
16045 script.chunks[
2] === ops.OP_EQUAL
16048 // allowIncomplete is to account for combining signatures
16049 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
16050 function isMultisigInput (script, allowIncomplete) {
16051 if (script.chunks.length <
2) return false
16052 if (script.chunks[
0] !== ops.OP_0) return false
16054 if (allowIncomplete) {
16055 return script.chunks.slice(
1).every(function (chunk) {
16056 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
16060 return script.chunks.slice(
1).every(isCanonicalSignature)
16063 function isMultisigOutput (script) {
16064 if (script.chunks.length <
4) return false
16065 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
16067 var mOp = script.chunks[
0]
16068 if (mOp === ops.OP_0) return false
16069 if (mOp < ops.OP_1) return false
16070 if (mOp
> ops.OP_16) return false
16072 var nOp = script.chunks[script.chunks.length -
2]
16073 if (nOp === ops.OP_0) return false
16074 if (nOp < ops.OP_1) return false
16075 if (nOp
> ops.OP_16) return false
16077 var m = mOp - (ops.OP_1 -
1)
16078 var n = nOp - (ops.OP_1 -
1)
16079 if (n < m) return false
16081 var pubKeys = script.chunks.slice(
1, -
2)
16082 if (n < pubKeys.length) return false
16084 return pubKeys.every(isCanonicalPubKey)
16087 function isNullDataOutput (script) {
16088 return script.chunks[
0] === ops.OP_RETURN
16091 function classifyOutput (script) {
16092 typeForce('Script', script)
16094 if (isPubKeyHashOutput(script)) {
16095 return 'pubkeyhash'
16096 } else if (isScriptHashOutput(script)) {
16097 return 'scripthash'
16098 } else if (isMultisigOutput(script)) {
16100 } else if (isPubKeyOutput(script)) {
16102 } else if (isNullDataOutput(script)) {
16106 return 'nonstandard'
16109 function classifyInput (script, allowIncomplete) {
16110 typeForce('Script', script)
16112 if (isPubKeyHashInput(script)) {
16113 return 'pubkeyhash'
16114 } else if (isMultisigInput(script, allowIncomplete)) {
16116 } else if (isScriptHashInput(script, allowIncomplete)) {
16117 return 'scripthash'
16118 } else if (isPubKeyInput(script)) {
16122 return 'nonstandard'
16125 // Standard Script Templates
16126 // {pubKey} OP_CHECKSIG
16127 function pubKeyOutput (pubKey) {
16128 return Script.fromChunks([
16134 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
16135 function pubKeyHashOutput (hash) {
16136 typeForce('Buffer', hash)
16138 return Script.fromChunks([
16142 ops.OP_EQUALVERIFY,
16147 // OP_HASH160 {scriptHash} OP_EQUAL
16148 function scriptHashOutput (hash) {
16149 typeForce('Buffer', hash)
16151 return Script.fromChunks([
16158 // m [pubKeys ...] n OP_CHECKMULTISIG
16159 function multisigOutput (m, pubKeys) {
16160 typeForce(['ECPubKey'], pubKeys)
16162 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
16164 var pubKeyBuffers = pubKeys.map(function (pubKey) {
16165 return pubKey.toBuffer()
16167 var n = pubKeys.length
16169 return Script.fromChunks([].concat(
16170 (ops.OP_1 -
1) + m,
16172 (ops.OP_1 -
1) + n,
16173 ops.OP_CHECKMULTISIG
16178 function pubKeyInput (signature) {
16179 typeForce('Buffer', signature)
16181 return Script.fromChunks([signature])
16184 // {signature} {pubKey}
16185 function pubKeyHashInput (signature, pubKey) {
16186 typeForce('Buffer', signature)
16188 return Script.fromChunks([signature, pubKey.toBuffer()])
16191 //
<scriptSig> {serialized scriptPubKey script}
16192 function scriptHashInput (scriptSig, scriptPubKey) {
16193 return Script.fromChunks([].concat(
16195 scriptPubKey.toBuffer()
16199 // OP_0 [signatures ...]
16200 function multisigInput (signatures, scriptPubKey) {
16201 if (scriptPubKey) {
16202 assert(isMultisigOutput(scriptPubKey))
16204 var mOp = scriptPubKey.chunks[
0]
16205 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
16206 var m = mOp - (ops.OP_1 -
1)
16207 var n = nOp - (ops.OP_1 -
1)
16209 assert(signatures.length
>= m, 'Not enough signatures provided')
16210 assert(signatures.length <= n, 'Too many signatures provided')
16213 return Script.fromChunks([].concat(ops.OP_0, signatures))
16216 function nullDataOutput (data) {
16217 return Script.fromChunks([ops.OP_RETURN, data])
16221 isCanonicalPubKey: isCanonicalPubKey,
16222 isCanonicalSignature: isCanonicalSignature,
16223 isPubKeyHashInput: isPubKeyHashInput,
16224 isPubKeyHashOutput: isPubKeyHashOutput,
16225 isPubKeyInput: isPubKeyInput,
16226 isPubKeyOutput: isPubKeyOutput,
16227 isScriptHashInput: isScriptHashInput,
16228 isScriptHashOutput: isScriptHashOutput,
16229 isMultisigInput: isMultisigInput,
16230 isMultisigOutput: isMultisigOutput,
16231 isNullDataOutput: isNullDataOutput,
16232 classifyOutput: classifyOutput,
16233 classifyInput: classifyInput,
16234 pubKeyOutput: pubKeyOutput,
16235 pubKeyHashOutput: pubKeyHashOutput,
16236 scriptHashOutput: scriptHashOutput,
16237 multisigOutput: multisigOutput,
16238 pubKeyInput: pubKeyInput,
16239 pubKeyHashInput: pubKeyHashInput,
16240 scriptHashInput: scriptHashInput,
16241 multisigInput: multisigInput,
16242 dataOutput: function (data) {
16243 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
16244 return nullDataOutput(data)
16246 nullDataOutput: nullDataOutput
16249 }).call(this,require("buffer").Buffer)
16250 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
16251 (function (Buffer){
16252 var assert = require('assert')
16253 var bufferutils = require('./bufferutils')
16254 var crypto = require('./crypto')
16255 var typeForce = require('typeforce')
16256 var opcodes = require('./opcodes')
16257 var scripts = require('./scripts')
16259 var Address = require('./address')
16260 var ECSignature = require('./ecsignature')
16261 var Script = require('./script')
16263 function Transaction () {
16270 Transaction.DEFAULT_SEQUENCE =
0xffffffff
16271 Transaction.SIGHASH_ALL =
0x01
16272 Transaction.SIGHASH_NONE =
0x02
16273 Transaction.SIGHASH_SINGLE =
0x03
16274 Transaction.SIGHASH_ANYONECANPAY =
0x80
16276 Transaction.fromBuffer = function (buffer, __disableAssert) {
16278 function readSlice (n) {
16280 return buffer.slice(offset - n, offset)
16283 function readUInt32 () {
16284 var i = buffer.readUInt32LE(offset)
16289 function readUInt64 () {
16290 var i = bufferutils.readUInt64LE(buffer, offset)
16295 function readVarInt () {
16296 var vi = bufferutils.readVarInt(buffer, offset)
16301 function readScript () {
16302 return Script.fromBuffer(readSlice(readVarInt()))
16305 function readGenerationScript () {
16306 return new Script(readSlice(readVarInt()), [])
16309 var tx = new Transaction()
16310 tx.version = readUInt32()
16312 var vinLen = readVarInt()
16313 for (var i =
0; i < vinLen; ++i) {
16314 var hash = readSlice(
32)
16316 if (Transaction.isCoinbaseHash(hash)) {
16319 index: readUInt32(),
16320 script: readGenerationScript(),
16321 sequence: readUInt32()
16326 index: readUInt32(),
16327 script: readScript(),
16328 sequence: readUInt32()
16333 var voutLen = readVarInt()
16334 for (i =
0; i < voutLen; ++i) {
16336 value: readUInt64(),
16337 script: readScript()
16341 tx.locktime = readUInt32()
16343 if (!__disableAssert) {
16344 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
16350 Transaction.fromHex = function (hex) {
16351 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
16354 Transaction.isCoinbaseHash = function (buffer) {
16355 return Array.prototype.every.call(buffer, function (x) {
16361 * Create a new txIn.
16363 * Can be called with any of:
16365 * - A transaction and an index
16366 * - A transaction hash and an index
16368 * Note that this method does not sign the created input.
16370 Transaction.prototype.addInput = function (hash, index, sequence, script) {
16371 if (sequence === undefined || sequence === null) {
16372 sequence = Transaction.DEFAULT_SEQUENCE
16375 script = script || Script.EMPTY
16377 if (typeof hash === 'string') {
16378 // TxId hex is big-endian, we need little-endian
16379 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
16380 } else if (hash instanceof Transaction) {
16381 hash = hash.getHash()
16384 typeForce('Buffer', hash)
16385 typeForce('Number', index)
16386 typeForce('Number', sequence)
16387 typeForce('Script', script)
16389 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
16391 // Add the input and return the input's index
16392 return (this.ins.push({
16401 * Create a new txOut.
16403 * Can be called with:
16405 * - A base58 address string and a value
16406 * - An Address object and a value
16407 * - A scriptPubKey Script and a value
16409 Transaction.prototype.addOutput = function (scriptPubKey, value) {
16410 // Attempt to get a valid address if it's a base58 address string
16411 if (typeof scriptPubKey === 'string') {
16412 scriptPubKey = Address.fromBase58Check(scriptPubKey)
16415 // Attempt to get a valid script if it's an Address object
16416 if (scriptPubKey instanceof Address) {
16417 scriptPubKey = scriptPubKey.toOutputScript()
16420 typeForce('Script', scriptPubKey)
16421 typeForce('Number', value)
16423 // Add the output and return the output's index
16424 return (this.outs.push({
16425 script: scriptPubKey,
16430 Transaction.prototype.clone = function () {
16431 var newTx = new Transaction()
16432 newTx.version = this.version
16433 newTx.locktime = this.locktime
16435 newTx.ins = this.ins.map(function (txIn) {
16439 script: txIn.script,
16440 sequence: txIn.sequence
16444 newTx.outs = this.outs.map(function (txOut) {
16446 script: txOut.script,
16455 * Hash transaction for signing a specific input.
16457 * Bitcoin uses a different hash for each signed transaction input. This
16458 * method copies the transaction, makes the necessary changes based on the
16459 * hashType, serializes and finally hashes the result. This hash can then be
16460 * used to sign the transaction input in question.
16462 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
16463 // FIXME: remove in
2.x.y
16464 if (arguments[
0] instanceof Script) {
16465 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
16467 // swap the arguments (must be stored in tmp, arguments is special)
16468 var tmp = arguments[
0]
16469 inIndex = arguments[
1]
16470 prevOutScript = tmp
16473 typeForce('Number', inIndex)
16474 typeForce('Script', prevOutScript)
16475 typeForce('Number', hashType)
16477 assert(inIndex
>=
0, 'Invalid vin index')
16478 assert(inIndex < this.ins.length, 'Invalid vin index')
16480 var txTmp = this.clone()
16481 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
16483 // Blank out other inputs' signatures
16484 txTmp.ins.forEach(function (txIn) {
16485 txIn.script = Script.EMPTY
16487 txTmp.ins[inIndex].script = hashScript
16489 var hashTypeModifier = hashType &
0x1f
16491 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
16492 assert(false, 'SIGHASH_NONE not yet supported')
16493 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
16494 assert(false, 'SIGHASH_SINGLE not yet supported')
16497 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
16498 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
16501 var hashTypeBuffer = new Buffer(
4)
16502 hashTypeBuffer.writeInt32LE(hashType,
0)
16504 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
16505 return crypto.hash256(buffer)
16508 Transaction.prototype.getHash = function () {
16509 return crypto.hash256(this.toBuffer())
16512 Transaction.prototype.getId = function () {
16513 // TxHash is little-endian, we need big-endian
16514 return bufferutils.reverse(this.getHash()).toString('hex')
16517 Transaction.prototype.toBuffer = function () {
16518 function scriptSize (script) {
16519 var length = script.buffer.length
16521 return bufferutils.varIntSize(length) + length
16524 var buffer = new Buffer(
16526 bufferutils.varIntSize(this.ins.length) +
16527 bufferutils.varIntSize(this.outs.length) +
16528 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
16529 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
16533 function writeSlice (slice) {
16534 slice.copy(buffer, offset)
16535 offset += slice.length
16538 function writeUInt32 (i) {
16539 buffer.writeUInt32LE(i, offset)
16543 function writeUInt64 (i) {
16544 bufferutils.writeUInt64LE(buffer, i, offset)
16548 function writeVarInt (i) {
16549 var n = bufferutils.writeVarInt(buffer, i, offset)
16553 writeUInt32(this.version)
16554 writeVarInt(this.ins.length)
16556 this.ins.forEach(function (txIn) {
16557 writeSlice(txIn.hash)
16558 writeUInt32(txIn.index)
16559 writeVarInt(txIn.script.buffer.length)
16560 writeSlice(txIn.script.buffer)
16561 writeUInt32(txIn.sequence)
16564 writeVarInt(this.outs.length)
16565 this.outs.forEach(function (txOut) {
16566 writeUInt64(txOut.value)
16567 writeVarInt(txOut.script.buffer.length)
16568 writeSlice(txOut.script.buffer)
16571 writeUInt32(this.locktime)
16576 Transaction.prototype.toHex = function () {
16577 return this.toBuffer().toString('hex')
16580 Transaction.prototype.setInputScript = function (index, script) {
16581 typeForce('Number', index)
16582 typeForce('Script', script)
16584 this.ins[index].script = script
16587 // FIXME: remove in
2.x.y
16588 Transaction.prototype.sign = function (index, privKey, hashType) {
16589 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
16591 var prevOutScript = privKey.pub.getAddress().toOutputScript()
16592 var signature = this.signInput(index, prevOutScript, privKey, hashType)
16594 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
16595 this.setInputScript(index, scriptSig)
16598 // FIXME: remove in
2.x.y
16599 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
16600 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
16602 hashType = hashType || Transaction.SIGHASH_ALL
16604 var hash = this.hashForSignature(index, prevOutScript, hashType)
16605 var signature = privKey.sign(hash)
16607 return signature.toScriptSignature(hashType)
16610 // FIXME: remove in
2.x.y
16611 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
16612 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
16614 var parsed = ECSignature.parseScriptSignature(buffer)
16615 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
16617 return pubKey.verify(hash, parsed.signature)
16620 module.exports = Transaction
16622 }).call(this,require("buffer").Buffer)
16623 },{"./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){
16624 (function (Buffer){
16625 var assert = require('assert')
16626 var ops = require('./opcodes')
16627 var scripts = require('./scripts')
16629 var ECPubKey = require('./ecpubkey')
16630 var ECSignature = require('./ecsignature')
16631 var Script = require('./script')
16632 var Transaction = require('./transaction')
16634 function extractInput (txIn) {
16636 var scriptSig = txIn.script
16638 var prevOutType = scripts.classifyInput(scriptSig, true)
16641 // Re-classify if scriptHash
16642 if (prevOutType === 'scripthash') {
16643 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
16644 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16646 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
16647 scriptType = scripts.classifyInput(scriptSig, true)
16649 scriptType = prevOutType
16652 // Extract hashType, pubKeys and signatures
16653 var hashType, parsed, pubKeys, signatures
16655 switch (scriptType) {
16656 case 'pubkeyhash': {
16657 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16658 hashType = parsed.hashType
16659 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
16660 signatures = [parsed.signature]
16661 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
16667 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16668 hashType = parsed.hashType
16669 signatures = [parsed.signature]
16671 if (redeemScript) {
16672 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
16679 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
16680 if (chunk === ops.OP_0) return chunk
16682 var parsed = ECSignature.parseScriptSignature(chunk)
16683 hashType = parsed.hashType
16685 return parsed.signature
16688 if (redeemScript) {
16689 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16697 hashType: hashType,
16698 prevOutScript: prevOutScript,
16699 prevOutType: prevOutType,
16701 redeemScript: redeemScript,
16702 scriptType: scriptType,
16703 signatures: signatures
16707 function TransactionBuilder () {
16708 this.prevTxMap = {}
16709 this.prevOutScripts = {}
16710 this.prevOutTypes = {}
16713 this.tx = new Transaction()
16716 TransactionBuilder.fromTransaction = function (transaction) {
16717 var txb = new TransactionBuilder()
16719 // Copy other transaction fields
16720 txb.tx.version = transaction.version
16721 txb.tx.locktime = transaction.locktime
16723 // Extract/add inputs
16724 transaction.ins.forEach(function (txIn) {
16725 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
16728 // Extract/add outputs
16729 transaction.outs.forEach(function (txOut) {
16730 txb.addOutput(txOut.script, txOut.value)
16733 // Extract/add signatures
16734 txb.inputs = transaction.ins.map(function (txIn) {
16735 // TODO: remove me after testcase added
16736 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
16738 // Ignore empty scripts
16739 if (txIn.script.buffer.length ===
0) return {}
16741 return extractInput(txIn)
16747 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
16751 if (typeof prevTx === 'string') {
16752 prevOutHash = new Buffer(prevTx, 'hex')
16754 // TxId hex is big-endian, we want little-endian hash
16755 Array.prototype.reverse.call(prevOutHash)
16758 } else if (prevTx instanceof Transaction) {
16759 prevOutHash = prevTx.getHash()
16760 prevOutScript = prevTx.outs[index].script
16764 prevOutHash = prevTx
16768 if (prevOutScript) {
16769 var prevOutType = scripts.classifyOutput(prevOutScript)
16771 // if we can, extract pubKey information
16772 switch (prevOutType) {
16774 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16779 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16784 if (prevOutType !== 'scripthash') {
16785 input.scriptType = prevOutType
16788 input.prevOutScript = prevOutScript
16789 input.prevOutType = prevOutType
16792 assert(this.inputs.every(function (input2) {
16793 if (input2.hashType === undefined) return true
16795 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
16796 }), 'No, this would invalidate signatures')
16798 var prevOut = prevOutHash.toString('hex') + ':' + index
16799 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
16801 var vin = this.tx.addInput(prevOutHash, index, sequence)
16802 this.inputs[vin] = input
16803 this.prevTxMap[prevOut] = vin
16808 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
16809 assert(this.inputs.every(function (input) {
16810 if (input.hashType === undefined) return true
16812 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
16813 }), 'No, this would invalidate signatures')
16815 return this.tx.addOutput(scriptPubKey, value)
16818 TransactionBuilder.prototype.build = function () {
16819 return this.__build(false)
16821 TransactionBuilder.prototype.buildIncomplete = function () {
16822 return this.__build(true)
16825 var canSignTypes = {
16826 'pubkeyhash': true,
16831 TransactionBuilder.prototype.__build = function (allowIncomplete) {
16832 if (!allowIncomplete) {
16833 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
16834 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
16837 var tx = this.tx.clone()
16839 // Create script signatures from signature meta-data
16840 this.inputs.forEach(function (input, index) {
16841 var scriptType = input.scriptType
16844 if (!allowIncomplete) {
16845 assert(!!scriptType, 'Transaction is not complete')
16846 assert(scriptType in canSignTypes, scriptType + ' not supported')
16847 assert(input.signatures, 'Transaction is missing signatures')
16850 if (input.signatures) {
16851 switch (scriptType) {
16852 case 'pubkeyhash': {
16853 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
16854 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
16859 // Array.prototype.map is sparse-compatible
16860 var msSignatures = input.signatures.map(function (signature) {
16861 return signature && signature.toScriptSignature(input.hashType)
16864 // fill in blanks with OP_0
16865 if (allowIncomplete) {
16866 for (var i =
0; i < msSignatures.length; ++i) {
16867 if (msSignatures[i]) continue
16869 msSignatures[i] = ops.OP_0
16872 // Array.prototype.filter returns non-sparse array
16873 msSignatures = msSignatures.filter(function (x) { return x })
16876 var redeemScript = allowIncomplete ? undefined : input.redeemScript
16877 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
16882 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
16883 scriptSig = scripts.pubKeyInput(pkSignature)
16889 // did we build a scriptSig?
16891 // wrap as scriptHash if necessary
16892 if (input.prevOutType === 'scripthash') {
16893 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
16896 tx.setInputScript(index, scriptSig)
16903 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
16904 assert(index in this.inputs, 'No input at index: ' + index)
16905 hashType = hashType || Transaction.SIGHASH_ALL
16907 var input = this.inputs[index]
16908 var canSign = input.hashType &&
16909 input.prevOutScript &&
16910 input.prevOutType &&
16912 input.scriptType &&
16915 // are we almost ready to sign?
16917 // if redeemScript was provided, enforce consistency
16918 if (redeemScript) {
16919 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
16922 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
16926 // must be pay-to-scriptHash?
16927 if (redeemScript) {
16928 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
16929 if (input.prevOutScript) {
16930 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
16932 var scriptHash = input.prevOutScript.chunks[
1]
16933 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
16936 var scriptType = scripts.classifyOutput(redeemScript)
16937 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
16940 switch (scriptType) {
16942 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16946 case 'pubkeyhash': {
16947 var pkh1 = redeemScript.chunks[
2]
16948 var pkh2 = privKey.pub.getAddress().hash
16950 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
16951 pubKeys = [privKey.pub]
16956 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16961 if (!input.prevOutScript) {
16962 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16963 input.prevOutType = 'scripthash'
16966 input.pubKeys = pubKeys
16967 input.redeemScript = redeemScript
16968 input.scriptType = scriptType
16970 // cannot be pay-to-scriptHash
16972 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
16974 // can we otherwise sign this?
16975 if (input.scriptType) {
16976 assert(input.pubKeys, input.scriptType + ' not supported')
16978 // we know nothin' Jon Snow, assume pubKeyHash
16980 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
16981 input.prevOutType = 'pubkeyhash'
16982 input.pubKeys = [privKey.pub]
16983 input.scriptType = input.prevOutType
16987 input.hashType = hashType
16988 input.signatures = input.signatures || []
16991 var signatureScript = input.redeemScript || input.prevOutScript
16992 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
16994 // enforce signature order matches public keys
16995 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
16996 // maintain a local copy of unmatched signatures
16997 var unmatched = input.signatures.slice()
16999 input.signatures = input.pubKeys.map(function (pubKey) {
17002 // check for any matching signatures
17003 unmatched.some(function (signature, i) {
17004 if (!pubKey.verify(signatureHash, signature)) return false
17007 // remove matched signature from unmatched
17008 unmatched.splice(i,
1)
17013 return match || undefined
17017 // enforce in order signing of public keys
17018 assert(input.pubKeys.some(function (pubKey, i) {
17019 if (!privKey.pub.Q.equals(pubKey.Q)) return false
17021 assert(!input.signatures[i], 'Signature already exists')
17022 var signature = privKey.sign(signatureHash)
17023 input.signatures[i] = signature
17026 }, this), 'privateKey cannot sign for this input')
17029 module.exports = TransactionBuilder
17031 }).call(this,require(
"buffer").Buffer)
17032 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
17033 (function (Buffer){
17034 var assert = require('assert')
17035 var bufferutils = require('./bufferutils')
17036 var typeForce = require('typeforce')
17037 var networks = require('./networks')
17038 var randomBytes = require('randombytes')
17040 var Address = require('./address')
17041 var HDNode = require('./hdnode')
17042 var TransactionBuilder = require('./transaction_builder')
17043 var Script = require('./script')
17045 function Wallet (seed, network) {
17046 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
17048 seed = seed || randomBytes(
32)
17049 network = network || networks.bitcoin
17051 // Stored in a closure to make accidental serialization less likely
17052 var masterKey = HDNode.fromSeedBuffer(seed, network)
17054 // HD first-level child derivation method should be hardened
17055 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
17056 var accountZero = masterKey.deriveHardened(
0)
17057 var externalAccount = accountZero.derive(
0)
17058 var internalAccount = accountZero.derive(
1)
17060 this.addresses = []
17061 this.changeAddresses = []
17062 this.network = network
17065 // FIXME: remove in
2.0.0
17066 this.unspentMap = {}
17068 // FIXME: remove in
2.0.0
17070 this.newMasterKey = function (seed) {
17071 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
17073 seed = seed || randomBytes(
32)
17074 masterKey = HDNode.fromSeedBuffer(seed, network)
17076 accountZero = masterKey.deriveHardened(
0)
17077 externalAccount = accountZero.derive(
0)
17078 internalAccount = accountZero.derive(
1)
17081 me.changeAddresses = []
17087 this.getMasterKey = function () {
17090 this.getAccountZero = function () {
17093 this.getExternalAccount = function () {
17094 return externalAccount
17096 this.getInternalAccount = function () {
17097 return internalAccount
17101 Wallet.prototype.createTransaction = function (to, value, options) {
17102 // FIXME: remove in
2.0.0
17103 if (typeof options !== 'object') {
17104 if (options !== undefined) {
17105 console.warn('Non options object parameters are deprecated, use options object instead')
17108 fixedFee: arguments[
2],
17109 changeAddress: arguments[
3]
17114 options = options || {}
17116 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
17118 var changeAddress = options.changeAddress
17119 var fixedFee = options.fixedFee
17120 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
17122 // filter by minConf, then pending and sort by descending value
17123 var unspents = this.unspents.filter(function (unspent) {
17124 return unspent.confirmations
>= minConf
17125 }).filter(function (unspent) {
17126 return !unspent.pending
17127 }).sort(function (o1, o2) {
17128 return o2.value - o1.value
17133 var subTotal = value
17135 var txb = new TransactionBuilder()
17136 txb.addOutput(to, value)
17138 for (var i =
0; i < unspents.length; ++i) {
17139 var unspent = unspents[i]
17140 addresses.push(unspent.address)
17142 txb.addInput(unspent.txHash, unspent.index)
17144 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
17146 accum += unspent.value
17147 subTotal = value + fee
17149 if (accum
>= subTotal) {
17150 var change = accum - subTotal
17152 if (change
> this.network.dustThreshold) {
17153 txb.addOutput(changeAddress || this.getChangeAddress(), change)
17160 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
17162 return this.signWith(txb, addresses).build()
17165 // FIXME: remove in
2.0.0
17166 Wallet.prototype.processPendingTx = function (tx) {
17167 this.__processTx(tx, true)
17170 // FIXME: remove in
2.0.0
17171 Wallet.prototype.processConfirmedTx = function (tx) {
17172 this.__processTx(tx, false)
17175 // FIXME: remove in
2.0.0
17176 Wallet.prototype.__processTx = function (tx, isPending) {
17177 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
17179 var txId = tx.getId()
17180 var txHash = tx.getHash()
17182 tx.outs.forEach(function (txOut, i) {
17186 address = Address.fromOutputScript(txOut.script, this.network).toString()
17188 if (!(e.message.match(/has no matching Address/)))
17192 var myAddresses = this.addresses.concat(this.changeAddresses)
17193 if (myAddresses.indexOf(address)
> -
1) {
17194 var lookup = txId + ':' + i
17195 if (lookup in this.unspentMap) return
17197 // its unique, add it
17200 confirmations:
0, // no way to determine this without more information
17204 value: txOut.value,
17208 this.unspentMap[lookup] = unspent
17209 this.unspents.push(unspent)
17213 tx.ins.forEach(function (txIn) {
17214 // copy and convert to big-endian hex
17215 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
17217 var lookup = txInId + ':' + txIn.index
17218 if (!(lookup in this.unspentMap)) return
17220 var unspent = this.unspentMap[lookup]
17223 unspent.pending = true
17224 unspent.spent = true
17226 delete this.unspentMap[lookup]
17228 this.unspents = this.unspents.filter(function (unspent2) {
17229 return unspent !== unspent2
17235 Wallet.prototype.generateAddress = function () {
17236 var k = this.addresses.length
17237 var address = this.getExternalAccount().derive(k).getAddress()
17239 this.addresses.push(address.toString())
17241 return this.getReceiveAddress()
17244 Wallet.prototype.generateChangeAddress = function () {
17245 var k = this.changeAddresses.length
17246 var address = this.getInternalAccount().derive(k).getAddress()
17248 this.changeAddresses.push(address.toString())
17250 return this.getChangeAddress()
17253 Wallet.prototype.getAddress = function () {
17254 if (this.addresses.length ===
0) {
17255 this.generateAddress()
17258 return this.addresses[this.addresses.length -
1]
17261 Wallet.prototype.getBalance = function (minConf) {
17262 minConf = minConf ||
0
17264 return this.unspents.filter(function (unspent) {
17265 return unspent.confirmations
>= minConf
17267 // FIXME: remove spent filter in
2.0.0
17268 }).filter(function (unspent) {
17269 return !unspent.spent
17270 }).reduce(function (accum, unspent) {
17271 return accum + unspent.value
17275 Wallet.prototype.getChangeAddress = function () {
17276 if (this.changeAddresses.length ===
0) {
17277 this.generateChangeAddress()
17280 return this.changeAddresses[this.changeAddresses.length -
1]
17283 Wallet.prototype.getInternalPrivateKey = function (index) {
17284 return this.getInternalAccount().derive(index).privKey
17287 Wallet.prototype.getPrivateKey = function (index) {
17288 return this.getExternalAccount().derive(index).privKey
17291 Wallet.prototype.getPrivateKeyForAddress = function (address) {
17294 if ((index = this.addresses.indexOf(address))
> -
1) {
17295 return this.getPrivateKey(index)
17298 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
17299 return this.getInternalPrivateKey(index)
17302 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
17305 Wallet.prototype.getUnspentOutputs = function (minConf) {
17306 minConf = minConf ||
0
17308 return this.unspents.filter(function (unspent) {
17309 return unspent.confirmations
>= minConf
17311 // FIXME: remove spent filter in
2.0.0
17312 }).filter(function (unspent) {
17313 return !unspent.spent
17314 }).map(function (unspent) {
17316 address: unspent.address,
17317 confirmations: unspent.confirmations,
17318 index: unspent.index,
17319 txId: unspent.txId,
17320 value: unspent.value,
17322 // FIXME: remove in
2.0.0
17323 hash: unspent.txId,
17324 pending: unspent.pending
17329 Wallet.prototype.setUnspentOutputs = function (unspents) {
17330 this.unspentMap = {}
17331 this.unspents = unspents.map(function (unspent) {
17332 // FIXME: remove unspent.hash in
2.0.0
17333 var txId = unspent.txId || unspent.hash
17334 var index = unspent.index
17336 // FIXME: remove in
2.0.0
17337 if (unspent.hash !== undefined) {
17338 console.warn('unspent.hash is deprecated, use unspent.txId instead')
17341 // FIXME: remove in
2.0.0
17342 if (index === undefined) {
17343 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
17344 index = unspent.outputIndex
17347 typeForce('String', txId)
17348 typeForce('Number', index)
17349 typeForce('Number', unspent.value)
17351 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
17352 assert.doesNotThrow(function () {
17353 Address.fromBase58Check(unspent.address)
17354 }, 'Expected Base58 Address, got ' + unspent.address)
17355 assert(isFinite(index), 'Expected finite index, got ' + index)
17357 // FIXME: remove branch in
2.0.0
17358 if (unspent.confirmations !== undefined) {
17359 typeForce('Number', unspent.confirmations)
17362 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
17365 address: unspent.address,
17366 confirmations: unspent.confirmations ||
0,
17370 value: unspent.value,
17372 // FIXME: remove in
2.0.0
17373 pending: unspent.pending || false
17376 // FIXME: remove in
2.0.0
17377 this.unspentMap[txId + ':' + index] = unspent
17383 Wallet.prototype.signWith = function (tx, addresses) {
17384 addresses.forEach(function (address, i) {
17385 var privKey = this.getPrivateKeyForAddress(address)
17387 tx.sign(i, privKey)
17393 function estimatePaddedFee (tx, network) {
17394 var tmpTx = tx.clone()
17395 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
17397 return network.estimateFee(tmpTx)
17400 // FIXME:
1.0.0 shims, remove in
2.0.0
17401 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
17402 Wallet.prototype.createTx = Wallet.prototype.createTransaction
17404 module.exports = Wallet
17406 }).call(this,require("buffer").Buffer)
17407 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
17409 <script>bitcoin.networks.shadow = {
17410 magicPrefix: '\x19ShadowCash Signed Message:\n',
17412 public:
0xEE80286A,
17413 private:
0xEE8031E8
17420 estimateFee: function() { return "unused in this app" },
17423 bitcoin.networks.shadowtn = {
17424 magicPrefix: '\x19ShadowCash Signed Message:\n',
17426 public:
0x76C0FDFB,
17427 private:
0x76C1077A
17434 estimateFee: function() { return "unused in this app" },
17437 bitcoin.networks.clam = {
17439 public:
0xa8c26d64,
17440 private:
0xa8c17826
17446 bitcoin.networks.dash = {
17448 public:
0x0488b21e,
17449 private:
0x0488ade4
17456 bitcoin.networks.namecoin = {
17458 public:
0x0488b21e,
17459 private:
0x0488ade4
17462 //scriptHash:
0x10,
17466 bitcoin.networks.peercoin = {
17468 public:
0x0488b21e,
17469 private:
0x0488ade4
17472 //scriptHash:
0x10,
17477 <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){
17478 (function (global){
17481 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
17482 // original notice:
17485 * The buffer module from node.js, for the browser.
17487 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
17490 function compare(a, b) {
17498 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
17499 if (a[i] !== b[i]) {
17514 function isBuffer(b) {
17515 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
17516 return global.Buffer.isBuffer(b);
17518 return !!(b != null && b._isBuffer);
17521 // based on node assert, original notice:
17523 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
17525 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
17527 // Originally from narwhal.js (http://narwhaljs.org)
17528 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
17530 // Permission is hereby granted, free of charge, to any person obtaining a copy
17531 // of this software and associated documentation files (the 'Software'), to
17532 // deal in the Software without restriction, including without limitation the
17533 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
17534 // sell copies of the Software, and to permit persons to whom the Software is
17535 // furnished to do so, subject to the following conditions:
17537 // The above copyright notice and this permission notice shall be included in
17538 // all copies or substantial portions of the Software.
17540 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17541 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17542 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17543 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
17544 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
17545 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17547 var util = require('util/');
17548 var hasOwn = Object.prototype.hasOwnProperty;
17549 var pSlice = Array.prototype.slice;
17550 var functionsHaveNames = (function () {
17551 return function foo() {}.name === 'foo';
17553 function pToString (obj) {
17554 return Object.prototype.toString.call(obj);
17556 function isView(arrbuf) {
17557 if (isBuffer(arrbuf)) {
17560 if (typeof global.ArrayBuffer !== 'function') {
17563 if (typeof ArrayBuffer.isView === 'function') {
17564 return ArrayBuffer.isView(arrbuf);
17569 if (arrbuf instanceof DataView) {
17572 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
17577 //
1. The assert module provides functions that throw
17578 // AssertionError's when particular conditions are not met. The
17579 // assert module must conform to the following interface.
17581 var assert = module.exports = ok;
17583 //
2. The AssertionError is defined in assert.
17584 // new assert.AssertionError({ message: message,
17586 // expected: expected })
17588 var regex = /\s*function\s+([^\(\s]*)\s*/;
17589 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
17590 function getName(func) {
17591 if (!util.isFunction(func)) {
17594 if (functionsHaveNames) {
17597 var str = func.toString();
17598 var match = str.match(regex);
17599 return match && match[
1];
17601 assert.AssertionError = function AssertionError(options) {
17602 this.name = 'AssertionError';
17603 this.actual = options.actual;
17604 this.expected = options.expected;
17605 this.operator = options.operator;
17606 if (options.message) {
17607 this.message = options.message;
17608 this.generatedMessage = false;
17610 this.message = getMessage(this);
17611 this.generatedMessage = true;
17613 var stackStartFunction = options.stackStartFunction || fail;
17614 if (Error.captureStackTrace) {
17615 Error.captureStackTrace(this, stackStartFunction);
17617 // non v8 browsers so we can have a stacktrace
17618 var err = new Error();
17620 var out = err.stack;
17622 // try to strip useless frames
17623 var fn_name = getName(stackStartFunction);
17624 var idx = out.indexOf('\n' + fn_name);
17626 // once we have located the function frame
17627 // we need to strip out everything before it (and its line)
17628 var next_line = out.indexOf('\n', idx +
1);
17629 out = out.substring(next_line +
1);
17637 // assert.AssertionError instanceof Error
17638 util.inherits(assert.AssertionError, Error);
17640 function truncate(s, n) {
17641 if (typeof s === 'string') {
17642 return s.length < n ? s : s.slice(
0, n);
17647 function inspect(something) {
17648 if (functionsHaveNames || !util.isFunction(something)) {
17649 return util.inspect(something);
17651 var rawname = getName(something);
17652 var name = rawname ? ': ' + rawname : '';
17653 return '[Function' + name + ']';
17655 function getMessage(self) {
17656 return truncate(inspect(self.actual),
128) + ' ' +
17657 self.operator + ' ' +
17658 truncate(inspect(self.expected),
128);
17661 // At present only the three keys mentioned above are used and
17662 // understood by the spec. Implementations or sub modules can pass
17663 // other keys to the AssertionError's constructor - they will be
17666 //
3. All of the following functions must throw an AssertionError
17667 // when a corresponding condition is not met, with a message that
17668 // may be undefined if not provided. All assertion methods provide
17669 // both the actual and expected values to the assertion error for
17670 // display purposes.
17672 function fail(actual, expected, message, operator, stackStartFunction) {
17673 throw new assert.AssertionError({
17676 expected: expected,
17677 operator: operator,
17678 stackStartFunction: stackStartFunction
17682 // EXTENSION! allows for well behaved errors defined elsewhere.
17683 assert.fail = fail;
17685 //
4. Pure assertion tests whether a value is truthy, as determined
17687 // assert.ok(guard, message_opt);
17688 // This statement is equivalent to assert.equal(true, !!guard,
17689 // message_opt);. To test strictly for the value true, use
17690 // assert.strictEqual(true, guard, message_opt);.
17692 function ok(value, message) {
17693 if (!value) fail(value, true, message, '==', assert.ok);
17697 //
5. The equality assertion tests shallow, coercive equality with
17699 // assert.equal(actual, expected, message_opt);
17701 assert.equal = function equal(actual, expected, message) {
17702 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
17705 //
6. The non-equality assertion tests for whether two objects are not equal
17706 // with != assert.notEqual(actual, expected, message_opt);
17708 assert.notEqual = function notEqual(actual, expected, message) {
17709 if (actual == expected) {
17710 fail(actual, expected, message, '!=', assert.notEqual);
17714 //
7. The equivalence assertion tests a deep equality relation.
17715 // assert.deepEqual(actual, expected, message_opt);
17717 assert.deepEqual = function deepEqual(actual, expected, message) {
17718 if (!_deepEqual(actual, expected, false)) {
17719 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
17723 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
17724 if (!_deepEqual(actual, expected, true)) {
17725 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
17729 function _deepEqual(actual, expected, strict, memos) {
17730 //
7.1. All identical values are equivalent, as determined by ===.
17731 if (actual === expected) {
17733 } else if (isBuffer(actual) && isBuffer(expected)) {
17734 return compare(actual, expected) ===
0;
17736 //
7.2. If the expected value is a Date object, the actual value is
17737 // equivalent if it is also a Date object that refers to the same time.
17738 } else if (util.isDate(actual) && util.isDate(expected)) {
17739 return actual.getTime() === expected.getTime();
17741 //
7.3 If the expected value is a RegExp object, the actual value is
17742 // equivalent if it is also a RegExp object with the same source and
17743 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
17744 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
17745 return actual.source === expected.source &&
17746 actual.global === expected.global &&
17747 actual.multiline === expected.multiline &&
17748 actual.lastIndex === expected.lastIndex &&
17749 actual.ignoreCase === expected.ignoreCase;
17751 //
7.4. Other pairs that do not both pass typeof value == 'object',
17752 // equivalence is determined by ==.
17753 } else if ((actual === null || typeof actual !== 'object') &&
17754 (expected === null || typeof expected !== 'object')) {
17755 return strict ? actual === expected : actual == expected;
17757 // If both values are instances of typed arrays, wrap their underlying
17758 // ArrayBuffers in a Buffer each to increase performance
17759 // This optimization requires the arrays to have the same type as checked by
17760 // Object.prototype.toString (aka pToString). Never perform binary
17761 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
17762 // bit patterns are not identical.
17763 } else if (isView(actual) && isView(expected) &&
17764 pToString(actual) === pToString(expected) &&
17765 !(actual instanceof Float32Array ||
17766 actual instanceof Float64Array)) {
17767 return compare(new Uint8Array(actual.buffer),
17768 new Uint8Array(expected.buffer)) ===
0;
17770 //
7.5 For all other Object pairs, including Array objects, equivalence is
17771 // determined by having the same number of owned properties (as verified
17772 // with Object.prototype.hasOwnProperty.call), the same set of keys
17773 // (although not necessarily the same order), equivalent values for every
17774 // corresponding key, and an identical 'prototype' property. Note: this
17775 // accounts for both named and indexed properties on Arrays.
17776 } else if (isBuffer(actual) !== isBuffer(expected)) {
17779 memos = memos || {actual: [], expected: []};
17781 var actualIndex = memos.actual.indexOf(actual);
17782 if (actualIndex !== -
1) {
17783 if (actualIndex === memos.expected.indexOf(expected)) {
17788 memos.actual.push(actual);
17789 memos.expected.push(expected);
17791 return objEquiv(actual, expected, strict, memos);
17795 function isArguments(object) {
17796 return Object.prototype.toString.call(object) == '[object Arguments]';
17799 function objEquiv(a, b, strict, actualVisitedObjects) {
17800 if (a === null || a === undefined || b === null || b === undefined)
17802 // if one is a primitive, the other must be same
17803 if (util.isPrimitive(a) || util.isPrimitive(b))
17805 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
17807 var aIsArgs = isArguments(a);
17808 var bIsArgs = isArguments(b);
17809 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
17812 a = pSlice.call(a);
17813 b = pSlice.call(b);
17814 return _deepEqual(a, b, strict);
17816 var ka = objectKeys(a);
17817 var kb = objectKeys(b);
17819 // having the same number of owned properties (keys incorporates
17821 if (ka.length !== kb.length)
17823 //the same set of keys (although not necessarily the same order),
17826 //~~~cheap key test
17827 for (i = ka.length -
1; i
>=
0; i--) {
17828 if (ka[i] !== kb[i])
17831 //equivalent values for every corresponding key, and
17832 //~~~possibly expensive deep test
17833 for (i = ka.length -
1; i
>=
0; i--) {
17835 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
17841 //
8. The non-equivalence assertion tests for any deep inequality.
17842 // assert.notDeepEqual(actual, expected, message_opt);
17844 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
17845 if (_deepEqual(actual, expected, false)) {
17846 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
17850 assert.notDeepStrictEqual = notDeepStrictEqual;
17851 function notDeepStrictEqual(actual, expected, message) {
17852 if (_deepEqual(actual, expected, true)) {
17853 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
17858 //
9. The strict equality assertion tests strict equality, as determined by ===.
17859 // assert.strictEqual(actual, expected, message_opt);
17861 assert.strictEqual = function strictEqual(actual, expected, message) {
17862 if (actual !== expected) {
17863 fail(actual, expected, message, '===', assert.strictEqual);
17867 //
10. The strict non-equality assertion tests for strict inequality, as
17868 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
17870 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
17871 if (actual === expected) {
17872 fail(actual, expected, message, '!==', assert.notStrictEqual);
17876 function expectedException(actual, expected) {
17877 if (!actual || !expected) {
17881 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
17882 return expected.test(actual);
17886 if (actual instanceof expected) {
17890 // Ignore. The instanceof check doesn't work for arrow functions.
17893 if (Error.isPrototypeOf(expected)) {
17897 return expected.call({}, actual) === true;
17900 function _tryBlock(block) {
17910 function _throws(shouldThrow, block, expected, message) {
17913 if (typeof block !== 'function') {
17914 throw new TypeError('"block" argument must be a function');
17917 if (typeof expected === 'string') {
17918 message = expected;
17922 actual = _tryBlock(block);
17924 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
17925 (message ? ' ' + message : '.');
17927 if (shouldThrow && !actual) {
17928 fail(actual, expected, 'Missing expected exception' + message);
17931 var userProvidedMessage = typeof message === 'string';
17932 var isUnwantedException = !shouldThrow && util.isError(actual);
17933 var isUnexpectedException = !shouldThrow && actual && !expected;
17935 if ((isUnwantedException &&
17936 userProvidedMessage &&
17937 expectedException(actual, expected)) ||
17938 isUnexpectedException) {
17939 fail(actual, expected, 'Got unwanted exception' + message);
17942 if ((shouldThrow && actual && expected &&
17943 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
17948 //
11. Expected to throw an error:
17949 // assert.throws(block, Error_opt, message_opt);
17951 assert.throws = function(block, /*optional*/error, /*optional*/message) {
17952 _throws(true, block, error, message);
17955 // EXTENSION! This is annoying to write outside this module.
17956 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
17957 _throws(false, block, error, message);
17960 assert.ifError = function(err) { if (err) throw err; };
17962 var objectKeys = Object.keys || function (obj) {
17964 for (var key in obj) {
17965 if (hasOwn.call(obj, key)) keys.push(key);
17970 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17971 },{"util/":
30}],
2:[function(require,module,exports){
17974 exports.byteLength = byteLength
17975 exports.toByteArray = toByteArray
17976 exports.fromByteArray = fromByteArray
17980 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
17982 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
17983 for (var i =
0, len = code.length; i < len; ++i) {
17984 lookup[i] = code[i]
17985 revLookup[code.charCodeAt(i)] = i
17988 revLookup['-'.charCodeAt(
0)] =
62
17989 revLookup['_'.charCodeAt(
0)] =
63
17991 function placeHoldersCount (b64) {
17992 var len = b64.length
17994 throw new Error('Invalid string. Length must be a multiple of
4')
17997 // the number of equal signs (place holders)
17998 // if there are two placeholders, than the two characters before it
17999 // represent one byte
18000 // if there is only one, then the three characters before it represent
2 bytes
18001 // this is just a cheap hack to not do indexOf twice
18002 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
18005 function byteLength (b64) {
18006 // base64 is
4/
3 + up to two characters of the original data
18007 return b64.length *
3 /
4 - placeHoldersCount(b64)
18010 function toByteArray (b64) {
18011 var i, j, l, tmp, placeHolders, arr
18012 var len = b64.length
18013 placeHolders = placeHoldersCount(b64)
18015 arr = new Arr(len *
3 /
4 - placeHolders)
18017 // if there are placeholders, only get up to the last complete
4 chars
18018 l = placeHolders
> 0 ? len -
4 : len
18022 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
18023 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
18024 arr[L++] = (tmp
>> 16) &
0xFF
18025 arr[L++] = (tmp
>> 8) &
0xFF
18026 arr[L++] = tmp &
0xFF
18029 if (placeHolders ===
2) {
18030 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
18031 arr[L++] = tmp &
0xFF
18032 } else if (placeHolders ===
1) {
18033 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
18034 arr[L++] = (tmp
>> 8) &
0xFF
18035 arr[L++] = tmp &
0xFF
18041 function tripletToBase64 (num) {
18042 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
18045 function encodeChunk (uint8, start, end) {
18048 for (var i = start; i < end; i +=
3) {
18049 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
18050 output.push(tripletToBase64(tmp))
18052 return output.join('')
18055 function fromByteArray (uint8) {
18057 var len = uint8.length
18058 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
18061 var maxChunkLength =
16383 // must be multiple of
3
18063 // go through the array every three bytes, we'll deal with trailing stuff later
18064 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
18065 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
18068 // pad the end with zeros, but make sure to not forget the extra bytes
18069 if (extraBytes ===
1) {
18070 tmp = uint8[len -
1]
18071 output += lookup[tmp
>> 2]
18072 output += lookup[(tmp <<
4) &
0x3F]
18074 } else if (extraBytes ===
2) {
18075 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
18076 output += lookup[tmp
>> 10]
18077 output += lookup[(tmp
>> 4) &
0x3F]
18078 output += lookup[(tmp <<
2) &
0x3F]
18084 return parts.join('')
18087 },{}],
3:[function(require,module,exports){
18089 },{}],
4:[function(require,module,exports){
18090 (function (global){
18093 var buffer = require('buffer');
18094 var Buffer = buffer.Buffer;
18095 var SlowBuffer = buffer.SlowBuffer;
18096 var MAX_LEN = buffer.kMaxLength ||
2147483647;
18097 exports.alloc = function alloc(size, fill, encoding) {
18098 if (typeof Buffer.alloc === 'function') {
18099 return Buffer.alloc(size, fill, encoding);
18101 if (typeof encoding === 'number') {
18102 throw new TypeError('encoding must not be number');
18104 if (typeof size !== 'number') {
18105 throw new TypeError('size must be a number');
18107 if (size
> MAX_LEN) {
18108 throw new RangeError('size is too large');
18110 var enc = encoding;
18112 if (_fill === undefined) {
18116 var buf = new Buffer(size);
18117 if (typeof _fill === 'string') {
18118 var fillBuf = new Buffer(_fill, enc);
18119 var flen = fillBuf.length;
18121 while (++i < size) {
18122 buf[i] = fillBuf[i % flen];
18129 exports.allocUnsafe = function allocUnsafe(size) {
18130 if (typeof Buffer.allocUnsafe === 'function') {
18131 return Buffer.allocUnsafe(size);
18133 if (typeof size !== 'number') {
18134 throw new TypeError('size must be a number');
18136 if (size
> MAX_LEN) {
18137 throw new RangeError('size is too large');
18139 return new Buffer(size);
18141 exports.from = function from(value, encodingOrOffset, length) {
18142 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
18143 return Buffer.from(value, encodingOrOffset, length);
18145 if (typeof value === 'number') {
18146 throw new TypeError('"value" argument must not be a number');
18148 if (typeof value === 'string') {
18149 return new Buffer(value, encodingOrOffset);
18151 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
18152 var offset = encodingOrOffset;
18153 if (arguments.length ===
1) {
18154 return new Buffer(value);
18156 if (typeof offset === 'undefined') {
18160 if (typeof len === 'undefined') {
18161 len = value.byteLength - offset;
18163 if (offset
>= value.byteLength) {
18164 throw new RangeError('\'offset\' is out of bounds');
18166 if (len
> value.byteLength - offset) {
18167 throw new RangeError('\'length\' is out of bounds');
18169 return new Buffer(value.slice(offset, offset + len));
18171 if (Buffer.isBuffer(value)) {
18172 var out = new Buffer(value.length);
18173 value.copy(out,
0,
0, value.length);
18177 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
18178 return new Buffer(value);
18180 if (value.type === 'Buffer' && Array.isArray(value.data)) {
18181 return new Buffer(value.data);
18185 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
18187 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
18188 if (typeof Buffer.allocUnsafeSlow === 'function') {
18189 return Buffer.allocUnsafeSlow(size);
18191 if (typeof size !== 'number') {
18192 throw new TypeError('size must be a number');
18194 if (size
>= MAX_LEN) {
18195 throw new RangeError('size is too large');
18197 return new SlowBuffer(size);
18200 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
18201 },{"buffer":
5}],
5:[function(require,module,exports){
18203 * The buffer module from node.js, for the browser.
18205 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
18208 /* eslint-disable no-proto */
18212 var base64 = require('base64-js')
18213 var ieee754 = require('ieee754')
18215 exports.Buffer = Buffer
18216 exports.SlowBuffer = SlowBuffer
18217 exports.INSPECT_MAX_BYTES =
50
18219 var K_MAX_LENGTH =
0x7fffffff
18220 exports.kMaxLength = K_MAX_LENGTH
18223 * If `Buffer.TYPED_ARRAY_SUPPORT`:
18224 * === true Use Uint8Array implementation (fastest)
18225 * === false Print warning and recommend using `buffer` v4.x which has an Object
18226 * implementation (most compatible, even IE6)
18228 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
18229 * Opera
11.6+, iOS
4.2+.
18231 * We report that the browser does not support typed arrays if the are not subclassable
18232 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
18233 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
18234 * for __proto__ and has a buggy typed array implementation.
18236 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
18238 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
18239 typeof console.error === 'function') {
18241 'This browser lacks typed array (Uint8Array) support which is required by ' +
18242 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
18246 function typedArraySupport () {
18247 // Can typed array instances can be augmented?
18249 var arr = new Uint8Array(
1)
18250 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
18251 return arr.foo() ===
42
18257 function createBuffer (length) {
18258 if (length
> K_MAX_LENGTH) {
18259 throw new RangeError('Invalid typed array length')
18261 // Return an augmented `Uint8Array` instance
18262 var buf = new Uint8Array(length)
18263 buf.__proto__ = Buffer.prototype
18268 * The Buffer constructor returns instances of `Uint8Array` that have their
18269 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
18270 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
18271 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
18272 * returns a single octet.
18274 * The `Uint8Array` prototype remains unmodified.
18277 function Buffer (arg, encodingOrOffset, length) {
18279 if (typeof arg === 'number') {
18280 if (typeof encodingOrOffset === 'string') {
18282 'If encoding is specified then the first argument must be a string'
18285 return allocUnsafe(arg)
18287 return from(arg, encodingOrOffset, length)
18290 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
18291 if (typeof Symbol !== 'undefined' && Symbol.species &&
18292 Buffer[Symbol.species] === Buffer) {
18293 Object.defineProperty(Buffer, Symbol.species, {
18295 configurable: true,
18301 Buffer.poolSize =
8192 // not used by this implementation
18303 function from (value, encodingOrOffset, length) {
18304 if (typeof value === 'number') {
18305 throw new TypeError('"value" argument must not be a number')
18308 if (value instanceof ArrayBuffer) {
18309 return fromArrayBuffer(value, encodingOrOffset, length)
18312 if (typeof value === 'string') {
18313 return fromString(value, encodingOrOffset)
18316 return fromObject(value)
18320 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
18321 * if value is a number.
18322 * Buffer.from(str[, encoding])
18323 * Buffer.from(array)
18324 * Buffer.from(buffer)
18325 * Buffer.from(arrayBuffer[, byteOffset[, length]])
18327 Buffer.from = function (value, encodingOrOffset, length) {
18328 return from(value, encodingOrOffset, length)
18331 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
18332 // https://github.com/feross/buffer/pull/
148
18333 Buffer.prototype.__proto__ = Uint8Array.prototype
18334 Buffer.__proto__ = Uint8Array
18336 function assertSize (size) {
18337 if (typeof size !== 'number') {
18338 throw new TypeError('"size" argument must be a number')
18339 } else if (size <
0) {
18340 throw new RangeError('"size" argument must not be negative')
18344 function alloc (size, fill, encoding) {
18347 return createBuffer(size)
18349 if (fill !== undefined) {
18350 // Only pay attention to encoding if it's a string. This
18351 // prevents accidentally sending in a number that would
18352 // be interpretted as a start offset.
18353 return typeof encoding === 'string'
18354 ? createBuffer(size).fill(fill, encoding)
18355 : createBuffer(size).fill(fill)
18357 return createBuffer(size)
18361 * Creates a new filled Buffer instance.
18362 * alloc(size[, fill[, encoding]])
18364 Buffer.alloc = function (size, fill, encoding) {
18365 return alloc(size, fill, encoding)
18368 function allocUnsafe (size) {
18370 return createBuffer(size <
0 ?
0 : checked(size) |
0)
18374 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
18376 Buffer.allocUnsafe = function (size) {
18377 return allocUnsafe(size)
18380 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
18382 Buffer.allocUnsafeSlow = function (size) {
18383 return allocUnsafe(size)
18386 function fromString (string, encoding) {
18387 if (typeof encoding !== 'string' || encoding === '') {
18391 if (!Buffer.isEncoding(encoding)) {
18392 throw new TypeError('"encoding" must be a valid string encoding')
18395 var length = byteLength(string, encoding) |
0
18396 var buf = createBuffer(length)
18398 var actual = buf.write(string, encoding)
18400 if (actual !== length) {
18401 // Writing a hex string, for example, that contains invalid characters will
18402 // cause everything after the first invalid character to be ignored. (e.g.
18403 // 'abxxcd' will be treated as 'ab')
18404 buf = buf.slice(
0, actual)
18410 function fromArrayLike (array) {
18411 var length = array.length <
0 ?
0 : checked(array.length) |
0
18412 var buf = createBuffer(length)
18413 for (var i =
0; i < length; i +=
1) {
18414 buf[i] = array[i] &
255
18419 function fromArrayBuffer (array, byteOffset, length) {
18420 if (byteOffset <
0 || array.byteLength < byteOffset) {
18421 throw new RangeError('\'offset\' is out of bounds')
18424 if (array.byteLength < byteOffset + (length ||
0)) {
18425 throw new RangeError('\'length\' is out of bounds')
18429 if (byteOffset === undefined && length === undefined) {
18430 buf = new Uint8Array(array)
18431 } else if (length === undefined) {
18432 buf = new Uint8Array(array, byteOffset)
18434 buf = new Uint8Array(array, byteOffset, length)
18437 // Return an augmented `Uint8Array` instance
18438 buf.__proto__ = Buffer.prototype
18442 function fromObject (obj) {
18443 if (Buffer.isBuffer(obj)) {
18444 var len = checked(obj.length) |
0
18445 var buf = createBuffer(len)
18447 if (buf.length ===
0) {
18451 obj.copy(buf,
0,
0, len)
18456 if (ArrayBuffer.isView(obj) || 'length' in obj) {
18457 if (typeof obj.length !== 'number' || isnan(obj.length)) {
18458 return createBuffer(
0)
18460 return fromArrayLike(obj)
18463 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
18464 return fromArrayLike(obj.data)
18468 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
18471 function checked (length) {
18472 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
18473 // length is NaN (which is otherwise coerced to zero.)
18474 if (length
>= K_MAX_LENGTH) {
18475 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
18476 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
18481 function SlowBuffer (length) {
18482 if (+length != length) { // eslint-disable-line eqeqeq
18485 return Buffer.alloc(+length)
18488 Buffer.isBuffer = function isBuffer (b) {
18489 return b != null && b._isBuffer === true
18492 Buffer.compare = function compare (a, b) {
18493 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
18494 throw new TypeError('Arguments must be Buffers')
18497 if (a === b) return
0
18502 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
18503 if (a[i] !== b[i]) {
18510 if (x < y) return -
1
18511 if (y < x) return
1
18515 Buffer.isEncoding = function isEncoding (encoding) {
18516 switch (String(encoding).toLowerCase()) {
18534 Buffer.concat = function concat (list, length) {
18535 if (!Array.isArray(list)) {
18536 throw new TypeError('"list" argument must be an Array of Buffers')
18539 if (list.length ===
0) {
18540 return Buffer.alloc(
0)
18544 if (length === undefined) {
18546 for (i =
0; i < list.length; ++i) {
18547 length += list[i].length
18551 var buffer = Buffer.allocUnsafe(length)
18553 for (i =
0; i < list.length; ++i) {
18555 if (!Buffer.isBuffer(buf)) {
18556 throw new TypeError('"list" argument must be an Array of Buffers')
18558 buf.copy(buffer, pos)
18564 function byteLength (string, encoding) {
18565 if (Buffer.isBuffer(string)) {
18566 return string.length
18568 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
18569 return string.byteLength
18571 if (typeof string !== 'string') {
18572 string = '' + string
18575 var len = string.length
18576 if (len ===
0) return
0
18578 // Use a for loop to avoid recursion
18579 var loweredCase = false
18581 switch (encoding) {
18589 return utf8ToBytes(string).length
18598 return base64ToBytes(string).length
18600 if (loweredCase) return utf8ToBytes(string).length // assume utf8
18601 encoding = ('' + encoding).toLowerCase()
18606 Buffer.byteLength = byteLength
18608 function slowToString (encoding, start, end) {
18609 var loweredCase = false
18611 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
18612 // property of a typed array.
18614 // This behaves neither like String nor Uint8Array in that we set start/end
18615 // to their upper/lower bounds if the value passed is out of range.
18616 // undefined is handled specially as per ECMA-
262 6th Edition,
18617 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
18618 if (start === undefined || start <
0) {
18621 // Return early if start
> this.length. Done here to prevent potential uint32
18622 // coercion fail below.
18623 if (start
> this.length) {
18627 if (end === undefined || end
> this.length) {
18635 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
18639 if (end <= start) {
18643 if (!encoding) encoding = 'utf8'
18646 switch (encoding) {
18648 return hexSlice(this, start, end)
18652 return utf8Slice(this, start, end)
18655 return asciiSlice(this, start, end)
18659 return latin1Slice(this, start, end)
18662 return base64Slice(this, start, end)
18668 return utf16leSlice(this, start, end)
18671 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
18672 encoding = (encoding + '').toLowerCase()
18678 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
18679 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
18680 // reliably in a browserify context because there could be multiple different
18681 // copies of the 'buffer' package in use. This method works even for Buffer
18682 // instances that were created from another copy of the `buffer` package.
18683 // See: https://github.com/feross/buffer/issues/
154
18684 Buffer.prototype._isBuffer = true
18686 function swap (b, n, m) {
18692 Buffer.prototype.swap16 = function swap16 () {
18693 var len = this.length
18694 if (len %
2 !==
0) {
18695 throw new RangeError('Buffer size must be a multiple of
16-bits')
18697 for (var i =
0; i < len; i +=
2) {
18698 swap(this, i, i +
1)
18703 Buffer.prototype.swap32 = function swap32 () {
18704 var len = this.length
18705 if (len %
4 !==
0) {
18706 throw new RangeError('Buffer size must be a multiple of
32-bits')
18708 for (var i =
0; i < len; i +=
4) {
18709 swap(this, i, i +
3)
18710 swap(this, i +
1, i +
2)
18715 Buffer.prototype.swap64 = function swap64 () {
18716 var len = this.length
18717 if (len %
8 !==
0) {
18718 throw new RangeError('Buffer size must be a multiple of
64-bits')
18720 for (var i =
0; i < len; i +=
8) {
18721 swap(this, i, i +
7)
18722 swap(this, i +
1, i +
6)
18723 swap(this, i +
2, i +
5)
18724 swap(this, i +
3, i +
4)
18729 Buffer.prototype.toString = function toString () {
18730 var length = this.length
18731 if (length ===
0) return ''
18732 if (arguments.length ===
0) return utf8Slice(this,
0, length)
18733 return slowToString.apply(this, arguments)
18736 Buffer.prototype.equals = function equals (b) {
18737 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
18738 if (this === b) return true
18739 return Buffer.compare(this, b) ===
0
18742 Buffer.prototype.inspect = function inspect () {
18744 var max = exports.INSPECT_MAX_BYTES
18745 if (this.length
> 0) {
18746 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
18747 if (this.length
> max) str += ' ... '
18749 return '
<Buffer ' + str + '
>'
18752 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
18753 if (!Buffer.isBuffer(target)) {
18754 throw new TypeError('Argument must be a Buffer')
18757 if (start === undefined) {
18760 if (end === undefined) {
18761 end = target ? target.length :
0
18763 if (thisStart === undefined) {
18766 if (thisEnd === undefined) {
18767 thisEnd = this.length
18770 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
18771 throw new RangeError('out of range index')
18774 if (thisStart
>= thisEnd && start
>= end) {
18777 if (thisStart
>= thisEnd) {
18780 if (start
>= end) {
18789 if (this === target) return
0
18791 var x = thisEnd - thisStart
18792 var y = end - start
18793 var len = Math.min(x, y)
18795 var thisCopy = this.slice(thisStart, thisEnd)
18796 var targetCopy = target.slice(start, end)
18798 for (var i =
0; i < len; ++i) {
18799 if (thisCopy[i] !== targetCopy[i]) {
18806 if (x < y) return -
1
18807 if (y < x) return
1
18811 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
18812 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
18815 // - buffer - a Buffer to search
18816 // - val - a string, Buffer, or number
18817 // - byteOffset - an index into `buffer`; will be clamped to an int32
18818 // - encoding - an optional encoding, relevant is val is a string
18819 // - dir - true for indexOf, false for lastIndexOf
18820 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
18821 // Empty buffer means no match
18822 if (buffer.length ===
0) return -
1
18824 // Normalize byteOffset
18825 if (typeof byteOffset === 'string') {
18826 encoding = byteOffset
18828 } else if (byteOffset
> 0x7fffffff) {
18829 byteOffset =
0x7fffffff
18830 } else if (byteOffset < -
0x80000000) {
18831 byteOffset = -
0x80000000
18833 byteOffset = +byteOffset // Coerce to Number.
18834 if (isNaN(byteOffset)) {
18835 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
18836 byteOffset = dir ?
0 : (buffer.length -
1)
18839 // Normalize byteOffset: negative offsets start from the end of the buffer
18840 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
18841 if (byteOffset
>= buffer.length) {
18843 else byteOffset = buffer.length -
1
18844 } else if (byteOffset <
0) {
18845 if (dir) byteOffset =
0
18850 if (typeof val === 'string') {
18851 val = Buffer.from(val, encoding)
18854 // Finally, search either indexOf (if dir is true) or lastIndexOf
18855 if (Buffer.isBuffer(val)) {
18856 // Special case: looking for empty string/buffer always fails
18857 if (val.length ===
0) {
18860 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
18861 } else if (typeof val === 'number') {
18862 val = val &
0xFF // Search for a byte value [
0-
255]
18863 if (typeof Uint8Array.prototype.indexOf === 'function') {
18865 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
18867 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
18870 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
18873 throw new TypeError('val must be string, number or Buffer')
18876 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
18878 var arrLength = arr.length
18879 var valLength = val.length
18881 if (encoding !== undefined) {
18882 encoding = String(encoding).toLowerCase()
18883 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
18884 encoding === 'utf16le' || encoding === 'utf-
16le') {
18885 if (arr.length <
2 || val.length <
2) {
18895 function read (buf, i) {
18896 if (indexSize ===
1) {
18899 return buf.readUInt16BE(i * indexSize)
18905 var foundIndex = -
1
18906 for (i = byteOffset; i < arrLength; i++) {
18907 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
18908 if (foundIndex === -
1) foundIndex = i
18909 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
18911 if (foundIndex !== -
1) i -= i - foundIndex
18916 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
18917 for (i = byteOffset; i
>=
0; i--) {
18919 for (var j =
0; j < valLength; j++) {
18920 if (read(arr, i + j) !== read(val, j)) {
18925 if (found) return i
18932 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
18933 return this.indexOf(val, byteOffset, encoding) !== -
1
18936 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
18937 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
18940 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
18941 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
18944 function hexWrite (buf, string, offset, length) {
18945 offset = Number(offset) ||
0
18946 var remaining = buf.length - offset
18950 length = Number(length)
18951 if (length
> remaining) {
18956 // must be an even number of digits
18957 var strLen = string.length
18958 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
18960 if (length
> strLen /
2) {
18961 length = strLen /
2
18963 for (var i =
0; i < length; ++i) {
18964 var parsed = parseInt(string.substr(i *
2,
2),
16)
18965 if (isNaN(parsed)) return i
18966 buf[offset + i] = parsed
18971 function utf8Write (buf, string, offset, length) {
18972 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
18975 function asciiWrite (buf, string, offset, length) {
18976 return blitBuffer(asciiToBytes(string), buf, offset, length)
18979 function latin1Write (buf, string, offset, length) {
18980 return asciiWrite(buf, string, offset, length)
18983 function base64Write (buf, string, offset, length) {
18984 return blitBuffer(base64ToBytes(string), buf, offset, length)
18987 function ucs2Write (buf, string, offset, length) {
18988 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
18991 Buffer.prototype.write = function write (string, offset, length, encoding) {
18992 // Buffer#write(string)
18993 if (offset === undefined) {
18995 length = this.length
18997 // Buffer#write(string, encoding)
18998 } else if (length === undefined && typeof offset === 'string') {
19000 length = this.length
19002 // Buffer#write(string, offset[, length][, encoding])
19003 } else if (isFinite(offset)) {
19004 offset = offset
>>> 0
19005 if (isFinite(length)) {
19006 length = length
>>> 0
19007 if (encoding === undefined) encoding = 'utf8'
19014 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
19018 var remaining = this.length - offset
19019 if (length === undefined || length
> remaining) length = remaining
19021 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
19022 throw new RangeError('Attempt to write outside buffer bounds')
19025 if (!encoding) encoding = 'utf8'
19027 var loweredCase = false
19029 switch (encoding) {
19031 return hexWrite(this, string, offset, length)
19035 return utf8Write(this, string, offset, length)
19038 return asciiWrite(this, string, offset, length)
19042 return latin1Write(this, string, offset, length)
19045 // Warning: maxLength not taken into account in base64Write
19046 return base64Write(this, string, offset, length)
19052 return ucs2Write(this, string, offset, length)
19055 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
19056 encoding = ('' + encoding).toLowerCase()
19062 Buffer.prototype.toJSON = function toJSON () {
19065 data: Array.prototype.slice.call(this._arr || this,
0)
19069 function base64Slice (buf, start, end) {
19070 if (start ===
0 && end === buf.length) {
19071 return base64.fromByteArray(buf)
19073 return base64.fromByteArray(buf.slice(start, end))
19077 function utf8Slice (buf, start, end) {
19078 end = Math.min(buf.length, end)
19083 var firstByte = buf[i]
19084 var codePoint = null
19085 var bytesPerSequence = (firstByte
> 0xEF) ?
4
19086 : (firstByte
> 0xDF) ?
3
19087 : (firstByte
> 0xBF) ?
2
19090 if (i + bytesPerSequence <= end) {
19091 var secondByte, thirdByte, fourthByte, tempCodePoint
19093 switch (bytesPerSequence) {
19095 if (firstByte <
0x80) {
19096 codePoint = firstByte
19100 secondByte = buf[i +
1]
19101 if ((secondByte &
0xC0) ===
0x80) {
19102 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
19103 if (tempCodePoint
> 0x7F) {
19104 codePoint = tempCodePoint
19109 secondByte = buf[i +
1]
19110 thirdByte = buf[i +
2]
19111 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
19112 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
19113 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
19114 codePoint = tempCodePoint
19119 secondByte = buf[i +
1]
19120 thirdByte = buf[i +
2]
19121 fourthByte = buf[i +
3]
19122 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
19123 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
19124 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
19125 codePoint = tempCodePoint
19131 if (codePoint === null) {
19132 // we did not generate a valid codePoint so insert a
19133 // replacement char (U+FFFD) and advance only
1 byte
19135 bytesPerSequence =
1
19136 } else if (codePoint
> 0xFFFF) {
19137 // encode to utf16 (surrogate pair dance)
19138 codePoint -=
0x10000
19139 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
19140 codePoint =
0xDC00 | codePoint &
0x3FF
19143 res.push(codePoint)
19144 i += bytesPerSequence
19147 return decodeCodePointsArray(res)
19150 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
19151 // the lowest limit is Chrome, with
0x10000 args.
19152 // We go
1 magnitude less, for safety
19153 var MAX_ARGUMENTS_LENGTH =
0x1000
19155 function decodeCodePointsArray (codePoints) {
19156 var len = codePoints.length
19157 if (len <= MAX_ARGUMENTS_LENGTH) {
19158 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
19161 // Decode in chunks to avoid
"call stack size exceeded".
19165 res += String.fromCharCode.apply(
19167 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
19173 function asciiSlice (buf, start, end) {
19175 end = Math.min(buf.length, end)
19177 for (var i = start; i < end; ++i) {
19178 ret += String.fromCharCode(buf[i] &
0x7F)
19183 function latin1Slice (buf, start, end) {
19185 end = Math.min(buf.length, end)
19187 for (var i = start; i < end; ++i) {
19188 ret += String.fromCharCode(buf[i])
19193 function hexSlice (buf, start, end) {
19194 var len = buf.length
19196 if (!start || start <
0) start =
0
19197 if (!end || end <
0 || end
> len) end = len
19200 for (var i = start; i < end; ++i) {
19201 out += toHex(buf[i])
19206 function utf16leSlice (buf, start, end) {
19207 var bytes = buf.slice(start, end)
19209 for (var i =
0; i < bytes.length; i +=
2) {
19210 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
19215 Buffer.prototype.slice = function slice (start, end) {
19216 var len = this.length
19218 end = end === undefined ? len : ~~end
19222 if (start <
0) start =
0
19223 } else if (start
> len) {
19229 if (end <
0) end =
0
19230 } else if (end
> len) {
19234 if (end < start) end = start
19236 var newBuf = this.subarray(start, end)
19237 // Return an augmented `Uint8Array` instance
19238 newBuf.__proto__ = Buffer.prototype
19243 * Need to make sure that buffer isn't trying to write out of bounds.
19245 function checkOffset (offset, ext, length) {
19246 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
19247 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
19250 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
19251 offset = offset
>>> 0
19252 byteLength = byteLength
>>> 0
19253 if (!noAssert) checkOffset(offset, byteLength, this.length)
19255 var val = this[offset]
19258 while (++i < byteLength && (mul *=
0x100)) {
19259 val += this[offset + i] * mul
19265 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
19266 offset = offset
>>> 0
19267 byteLength = byteLength
>>> 0
19269 checkOffset(offset, byteLength, this.length)
19272 var val = this[offset + --byteLength]
19274 while (byteLength
> 0 && (mul *=
0x100)) {
19275 val += this[offset + --byteLength] * mul
19281 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
19282 offset = offset
>>> 0
19283 if (!noAssert) checkOffset(offset,
1, this.length)
19284 return this[offset]
19287 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
19288 offset = offset
>>> 0
19289 if (!noAssert) checkOffset(offset,
2, this.length)
19290 return this[offset] | (this[offset +
1] <<
8)
19293 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
19294 offset = offset
>>> 0
19295 if (!noAssert) checkOffset(offset,
2, this.length)
19296 return (this[offset] <<
8) | this[offset +
1]
19299 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
19300 offset = offset
>>> 0
19301 if (!noAssert) checkOffset(offset,
4, this.length)
19303 return ((this[offset]) |
19304 (this[offset +
1] <<
8) |
19305 (this[offset +
2] <<
16)) +
19306 (this[offset +
3] *
0x1000000)
19309 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
19310 offset = offset
>>> 0
19311 if (!noAssert) checkOffset(offset,
4, this.length)
19313 return (this[offset] *
0x1000000) +
19314 ((this[offset +
1] <<
16) |
19315 (this[offset +
2] <<
8) |
19319 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
19320 offset = offset
>>> 0
19321 byteLength = byteLength
>>> 0
19322 if (!noAssert) checkOffset(offset, byteLength, this.length)
19324 var val = this[offset]
19327 while (++i < byteLength && (mul *=
0x100)) {
19328 val += this[offset + i] * mul
19332 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19337 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
19338 offset = offset
>>> 0
19339 byteLength = byteLength
>>> 0
19340 if (!noAssert) checkOffset(offset, byteLength, this.length)
19344 var val = this[offset + --i]
19345 while (i
> 0 && (mul *=
0x100)) {
19346 val += this[offset + --i] * mul
19350 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19355 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
19356 offset = offset
>>> 0
19357 if (!noAssert) checkOffset(offset,
1, this.length)
19358 if (!(this[offset] &
0x80)) return (this[offset])
19359 return ((
0xff - this[offset] +
1) * -
1)
19362 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
19363 offset = offset
>>> 0
19364 if (!noAssert) checkOffset(offset,
2, this.length)
19365 var val = this[offset] | (this[offset +
1] <<
8)
19366 return (val &
0x8000) ? val |
0xFFFF0000 : val
19369 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
19370 offset = offset
>>> 0
19371 if (!noAssert) checkOffset(offset,
2, this.length)
19372 var val = this[offset +
1] | (this[offset] <<
8)
19373 return (val &
0x8000) ? val |
0xFFFF0000 : val
19376 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
19377 offset = offset
>>> 0
19378 if (!noAssert) checkOffset(offset,
4, this.length)
19380 return (this[offset]) |
19381 (this[offset +
1] <<
8) |
19382 (this[offset +
2] <<
16) |
19383 (this[offset +
3] <<
24)
19386 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
19387 offset = offset
>>> 0
19388 if (!noAssert) checkOffset(offset,
4, this.length)
19390 return (this[offset] <<
24) |
19391 (this[offset +
1] <<
16) |
19392 (this[offset +
2] <<
8) |
19396 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
19397 offset = offset
>>> 0
19398 if (!noAssert) checkOffset(offset,
4, this.length)
19399 return ieee754.read(this, offset, true,
23,
4)
19402 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
19403 offset = offset
>>> 0
19404 if (!noAssert) checkOffset(offset,
4, this.length)
19405 return ieee754.read(this, offset, false,
23,
4)
19408 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
19409 offset = offset
>>> 0
19410 if (!noAssert) checkOffset(offset,
8, this.length)
19411 return ieee754.read(this, offset, true,
52,
8)
19414 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
19415 offset = offset
>>> 0
19416 if (!noAssert) checkOffset(offset,
8, this.length)
19417 return ieee754.read(this, offset, false,
52,
8)
19420 function checkInt (buf, value, offset, ext, max, min) {
19421 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
19422 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
19423 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19426 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
19428 offset = offset
>>> 0
19429 byteLength = byteLength
>>> 0
19431 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19432 checkInt(this, value, offset, byteLength, maxBytes,
0)
19437 this[offset] = value &
0xFF
19438 while (++i < byteLength && (mul *=
0x100)) {
19439 this[offset + i] = (value / mul) &
0xFF
19442 return offset + byteLength
19445 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
19447 offset = offset
>>> 0
19448 byteLength = byteLength
>>> 0
19450 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19451 checkInt(this, value, offset, byteLength, maxBytes,
0)
19454 var i = byteLength -
1
19456 this[offset + i] = value &
0xFF
19457 while (--i
>=
0 && (mul *=
0x100)) {
19458 this[offset + i] = (value / mul) &
0xFF
19461 return offset + byteLength
19464 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
19466 offset = offset
>>> 0
19467 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
19468 this[offset] = (value &
0xff)
19472 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
19474 offset = offset
>>> 0
19475 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19476 this[offset] = (value &
0xff)
19477 this[offset +
1] = (value
>>> 8)
19481 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
19483 offset = offset
>>> 0
19484 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19485 this[offset] = (value
>>> 8)
19486 this[offset +
1] = (value &
0xff)
19490 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
19492 offset = offset
>>> 0
19493 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19494 this[offset +
3] = (value
>>> 24)
19495 this[offset +
2] = (value
>>> 16)
19496 this[offset +
1] = (value
>>> 8)
19497 this[offset] = (value &
0xff)
19501 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
19503 offset = offset
>>> 0
19504 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19505 this[offset] = (value
>>> 24)
19506 this[offset +
1] = (value
>>> 16)
19507 this[offset +
2] = (value
>>> 8)
19508 this[offset +
3] = (value &
0xff)
19512 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
19514 offset = offset
>>> 0
19516 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19518 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19524 this[offset] = value &
0xFF
19525 while (++i < byteLength && (mul *=
0x100)) {
19526 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
19529 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19532 return offset + byteLength
19535 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
19537 offset = offset
>>> 0
19539 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19541 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19544 var i = byteLength -
1
19547 this[offset + i] = value &
0xFF
19548 while (--i
>=
0 && (mul *=
0x100)) {
19549 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
19552 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19555 return offset + byteLength
19558 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
19560 offset = offset
>>> 0
19561 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
19562 if (value <
0) value =
0xff + value +
1
19563 this[offset] = (value &
0xff)
19567 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
19569 offset = offset
>>> 0
19570 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19571 this[offset] = (value &
0xff)
19572 this[offset +
1] = (value
>>> 8)
19576 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
19578 offset = offset
>>> 0
19579 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19580 this[offset] = (value
>>> 8)
19581 this[offset +
1] = (value &
0xff)
19585 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
19587 offset = offset
>>> 0
19588 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19589 this[offset] = (value &
0xff)
19590 this[offset +
1] = (value
>>> 8)
19591 this[offset +
2] = (value
>>> 16)
19592 this[offset +
3] = (value
>>> 24)
19596 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
19598 offset = offset
>>> 0
19599 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19600 if (value <
0) value =
0xffffffff + value +
1
19601 this[offset] = (value
>>> 24)
19602 this[offset +
1] = (value
>>> 16)
19603 this[offset +
2] = (value
>>> 8)
19604 this[offset +
3] = (value &
0xff)
19608 function checkIEEE754 (buf, value, offset, ext, max, min) {
19609 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19610 if (offset <
0) throw new RangeError('Index out of range')
19613 function writeFloat (buf, value, offset, littleEndian, noAssert) {
19615 offset = offset
>>> 0
19617 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
19619 ieee754.write(buf, value, offset, littleEndian,
23,
4)
19623 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
19624 return writeFloat(this, value, offset, true, noAssert)
19627 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
19628 return writeFloat(this, value, offset, false, noAssert)
19631 function writeDouble (buf, value, offset, littleEndian, noAssert) {
19633 offset = offset
>>> 0
19635 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
19637 ieee754.write(buf, value, offset, littleEndian,
52,
8)
19641 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
19642 return writeDouble(this, value, offset, true, noAssert)
19645 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
19646 return writeDouble(this, value, offset, false, noAssert)
19649 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
19650 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
19651 if (!start) start =
0
19652 if (!end && end !==
0) end = this.length
19653 if (targetStart
>= target.length) targetStart = target.length
19654 if (!targetStart) targetStart =
0
19655 if (end
> 0 && end < start) end = start
19657 // Copy
0 bytes; we're done
19658 if (end === start) return
0
19659 if (target.length ===
0 || this.length ===
0) return
0
19661 // Fatal error conditions
19662 if (targetStart <
0) {
19663 throw new RangeError('targetStart out of bounds')
19665 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
19666 if (end <
0) throw new RangeError('sourceEnd out of bounds')
19669 if (end
> this.length) end = this.length
19670 if (target.length - targetStart < end - start) {
19671 end = target.length - targetStart + start
19674 var len = end - start
19677 if (this === target && start < targetStart && targetStart < end) {
19678 // descending copy from end
19679 for (i = len -
1; i
>=
0; --i) {
19680 target[i + targetStart] = this[i + start]
19682 } else if (len <
1000) {
19683 // ascending copy from start
19684 for (i =
0; i < len; ++i) {
19685 target[i + targetStart] = this[i + start]
19688 Uint8Array.prototype.set.call(
19690 this.subarray(start, start + len),
19699 // buffer.fill(number[, offset[, end]])
19700 // buffer.fill(buffer[, offset[, end]])
19701 // buffer.fill(string[, offset[, end]][, encoding])
19702 Buffer.prototype.fill = function fill (val, start, end, encoding) {
19703 // Handle string cases:
19704 if (typeof val === 'string') {
19705 if (typeof start === 'string') {
19709 } else if (typeof end === 'string') {
19713 if (val.length ===
1) {
19714 var code = val.charCodeAt(
0)
19719 if (encoding !== undefined && typeof encoding !== 'string') {
19720 throw new TypeError('encoding must be a string')
19722 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
19723 throw new TypeError('Unknown encoding: ' + encoding)
19725 } else if (typeof val === 'number') {
19729 // Invalid ranges are not set to a default, so can range check early.
19730 if (start <
0 || this.length < start || this.length < end) {
19731 throw new RangeError('Out of range index')
19734 if (end <= start) {
19738 start = start
>>> 0
19739 end = end === undefined ? this.length : end
>>> 0
19744 if (typeof val === 'number') {
19745 for (i = start; i < end; ++i) {
19749 var bytes = Buffer.isBuffer(val)
19751 : new Buffer(val, encoding)
19752 var len = bytes.length
19753 for (i =
0; i < end - start; ++i) {
19754 this[i + start] = bytes[i % len]
19761 // HELPER FUNCTIONS
19762 // ================
19764 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
19766 function base64clean (str) {
19767 // Node strips out invalid characters like \n and \t from the string, base64-js does not
19768 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
19769 // Node converts strings with length <
2 to ''
19770 if (str.length <
2) return ''
19771 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
19772 while (str.length %
4 !==
0) {
19778 function stringtrim (str) {
19779 if (str.trim) return str.trim()
19780 return str.replace(/^\s+|\s+$/g, '')
19783 function toHex (n) {
19784 if (n <
16) return '
0' + n.toString(
16)
19785 return n.toString(
16)
19788 function utf8ToBytes (string, units) {
19789 units = units || Infinity
19791 var length = string.length
19792 var leadSurrogate = null
19795 for (var i =
0; i < length; ++i) {
19796 codePoint = string.charCodeAt(i)
19798 // is surrogate component
19799 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
19800 // last char was a lead
19801 if (!leadSurrogate) {
19803 if (codePoint
> 0xDBFF) {
19804 // unexpected trail
19805 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19807 } else if (i +
1 === length) {
19809 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19814 leadSurrogate = codePoint
19819 //
2 leads in a row
19820 if (codePoint <
0xDC00) {
19821 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19822 leadSurrogate = codePoint
19826 // valid surrogate pair
19827 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
19828 } else if (leadSurrogate) {
19829 // valid bmp char, but last char was a lead
19830 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19833 leadSurrogate = null
19836 if (codePoint <
0x80) {
19837 if ((units -=
1) <
0) break
19838 bytes.push(codePoint)
19839 } else if (codePoint <
0x800) {
19840 if ((units -=
2) <
0) break
19842 codePoint
>> 0x6 |
0xC0,
19843 codePoint &
0x3F |
0x80
19845 } else if (codePoint <
0x10000) {
19846 if ((units -=
3) <
0) break
19848 codePoint
>> 0xC |
0xE0,
19849 codePoint
>> 0x6 &
0x3F |
0x80,
19850 codePoint &
0x3F |
0x80
19852 } else if (codePoint <
0x110000) {
19853 if ((units -=
4) <
0) break
19855 codePoint
>> 0x12 |
0xF0,
19856 codePoint
>> 0xC &
0x3F |
0x80,
19857 codePoint
>> 0x6 &
0x3F |
0x80,
19858 codePoint &
0x3F |
0x80
19861 throw new Error('Invalid code point')
19868 function asciiToBytes (str) {
19870 for (var i =
0; i < str.length; ++i) {
19871 // Node's code seems to be doing this and not &
0x7F..
19872 byteArray.push(str.charCodeAt(i) &
0xFF)
19877 function utf16leToBytes (str, units) {
19880 for (var i =
0; i < str.length; ++i) {
19881 if ((units -=
2) <
0) break
19883 c = str.charCodeAt(i)
19893 function base64ToBytes (str) {
19894 return base64.toByteArray(base64clean(str))
19897 function blitBuffer (src, dst, offset, length) {
19898 for (var i =
0; i < length; ++i) {
19899 if ((i + offset
>= dst.length) || (i
>= src.length)) break
19900 dst[i + offset] = src[i]
19905 function isnan (val) {
19906 return val !== val // eslint-disable-line no-self-compare
19909 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
19910 (function (Buffer){
19911 // Copyright Joyent, Inc. and other Node contributors.
19913 // Permission is hereby granted, free of charge, to any person obtaining a
19914 // copy of this software and associated documentation files (the
19915 // "Software"), to deal in the Software without restriction, including
19916 // without limitation the rights to use, copy, modify, merge, publish,
19917 // distribute, sublicense, and/or sell copies of the Software, and to permit
19918 // persons to whom the Software is furnished to do so, subject to the
19919 // following conditions:
19921 // The above copyright notice and this permission notice shall be included
19922 // in all copies or substantial portions of the Software.
19924 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19925 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19926 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
19927 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19928 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19929 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
19930 // USE OR OTHER DEALINGS IN THE SOFTWARE.
19932 // NOTE: These type checking functions intentionally don't use `instanceof`
19933 // because it is fragile and can be easily faked with `Object.create()`.
19935 function isArray(arg) {
19936 if (Array.isArray) {
19937 return Array.isArray(arg);
19939 return objectToString(arg) === '[object Array]';
19941 exports.isArray = isArray;
19943 function isBoolean(arg) {
19944 return typeof arg === 'boolean';
19946 exports.isBoolean = isBoolean;
19948 function isNull(arg) {
19949 return arg === null;
19951 exports.isNull = isNull;
19953 function isNullOrUndefined(arg) {
19954 return arg == null;
19956 exports.isNullOrUndefined = isNullOrUndefined;
19958 function isNumber(arg) {
19959 return typeof arg === 'number';
19961 exports.isNumber = isNumber;
19963 function isString(arg) {
19964 return typeof arg === 'string';
19966 exports.isString = isString;
19968 function isSymbol(arg) {
19969 return typeof arg === 'symbol';
19971 exports.isSymbol = isSymbol;
19973 function isUndefined(arg) {
19974 return arg === void
0;
19976 exports.isUndefined = isUndefined;
19978 function isRegExp(re) {
19979 return objectToString(re) === '[object RegExp]';
19981 exports.isRegExp = isRegExp;
19983 function isObject(arg) {
19984 return typeof arg === 'object' && arg !== null;
19986 exports.isObject = isObject;
19988 function isDate(d) {
19989 return objectToString(d) === '[object Date]';
19991 exports.isDate = isDate;
19993 function isError(e) {
19994 return (objectToString(e) === '[object Error]' || e instanceof Error);
19996 exports.isError = isError;
19998 function isFunction(arg) {
19999 return typeof arg === 'function';
20001 exports.isFunction = isFunction;
20003 function isPrimitive(arg) {
20004 return arg === null ||
20005 typeof arg === 'boolean' ||
20006 typeof arg === 'number' ||
20007 typeof arg === 'string' ||
20008 typeof arg === 'symbol' || // ES6 symbol
20009 typeof arg === 'undefined';
20011 exports.isPrimitive = isPrimitive;
20013 exports.isBuffer = Buffer.isBuffer;
20015 function objectToString(o) {
20016 return Object.prototype.toString.call(o);
20019 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
20020 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
20021 // Copyright Joyent, Inc. and other Node contributors.
20023 // Permission is hereby granted, free of charge, to any person obtaining a
20024 // copy of this software and associated documentation files (the
20025 // "Software"), to deal in the Software without restriction, including
20026 // without limitation the rights to use, copy, modify, merge, publish,
20027 // distribute, sublicense, and/or sell copies of the Software, and to permit
20028 // persons to whom the Software is furnished to do so, subject to the
20029 // following conditions:
20031 // The above copyright notice and this permission notice shall be included
20032 // in all copies or substantial portions of the Software.
20034 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20035 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20036 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20037 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20038 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20039 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20040 // USE OR OTHER DEALINGS IN THE SOFTWARE.
20042 function EventEmitter() {
20043 this._events = this._events || {};
20044 this._maxListeners = this._maxListeners || undefined;
20046 module.exports = EventEmitter;
20048 // Backwards-compat with node
0.10.x
20049 EventEmitter.EventEmitter = EventEmitter;
20051 EventEmitter.prototype._events = undefined;
20052 EventEmitter.prototype._maxListeners = undefined;
20054 // By default EventEmitters will print a warning if more than
10 listeners are
20055 // added to it. This is a useful default which helps finding memory leaks.
20056 EventEmitter.defaultMaxListeners =
10;
20058 // Obviously not all Emitters should be limited to
10. This function allows
20059 // that to be increased. Set to zero for unlimited.
20060 EventEmitter.prototype.setMaxListeners = function(n) {
20061 if (!isNumber(n) || n <
0 || isNaN(n))
20062 throw TypeError('n must be a positive number');
20063 this._maxListeners = n;
20067 EventEmitter.prototype.emit = function(type) {
20068 var er, handler, len, args, i, listeners;
20073 // If there is no 'error' event listener then throw.
20074 if (type === 'error') {
20075 if (!this._events.error ||
20076 (isObject(this._events.error) && !this._events.error.length)) {
20078 if (er instanceof Error) {
20079 throw er; // Unhandled 'error' event
20081 // At least give some kind of context to the user
20082 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
20089 handler = this._events[type];
20091 if (isUndefined(handler))
20094 if (isFunction(handler)) {
20095 switch (arguments.length) {
20098 handler.call(this);
20101 handler.call(this, arguments[
1]);
20104 handler.call(this, arguments[
1], arguments[
2]);
20108 args = Array.prototype.slice.call(arguments,
1);
20109 handler.apply(this, args);
20111 } else if (isObject(handler)) {
20112 args = Array.prototype.slice.call(arguments,
1);
20113 listeners = handler.slice();
20114 len = listeners.length;
20115 for (i =
0; i < len; i++)
20116 listeners[i].apply(this, args);
20122 EventEmitter.prototype.addListener = function(type, listener) {
20125 if (!isFunction(listener))
20126 throw TypeError('listener must be a function');
20131 // To avoid recursion in the case that type === "newListener"! Before
20132 // adding it to the listeners, first emit "newListener".
20133 if (this._events.newListener)
20134 this.emit('newListener', type,
20135 isFunction(listener.listener) ?
20136 listener.listener : listener);
20138 if (!this._events[type])
20139 // Optimize the case of one listener. Don't need the extra array object.
20140 this._events[type] = listener;
20141 else if (isObject(this._events[type]))
20142 // If we've already got an array, just append.
20143 this._events[type].push(listener);
20145 // Adding the second element, need to change to array.
20146 this._events[type] = [this._events[type], listener];
20148 // Check for listener leak
20149 if (isObject(this._events[type]) && !this._events[type].warned) {
20150 if (!isUndefined(this._maxListeners)) {
20151 m = this._maxListeners;
20153 m = EventEmitter.defaultMaxListeners;
20156 if (m && m
> 0 && this._events[type].length
> m) {
20157 this._events[type].warned = true;
20158 console.error('(node) warning: possible EventEmitter memory ' +
20159 'leak detected. %d listeners added. ' +
20160 'Use emitter.setMaxListeners() to increase limit.',
20161 this._events[type].length);
20162 if (typeof console.trace === 'function') {
20163 // not supported in IE
10
20172 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
20174 EventEmitter.prototype.once = function(type, listener) {
20175 if (!isFunction(listener))
20176 throw TypeError('listener must be a function');
20181 this.removeListener(type, g);
20185 listener.apply(this, arguments);
20189 g.listener = listener;
20195 // emits a 'removeListener' event iff the listener was removed
20196 EventEmitter.prototype.removeListener = function(type, listener) {
20197 var list, position, length, i;
20199 if (!isFunction(listener))
20200 throw TypeError('listener must be a function');
20202 if (!this._events || !this._events[type])
20205 list = this._events[type];
20206 length = list.length;
20209 if (list === listener ||
20210 (isFunction(list.listener) && list.listener === listener)) {
20211 delete this._events[type];
20212 if (this._events.removeListener)
20213 this.emit('removeListener', type, listener);
20215 } else if (isObject(list)) {
20216 for (i = length; i--
> 0;) {
20217 if (list[i] === listener ||
20218 (list[i].listener && list[i].listener === listener)) {
20227 if (list.length ===
1) {
20229 delete this._events[type];
20231 list.splice(position,
1);
20234 if (this._events.removeListener)
20235 this.emit('removeListener', type, listener);
20241 EventEmitter.prototype.removeAllListeners = function(type) {
20242 var key, listeners;
20247 // not listening for removeListener, no need to emit
20248 if (!this._events.removeListener) {
20249 if (arguments.length ===
0)
20251 else if (this._events[type])
20252 delete this._events[type];
20256 // emit removeListener for all listeners on all events
20257 if (arguments.length ===
0) {
20258 for (key in this._events) {
20259 if (key === 'removeListener') continue;
20260 this.removeAllListeners(key);
20262 this.removeAllListeners('removeListener');
20267 listeners = this._events[type];
20269 if (isFunction(listeners)) {
20270 this.removeListener(type, listeners);
20271 } else if (listeners) {
20273 while (listeners.length)
20274 this.removeListener(type, listeners[listeners.length -
1]);
20276 delete this._events[type];
20281 EventEmitter.prototype.listeners = function(type) {
20283 if (!this._events || !this._events[type])
20285 else if (isFunction(this._events[type]))
20286 ret = [this._events[type]];
20288 ret = this._events[type].slice();
20292 EventEmitter.prototype.listenerCount = function(type) {
20293 if (this._events) {
20294 var evlistener = this._events[type];
20296 if (isFunction(evlistener))
20298 else if (evlistener)
20299 return evlistener.length;
20304 EventEmitter.listenerCount = function(emitter, type) {
20305 return emitter.listenerCount(type);
20308 function isFunction(arg) {
20309 return typeof arg === 'function';
20312 function isNumber(arg) {
20313 return typeof arg === 'number';
20316 function isObject(arg) {
20317 return typeof arg === 'object' && arg !== null;
20320 function isUndefined(arg) {
20321 return arg === void
0;
20324 },{}],
8:[function(require,module,exports){
20325 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
20327 var eLen = nBytes *
8 - mLen -
1
20328 var eMax = (
1 << eLen) -
1
20329 var eBias = eMax
>> 1
20331 var i = isLE ? (nBytes -
1) :
0
20332 var d = isLE ? -
1 :
1
20333 var s = buffer[offset + i]
20337 e = s & ((
1 << (-nBits)) -
1)
20340 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20342 m = e & ((
1 << (-nBits)) -
1)
20345 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20349 } else if (e === eMax) {
20350 return m ? NaN : ((s ? -
1 :
1) * Infinity)
20352 m = m + Math.pow(
2, mLen)
20355 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
20358 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
20360 var eLen = nBytes *
8 - mLen -
1
20361 var eMax = (
1 << eLen) -
1
20362 var eBias = eMax
>> 1
20363 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
20364 var i = isLE ?
0 : (nBytes -
1)
20365 var d = isLE ?
1 : -
1
20366 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
20368 value = Math.abs(value)
20370 if (isNaN(value) || value === Infinity) {
20371 m = isNaN(value) ?
1 :
0
20374 e = Math.floor(Math.log(value) / Math.LN2)
20375 if (value * (c = Math.pow(
2, -e)) <
1) {
20379 if (e + eBias
>=
1) {
20382 value += rt * Math.pow(
2,
1 - eBias)
20384 if (value * c
>=
2) {
20389 if (e + eBias
>= eMax) {
20392 } else if (e + eBias
>=
1) {
20393 m = (value * c -
1) * Math.pow(
2, mLen)
20396 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
20401 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
20403 e = (e << mLen) | m
20405 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
20407 buffer[offset + i - d] |= s *
128
20410 },{}],
9:[function(require,module,exports){
20411 if (typeof Object.create === 'function') {
20412 // implementation from standard node.js 'util' module
20413 module.exports = function inherits(ctor, superCtor) {
20414 ctor.super_ = superCtor
20415 ctor.prototype = Object.create(superCtor.prototype, {
20425 // old school shim for old browsers
20426 module.exports = function inherits(ctor, superCtor) {
20427 ctor.super_ = superCtor
20428 var TempCtor = function () {}
20429 TempCtor.prototype = superCtor.prototype
20430 ctor.prototype = new TempCtor()
20431 ctor.prototype.constructor = ctor
20435 },{}],
10:[function(require,module,exports){
20437 * Determine if an object is a Buffer
20439 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20443 // The _isBuffer check is for Safari
5-
7 support, because it's missing
20444 // Object.prototype.constructor. Remove this eventually
20445 module.exports = function (obj) {
20446 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
20449 function isBuffer (obj) {
20450 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
20453 // For Node v0.10 support. Remove this eventually.
20454 function isSlowBuffer (obj) {
20455 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
20458 },{}],
11:[function(require,module,exports){
20459 var toString = {}.toString;
20461 module.exports = Array.isArray || function (arr) {
20462 return toString.call(arr) == '[object Array]';
20465 },{}],
12:[function(require,module,exports){
20466 (function (process){
20469 if (!process.version ||
20470 process.version.indexOf('v0.') ===
0 ||
20471 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
20472 module.exports = nextTick;
20474 module.exports = process.nextTick;
20477 function nextTick(fn, arg1, arg2, arg3) {
20478 if (typeof fn !== 'function') {
20479 throw new TypeError('"callback" argument must be a function');
20481 var len = arguments.length;
20486 return process.nextTick(fn);
20488 return process.nextTick(function afterTickOne() {
20489 fn.call(null, arg1);
20492 return process.nextTick(function afterTickTwo() {
20493 fn.call(null, arg1, arg2);
20496 return process.nextTick(function afterTickThree() {
20497 fn.call(null, arg1, arg2, arg3);
20500 args = new Array(len -
1);
20502 while (i < args.length) {
20503 args[i++] = arguments[i];
20505 return process.nextTick(function afterTick() {
20506 fn.apply(null, args);
20511 }).call(this,require('_process'))
20512 },{"_process":
13}],
13:[function(require,module,exports){
20513 // shim for using process in browser
20514 var process = module.exports = {};
20516 // cached from whatever global is present so that test runners that stub it
20517 // don't break things. But we need to wrap it in a try catch in case it is
20518 // wrapped in strict mode code which doesn't define any globals. It's inside a
20519 // function because try/catches deoptimize in certain engines.
20521 var cachedSetTimeout;
20522 var cachedClearTimeout;
20524 function defaultSetTimout() {
20525 throw new Error('setTimeout has not been defined');
20527 function defaultClearTimeout () {
20528 throw new Error('clearTimeout has not been defined');
20532 if (typeof setTimeout === 'function') {
20533 cachedSetTimeout = setTimeout;
20535 cachedSetTimeout = defaultSetTimout;
20538 cachedSetTimeout = defaultSetTimout;
20541 if (typeof clearTimeout === 'function') {
20542 cachedClearTimeout = clearTimeout;
20544 cachedClearTimeout = defaultClearTimeout;
20547 cachedClearTimeout = defaultClearTimeout;
20550 function runTimeout(fun) {
20551 if (cachedSetTimeout === setTimeout) {
20552 //normal enviroments in sane situations
20553 return setTimeout(fun,
0);
20555 // if setTimeout wasn't available but was latter defined
20556 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
20557 cachedSetTimeout = setTimeout;
20558 return setTimeout(fun,
0);
20561 // when when somebody has screwed with setTimeout but no I.E. maddness
20562 return cachedSetTimeout(fun,
0);
20565 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20566 return cachedSetTimeout.call(null, fun,
0);
20568 // 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
20569 return cachedSetTimeout.call(this, fun,
0);
20575 function runClearTimeout(marker) {
20576 if (cachedClearTimeout === clearTimeout) {
20577 //normal enviroments in sane situations
20578 return clearTimeout(marker);
20580 // if clearTimeout wasn't available but was latter defined
20581 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
20582 cachedClearTimeout = clearTimeout;
20583 return clearTimeout(marker);
20586 // when when somebody has screwed with setTimeout but no I.E. maddness
20587 return cachedClearTimeout(marker);
20590 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20591 return cachedClearTimeout.call(null, marker);
20593 // 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.
20594 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
20595 return cachedClearTimeout.call(this, marker);
20603 var draining = false;
20605 var queueIndex = -
1;
20607 function cleanUpNextTick() {
20608 if (!draining || !currentQueue) {
20612 if (currentQueue.length) {
20613 queue = currentQueue.concat(queue);
20617 if (queue.length) {
20622 function drainQueue() {
20626 var timeout = runTimeout(cleanUpNextTick);
20629 var len = queue.length;
20631 currentQueue = queue;
20633 while (++queueIndex < len) {
20634 if (currentQueue) {
20635 currentQueue[queueIndex].run();
20639 len = queue.length;
20641 currentQueue = null;
20643 runClearTimeout(timeout);
20646 process.nextTick = function (fun) {
20647 var args = new Array(arguments.length -
1);
20648 if (arguments.length
> 1) {
20649 for (var i =
1; i < arguments.length; i++) {
20650 args[i -
1] = arguments[i];
20653 queue.push(new Item(fun, args));
20654 if (queue.length ===
1 && !draining) {
20655 runTimeout(drainQueue);
20659 // v8 likes predictible objects
20660 function Item(fun, array) {
20662 this.array = array;
20664 Item.prototype.run = function () {
20665 this.fun.apply(null, this.array);
20667 process.title = 'browser';
20668 process.browser = true;
20671 process.version = ''; // empty string to avoid regexp issues
20672 process.versions = {};
20677 process.addListener = noop;
20678 process.once = noop;
20679 process.off = noop;
20680 process.removeListener = noop;
20681 process.removeAllListeners = noop;
20682 process.emit = noop;
20684 process.binding = function (name) {
20685 throw new Error('process.binding is not supported');
20688 process.cwd = function () { return '/' };
20689 process.chdir = function (dir) {
20690 throw new Error('process.chdir is not supported');
20692 process.umask = function() { return
0; };
20694 },{}],
14:[function(require,module,exports){
20695 module.exports = require(
"./lib/_stream_duplex.js")
20697 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
20698 // a duplex stream is just a stream that is both readable and writable.
20699 // Since JS doesn't have multiple prototypal inheritance, this class
20700 // prototypally inherits from Readable, and then parasitically from
20707 var objectKeys = Object.keys || function (obj) {
20709 for (var key in obj) {
20715 module.exports = Duplex;
20718 var processNextTick = require('process-nextick-args');
20722 var util = require('core-util-is');
20723 util.inherits = require('inherits');
20726 var Readable = require('./_stream_readable');
20727 var Writable = require('./_stream_writable');
20729 util.inherits(Duplex, Readable);
20731 var keys = objectKeys(Writable.prototype);
20732 for (var v =
0; v < keys.length; v++) {
20733 var method = keys[v];
20734 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
20737 function Duplex(options) {
20738 if (!(this instanceof Duplex)) return new Duplex(options);
20740 Readable.call(this, options);
20741 Writable.call(this, options);
20743 if (options && options.readable === false) this.readable = false;
20745 if (options && options.writable === false) this.writable = false;
20747 this.allowHalfOpen = true;
20748 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
20750 this.once('end', onend);
20753 // the no-half-open enforcer
20755 // if we allow half-open state, or if the writable side ended,
20757 if (this.allowHalfOpen || this._writableState.ended) return;
20759 // no more data can be written.
20760 // But allow more writes to happen in this tick.
20761 processNextTick(onEndNT, this);
20764 function onEndNT(self) {
20768 function forEach(xs, f) {
20769 for (var i =
0, l = xs.length; i < l; i++) {
20773 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
20774 // a passthrough stream.
20775 // basically just the most minimal sort of Transform stream.
20776 // Every written chunk gets output as-is.
20780 module.exports = PassThrough;
20782 var Transform = require('./_stream_transform');
20785 var util = require('core-util-is');
20786 util.inherits = require('inherits');
20789 util.inherits(PassThrough, Transform);
20791 function PassThrough(options) {
20792 if (!(this instanceof PassThrough)) return new PassThrough(options);
20794 Transform.call(this, options);
20797 PassThrough.prototype._transform = function (chunk, encoding, cb) {
20800 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
20801 (function (process){
20804 module.exports = Readable;
20807 var processNextTick = require('process-nextick-args');
20811 var isArray = require('isarray');
20818 Readable.ReadableState = ReadableState;
20821 var EE = require('events').EventEmitter;
20823 var EElistenerCount = function (emitter, type) {
20824 return emitter.listeners(type).length;
20832 Stream = require('st' + 'ream');
20833 } catch (_) {} finally {
20834 if (!Stream) Stream = require('events').EventEmitter;
20839 var Buffer = require('buffer').Buffer;
20841 var bufferShim = require('buffer-shims');
20845 var util = require('core-util-is');
20846 util.inherits = require('inherits');
20850 var debugUtil = require('util');
20851 var debug = void
0;
20852 if (debugUtil && debugUtil.debuglog) {
20853 debug = debugUtil.debuglog('stream');
20855 debug = function () {};
20859 var BufferList = require('./internal/streams/BufferList');
20862 util.inherits(Readable, Stream);
20864 function prependListener(emitter, event, fn) {
20865 // Sadly this is not cacheable as some libraries bundle their own
20866 // event emitter implementation with them.
20867 if (typeof emitter.prependListener === 'function') {
20868 return emitter.prependListener(event, fn);
20870 // This is a hack to make sure that our error handler is attached before any
20871 // userland ones. NEVER DO THIS. This is here only because this code needs
20872 // to continue to work with older versions of Node.js that do not include
20873 // the prependListener() method. The goal is to eventually remove this hack.
20874 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]];
20878 function ReadableState(options, stream) {
20879 Duplex = Duplex || require('./_stream_duplex');
20881 options = options || {};
20883 // object stream flag. Used to make read(n) ignore n and to
20884 // make all the buffer merging and length checks go away
20885 this.objectMode = !!options.objectMode;
20887 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
20889 // the point at which it stops calling _read() to fill the buffer
20890 // Note:
0 is a valid value, means "don't call _read preemptively ever"
20891 var hwm = options.highWaterMark;
20892 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
20893 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
20896 this.highWaterMark = ~ ~this.highWaterMark;
20898 // A linked list is used to store data chunks instead of an array because the
20899 // linked list can remove elements from the beginning faster than
20901 this.buffer = new BufferList();
20904 this.pipesCount =
0;
20905 this.flowing = null;
20906 this.ended = false;
20907 this.endEmitted = false;
20908 this.reading = false;
20910 // a flag to be able to tell if the onwrite cb is called immediately,
20911 // or on a later tick. We set this to true at first, because any
20912 // actions that shouldn't happen until "later" should generally also
20913 // not happen before the first write call.
20916 // whenever we return null, then we set a flag to say
20917 // that we're awaiting a 'readable' event emission.
20918 this.needReadable = false;
20919 this.emittedReadable = false;
20920 this.readableListening = false;
20921 this.resumeScheduled = false;
20923 // Crypto is kind of old and crusty. Historically, its default string
20924 // encoding is 'binary' so we have to make this configurable.
20925 // Everything else in the universe uses 'utf8', though.
20926 this.defaultEncoding = options.defaultEncoding || 'utf8';
20928 // when piping, we only care about 'readable' events that happen
20929 // after read()ing all the bytes and not getting any pushback.
20930 this.ranOut = false;
20932 // the number of writers that are awaiting a drain event in .pipe()s
20933 this.awaitDrain =
0;
20935 // if true, a maybeReadMore has been scheduled
20936 this.readingMore = false;
20938 this.decoder = null;
20939 this.encoding = null;
20940 if (options.encoding) {
20941 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
20942 this.decoder = new StringDecoder(options.encoding);
20943 this.encoding = options.encoding;
20947 function Readable(options) {
20948 Duplex = Duplex || require('./_stream_duplex');
20950 if (!(this instanceof Readable)) return new Readable(options);
20952 this._readableState = new ReadableState(options, this);
20955 this.readable = true;
20957 if (options && typeof options.read === 'function') this._read = options.read;
20962 // Manually shove something into the read() buffer.
20963 // This returns true if the highWaterMark has not been hit yet,
20964 // similar to how Writable.write() returns true if you should
20965 // write() some more.
20966 Readable.prototype.push = function (chunk, encoding) {
20967 var state = this._readableState;
20969 if (!state.objectMode && typeof chunk === 'string') {
20970 encoding = encoding || state.defaultEncoding;
20971 if (encoding !== state.encoding) {
20972 chunk = bufferShim.from(chunk, encoding);
20977 return readableAddChunk(this, state, chunk, encoding, false);
20980 // Unshift should *always* be something directly out of read()
20981 Readable.prototype.unshift = function (chunk) {
20982 var state = this._readableState;
20983 return readableAddChunk(this, state, chunk, '', true);
20986 Readable.prototype.isPaused = function () {
20987 return this._readableState.flowing === false;
20990 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
20991 var er = chunkInvalid(state, chunk);
20993 stream.emit('error', er);
20994 } else if (chunk === null) {
20995 state.reading = false;
20996 onEofChunk(stream, state);
20997 } else if (state.objectMode || chunk && chunk.length
> 0) {
20998 if (state.ended && !addToFront) {
20999 var e = new Error('stream.push() after EOF');
21000 stream.emit('error', e);
21001 } else if (state.endEmitted && addToFront) {
21002 var _e = new Error('stream.unshift() after end event');
21003 stream.emit('error', _e);
21006 if (state.decoder && !addToFront && !encoding) {
21007 chunk = state.decoder.write(chunk);
21008 skipAdd = !state.objectMode && chunk.length ===
0;
21011 if (!addToFront) state.reading = false;
21013 // Don't add to the buffer if we've decoded to an empty string chunk and
21014 // we're not in object mode
21016 // if we want the data now, just emit it.
21017 if (state.flowing && state.length ===
0 && !state.sync) {
21018 stream.emit('data', chunk);
21021 // update the buffer info.
21022 state.length += state.objectMode ?
1 : chunk.length;
21023 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
21025 if (state.needReadable) emitReadable(stream);
21029 maybeReadMore(stream, state);
21031 } else if (!addToFront) {
21032 state.reading = false;
21035 return needMoreData(state);
21038 // if it's past the high water mark, we can push in some more.
21039 // Also, if we have no data yet, we can stand some
21040 // more bytes. This is to work around cases where hwm=
0,
21041 // such as the repl. Also, if the push() triggered a
21042 // readable event, and the user called read(largeNumber) such that
21043 // needReadable was set, then we ought to push more, so that another
21044 // 'readable' event will be triggered.
21045 function needMoreData(state) {
21046 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
21049 // backwards compatibility.
21050 Readable.prototype.setEncoding = function (enc) {
21051 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
21052 this._readableState.decoder = new StringDecoder(enc);
21053 this._readableState.encoding = enc;
21057 // Don't raise the hwm
> 8MB
21058 var MAX_HWM =
0x800000;
21059 function computeNewHighWaterMark(n) {
21060 if (n
>= MAX_HWM) {
21063 // Get the next highest power of
2 to prevent increasing hwm excessively in
21076 // This function is designed to be inlinable, so please take care when making
21077 // changes to the function body.
21078 function howMuchToRead(n, state) {
21079 if (n <=
0 || state.length ===
0 && state.ended) return
0;
21080 if (state.objectMode) return
1;
21082 // Only flow one buffer at a time
21083 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
21085 // If we're asking for more than the current hwm, then raise the hwm.
21086 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
21087 if (n <= state.length) return n;
21088 // Don't have enough
21089 if (!state.ended) {
21090 state.needReadable = true;
21093 return state.length;
21096 // you can override either this method, or the async _read(n) below.
21097 Readable.prototype.read = function (n) {
21099 n = parseInt(n,
10);
21100 var state = this._readableState;
21103 if (n !==
0) state.emittedReadable = false;
21105 // if we're doing read(
0) to trigger a readable event, but we
21106 // already have a bunch of data in the buffer, then just trigger
21107 // the 'readable' event and move on.
21108 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
21109 debug('read: emitReadable', state.length, state.ended);
21110 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
21114 n = howMuchToRead(n, state);
21116 // if we've ended, and we're now clear, then finish it up.
21117 if (n ===
0 && state.ended) {
21118 if (state.length ===
0) endReadable(this);
21122 // All the actual chunk generation logic needs to be
21123 // *below* the call to _read. The reason is that in certain
21124 // synthetic stream cases, such as passthrough streams, _read
21125 // may be a completely synchronous operation which may change
21126 // the state of the read buffer, providing enough data when
21127 // before there was *not* enough.
21129 // So, the steps are:
21130 //
1. Figure out what the state of things will be after we do
21131 // a read from the buffer.
21133 //
2. If that resulting state will trigger a _read, then call _read.
21134 // Note that this may be asynchronous, or synchronous. Yes, it is
21135 // deeply ugly to write APIs this way, but that still doesn't mean
21136 // that the Readable class should behave improperly, as streams are
21137 // designed to be sync/async agnostic.
21138 // Take note if the _read call is sync or async (ie, if the read call
21139 // has returned yet), so that we know whether or not it's safe to emit
21142 //
3. Actually pull the requested chunks out of the buffer and return.
21144 // if we need a readable event, then we need to do some reading.
21145 var doRead = state.needReadable;
21146 debug('need readable', doRead);
21148 // if we currently have less than the highWaterMark, then also read some
21149 if (state.length ===
0 || state.length - n < state.highWaterMark) {
21151 debug('length less than watermark', doRead);
21154 // however, if we've ended, then there's no point, and if we're already
21155 // reading, then it's unnecessary.
21156 if (state.ended || state.reading) {
21158 debug('reading or ended', doRead);
21159 } else if (doRead) {
21161 state.reading = true;
21163 // if the length is currently zero, then we *need* a readable event.
21164 if (state.length ===
0) state.needReadable = true;
21165 // call internal read method
21166 this._read(state.highWaterMark);
21167 state.sync = false;
21168 // If _read pushed data synchronously, then `reading` will be false,
21169 // and we need to re-evaluate how much data we can return to the user.
21170 if (!state.reading) n = howMuchToRead(nOrig, state);
21174 if (n
> 0) ret = fromList(n, state);else ret = null;
21176 if (ret === null) {
21177 state.needReadable = true;
21183 if (state.length ===
0) {
21184 // If we have nothing in the buffer, then we want to know
21185 // as soon as we *do* get something into the buffer.
21186 if (!state.ended) state.needReadable = true;
21188 // If we tried to read() past the EOF, then emit end on the next tick.
21189 if (nOrig !== n && state.ended) endReadable(this);
21192 if (ret !== null) this.emit('data', ret);
21197 function chunkInvalid(state, chunk) {
21199 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
21200 er = new TypeError('Invalid non-string/buffer chunk');
21205 function onEofChunk(stream, state) {
21206 if (state.ended) return;
21207 if (state.decoder) {
21208 var chunk = state.decoder.end();
21209 if (chunk && chunk.length) {
21210 state.buffer.push(chunk);
21211 state.length += state.objectMode ?
1 : chunk.length;
21214 state.ended = true;
21216 // emit 'readable' now to make sure it gets picked up.
21217 emitReadable(stream);
21220 // Don't emit readable right away in sync mode, because this can trigger
21221 // another read() call =
> stack overflow. This way, it might trigger
21222 // a nextTick recursion warning, but that's not so bad.
21223 function emitReadable(stream) {
21224 var state = stream._readableState;
21225 state.needReadable = false;
21226 if (!state.emittedReadable) {
21227 debug('emitReadable', state.flowing);
21228 state.emittedReadable = true;
21229 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
21233 function emitReadable_(stream) {
21234 debug('emit readable');
21235 stream.emit('readable');
21239 // at this point, the user has presumably seen the 'readable' event,
21240 // and called read() to consume some data. that may have triggered
21241 // in turn another _read(n) call, in which case reading = true if
21242 // it's in progress.
21243 // However, if we're not ended, or reading, and the length < hwm,
21244 // then go ahead and try to read some more preemptively.
21245 function maybeReadMore(stream, state) {
21246 if (!state.readingMore) {
21247 state.readingMore = true;
21248 processNextTick(maybeReadMore_, stream, state);
21252 function maybeReadMore_(stream, state) {
21253 var len = state.length;
21254 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
21255 debug('maybeReadMore read
0');
21257 if (len === state.length)
21258 // didn't get any data, stop spinning.
21259 break;else len = state.length;
21261 state.readingMore = false;
21264 // abstract method. to be overridden in specific implementation classes.
21265 // call cb(er, data) where data is <= n in length.
21266 // for virtual (non-string, non-buffer) streams, "length" is somewhat
21267 // arbitrary, and perhaps not very meaningful.
21268 Readable.prototype._read = function (n) {
21269 this.emit('error', new Error('_read() is not implemented'));
21272 Readable.prototype.pipe = function (dest, pipeOpts) {
21274 var state = this._readableState;
21276 switch (state.pipesCount) {
21278 state.pipes = dest;
21281 state.pipes = [state.pipes, dest];
21284 state.pipes.push(dest);
21287 state.pipesCount +=
1;
21288 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
21290 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
21292 var endFn = doEnd ? onend : cleanup;
21293 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
21295 dest.on('unpipe', onunpipe);
21296 function onunpipe(readable) {
21298 if (readable === src) {
21308 // when the dest drains, it reduces the awaitDrain counter
21309 // on the source. This would be more elegant with a .once()
21310 // handler in flow(), but adding and removing repeatedly is
21312 var ondrain = pipeOnDrain(src);
21313 dest.on('drain', ondrain);
21315 var cleanedUp = false;
21316 function cleanup() {
21318 // cleanup event handlers once the pipe is broken
21319 dest.removeListener('close', onclose);
21320 dest.removeListener('finish', onfinish);
21321 dest.removeListener('drain', ondrain);
21322 dest.removeListener('error', onerror);
21323 dest.removeListener('unpipe', onunpipe);
21324 src.removeListener('end', onend);
21325 src.removeListener('end', cleanup);
21326 src.removeListener('data', ondata);
21330 // if the reader is waiting for a drain event from this
21331 // specific writer, then it would cause it to never start
21333 // So, if this is awaiting a drain, then we just call it now.
21334 // If we don't know, then assume that we are waiting for one.
21335 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
21338 // If the user pushes more data while we're writing to dest then we'll end up
21339 // in ondata again. However, we only want to increase awaitDrain once because
21340 // dest will only emit one 'drain' event for the multiple writes.
21341 // =
> Introduce a guard on increasing awaitDrain.
21342 var increasedAwaitDrain = false;
21343 src.on('data', ondata);
21344 function ondata(chunk) {
21346 increasedAwaitDrain = false;
21347 var ret = dest.write(chunk);
21348 if (false === ret && !increasedAwaitDrain) {
21349 // If the user unpiped during `dest.write()`, it is possible
21350 // to get stuck in a permanently paused state if that write
21351 // also returned false.
21352 // =
> Check whether `dest` is still a piping destination.
21353 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
21354 debug('false write response, pause', src._readableState.awaitDrain);
21355 src._readableState.awaitDrain++;
21356 increasedAwaitDrain = true;
21362 // if the dest has an error, then stop piping into it.
21363 // however, don't suppress the throwing behavior for this.
21364 function onerror(er) {
21365 debug('onerror', er);
21367 dest.removeListener('error', onerror);
21368 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
21371 // Make sure our error handler is attached before userland ones.
21372 prependListener(dest, 'error', onerror);
21374 // Both close and finish should trigger unpipe, but only once.
21375 function onclose() {
21376 dest.removeListener('finish', onfinish);
21379 dest.once('close', onclose);
21380 function onfinish() {
21382 dest.removeListener('close', onclose);
21385 dest.once('finish', onfinish);
21387 function unpipe() {
21392 // tell the dest that it's being piped to
21393 dest.emit('pipe', src);
21395 // start the flow if it hasn't been started already.
21396 if (!state.flowing) {
21397 debug('pipe resume');
21404 function pipeOnDrain(src) {
21405 return function () {
21406 var state = src._readableState;
21407 debug('pipeOnDrain', state.awaitDrain);
21408 if (state.awaitDrain) state.awaitDrain--;
21409 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
21410 state.flowing = true;
21416 Readable.prototype.unpipe = function (dest) {
21417 var state = this._readableState;
21419 // if we're not piping anywhere, then do nothing.
21420 if (state.pipesCount ===
0) return this;
21422 // just one destination. most common case.
21423 if (state.pipesCount ===
1) {
21424 // passed in one, but it's not the right one.
21425 if (dest && dest !== state.pipes) return this;
21427 if (!dest) dest = state.pipes;
21430 state.pipes = null;
21431 state.pipesCount =
0;
21432 state.flowing = false;
21433 if (dest) dest.emit('unpipe', this);
21437 // slow case. multiple pipe destinations.
21441 var dests = state.pipes;
21442 var len = state.pipesCount;
21443 state.pipes = null;
21444 state.pipesCount =
0;
21445 state.flowing = false;
21447 for (var i =
0; i < len; i++) {
21448 dests[i].emit('unpipe', this);
21452 // try to find the right one.
21453 var index = indexOf(state.pipes, dest);
21454 if (index === -
1) return this;
21456 state.pipes.splice(index,
1);
21457 state.pipesCount -=
1;
21458 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
21460 dest.emit('unpipe', this);
21465 // set up data events if they are asked for
21466 // Ensure readable listeners eventually get something
21467 Readable.prototype.on = function (ev, fn) {
21468 var res = Stream.prototype.on.call(this, ev, fn);
21470 if (ev === 'data') {
21471 // Start flowing on next tick if stream isn't explicitly paused
21472 if (this._readableState.flowing !== false) this.resume();
21473 } else if (ev === 'readable') {
21474 var state = this._readableState;
21475 if (!state.endEmitted && !state.readableListening) {
21476 state.readableListening = state.needReadable = true;
21477 state.emittedReadable = false;
21478 if (!state.reading) {
21479 processNextTick(nReadingNextTick, this);
21480 } else if (state.length) {
21481 emitReadable(this, state);
21488 Readable.prototype.addListener = Readable.prototype.on;
21490 function nReadingNextTick(self) {
21491 debug('readable nexttick read
0');
21495 // pause() and resume() are remnants of the legacy readable stream API
21496 // If the user uses them, then switch into old mode.
21497 Readable.prototype.resume = function () {
21498 var state = this._readableState;
21499 if (!state.flowing) {
21501 state.flowing = true;
21502 resume(this, state);
21507 function resume(stream, state) {
21508 if (!state.resumeScheduled) {
21509 state.resumeScheduled = true;
21510 processNextTick(resume_, stream, state);
21514 function resume_(stream, state) {
21515 if (!state.reading) {
21516 debug('resume read
0');
21520 state.resumeScheduled = false;
21521 state.awaitDrain =
0;
21522 stream.emit('resume');
21524 if (state.flowing && !state.reading) stream.read(
0);
21527 Readable.prototype.pause = function () {
21528 debug('call pause flowing=%j', this._readableState.flowing);
21529 if (false !== this._readableState.flowing) {
21531 this._readableState.flowing = false;
21532 this.emit('pause');
21537 function flow(stream) {
21538 var state = stream._readableState;
21539 debug('flow', state.flowing);
21540 while (state.flowing && stream.read() !== null) {}
21543 // wrap an old-style stream as the async data source.
21544 // This is *not* part of the readable stream interface.
21545 // It is an ugly unfortunate mess of history.
21546 Readable.prototype.wrap = function (stream) {
21547 var state = this._readableState;
21548 var paused = false;
21551 stream.on('end', function () {
21552 debug('wrapped end');
21553 if (state.decoder && !state.ended) {
21554 var chunk = state.decoder.end();
21555 if (chunk && chunk.length) self.push(chunk);
21561 stream.on('data', function (chunk) {
21562 debug('wrapped data');
21563 if (state.decoder) chunk = state.decoder.write(chunk);
21565 // don't skip over falsy values in objectMode
21566 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
21568 var ret = self.push(chunk);
21575 // proxy all the other methods.
21576 // important when wrapping filters and duplexes.
21577 for (var i in stream) {
21578 if (this[i] === undefined && typeof stream[i] === 'function') {
21579 this[i] = function (method) {
21580 return function () {
21581 return stream[method].apply(stream, arguments);
21587 // proxy certain important events.
21588 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
21589 forEach(events, function (ev) {
21590 stream.on(ev, self.emit.bind(self, ev));
21593 // when we try to consume some more bytes, simply unpause the
21594 // underlying stream.
21595 self._read = function (n) {
21596 debug('wrapped _read', n);
21606 // exposed for testing purposes only.
21607 Readable._fromList = fromList;
21609 // Pluck off n bytes from an array of buffers.
21610 // Length is the combined lengths of all the buffers in the list.
21611 // This function is designed to be inlinable, so please take care when making
21612 // changes to the function body.
21613 function fromList(n, state) {
21614 // nothing buffered
21615 if (state.length ===
0) return null;
21618 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
21619 // read it all, truncate the list
21620 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);
21621 state.buffer.clear();
21623 // read part of list
21624 ret = fromListPartial(n, state.buffer, state.decoder);
21630 // Extracts only enough buffered data to satisfy the amount requested.
21631 // This function is designed to be inlinable, so please take care when making
21632 // changes to the function body.
21633 function fromListPartial(n, list, hasStrings) {
21635 if (n < list.head.data.length) {
21636 // slice is the same for buffers and strings
21637 ret = list.head.data.slice(
0, n);
21638 list.head.data = list.head.data.slice(n);
21639 } else if (n === list.head.data.length) {
21640 // first chunk is a perfect match
21641 ret = list.shift();
21643 // result spans more than one buffer
21644 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
21649 // Copies a specified amount of characters from the list of buffered data
21651 // This function is designed to be inlinable, so please take care when making
21652 // changes to the function body.
21653 function copyFromBufferString(n, list) {
21658 while (p = p.next) {
21660 var nb = n
> str.length ? str.length : n;
21661 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
21664 if (nb === str.length) {
21666 if (p.next) list.head = p.next;else list.head = list.tail = null;
21669 p.data = str.slice(nb);
21679 // Copies a specified amount of bytes from the list of buffered data chunks.
21680 // This function is designed to be inlinable, so please take care when making
21681 // changes to the function body.
21682 function copyFromBuffer(n, list) {
21683 var ret = bufferShim.allocUnsafe(n);
21687 n -= p.data.length;
21688 while (p = p.next) {
21690 var nb = n
> buf.length ? buf.length : n;
21691 buf.copy(ret, ret.length - n,
0, nb);
21694 if (nb === buf.length) {
21696 if (p.next) list.head = p.next;else list.head = list.tail = null;
21699 p.data = buf.slice(nb);
21709 function endReadable(stream) {
21710 var state = stream._readableState;
21712 // If we get here before consuming all the bytes, then that is a
21713 // bug in node. Should never happen.
21714 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
21716 if (!state.endEmitted) {
21717 state.ended = true;
21718 processNextTick(endReadableNT, state, stream);
21722 function endReadableNT(state, stream) {
21723 // Check that we didn't get one last unshift.
21724 if (!state.endEmitted && state.length ===
0) {
21725 state.endEmitted = true;
21726 stream.readable = false;
21727 stream.emit('end');
21731 function forEach(xs, f) {
21732 for (var i =
0, l = xs.length; i < l; i++) {
21737 function indexOf(xs, x) {
21738 for (var i =
0, l = xs.length; i < l; i++) {
21739 if (xs[i] === x) return i;
21743 }).call(this,require('_process'))
21744 },{
"./_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){
21745 // a transform stream is a readable/writable stream where you do
21746 // something with the data. Sometimes it's called a
"filter",
21747 // but that's not a great name for it, since that implies a thing where
21748 // some bits pass through, and others are simply ignored. (That would
21749 // be a valid example of a transform, of course.)
21751 // While the output is causally related to the input, it's not a
21752 // necessarily symmetric or synchronous transformation. For example,
21753 // a zlib stream might take multiple plain-text writes(), and then
21754 // emit a single compressed chunk some time in the future.
21756 // Here's how this works:
21758 // The Transform stream has all the aspects of the readable and writable
21759 // stream classes. When you write(chunk), that calls _write(chunk,cb)
21760 // internally, and returns false if there's a lot of pending writes
21761 // buffered up. When you call read(), that calls _read(n) until
21762 // there's enough pending readable data buffered up.
21764 // In a transform stream, the written data is placed in a buffer. When
21765 // _read(n) is called, it transforms the queued up data, calling the
21766 // buffered _write cb's as it consumes chunks. If consuming a single
21767 // written chunk would result in multiple output chunks, then the first
21768 // outputted bit calls the readcb, and subsequent chunks just go into
21769 // the read buffer, and will cause it to emit 'readable' if necessary.
21771 // This way, back-pressure is actually determined by the reading side,
21772 // since _read has to be called to start processing a new chunk. However,
21773 // a pathological inflate type of transform can cause excessive buffering
21774 // here. For example, imagine a stream where every byte of input is
21775 // interpreted as an integer from
0-
255, and then results in that many
21776 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
21777 //
1kb of data being output. In this case, you could write a very small
21778 // amount of input, and end up with a very large amount of output. In
21779 // such a pathological inflating mechanism, there'd be no way to tell
21780 // the system to stop doing the transform. A single
4MB write could
21781 // cause the system to run out of memory.
21783 // However, even in such a pathological case, only a single written chunk
21784 // would be consumed, and then the rest would wait (un-transformed) until
21785 // the results of the previous transformed chunk were consumed.
21789 module.exports = Transform;
21791 var Duplex = require('./_stream_duplex');
21794 var util = require('core-util-is');
21795 util.inherits = require('inherits');
21798 util.inherits(Transform, Duplex);
21800 function TransformState(stream) {
21801 this.afterTransform = function (er, data) {
21802 return afterTransform(stream, er, data);
21805 this.needTransform = false;
21806 this.transforming = false;
21807 this.writecb = null;
21808 this.writechunk = null;
21809 this.writeencoding = null;
21812 function afterTransform(stream, er, data) {
21813 var ts = stream._transformState;
21814 ts.transforming = false;
21816 var cb = ts.writecb;
21818 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
21820 ts.writechunk = null;
21823 if (data !== null && data !== undefined) stream.push(data);
21827 var rs = stream._readableState;
21828 rs.reading = false;
21829 if (rs.needReadable || rs.length < rs.highWaterMark) {
21830 stream._read(rs.highWaterMark);
21834 function Transform(options) {
21835 if (!(this instanceof Transform)) return new Transform(options);
21837 Duplex.call(this, options);
21839 this._transformState = new TransformState(this);
21843 // start out asking for a readable event once data is transformed.
21844 this._readableState.needReadable = true;
21846 // we have implemented the _read method, and done the other things
21847 // that Readable wants before the first _read call, so unset the
21848 // sync guard flag.
21849 this._readableState.sync = false;
21852 if (typeof options.transform === 'function') this._transform = options.transform;
21854 if (typeof options.flush === 'function') this._flush = options.flush;
21857 // When the writable side finishes, then flush out anything remaining.
21858 this.once('prefinish', function () {
21859 if (typeof this._flush === 'function') this._flush(function (er, data) {
21860 done(stream, er, data);
21861 });else done(stream);
21865 Transform.prototype.push = function (chunk, encoding) {
21866 this._transformState.needTransform = false;
21867 return Duplex.prototype.push.call(this, chunk, encoding);
21870 // This is the part where you do stuff!
21871 // override this function in implementation classes.
21872 // 'chunk' is an input chunk.
21874 // Call `push(newChunk)` to pass along transformed output
21875 // to the readable side. You may call 'push' zero or more times.
21877 // Call `cb(err)` when you are done with this chunk. If you pass
21878 // an error, then that'll put the hurt on the whole operation. If you
21879 // never call cb(), then you'll never get another chunk.
21880 Transform.prototype._transform = function (chunk, encoding, cb) {
21881 throw new Error('_transform() is not implemented');
21884 Transform.prototype._write = function (chunk, encoding, cb) {
21885 var ts = this._transformState;
21887 ts.writechunk = chunk;
21888 ts.writeencoding = encoding;
21889 if (!ts.transforming) {
21890 var rs = this._readableState;
21891 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
21895 // Doesn't matter what the args are here.
21896 // _transform does all the work.
21897 // That we got here means that the readable side wants more data.
21898 Transform.prototype._read = function (n) {
21899 var ts = this._transformState;
21901 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
21902 ts.transforming = true;
21903 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
21905 // mark that we need a transform, so that any data that comes in
21906 // will get processed, now that we've asked for it.
21907 ts.needTransform = true;
21911 function done(stream, er, data) {
21912 if (er) return stream.emit('error', er);
21914 if (data !== null && data !== undefined) stream.push(data);
21916 // if there's nothing in the write buffer, then that means
21917 // that nothing more will ever be provided
21918 var ws = stream._writableState;
21919 var ts = stream._transformState;
21921 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
21923 if (ts.transforming) throw new Error('Calling transform done when still transforming');
21925 return stream.push(null);
21927 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
21928 (function (process){
21929 // A bit simpler than readable streams.
21930 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
21931 // the drain event emission and buffering.
21935 module.exports = Writable;
21938 var processNextTick = require('process-nextick-args');
21942 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
21949 Writable.WritableState = WritableState;
21952 var util = require('core-util-is');
21953 util.inherits = require('inherits');
21957 var internalUtil = {
21958 deprecate: require('util-deprecate')
21966 Stream = require('st' + 'ream');
21967 } catch (_) {} finally {
21968 if (!Stream) Stream = require('events').EventEmitter;
21973 var Buffer = require('buffer').Buffer;
21975 var bufferShim = require('buffer-shims');
21978 util.inherits(Writable, Stream);
21982 function WriteReq(chunk, encoding, cb) {
21983 this.chunk = chunk;
21984 this.encoding = encoding;
21985 this.callback = cb;
21989 function WritableState(options, stream) {
21990 Duplex = Duplex || require('./_stream_duplex');
21992 options = options || {};
21994 // object stream flag to indicate whether or not this stream
21995 // contains buffers or objects.
21996 this.objectMode = !!options.objectMode;
21998 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
22000 // the point at which write() starts returning false
22001 // Note:
0 is a valid value, means that we always return false if
22002 // the entire buffer is not flushed immediately on write()
22003 var hwm = options.highWaterMark;
22004 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
22005 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
22008 this.highWaterMark = ~ ~this.highWaterMark;
22010 // drain event flag.
22011 this.needDrain = false;
22012 // at the start of calling end()
22013 this.ending = false;
22014 // when end() has been called, and returned
22015 this.ended = false;
22016 // when 'finish' is emitted
22017 this.finished = false;
22019 // should we decode strings into buffers before passing to _write?
22020 // this is here so that some node-core streams can optimize string
22021 // handling at a lower level.
22022 var noDecode = options.decodeStrings === false;
22023 this.decodeStrings = !noDecode;
22025 // Crypto is kind of old and crusty. Historically, its default string
22026 // encoding is 'binary' so we have to make this configurable.
22027 // Everything else in the universe uses 'utf8', though.
22028 this.defaultEncoding = options.defaultEncoding || 'utf8';
22030 // not an actual buffer we keep track of, but a measurement
22031 // of how much we're waiting to get pushed to some underlying
22035 // a flag to see when we're in the middle of a write.
22036 this.writing = false;
22038 // when true all writes will be buffered until .uncork() call
22041 // a flag to be able to tell if the onwrite cb is called immediately,
22042 // or on a later tick. We set this to true at first, because any
22043 // actions that shouldn't happen until "later" should generally also
22044 // not happen before the first write call.
22047 // a flag to know if we're processing previously buffered items, which
22048 // may call the _write() callback in the same tick, so that we don't
22049 // end up in an overlapped onwrite situation.
22050 this.bufferProcessing = false;
22052 // the callback that's passed to _write(chunk,cb)
22053 this.onwrite = function (er) {
22054 onwrite(stream, er);
22057 // the callback that the user supplies to write(chunk,encoding,cb)
22058 this.writecb = null;
22060 // the amount that is being written when _write is called.
22063 this.bufferedRequest = null;
22064 this.lastBufferedRequest = null;
22066 // number of pending user-supplied write callbacks
22067 // this must be
0 before 'finish' can be emitted
22068 this.pendingcb =
0;
22070 // emit prefinish if the only thing we're waiting for is _write cbs
22071 // This is relevant for synchronous Transform streams
22072 this.prefinished = false;
22074 // True if the error was already emitted and should not be thrown again
22075 this.errorEmitted = false;
22077 // count buffered requests
22078 this.bufferedRequestCount =
0;
22080 // allocate the first CorkedRequest, there is always
22081 // one allocated and free to use, and we maintain at most two
22082 this.corkedRequestsFree = new CorkedRequest(this);
22085 WritableState.prototype.getBuffer = function getBuffer() {
22086 var current = this.bufferedRequest;
22090 current = current.next;
22097 Object.defineProperty(WritableState.prototype, 'buffer', {
22098 get: internalUtil.deprecate(function () {
22099 return this.getBuffer();
22100 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
22105 // Test _writableState for inheritance to account for Duplex streams,
22106 // whose prototype chain only points to Readable.
22107 var realHasInstance;
22108 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
22109 realHasInstance = Function.prototype[Symbol.hasInstance];
22110 Object.defineProperty(Writable, Symbol.hasInstance, {
22111 value: function (object) {
22112 if (realHasInstance.call(this, object)) return true;
22114 return object && object._writableState instanceof WritableState;
22118 realHasInstance = function (object) {
22119 return object instanceof this;
22123 function Writable(options) {
22124 Duplex = Duplex || require('./_stream_duplex');
22126 // Writable ctor is applied to Duplexes, too.
22127 // `realHasInstance` is necessary because using plain `instanceof`
22128 // would return false, as no `_writableState` property is attached.
22130 // Trying to use the custom `instanceof` for Writable here will also break the
22131 // Node.js LazyTransform implementation, which has a non-trivial getter for
22132 // `_writableState` that would lead to infinite recursion.
22133 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
22134 return new Writable(options);
22137 this._writableState = new WritableState(options, this);
22140 this.writable = true;
22143 if (typeof options.write === 'function') this._write = options.write;
22145 if (typeof options.writev === 'function') this._writev = options.writev;
22151 // Otherwise people can pipe Writable streams, which is just wrong.
22152 Writable.prototype.pipe = function () {
22153 this.emit('error', new Error('Cannot pipe, not readable'));
22156 function writeAfterEnd(stream, cb) {
22157 var er = new Error('write after end');
22158 // TODO: defer error events consistently everywhere, not just the cb
22159 stream.emit('error', er);
22160 processNextTick(cb, er);
22163 // If we get something that is not a buffer, string, null, or undefined,
22164 // and we're not in objectMode, then that's an error.
22165 // Otherwise stream chunks are all considered to be of length=
1, and the
22166 // watermarks determine how many objects to keep in the buffer, rather than
22167 // how many bytes or characters.
22168 function validChunk(stream, state, chunk, cb) {
22171 // Always throw error if a null is written
22172 // if we are not in object mode then throw
22173 // if it is not a buffer, string, or undefined.
22174 if (chunk === null) {
22175 er = new TypeError('May not write null values to stream');
22176 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
22177 er = new TypeError('Invalid non-string/buffer chunk');
22180 stream.emit('error', er);
22181 processNextTick(cb, er);
22187 Writable.prototype.write = function (chunk, encoding, cb) {
22188 var state = this._writableState;
22191 if (typeof encoding === 'function') {
22196 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
22198 if (typeof cb !== 'function') cb = nop;
22200 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
22202 ret = writeOrBuffer(this, state, chunk, encoding, cb);
22208 Writable.prototype.cork = function () {
22209 var state = this._writableState;
22214 Writable.prototype.uncork = function () {
22215 var state = this._writableState;
22217 if (state.corked) {
22220 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
22224 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
22225 // node::ParseEncoding() requires lower case.
22226 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
22227 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);
22228 this._writableState.defaultEncoding = encoding;
22232 function decodeChunk(state, chunk, encoding) {
22233 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
22234 chunk = bufferShim.from(chunk, encoding);
22239 // if we're already writing something, then just put this
22240 // in the queue, and wait our turn. Otherwise, call _write
22241 // If we return false, then we need a drain event, so set that flag.
22242 function writeOrBuffer(stream, state, chunk, encoding, cb) {
22243 chunk = decodeChunk(state, chunk, encoding);
22245 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
22246 var len = state.objectMode ?
1 : chunk.length;
22248 state.length += len;
22250 var ret = state.length < state.highWaterMark;
22251 // we must ensure that previous needDrain will not be reset to false.
22252 if (!ret) state.needDrain = true;
22254 if (state.writing || state.corked) {
22255 var last = state.lastBufferedRequest;
22256 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
22258 last.next = state.lastBufferedRequest;
22260 state.bufferedRequest = state.lastBufferedRequest;
22262 state.bufferedRequestCount +=
1;
22264 doWrite(stream, state, false, len, chunk, encoding, cb);
22270 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
22271 state.writelen = len;
22272 state.writecb = cb;
22273 state.writing = true;
22275 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
22276 state.sync = false;
22279 function onwriteError(stream, state, sync, er, cb) {
22281 if (sync) processNextTick(cb, er);else cb(er);
22283 stream._writableState.errorEmitted = true;
22284 stream.emit('error', er);
22287 function onwriteStateUpdate(state) {
22288 state.writing = false;
22289 state.writecb = null;
22290 state.length -= state.writelen;
22291 state.writelen =
0;
22294 function onwrite(stream, er) {
22295 var state = stream._writableState;
22296 var sync = state.sync;
22297 var cb = state.writecb;
22299 onwriteStateUpdate(state);
22301 if (er) onwriteError(stream, state, sync, er, cb);else {
22302 // Check if we're actually ready to finish, but don't emit yet
22303 var finished = needFinish(state);
22305 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
22306 clearBuffer(stream, state);
22311 asyncWrite(afterWrite, stream, state, finished, cb);
22314 afterWrite(stream, state, finished, cb);
22319 function afterWrite(stream, state, finished, cb) {
22320 if (!finished) onwriteDrain(stream, state);
22323 finishMaybe(stream, state);
22326 // Must force callback to be called on nextTick, so that we don't
22327 // emit 'drain' before the write() consumer gets the 'false' return
22328 // value, and has a chance to attach a 'drain' listener.
22329 function onwriteDrain(stream, state) {
22330 if (state.length ===
0 && state.needDrain) {
22331 state.needDrain = false;
22332 stream.emit('drain');
22336 // if there's something in the buffer waiting, then process it
22337 function clearBuffer(stream, state) {
22338 state.bufferProcessing = true;
22339 var entry = state.bufferedRequest;
22341 if (stream._writev && entry && entry.next) {
22342 // Fast case, write everything using _writev()
22343 var l = state.bufferedRequestCount;
22344 var buffer = new Array(l);
22345 var holder = state.corkedRequestsFree;
22346 holder.entry = entry;
22350 buffer[count] = entry;
22351 entry = entry.next;
22355 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
22357 // doWrite is almost always async, defer these to save a bit of time
22358 // as the hot path ends with doWrite
22360 state.lastBufferedRequest = null;
22362 state.corkedRequestsFree = holder.next;
22363 holder.next = null;
22365 state.corkedRequestsFree = new CorkedRequest(state);
22368 // Slow case, write chunks one-by-one
22370 var chunk = entry.chunk;
22371 var encoding = entry.encoding;
22372 var cb = entry.callback;
22373 var len = state.objectMode ?
1 : chunk.length;
22375 doWrite(stream, state, false, len, chunk, encoding, cb);
22376 entry = entry.next;
22377 // if we didn't call the onwrite immediately, then
22378 // it means that we need to wait until it does.
22379 // also, that means that the chunk and cb are currently
22380 // being processed, so move the buffer counter past them.
22381 if (state.writing) {
22386 if (entry === null) state.lastBufferedRequest = null;
22389 state.bufferedRequestCount =
0;
22390 state.bufferedRequest = entry;
22391 state.bufferProcessing = false;
22394 Writable.prototype._write = function (chunk, encoding, cb) {
22395 cb(new Error('_write() is not implemented'));
22398 Writable.prototype._writev = null;
22400 Writable.prototype.end = function (chunk, encoding, cb) {
22401 var state = this._writableState;
22403 if (typeof chunk === 'function') {
22407 } else if (typeof encoding === 'function') {
22412 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
22414 // .end() fully uncorks
22415 if (state.corked) {
22420 // ignore unnecessary end() calls.
22421 if (!state.ending && !state.finished) endWritable(this, state, cb);
22424 function needFinish(state) {
22425 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
22428 function prefinish(stream, state) {
22429 if (!state.prefinished) {
22430 state.prefinished = true;
22431 stream.emit('prefinish');
22435 function finishMaybe(stream, state) {
22436 var need = needFinish(state);
22438 if (state.pendingcb ===
0) {
22439 prefinish(stream, state);
22440 state.finished = true;
22441 stream.emit('finish');
22443 prefinish(stream, state);
22449 function endWritable(stream, state, cb) {
22450 state.ending = true;
22451 finishMaybe(stream, state);
22453 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
22455 state.ended = true;
22456 stream.writable = false;
22459 // It seems a linked list but it is not
22460 // there will be only
2 of these for each stream
22461 function CorkedRequest(state) {
22467 this.finish = function (err) {
22468 var entry = _this.entry;
22469 _this.entry = null;
22471 var cb = entry.callback;
22474 entry = entry.next;
22476 if (state.corkedRequestsFree) {
22477 state.corkedRequestsFree.next = _this;
22479 state.corkedRequestsFree = _this;
22483 }).call(this,require('_process'))
22484 },{"./_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){
22487 var Buffer = require('buffer').Buffer;
22489 var bufferShim = require('buffer-shims');
22492 module.exports = BufferList;
22494 function BufferList() {
22500 BufferList.prototype.push = function (v) {
22501 var entry = { data: v, next: null };
22502 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
22507 BufferList.prototype.unshift = function (v) {
22508 var entry = { data: v, next: this.head };
22509 if (this.length ===
0) this.tail = entry;
22514 BufferList.prototype.shift = function () {
22515 if (this.length ===
0) return;
22516 var ret = this.head.data;
22517 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
22522 BufferList.prototype.clear = function () {
22523 this.head = this.tail = null;
22527 BufferList.prototype.join = function (s) {
22528 if (this.length ===
0) return '';
22530 var ret = '' + p.data;
22531 while (p = p.next) {
22536 BufferList.prototype.concat = function (n) {
22537 if (this.length ===
0) return bufferShim.alloc(
0);
22538 if (this.length ===
1) return this.head.data;
22539 var ret = bufferShim.allocUnsafe(n
>>> 0);
22543 p.data.copy(ret, i);
22544 i += p.data.length;
22549 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
22550 module.exports = require(
"./lib/_stream_passthrough.js")
22552 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
22553 (function (process){
22554 var Stream = (function (){
22556 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
22559 exports = module.exports = require('./lib/_stream_readable.js');
22560 exports.Stream = Stream || exports;
22561 exports.Readable = exports;
22562 exports.Writable = require('./lib/_stream_writable.js');
22563 exports.Duplex = require('./lib/_stream_duplex.js');
22564 exports.Transform = require('./lib/_stream_transform.js');
22565 exports.PassThrough = require('./lib/_stream_passthrough.js');
22567 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
22568 module.exports = Stream;
22571 }).call(this,require('_process'))
22572 },{
"./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){
22573 module.exports = require(
"./lib/_stream_transform.js")
22575 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
22576 module.exports = require(
"./lib/_stream_writable.js")
22578 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
22579 // Copyright Joyent, Inc. and other Node contributors.
22581 // Permission is hereby granted, free of charge, to any person obtaining a
22582 // copy of this software and associated documentation files (the
22583 //
"Software"), to deal in the Software without restriction, including
22584 // without limitation the rights to use, copy, modify, merge, publish,
22585 // distribute, sublicense, and/or sell copies of the Software, and to permit
22586 // persons to whom the Software is furnished to do so, subject to the
22587 // following conditions:
22589 // The above copyright notice and this permission notice shall be included
22590 // in all copies or substantial portions of the Software.
22592 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22593 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22594 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22595 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22596 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22597 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22598 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22600 module.exports = Stream;
22602 var EE = require('events').EventEmitter;
22603 var inherits = require('inherits');
22605 inherits(Stream, EE);
22606 Stream.Readable = require('readable-stream/readable.js');
22607 Stream.Writable = require('readable-stream/writable.js');
22608 Stream.Duplex = require('readable-stream/duplex.js');
22609 Stream.Transform = require('readable-stream/transform.js');
22610 Stream.PassThrough = require('readable-stream/passthrough.js');
22612 // Backwards-compat with node
0.4.x
22613 Stream.Stream = Stream;
22617 // old-style streams. Note that the pipe method (the only relevant
22618 // part of this class) is overridden in the Readable class.
22620 function Stream() {
22624 Stream.prototype.pipe = function(dest, options) {
22627 function ondata(chunk) {
22628 if (dest.writable) {
22629 if (false === dest.write(chunk) && source.pause) {
22635 source.on('data', ondata);
22637 function ondrain() {
22638 if (source.readable && source.resume) {
22643 dest.on('drain', ondrain);
22645 // If the 'end' option is not supplied, dest.end() will be called when
22646 // source gets the 'end' or 'close' events. Only dest.end() once.
22647 if (!dest._isStdio && (!options || options.end !== false)) {
22648 source.on('end', onend);
22649 source.on('close', onclose);
22652 var didOnEnd = false;
22654 if (didOnEnd) return;
22661 function onclose() {
22662 if (didOnEnd) return;
22665 if (typeof dest.destroy === 'function') dest.destroy();
22668 // don't leave dangling pipes when there are errors.
22669 function onerror(er) {
22671 if (EE.listenerCount(this, 'error') ===
0) {
22672 throw er; // Unhandled stream error in pipe.
22676 source.on('error', onerror);
22677 dest.on('error', onerror);
22679 // remove all the event listeners that were added.
22680 function cleanup() {
22681 source.removeListener('data', ondata);
22682 dest.removeListener('drain', ondrain);
22684 source.removeListener('end', onend);
22685 source.removeListener('close', onclose);
22687 source.removeListener('error', onerror);
22688 dest.removeListener('error', onerror);
22690 source.removeListener('end', cleanup);
22691 source.removeListener('close', cleanup);
22693 dest.removeListener('close', cleanup);
22696 source.on('end', cleanup);
22697 source.on('close', cleanup);
22699 dest.on('close', cleanup);
22701 dest.emit('pipe', source);
22703 // Allow for unix-like usage: A.pipe(B).pipe(C)
22707 },{
"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){
22708 // Copyright Joyent, Inc. and other Node contributors.
22710 // Permission is hereby granted, free of charge, to any person obtaining a
22711 // copy of this software and associated documentation files (the
22712 //
"Software"), to deal in the Software without restriction, including
22713 // without limitation the rights to use, copy, modify, merge, publish,
22714 // distribute, sublicense, and/or sell copies of the Software, and to permit
22715 // persons to whom the Software is furnished to do so, subject to the
22716 // following conditions:
22718 // The above copyright notice and this permission notice shall be included
22719 // in all copies or substantial portions of the Software.
22721 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22722 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22723 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22724 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22725 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22726 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22727 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22729 var Buffer = require('buffer').Buffer;
22731 var isBufferEncoding = Buffer.isEncoding
22732 || function(encoding) {
22733 switch (encoding && encoding.toLowerCase()) {
22734 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;
22735 default: return false;
22740 function assertEncoding(encoding) {
22741 if (encoding && !isBufferEncoding(encoding)) {
22742 throw new Error('Unknown encoding: ' + encoding);
22746 // StringDecoder provides an interface for efficiently splitting a series of
22747 // buffers into a series of JS strings without breaking apart multi-byte
22748 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
22750 // @TODO Handling all encodings inside a single object makes it very difficult
22751 // to reason about this code, so it should be split up in the future.
22752 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
22753 // points as used by CESU-
8.
22754 var StringDecoder = exports.StringDecoder = function(encoding) {
22755 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
22756 assertEncoding(encoding);
22757 switch (this.encoding) {
22759 // CESU-
8 represents each of Surrogate Pair by
3-bytes
22760 this.surrogateSize =
3;
22764 // UTF-
16 represents each of Surrogate Pair by
2-bytes
22765 this.surrogateSize =
2;
22766 this.detectIncompleteChar = utf16DetectIncompleteChar;
22769 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
22770 this.surrogateSize =
3;
22771 this.detectIncompleteChar = base64DetectIncompleteChar;
22774 this.write = passThroughWrite;
22778 // Enough space to store all bytes of a single character. UTF-
8 needs
4
22779 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
22780 this.charBuffer = new Buffer(
6);
22781 // Number of bytes received for the current incomplete multi-byte character.
22782 this.charReceived =
0;
22783 // Number of bytes expected for the current incomplete multi-byte character.
22784 this.charLength =
0;
22788 // write decodes the given buffer and returns it as JS string that is
22789 // guaranteed to not contain any partial multi-byte characters. Any partial
22790 // character found at the end of the buffer is buffered up, and will be
22791 // returned when calling write again with the remaining bytes.
22793 // Note: Converting a Buffer containing an orphan surrogate to a String
22794 // currently works, but converting a String to a Buffer (via `new Buffer`, or
22795 // Buffer#write) will replace incomplete surrogates with the unicode
22796 // replacement character. See https://codereview.chromium.org/
121173009/ .
22797 StringDecoder.prototype.write = function(buffer) {
22799 // if our last write ended with an incomplete multibyte character
22800 while (this.charLength) {
22801 // determine how many remaining bytes this buffer has to offer for this char
22802 var available = (buffer.length
>= this.charLength - this.charReceived) ?
22803 this.charLength - this.charReceived :
22806 // add the new bytes to the char buffer
22807 buffer.copy(this.charBuffer, this.charReceived,
0, available);
22808 this.charReceived += available;
22810 if (this.charReceived < this.charLength) {
22811 // still not enough chars in this buffer? wait for more ...
22815 // remove bytes belonging to the current character from the buffer
22816 buffer = buffer.slice(available, buffer.length);
22818 // get the character that was split
22819 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
22821 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22822 var charCode = charStr.charCodeAt(charStr.length -
1);
22823 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22824 this.charLength += this.surrogateSize;
22828 this.charReceived = this.charLength =
0;
22830 // if there are no more bytes in this buffer, just emit our char
22831 if (buffer.length ===
0) {
22837 // determine and set charLength / charReceived
22838 this.detectIncompleteChar(buffer);
22840 var end = buffer.length;
22841 if (this.charLength) {
22842 // buffer the incomplete character bytes we got
22843 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
22844 end -= this.charReceived;
22847 charStr += buffer.toString(this.encoding,
0, end);
22849 var end = charStr.length -
1;
22850 var charCode = charStr.charCodeAt(end);
22851 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22852 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22853 var size = this.surrogateSize;
22854 this.charLength += size;
22855 this.charReceived += size;
22856 this.charBuffer.copy(this.charBuffer, size,
0, size);
22857 buffer.copy(this.charBuffer,
0,
0, size);
22858 return charStr.substring(
0, end);
22861 // or just emit the charStr
22865 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
22866 // the end of the given buffer. If so, it sets this.charLength to the byte
22867 // length that character, and sets this.charReceived to the number of bytes
22868 // that are available for this character.
22869 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
22870 // determine how many bytes we have to check at the end of this buffer
22871 var i = (buffer.length
>=
3) ?
3 : buffer.length;
22873 // Figure out if one of the last i bytes of our buffer announces an
22874 // incomplete char.
22875 for (; i
> 0; i--) {
22876 var c = buffer[buffer.length - i];
22878 // See http://en.wikipedia.org/wiki/UTF-
8#Description
22881 if (i ==
1 && c
>> 5 ==
0x06) {
22882 this.charLength =
2;
22887 if (i <=
2 && c
>> 4 ==
0x0E) {
22888 this.charLength =
3;
22893 if (i <=
3 && c
>> 3 ==
0x1E) {
22894 this.charLength =
4;
22898 this.charReceived = i;
22901 StringDecoder.prototype.end = function(buffer) {
22903 if (buffer && buffer.length)
22904 res = this.write(buffer);
22906 if (this.charReceived) {
22907 var cr = this.charReceived;
22908 var buf = this.charBuffer;
22909 var enc = this.encoding;
22910 res += buf.slice(
0, cr).toString(enc);
22916 function passThroughWrite(buffer) {
22917 return buffer.toString(this.encoding);
22920 function utf16DetectIncompleteChar(buffer) {
22921 this.charReceived = buffer.length %
2;
22922 this.charLength = this.charReceived ?
2 :
0;
22925 function base64DetectIncompleteChar(buffer) {
22926 this.charReceived = buffer.length %
3;
22927 this.charLength = this.charReceived ?
3 :
0;
22930 },{
"buffer":
5}],
27:[function(require,module,exports){
22931 (function (global){
22937 module.exports = deprecate;
22940 * Mark that a method should not be used.
22941 * Returns a modified function which warns once by default.
22943 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
22945 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
22946 * will throw an Error when invoked.
22948 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
22949 * will invoke `console.trace()` instead of `console.error()`.
22951 * @param {Function} fn - the function to deprecate
22952 * @param {String} msg - the string to print to the console when `fn` is invoked
22953 * @returns {Function} a new
"deprecated" version of `fn`
22957 function deprecate (fn, msg) {
22958 if (config('noDeprecation')) {
22962 var warned = false;
22963 function deprecated() {
22965 if (config('throwDeprecation')) {
22966 throw new Error(msg);
22967 } else if (config('traceDeprecation')) {
22968 console.trace(msg);
22974 return fn.apply(this, arguments);
22981 * Checks `localStorage` for boolean values for the given `name`.
22983 * @param {String} name
22984 * @returns {Boolean}
22988 function config (name) {
22989 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
22991 if (!global.localStorage) return false;
22995 var val = global.localStorage[name];
22996 if (null == val) return false;
22997 return String(val).toLowerCase() === 'true';
23000 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23001 },{}],
28:[function(require,module,exports){
23002 arguments[
4][
9][
0].apply(exports,arguments)
23003 },{
"dup":
9}],
29:[function(require,module,exports){
23004 module.exports = function isBuffer(arg) {
23005 return arg && typeof arg === 'object'
23006 && typeof arg.copy === 'function'
23007 && typeof arg.fill === 'function'
23008 && typeof arg.readUInt8 === 'function';
23010 },{}],
30:[function(require,module,exports){
23011 (function (process,global){
23012 // Copyright Joyent, Inc. and other Node contributors.
23014 // Permission is hereby granted, free of charge, to any person obtaining a
23015 // copy of this software and associated documentation files (the
23016 //
"Software"), to deal in the Software without restriction, including
23017 // without limitation the rights to use, copy, modify, merge, publish,
23018 // distribute, sublicense, and/or sell copies of the Software, and to permit
23019 // persons to whom the Software is furnished to do so, subject to the
23020 // following conditions:
23022 // The above copyright notice and this permission notice shall be included
23023 // in all copies or substantial portions of the Software.
23025 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23026 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23027 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23028 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23029 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23030 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23031 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23033 var formatRegExp = /%[sdj%]/g;
23034 exports.format = function(f) {
23035 if (!isString(f)) {
23037 for (var i =
0; i < arguments.length; i++) {
23038 objects.push(inspect(arguments[i]));
23040 return objects.join(' ');
23044 var args = arguments;
23045 var len = args.length;
23046 var str = String(f).replace(formatRegExp, function(x) {
23047 if (x === '%%') return '%';
23048 if (i
>= len) return x;
23050 case '%s': return String(args[i++]);
23051 case '%d': return Number(args[i++]);
23054 return JSON.stringify(args[i++]);
23056 return '[Circular]';
23062 for (var x = args[i]; i < len; x = args[++i]) {
23063 if (isNull(x) || !isObject(x)) {
23066 str += ' ' + inspect(x);
23073 // Mark that a method should not be used.
23074 // Returns a modified function which warns once by default.
23075 // If --no-deprecation is set, then it is a no-op.
23076 exports.deprecate = function(fn, msg) {
23077 // Allow for deprecating things in the process of starting up.
23078 if (isUndefined(global.process)) {
23079 return function() {
23080 return exports.deprecate(fn, msg).apply(this, arguments);
23084 if (process.noDeprecation === true) {
23088 var warned = false;
23089 function deprecated() {
23091 if (process.throwDeprecation) {
23092 throw new Error(msg);
23093 } else if (process.traceDeprecation) {
23094 console.trace(msg);
23096 console.error(msg);
23100 return fn.apply(this, arguments);
23109 exports.debuglog = function(set) {
23110 if (isUndefined(debugEnviron))
23111 debugEnviron = process.env.NODE_DEBUG || '';
23112 set = set.toUpperCase();
23113 if (!debugs[set]) {
23114 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
23115 var pid = process.pid;
23116 debugs[set] = function() {
23117 var msg = exports.format.apply(exports, arguments);
23118 console.error('%s %d: %s', set, pid, msg);
23121 debugs[set] = function() {};
23124 return debugs[set];
23129 * Echos the value of a value. Trys to print the value out
23130 * in the best way possible given the different types.
23132 * @param {Object} obj The object to print out.
23133 * @param {Object} opts Optional options object that alters the output.
23135 /* legacy: obj, showHidden, depth, colors*/
23136 function inspect(obj, opts) {
23140 stylize: stylizeNoColor
23143 if (arguments.length
>=
3) ctx.depth = arguments[
2];
23144 if (arguments.length
>=
4) ctx.colors = arguments[
3];
23145 if (isBoolean(opts)) {
23147 ctx.showHidden = opts;
23149 // got an "options" object
23150 exports._extend(ctx, opts);
23152 // set default options
23153 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
23154 if (isUndefined(ctx.depth)) ctx.depth =
2;
23155 if (isUndefined(ctx.colors)) ctx.colors = false;
23156 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
23157 if (ctx.colors) ctx.stylize = stylizeWithColor;
23158 return formatValue(ctx, obj, ctx.depth);
23160 exports.inspect = inspect;
23163 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
23166 'italic' : [
3,
23],
23167 'underline' : [
4,
24],
23168 'inverse' : [
7,
27],
23169 'white' : [
37,
39],
23171 'black' : [
30,
39],
23174 'green' : [
32,
39],
23175 'magenta' : [
35,
39],
23177 'yellow' : [
33,
39]
23180 // Don't use 'blue' not visible on cmd.exe
23183 'number': 'yellow',
23184 'boolean': 'yellow',
23185 'undefined': 'grey',
23189 // "name": intentionally not styling
23194 function stylizeWithColor(str, styleType) {
23195 var style = inspect.styles[styleType];
23198 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
23199 '\u001b[' + inspect.colors[style][
1] + 'm';
23206 function stylizeNoColor(str, styleType) {
23211 function arrayToHash(array) {
23214 array.forEach(function(val, idx) {
23222 function formatValue(ctx, value, recurseTimes) {
23223 // Provide a hook for user-specified inspect functions.
23224 // Check that value is an object with an inspect function on it
23225 if (ctx.customInspect &&
23227 isFunction(value.inspect) &&
23228 // Filter out the util module, it's inspect function is special
23229 value.inspect !== exports.inspect &&
23230 // Also filter out any prototype objects using the circular check.
23231 !(value.constructor && value.constructor.prototype === value)) {
23232 var ret = value.inspect(recurseTimes, ctx);
23233 if (!isString(ret)) {
23234 ret = formatValue(ctx, ret, recurseTimes);
23239 // Primitive types cannot have properties
23240 var primitive = formatPrimitive(ctx, value);
23245 // Look up the keys of the object.
23246 var keys = Object.keys(value);
23247 var visibleKeys = arrayToHash(keys);
23249 if (ctx.showHidden) {
23250 keys = Object.getOwnPropertyNames(value);
23253 // IE doesn't make error fields non-enumerable
23254 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
23256 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
23257 return formatError(value);
23260 // Some type of object without properties can be shortcutted.
23261 if (keys.length ===
0) {
23262 if (isFunction(value)) {
23263 var name = value.name ? ': ' + value.name : '';
23264 return ctx.stylize('[Function' + name + ']', 'special');
23266 if (isRegExp(value)) {
23267 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23269 if (isDate(value)) {
23270 return ctx.stylize(Date.prototype.toString.call(value), 'date');
23272 if (isError(value)) {
23273 return formatError(value);
23277 var base = '', array = false, braces = ['{', '}'];
23279 // Make Array say that they are Array
23280 if (isArray(value)) {
23282 braces = ['[', ']'];
23285 // Make functions say that they are functions
23286 if (isFunction(value)) {
23287 var n = value.name ? ': ' + value.name : '';
23288 base = ' [Function' + n + ']';
23291 // Make RegExps say that they are RegExps
23292 if (isRegExp(value)) {
23293 base = ' ' + RegExp.prototype.toString.call(value);
23296 // Make dates with properties first say the date
23297 if (isDate(value)) {
23298 base = ' ' + Date.prototype.toUTCString.call(value);
23301 // Make error with message first say the error
23302 if (isError(value)) {
23303 base = ' ' + formatError(value);
23306 if (keys.length ===
0 && (!array || value.length ==
0)) {
23307 return braces[
0] + base + braces[
1];
23310 if (recurseTimes <
0) {
23311 if (isRegExp(value)) {
23312 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23314 return ctx.stylize('[Object]', 'special');
23318 ctx.seen.push(value);
23322 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
23324 output = keys.map(function(key) {
23325 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
23331 return reduceToSingleString(output, base, braces);
23335 function formatPrimitive(ctx, value) {
23336 if (isUndefined(value))
23337 return ctx.stylize('undefined', 'undefined');
23338 if (isString(value)) {
23339 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
23340 .replace(/'/g, "\\'")
23341 .replace(/\\"/g, '"') + '\'';
23342 return ctx.stylize(simple, 'string');
23344 if (isNumber(value))
23345 return ctx.stylize('' + value, 'number');
23346 if (isBoolean(value))
23347 return ctx.stylize('' + value, 'boolean');
23348 // For some reason typeof null is "object", so special case here.
23350 return ctx.stylize('null', 'null');
23354 function formatError(value) {
23355 return '[' + Error.prototype.toString.call(value) + ']';
23359 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
23361 for (var i =
0, l = value.length; i < l; ++i) {
23362 if (hasOwnProperty(value, String(i))) {
23363 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23369 keys.forEach(function(key) {
23370 if (!key.match(/^\d+$/)) {
23371 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23379 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
23380 var name, str, desc;
23381 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
23384 str = ctx.stylize('[Getter/Setter]', 'special');
23386 str = ctx.stylize('[Getter]', 'special');
23390 str = ctx.stylize('[Setter]', 'special');
23393 if (!hasOwnProperty(visibleKeys, key)) {
23394 name = '[' + key + ']';
23397 if (ctx.seen.indexOf(desc.value) <
0) {
23398 if (isNull(recurseTimes)) {
23399 str = formatValue(ctx, desc.value, null);
23401 str = formatValue(ctx, desc.value, recurseTimes -
1);
23403 if (str.indexOf('\n')
> -
1) {
23405 str = str.split('\n').map(function(line) {
23407 }).join('\n').substr(
2);
23409 str = '\n' + str.split('\n').map(function(line) {
23415 str = ctx.stylize('[Circular]', 'special');
23418 if (isUndefined(name)) {
23419 if (array && key.match(/^\d+$/)) {
23422 name = JSON.stringify('' + key);
23423 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
23424 name = name.substr(
1, name.length -
2);
23425 name = ctx.stylize(name, 'name');
23427 name = name.replace(/'/g, "\\'")
23428 .replace(/\\"/g, '"')
23429 .replace(/(^"|"$)/g, "'");
23430 name = ctx.stylize(name, 'string');
23434 return name + ': ' + str;
23438 function reduceToSingleString(output, base, braces) {
23439 var numLinesEst =
0;
23440 var length = output.reduce(function(prev, cur) {
23442 if (cur.indexOf('\n')
>=
0) numLinesEst++;
23443 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
23448 (base === '' ? '' : base + '\n ') +
23450 output.join(',\n ') +
23455 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
23459 // NOTE: These type checking functions intentionally don't use `instanceof`
23460 // because it is fragile and can be easily faked with `Object.create()`.
23461 function isArray(ar) {
23462 return Array.isArray(ar);
23464 exports.isArray = isArray;
23466 function isBoolean(arg) {
23467 return typeof arg === 'boolean';
23469 exports.isBoolean = isBoolean;
23471 function isNull(arg) {
23472 return arg === null;
23474 exports.isNull = isNull;
23476 function isNullOrUndefined(arg) {
23477 return arg == null;
23479 exports.isNullOrUndefined = isNullOrUndefined;
23481 function isNumber(arg) {
23482 return typeof arg === 'number';
23484 exports.isNumber = isNumber;
23486 function isString(arg) {
23487 return typeof arg === 'string';
23489 exports.isString = isString;
23491 function isSymbol(arg) {
23492 return typeof arg === 'symbol';
23494 exports.isSymbol = isSymbol;
23496 function isUndefined(arg) {
23497 return arg === void
0;
23499 exports.isUndefined = isUndefined;
23501 function isRegExp(re) {
23502 return isObject(re) && objectToString(re) === '[object RegExp]';
23504 exports.isRegExp = isRegExp;
23506 function isObject(arg) {
23507 return typeof arg === 'object' && arg !== null;
23509 exports.isObject = isObject;
23511 function isDate(d) {
23512 return isObject(d) && objectToString(d) === '[object Date]';
23514 exports.isDate = isDate;
23516 function isError(e) {
23517 return isObject(e) &&
23518 (objectToString(e) === '[object Error]' || e instanceof Error);
23520 exports.isError = isError;
23522 function isFunction(arg) {
23523 return typeof arg === 'function';
23525 exports.isFunction = isFunction;
23527 function isPrimitive(arg) {
23528 return arg === null ||
23529 typeof arg === 'boolean' ||
23530 typeof arg === 'number' ||
23531 typeof arg === 'string' ||
23532 typeof arg === 'symbol' || // ES6 symbol
23533 typeof arg === 'undefined';
23535 exports.isPrimitive = isPrimitive;
23537 exports.isBuffer = require('./support/isBuffer');
23539 function objectToString(o) {
23540 return Object.prototype.toString.call(o);
23545 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
23549 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
23550 'Oct', 'Nov', 'Dec'];
23553 function timestamp() {
23554 var d = new Date();
23555 var time = [pad(d.getHours()),
23556 pad(d.getMinutes()),
23557 pad(d.getSeconds())].join(':');
23558 return [d.getDate(), months[d.getMonth()], time].join(' ');
23562 // log is just a thin wrapper to console.log that prepends a timestamp
23563 exports.log = function() {
23564 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
23569 * Inherit the prototype methods from one constructor into another.
23571 * The Function.prototype.inherits from lang.js rewritten as a standalone
23572 * function (not on Function.prototype). NOTE: If this file is to be loaded
23573 * during bootstrapping this function needs to be rewritten using some native
23574 * functions as prototype setup using normal JavaScript does not work as
23575 * expected during bootstrapping (see mirror.js in r114903).
23577 * @param {function} ctor Constructor function which needs to inherit the
23579 * @param {function} superCtor Constructor function to inherit prototype from.
23581 exports.inherits = require('inherits');
23583 exports._extend = function(origin, add) {
23584 // Don't do anything if add isn't an object
23585 if (!add || !isObject(add)) return origin;
23587 var keys = Object.keys(add);
23588 var i = keys.length;
23590 origin[keys[i]] = add[keys[i]];
23595 function hasOwnProperty(obj, prop) {
23596 return Object.prototype.hasOwnProperty.call(obj, prop);
23599 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23600 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
23601 (function (Buffer){
23602 const createKeccakHash = require('keccak')
23603 const secp256k1 = require('secp256k1')
23604 const assert = require('assert')
23605 const rlp = require('rlp')
23606 const BN = require('bn.js')
23607 const createHash = require('create-hash')
23608 Object.assign(exports, require('ethjs-util'))
23611 * the max integer that this VM can handle (a ```BN```)
23612 * @var {BN} MAX_INTEGER
23614 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
23617 *
2^
256 (a ```BN```)
23618 * @var {BN} TWO_POW256
23620 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
23623 * SHA3-
256 hash of null (a ```String```)
23624 * @var {String} SHA3_NULL_S
23626 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
23629 * SHA3-
256 hash of null (a ```Buffer```)
23630 * @var {Buffer} SHA3_NULL
23632 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
23635 * SHA3-
256 of an RLP of an empty array (a ```String```)
23636 * @var {String} SHA3_RLP_ARRAY_S
23638 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
23641 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
23642 * @var {Buffer} SHA3_RLP_ARRAY
23644 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
23647 * SHA3-
256 hash of the RLP of null (a ```String```)
23648 * @var {String} SHA3_RLP_S
23650 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
23653 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
23654 * @var {Buffer} SHA3_RLP
23656 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
23659 * [`BN`](https://github.com/indutny/bn.js)
23665 * [`rlp`](https://github.com/ethereumjs/rlp)
23671 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
23674 exports.secp256k1 = secp256k1
23677 * Returns a buffer filled with
0s
23679 * @param {Number} bytes the number of bytes the buffer should be
23682 exports.zeros = function (bytes) {
23683 return Buffer.allocUnsafe(bytes).fill(
0)
23687 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23688 * Or it truncates the beginning if it exceeds.
23689 * @method lsetLength
23690 * @param {Buffer|Array} msg the value to pad
23691 * @param {Number} length the number of bytes the output should be
23692 * @param {Boolean} [right=false] whether to start padding form the left or right
23693 * @return {Buffer|Array}
23695 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
23696 var buf = exports.zeros(length)
23697 msg = exports.toBuffer(msg)
23699 if (msg.length < length) {
23703 return msg.slice(
0, length)
23705 if (msg.length < length) {
23706 msg.copy(buf, length - msg.length)
23709 return msg.slice(-length)
23714 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23715 * Or it truncates the beginning if it exceeds.
23716 * @param {Buffer|Array} msg the value to pad
23717 * @param {Number} length the number of bytes the output should be
23718 * @return {Buffer|Array}
23720 exports.setLengthRight = function (msg, length) {
23721 return exports.setLength(msg, length, true)
23725 * Trims leading zeros from a `Buffer` or an `Array`
23726 * @param {Buffer|Array|String} a
23727 * @return {Buffer|Array|String}
23729 exports.unpad = exports.stripZeros = function (a) {
23730 a = exports.stripHexPrefix(a)
23732 while (a.length
> 0 && first.toString() === '
0') {
23739 * 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.
23740 * @param {*} v the value
23742 exports.toBuffer = function (v) {
23743 if (!Buffer.isBuffer(v)) {
23744 if (Array.isArray(v)) {
23746 } else if (typeof v === 'string') {
23747 if (exports.isHexPrefixed(v)) {
23748 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
23752 } else if (typeof v === 'number') {
23753 v = exports.intToBuffer(v)
23754 } else if (v === null || v === undefined) {
23755 v = Buffer.allocUnsafe(
0)
23756 } else if (v.toArray) {
23757 // converts a BN to a Buffer
23758 v = Buffer.from(v.toArray())
23760 throw new Error('invalid type')
23767 * Converts a `Buffer` to a `Number`
23768 * @param {Buffer} buf
23770 * @throws If the input number exceeds
53 bits.
23772 exports.bufferToInt = function (buf) {
23773 return new BN(exports.toBuffer(buf)).toNumber()
23777 * Converts a `Buffer` into a hex `String`
23778 * @param {Buffer} buf
23781 exports.bufferToHex = function (buf) {
23782 buf = exports.toBuffer(buf)
23783 return '
0x' + buf.toString('hex')
23787 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
23788 * @param {Buffer} num
23791 exports.fromSigned = function (num) {
23792 return new BN(num).fromTwos(
256)
23796 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
23800 exports.toUnsigned = function (num) {
23801 return Buffer.from(num.toTwos(
256).toArray())
23805 * Creates SHA-
3 hash of the input
23806 * @param {Buffer|Array|String|Number} a the input data
23807 * @param {Number} [bits=
256] the SHA width
23810 exports.sha3 = function (a, bits) {
23811 a = exports.toBuffer(a)
23812 if (!bits) bits =
256
23814 return createKeccakHash('keccak' + bits).update(a).digest()
23818 * Creates SHA256 hash of the input
23819 * @param {Buffer|Array|String|Number} a the input data
23822 exports.sha256 = function (a) {
23823 a = exports.toBuffer(a)
23824 return createHash('sha256').update(a).digest()
23828 * Creates RIPEMD160 hash of the input
23829 * @param {Buffer|Array|String|Number} a the input data
23830 * @param {Boolean} padded whether it should be padded to
256 bits or not
23833 exports.ripemd160 = function (a, padded) {
23834 a = exports.toBuffer(a)
23835 var hash = createHash('rmd160').update(a).digest()
23836 if (padded === true) {
23837 return exports.setLength(hash,
32)
23844 * Creates SHA-
3 hash of the RLP encoded version of the input
23845 * @param {Buffer|Array|String|Number} a the input data
23848 exports.rlphash = function (a) {
23849 return exports.sha3(rlp.encode(a))
23853 * Checks if the private key satisfies the rules of the curve secp256k1.
23854 * @param {Buffer} privateKey
23855 * @return {Boolean}
23857 exports.isValidPrivate = function (privateKey) {
23858 return secp256k1.privateKeyVerify(privateKey)
23862 * Checks if the public key satisfies the rules of the curve secp256k1
23863 * and the requirements of Ethereum.
23864 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
23865 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23866 * @return {Boolean}
23868 exports.isValidPublic = function (publicKey, sanitize) {
23869 if (publicKey.length ===
64) {
23870 // Convert to SEC1 for secp256k1
23871 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
23878 return secp256k1.publicKeyVerify(publicKey)
23882 * Returns the ethereum address of a given public key.
23883 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
23884 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
23885 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23888 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
23889 pubKey = exports.toBuffer(pubKey)
23890 if (sanitize && (pubKey.length !==
64)) {
23891 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
23893 assert(pubKey.length ===
64)
23894 // Only take the lower
160bits of the hash
23895 return exports.sha3(pubKey).slice(-
20)
23899 * Returns the ethereum public key of a given private key
23900 * @param {Buffer} privateKey A private key must be
256 bits wide
23903 var privateToPublic = exports.privateToPublic = function (privateKey) {
23904 privateKey = exports.toBuffer(privateKey)
23905 // skip the type flag and use the X, Y points
23906 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
23910 * Converts a public key to the Ethereum format.
23911 * @param {Buffer} publicKey
23914 exports.importPublic = function (publicKey) {
23915 publicKey = exports.toBuffer(publicKey)
23916 if (publicKey.length !==
64) {
23917 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
23924 * @param {Buffer} msgHash
23925 * @param {Buffer} privateKey
23928 exports.ecsign = function (msgHash, privateKey) {
23929 var sig = secp256k1.sign(msgHash, privateKey)
23932 ret.r = sig.signature.slice(
0,
32)
23933 ret.s = sig.signature.slice(
32,
64)
23934 ret.v = sig.recovery +
27
23939 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
23940 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
23941 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
23942 * used to produce the signature.
23944 * @returns {Buffer} hash
23946 exports.hashPersonalMessage = function (message) {
23947 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
23948 return exports.sha3(Buffer.concat([prefix, message]))
23952 * ECDSA public key recovery from signature
23953 * @param {Buffer} msgHash
23954 * @param {Number} v
23955 * @param {Buffer} r
23956 * @param {Buffer} s
23957 * @return {Buffer} publicKey
23959 exports.ecrecover = function (msgHash, v, r, s) {
23960 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
23961 var recovery = v -
27
23962 if (recovery !==
0 && recovery !==
1) {
23963 throw new Error('Invalid signature v value')
23965 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
23966 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
23970 * Convert signature parameters into the format of `eth_sign` RPC method
23971 * @param {Number} v
23972 * @param {Buffer} r
23973 * @param {Buffer} s
23974 * @return {String} sig
23976 exports.toRpcSig = function (v, r, s) {
23977 // NOTE: with potential introduction of chainId this might need to be updated
23978 if (v !==
27 && v !==
28) {
23979 throw new Error('Invalid recovery id')
23982 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
23983 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
23984 return exports.bufferToHex(Buffer.concat([
23985 exports.setLengthLeft(r,
32),
23986 exports.setLengthLeft(s,
32),
23987 exports.toBuffer(v -
27)
23992 * Convert signature format of the `eth_sign` RPC method to signature parameters
23993 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
23994 * @param {String} sig
23997 exports.fromRpcSig = function (sig) {
23998 sig = exports.toBuffer(sig)
24000 // NOTE: with potential introduction of chainId this might need to be updated
24001 if (sig.length !==
65) {
24002 throw new Error('Invalid signature length')
24006 // support both versions of `eth_sign` responses
24013 r: sig.slice(
0,
32),
24014 s: sig.slice(
32,
64)
24019 * Returns the ethereum address of a given private key
24020 * @param {Buffer} privateKey A private key must be
256 bits wide
24023 exports.privateToAddress = function (privateKey) {
24024 return exports.publicToAddress(privateToPublic(privateKey))
24028 * Checks if the address is a valid. Accepts checksummed addresses too
24029 * @param {String} address
24030 * @return {Boolean}
24032 exports.isValidAddress = function (address) {
24033 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
24037 * Returns a checksummed address
24038 * @param {String} address
24041 exports.toChecksumAddress = function (address) {
24042 address = exports.stripHexPrefix(address).toLowerCase()
24043 var hash = exports.sha3(address).toString('hex')
24046 for (var i =
0; i < address.length; i++) {
24047 if (parseInt(hash[i],
16)
>=
8) {
24048 ret += address[i].toUpperCase()
24058 * Checks if the address is a valid checksummed address
24059 * @param {Buffer} address
24060 * @return {Boolean}
24062 exports.isValidChecksumAddress = function (address) {
24063 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
24067 * Generates an address of a newly created contract
24068 * @param {Buffer} from the address which is creating this new address
24069 * @param {Buffer} nonce the nonce of the from account
24072 exports.generateAddress = function (from, nonce) {
24073 from = exports.toBuffer(from)
24074 nonce = new BN(nonce)
24076 if (nonce.isZero()) {
24077 // in RLP we want to encode null in the case of zero nonce
24078 // read the RLP documentation for an answer if you dare
24081 nonce = Buffer.from(nonce.toArray())
24084 // Only take the lower
160bits of the hash
24085 return exports.rlphash([from, nonce]).slice(-
20)
24089 * Returns true if the supplied address belongs to a precompiled account
24090 * @param {Buffer|String} address
24091 * @return {Boolean}
24093 exports.isPrecompiled = function (address) {
24094 var a = exports.unpad(address)
24095 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
24099 * Adds
"0x" to a given `String` if it does not already start with
"0x"
24100 * @param {String} str
24103 exports.addHexPrefix = function (str) {
24104 if (typeof str !== 'string') {
24108 return exports.isHexPrefixed(str) ? str : '
0x' + str
24112 * Validate ECDSA signature
24113 * @method isValidSignature
24114 * @param {Buffer} v
24115 * @param {Buffer} r
24116 * @param {Buffer} s
24117 * @param {Boolean} [homestead=true]
24118 * @return {Boolean}
24121 exports.isValidSignature = function (v, r, s, homestead) {
24122 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
24123 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
24125 if (r.length !==
32 || s.length !==
32) {
24129 if (v !==
27 && v !==
28) {
24136 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
24140 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
24148 * Converts a `Buffer` or `Array` to JSON
24149 * @param {Buffer|Array} ba
24150 * @return {Array|String|null}
24152 exports.baToJSON = function (ba) {
24153 if (Buffer.isBuffer(ba)) {
24154 return '
0x' + ba.toString('hex')
24155 } else if (ba instanceof Array) {
24157 for (var i =
0; i < ba.length; i++) {
24158 array.push(exports.baToJSON(ba[i]))
24165 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
24166 * @param {Object} self the `Object` to define properties on
24167 * @param {Array} fields an array fields to define. Fields can contain:
24168 * * `name` - the name of the properties
24169 * * `length` - the number of bytes the field can have
24170 * * `allowLess` - if the field can be less than the length
24172 * @param {*} data data to be validated against the definitions
24174 exports.defineProperties = function (self, fields, data) {
24178 // attach the `toJSON`
24179 self.toJSON = function (label) {
24182 self._fields.forEach(function (field) {
24183 obj[field] = '
0x' + self[field].toString('hex')
24187 return exports.baToJSON(this.raw)
24190 self.serialize = function serialize () {
24191 return rlp.encode(self.raw)
24194 fields.forEach(function (field, i) {
24195 self._fields.push(field.name)
24196 function getter () {
24199 function setter (v) {
24200 v = exports.toBuffer(v)
24202 if (v.toString('hex') === '
00' && !field.allowZero) {
24203 v = Buffer.allocUnsafe(
0)
24206 if (field.allowLess && field.length) {
24207 v = exports.stripZeros(v)
24208 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
24209 } else if (!(field.allowZero && v.length ===
0) && field.length) {
24210 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
24216 Object.defineProperty(self, field.name, {
24218 configurable: true,
24223 if (field.default) {
24224 self[field.name] = field.default
24229 Object.defineProperty(self, field.alias, {
24231 configurable: true,
24238 // if the constuctor is passed data
24240 if (typeof data === 'string') {
24241 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
24244 if (Buffer.isBuffer(data)) {
24245 data = rlp.decode(data)
24248 if (Array.isArray(data)) {
24249 if (data.length
> self._fields.length) {
24250 throw (new Error('wrong number of fields in data'))
24253 // make sure all the items are buffers
24254 data.forEach(function (d, i) {
24255 self[self._fields[i]] = exports.toBuffer(d)
24257 } else if (typeof data === 'object') {
24258 const keys = Object.keys(data)
24259 fields.forEach(function (field) {
24260 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
24261 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
24264 throw new Error('invalid data')
24269 }).call(this,require("buffer").Buffer)
24270 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
24271 (function (Buffer){
24272 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
24273 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24274 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
24276 function check (buffer) {
24277 if (buffer.length <
8) return false
24278 if (buffer.length
> 72) return false
24279 if (buffer[
0] !==
0x30) return false
24280 if (buffer[
1] !== buffer.length -
2) return false
24281 if (buffer[
2] !==
0x02) return false
24283 var lenR = buffer[
3]
24284 if (lenR ===
0) return false
24285 if (
5 + lenR
>= buffer.length) return false
24286 if (buffer[
4 + lenR] !==
0x02) return false
24288 var lenS = buffer[
5 + lenR]
24289 if (lenS ===
0) return false
24290 if ((
6 + lenR + lenS) !== buffer.length) return false
24292 if (buffer[
4] &
0x80) return false
24293 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
24295 if (buffer[lenR +
6] &
0x80) return false
24296 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
24300 function decode (buffer) {
24301 if (buffer.length <
8) throw new Error('DER sequence length is too short')
24302 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
24303 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
24304 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
24305 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
24307 var lenR = buffer[
3]
24308 if (lenR ===
0) throw new Error('R length is zero')
24309 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
24310 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
24312 var lenS = buffer[
5 + lenR]
24313 if (lenS ===
0) throw new Error('S length is zero')
24314 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
24316 if (buffer[
4] &
0x80) throw new Error('R value is negative')
24317 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
24319 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
24320 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
24322 // non-BIP66 - extract R, S values
24324 r: buffer.slice(
4,
4 + lenR),
24325 s: buffer.slice(
6 + lenR)
24330 * Expects r and s to be positive DER integers.
24332 * The DER format uses the most significant bit as a sign bit (&
0x80).
24333 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
24348 *
62300 =
> 0x00f35c
24349 * -
62300 =
> 0xff0ca4
24351 function encode (r, s) {
24352 var lenR = r.length
24353 var lenS = s.length
24354 if (lenR ===
0) throw new Error('R length is zero')
24355 if (lenS ===
0) throw new Error('S length is zero')
24356 if (lenR
> 33) throw new Error('R length is too long')
24357 if (lenS
> 33) throw new Error('S length is too long')
24358 if (r[
0] &
0x80) throw new Error('R value is negative')
24359 if (s[
0] &
0x80) throw new Error('S value is negative')
24360 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
24361 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
24363 var signature = new Buffer(
6 + lenR + lenS)
24365 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24366 signature[
0] =
0x30
24367 signature[
1] = signature.length -
2
24368 signature[
2] =
0x02
24369 signature[
3] = r.length
24370 r.copy(signature,
4)
24371 signature[
4 + lenR] =
0x02
24372 signature[
5 + lenR] = s.length
24373 s.copy(signature,
6 + lenR)
24384 }).call(this,require(
"buffer").Buffer)
24385 },{
"buffer":
5}],
33:[function(require,module,exports){
24386 (function (module, exports) {
24390 function assert (val, msg) {
24391 if (!val) throw new Error(msg || 'Assertion failed');
24394 // Could use `inherits` module, but don't want to move from single file
24395 // architecture yet.
24396 function inherits (ctor, superCtor) {
24397 ctor.super_ = superCtor;
24398 var TempCtor = function () {};
24399 TempCtor.prototype = superCtor.prototype;
24400 ctor.prototype = new TempCtor();
24401 ctor.prototype.constructor = ctor;
24406 function BN (number, base, endian) {
24407 if (BN.isBN(number)) {
24415 // Reduction context
24418 if (number !== null) {
24419 if (base === 'le' || base === 'be') {
24424 this._init(number ||
0, base ||
10, endian || 'be');
24427 if (typeof module === 'object') {
24428 module.exports = BN;
24438 Buffer = require('buf' + 'fer').Buffer;
24442 BN.isBN = function isBN (num) {
24443 if (num instanceof BN) {
24447 return num !== null && typeof num === 'object' &&
24448 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
24451 BN.max = function max (left, right) {
24452 if (left.cmp(right)
> 0) return left;
24456 BN.min = function min (left, right) {
24457 if (left.cmp(right) <
0) return left;
24461 BN.prototype._init = function init (number, base, endian) {
24462 if (typeof number === 'number') {
24463 return this._initNumber(number, base, endian);
24466 if (typeof number === 'object') {
24467 return this._initArray(number, base, endian);
24470 if (base === 'hex') {
24473 assert(base === (base |
0) && base
>=
2 && base <=
36);
24475 number = number.toString().replace(/\s+/g, '');
24477 if (number[
0] === '-') {
24482 this._parseHex(number, start);
24484 this._parseBase(number, base, start);
24487 if (number[
0] === '-') {
24493 if (endian !== 'le') return;
24495 this._initArray(this.toArray(), base, endian);
24498 BN.prototype._initNumber = function _initNumber (number, base, endian) {
24503 if (number <
0x4000000) {
24504 this.words = [ number &
0x3ffffff ];
24506 } else if (number <
0x10000000000000) {
24508 number &
0x3ffffff,
24509 (number /
0x4000000) &
0x3ffffff
24513 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
24515 number &
0x3ffffff,
24516 (number /
0x4000000) &
0x3ffffff,
24522 if (endian !== 'le') return;
24524 // Reverse the bytes
24525 this._initArray(this.toArray(), base, endian);
24528 BN.prototype._initArray = function _initArray (number, base, endian) {
24529 // Perhaps a Uint8Array
24530 assert(typeof number.length === 'number');
24531 if (number.length <=
0) {
24532 this.words = [
0 ];
24537 this.length = Math.ceil(number.length /
3);
24538 this.words = new Array(this.length);
24539 for (var i =
0; i < this.length; i++) {
24545 if (endian === 'be') {
24546 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
24547 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
24548 this.words[j] |= (w << off) &
0x3ffffff;
24549 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24556 } else if (endian === 'le') {
24557 for (i =
0, j =
0; i < number.length; i +=
3) {
24558 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
24559 this.words[j] |= (w << off) &
0x3ffffff;
24560 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24568 return this.strip();
24571 function parseHex (str, start, end) {
24573 var len = Math.min(str.length, end);
24574 for (var i = start; i < len; i++) {
24575 var c = str.charCodeAt(i) -
48;
24580 if (c
>=
49 && c <=
54) {
24584 } else if (c
>=
17 && c <=
22) {
24595 BN.prototype._parseHex = function _parseHex (number, start) {
24596 // Create possibly bigger array to ensure that it fits the number
24597 this.length = Math.ceil((number.length - start) /
6);
24598 this.words = new Array(this.length);
24599 for (var i =
0; i < this.length; i++) {
24604 // Scan
24-bit chunks and add them to the number
24606 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
24607 w = parseHex(number, i, i +
6);
24608 this.words[j] |= (w << off) &
0x3ffffff;
24609 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
24610 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24617 if (i +
6 !== start) {
24618 w = parseHex(number, start, i +
6);
24619 this.words[j] |= (w << off) &
0x3ffffff;
24620 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24625 function parseBase (str, start, end, mul) {
24627 var len = Math.min(str.length, end);
24628 for (var i = start; i < len; i++) {
24629 var c = str.charCodeAt(i) -
48;
24638 } else if (c
>=
17) {
24649 BN.prototype._parseBase = function _parseBase (number, base, start) {
24650 // Initialize as zero
24651 this.words = [
0 ];
24654 // Find length of limb in base
24655 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
24659 limbPow = (limbPow / base) |
0;
24661 var total = number.length - start;
24662 var mod = total % limbLen;
24663 var end = Math.min(total, total - mod) + start;
24666 for (var i = start; i < end; i += limbLen) {
24667 word = parseBase(number, i, i + limbLen, base);
24669 this.imuln(limbPow);
24670 if (this.words[
0] + word <
0x4000000) {
24671 this.words[
0] += word;
24679 word = parseBase(number, i, number.length, base);
24681 for (i =
0; i < mod; i++) {
24686 if (this.words[
0] + word <
0x4000000) {
24687 this.words[
0] += word;
24694 BN.prototype.copy = function copy (dest) {
24695 dest.words = new Array(this.length);
24696 for (var i =
0; i < this.length; i++) {
24697 dest.words[i] = this.words[i];
24699 dest.length = this.length;
24700 dest.negative = this.negative;
24701 dest.red = this.red;
24704 BN.prototype.clone = function clone () {
24705 var r = new BN(null);
24710 BN.prototype._expand = function _expand (size) {
24711 while (this.length < size) {
24712 this.words[this.length++] =
0;
24717 // Remove leading `
0` from `this`
24718 BN.prototype.strip = function strip () {
24719 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
24722 return this._normSign();
24725 BN.prototype._normSign = function _normSign () {
24727 if (this.length ===
1 && this.words[
0] ===
0) {
24733 BN.prototype.inspect = function inspect () {
24734 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
24740 var groupSizes = [];
24741 var groupBases = [];
24745 while (++i < BN.wordSize) {
24754 while (++base <
36 +
1) {
24757 while (groupBase < (
1 << BN.wordSize) / base) {
24761 groupSizes[base] = groupSize;
24762 groupBases[base] = groupBase;
24784 '
0000000000000000',
24785 '
00000000000000000',
24786 '
000000000000000000',
24787 '
0000000000000000000',
24788 '
00000000000000000000',
24789 '
000000000000000000000',
24790 '
0000000000000000000000',
24791 '
00000000000000000000000',
24792 '
000000000000000000000000',
24793 '
0000000000000000000000000'
24798 25,
16,
12,
11,
10,
9,
8,
24799 8,
7,
7,
7,
7,
6,
6,
24800 6,
6,
6,
6,
6,
5,
5,
24801 5,
5,
5,
5,
5,
5,
5,
24802 5,
5,
5,
5,
5,
5,
5
24807 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
24808 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
24809 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
24810 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
24811 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
24814 BN.prototype.toString = function toString (base, padding) {
24816 padding = padding |
0 ||
1;
24819 if (base ===
16 || base === 'hex') {
24823 for (var i =
0; i < this.length; i++) {
24824 var w = this.words[i];
24825 var word = (((w << off) | carry) &
0xffffff).toString(
16);
24826 carry = (w
>>> (
24 - off)) &
0xffffff;
24827 if (carry !==
0 || i !== this.length -
1) {
24828 out = zeros[
6 - word.length] + word + out;
24839 out = carry.toString(
16) + out;
24841 while (out.length % padding !==
0) {
24844 if (this.negative !==
0) {
24850 if (base === (base |
0) && base
>=
2 && base <=
36) {
24851 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
24852 var groupSize = groupSizes[base];
24853 // var groupBase = Math.pow(base, groupSize);
24854 var groupBase = groupBases[base];
24856 var c = this.clone();
24858 while (!c.isZero()) {
24859 var r = c.modn(groupBase).toString(base);
24860 c = c.idivn(groupBase);
24863 out = zeros[groupSize - r.length] + r + out;
24868 if (this.isZero()) {
24871 while (out.length % padding !==
0) {
24874 if (this.negative !==
0) {
24880 assert(false, 'Base should be between
2 and
36');
24883 BN.prototype.toNumber = function toNumber () {
24884 var ret = this.words[
0];
24885 if (this.length ===
2) {
24886 ret += this.words[
1] *
0x4000000;
24887 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
24888 // NOTE: at this stage it is known that the top bit is set
24889 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
24890 } else if (this.length
> 2) {
24891 assert(false, 'Number can only safely store up to
53 bits');
24893 return (this.negative !==
0) ? -ret : ret;
24896 BN.prototype.toJSON = function toJSON () {
24897 return this.toString(
16);
24900 BN.prototype.toBuffer = function toBuffer (endian, length) {
24901 assert(typeof Buffer !== 'undefined');
24902 return this.toArrayLike(Buffer, endian, length);
24905 BN.prototype.toArray = function toArray (endian, length) {
24906 return this.toArrayLike(Array, endian, length);
24909 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
24910 var byteLength = this.byteLength();
24911 var reqLength = length || Math.max(
1, byteLength);
24912 assert(byteLength <= reqLength, 'byte array longer than desired length');
24913 assert(reqLength
> 0, 'Requested array length <=
0');
24916 var littleEndian = endian === 'le';
24917 var res = new ArrayType(reqLength);
24920 var q = this.clone();
24921 if (!littleEndian) {
24922 // Assume big-endian
24923 for (i =
0; i < reqLength - byteLength; i++) {
24927 for (i =
0; !q.isZero(); i++) {
24931 res[reqLength - i -
1] = b;
24934 for (i =
0; !q.isZero(); i++) {
24941 for (; i < reqLength; i++) {
24950 BN.prototype._countBits = function _countBits (w) {
24951 return
32 - Math.clz32(w);
24954 BN.prototype._countBits = function _countBits (w) {
24977 BN.prototype._zeroBits = function _zeroBits (w) {
24979 if (w ===
0) return
26;
24983 if ((t &
0x1fff) ===
0) {
24987 if ((t &
0x7f) ===
0) {
24991 if ((t &
0xf) ===
0) {
24995 if ((t &
0x3) ===
0) {
24999 if ((t &
0x1) ===
0) {
25005 // Return number of used bits in a BN
25006 BN.prototype.bitLength = function bitLength () {
25007 var w = this.words[this.length -
1];
25008 var hi = this._countBits(w);
25009 return (this.length -
1) *
26 + hi;
25012 function toBitArray (num) {
25013 var w = new Array(num.bitLength());
25015 for (var bit =
0; bit < w.length; bit++) {
25016 var off = (bit /
26) |
0;
25017 var wbit = bit %
26;
25019 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
25025 // Number of trailing zero bits
25026 BN.prototype.zeroBits = function zeroBits () {
25027 if (this.isZero()) return
0;
25030 for (var i =
0; i < this.length; i++) {
25031 var b = this._zeroBits(this.words[i]);
25033 if (b !==
26) break;
25038 BN.prototype.byteLength = function byteLength () {
25039 return Math.ceil(this.bitLength() /
8);
25042 BN.prototype.toTwos = function toTwos (width) {
25043 if (this.negative !==
0) {
25044 return this.abs().inotn(width).iaddn(
1);
25046 return this.clone();
25049 BN.prototype.fromTwos = function fromTwos (width) {
25050 if (this.testn(width -
1)) {
25051 return this.notn(width).iaddn(
1).ineg();
25053 return this.clone();
25056 BN.prototype.isNeg = function isNeg () {
25057 return this.negative !==
0;
25060 // Return negative clone of `this`
25061 BN.prototype.neg = function neg () {
25062 return this.clone().ineg();
25065 BN.prototype.ineg = function ineg () {
25066 if (!this.isZero()) {
25067 this.negative ^=
1;
25073 // Or `num` with `this` in-place
25074 BN.prototype.iuor = function iuor (num) {
25075 while (this.length < num.length) {
25076 this.words[this.length++] =
0;
25079 for (var i =
0; i < num.length; i++) {
25080 this.words[i] = this.words[i] | num.words[i];
25083 return this.strip();
25086 BN.prototype.ior = function ior (num) {
25087 assert((this.negative | num.negative) ===
0);
25088 return this.iuor(num);
25091 // Or `num` with `this`
25092 BN.prototype.or = function or (num) {
25093 if (this.length
> num.length) return this.clone().ior(num);
25094 return num.clone().ior(this);
25097 BN.prototype.uor = function uor (num) {
25098 if (this.length
> num.length) return this.clone().iuor(num);
25099 return num.clone().iuor(this);
25102 // And `num` with `this` in-place
25103 BN.prototype.iuand = function iuand (num) {
25104 // b = min-length(num, this)
25106 if (this.length
> num.length) {
25112 for (var i =
0; i < b.length; i++) {
25113 this.words[i] = this.words[i] & num.words[i];
25116 this.length = b.length;
25118 return this.strip();
25121 BN.prototype.iand = function iand (num) {
25122 assert((this.negative | num.negative) ===
0);
25123 return this.iuand(num);
25126 // And `num` with `this`
25127 BN.prototype.and = function and (num) {
25128 if (this.length
> num.length) return this.clone().iand(num);
25129 return num.clone().iand(this);
25132 BN.prototype.uand = function uand (num) {
25133 if (this.length
> num.length) return this.clone().iuand(num);
25134 return num.clone().iuand(this);
25137 // Xor `num` with `this` in-place
25138 BN.prototype.iuxor = function iuxor (num) {
25139 // a.length
> b.length
25142 if (this.length
> num.length) {
25150 for (var i =
0; i < b.length; i++) {
25151 this.words[i] = a.words[i] ^ b.words[i];
25155 for (; i < a.length; i++) {
25156 this.words[i] = a.words[i];
25160 this.length = a.length;
25162 return this.strip();
25165 BN.prototype.ixor = function ixor (num) {
25166 assert((this.negative | num.negative) ===
0);
25167 return this.iuxor(num);
25170 // Xor `num` with `this`
25171 BN.prototype.xor = function xor (num) {
25172 if (this.length
> num.length) return this.clone().ixor(num);
25173 return num.clone().ixor(this);
25176 BN.prototype.uxor = function uxor (num) {
25177 if (this.length
> num.length) return this.clone().iuxor(num);
25178 return num.clone().iuxor(this);
25181 // Not ``this`` with ``width`` bitwidth
25182 BN.prototype.inotn = function inotn (width) {
25183 assert(typeof width === 'number' && width
>=
0);
25185 var bytesNeeded = Math.ceil(width /
26) |
0;
25186 var bitsLeft = width %
26;
25188 // Extend the buffer with leading zeroes
25189 this._expand(bytesNeeded);
25191 if (bitsLeft
> 0) {
25195 // Handle complete words
25196 for (var i =
0; i < bytesNeeded; i++) {
25197 this.words[i] = ~this.words[i] &
0x3ffffff;
25200 // Handle the residue
25201 if (bitsLeft
> 0) {
25202 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
25205 // And remove leading zeroes
25206 return this.strip();
25209 BN.prototype.notn = function notn (width) {
25210 return this.clone().inotn(width);
25213 // Set `bit` of `this`
25214 BN.prototype.setn = function setn (bit, val) {
25215 assert(typeof bit === 'number' && bit
>=
0);
25217 var off = (bit /
26) |
0;
25218 var wbit = bit %
26;
25220 this._expand(off +
1);
25223 this.words[off] = this.words[off] | (
1 << wbit);
25225 this.words[off] = this.words[off] & ~(
1 << wbit);
25228 return this.strip();
25231 // Add `num` to `this` in-place
25232 BN.prototype.iadd = function iadd (num) {
25235 // negative + positive
25236 if (this.negative !==
0 && num.negative ===
0) {
25238 r = this.isub(num);
25239 this.negative ^=
1;
25240 return this._normSign();
25242 // positive + negative
25243 } else if (this.negative ===
0 && num.negative !==
0) {
25245 r = this.isub(num);
25247 return r._normSign();
25250 // a.length
> b.length
25252 if (this.length
> num.length) {
25261 for (var i =
0; i < b.length; i++) {
25262 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
25263 this.words[i] = r &
0x3ffffff;
25266 for (; carry !==
0 && i < a.length; i++) {
25267 r = (a.words[i] |
0) + carry;
25268 this.words[i] = r &
0x3ffffff;
25272 this.length = a.length;
25274 this.words[this.length] = carry;
25276 // Copy the rest of the words
25277 } else if (a !== this) {
25278 for (; i < a.length; i++) {
25279 this.words[i] = a.words[i];
25286 // Add `num` to `this`
25287 BN.prototype.add = function add (num) {
25289 if (num.negative !==
0 && this.negative ===
0) {
25291 res = this.sub(num);
25294 } else if (num.negative ===
0 && this.negative !==
0) {
25296 res = num.sub(this);
25301 if (this.length
> num.length) return this.clone().iadd(num);
25303 return num.clone().iadd(this);
25306 // Subtract `num` from `this` in-place
25307 BN.prototype.isub = function isub (num) {
25308 // this - (-num) = this + num
25309 if (num.negative !==
0) {
25311 var r = this.iadd(num);
25313 return r._normSign();
25315 // -this - num = -(this + num)
25316 } else if (this.negative !==
0) {
25320 return this._normSign();
25323 // At this point both numbers are positive
25324 var cmp = this.cmp(num);
25326 // Optimization - zeroify
25345 for (var i =
0; i < b.length; i++) {
25346 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
25348 this.words[i] = r &
0x3ffffff;
25350 for (; carry !==
0 && i < a.length; i++) {
25351 r = (a.words[i] |
0) + carry;
25353 this.words[i] = r &
0x3ffffff;
25356 // Copy rest of the words
25357 if (carry ===
0 && i < a.length && a !== this) {
25358 for (; i < a.length; i++) {
25359 this.words[i] = a.words[i];
25363 this.length = Math.max(this.length, i);
25369 return this.strip();
25372 // Subtract `num` from `this`
25373 BN.prototype.sub = function sub (num) {
25374 return this.clone().isub(num);
25377 function smallMulTo (self, num, out) {
25378 out.negative = num.negative ^ self.negative;
25379 var len = (self.length + num.length) |
0;
25381 len = (len -
1) |
0;
25383 // Peel one iteration (compiler can't do it, because of code complexity)
25384 var a = self.words[
0] |
0;
25385 var b = num.words[
0] |
0;
25388 var lo = r &
0x3ffffff;
25389 var carry = (r /
0x4000000) |
0;
25392 for (var k =
1; k < len; k++) {
25393 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
25394 // note that ncarry could be
>=
0x3ffffff
25395 var ncarry = carry
>>> 26;
25396 var rword = carry &
0x3ffffff;
25397 var maxJ = Math.min(k, num.length -
1);
25398 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
25399 var i = (k - j) |
0;
25400 a = self.words[i] |
0;
25401 b = num.words[j] |
0;
25403 ncarry += (r /
0x4000000) |
0;
25404 rword = r &
0x3ffffff;
25406 out.words[k] = rword |
0;
25407 carry = ncarry |
0;
25410 out.words[k] = carry |
0;
25415 return out.strip();
25418 // TODO(indutny): it may be reasonable to omit it for users who don't need
25419 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
25420 // multiplication (like elliptic secp256k1).
25421 var comb10MulTo = function comb10MulTo (self, num, out) {
25422 var a = self.words;
25430 var al0 = a0 &
0x1fff;
25431 var ah0 = a0
>>> 13;
25433 var al1 = a1 &
0x1fff;
25434 var ah1 = a1
>>> 13;
25436 var al2 = a2 &
0x1fff;
25437 var ah2 = a2
>>> 13;
25439 var al3 = a3 &
0x1fff;
25440 var ah3 = a3
>>> 13;
25442 var al4 = a4 &
0x1fff;
25443 var ah4 = a4
>>> 13;
25445 var al5 = a5 &
0x1fff;
25446 var ah5 = a5
>>> 13;
25448 var al6 = a6 &
0x1fff;
25449 var ah6 = a6
>>> 13;
25451 var al7 = a7 &
0x1fff;
25452 var ah7 = a7
>>> 13;
25454 var al8 = a8 &
0x1fff;
25455 var ah8 = a8
>>> 13;
25457 var al9 = a9 &
0x1fff;
25458 var ah9 = a9
>>> 13;
25460 var bl0 = b0 &
0x1fff;
25461 var bh0 = b0
>>> 13;
25463 var bl1 = b1 &
0x1fff;
25464 var bh1 = b1
>>> 13;
25466 var bl2 = b2 &
0x1fff;
25467 var bh2 = b2
>>> 13;
25469 var bl3 = b3 &
0x1fff;
25470 var bh3 = b3
>>> 13;
25472 var bl4 = b4 &
0x1fff;
25473 var bh4 = b4
>>> 13;
25475 var bl5 = b5 &
0x1fff;
25476 var bh5 = b5
>>> 13;
25478 var bl6 = b6 &
0x1fff;
25479 var bh6 = b6
>>> 13;
25481 var bl7 = b7 &
0x1fff;
25482 var bh7 = b7
>>> 13;
25484 var bl8 = b8 &
0x1fff;
25485 var bh8 = b8
>>> 13;
25487 var bl9 = b9 &
0x1fff;
25488 var bh9 = b9
>>> 13;
25490 out.negative = self.negative ^ num.negative;
25493 lo = Math.imul(al0, bl0);
25494 mid = Math.imul(al0, bh0);
25495 mid = (mid + Math.imul(ah0, bl0)) |
0;
25496 hi = Math.imul(ah0, bh0);
25497 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25498 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
25501 lo = Math.imul(al1, bl0);
25502 mid = Math.imul(al1, bh0);
25503 mid = (mid + Math.imul(ah1, bl0)) |
0;
25504 hi = Math.imul(ah1, bh0);
25505 lo = (lo + Math.imul(al0, bl1)) |
0;
25506 mid = (mid + Math.imul(al0, bh1)) |
0;
25507 mid = (mid + Math.imul(ah0, bl1)) |
0;
25508 hi = (hi + Math.imul(ah0, bh1)) |
0;
25509 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25510 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
25513 lo = Math.imul(al2, bl0);
25514 mid = Math.imul(al2, bh0);
25515 mid = (mid + Math.imul(ah2, bl0)) |
0;
25516 hi = Math.imul(ah2, bh0);
25517 lo = (lo + Math.imul(al1, bl1)) |
0;
25518 mid = (mid + Math.imul(al1, bh1)) |
0;
25519 mid = (mid + Math.imul(ah1, bl1)) |
0;
25520 hi = (hi + Math.imul(ah1, bh1)) |
0;
25521 lo = (lo + Math.imul(al0, bl2)) |
0;
25522 mid = (mid + Math.imul(al0, bh2)) |
0;
25523 mid = (mid + Math.imul(ah0, bl2)) |
0;
25524 hi = (hi + Math.imul(ah0, bh2)) |
0;
25525 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25526 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
25529 lo = Math.imul(al3, bl0);
25530 mid = Math.imul(al3, bh0);
25531 mid = (mid + Math.imul(ah3, bl0)) |
0;
25532 hi = Math.imul(ah3, bh0);
25533 lo = (lo + Math.imul(al2, bl1)) |
0;
25534 mid = (mid + Math.imul(al2, bh1)) |
0;
25535 mid = (mid + Math.imul(ah2, bl1)) |
0;
25536 hi = (hi + Math.imul(ah2, bh1)) |
0;
25537 lo = (lo + Math.imul(al1, bl2)) |
0;
25538 mid = (mid + Math.imul(al1, bh2)) |
0;
25539 mid = (mid + Math.imul(ah1, bl2)) |
0;
25540 hi = (hi + Math.imul(ah1, bh2)) |
0;
25541 lo = (lo + Math.imul(al0, bl3)) |
0;
25542 mid = (mid + Math.imul(al0, bh3)) |
0;
25543 mid = (mid + Math.imul(ah0, bl3)) |
0;
25544 hi = (hi + Math.imul(ah0, bh3)) |
0;
25545 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25546 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
25549 lo = Math.imul(al4, bl0);
25550 mid = Math.imul(al4, bh0);
25551 mid = (mid + Math.imul(ah4, bl0)) |
0;
25552 hi = Math.imul(ah4, bh0);
25553 lo = (lo + Math.imul(al3, bl1)) |
0;
25554 mid = (mid + Math.imul(al3, bh1)) |
0;
25555 mid = (mid + Math.imul(ah3, bl1)) |
0;
25556 hi = (hi + Math.imul(ah3, bh1)) |
0;
25557 lo = (lo + Math.imul(al2, bl2)) |
0;
25558 mid = (mid + Math.imul(al2, bh2)) |
0;
25559 mid = (mid + Math.imul(ah2, bl2)) |
0;
25560 hi = (hi + Math.imul(ah2, bh2)) |
0;
25561 lo = (lo + Math.imul(al1, bl3)) |
0;
25562 mid = (mid + Math.imul(al1, bh3)) |
0;
25563 mid = (mid + Math.imul(ah1, bl3)) |
0;
25564 hi = (hi + Math.imul(ah1, bh3)) |
0;
25565 lo = (lo + Math.imul(al0, bl4)) |
0;
25566 mid = (mid + Math.imul(al0, bh4)) |
0;
25567 mid = (mid + Math.imul(ah0, bl4)) |
0;
25568 hi = (hi + Math.imul(ah0, bh4)) |
0;
25569 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25570 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
25573 lo = Math.imul(al5, bl0);
25574 mid = Math.imul(al5, bh0);
25575 mid = (mid + Math.imul(ah5, bl0)) |
0;
25576 hi = Math.imul(ah5, bh0);
25577 lo = (lo + Math.imul(al4, bl1)) |
0;
25578 mid = (mid + Math.imul(al4, bh1)) |
0;
25579 mid = (mid + Math.imul(ah4, bl1)) |
0;
25580 hi = (hi + Math.imul(ah4, bh1)) |
0;
25581 lo = (lo + Math.imul(al3, bl2)) |
0;
25582 mid = (mid + Math.imul(al3, bh2)) |
0;
25583 mid = (mid + Math.imul(ah3, bl2)) |
0;
25584 hi = (hi + Math.imul(ah3, bh2)) |
0;
25585 lo = (lo + Math.imul(al2, bl3)) |
0;
25586 mid = (mid + Math.imul(al2, bh3)) |
0;
25587 mid = (mid + Math.imul(ah2, bl3)) |
0;
25588 hi = (hi + Math.imul(ah2, bh3)) |
0;
25589 lo = (lo + Math.imul(al1, bl4)) |
0;
25590 mid = (mid + Math.imul(al1, bh4)) |
0;
25591 mid = (mid + Math.imul(ah1, bl4)) |
0;
25592 hi = (hi + Math.imul(ah1, bh4)) |
0;
25593 lo = (lo + Math.imul(al0, bl5)) |
0;
25594 mid = (mid + Math.imul(al0, bh5)) |
0;
25595 mid = (mid + Math.imul(ah0, bl5)) |
0;
25596 hi = (hi + Math.imul(ah0, bh5)) |
0;
25597 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25598 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
25601 lo = Math.imul(al6, bl0);
25602 mid = Math.imul(al6, bh0);
25603 mid = (mid + Math.imul(ah6, bl0)) |
0;
25604 hi = Math.imul(ah6, bh0);
25605 lo = (lo + Math.imul(al5, bl1)) |
0;
25606 mid = (mid + Math.imul(al5, bh1)) |
0;
25607 mid = (mid + Math.imul(ah5, bl1)) |
0;
25608 hi = (hi + Math.imul(ah5, bh1)) |
0;
25609 lo = (lo + Math.imul(al4, bl2)) |
0;
25610 mid = (mid + Math.imul(al4, bh2)) |
0;
25611 mid = (mid + Math.imul(ah4, bl2)) |
0;
25612 hi = (hi + Math.imul(ah4, bh2)) |
0;
25613 lo = (lo + Math.imul(al3, bl3)) |
0;
25614 mid = (mid + Math.imul(al3, bh3)) |
0;
25615 mid = (mid + Math.imul(ah3, bl3)) |
0;
25616 hi = (hi + Math.imul(ah3, bh3)) |
0;
25617 lo = (lo + Math.imul(al2, bl4)) |
0;
25618 mid = (mid + Math.imul(al2, bh4)) |
0;
25619 mid = (mid + Math.imul(ah2, bl4)) |
0;
25620 hi = (hi + Math.imul(ah2, bh4)) |
0;
25621 lo = (lo + Math.imul(al1, bl5)) |
0;
25622 mid = (mid + Math.imul(al1, bh5)) |
0;
25623 mid = (mid + Math.imul(ah1, bl5)) |
0;
25624 hi = (hi + Math.imul(ah1, bh5)) |
0;
25625 lo = (lo + Math.imul(al0, bl6)) |
0;
25626 mid = (mid + Math.imul(al0, bh6)) |
0;
25627 mid = (mid + Math.imul(ah0, bl6)) |
0;
25628 hi = (hi + Math.imul(ah0, bh6)) |
0;
25629 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25630 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
25633 lo = Math.imul(al7, bl0);
25634 mid = Math.imul(al7, bh0);
25635 mid = (mid + Math.imul(ah7, bl0)) |
0;
25636 hi = Math.imul(ah7, bh0);
25637 lo = (lo + Math.imul(al6, bl1)) |
0;
25638 mid = (mid + Math.imul(al6, bh1)) |
0;
25639 mid = (mid + Math.imul(ah6, bl1)) |
0;
25640 hi = (hi + Math.imul(ah6, bh1)) |
0;
25641 lo = (lo + Math.imul(al5, bl2)) |
0;
25642 mid = (mid + Math.imul(al5, bh2)) |
0;
25643 mid = (mid + Math.imul(ah5, bl2)) |
0;
25644 hi = (hi + Math.imul(ah5, bh2)) |
0;
25645 lo = (lo + Math.imul(al4, bl3)) |
0;
25646 mid = (mid + Math.imul(al4, bh3)) |
0;
25647 mid = (mid + Math.imul(ah4, bl3)) |
0;
25648 hi = (hi + Math.imul(ah4, bh3)) |
0;
25649 lo = (lo + Math.imul(al3, bl4)) |
0;
25650 mid = (mid + Math.imul(al3, bh4)) |
0;
25651 mid = (mid + Math.imul(ah3, bl4)) |
0;
25652 hi = (hi + Math.imul(ah3, bh4)) |
0;
25653 lo = (lo + Math.imul(al2, bl5)) |
0;
25654 mid = (mid + Math.imul(al2, bh5)) |
0;
25655 mid = (mid + Math.imul(ah2, bl5)) |
0;
25656 hi = (hi + Math.imul(ah2, bh5)) |
0;
25657 lo = (lo + Math.imul(al1, bl6)) |
0;
25658 mid = (mid + Math.imul(al1, bh6)) |
0;
25659 mid = (mid + Math.imul(ah1, bl6)) |
0;
25660 hi = (hi + Math.imul(ah1, bh6)) |
0;
25661 lo = (lo + Math.imul(al0, bl7)) |
0;
25662 mid = (mid + Math.imul(al0, bh7)) |
0;
25663 mid = (mid + Math.imul(ah0, bl7)) |
0;
25664 hi = (hi + Math.imul(ah0, bh7)) |
0;
25665 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25666 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
25669 lo = Math.imul(al8, bl0);
25670 mid = Math.imul(al8, bh0);
25671 mid = (mid + Math.imul(ah8, bl0)) |
0;
25672 hi = Math.imul(ah8, bh0);
25673 lo = (lo + Math.imul(al7, bl1)) |
0;
25674 mid = (mid + Math.imul(al7, bh1)) |
0;
25675 mid = (mid + Math.imul(ah7, bl1)) |
0;
25676 hi = (hi + Math.imul(ah7, bh1)) |
0;
25677 lo = (lo + Math.imul(al6, bl2)) |
0;
25678 mid = (mid + Math.imul(al6, bh2)) |
0;
25679 mid = (mid + Math.imul(ah6, bl2)) |
0;
25680 hi = (hi + Math.imul(ah6, bh2)) |
0;
25681 lo = (lo + Math.imul(al5, bl3)) |
0;
25682 mid = (mid + Math.imul(al5, bh3)) |
0;
25683 mid = (mid + Math.imul(ah5, bl3)) |
0;
25684 hi = (hi + Math.imul(ah5, bh3)) |
0;
25685 lo = (lo + Math.imul(al4, bl4)) |
0;
25686 mid = (mid + Math.imul(al4, bh4)) |
0;
25687 mid = (mid + Math.imul(ah4, bl4)) |
0;
25688 hi = (hi + Math.imul(ah4, bh4)) |
0;
25689 lo = (lo + Math.imul(al3, bl5)) |
0;
25690 mid = (mid + Math.imul(al3, bh5)) |
0;
25691 mid = (mid + Math.imul(ah3, bl5)) |
0;
25692 hi = (hi + Math.imul(ah3, bh5)) |
0;
25693 lo = (lo + Math.imul(al2, bl6)) |
0;
25694 mid = (mid + Math.imul(al2, bh6)) |
0;
25695 mid = (mid + Math.imul(ah2, bl6)) |
0;
25696 hi = (hi + Math.imul(ah2, bh6)) |
0;
25697 lo = (lo + Math.imul(al1, bl7)) |
0;
25698 mid = (mid + Math.imul(al1, bh7)) |
0;
25699 mid = (mid + Math.imul(ah1, bl7)) |
0;
25700 hi = (hi + Math.imul(ah1, bh7)) |
0;
25701 lo = (lo + Math.imul(al0, bl8)) |
0;
25702 mid = (mid + Math.imul(al0, bh8)) |
0;
25703 mid = (mid + Math.imul(ah0, bl8)) |
0;
25704 hi = (hi + Math.imul(ah0, bh8)) |
0;
25705 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25706 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
25709 lo = Math.imul(al9, bl0);
25710 mid = Math.imul(al9, bh0);
25711 mid = (mid + Math.imul(ah9, bl0)) |
0;
25712 hi = Math.imul(ah9, bh0);
25713 lo = (lo + Math.imul(al8, bl1)) |
0;
25714 mid = (mid + Math.imul(al8, bh1)) |
0;
25715 mid = (mid + Math.imul(ah8, bl1)) |
0;
25716 hi = (hi + Math.imul(ah8, bh1)) |
0;
25717 lo = (lo + Math.imul(al7, bl2)) |
0;
25718 mid = (mid + Math.imul(al7, bh2)) |
0;
25719 mid = (mid + Math.imul(ah7, bl2)) |
0;
25720 hi = (hi + Math.imul(ah7, bh2)) |
0;
25721 lo = (lo + Math.imul(al6, bl3)) |
0;
25722 mid = (mid + Math.imul(al6, bh3)) |
0;
25723 mid = (mid + Math.imul(ah6, bl3)) |
0;
25724 hi = (hi + Math.imul(ah6, bh3)) |
0;
25725 lo = (lo + Math.imul(al5, bl4)) |
0;
25726 mid = (mid + Math.imul(al5, bh4)) |
0;
25727 mid = (mid + Math.imul(ah5, bl4)) |
0;
25728 hi = (hi + Math.imul(ah5, bh4)) |
0;
25729 lo = (lo + Math.imul(al4, bl5)) |
0;
25730 mid = (mid + Math.imul(al4, bh5)) |
0;
25731 mid = (mid + Math.imul(ah4, bl5)) |
0;
25732 hi = (hi + Math.imul(ah4, bh5)) |
0;
25733 lo = (lo + Math.imul(al3, bl6)) |
0;
25734 mid = (mid + Math.imul(al3, bh6)) |
0;
25735 mid = (mid + Math.imul(ah3, bl6)) |
0;
25736 hi = (hi + Math.imul(ah3, bh6)) |
0;
25737 lo = (lo + Math.imul(al2, bl7)) |
0;
25738 mid = (mid + Math.imul(al2, bh7)) |
0;
25739 mid = (mid + Math.imul(ah2, bl7)) |
0;
25740 hi = (hi + Math.imul(ah2, bh7)) |
0;
25741 lo = (lo + Math.imul(al1, bl8)) |
0;
25742 mid = (mid + Math.imul(al1, bh8)) |
0;
25743 mid = (mid + Math.imul(ah1, bl8)) |
0;
25744 hi = (hi + Math.imul(ah1, bh8)) |
0;
25745 lo = (lo + Math.imul(al0, bl9)) |
0;
25746 mid = (mid + Math.imul(al0, bh9)) |
0;
25747 mid = (mid + Math.imul(ah0, bl9)) |
0;
25748 hi = (hi + Math.imul(ah0, bh9)) |
0;
25749 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25750 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
25753 lo = Math.imul(al9, bl1);
25754 mid = Math.imul(al9, bh1);
25755 mid = (mid + Math.imul(ah9, bl1)) |
0;
25756 hi = Math.imul(ah9, bh1);
25757 lo = (lo + Math.imul(al8, bl2)) |
0;
25758 mid = (mid + Math.imul(al8, bh2)) |
0;
25759 mid = (mid + Math.imul(ah8, bl2)) |
0;
25760 hi = (hi + Math.imul(ah8, bh2)) |
0;
25761 lo = (lo + Math.imul(al7, bl3)) |
0;
25762 mid = (mid + Math.imul(al7, bh3)) |
0;
25763 mid = (mid + Math.imul(ah7, bl3)) |
0;
25764 hi = (hi + Math.imul(ah7, bh3)) |
0;
25765 lo = (lo + Math.imul(al6, bl4)) |
0;
25766 mid = (mid + Math.imul(al6, bh4)) |
0;
25767 mid = (mid + Math.imul(ah6, bl4)) |
0;
25768 hi = (hi + Math.imul(ah6, bh4)) |
0;
25769 lo = (lo + Math.imul(al5, bl5)) |
0;
25770 mid = (mid + Math.imul(al5, bh5)) |
0;
25771 mid = (mid + Math.imul(ah5, bl5)) |
0;
25772 hi = (hi + Math.imul(ah5, bh5)) |
0;
25773 lo = (lo + Math.imul(al4, bl6)) |
0;
25774 mid = (mid + Math.imul(al4, bh6)) |
0;
25775 mid = (mid + Math.imul(ah4, bl6)) |
0;
25776 hi = (hi + Math.imul(ah4, bh6)) |
0;
25777 lo = (lo + Math.imul(al3, bl7)) |
0;
25778 mid = (mid + Math.imul(al3, bh7)) |
0;
25779 mid = (mid + Math.imul(ah3, bl7)) |
0;
25780 hi = (hi + Math.imul(ah3, bh7)) |
0;
25781 lo = (lo + Math.imul(al2, bl8)) |
0;
25782 mid = (mid + Math.imul(al2, bh8)) |
0;
25783 mid = (mid + Math.imul(ah2, bl8)) |
0;
25784 hi = (hi + Math.imul(ah2, bh8)) |
0;
25785 lo = (lo + Math.imul(al1, bl9)) |
0;
25786 mid = (mid + Math.imul(al1, bh9)) |
0;
25787 mid = (mid + Math.imul(ah1, bl9)) |
0;
25788 hi = (hi + Math.imul(ah1, bh9)) |
0;
25789 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25790 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
25793 lo = Math.imul(al9, bl2);
25794 mid = Math.imul(al9, bh2);
25795 mid = (mid + Math.imul(ah9, bl2)) |
0;
25796 hi = Math.imul(ah9, bh2);
25797 lo = (lo + Math.imul(al8, bl3)) |
0;
25798 mid = (mid + Math.imul(al8, bh3)) |
0;
25799 mid = (mid + Math.imul(ah8, bl3)) |
0;
25800 hi = (hi + Math.imul(ah8, bh3)) |
0;
25801 lo = (lo + Math.imul(al7, bl4)) |
0;
25802 mid = (mid + Math.imul(al7, bh4)) |
0;
25803 mid = (mid + Math.imul(ah7, bl4)) |
0;
25804 hi = (hi + Math.imul(ah7, bh4)) |
0;
25805 lo = (lo + Math.imul(al6, bl5)) |
0;
25806 mid = (mid + Math.imul(al6, bh5)) |
0;
25807 mid = (mid + Math.imul(ah6, bl5)) |
0;
25808 hi = (hi + Math.imul(ah6, bh5)) |
0;
25809 lo = (lo + Math.imul(al5, bl6)) |
0;
25810 mid = (mid + Math.imul(al5, bh6)) |
0;
25811 mid = (mid + Math.imul(ah5, bl6)) |
0;
25812 hi = (hi + Math.imul(ah5, bh6)) |
0;
25813 lo = (lo + Math.imul(al4, bl7)) |
0;
25814 mid = (mid + Math.imul(al4, bh7)) |
0;
25815 mid = (mid + Math.imul(ah4, bl7)) |
0;
25816 hi = (hi + Math.imul(ah4, bh7)) |
0;
25817 lo = (lo + Math.imul(al3, bl8)) |
0;
25818 mid = (mid + Math.imul(al3, bh8)) |
0;
25819 mid = (mid + Math.imul(ah3, bl8)) |
0;
25820 hi = (hi + Math.imul(ah3, bh8)) |
0;
25821 lo = (lo + Math.imul(al2, bl9)) |
0;
25822 mid = (mid + Math.imul(al2, bh9)) |
0;
25823 mid = (mid + Math.imul(ah2, bl9)) |
0;
25824 hi = (hi + Math.imul(ah2, bh9)) |
0;
25825 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25826 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
25829 lo = Math.imul(al9, bl3);
25830 mid = Math.imul(al9, bh3);
25831 mid = (mid + Math.imul(ah9, bl3)) |
0;
25832 hi = Math.imul(ah9, bh3);
25833 lo = (lo + Math.imul(al8, bl4)) |
0;
25834 mid = (mid + Math.imul(al8, bh4)) |
0;
25835 mid = (mid + Math.imul(ah8, bl4)) |
0;
25836 hi = (hi + Math.imul(ah8, bh4)) |
0;
25837 lo = (lo + Math.imul(al7, bl5)) |
0;
25838 mid = (mid + Math.imul(al7, bh5)) |
0;
25839 mid = (mid + Math.imul(ah7, bl5)) |
0;
25840 hi = (hi + Math.imul(ah7, bh5)) |
0;
25841 lo = (lo + Math.imul(al6, bl6)) |
0;
25842 mid = (mid + Math.imul(al6, bh6)) |
0;
25843 mid = (mid + Math.imul(ah6, bl6)) |
0;
25844 hi = (hi + Math.imul(ah6, bh6)) |
0;
25845 lo = (lo + Math.imul(al5, bl7)) |
0;
25846 mid = (mid + Math.imul(al5, bh7)) |
0;
25847 mid = (mid + Math.imul(ah5, bl7)) |
0;
25848 hi = (hi + Math.imul(ah5, bh7)) |
0;
25849 lo = (lo + Math.imul(al4, bl8)) |
0;
25850 mid = (mid + Math.imul(al4, bh8)) |
0;
25851 mid = (mid + Math.imul(ah4, bl8)) |
0;
25852 hi = (hi + Math.imul(ah4, bh8)) |
0;
25853 lo = (lo + Math.imul(al3, bl9)) |
0;
25854 mid = (mid + Math.imul(al3, bh9)) |
0;
25855 mid = (mid + Math.imul(ah3, bl9)) |
0;
25856 hi = (hi + Math.imul(ah3, bh9)) |
0;
25857 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25858 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
25861 lo = Math.imul(al9, bl4);
25862 mid = Math.imul(al9, bh4);
25863 mid = (mid + Math.imul(ah9, bl4)) |
0;
25864 hi = Math.imul(ah9, bh4);
25865 lo = (lo + Math.imul(al8, bl5)) |
0;
25866 mid = (mid + Math.imul(al8, bh5)) |
0;
25867 mid = (mid + Math.imul(ah8, bl5)) |
0;
25868 hi = (hi + Math.imul(ah8, bh5)) |
0;
25869 lo = (lo + Math.imul(al7, bl6)) |
0;
25870 mid = (mid + Math.imul(al7, bh6)) |
0;
25871 mid = (mid + Math.imul(ah7, bl6)) |
0;
25872 hi = (hi + Math.imul(ah7, bh6)) |
0;
25873 lo = (lo + Math.imul(al6, bl7)) |
0;
25874 mid = (mid + Math.imul(al6, bh7)) |
0;
25875 mid = (mid + Math.imul(ah6, bl7)) |
0;
25876 hi = (hi + Math.imul(ah6, bh7)) |
0;
25877 lo = (lo + Math.imul(al5, bl8)) |
0;
25878 mid = (mid + Math.imul(al5, bh8)) |
0;
25879 mid = (mid + Math.imul(ah5, bl8)) |
0;
25880 hi = (hi + Math.imul(ah5, bh8)) |
0;
25881 lo = (lo + Math.imul(al4, bl9)) |
0;
25882 mid = (mid + Math.imul(al4, bh9)) |
0;
25883 mid = (mid + Math.imul(ah4, bl9)) |
0;
25884 hi = (hi + Math.imul(ah4, bh9)) |
0;
25885 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25886 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
25889 lo = Math.imul(al9, bl5);
25890 mid = Math.imul(al9, bh5);
25891 mid = (mid + Math.imul(ah9, bl5)) |
0;
25892 hi = Math.imul(ah9, bh5);
25893 lo = (lo + Math.imul(al8, bl6)) |
0;
25894 mid = (mid + Math.imul(al8, bh6)) |
0;
25895 mid = (mid + Math.imul(ah8, bl6)) |
0;
25896 hi = (hi + Math.imul(ah8, bh6)) |
0;
25897 lo = (lo + Math.imul(al7, bl7)) |
0;
25898 mid = (mid + Math.imul(al7, bh7)) |
0;
25899 mid = (mid + Math.imul(ah7, bl7)) |
0;
25900 hi = (hi + Math.imul(ah7, bh7)) |
0;
25901 lo = (lo + Math.imul(al6, bl8)) |
0;
25902 mid = (mid + Math.imul(al6, bh8)) |
0;
25903 mid = (mid + Math.imul(ah6, bl8)) |
0;
25904 hi = (hi + Math.imul(ah6, bh8)) |
0;
25905 lo = (lo + Math.imul(al5, bl9)) |
0;
25906 mid = (mid + Math.imul(al5, bh9)) |
0;
25907 mid = (mid + Math.imul(ah5, bl9)) |
0;
25908 hi = (hi + Math.imul(ah5, bh9)) |
0;
25909 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25910 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
25913 lo = Math.imul(al9, bl6);
25914 mid = Math.imul(al9, bh6);
25915 mid = (mid + Math.imul(ah9, bl6)) |
0;
25916 hi = Math.imul(ah9, bh6);
25917 lo = (lo + Math.imul(al8, bl7)) |
0;
25918 mid = (mid + Math.imul(al8, bh7)) |
0;
25919 mid = (mid + Math.imul(ah8, bl7)) |
0;
25920 hi = (hi + Math.imul(ah8, bh7)) |
0;
25921 lo = (lo + Math.imul(al7, bl8)) |
0;
25922 mid = (mid + Math.imul(al7, bh8)) |
0;
25923 mid = (mid + Math.imul(ah7, bl8)) |
0;
25924 hi = (hi + Math.imul(ah7, bh8)) |
0;
25925 lo = (lo + Math.imul(al6, bl9)) |
0;
25926 mid = (mid + Math.imul(al6, bh9)) |
0;
25927 mid = (mid + Math.imul(ah6, bl9)) |
0;
25928 hi = (hi + Math.imul(ah6, bh9)) |
0;
25929 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25930 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
25933 lo = Math.imul(al9, bl7);
25934 mid = Math.imul(al9, bh7);
25935 mid = (mid + Math.imul(ah9, bl7)) |
0;
25936 hi = Math.imul(ah9, bh7);
25937 lo = (lo + Math.imul(al8, bl8)) |
0;
25938 mid = (mid + Math.imul(al8, bh8)) |
0;
25939 mid = (mid + Math.imul(ah8, bl8)) |
0;
25940 hi = (hi + Math.imul(ah8, bh8)) |
0;
25941 lo = (lo + Math.imul(al7, bl9)) |
0;
25942 mid = (mid + Math.imul(al7, bh9)) |
0;
25943 mid = (mid + Math.imul(ah7, bl9)) |
0;
25944 hi = (hi + Math.imul(ah7, bh9)) |
0;
25945 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25946 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
25949 lo = Math.imul(al9, bl8);
25950 mid = Math.imul(al9, bh8);
25951 mid = (mid + Math.imul(ah9, bl8)) |
0;
25952 hi = Math.imul(ah9, bh8);
25953 lo = (lo + Math.imul(al8, bl9)) |
0;
25954 mid = (mid + Math.imul(al8, bh9)) |
0;
25955 mid = (mid + Math.imul(ah8, bl9)) |
0;
25956 hi = (hi + Math.imul(ah8, bh9)) |
0;
25957 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25958 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
25961 lo = Math.imul(al9, bl9);
25962 mid = Math.imul(al9, bh9);
25963 mid = (mid + Math.imul(ah9, bl9)) |
0;
25964 hi = Math.imul(ah9, bh9);
25965 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25966 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
25996 comb10MulTo = smallMulTo;
25999 function bigMulTo (self, num, out) {
26000 out.negative = num.negative ^ self.negative;
26001 out.length = self.length + num.length;
26005 for (var k =
0; k < out.length -
1; k++) {
26006 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
26007 // note that ncarry could be
>=
0x3ffffff
26008 var ncarry = hncarry;
26010 var rword = carry &
0x3ffffff;
26011 var maxJ = Math.min(k, num.length -
1);
26012 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
26014 var a = self.words[i] |
0;
26015 var b = num.words[j] |
0;
26018 var lo = r &
0x3ffffff;
26019 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
26020 lo = (lo + rword) |
0;
26021 rword = lo &
0x3ffffff;
26022 ncarry = (ncarry + (lo
>>> 26)) |
0;
26024 hncarry += ncarry
>>> 26;
26025 ncarry &=
0x3ffffff;
26027 out.words[k] = rword;
26032 out.words[k] = carry;
26037 return out.strip();
26040 function jumboMulTo (self, num, out) {
26041 var fftm = new FFTM();
26042 return fftm.mulp(self, num, out);
26045 BN.prototype.mulTo = function mulTo (num, out) {
26047 var len = this.length + num.length;
26048 if (this.length ===
10 && num.length ===
10) {
26049 res = comb10MulTo(this, num, out);
26050 } else if (len <
63) {
26051 res = smallMulTo(this, num, out);
26052 } else if (len <
1024) {
26053 res = bigMulTo(this, num, out);
26055 res = jumboMulTo(this, num, out);
26061 // Cooley-Tukey algorithm for FFT
26062 // slightly revisited to rely on looping instead of recursion
26064 function FFTM (x, y) {
26069 FFTM.prototype.makeRBT = function makeRBT (N) {
26070 var t = new Array(N);
26071 var l = BN.prototype._countBits(N) -
1;
26072 for (var i =
0; i < N; i++) {
26073 t[i] = this.revBin(i, l, N);
26079 // Returns binary-reversed representation of `x`
26080 FFTM.prototype.revBin = function revBin (x, l, N) {
26081 if (x ===
0 || x === N -
1) return x;
26084 for (var i =
0; i < l; i++) {
26085 rb |= (x &
1) << (l - i -
1);
26092 // Performs "tweedling" phase, therefore 'emulating'
26093 // behaviour of the recursive algorithm
26094 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
26095 for (var i =
0; i < N; i++) {
26096 rtws[i] = rws[rbt[i]];
26097 itws[i] = iws[rbt[i]];
26101 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
26102 this.permute(rbt, rws, iws, rtws, itws, N);
26104 for (var s =
1; s < N; s <<=
1) {
26107 var rtwdf = Math.cos(
2 * Math.PI / l);
26108 var itwdf = Math.sin(
2 * Math.PI / l);
26110 for (var p =
0; p < N; p += l) {
26111 var rtwdf_ = rtwdf;
26112 var itwdf_ = itwdf;
26114 for (var j =
0; j < s; j++) {
26115 var re = rtws[p + j];
26116 var ie = itws[p + j];
26118 var ro = rtws[p + j + s];
26119 var io = itws[p + j + s];
26121 var rx = rtwdf_ * ro - itwdf_ * io;
26123 io = rtwdf_ * io + itwdf_ * ro;
26126 rtws[p + j] = re + ro;
26127 itws[p + j] = ie + io;
26129 rtws[p + j + s] = re - ro;
26130 itws[p + j + s] = ie - io;
26132 /* jshint maxdepth : false */
26134 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
26136 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
26144 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
26145 var N = Math.max(m, n) |
1;
26148 for (N = N /
2 |
0; N; N = N
>>> 1) {
26152 return
1 << i +
1 + odd;
26155 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
26156 if (N <=
1) return;
26158 for (var i =
0; i < N /
2; i++) {
26161 rws[i] = rws[N - i -
1];
26162 rws[N - i -
1] = t;
26166 iws[i] = -iws[N - i -
1];
26167 iws[N - i -
1] = -t;
26171 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
26173 for (var i =
0; i < N /
2; i++) {
26174 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
26175 Math.round(ws[
2 * i] / N) +
26178 ws[i] = w &
0x3ffffff;
26180 if (w <
0x4000000) {
26183 carry = w /
0x4000000 |
0;
26190 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
26192 for (var i =
0; i < len; i++) {
26193 carry = carry + (ws[i] |
0);
26195 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
26196 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
26200 for (i =
2 * len; i < N; ++i) {
26204 assert(carry ===
0);
26205 assert((carry & ~
0x1fff) ===
0);
26208 FFTM.prototype.stub = function stub (N) {
26209 var ph = new Array(N);
26210 for (var i =
0; i < N; i++) {
26217 FFTM.prototype.mulp = function mulp (x, y, out) {
26218 var N =
2 * this.guessLen13b(x.length, y.length);
26220 var rbt = this.makeRBT(N);
26222 var _ = this.stub(N);
26224 var rws = new Array(N);
26225 var rwst = new Array(N);
26226 var iwst = new Array(N);
26228 var nrws = new Array(N);
26229 var nrwst = new Array(N);
26230 var niwst = new Array(N);
26232 var rmws = out.words;
26235 this.convert13b(x.words, x.length, rws, N);
26236 this.convert13b(y.words, y.length, nrws, N);
26238 this.transform(rws, _, rwst, iwst, N, rbt);
26239 this.transform(nrws, _, nrwst, niwst, N, rbt);
26241 for (var i =
0; i < N; i++) {
26242 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
26243 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
26247 this.conjugate(rwst, iwst, N);
26248 this.transform(rwst, iwst, rmws, _, N, rbt);
26249 this.conjugate(rmws, _, N);
26250 this.normalize13b(rmws, N);
26252 out.negative = x.negative ^ y.negative;
26253 out.length = x.length + y.length;
26254 return out.strip();
26257 // Multiply `this` by `num`
26258 BN.prototype.mul = function mul (num) {
26259 var out = new BN(null);
26260 out.words = new Array(this.length + num.length);
26261 return this.mulTo(num, out);
26264 // Multiply employing FFT
26265 BN.prototype.mulf = function mulf (num) {
26266 var out = new BN(null);
26267 out.words = new Array(this.length + num.length);
26268 return jumboMulTo(this, num, out);
26271 // In-place Multiplication
26272 BN.prototype.imul = function imul (num) {
26273 return this.clone().mulTo(num, this);
26276 BN.prototype.imuln = function imuln (num) {
26277 assert(typeof num === 'number');
26278 assert(num <
0x4000000);
26282 for (var i =
0; i < this.length; i++) {
26283 var w = (this.words[i] |
0) * num;
26284 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
26286 carry += (w /
0x4000000) |
0;
26287 // NOTE: lo is
27bit maximum
26288 carry += lo
>>> 26;
26289 this.words[i] = lo &
0x3ffffff;
26293 this.words[i] = carry;
26300 BN.prototype.muln = function muln (num) {
26301 return this.clone().imuln(num);
26305 BN.prototype.sqr = function sqr () {
26306 return this.mul(this);
26309 // `this` * `this` in-place
26310 BN.prototype.isqr = function isqr () {
26311 return this.imul(this.clone());
26314 // Math.pow(`this`, `num`)
26315 BN.prototype.pow = function pow (num) {
26316 var w = toBitArray(num);
26317 if (w.length ===
0) return new BN(
1);
26319 // Skip leading zeroes
26321 for (var i =
0; i < w.length; i++, res = res.sqr()) {
26322 if (w[i] !==
0) break;
26325 if (++i < w.length) {
26326 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
26327 if (w[i] ===
0) continue;
26336 // Shift-left in-place
26337 BN.prototype.iushln = function iushln (bits) {
26338 assert(typeof bits === 'number' && bits
>=
0);
26340 var s = (bits - r) /
26;
26341 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
26347 for (i =
0; i < this.length; i++) {
26348 var newCarry = this.words[i] & carryMask;
26349 var c = ((this.words[i] |
0) - newCarry) << r;
26350 this.words[i] = c | carry;
26351 carry = newCarry
>>> (
26 - r);
26355 this.words[i] = carry;
26361 for (i = this.length -
1; i
>=
0; i--) {
26362 this.words[i + s] = this.words[i];
26365 for (i =
0; i < s; i++) {
26372 return this.strip();
26375 BN.prototype.ishln = function ishln (bits) {
26376 // TODO(indutny): implement me
26377 assert(this.negative ===
0);
26378 return this.iushln(bits);
26381 // Shift-right in-place
26382 // NOTE: `hint` is a lowest bit before trailing zeroes
26383 // NOTE: if `extended` is present - it will be filled with destroyed bits
26384 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
26385 assert(typeof bits === 'number' && bits
>=
0);
26388 h = (hint - (hint %
26)) /
26;
26394 var s = Math.min((bits - r) /
26, this.length);
26395 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26396 var maskedWords = extended;
26399 h = Math.max(
0, h);
26401 // Extended mode, copy masked part
26403 for (var i =
0; i < s; i++) {
26404 maskedWords.words[i] = this.words[i];
26406 maskedWords.length = s;
26410 // No-op, we should not move anything at all
26411 } else if (this.length
> s) {
26413 for (i =
0; i < this.length; i++) {
26414 this.words[i] = this.words[i + s];
26422 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
26423 var word = this.words[i] |
0;
26424 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
26425 carry = word & mask;
26428 // Push carried bits as a mask
26429 if (maskedWords && carry !==
0) {
26430 maskedWords.words[maskedWords.length++] = carry;
26433 if (this.length ===
0) {
26438 return this.strip();
26441 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
26442 // TODO(indutny): implement me
26443 assert(this.negative ===
0);
26444 return this.iushrn(bits, hint, extended);
26448 BN.prototype.shln = function shln (bits) {
26449 return this.clone().ishln(bits);
26452 BN.prototype.ushln = function ushln (bits) {
26453 return this.clone().iushln(bits);
26457 BN.prototype.shrn = function shrn (bits) {
26458 return this.clone().ishrn(bits);
26461 BN.prototype.ushrn = function ushrn (bits) {
26462 return this.clone().iushrn(bits);
26465 // Test if n bit is set
26466 BN.prototype.testn = function testn (bit) {
26467 assert(typeof bit === 'number' && bit
>=
0);
26469 var s = (bit - r) /
26;
26472 // Fast case: bit is much higher than all existing words
26473 if (this.length <= s) return false;
26475 // Check bit and return
26476 var w = this.words[s];
26481 // Return only lowers bits of number (in-place)
26482 BN.prototype.imaskn = function imaskn (bits) {
26483 assert(typeof bits === 'number' && bits
>=
0);
26485 var s = (bits - r) /
26;
26487 assert(this.negative ===
0, 'imaskn works only with positive numbers');
26489 if (this.length <= s) {
26496 this.length = Math.min(s, this.length);
26499 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26500 this.words[this.length -
1] &= mask;
26503 return this.strip();
26506 // Return only lowers bits of number
26507 BN.prototype.maskn = function maskn (bits) {
26508 return this.clone().imaskn(bits);
26511 // Add plain number `num` to `this`
26512 BN.prototype.iaddn = function iaddn (num) {
26513 assert(typeof num === 'number');
26514 assert(num <
0x4000000);
26515 if (num <
0) return this.isubn(-num);
26517 // Possible sign change
26518 if (this.negative !==
0) {
26519 if (this.length ===
1 && (this.words[
0] |
0) < num) {
26520 this.words[
0] = num - (this.words[
0] |
0);
26531 // Add without checks
26532 return this._iaddn(num);
26535 BN.prototype._iaddn = function _iaddn (num) {
26536 this.words[
0] += num;
26539 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
26540 this.words[i] -=
0x4000000;
26541 if (i === this.length -
1) {
26542 this.words[i +
1] =
1;
26544 this.words[i +
1]++;
26547 this.length = Math.max(this.length, i +
1);
26552 // Subtract plain number `num` from `this`
26553 BN.prototype.isubn = function isubn (num) {
26554 assert(typeof num === 'number');
26555 assert(num <
0x4000000);
26556 if (num <
0) return this.iaddn(-num);
26558 if (this.negative !==
0) {
26565 this.words[
0] -= num;
26567 if (this.length ===
1 && this.words[
0] <
0) {
26568 this.words[
0] = -this.words[
0];
26572 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
26573 this.words[i] +=
0x4000000;
26574 this.words[i +
1] -=
1;
26578 return this.strip();
26581 BN.prototype.addn = function addn (num) {
26582 return this.clone().iaddn(num);
26585 BN.prototype.subn = function subn (num) {
26586 return this.clone().isubn(num);
26589 BN.prototype.iabs = function iabs () {
26595 BN.prototype.abs = function abs () {
26596 return this.clone().iabs();
26599 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
26600 var len = num.length + shift;
26607 for (i =
0; i < num.length; i++) {
26608 w = (this.words[i + shift] |
0) + carry;
26609 var right = (num.words[i] |
0) * mul;
26610 w -= right &
0x3ffffff;
26611 carry = (w
>> 26) - ((right /
0x4000000) |
0);
26612 this.words[i + shift] = w &
0x3ffffff;
26614 for (; i < this.length - shift; i++) {
26615 w = (this.words[i + shift] |
0) + carry;
26617 this.words[i + shift] = w &
0x3ffffff;
26620 if (carry ===
0) return this.strip();
26622 // Subtraction overflow
26623 assert(carry === -
1);
26625 for (i =
0; i < this.length; i++) {
26626 w = -(this.words[i] |
0) + carry;
26628 this.words[i] = w &
0x3ffffff;
26632 return this.strip();
26635 BN.prototype._wordDiv = function _wordDiv (num, mode) {
26636 var shift = this.length - num.length;
26638 var a = this.clone();
26642 var bhi = b.words[b.length -
1] |
0;
26643 var bhiBits = this._countBits(bhi);
26644 shift =
26 - bhiBits;
26646 b = b.ushln(shift);
26648 bhi = b.words[b.length -
1] |
0;
26651 // Initialize quotient
26652 var m = a.length - b.length;
26655 if (mode !== 'mod') {
26658 q.words = new Array(q.length);
26659 for (var i =
0; i < q.length; i++) {
26664 var diff = a.clone()._ishlnsubmul(b,
1, m);
26665 if (diff.negative ===
0) {
26672 for (var j = m -
1; j
>=
0; j--) {
26673 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
26674 (a.words[b.length + j -
1] |
0);
26676 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
26678 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
26680 a._ishlnsubmul(b, qj, j);
26681 while (a.negative !==
0) {
26684 a._ishlnsubmul(b,
1, j);
26699 if (mode !== 'div' && shift !==
0) {
26709 // NOTE:
1) `mode` can be set to `mod` to request mod only,
26710 // to `div` to request div only, or be absent to
26711 // request both div & mod
26712 //
2) `positive` is true if unsigned mod is requested
26713 BN.prototype.divmod = function divmod (num, mode, positive) {
26714 assert(!num.isZero());
26716 if (this.isZero()) {
26724 if (this.negative !==
0 && num.negative ===
0) {
26725 res = this.neg().divmod(num, mode);
26727 if (mode !== 'mod') {
26728 div = res.div.neg();
26731 if (mode !== 'div') {
26732 mod = res.mod.neg();
26733 if (positive && mod.negative !==
0) {
26744 if (this.negative ===
0 && num.negative !==
0) {
26745 res = this.divmod(num.neg(), mode);
26747 if (mode !== 'mod') {
26748 div = res.div.neg();
26757 if ((this.negative & num.negative) !==
0) {
26758 res = this.neg().divmod(num.neg(), mode);
26760 if (mode !== 'div') {
26761 mod = res.mod.neg();
26762 if (positive && mod.negative !==
0) {
26773 // Both numbers are positive at this point
26775 // Strip both numbers to approximate shift value
26776 if (num.length
> this.length || this.cmp(num) <
0) {
26783 // Very short reduction
26784 if (num.length ===
1) {
26785 if (mode === 'div') {
26787 div: this.divn(num.words[
0]),
26792 if (mode === 'mod') {
26795 mod: new BN(this.modn(num.words[
0]))
26800 div: this.divn(num.words[
0]),
26801 mod: new BN(this.modn(num.words[
0]))
26805 return this._wordDiv(num, mode);
26808 // Find `this` / `num`
26809 BN.prototype.div = function div (num) {
26810 return this.divmod(num, 'div', false).div;
26813 // Find `this` % `num`
26814 BN.prototype.mod = function mod (num) {
26815 return this.divmod(num, 'mod', false).mod;
26818 BN.prototype.umod = function umod (num) {
26819 return this.divmod(num, 'mod', true).mod;
26822 // Find Round(`this` / `num`)
26823 BN.prototype.divRound = function divRound (num) {
26824 var dm = this.divmod(num);
26826 // Fast case - exact division
26827 if (dm.mod.isZero()) return dm.div;
26829 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
26831 var half = num.ushrn(
1);
26832 var r2 = num.andln(
1);
26833 var cmp = mod.cmp(half);
26836 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
26839 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
26842 BN.prototype.modn = function modn (num) {
26843 assert(num <=
0x3ffffff);
26844 var p = (
1 <<
26) % num;
26847 for (var i = this.length -
1; i
>=
0; i--) {
26848 acc = (p * acc + (this.words[i] |
0)) % num;
26854 // In-place division by number
26855 BN.prototype.idivn = function idivn (num) {
26856 assert(num <=
0x3ffffff);
26859 for (var i = this.length -
1; i
>=
0; i--) {
26860 var w = (this.words[i] |
0) + carry *
0x4000000;
26861 this.words[i] = (w / num) |
0;
26865 return this.strip();
26868 BN.prototype.divn = function divn (num) {
26869 return this.clone().idivn(num);
26872 BN.prototype.egcd = function egcd (p) {
26873 assert(p.negative ===
0);
26874 assert(!p.isZero());
26879 if (x.negative !==
0) {
26885 // A * x + B * y = x
26889 // C * x + D * y = y
26895 while (x.isEven() && y.isEven()) {
26901 var yp = y.clone();
26902 var xp = x.clone();
26904 while (!x.isZero()) {
26905 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26909 if (A.isOdd() || B.isOdd()) {
26919 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26923 if (C.isOdd() || D.isOdd()) {
26933 if (x.cmp(y)
>=
0) {
26951 // This is reduced incarnation of the binary EEA
26952 // above, designated to invert members of the
26953 // _prime_ fields F(p) at a maximal speed
26954 BN.prototype._invmp = function _invmp (p) {
26955 assert(p.negative ===
0);
26956 assert(!p.isZero());
26961 if (a.negative !==
0) {
26967 var x1 = new BN(
1);
26968 var x2 = new BN(
0);
26970 var delta = b.clone();
26972 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
26973 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26985 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26997 if (a.cmp(b)
>=
0) {
27007 if (a.cmpn(
1) ===
0) {
27013 if (res.cmpn(
0) <
0) {
27020 BN.prototype.gcd = function gcd (num) {
27021 if (this.isZero()) return num.abs();
27022 if (num.isZero()) return this.abs();
27024 var a = this.clone();
27025 var b = num.clone();
27029 // Remove common factor of two
27030 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
27036 while (a.isEven()) {
27039 while (b.isEven()) {
27045 // Swap `a` and `b` to make `a` always bigger than `b`
27049 } else if (r ===
0 || b.cmpn(
1) ===
0) {
27056 return b.iushln(shift);
27059 // Invert number in the field F(num)
27060 BN.prototype.invm = function invm (num) {
27061 return this.egcd(num).a.umod(num);
27064 BN.prototype.isEven = function isEven () {
27065 return (this.words[
0] &
1) ===
0;
27068 BN.prototype.isOdd = function isOdd () {
27069 return (this.words[
0] &
1) ===
1;
27072 // And first word and num
27073 BN.prototype.andln = function andln (num) {
27074 return this.words[
0] & num;
27077 // Increment at the bit position in-line
27078 BN.prototype.bincn = function bincn (bit) {
27079 assert(typeof bit === 'number');
27081 var s = (bit - r) /
26;
27084 // Fast case: bit is much higher than all existing words
27085 if (this.length <= s) {
27086 this._expand(s +
1);
27087 this.words[s] |= q;
27091 // Add bit and propagate, if needed
27093 for (var i = s; carry !==
0 && i < this.length; i++) {
27094 var w = this.words[i] |
0;
27101 this.words[i] = carry;
27107 BN.prototype.isZero = function isZero () {
27108 return this.length ===
1 && this.words[
0] ===
0;
27111 BN.prototype.cmpn = function cmpn (num) {
27112 var negative = num <
0;
27114 if (this.negative !==
0 && !negative) return -
1;
27115 if (this.negative ===
0 && negative) return
1;
27120 if (this.length
> 1) {
27127 assert(num <=
0x3ffffff, 'Number is too big');
27129 var w = this.words[
0] |
0;
27130 res = w === num ?
0 : w < num ? -
1 :
1;
27132 if (this.negative !==
0) return -res |
0;
27136 // Compare two numbers and return:
27137 //
1 - if `this`
> `num`
27138 //
0 - if `this` == `num`
27139 // -
1 - if `this` < `num`
27140 BN.prototype.cmp = function cmp (num) {
27141 if (this.negative !==
0 && num.negative ===
0) return -
1;
27142 if (this.negative ===
0 && num.negative !==
0) return
1;
27144 var res = this.ucmp(num);
27145 if (this.negative !==
0) return -res |
0;
27149 // Unsigned comparison
27150 BN.prototype.ucmp = function ucmp (num) {
27151 // At this point both numbers have the same sign
27152 if (this.length
> num.length) return
1;
27153 if (this.length < num.length) return -
1;
27156 for (var i = this.length -
1; i
>=
0; i--) {
27157 var a = this.words[i] |
0;
27158 var b = num.words[i] |
0;
27160 if (a === b) continue;
27163 } else if (a
> b) {
27171 BN.prototype.gtn = function gtn (num) {
27172 return this.cmpn(num) ===
1;
27175 BN.prototype.gt = function gt (num) {
27176 return this.cmp(num) ===
1;
27179 BN.prototype.gten = function gten (num) {
27180 return this.cmpn(num)
>=
0;
27183 BN.prototype.gte = function gte (num) {
27184 return this.cmp(num)
>=
0;
27187 BN.prototype.ltn = function ltn (num) {
27188 return this.cmpn(num) === -
1;
27191 BN.prototype.lt = function lt (num) {
27192 return this.cmp(num) === -
1;
27195 BN.prototype.lten = function lten (num) {
27196 return this.cmpn(num) <=
0;
27199 BN.prototype.lte = function lte (num) {
27200 return this.cmp(num) <=
0;
27203 BN.prototype.eqn = function eqn (num) {
27204 return this.cmpn(num) ===
0;
27207 BN.prototype.eq = function eq (num) {
27208 return this.cmp(num) ===
0;
27212 // A reduce context, could be using montgomery or something better, depending
27213 // on the `m` itself.
27215 BN.red = function red (num) {
27216 return new Red(num);
27219 BN.prototype.toRed = function toRed (ctx) {
27220 assert(!this.red, 'Already a number in reduction context');
27221 assert(this.negative ===
0, 'red works only with positives');
27222 return ctx.convertTo(this)._forceRed(ctx);
27225 BN.prototype.fromRed = function fromRed () {
27226 assert(this.red, 'fromRed works only with numbers in reduction context');
27227 return this.red.convertFrom(this);
27230 BN.prototype._forceRed = function _forceRed (ctx) {
27235 BN.prototype.forceRed = function forceRed (ctx) {
27236 assert(!this.red, 'Already a number in reduction context');
27237 return this._forceRed(ctx);
27240 BN.prototype.redAdd = function redAdd (num) {
27241 assert(this.red, 'redAdd works only with red numbers');
27242 return this.red.add(this, num);
27245 BN.prototype.redIAdd = function redIAdd (num) {
27246 assert(this.red, 'redIAdd works only with red numbers');
27247 return this.red.iadd(this, num);
27250 BN.prototype.redSub = function redSub (num) {
27251 assert(this.red, 'redSub works only with red numbers');
27252 return this.red.sub(this, num);
27255 BN.prototype.redISub = function redISub (num) {
27256 assert(this.red, 'redISub works only with red numbers');
27257 return this.red.isub(this, num);
27260 BN.prototype.redShl = function redShl (num) {
27261 assert(this.red, 'redShl works only with red numbers');
27262 return this.red.shl(this, num);
27265 BN.prototype.redMul = function redMul (num) {
27266 assert(this.red, 'redMul works only with red numbers');
27267 this.red._verify2(this, num);
27268 return this.red.mul(this, num);
27271 BN.prototype.redIMul = function redIMul (num) {
27272 assert(this.red, 'redMul works only with red numbers');
27273 this.red._verify2(this, num);
27274 return this.red.imul(this, num);
27277 BN.prototype.redSqr = function redSqr () {
27278 assert(this.red, 'redSqr works only with red numbers');
27279 this.red._verify1(this);
27280 return this.red.sqr(this);
27283 BN.prototype.redISqr = function redISqr () {
27284 assert(this.red, 'redISqr works only with red numbers');
27285 this.red._verify1(this);
27286 return this.red.isqr(this);
27289 // Square root over p
27290 BN.prototype.redSqrt = function redSqrt () {
27291 assert(this.red, 'redSqrt works only with red numbers');
27292 this.red._verify1(this);
27293 return this.red.sqrt(this);
27296 BN.prototype.redInvm = function redInvm () {
27297 assert(this.red, 'redInvm works only with red numbers');
27298 this.red._verify1(this);
27299 return this.red.invm(this);
27302 // Return negative clone of `this` % `red modulo`
27303 BN.prototype.redNeg = function redNeg () {
27304 assert(this.red, 'redNeg works only with red numbers');
27305 this.red._verify1(this);
27306 return this.red.neg(this);
27309 BN.prototype.redPow = function redPow (num) {
27310 assert(this.red && !num.red, 'redPow(normalNum)');
27311 this.red._verify1(this);
27312 return this.red.pow(this, num);
27315 // Prime numbers with efficient reduction
27323 // Pseudo-Mersenne prime
27324 function MPrime (name, p) {
27327 this.p = new BN(p,
16);
27328 this.n = this.p.bitLength();
27329 this.k = new BN(
1).iushln(this.n).isub(this.p);
27331 this.tmp = this._tmp();
27334 MPrime.prototype._tmp = function _tmp () {
27335 var tmp = new BN(null);
27336 tmp.words = new Array(Math.ceil(this.n /
13));
27340 MPrime.prototype.ireduce = function ireduce (num) {
27341 // Assumes that `num` is less than `P^
2`
27342 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
27347 this.split(r, this.tmp);
27349 r = r.iadd(this.tmp);
27350 rlen = r.bitLength();
27351 } while (rlen
> this.n);
27353 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
27357 } else if (cmp
> 0) {
27366 MPrime.prototype.split = function split (input, out) {
27367 input.iushrn(this.n,
0, out);
27370 MPrime.prototype.imulK = function imulK (num) {
27371 return num.imul(this.k);
27378 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
27380 inherits(K256, MPrime);
27382 K256.prototype.split = function split (input, output) {
27383 //
256 =
9 *
26 +
22
27384 var mask =
0x3fffff;
27386 var outLen = Math.min(input.length,
9);
27387 for (var i =
0; i < outLen; i++) {
27388 output.words[i] = input.words[i];
27390 output.length = outLen;
27392 if (input.length <=
9) {
27393 input.words[
0] =
0;
27398 // Shift by
9 limbs
27399 var prev = input.words[
9];
27400 output.words[output.length++] = prev & mask;
27402 for (i =
10; i < input.length; i++) {
27403 var next = input.words[i] |
0;
27404 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
27408 input.words[i -
10] = prev;
27409 if (prev ===
0 && input.length
> 10) {
27410 input.length -=
10;
27416 K256.prototype.imulK = function imulK (num) {
27417 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
27418 num.words[num.length] =
0;
27419 num.words[num.length +
1] =
0;
27422 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
27424 for (var i =
0; i < num.length; i++) {
27425 var w = num.words[i] |
0;
27427 num.words[i] = lo &
0x3ffffff;
27428 lo = w *
0x40 + ((lo /
0x4000000) |
0);
27431 // Fast length reduction
27432 if (num.words[num.length -
1] ===
0) {
27434 if (num.words[num.length -
1] ===
0) {
27445 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
27447 inherits(P224, MPrime);
27453 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
27455 inherits(P192, MPrime);
27457 function P25519 () {
27462 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
27464 inherits(P25519, MPrime);
27466 P25519.prototype.imulK = function imulK (num) {
27469 for (var i =
0; i < num.length; i++) {
27470 var hi = (num.words[i] |
0) *
0x13 + carry;
27471 var lo = hi &
0x3ffffff;
27478 num.words[num.length++] = carry;
27483 // Exported mostly for testing purposes, use plain name instead
27484 BN._prime = function prime (name) {
27485 // Cached version of prime
27486 if (primes[name]) return primes[name];
27489 if (name === 'k256') {
27490 prime = new K256();
27491 } else if (name === 'p224') {
27492 prime = new P224();
27493 } else if (name === 'p192') {
27494 prime = new P192();
27495 } else if (name === 'p25519') {
27496 prime = new P25519();
27498 throw new Error('Unknown prime ' + name);
27500 primes[name] = prime;
27506 // Base reduction engine
27509 if (typeof m === 'string') {
27510 var prime = BN._prime(m);
27512 this.prime = prime;
27514 assert(m.gtn(
1), 'modulus must be greater than
1');
27520 Red.prototype._verify1 = function _verify1 (a) {
27521 assert(a.negative ===
0, 'red works only with positives');
27522 assert(a.red, 'red works only with red numbers');
27525 Red.prototype._verify2 = function _verify2 (a, b) {
27526 assert((a.negative | b.negative) ===
0, 'red works only with positives');
27527 assert(a.red && a.red === b.red,
27528 'red works only with red numbers');
27531 Red.prototype.imod = function imod (a) {
27532 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
27533 return a.umod(this.m)._forceRed(this);
27536 Red.prototype.neg = function neg (a) {
27541 return this.m.sub(a)._forceRed(this);
27544 Red.prototype.add = function add (a, b) {
27545 this._verify2(a, b);
27547 var res = a.add(b);
27548 if (res.cmp(this.m)
>=
0) {
27551 return res._forceRed(this);
27554 Red.prototype.iadd = function iadd (a, b) {
27555 this._verify2(a, b);
27557 var res = a.iadd(b);
27558 if (res.cmp(this.m)
>=
0) {
27564 Red.prototype.sub = function sub (a, b) {
27565 this._verify2(a, b);
27567 var res = a.sub(b);
27568 if (res.cmpn(
0) <
0) {
27571 return res._forceRed(this);
27574 Red.prototype.isub = function isub (a, b) {
27575 this._verify2(a, b);
27577 var res = a.isub(b);
27578 if (res.cmpn(
0) <
0) {
27584 Red.prototype.shl = function shl (a, num) {
27586 return this.imod(a.ushln(num));
27589 Red.prototype.imul = function imul (a, b) {
27590 this._verify2(a, b);
27591 return this.imod(a.imul(b));
27594 Red.prototype.mul = function mul (a, b) {
27595 this._verify2(a, b);
27596 return this.imod(a.mul(b));
27599 Red.prototype.isqr = function isqr (a) {
27600 return this.imul(a, a.clone());
27603 Red.prototype.sqr = function sqr (a) {
27604 return this.mul(a, a);
27607 Red.prototype.sqrt = function sqrt (a) {
27608 if (a.isZero()) return a.clone();
27610 var mod3 = this.m.andln(
3);
27611 assert(mod3 %
2 ===
1);
27615 var pow = this.m.add(new BN(
1)).iushrn(
2);
27616 return this.pow(a, pow);
27619 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
27621 // Find Q and S, that Q *
2 ^ S = (P -
1)
27622 var q = this.m.subn(
1);
27624 while (!q.isZero() && q.andln(
1) ===
0) {
27628 assert(!q.isZero());
27630 var one = new BN(
1).toRed(this);
27631 var nOne = one.redNeg();
27633 // Find quadratic non-residue
27634 // NOTE: Max is such because of generalized Riemann hypothesis.
27635 var lpow = this.m.subn(
1).iushrn(
1);
27636 var z = this.m.bitLength();
27637 z = new BN(
2 * z * z).toRed(this);
27639 while (this.pow(z, lpow).cmp(nOne) !==
0) {
27643 var c = this.pow(z, q);
27644 var r = this.pow(a, q.addn(
1).iushrn(
1));
27645 var t = this.pow(a, q);
27647 while (t.cmp(one) !==
0) {
27649 for (var i =
0; tmp.cmp(one) !==
0; i++) {
27650 tmp = tmp.redSqr();
27653 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
27664 Red.prototype.invm = function invm (a) {
27665 var inv = a._invmp(this.m);
27666 if (inv.negative !==
0) {
27668 return this.imod(inv).redNeg();
27670 return this.imod(inv);
27674 Red.prototype.pow = function pow (a, num) {
27675 if (num.isZero()) return new BN(
1);
27676 if (num.cmpn(
1) ===
0) return a.clone();
27678 var windowSize =
4;
27679 var wnd = new Array(
1 << windowSize);
27680 wnd[
0] = new BN(
1).toRed(this);
27682 for (var i =
2; i < wnd.length; i++) {
27683 wnd[i] = this.mul(wnd[i -
1], a);
27688 var currentLen =
0;
27689 var start = num.bitLength() %
26;
27694 for (i = num.length -
1; i
>=
0; i--) {
27695 var word = num.words[i];
27696 for (var j = start -
1; j
>=
0; j--) {
27697 var bit = (word
>> j) &
1;
27698 if (res !== wnd[
0]) {
27699 res = this.sqr(res);
27702 if (bit ===
0 && current ===
0) {
27710 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
27712 res = this.mul(res, wnd[current]);
27722 Red.prototype.convertTo = function convertTo (num) {
27723 var r = num.umod(this.m);
27725 return r === num ? r.clone() : r;
27728 Red.prototype.convertFrom = function convertFrom (num) {
27729 var res = num.clone();
27735 // Montgomery method engine
27738 BN.mont = function mont (num) {
27739 return new Mont(num);
27742 function Mont (m) {
27745 this.shift = this.m.bitLength();
27746 if (this.shift %
26 !==
0) {
27747 this.shift +=
26 - (this.shift %
26);
27750 this.r = new BN(
1).iushln(this.shift);
27751 this.r2 = this.imod(this.r.sqr());
27752 this.rinv = this.r._invmp(this.m);
27754 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
27755 this.minv = this.minv.umod(this.r);
27756 this.minv = this.r.sub(this.minv);
27758 inherits(Mont, Red);
27760 Mont.prototype.convertTo = function convertTo (num) {
27761 return this.imod(num.ushln(this.shift));
27764 Mont.prototype.convertFrom = function convertFrom (num) {
27765 var r = this.imod(num.mul(this.rinv));
27770 Mont.prototype.imul = function imul (a, b) {
27771 if (a.isZero() || b.isZero()) {
27778 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27779 var u = t.isub(c).iushrn(this.shift);
27782 if (u.cmp(this.m)
>=
0) {
27783 res = u.isub(this.m);
27784 } else if (u.cmpn(
0) <
0) {
27785 res = u.iadd(this.m);
27788 return res._forceRed(this);
27791 Mont.prototype.mul = function mul (a, b) {
27792 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
27795 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27796 var u = t.isub(c).iushrn(this.shift);
27798 if (u.cmp(this.m)
>=
0) {
27799 res = u.isub(this.m);
27800 } else if (u.cmpn(
0) <
0) {
27801 res = u.iadd(this.m);
27804 return res._forceRed(this);
27807 Mont.prototype.invm = function invm (a) {
27808 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
27809 var res = this.imod(a._invmp(this.m).mul(this.r2));
27810 return res._forceRed(this);
27812 })(typeof module === 'undefined' || module, this);
27814 },{}],
34:[function(require,module,exports){
27817 module.exports = function rand(len) {
27819 r = new Rand(null);
27821 return r.generate(len);
27824 function Rand(rand) {
27827 module.exports.Rand = Rand;
27829 Rand.prototype.generate = function generate(len) {
27830 return this._rand(len);
27833 if (typeof self === 'object') {
27834 if (self.crypto && self.crypto.getRandomValues) {
27836 Rand.prototype._rand = function _rand(n) {
27837 var arr = new Uint8Array(n);
27838 self.crypto.getRandomValues(arr);
27841 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
27843 Rand.prototype._rand = function _rand(n) {
27844 var arr = new Uint8Array(n);
27845 self.msCrypto.getRandomValues(arr);
27850 Rand.prototype._rand = function() {
27851 throw new Error('Not implemented yet');
27855 // Node.js or Web worker with no crypto support
27857 var crypto = require('crypto');
27859 Rand.prototype._rand = function _rand(n) {
27860 return crypto.randomBytes(n);
27863 // Emulate crypto API using randy
27864 Rand.prototype._rand = function _rand(n) {
27865 var res = new Uint8Array(n);
27866 for (var i =
0; i < res.length; i++)
27867 res[i] = this.rand.getByte();
27873 },{"crypto":
3}],
35:[function(require,module,exports){
27874 (function (Buffer){
27875 var Transform = require('stream').Transform
27876 var inherits = require('inherits')
27877 var StringDecoder = require('string_decoder').StringDecoder
27878 module.exports = CipherBase
27879 inherits(CipherBase, Transform)
27880 function CipherBase (hashMode) {
27881 Transform.call(this)
27882 this.hashMode = typeof hashMode === 'string'
27883 if (this.hashMode) {
27884 this[hashMode] = this._finalOrDigest
27886 this.final = this._finalOrDigest
27888 this._decoder = null
27889 this._encoding = null
27891 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
27892 if (typeof data === 'string') {
27893 data = new Buffer(data, inputEnc)
27895 var outData = this._update(data)
27896 if (this.hashMode) {
27900 outData = this._toString(outData, outputEnc)
27905 CipherBase.prototype.setAutoPadding = function () {}
27907 CipherBase.prototype.getAuthTag = function () {
27908 throw new Error('trying to get auth tag in unsupported state')
27911 CipherBase.prototype.setAuthTag = function () {
27912 throw new Error('trying to set auth tag in unsupported state')
27915 CipherBase.prototype.setAAD = function () {
27916 throw new Error('trying to set aad in unsupported state')
27919 CipherBase.prototype._transform = function (data, _, next) {
27922 if (this.hashMode) {
27925 this.push(this._update(data))
27933 CipherBase.prototype._flush = function (done) {
27936 this.push(this._final())
27943 CipherBase.prototype._finalOrDigest = function (outputEnc) {
27944 var outData = this._final() || new Buffer('')
27946 outData = this._toString(outData, outputEnc, true)
27951 CipherBase.prototype._toString = function (value, enc, fin) {
27952 if (!this._decoder) {
27953 this._decoder = new StringDecoder(enc)
27954 this._encoding = enc
27956 if (this._encoding !== enc) {
27957 throw new Error('can\'t switch encodings')
27959 var out = this._decoder.write(value)
27961 out += this._decoder.end()
27966 }).call(this,require("buffer").Buffer)
27967 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
27968 (function (Buffer){
27970 var inherits = require('inherits')
27971 var md5 = require('./md5')
27972 var rmd160 = require('ripemd160')
27973 var sha = require('sha.js')
27975 var Base = require('cipher-base')
27977 function HashNoConstructor(hash) {
27978 Base.call(this, 'digest')
27984 inherits(HashNoConstructor, Base)
27986 HashNoConstructor.prototype._update = function (data) {
27987 this.buffers.push(data)
27990 HashNoConstructor.prototype._final = function () {
27991 var buf = Buffer.concat(this.buffers)
27992 var r = this._hash(buf)
27993 this.buffers = null
27998 function Hash(hash) {
27999 Base.call(this, 'digest')
28004 inherits(Hash, Base)
28006 Hash.prototype._update = function (data) {
28007 this._hash.update(data)
28010 Hash.prototype._final = function () {
28011 return this._hash.digest()
28014 module.exports = function createHash (alg) {
28015 alg = alg.toLowerCase()
28016 if ('md5' === alg) return new HashNoConstructor(md5)
28017 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
28019 return new Hash(sha(alg))
28022 }).call(this,require("buffer").Buffer)
28023 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
28024 (function (Buffer){
28027 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
28030 function toArray(buf, bigEndian) {
28031 if ((buf.length % intSize) !==
0) {
28032 var len = buf.length + (intSize - (buf.length % intSize));
28033 buf = Buffer.concat([buf, zeroBuffer], len);
28037 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
28038 for (var i =
0; i < buf.length; i += intSize) {
28039 arr.push(fn.call(buf, i));
28044 function toBuffer(arr, size, bigEndian) {
28045 var buf = new Buffer(size);
28046 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
28047 for (var i =
0; i < arr.length; i++) {
28048 fn.call(buf, arr[i], i *
4, true);
28053 function hash(buf, fn, hashSize, bigEndian) {
28054 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
28055 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
28056 return toBuffer(arr, hashSize, bigEndian);
28058 exports.hash = hash;
28059 }).call(this,require("buffer").Buffer)
28060 },{"buffer":
5}],
38:[function(require,module,exports){
28063 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
28064 * Digest Algorithm, as defined in RFC
1321.
28065 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
28066 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
28067 * Distributed under the BSD License
28068 * See http://pajhome.org.uk/crypt/md5 for more info.
28071 var helpers = require('./helpers');
28074 * Calculate the MD5 of an array of little-endian words, and a bit length
28076 function core_md5(x, len)
28078 /* append padding */
28079 x[len
>> 5] |=
0x80 << ((len) %
32);
28080 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
28082 var a =
1732584193;
28083 var b = -
271733879;
28084 var c = -
1732584194;
28087 for(var i =
0; i < x.length; i +=
16)
28094 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
28095 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
28096 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
28097 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
28098 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
28099 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
28100 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
28101 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
28102 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
28103 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
28104 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
28105 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
28106 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
28107 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
28108 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
28109 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
28111 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
28112 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
28113 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
28114 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
28115 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
28116 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
28117 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
28118 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
28119 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
28120 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
28121 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
28122 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
28123 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
28124 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
28125 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
28126 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
28128 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
28129 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
28130 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
28131 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
28132 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
28133 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
28134 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
28135 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
28136 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
28137 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
28138 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
28139 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
28140 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
28141 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
28142 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
28143 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
28145 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
28146 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
28147 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
28148 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
28149 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
28150 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
28151 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
28152 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
28153 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
28154 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
28155 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
28156 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
28157 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
28158 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
28159 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
28160 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
28162 a = safe_add(a, olda);
28163 b = safe_add(b, oldb);
28164 c = safe_add(c, oldc);
28165 d = safe_add(d, oldd);
28167 return Array(a, b, c, d);
28172 * These functions implement the four basic operations the algorithm uses.
28174 function md5_cmn(q, a, b, x, s, t)
28176 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
28178 function md5_ff(a, b, c, d, x, s, t)
28180 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
28182 function md5_gg(a, b, c, d, x, s, t)
28184 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
28186 function md5_hh(a, b, c, d, x, s, t)
28188 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
28190 function md5_ii(a, b, c, d, x, s, t)
28192 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
28196 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
28197 * to work around bugs in some JS interpreters.
28199 function safe_add(x, y)
28201 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
28202 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
28203 return (msw <<
16) | (lsw &
0xFFFF);
28207 * Bitwise rotate a
32-bit number to the left.
28209 function bit_rol(num, cnt)
28211 return (num << cnt) | (num
>>> (
32 - cnt));
28214 module.exports = function md5(buf) {
28215 return helpers.hash(buf, core_md5,
16);
28217 },{"./helpers":
37}],
39:[function(require,module,exports){
28220 var elliptic = exports;
28222 elliptic.version = require('../package.json').version;
28223 elliptic.utils = require('./elliptic/utils');
28224 elliptic.rand = require('brorand');
28225 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
28226 elliptic.curve = require('./elliptic/curve');
28227 elliptic.curves = require('./elliptic/curves');
28230 elliptic.ec = require('./elliptic/ec');
28231 elliptic.eddsa = require('./elliptic/eddsa');
28233 },{"../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){
28236 var BN = require('bn.js');
28237 var elliptic = require('../../elliptic');
28238 var utils = elliptic.utils;
28239 var getNAF = utils.getNAF;
28240 var getJSF = utils.getJSF;
28241 var assert = utils.assert;
28243 function BaseCurve(type, conf) {
28245 this.p = new BN(conf.p,
16);
28247 // Use Montgomery, when there is no fast reduction for the prime
28248 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
28250 // Useful for many curves
28251 this.zero = new BN(
0).toRed(this.red);
28252 this.one = new BN(
1).toRed(this.red);
28253 this.two = new BN(
2).toRed(this.red);
28255 // Curve configuration, optional
28256 this.n = conf.n && new BN(conf.n,
16);
28257 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
28259 // Temporary arrays
28260 this._wnafT1 = new Array(
4);
28261 this._wnafT2 = new Array(
4);
28262 this._wnafT3 = new Array(
4);
28263 this._wnafT4 = new Array(
4);
28265 // Generalized Greg Maxwell's trick
28266 var adjustCount = this.n && this.p.div(this.n);
28267 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
28270 this._maxwellTrick = true;
28271 this.redN = this.n.toRed(this.red);
28274 module.exports = BaseCurve;
28276 BaseCurve.prototype.point = function point() {
28277 throw new Error('Not implemented');
28280 BaseCurve.prototype.validate = function validate() {
28281 throw new Error('Not implemented');
28284 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
28285 assert(p.precomputed);
28286 var doubles = p._getDoubles();
28288 var naf = getNAF(k,
1);
28289 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
28292 // Translate into more windowed form
28294 for (var j =
0; j < naf.length; j += doubles.step) {
28296 for (var k = j + doubles.step -
1; k
>= j; k--)
28297 nafW = (nafW <<
1) + naf[k];
28301 var a = this.jpoint(null, null, null);
28302 var b = this.jpoint(null, null, null);
28303 for (var i = I; i
> 0; i--) {
28304 for (var j =
0; j < repr.length; j++) {
28305 var nafW = repr[j];
28307 b = b.mixedAdd(doubles.points[j]);
28308 else if (nafW === -i)
28309 b = b.mixedAdd(doubles.points[j].neg());
28316 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
28319 // Precompute window
28320 var nafPoints = p._getNAFPoints(w);
28322 var wnd = nafPoints.points;
28325 var naf = getNAF(k, w);
28327 // Add `this`*(N+
1) for every w-NAF index
28328 var acc = this.jpoint(null, null, null);
28329 for (var i = naf.length -
1; i
>=
0; i--) {
28331 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
28341 if (p.type === 'affine') {
28344 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
28346 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
28350 acc = acc.add(wnd[(z -
1)
>> 1]);
28352 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
28355 return p.type === 'affine' ? acc.toP() : acc;
28358 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
28363 var wndWidth = this._wnafT1;
28364 var wnd = this._wnafT2;
28365 var naf = this._wnafT3;
28369 for (var i =
0; i < len; i++) {
28371 var nafPoints = p._getNAFPoints(defW);
28372 wndWidth[i] = nafPoints.wnd;
28373 wnd[i] = nafPoints.points;
28376 // Comb small window NAFs
28377 for (var i = len -
1; i
>=
1; i -=
2) {
28380 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
28381 naf[a] = getNAF(coeffs[a], wndWidth[a]);
28382 naf[b] = getNAF(coeffs[b], wndWidth[b]);
28383 max = Math.max(naf[a].length, max);
28384 max = Math.max(naf[b].length, max);
28395 // Try to avoid Projective points, if possible
28396 if (points[a].y.cmp(points[b].y) ===
0) {
28397 comb[
1] = points[a].add(points[b]);
28398 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28399 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
28400 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28401 comb[
2] = points[a].add(points[b].neg());
28403 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28404 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28419 var jsf = getJSF(coeffs[a], coeffs[b]);
28420 max = Math.max(jsf[
0].length, max);
28421 naf[a] = new Array(max);
28422 naf[b] = new Array(max);
28423 for (var j =
0; j < max; j++) {
28424 var ja = jsf[
0][j] |
0;
28425 var jb = jsf[
1][j] |
0;
28427 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
28433 var acc = this.jpoint(null, null, null);
28434 var tmp = this._wnafT4;
28435 for (var i = max; i
>=
0; i--) {
28440 for (var j =
0; j < len; j++) {
28441 tmp[j] = naf[j][i] |
0;
28456 for (var j =
0; j < len; j++) {
28462 p = wnd[j][(z -
1)
>> 1];
28464 p = wnd[j][(-z -
1)
>> 1].neg();
28466 if (p.type === 'affine')
28467 acc = acc.mixedAdd(p);
28472 // Zeroify references
28473 for (var i =
0; i < len; i++)
28476 if (jacobianResult)
28482 function BasePoint(curve, type) {
28483 this.curve = curve;
28485 this.precomputed = null;
28487 BaseCurve.BasePoint = BasePoint;
28489 BasePoint.prototype.eq = function eq(/*other*/) {
28490 throw new Error('Not implemented');
28493 BasePoint.prototype.validate = function validate() {
28494 return this.curve.validate(this);
28497 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
28498 bytes = utils.toArray(bytes, enc);
28500 var len = this.p.byteLength();
28502 // uncompressed, hybrid-odd, hybrid-even
28503 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
28504 bytes.length -
1 ===
2 * len) {
28505 if (bytes[
0] ===
0x06)
28506 assert(bytes[bytes.length -
1] %
2 ===
0);
28507 else if (bytes[
0] ===
0x07)
28508 assert(bytes[bytes.length -
1] %
2 ===
1);
28510 var res = this.point(bytes.slice(
1,
1 + len),
28511 bytes.slice(
1 + len,
1 +
2 * len));
28514 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
28515 bytes.length -
1 === len) {
28516 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
28518 throw new Error('Unknown point format');
28521 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
28522 return this.encode(enc, true);
28525 BasePoint.prototype._encode = function _encode(compact) {
28526 var len = this.curve.p.byteLength();
28527 var x = this.getX().toArray('be', len);
28530 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
28532 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
28535 BasePoint.prototype.encode = function encode(enc, compact) {
28536 return utils.encode(this._encode(compact), enc);
28539 BasePoint.prototype.precompute = function precompute(power) {
28540 if (this.precomputed)
28543 var precomputed = {
28548 precomputed.naf = this._getNAFPoints(
8);
28549 precomputed.doubles = this._getDoubles(
4, power);
28550 precomputed.beta = this._getBeta();
28551 this.precomputed = precomputed;
28556 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
28557 if (!this.precomputed)
28560 var doubles = this.precomputed.doubles;
28564 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
28567 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
28568 if (this.precomputed && this.precomputed.doubles)
28569 return this.precomputed.doubles;
28571 var doubles = [ this ];
28573 for (var i =
0; i < power; i += step) {
28574 for (var j =
0; j < step; j++)
28584 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
28585 if (this.precomputed && this.precomputed.naf)
28586 return this.precomputed.naf;
28588 var res = [ this ];
28589 var max = (
1 << wnd) -
1;
28590 var dbl = max ===
1 ? null : this.dbl();
28591 for (var i =
1; i < max; i++)
28592 res[i] = res[i -
1].add(dbl);
28599 BasePoint.prototype._getBeta = function _getBeta() {
28603 BasePoint.prototype.dblp = function dblp(k) {
28605 for (var i =
0; i < k; i++)
28610 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
28613 var curve = require('../curve');
28614 var elliptic = require('../../elliptic');
28615 var BN = require('bn.js');
28616 var inherits = require('inherits');
28617 var Base = curve.base;
28619 var assert = elliptic.utils.assert;
28621 function EdwardsCurve(conf) {
28622 // NOTE: Important as we are creating point in Base.call()
28623 this.twisted = (conf.a |
0) !==
1;
28624 this.mOneA = this.twisted && (conf.a |
0) === -
1;
28625 this.extended = this.mOneA;
28627 Base.call(this, 'edwards', conf);
28629 this.a = new BN(conf.a,
16).umod(this.red.m);
28630 this.a = this.a.toRed(this.red);
28631 this.c = new BN(conf.c,
16).toRed(this.red);
28632 this.c2 = this.c.redSqr();
28633 this.d = new BN(conf.d,
16).toRed(this.red);
28634 this.dd = this.d.redAdd(this.d);
28636 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
28637 this.oneC = (conf.c |
0) ===
1;
28639 inherits(EdwardsCurve, Base);
28640 module.exports = EdwardsCurve;
28642 EdwardsCurve.prototype._mulA = function _mulA(num) {
28644 return num.redNeg();
28646 return this.a.redMul(num);
28649 EdwardsCurve.prototype._mulC = function _mulC(num) {
28653 return this.c.redMul(num);
28656 // Just for compatibility with Short curve
28657 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
28658 return this.point(x, y, z, t);
28661 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
28664 x = x.toRed(this.red);
28666 var x2 = x.redSqr();
28667 var rhs = this.c2.redSub(this.a.redMul(x2));
28668 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
28670 var y2 = rhs.redMul(lhs.redInvm());
28671 var y = y2.redSqrt();
28672 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
28673 throw new Error('invalid point');
28675 var isOdd = y.fromRed().isOdd();
28676 if (odd && !isOdd || !odd && isOdd)
28679 return this.point(x, y);
28682 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
28685 y = y.toRed(this.red);
28687 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
28688 var y2 = y.redSqr();
28689 var lhs = y2.redSub(this.one);
28690 var rhs = y2.redMul(this.d).redAdd(this.one);
28691 var x2 = lhs.redMul(rhs.redInvm());
28693 if (x2.cmp(this.zero) ===
0) {
28695 throw new Error('invalid point');
28697 return this.point(this.zero, y);
28700 var x = x2.redSqrt();
28701 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
28702 throw new Error('invalid point');
28704 if (x.isOdd() !== odd)
28707 return this.point(x, y);
28710 EdwardsCurve.prototype.validate = function validate(point) {
28711 if (point.isInfinity())
28714 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
28717 var x2 = point.x.redSqr();
28718 var y2 = point.y.redSqr();
28719 var lhs = x2.redMul(this.a).redAdd(y2);
28720 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
28722 return lhs.cmp(rhs) ===
0;
28725 function Point(curve, x, y, z, t) {
28726 Base.BasePoint.call(this, curve, 'projective');
28727 if (x === null && y === null && z === null) {
28728 this.x = this.curve.zero;
28729 this.y = this.curve.one;
28730 this.z = this.curve.one;
28731 this.t = this.curve.zero;
28734 this.x = new BN(x,
16);
28735 this.y = new BN(y,
16);
28736 this.z = z ? new BN(z,
16) : this.curve.one;
28737 this.t = t && new BN(t,
16);
28739 this.x = this.x.toRed(this.curve.red);
28741 this.y = this.y.toRed(this.curve.red);
28743 this.z = this.z.toRed(this.curve.red);
28744 if (this.t && !this.t.red)
28745 this.t = this.t.toRed(this.curve.red);
28746 this.zOne = this.z === this.curve.one;
28748 // Use extended coordinates
28749 if (this.curve.extended && !this.t) {
28750 this.t = this.x.redMul(this.y);
28752 this.t = this.t.redMul(this.z.redInvm());
28756 inherits(Point, Base.BasePoint);
28758 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
28759 return Point.fromJSON(this, obj);
28762 EdwardsCurve.prototype.point = function point(x, y, z, t) {
28763 return new Point(this, x, y, z, t);
28766 Point.fromJSON = function fromJSON(curve, obj) {
28767 return new Point(curve, obj[
0], obj[
1], obj[
2]);
28770 Point.prototype.inspect = function inspect() {
28771 if (this.isInfinity())
28772 return '
<EC Point Infinity
>';
28773 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
28774 ' y: ' + this.y.fromRed().toString(
16,
2) +
28775 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
28778 Point.prototype.isInfinity = function isInfinity() {
28779 // XXX This code assumes that zero is always zero in red
28780 return this.x.cmpn(
0) ===
0 &&
28781 this.y.cmp(this.z) ===
0;
28784 Point.prototype._extDbl = function _extDbl() {
28785 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28786 // #doubling-dbl-
2008-hwcd
28790 var a = this.x.redSqr();
28792 var b = this.y.redSqr();
28794 var c = this.z.redSqr();
28797 var d = this.curve._mulA(a);
28798 // E = (X1 + Y1)^
2 - A - B
28799 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
28801 var g = d.redAdd(b);
28803 var f = g.redSub(c);
28805 var h = d.redSub(b);
28807 var nx = e.redMul(f);
28809 var ny = g.redMul(h);
28811 var nt = e.redMul(h);
28813 var nz = f.redMul(g);
28814 return this.curve.point(nx, ny, nz, nt);
28817 Point.prototype._projDbl = function _projDbl() {
28818 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28819 // #doubling-dbl-
2008-bbjlp
28820 // #doubling-dbl-
2007-bl
28822 // Generally
3M +
4S or
2M +
4S
28825 var b = this.x.redAdd(this.y).redSqr();
28827 var c = this.x.redSqr();
28829 var d = this.y.redSqr();
28834 if (this.curve.twisted) {
28836 var e = this.curve._mulA(c);
28838 var f = e.redAdd(d);
28840 // X3 = (B - C - D) * (F -
2)
28841 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
28842 // Y3 = F * (E - D)
28843 ny = f.redMul(e.redSub(d));
28844 // Z3 = F^
2 -
2 * F
28845 nz = f.redSqr().redSub(f).redSub(f);
28848 var h = this.z.redSqr();
28850 var j = f.redSub(h).redISub(h);
28852 nx = b.redSub(c).redISub(d).redMul(j);
28853 // Y3 = F * (E - D)
28854 ny = f.redMul(e.redSub(d));
28860 var e = c.redAdd(d);
28862 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
28864 var j = e.redSub(h).redSub(h);
28865 // X3 = c * (B - E) * J
28866 nx = this.curve._mulC(b.redISub(e)).redMul(j);
28867 // Y3 = c * E * (C - D)
28868 ny = this.curve._mulC(e).redMul(c.redISub(d));
28872 return this.curve.point(nx, ny, nz);
28875 Point.prototype.dbl = function dbl() {
28876 if (this.isInfinity())
28879 // Double in extended coordinates
28880 if (this.curve.extended)
28881 return this._extDbl();
28883 return this._projDbl();
28886 Point.prototype._extAdd = function _extAdd(p) {
28887 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28888 // #addition-add-
2008-hwcd-
3
28891 // A = (Y1 - X1) * (Y2 - X2)
28892 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
28893 // B = (Y1 + X1) * (Y2 + X2)
28894 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
28896 var c = this.t.redMul(this.curve.dd).redMul(p.t);
28898 var d = this.z.redMul(p.z.redAdd(p.z));
28900 var e = b.redSub(a);
28902 var f = d.redSub(c);
28904 var g = d.redAdd(c);
28906 var h = b.redAdd(a);
28908 var nx = e.redMul(f);
28910 var ny = g.redMul(h);
28912 var nt = e.redMul(h);
28914 var nz = f.redMul(g);
28915 return this.curve.point(nx, ny, nz, nt);
28918 Point.prototype._projAdd = function _projAdd(p) {
28919 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28920 // #addition-add-
2008-bbjlp
28921 // #addition-add-
2007-bl
28925 var a = this.z.redMul(p.z);
28927 var b = a.redSqr();
28929 var c = this.x.redMul(p.x);
28931 var d = this.y.redMul(p.y);
28933 var e = this.curve.d.redMul(c).redMul(d);
28935 var f = b.redSub(e);
28937 var g = b.redAdd(e);
28938 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
28939 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
28940 var nx = a.redMul(f).redMul(tmp);
28943 if (this.curve.twisted) {
28944 // Y3 = A * G * (D - a * C)
28945 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
28949 // Y3 = A * G * (D - C)
28950 ny = a.redMul(g).redMul(d.redSub(c));
28952 nz = this.curve._mulC(f).redMul(g);
28954 return this.curve.point(nx, ny, nz);
28957 Point.prototype.add = function add(p) {
28958 if (this.isInfinity())
28960 if (p.isInfinity())
28963 if (this.curve.extended)
28964 return this._extAdd(p);
28966 return this._projAdd(p);
28969 Point.prototype.mul = function mul(k) {
28970 if (this._hasDoubles(k))
28971 return this.curve._fixedNafMul(this, k);
28973 return this.curve._wnafMul(this, k);
28976 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
28977 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
28980 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
28981 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
28984 Point.prototype.normalize = function normalize() {
28988 // Normalize coordinates
28989 var zi = this.z.redInvm();
28990 this.x = this.x.redMul(zi);
28991 this.y = this.y.redMul(zi);
28993 this.t = this.t.redMul(zi);
28994 this.z = this.curve.one;
28999 Point.prototype.neg = function neg() {
29000 return this.curve.point(this.x.redNeg(),
29003 this.t && this.t.redNeg());
29006 Point.prototype.getX = function getX() {
29008 return this.x.fromRed();
29011 Point.prototype.getY = function getY() {
29013 return this.y.fromRed();
29016 Point.prototype.eq = function eq(other) {
29017 return this === other ||
29018 this.getX().cmp(other.getX()) ===
0 &&
29019 this.getY().cmp(other.getY()) ===
0;
29022 Point.prototype.eqXToP = function eqXToP(x) {
29023 var rx = x.toRed(this.curve.red).redMul(this.z);
29024 if (this.x.cmp(rx) ===
0)
29027 var xc = x.clone();
29028 var t = this.curve.redN.redMul(this.z);
29030 xc.iadd(this.curve.n);
29031 if (xc.cmp(this.curve.p)
>=
0)
29035 if (this.x.cmp(rx) ===
0)
29041 // Compatibility with BaseCurve
29042 Point.prototype.toP = Point.prototype.normalize;
29043 Point.prototype.mixedAdd = Point.prototype.add;
29045 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
29048 var curve = exports;
29050 curve.base = require('./base');
29051 curve.short = require('./short');
29052 curve.mont = require('./mont');
29053 curve.edwards = require('./edwards');
29055 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
29058 var curve = require('../curve');
29059 var BN = require('bn.js');
29060 var inherits = require('inherits');
29061 var Base = curve.base;
29063 var elliptic = require('../../elliptic');
29064 var utils = elliptic.utils;
29066 function MontCurve(conf) {
29067 Base.call(this, 'mont', conf);
29069 this.a = new BN(conf.a,
16).toRed(this.red);
29070 this.b = new BN(conf.b,
16).toRed(this.red);
29071 this.i4 = new BN(
4).toRed(this.red).redInvm();
29072 this.two = new BN(
2).toRed(this.red);
29073 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
29075 inherits(MontCurve, Base);
29076 module.exports = MontCurve;
29078 MontCurve.prototype.validate = function validate(point) {
29079 var x = point.normalize().x;
29080 var x2 = x.redSqr();
29081 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
29082 var y = rhs.redSqrt();
29084 return y.redSqr().cmp(rhs) ===
0;
29087 function Point(curve, x, z) {
29088 Base.BasePoint.call(this, curve, 'projective');
29089 if (x === null && z === null) {
29090 this.x = this.curve.one;
29091 this.z = this.curve.zero;
29093 this.x = new BN(x,
16);
29094 this.z = new BN(z,
16);
29096 this.x = this.x.toRed(this.curve.red);
29098 this.z = this.z.toRed(this.curve.red);
29101 inherits(Point, Base.BasePoint);
29103 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
29104 return this.point(utils.toArray(bytes, enc),
1);
29107 MontCurve.prototype.point = function point(x, z) {
29108 return new Point(this, x, z);
29111 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
29112 return Point.fromJSON(this, obj);
29115 Point.prototype.precompute = function precompute() {
29119 Point.prototype._encode = function _encode() {
29120 return this.getX().toArray('be', this.curve.p.byteLength());
29123 Point.fromJSON = function fromJSON(curve, obj) {
29124 return new Point(curve, obj[
0], obj[
1] || curve.one);
29127 Point.prototype.inspect = function inspect() {
29128 if (this.isInfinity())
29129 return '
<EC Point Infinity
>';
29130 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29131 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
29134 Point.prototype.isInfinity = function isInfinity() {
29135 // XXX This code assumes that zero is always zero in red
29136 return this.z.cmpn(
0) ===
0;
29139 Point.prototype.dbl = function dbl() {
29140 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
29144 var a = this.x.redAdd(this.z);
29146 var aa = a.redSqr();
29148 var b = this.x.redSub(this.z);
29150 var bb = b.redSqr();
29152 var c = aa.redSub(bb);
29154 var nx = aa.redMul(bb);
29155 // Z3 = C * (BB + A24 * C)
29156 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
29157 return this.curve.point(nx, nz);
29160 Point.prototype.add = function add() {
29161 throw new Error('Not supported on Montgomery curve');
29164 Point.prototype.diffAdd = function diffAdd(p, diff) {
29165 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
29169 var a = this.x.redAdd(this.z);
29171 var b = this.x.redSub(this.z);
29173 var c = p.x.redAdd(p.z);
29175 var d = p.x.redSub(p.z);
29177 var da = d.redMul(a);
29179 var cb = c.redMul(b);
29180 // X5 = Z1 * (DA + CB)^
2
29181 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
29182 // Z5 = X1 * (DA - CB)^
2
29183 var nz = diff.x.redMul(da.redISub(cb).redSqr());
29184 return this.curve.point(nx, nz);
29187 Point.prototype.mul = function mul(k) {
29189 var a = this; // (N /
2) * Q + Q
29190 var b = this.curve.point(null, null); // (N /
2) * Q
29193 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
29194 bits.push(t.andln(
1));
29196 for (var i = bits.length -
1; i
>=
0; i--) {
29197 if (bits[i] ===
0) {
29198 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
29199 a = a.diffAdd(b, c);
29200 // N * Q =
2 * ((N /
2) * Q + Q))
29203 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
29204 b = a.diffAdd(b, c);
29205 // N * Q + Q =
2 * ((N /
2) * Q + Q)
29212 Point.prototype.mulAdd = function mulAdd() {
29213 throw new Error('Not supported on Montgomery curve');
29216 Point.prototype.jumlAdd = function jumlAdd() {
29217 throw new Error('Not supported on Montgomery curve');
29220 Point.prototype.eq = function eq(other) {
29221 return this.getX().cmp(other.getX()) ===
0;
29224 Point.prototype.normalize = function normalize() {
29225 this.x = this.x.redMul(this.z.redInvm());
29226 this.z = this.curve.one;
29230 Point.prototype.getX = function getX() {
29231 // Normalize coordinates
29234 return this.x.fromRed();
29237 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
29240 var curve = require('../curve');
29241 var elliptic = require('../../elliptic');
29242 var BN = require('bn.js');
29243 var inherits = require('inherits');
29244 var Base = curve.base;
29246 var assert = elliptic.utils.assert;
29248 function ShortCurve(conf) {
29249 Base.call(this, 'short', conf);
29251 this.a = new BN(conf.a,
16).toRed(this.red);
29252 this.b = new BN(conf.b,
16).toRed(this.red);
29253 this.tinv = this.two.redInvm();
29255 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
29256 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
29258 // If the curve is endomorphic, precalculate beta and lambda
29259 this.endo = this._getEndomorphism(conf);
29260 this._endoWnafT1 = new Array(
4);
29261 this._endoWnafT2 = new Array(
4);
29263 inherits(ShortCurve, Base);
29264 module.exports = ShortCurve;
29266 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
29267 // No efficient endomorphism
29268 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
29271 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
29275 beta = new BN(conf.beta,
16).toRed(this.red);
29277 var betas = this._getEndoRoots(this.p);
29278 // Choose the smallest beta
29279 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
29280 beta = beta.toRed(this.red);
29283 lambda = new BN(conf.lambda,
16);
29285 // Choose the lambda that is matching selected beta
29286 var lambdas = this._getEndoRoots(this.n);
29287 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
29288 lambda = lambdas[
0];
29290 lambda = lambdas[
1];
29291 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
29295 // Get basis vectors, used for balanced length-two representation
29298 basis = conf.basis.map(function(vec) {
29300 a: new BN(vec.a,
16),
29301 b: new BN(vec.b,
16)
29305 basis = this._getEndoBasis(lambda);
29315 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
29316 // Find roots of for x^
2 + x +
1 in F
29317 // Root = (-
1 +- Sqrt(-
3)) /
2
29319 var red = num === this.p ? this.red : BN.mont(num);
29320 var tinv = new BN(
2).toRed(red).redInvm();
29321 var ntinv = tinv.redNeg();
29323 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
29325 var l1 = ntinv.redAdd(s).fromRed();
29326 var l2 = ntinv.redSub(s).fromRed();
29330 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
29331 // aprxSqrt
>= sqrt(this.n)
29332 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
29335 // Run EGCD, until r(L +
1) < aprxSqrt
29337 var v = this.n.clone();
29338 var x1 = new BN(
1);
29339 var y1 = new BN(
0);
29340 var x2 = new BN(
0);
29341 var y2 = new BN(
1);
29343 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
29357 while (u.cmpn(
0) !==
0) {
29359 r = v.sub(q.mul(u));
29360 x = x2.sub(q.mul(x1));
29361 var y = y2.sub(q.mul(y1));
29363 if (!a1 && r.cmp(aprxSqrt) <
0) {
29368 } else if (a1 && ++i ===
2) {
29383 var len1 = a1.sqr().add(b1.sqr());
29384 var len2 = a2.sqr().add(b2.sqr());
29385 if (len2.cmp(len1)
>=
0) {
29406 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
29407 var basis = this.endo.basis;
29411 var c1 = v2.b.mul(k).divRound(this.n);
29412 var c2 = v1.b.neg().mul(k).divRound(this.n);
29414 var p1 = c1.mul(v1.a);
29415 var p2 = c2.mul(v2.a);
29416 var q1 = c1.mul(v1.b);
29417 var q2 = c2.mul(v2.b);
29419 // Calculate answer
29420 var k1 = k.sub(p1).sub(p2);
29421 var k2 = q1.add(q2).neg();
29422 return { k1: k1, k2: k2 };
29425 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
29428 x = x.toRed(this.red);
29430 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
29431 var y = y2.redSqrt();
29432 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
29433 throw new Error('invalid point');
29435 // XXX Is there any way to tell if the number is odd without converting it
29436 // to non-red form?
29437 var isOdd = y.fromRed().isOdd();
29438 if (odd && !isOdd || !odd && isOdd)
29441 return this.point(x, y);
29444 ShortCurve.prototype.validate = function validate(point) {
29451 var ax = this.a.redMul(x);
29452 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
29453 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
29456 ShortCurve.prototype._endoWnafMulAdd =
29457 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
29458 var npoints = this._endoWnafT1;
29459 var ncoeffs = this._endoWnafT2;
29460 for (var i =
0; i < points.length; i++) {
29461 var split = this._endoSplit(coeffs[i]);
29463 var beta = p._getBeta();
29465 if (split.k1.negative) {
29469 if (split.k2.negative) {
29471 beta = beta.neg(true);
29474 npoints[i *
2] = p;
29475 npoints[i *
2 +
1] = beta;
29476 ncoeffs[i *
2] = split.k1;
29477 ncoeffs[i *
2 +
1] = split.k2;
29479 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
29481 // Clean-up references to points and coefficients
29482 for (var j =
0; j < i *
2; j++) {
29489 function Point(curve, x, y, isRed) {
29490 Base.BasePoint.call(this, curve, 'affine');
29491 if (x === null && y === null) {
29496 this.x = new BN(x,
16);
29497 this.y = new BN(y,
16);
29498 // Force redgomery representation when loading from JSON
29500 this.x.forceRed(this.curve.red);
29501 this.y.forceRed(this.curve.red);
29504 this.x = this.x.toRed(this.curve.red);
29506 this.y = this.y.toRed(this.curve.red);
29510 inherits(Point, Base.BasePoint);
29512 ShortCurve.prototype.point = function point(x, y, isRed) {
29513 return new Point(this, x, y, isRed);
29516 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
29517 return Point.fromJSON(this, obj, red);
29520 Point.prototype._getBeta = function _getBeta() {
29521 if (!this.curve.endo)
29524 var pre = this.precomputed;
29525 if (pre && pre.beta)
29528 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
29530 var curve = this.curve;
29531 var endoMul = function(p) {
29532 return curve.point(p.x.redMul(curve.endo.beta), p.y);
29535 beta.precomputed = {
29539 points: pre.naf.points.map(endoMul)
29541 doubles: pre.doubles && {
29542 step: pre.doubles.step,
29543 points: pre.doubles.points.map(endoMul)
29550 Point.prototype.toJSON = function toJSON() {
29551 if (!this.precomputed)
29552 return [ this.x, this.y ];
29554 return [ this.x, this.y, this.precomputed && {
29555 doubles: this.precomputed.doubles && {
29556 step: this.precomputed.doubles.step,
29557 points: this.precomputed.doubles.points.slice(
1)
29559 naf: this.precomputed.naf && {
29560 wnd: this.precomputed.naf.wnd,
29561 points: this.precomputed.naf.points.slice(
1)
29566 Point.fromJSON = function fromJSON(curve, obj, red) {
29567 if (typeof obj === 'string')
29568 obj = JSON.parse(obj);
29569 var res = curve.point(obj[
0], obj[
1], red);
29573 function obj2point(obj) {
29574 return curve.point(obj[
0], obj[
1], red);
29578 res.precomputed = {
29580 doubles: pre.doubles && {
29581 step: pre.doubles.step,
29582 points: [ res ].concat(pre.doubles.points.map(obj2point))
29586 points: [ res ].concat(pre.naf.points.map(obj2point))
29592 Point.prototype.inspect = function inspect() {
29593 if (this.isInfinity())
29594 return '
<EC Point Infinity
>';
29595 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29596 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
29599 Point.prototype.isInfinity = function isInfinity() {
29603 Point.prototype.add = function add(p) {
29617 if (this.neg().eq(p))
29618 return this.curve.point(null, null);
29621 if (this.x.cmp(p.x) ===
0)
29622 return this.curve.point(null, null);
29624 var c = this.y.redSub(p.y);
29625 if (c.cmpn(
0) !==
0)
29626 c = c.redMul(this.x.redSub(p.x).redInvm());
29627 var nx = c.redSqr().redISub(this.x).redISub(p.x);
29628 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29629 return this.curve.point(nx, ny);
29632 Point.prototype.dbl = function dbl() {
29637 var ys1 = this.y.redAdd(this.y);
29638 if (ys1.cmpn(
0) ===
0)
29639 return this.curve.point(null, null);
29641 var a = this.curve.a;
29643 var x2 = this.x.redSqr();
29644 var dyinv = ys1.redInvm();
29645 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
29647 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
29648 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29649 return this.curve.point(nx, ny);
29652 Point.prototype.getX = function getX() {
29653 return this.x.fromRed();
29656 Point.prototype.getY = function getY() {
29657 return this.y.fromRed();
29660 Point.prototype.mul = function mul(k) {
29663 if (this._hasDoubles(k))
29664 return this.curve._fixedNafMul(this, k);
29665 else if (this.curve.endo)
29666 return this.curve._endoWnafMulAdd([ this ], [ k ]);
29668 return this.curve._wnafMul(this, k);
29671 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
29672 var points = [ this, p2 ];
29673 var coeffs = [ k1, k2 ];
29674 if (this.curve.endo)
29675 return this.curve._endoWnafMulAdd(points, coeffs);
29677 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
29680 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
29681 var points = [ this, p2 ];
29682 var coeffs = [ k1, k2 ];
29683 if (this.curve.endo)
29684 return this.curve._endoWnafMulAdd(points, coeffs, true);
29686 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
29689 Point.prototype.eq = function eq(p) {
29690 return this === p ||
29691 this.inf === p.inf &&
29692 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
29695 Point.prototype.neg = function neg(_precompute) {
29699 var res = this.curve.point(this.x, this.y.redNeg());
29700 if (_precompute && this.precomputed) {
29701 var pre = this.precomputed;
29702 var negate = function(p) {
29705 res.precomputed = {
29708 points: pre.naf.points.map(negate)
29710 doubles: pre.doubles && {
29711 step: pre.doubles.step,
29712 points: pre.doubles.points.map(negate)
29719 Point.prototype.toJ = function toJ() {
29721 return this.curve.jpoint(null, null, null);
29723 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
29727 function JPoint(curve, x, y, z) {
29728 Base.BasePoint.call(this, curve, 'jacobian');
29729 if (x === null && y === null && z === null) {
29730 this.x = this.curve.one;
29731 this.y = this.curve.one;
29732 this.z = new BN(
0);
29734 this.x = new BN(x,
16);
29735 this.y = new BN(y,
16);
29736 this.z = new BN(z,
16);
29739 this.x = this.x.toRed(this.curve.red);
29741 this.y = this.y.toRed(this.curve.red);
29743 this.z = this.z.toRed(this.curve.red);
29745 this.zOne = this.z === this.curve.one;
29747 inherits(JPoint, Base.BasePoint);
29749 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
29750 return new JPoint(this, x, y, z);
29753 JPoint.prototype.toP = function toP() {
29754 if (this.isInfinity())
29755 return this.curve.point(null, null);
29757 var zinv = this.z.redInvm();
29758 var zinv2 = zinv.redSqr();
29759 var ax = this.x.redMul(zinv2);
29760 var ay = this.y.redMul(zinv2).redMul(zinv);
29762 return this.curve.point(ax, ay);
29765 JPoint.prototype.neg = function neg() {
29766 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
29769 JPoint.prototype.add = function add(p) {
29771 if (this.isInfinity())
29775 if (p.isInfinity())
29779 var pz2 = p.z.redSqr();
29780 var z2 = this.z.redSqr();
29781 var u1 = this.x.redMul(pz2);
29782 var u2 = p.x.redMul(z2);
29783 var s1 = this.y.redMul(pz2.redMul(p.z));
29784 var s2 = p.y.redMul(z2.redMul(this.z));
29786 var h = u1.redSub(u2);
29787 var r = s1.redSub(s2);
29788 if (h.cmpn(
0) ===
0) {
29789 if (r.cmpn(
0) !==
0)
29790 return this.curve.jpoint(null, null, null);
29795 var h2 = h.redSqr();
29796 var h3 = h2.redMul(h);
29797 var v = u1.redMul(h2);
29799 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29800 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29801 var nz = this.z.redMul(p.z).redMul(h);
29803 return this.curve.jpoint(nx, ny, nz);
29806 JPoint.prototype.mixedAdd = function mixedAdd(p) {
29808 if (this.isInfinity())
29812 if (p.isInfinity())
29816 var z2 = this.z.redSqr();
29818 var u2 = p.x.redMul(z2);
29820 var s2 = p.y.redMul(z2).redMul(this.z);
29822 var h = u1.redSub(u2);
29823 var r = s1.redSub(s2);
29824 if (h.cmpn(
0) ===
0) {
29825 if (r.cmpn(
0) !==
0)
29826 return this.curve.jpoint(null, null, null);
29831 var h2 = h.redSqr();
29832 var h3 = h2.redMul(h);
29833 var v = u1.redMul(h2);
29835 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29836 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29837 var nz = this.z.redMul(h);
29839 return this.curve.jpoint(nx, ny, nz);
29842 JPoint.prototype.dblp = function dblp(pow) {
29845 if (this.isInfinity())
29850 if (this.curve.zeroA || this.curve.threeA) {
29852 for (var i =
0; i < pow; i++)
29857 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
29858 // N =
1 =
> 6M +
6S +
9A
29859 var a = this.curve.a;
29860 var tinv = this.curve.tinv;
29865 var jz4 = jz.redSqr().redSqr();
29868 var jyd = jy.redAdd(jy);
29869 for (var i =
0; i < pow; i++) {
29870 var jx2 = jx.redSqr();
29871 var jyd2 = jyd.redSqr();
29872 var jyd4 = jyd2.redSqr();
29873 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
29875 var t1 = jx.redMul(jyd2);
29876 var nx = c.redSqr().redISub(t1.redAdd(t1));
29877 var t2 = t1.redISub(nx);
29878 var dny = c.redMul(t2);
29879 dny = dny.redIAdd(dny).redISub(jyd4);
29880 var nz = jyd.redMul(jz);
29882 jz4 = jz4.redMul(jyd4);
29889 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
29892 JPoint.prototype.dbl = function dbl() {
29893 if (this.isInfinity())
29896 if (this.curve.zeroA)
29897 return this._zeroDbl();
29898 else if (this.curve.threeA)
29899 return this._threeDbl();
29901 return this._dbl();
29904 JPoint.prototype._zeroDbl = function _zeroDbl() {
29910 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29911 // #doubling-mdbl-
2007-bl
29915 var xx = this.x.redSqr();
29917 var yy = this.y.redSqr();
29919 var yyyy = yy.redSqr();
29920 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29921 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29923 // M =
3 * XX + a; a =
0
29924 var m = xx.redAdd(xx).redIAdd(xx);
29926 var t = m.redSqr().redISub(s).redISub(s);
29929 var yyyy8 = yyyy.redIAdd(yyyy);
29930 yyyy8 = yyyy8.redIAdd(yyyy8);
29931 yyyy8 = yyyy8.redIAdd(yyyy8);
29935 // Y3 = M * (S - T) -
8 * YYYY
29936 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
29938 nz = this.y.redAdd(this.y);
29940 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29941 // #doubling-dbl-
2009-l
29945 var a = this.x.redSqr();
29947 var b = this.y.redSqr();
29949 var c = b.redSqr();
29950 // D =
2 * ((X1 + B)^
2 - A - C)
29951 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
29954 var e = a.redAdd(a).redIAdd(a);
29956 var f = e.redSqr();
29959 var c8 = c.redIAdd(c);
29960 c8 = c8.redIAdd(c8);
29961 c8 = c8.redIAdd(c8);
29964 nx = f.redISub(d).redISub(d);
29965 // Y3 = E * (D - X3) -
8 * C
29966 ny = e.redMul(d.redISub(nx)).redISub(c8);
29967 // Z3 =
2 * Y1 * Z1
29968 nz = this.y.redMul(this.z);
29969 nz = nz.redIAdd(nz);
29972 return this.curve.jpoint(nx, ny, nz);
29975 JPoint.prototype._threeDbl = function _threeDbl() {
29981 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
29982 // #doubling-mdbl-
2007-bl
29986 var xx = this.x.redSqr();
29988 var yy = this.y.redSqr();
29990 var yyyy = yy.redSqr();
29991 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29992 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29995 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
29997 var t = m.redSqr().redISub(s).redISub(s);
30000 // Y3 = M * (S - T) -
8 * YYYY
30001 var yyyy8 = yyyy.redIAdd(yyyy);
30002 yyyy8 = yyyy8.redIAdd(yyyy8);
30003 yyyy8 = yyyy8.redIAdd(yyyy8);
30004 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
30006 nz = this.y.redAdd(this.y);
30008 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
30012 var delta = this.z.redSqr();
30014 var gamma = this.y.redSqr();
30015 // beta = X1 * gamma
30016 var beta = this.x.redMul(gamma);
30017 // alpha =
3 * (X1 - delta) * (X1 + delta)
30018 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
30019 alpha = alpha.redAdd(alpha).redIAdd(alpha);
30020 // X3 = alpha^
2 -
8 * beta
30021 var beta4 = beta.redIAdd(beta);
30022 beta4 = beta4.redIAdd(beta4);
30023 var beta8 = beta4.redAdd(beta4);
30024 nx = alpha.redSqr().redISub(beta8);
30025 // Z3 = (Y1 + Z1)^
2 - gamma - delta
30026 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
30027 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
30028 var ggamma8 = gamma.redSqr();
30029 ggamma8 = ggamma8.redIAdd(ggamma8);
30030 ggamma8 = ggamma8.redIAdd(ggamma8);
30031 ggamma8 = ggamma8.redIAdd(ggamma8);
30032 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
30035 return this.curve.jpoint(nx, ny, nz);
30038 JPoint.prototype._dbl = function _dbl() {
30039 var a = this.curve.a;
30045 var jz4 = jz.redSqr().redSqr();
30047 var jx2 = jx.redSqr();
30048 var jy2 = jy.redSqr();
30050 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
30052 var jxd4 = jx.redAdd(jx);
30053 jxd4 = jxd4.redIAdd(jxd4);
30054 var t1 = jxd4.redMul(jy2);
30055 var nx = c.redSqr().redISub(t1.redAdd(t1));
30056 var t2 = t1.redISub(nx);
30058 var jyd8 = jy2.redSqr();
30059 jyd8 = jyd8.redIAdd(jyd8);
30060 jyd8 = jyd8.redIAdd(jyd8);
30061 jyd8 = jyd8.redIAdd(jyd8);
30062 var ny = c.redMul(t2).redISub(jyd8);
30063 var nz = jy.redAdd(jy).redMul(jz);
30065 return this.curve.jpoint(nx, ny, nz);
30068 JPoint.prototype.trpl = function trpl() {
30069 if (!this.curve.zeroA)
30070 return this.dbl().add(this);
30072 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
30076 var xx = this.x.redSqr();
30078 var yy = this.y.redSqr();
30080 var zz = this.z.redSqr();
30082 var yyyy = yy.redSqr();
30083 // M =
3 * XX + a * ZZ2; a =
0
30084 var m = xx.redAdd(xx).redIAdd(xx);
30086 var mm = m.redSqr();
30087 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
30088 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30090 e = e.redAdd(e).redIAdd(e);
30093 var ee = e.redSqr();
30095 var t = yyyy.redIAdd(yyyy);
30099 // U = (M + E)^
2 - MM - EE - T
30100 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
30101 // X3 =
4 * (X1 * EE -
4 * YY * U)
30102 var yyu4 = yy.redMul(u);
30103 yyu4 = yyu4.redIAdd(yyu4);
30104 yyu4 = yyu4.redIAdd(yyu4);
30105 var nx = this.x.redMul(ee).redISub(yyu4);
30106 nx = nx.redIAdd(nx);
30107 nx = nx.redIAdd(nx);
30108 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
30109 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
30110 ny = ny.redIAdd(ny);
30111 ny = ny.redIAdd(ny);
30112 ny = ny.redIAdd(ny);
30113 // Z3 = (Z1 + E)^
2 - ZZ - EE
30114 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
30116 return this.curve.jpoint(nx, ny, nz);
30119 JPoint.prototype.mul = function mul(k, kbase) {
30120 k = new BN(k, kbase);
30122 return this.curve._wnafMul(this, k);
30125 JPoint.prototype.eq = function eq(p) {
30126 if (p.type === 'affine')
30127 return this.eq(p.toJ());
30132 // x1 * z2^
2 == x2 * z1^
2
30133 var z2 = this.z.redSqr();
30134 var pz2 = p.z.redSqr();
30135 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
30138 // y1 * z2^
3 == y2 * z1^
3
30139 var z3 = z2.redMul(this.z);
30140 var pz3 = pz2.redMul(p.z);
30141 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
30144 JPoint.prototype.eqXToP = function eqXToP(x) {
30145 var zs = this.z.redSqr();
30146 var rx = x.toRed(this.curve.red).redMul(zs);
30147 if (this.x.cmp(rx) ===
0)
30150 var xc = x.clone();
30151 var t = this.curve.redN.redMul(zs);
30153 xc.iadd(this.curve.n);
30154 if (xc.cmp(this.curve.p)
>=
0)
30158 if (this.x.cmp(rx) ===
0)
30164 JPoint.prototype.inspect = function inspect() {
30165 if (this.isInfinity())
30166 return '
<EC JPoint Infinity
>';
30167 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
30168 ' y: ' + this.y.toString(
16,
2) +
30169 ' z: ' + this.z.toString(
16,
2) + '
>';
30172 JPoint.prototype.isInfinity = function isInfinity() {
30173 // XXX This code assumes that zero is always zero in red
30174 return this.z.cmpn(
0) ===
0;
30177 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
30180 var curves = exports;
30182 var hash = require('hash.js');
30183 var elliptic = require('../elliptic');
30185 var assert = elliptic.utils.assert;
30187 function PresetCurve(options) {
30188 if (options.type === 'short')
30189 this.curve = new elliptic.curve.short(options);
30190 else if (options.type === 'edwards')
30191 this.curve = new elliptic.curve.edwards(options);
30193 this.curve = new elliptic.curve.mont(options);
30194 this.g = this.curve.g;
30195 this.n = this.curve.n;
30196 this.hash = options.hash;
30198 assert(this.g.validate(), 'Invalid curve');
30199 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
30201 curves.PresetCurve = PresetCurve;
30203 function defineCurve(name, options) {
30204 Object.defineProperty(curves, name, {
30205 configurable: true,
30208 var curve = new PresetCurve(options);
30209 Object.defineProperty(curves, name, {
30210 configurable: true,
30219 defineCurve('p192', {
30222 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
30223 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
30224 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
30225 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
30229 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
30230 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
30234 defineCurve('p224', {
30237 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
30238 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
30239 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
30240 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
30244 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
30245 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
30249 defineCurve('p256', {
30252 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
30253 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
30254 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
30255 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
30259 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
30260 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
30264 defineCurve('p384', {
30267 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30268 'fffffffe ffffffff
00000000 00000000 ffffffff',
30269 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30270 'fffffffe ffffffff
00000000 00000000 fffffffc',
30271 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
30272 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
30273 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
30274 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
30278 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
30279 '
5502f25d bf55296c
3a545e38
72760ab7',
30280 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
30281 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
30285 defineCurve('p521', {
30288 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30289 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30290 'ffffffff ffffffff ffffffff ffffffff ffffffff',
30291 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30292 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30293 'ffffffff ffffffff ffffffff ffffffff fffffffc',
30294 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
30295 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
30296 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
30297 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30298 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
30299 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
30303 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
30304 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
30305 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
30306 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
30307 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
30308 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
30312 defineCurve('curve25519', {
30315 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30318 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30326 defineCurve('ed25519', {
30329 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30332 // -
121665 * (
121666^(-
1)) (mod P)
30333 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
30334 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30338 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
30341 '
6666666666666666666666666666666666666666666666666666666666666658'
30347 pre = require('./precomputed/secp256k1');
30352 defineCurve('secp256k1', {
30355 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
30358 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
30362 // Precomputed endomorphism
30363 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
30364 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
30367 a: '
3086d221a7d46bcde86c90e49284eb15',
30368 b: '-e4437ed6010e88286f547fa90abfe4c3'
30371 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
30372 b: '
3086d221a7d46bcde86c90e49284eb15'
30378 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
30379 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
30384 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
30387 var BN = require('bn.js');
30388 var elliptic = require('../../elliptic');
30389 var utils = elliptic.utils;
30390 var assert = utils.assert;
30392 var KeyPair = require('./key');
30393 var Signature = require('./signature');
30395 function EC(options) {
30396 if (!(this instanceof EC))
30397 return new EC(options);
30399 // Shortcut `elliptic.ec(curve-name)`
30400 if (typeof options === 'string') {
30401 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
30403 options = elliptic.curves[options];
30406 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
30407 if (options instanceof elliptic.curves.PresetCurve)
30408 options = { curve: options };
30410 this.curve = options.curve.curve;
30411 this.n = this.curve.n;
30412 this.nh = this.n.ushrn(
1);
30413 this.g = this.curve.g;
30416 this.g = options.curve.g;
30417 this.g.precompute(options.curve.n.bitLength() +
1);
30419 // Hash for function for DRBG
30420 this.hash = options.hash || options.curve.hash;
30422 module.exports = EC;
30424 EC.prototype.keyPair = function keyPair(options) {
30425 return new KeyPair(this, options);
30428 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
30429 return KeyPair.fromPrivate(this, priv, enc);
30432 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
30433 return KeyPair.fromPublic(this, pub, enc);
30436 EC.prototype.genKeyPair = function genKeyPair(options) {
30440 // Instantiate Hmac_DRBG
30441 var drbg = new elliptic.hmacDRBG({
30443 pers: options.pers,
30444 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
30445 nonce: this.n.toArray()
30448 var bytes = this.n.byteLength();
30449 var ns2 = this.n.sub(new BN(
2));
30451 var priv = new BN(drbg.generate(bytes));
30452 if (priv.cmp(ns2)
> 0)
30456 return this.keyFromPrivate(priv);
30460 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
30461 var delta = msg.byteLength() *
8 - this.n.bitLength();
30463 msg = msg.ushrn(delta);
30464 if (!truncOnly && msg.cmp(this.n)
>=
0)
30465 return msg.sub(this.n);
30470 EC.prototype.sign = function sign(msg, key, enc, options) {
30471 if (typeof enc === 'object') {
30478 key = this.keyFromPrivate(key, enc);
30479 msg = this._truncateToN(new BN(msg,
16));
30481 // Zero-extend key to provide enough entropy
30482 var bytes = this.n.byteLength();
30483 var bkey = key.getPrivate().toArray('be', bytes);
30485 // Zero-extend nonce to have the same byte size as N
30486 var nonce = msg.toArray('be', bytes);
30488 // Instantiate Hmac_DRBG
30489 var drbg = new elliptic.hmacDRBG({
30493 pers: options.pers,
30494 persEnc: options.persEnc
30497 // Number of bytes to generate
30498 var ns1 = this.n.sub(new BN(
1));
30500 for (var iter =
0; true; iter++) {
30501 var k = options.k ?
30503 new BN(drbg.generate(this.n.byteLength()));
30504 k = this._truncateToN(k, true);
30505 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
30508 var kp = this.g.mul(k);
30509 if (kp.isInfinity())
30512 var kpX = kp.getX();
30513 var r = kpX.umod(this.n);
30514 if (r.cmpn(
0) ===
0)
30517 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
30518 s = s.umod(this.n);
30519 if (s.cmpn(
0) ===
0)
30522 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
30523 (kpX.cmp(r) !==
0 ?
2 :
0);
30525 // Use complement of `s`, if it is
> `n /
2`
30526 if (options.canonical && s.cmp(this.nh)
> 0) {
30528 recoveryParam ^=
1;
30531 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
30535 EC.prototype.verify = function verify(msg, signature, key, enc) {
30536 msg = this._truncateToN(new BN(msg,
16));
30537 key = this.keyFromPublic(key, enc);
30538 signature = new Signature(signature, 'hex');
30540 // Perform primitive values validation
30541 var r = signature.r;
30542 var s = signature.s;
30543 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
30545 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
30548 // Validate signature
30549 var sinv = s.invm(this.n);
30550 var u1 = sinv.mul(msg).umod(this.n);
30551 var u2 = sinv.mul(r).umod(this.n);
30553 if (!this.curve._maxwellTrick) {
30554 var p = this.g.mulAdd(u1, key.getPublic(), u2);
30555 if (p.isInfinity())
30558 return p.getX().umod(this.n).cmp(r) ===
0;
30561 // NOTE: Greg Maxwell's trick, inspired by:
30562 // https://git.io/vad3K
30564 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
30565 if (p.isInfinity())
30568 // Compare `p.x` of Jacobian point with `r`,
30569 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
30570 // inverse of `p.z^
2`
30571 return p.eqXToP(r);
30574 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
30575 assert((
3 & j) === j, 'The recovery param is more than two bits');
30576 signature = new Signature(signature, enc);
30579 var e = new BN(msg);
30580 var r = signature.r;
30581 var s = signature.s;
30583 // A set LSB signifies that the y-coordinate is odd
30584 var isYOdd = j &
1;
30585 var isSecondKey = j
>> 1;
30586 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
30587 throw new Error('Unable to find sencond key candinate');
30589 //
1.1. Let x = r + jn.
30591 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
30593 r = this.curve.pointFromX(r, isYOdd);
30595 var rInv = signature.r.invm(n);
30596 var s1 = n.sub(e).mul(rInv).umod(n);
30597 var s2 = s.mul(rInv).umod(n);
30599 //
1.6.1 Compute Q = r^-
1 (sR - eG)
30600 // Q = r^-
1 (sR + -eG)
30601 return this.g.mulAdd(s1, r, s2);
30604 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
30605 signature = new Signature(signature, enc);
30606 if (signature.recoveryParam !== null)
30607 return signature.recoveryParam;
30609 for (var i =
0; i <
4; i++) {
30612 Qprime = this.recoverPubKey(e, signature, i);
30620 throw new Error('Unable to find valid recovery factor');
30623 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
30626 var BN = require('bn.js');
30627 var elliptic = require('../../elliptic');
30628 var utils = elliptic.utils;
30629 var assert = utils.assert;
30631 function KeyPair(ec, options) {
30636 // KeyPair(ec, { priv: ..., pub: ... })
30638 this._importPrivate(options.priv, options.privEnc);
30640 this._importPublic(options.pub, options.pubEnc);
30642 module.exports = KeyPair;
30644 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
30645 if (pub instanceof KeyPair)
30648 return new KeyPair(ec, {
30654 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
30655 if (priv instanceof KeyPair)
30658 return new KeyPair(ec, {
30664 KeyPair.prototype.validate = function validate() {
30665 var pub = this.getPublic();
30667 if (pub.isInfinity())
30668 return { result: false, reason: 'Invalid public key' };
30669 if (!pub.validate())
30670 return { result: false, reason: 'Public key is not a point' };
30671 if (!pub.mul(this.ec.curve.n).isInfinity())
30672 return { result: false, reason: 'Public key * N != O' };
30674 return { result: true, reason: null };
30677 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
30678 // compact is optional argument
30679 if (typeof compact === 'string') {
30685 this.pub = this.ec.g.mul(this.priv);
30690 return this.pub.encode(enc, compact);
30693 KeyPair.prototype.getPrivate = function getPrivate(enc) {
30695 return this.priv.toString(
16,
2);
30700 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
30701 this.priv = new BN(key, enc ||
16);
30703 // Ensure that the priv won't be bigger than n, otherwise we may fail
30704 // in fixed multiplication method
30705 this.priv = this.priv.umod(this.ec.curve.n);
30708 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
30709 if (key.x || key.y) {
30710 // Montgomery points only have an `x` coordinate.
30711 // Weierstrass/Edwards points on the other hand have both `x` and
30712 // `y` coordinates.
30713 if (this.ec.curve.type === 'mont') {
30714 assert(key.x, 'Need x coordinate');
30715 } else if (this.ec.curve.type === 'short' ||
30716 this.ec.curve.type === 'edwards') {
30717 assert(key.x && key.y, 'Need both x and y coordinate');
30719 this.pub = this.ec.curve.point(key.x, key.y);
30722 this.pub = this.ec.curve.decodePoint(key, enc);
30726 KeyPair.prototype.derive = function derive(pub) {
30727 return pub.mul(this.priv).getX();
30731 KeyPair.prototype.sign = function sign(msg, enc, options) {
30732 return this.ec.sign(msg, this, enc, options);
30735 KeyPair.prototype.verify = function verify(msg, signature) {
30736 return this.ec.verify(msg, signature, this);
30739 KeyPair.prototype.inspect = function inspect() {
30740 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
30741 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
30744 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
30747 var BN = require('bn.js');
30749 var elliptic = require('../../elliptic');
30750 var utils = elliptic.utils;
30751 var assert = utils.assert;
30753 function Signature(options, enc) {
30754 if (options instanceof Signature)
30757 if (this._importDER(options, enc))
30760 assert(options.r && options.s, 'Signature without r or s');
30761 this.r = new BN(options.r,
16);
30762 this.s = new BN(options.s,
16);
30763 if (options.recoveryParam === undefined)
30764 this.recoveryParam = null;
30766 this.recoveryParam = options.recoveryParam;
30768 module.exports = Signature;
30770 function Position() {
30774 function getLength(buf, p) {
30775 var initial = buf[p.place++];
30776 if (!(initial &
0x80)) {
30779 var octetLen = initial &
0xf;
30781 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
30789 function rmPadding(buf) {
30791 var len = buf.length -
1;
30792 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
30798 return buf.slice(i);
30801 Signature.prototype._importDER = function _importDER(data, enc) {
30802 data = utils.toArray(data, enc);
30803 var p = new Position();
30804 if (data[p.place++] !==
0x30) {
30807 var len = getLength(data, p);
30808 if ((len + p.place) !== data.length) {
30811 if (data[p.place++] !==
0x02) {
30814 var rlen = getLength(data, p);
30815 var r = data.slice(p.place, rlen + p.place);
30817 if (data[p.place++] !==
0x02) {
30820 var slen = getLength(data, p);
30821 if (data.length !== slen + p.place) {
30824 var s = data.slice(p.place, slen + p.place);
30825 if (r[
0] ===
0 && (r[
1] &
0x80)) {
30828 if (s[
0] ===
0 && (s[
1] &
0x80)) {
30832 this.r = new BN(r);
30833 this.s = new BN(s);
30834 this.recoveryParam = null;
30839 function constructLength(arr, len) {
30844 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
30845 arr.push(octets |
0x80);
30847 arr.push((len
>>> (octets <<
3)) &
0xff);
30852 Signature.prototype.toDER = function toDER(enc) {
30853 var r = this.r.toArray();
30854 var s = this.s.toArray();
30858 r = [
0 ].concat(r);
30861 s = [
0 ].concat(s);
30866 while (!s[
0] && !(s[
1] &
0x80)) {
30869 var arr = [
0x02 ];
30870 constructLength(arr, r.length);
30871 arr = arr.concat(r);
30873 constructLength(arr, s.length);
30874 var backHalf = arr.concat(s);
30875 var res = [
0x30 ];
30876 constructLength(res, backHalf.length);
30877 res = res.concat(backHalf);
30878 return utils.encode(res, enc);
30881 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
30884 var hash = require('hash.js');
30885 var elliptic = require('../../elliptic');
30886 var utils = elliptic.utils;
30887 var assert = utils.assert;
30888 var parseBytes = utils.parseBytes;
30889 var KeyPair = require('./key');
30890 var Signature = require('./signature');
30892 function EDDSA(curve) {
30893 assert(curve === 'ed25519', 'only tested with ed25519 so far');
30895 if (!(this instanceof EDDSA))
30896 return new EDDSA(curve);
30898 var curve = elliptic.curves[curve].curve;
30899 this.curve = curve;
30901 this.g.precompute(curve.n.bitLength() +
1);
30903 this.pointClass = curve.point().constructor;
30904 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
30905 this.hash = hash.sha512;
30908 module.exports = EDDSA;
30911 * @param {Array|String} message - message bytes
30912 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
30913 * @returns {Signature} - signature
30915 EDDSA.prototype.sign = function sign(message, secret) {
30916 message = parseBytes(message);
30917 var key = this.keyFromSecret(secret);
30918 var r = this.hashInt(key.messagePrefix(), message);
30919 var R = this.g.mul(r);
30920 var Rencoded = this.encodePoint(R);
30921 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
30923 var S = r.add(s_).umod(this.curve.n);
30924 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
30928 * @param {Array} message - message bytes
30929 * @param {Array|String|Signature} sig - sig bytes
30930 * @param {Array|String|Point|KeyPair} pub - public key
30931 * @returns {Boolean} - true if public key matches sig of message
30933 EDDSA.prototype.verify = function verify(message, sig, pub) {
30934 message = parseBytes(message);
30935 sig = this.makeSignature(sig);
30936 var key = this.keyFromPublic(pub);
30937 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
30938 var SG = this.g.mul(sig.S());
30939 var RplusAh = sig.R().add(key.pub().mul(h));
30940 return RplusAh.eq(SG);
30943 EDDSA.prototype.hashInt = function hashInt() {
30944 var hash = this.hash();
30945 for (var i =
0; i < arguments.length; i++)
30946 hash.update(arguments[i]);
30947 return utils.intFromLE(hash.digest()).umod(this.curve.n);
30950 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
30951 return KeyPair.fromPublic(this, pub);
30954 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
30955 return KeyPair.fromSecret(this, secret);
30958 EDDSA.prototype.makeSignature = function makeSignature(sig) {
30959 if (sig instanceof Signature)
30961 return new Signature(this, sig);
30965 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
30967 * EDDSA defines methods for encoding and decoding points and integers. These are
30968 * helper convenience methods, that pass along to utility functions implied
30972 EDDSA.prototype.encodePoint = function encodePoint(point) {
30973 var enc = point.getY().toArray('le', this.encodingLength);
30974 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
30978 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
30979 bytes = utils.parseBytes(bytes);
30981 var lastIx = bytes.length -
1;
30982 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
30983 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
30985 var y = utils.intFromLE(normed);
30986 return this.curve.pointFromY(y, xIsOdd);
30989 EDDSA.prototype.encodeInt = function encodeInt(num) {
30990 return num.toArray('le', this.encodingLength);
30993 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
30994 return utils.intFromLE(bytes);
30997 EDDSA.prototype.isPoint = function isPoint(val) {
30998 return val instanceof this.pointClass;
31001 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
31004 var elliptic = require('../../elliptic');
31005 var utils = elliptic.utils;
31006 var assert = utils.assert;
31007 var parseBytes = utils.parseBytes;
31008 var cachedProperty = utils.cachedProperty;
31011 * @param {EDDSA} eddsa - instance
31012 * @param {Object} params - public/private key parameters
31014 * @param {Array
<Byte>} [params.secret] - secret seed bytes
31015 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
31016 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
31019 function KeyPair(eddsa, params) {
31020 this.eddsa = eddsa;
31021 this._secret = parseBytes(params.secret);
31022 if (eddsa.isPoint(params.pub))
31023 this._pub = params.pub;
31025 this._pubBytes = parseBytes(params.pub);
31028 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
31029 if (pub instanceof KeyPair)
31031 return new KeyPair(eddsa, { pub: pub });
31034 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
31035 if (secret instanceof KeyPair)
31037 return new KeyPair(eddsa, { secret: secret });
31040 KeyPair.prototype.secret = function secret() {
31041 return this._secret;
31044 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
31045 return this.eddsa.encodePoint(this.pub());
31048 cachedProperty(KeyPair, 'pub', function pub() {
31049 if (this._pubBytes)
31050 return this.eddsa.decodePoint(this._pubBytes);
31051 return this.eddsa.g.mul(this.priv());
31054 cachedProperty(KeyPair, 'privBytes', function privBytes() {
31055 var eddsa = this.eddsa;
31056 var hash = this.hash();
31057 var lastIx = eddsa.encodingLength -
1;
31059 var a = hash.slice(
0, eddsa.encodingLength);
31067 cachedProperty(KeyPair, 'priv', function priv() {
31068 return this.eddsa.decodeInt(this.privBytes());
31071 cachedProperty(KeyPair, 'hash', function hash() {
31072 return this.eddsa.hash().update(this.secret()).digest();
31075 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
31076 return this.hash().slice(this.eddsa.encodingLength);
31079 KeyPair.prototype.sign = function sign(message) {
31080 assert(this._secret, 'KeyPair can only verify');
31081 return this.eddsa.sign(message, this);
31084 KeyPair.prototype.verify = function verify(message, sig) {
31085 return this.eddsa.verify(message, sig, this);
31088 KeyPair.prototype.getSecret = function getSecret(enc) {
31089 assert(this._secret, 'KeyPair is public only');
31090 return utils.encode(this.secret(), enc);
31093 KeyPair.prototype.getPublic = function getPublic(enc) {
31094 return utils.encode(this.pubBytes(), enc);
31097 module.exports = KeyPair;
31099 },{"../../elliptic":
39}],
51:[function(require,module,exports){
31102 var BN = require('bn.js');
31103 var elliptic = require('../../elliptic');
31104 var utils = elliptic.utils;
31105 var assert = utils.assert;
31106 var cachedProperty = utils.cachedProperty;
31107 var parseBytes = utils.parseBytes;
31110 * @param {EDDSA} eddsa - eddsa instance
31111 * @param {Array
<Bytes>|Object} sig -
31112 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
31113 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
31114 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
31115 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
31117 function Signature(eddsa, sig) {
31118 this.eddsa = eddsa;
31120 if (typeof sig !== 'object')
31121 sig = parseBytes(sig);
31123 if (Array.isArray(sig)) {
31125 R: sig.slice(
0, eddsa.encodingLength),
31126 S: sig.slice(eddsa.encodingLength)
31130 assert(sig.R && sig.S, 'Signature without R or S');
31132 if (eddsa.isPoint(sig.R))
31134 if (sig.S instanceof BN)
31137 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
31138 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
31141 cachedProperty(Signature, 'S', function S() {
31142 return this.eddsa.decodeInt(this.Sencoded());
31145 cachedProperty(Signature, 'R', function R() {
31146 return this.eddsa.decodePoint(this.Rencoded());
31149 cachedProperty(Signature, 'Rencoded', function Rencoded() {
31150 return this.eddsa.encodePoint(this.R());
31153 cachedProperty(Signature, 'Sencoded', function Sencoded() {
31154 return this.eddsa.encodeInt(this.S());
31157 Signature.prototype.toBytes = function toBytes() {
31158 return this.Rencoded().concat(this.Sencoded());
31161 Signature.prototype.toHex = function toHex() {
31162 return utils.encode(this.toBytes(), 'hex').toUpperCase();
31165 module.exports = Signature;
31167 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
31170 var hash = require('hash.js');
31171 var elliptic = require('../elliptic');
31172 var utils = elliptic.utils;
31173 var assert = utils.assert;
31175 function HmacDRBG(options) {
31176 if (!(this instanceof HmacDRBG))
31177 return new HmacDRBG(options);
31178 this.hash = options.hash;
31179 this.predResist = !!options.predResist;
31181 this.outLen = this.hash.outSize;
31182 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
31184 this.reseed = null;
31185 this.reseedInterval = null;
31189 var entropy = utils.toArray(options.entropy, options.entropyEnc);
31190 var nonce = utils.toArray(options.nonce, options.nonceEnc);
31191 var pers = utils.toArray(options.pers, options.persEnc);
31192 assert(entropy.length
>= (this.minEntropy /
8),
31193 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31194 this._init(entropy, nonce, pers);
31196 module.exports = HmacDRBG;
31198 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
31199 var seed = entropy.concat(nonce).concat(pers);
31201 this.K = new Array(this.outLen /
8);
31202 this.V = new Array(this.outLen /
8);
31203 for (var i =
0; i < this.V.length; i++) {
31208 this._update(seed);
31210 this.reseedInterval =
0x1000000000000; //
2^
48
31213 HmacDRBG.prototype._hmac = function hmac() {
31214 return new hash.hmac(this.hash, this.K);
31217 HmacDRBG.prototype._update = function update(seed) {
31218 var kmac = this._hmac()
31222 kmac = kmac.update(seed);
31223 this.K = kmac.digest();
31224 this.V = this._hmac().update(this.V).digest();
31228 this.K = this._hmac()
31233 this.V = this._hmac().update(this.V).digest();
31236 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
31237 // Optional entropy enc
31238 if (typeof entropyEnc !== 'string') {
31244 entropy = utils.toBuffer(entropy, entropyEnc);
31245 add = utils.toBuffer(add, addEnc);
31247 assert(entropy.length
>= (this.minEntropy /
8),
31248 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31250 this._update(entropy.concat(add || []));
31254 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
31255 if (this.reseed
> this.reseedInterval)
31256 throw new Error('Reseed is required');
31258 // Optional encoding
31259 if (typeof enc !== 'string') {
31265 // Optional additional data
31267 add = utils.toArray(add, addEnc);
31272 while (temp.length < len) {
31273 this.V = this._hmac().update(this.V).digest();
31274 temp = temp.concat(this.V);
31277 var res = temp.slice(
0, len);
31280 return utils.encode(res, enc);
31283 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
31289 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
31290 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
31293 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
31294 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
31297 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
31298 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
31301 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
31302 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
31305 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
31306 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
31309 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
31310 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
31313 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
31314 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
31317 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
31318 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
31321 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
31322 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
31325 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
31326 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
31329 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
31330 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
31333 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
31334 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
31337 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
31338 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
31341 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
31342 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
31345 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
31346 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
31349 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
31350 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
31353 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
31354 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
31357 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
31358 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
31361 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
31362 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
31365 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
31366 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
31369 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
31370 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
31373 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
31374 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
31377 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
31378 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
31381 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
31382 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
31385 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
31386 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
31389 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
31390 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
31393 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
31394 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
31397 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
31398 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
31401 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
31402 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
31405 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
31406 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
31409 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
31410 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
31413 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
31414 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
31417 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
31418 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
31421 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
31422 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
31425 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
31426 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
31429 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
31430 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
31433 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
31434 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
31437 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
31438 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
31441 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
31442 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
31445 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
31446 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
31449 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
31450 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
31453 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
31454 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
31457 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
31458 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
31461 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
31462 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
31465 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
31466 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
31469 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
31470 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
31473 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
31474 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
31477 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
31478 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
31481 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
31482 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
31485 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
31486 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
31489 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
31490 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
31493 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
31494 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
31497 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
31498 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
31501 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
31502 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
31505 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
31506 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
31509 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
31510 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
31513 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
31514 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
31517 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
31518 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
31521 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
31522 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
31525 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
31526 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
31529 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
31530 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
31533 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
31534 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
31537 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
31538 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
31541 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
31542 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
31545 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
31546 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
31554 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
31555 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
31558 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
31559 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
31562 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
31563 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
31566 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
31567 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
31570 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
31571 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
31574 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
31575 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
31578 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
31579 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
31582 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
31583 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
31586 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
31587 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
31590 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
31591 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
31594 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
31595 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
31598 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
31599 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
31602 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
31603 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
31606 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
31607 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
31610 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
31611 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
31614 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
31615 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
31618 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
31619 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
31622 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
31623 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
31626 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
31627 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
31630 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
31631 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
31634 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
31635 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
31638 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
31639 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
31642 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
31643 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
31646 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
31647 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
31650 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
31651 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
31654 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
31655 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
31658 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
31659 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
31662 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
31663 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
31666 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
31667 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
31670 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
31671 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
31674 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
31675 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
31678 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
31679 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
31682 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
31683 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
31686 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
31687 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
31690 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
31691 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
31694 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
31695 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
31698 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
31699 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
31702 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
31703 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
31706 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
31707 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
31710 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
31711 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
31714 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
31715 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
31718 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
31719 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
31722 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
31723 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
31726 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
31727 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
31730 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
31731 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
31734 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
31735 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
31738 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
31739 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
31742 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
31743 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
31746 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
31747 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
31750 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
31751 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
31754 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
31755 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
31758 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
31759 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
31762 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
31763 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
31766 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
31767 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
31770 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
31771 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
31774 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
31775 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
31778 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
31779 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
31782 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
31783 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
31786 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
31787 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
31790 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
31791 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
31794 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
31795 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
31798 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
31799 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
31802 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
31803 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
31806 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
31807 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
31810 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
31811 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
31814 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
31815 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
31818 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
31819 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
31822 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
31823 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
31826 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
31827 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
31830 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
31831 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
31834 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
31835 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
31838 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
31839 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
31842 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
31843 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
31846 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
31847 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
31850 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
31851 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
31854 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
31855 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
31858 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
31859 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
31862 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
31863 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
31866 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
31867 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
31870 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
31871 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
31874 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
31875 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
31878 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
31879 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
31882 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
31883 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
31886 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
31887 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
31890 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
31891 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
31894 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
31895 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
31898 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
31899 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
31902 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
31903 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
31906 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
31907 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
31910 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
31911 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
31914 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
31915 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
31918 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
31919 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
31922 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
31923 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
31926 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
31927 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
31930 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
31931 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
31934 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
31935 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
31938 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
31939 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
31942 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
31943 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
31946 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
31947 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
31950 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
31951 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
31954 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
31955 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
31958 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
31959 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
31962 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
31963 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
31966 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
31967 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
31970 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
31971 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
31974 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
31975 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
31978 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
31979 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
31982 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
31983 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
31986 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
31987 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
31990 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
31991 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
31994 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
31995 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
31998 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
31999 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
32002 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
32003 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
32006 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
32007 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
32010 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
32011 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
32014 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
32015 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
32018 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
32019 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
32022 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
32023 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
32026 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
32027 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
32030 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
32031 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
32034 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
32035 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
32038 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
32039 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
32042 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
32043 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
32046 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
32047 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
32050 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
32051 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
32054 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
32055 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
32058 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
32059 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
32065 },{}],
54:[function(require,module,exports){
32068 var utils = exports;
32069 var BN = require('bn.js');
32071 utils.assert = function assert(val, msg) {
32073 throw new Error(msg || 'Assertion failed');
32076 function toArray(msg, enc) {
32077 if (Array.isArray(msg))
32078 return msg.slice();
32082 if (typeof msg !== 'string') {
32083 for (var i =
0; i < msg.length; i++)
32084 res[i] = msg[i] |
0;
32088 for (var i =
0; i < msg.length; i++) {
32089 var c = msg.charCodeAt(i);
32097 } else if (enc === 'hex') {
32098 msg = msg.replace(/[^a-z0-
9]+/ig, '');
32099 if (msg.length %
2 !==
0)
32101 for (var i =
0; i < msg.length; i +=
2)
32102 res.push(parseInt(msg[i] + msg[i +
1],
16));
32106 utils.toArray = toArray;
32108 function zero2(word) {
32109 if (word.length ===
1)
32114 utils.zero2 = zero2;
32116 function toHex(msg) {
32118 for (var i =
0; i < msg.length; i++)
32119 res += zero2(msg[i].toString(
16));
32122 utils.toHex = toHex;
32124 utils.encode = function encode(arr, enc) {
32131 // Represent num in a w-NAF form
32132 function getNAF(num, w) {
32134 var ws =
1 << (w +
1);
32135 var k = num.clone();
32136 while (k.cmpn(
1)
>=
0) {
32139 var mod = k.andln(ws -
1);
32140 if (mod
> (ws
>> 1) -
1)
32141 z = (ws
>> 1) - mod;
32150 // Optimization, shift by word if possible
32151 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
32152 for (var i =
1; i < shift; i++)
32159 utils.getNAF = getNAF;
32161 // Represent k1, k2 in a Joint Sparse Form
32162 function getJSF(k1, k2) {
32172 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
32175 var m14 = (k1.andln(
3) + d1) &
3;
32176 var m24 = (k2.andln(
3) + d2) &
3;
32182 if ((m14 &
1) ===
0) {
32185 var m8 = (k1.andln(
7) + d1) &
7;
32186 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
32194 if ((m24 &
1) ===
0) {
32197 var m8 = (k2.andln(
7) + d2) &
7;
32198 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
32206 if (
2 * d1 === u1 +
1)
32208 if (
2 * d2 === u2 +
1)
32216 utils.getJSF = getJSF;
32218 function cachedProperty(obj, name, computer) {
32219 var key = '_' + name;
32220 obj.prototype[name] = function cachedProperty() {
32221 return this[key] !== undefined ? this[key] :
32222 this[key] = computer.call(this);
32225 utils.cachedProperty = cachedProperty;
32227 function parseBytes(bytes) {
32228 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
32231 utils.parseBytes = parseBytes;
32233 function intFromLE(bytes) {
32234 return new BN(bytes, 'hex', 'le');
32236 utils.intFromLE = intFromLE;
32239 },{
"bn.js":
33}],
55:[function(require,module,exports){
32244 "raw":
"elliptic@^6.2.3",
32246 "escapedName":
"elliptic",
32247 "name":
"elliptic",
32248 "rawSpec":
"^6.2.3",
32249 "spec":
">=6.2.3 <7.0.0",
32252 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
32255 "_from":
"elliptic@>=6.2.3 <7.0.0",
32256 "_id":
"elliptic@6.3.3",
32258 "_location":
"/elliptic",
32259 "_nodeVersion":
"7.0.0",
32260 "_npmOperationalInternal": {
32261 "host":
"packages-18-east.internal.npmjs.com",
32262 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
32266 "email":
"fedor@indutny.com"
32268 "_npmVersion":
"3.10.8",
32269 "_phantomChildren": {},
32271 "raw":
"elliptic@^6.2.3",
32273 "escapedName":
"elliptic",
32274 "name":
"elliptic",
32275 "rawSpec":
"^6.2.3",
32276 "spec":
">=6.2.3 <7.0.0",
32280 "/browserify-sign",
32284 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
32285 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32286 "_shrinkwrap": null,
32287 "_spec":
"elliptic@^6.2.3",
32288 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
32290 "name":
"Fedor Indutny",
32291 "email":
"fedor@indutny.com"
32294 "url":
"https://github.com/indutny/elliptic/issues"
32298 "brorand":
"^1.0.1",
32299 "hash.js":
"^1.0.0",
32300 "inherits":
"^2.0.1"
32302 "description":
"EC cryptography",
32303 "devDependencies": {
32305 "coveralls":
"^2.11.3",
32307 "grunt-browserify":
"^5.0.0",
32308 "grunt-cli":
"^1.2.0",
32309 "grunt-contrib-connect":
"^1.0.0",
32310 "grunt-contrib-copy":
"^1.0.0",
32311 "grunt-contrib-uglify":
"^1.0.1",
32312 "grunt-mocha-istanbul":
"^3.0.1",
32313 "grunt-saucelabs":
"^8.6.2",
32314 "istanbul":
"^0.4.2",
32316 "jshint":
"^2.6.0",
32321 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32322 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
32327 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
32328 "homepage":
"https://github.com/indutny/elliptic",
32336 "main":
"lib/elliptic.js",
32340 "email":
"fedor@indutny.com"
32343 "name":
"elliptic",
32344 "optionalDependencies": {},
32345 "readme":
"ERROR: No README data found!",
32348 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
32351 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32352 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32353 "lint":
"npm run jscs && npm run jshint",
32354 "test":
"npm run lint && npm run unit",
32355 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
32356 "version":
"grunt dist && git add dist/"
32361 },{}],
56:[function(require,module,exports){
32362 (function (Buffer){
32365 var isHexPrefixed = require('is-hex-prefixed');
32366 var stripHexPrefix = require('strip-hex-prefix');
32369 * Pads a `String` to have an even length
32370 * @param {String} value
32371 * @return {String} output
32373 function padToEven(value) {
32374 var a = value; // eslint-disable-line
32376 if (typeof a !== 'string') {
32377 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
32380 if (a.length %
2) {
32388 * Converts a `Number` into a hex `String`
32389 * @param {Number} i
32392 function intToHex(i) {
32393 var hex = i.toString(
16); // eslint-disable-line
32395 return '
0x' + padToEven(hex);
32399 * Converts an `Number` to a `Buffer`
32400 * @param {Number} i
32403 function intToBuffer(i) {
32404 var hex = intToHex(i);
32406 return new Buffer(hex.slice(
2), 'hex');
32410 * Get the binary size of a string
32411 * @param {String} str
32414 function getBinarySize(str) {
32415 if (typeof str !== 'string') {
32416 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
32419 return Buffer.byteLength(str, 'utf8');
32423 * Returns TRUE if the first specified array contains all elements
32424 * from the second one. FALSE otherwise.
32426 * @param {array} superset
32427 * @param {array} subset
32429 * @returns {boolean}
32431 function arrayContainsArray(superset, subset, some) {
32432 if (Array.isArray(superset) !== true) {
32433 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
32435 if (Array.isArray(subset) !== true) {
32436 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
32439 return subset[Boolean(some) && 'some' || 'every'](function (value) {
32440 return superset.indexOf(value)
>=
0;
32445 * Should be called to get utf8 from it's hex representation
32448 * @param {String} string in hex
32449 * @returns {String} ascii string representation of hex value
32451 function toUtf8(hex) {
32452 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
32454 return bufferValue.toString('utf8');
32458 * Should be called to get ascii from it's hex representation
32461 * @param {String} string in hex
32462 * @returns {String} ascii string representation of hex value
32464 function toAscii(hex) {
32465 var str = ''; // eslint-disable-line
32467 l = hex.length; // eslint-disable-line
32469 if (hex.substring(
0,
2) === '
0x') {
32473 for (; i < l; i +=
2) {
32474 var code = parseInt(hex.substr(i,
2),
16);
32475 str += String.fromCharCode(code);
32482 * Should be called to get hex representation (prefixed by
0x) of utf8 string
32485 * @param {String} string
32486 * @param {Number} optional padding
32487 * @returns {String} hex representation of input string
32489 function fromUtf8(stringValue) {
32490 var str = new Buffer(stringValue, 'utf8');
32492 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
32496 * Should be called to get hex representation (prefixed by
0x) of ascii string
32498 * @method fromAscii
32499 * @param {String} string
32500 * @param {Number} optional padding
32501 * @returns {String} hex representation of input string
32503 function fromAscii(stringValue) {
32504 var hex = ''; // eslint-disable-line
32505 for (var i =
0; i < stringValue.length; i++) {
32506 // eslint-disable-line
32507 var code = stringValue.charCodeAt(i);
32508 var n = code.toString(
16);
32509 hex += n.length <
2 ? '
0' + n : n;
32516 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
32518 * @method getKeys get specific key from inner object array of objects
32519 * @param {String} params
32520 * @param {String} key
32521 * @param {Boolean} allowEmpty
32522 * @returns {Array} output just a simple array of output keys
32524 function getKeys(params, key, allowEmpty) {
32525 if (!Array.isArray(params)) {
32526 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
32528 if (typeof key !== 'string') {
32529 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
32532 var result = []; // eslint-disable-line
32534 for (var i =
0; i < params.length; i++) {
32535 // eslint-disable-line
32536 var value = params[i][key]; // eslint-disable-line
32537 if (allowEmpty && !value) {
32539 } else if (typeof value !== 'string') {
32540 throw new Error('invalid abi');
32542 result.push(value);
32549 * Is the string a hex string.
32551 * @method check if string is hex string of specific length
32552 * @param {String} value
32553 * @param {Number} length
32554 * @returns {Boolean} output the string is a hex string
32556 function isHexString(value, length) {
32557 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
32561 if (length && value.length !==
2 +
2 * length) {
32569 arrayContainsArray: arrayContainsArray,
32570 intToBuffer: intToBuffer,
32571 getBinarySize: getBinarySize,
32572 isHexPrefixed: isHexPrefixed,
32573 stripHexPrefix: stripHexPrefix,
32574 padToEven: padToEven,
32575 intToHex: intToHex,
32576 fromAscii: fromAscii,
32577 fromUtf8: fromUtf8,
32581 isHexString: isHexString
32583 }).call(this,require("buffer").Buffer)
32584 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
32585 var hash = exports;
32587 hash.utils = require('./hash/utils');
32588 hash.common = require('./hash/common');
32589 hash.sha = require('./hash/sha');
32590 hash.ripemd = require('./hash/ripemd');
32591 hash.hmac = require('./hash/hmac');
32593 // Proxy hash functions to the main object
32594 hash.sha1 = hash.sha.sha1;
32595 hash.sha256 = hash.sha.sha256;
32596 hash.sha224 = hash.sha.sha224;
32597 hash.sha384 = hash.sha.sha384;
32598 hash.sha512 = hash.sha.sha512;
32599 hash.ripemd160 = hash.ripemd.ripemd160;
32601 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
32602 var hash = require('../hash');
32603 var utils = hash.utils;
32604 var assert = utils.assert;
32606 function BlockHash() {
32607 this.pending = null;
32608 this.pendingTotal =
0;
32609 this.blockSize = this.constructor.blockSize;
32610 this.outSize = this.constructor.outSize;
32611 this.hmacStrength = this.constructor.hmacStrength;
32612 this.padLength = this.constructor.padLength /
8;
32613 this.endian = 'big';
32615 this._delta8 = this.blockSize /
8;
32616 this._delta32 = this.blockSize /
32;
32618 exports.BlockHash = BlockHash;
32620 BlockHash.prototype.update = function update(msg, enc) {
32621 // Convert message to array, pad it, and join into
32bit blocks
32622 msg = utils.toArray(msg, enc);
32624 this.pending = msg;
32626 this.pending = this.pending.concat(msg);
32627 this.pendingTotal += msg.length;
32629 // Enough data, try updating
32630 if (this.pending.length
>= this._delta8) {
32631 msg = this.pending;
32633 // Process pending data in blocks
32634 var r = msg.length % this._delta8;
32635 this.pending = msg.slice(msg.length - r, msg.length);
32636 if (this.pending.length ===
0)
32637 this.pending = null;
32639 msg = utils.join32(msg,
0, msg.length - r, this.endian);
32640 for (var i =
0; i < msg.length; i += this._delta32)
32641 this._update(msg, i, i + this._delta32);
32647 BlockHash.prototype.digest = function digest(enc) {
32648 this.update(this._pad());
32649 assert(this.pending === null);
32651 return this._digest(enc);
32654 BlockHash.prototype._pad = function pad() {
32655 var len = this.pendingTotal;
32656 var bytes = this._delta8;
32657 var k = bytes - ((len + this.padLength) % bytes);
32658 var res = new Array(k + this.padLength);
32660 for (var i =
1; i < k; i++)
32665 if (this.endian === 'big') {
32666 for (var t =
8; t < this.padLength; t++)
32673 res[i++] = (len
>>> 24) &
0xff;
32674 res[i++] = (len
>>> 16) &
0xff;
32675 res[i++] = (len
>>> 8) &
0xff;
32676 res[i++] = len &
0xff;
32678 res[i++] = len &
0xff;
32679 res[i++] = (len
>>> 8) &
0xff;
32680 res[i++] = (len
>>> 16) &
0xff;
32681 res[i++] = (len
>>> 24) &
0xff;
32687 for (var t =
8; t < this.padLength; t++)
32694 },{
"../hash":
57}],
59:[function(require,module,exports){
32695 var hmac = exports;
32697 var hash = require('../hash');
32698 var utils = hash.utils;
32699 var assert = utils.assert;
32701 function Hmac(hash, key, enc) {
32702 if (!(this instanceof Hmac))
32703 return new Hmac(hash, key, enc);
32705 this.blockSize = hash.blockSize /
8;
32706 this.outSize = hash.outSize /
8;
32710 this._init(utils.toArray(key, enc));
32712 module.exports = Hmac;
32714 Hmac.prototype._init = function init(key) {
32715 // Shorten key, if needed
32716 if (key.length
> this.blockSize)
32717 key = new this.Hash().update(key).digest();
32718 assert(key.length <= this.blockSize);
32720 // Add padding to key
32721 for (var i = key.length; i < this.blockSize; i++)
32724 for (var i =
0; i < key.length; i++)
32726 this.inner = new this.Hash().update(key);
32728 //
0x36 ^
0x5c =
0x6a
32729 for (var i =
0; i < key.length; i++)
32731 this.outer = new this.Hash().update(key);
32734 Hmac.prototype.update = function update(msg, enc) {
32735 this.inner.update(msg, enc);
32739 Hmac.prototype.digest = function digest(enc) {
32740 this.outer.update(this.inner.digest());
32741 return this.outer.digest(enc);
32744 },{"../hash":
57}],
60:[function(require,module,exports){
32745 var hash = require('../hash');
32746 var utils = hash.utils;
32748 var rotl32 = utils.rotl32;
32749 var sum32 = utils.sum32;
32750 var sum32_3 = utils.sum32_3;
32751 var sum32_4 = utils.sum32_4;
32752 var BlockHash = hash.common.BlockHash;
32754 function RIPEMD160() {
32755 if (!(this instanceof RIPEMD160))
32756 return new RIPEMD160();
32758 BlockHash.call(this);
32760 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
32761 this.endian = 'little';
32763 utils.inherits(RIPEMD160, BlockHash);
32764 exports.ripemd160 = RIPEMD160;
32766 RIPEMD160.blockSize =
512;
32767 RIPEMD160.outSize =
160;
32768 RIPEMD160.hmacStrength =
192;
32769 RIPEMD160.padLength =
64;
32771 RIPEMD160.prototype._update = function update(msg, start) {
32782 for (var j =
0; j <
80; j++) {
32785 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
32795 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
32800 Dh = rotl32(Ch,
10);
32804 T = sum32_3(this.h[
1], C, Dh);
32805 this.h[
1] = sum32_3(this.h[
2], D, Eh);
32806 this.h[
2] = sum32_3(this.h[
3], E, Ah);
32807 this.h[
3] = sum32_3(this.h[
4], A, Bh);
32808 this.h[
4] = sum32_3(this.h[
0], B, Ch);
32812 RIPEMD160.prototype._digest = function digest(enc) {
32814 return utils.toHex32(this.h, 'little');
32816 return utils.split32(this.h, 'little');
32819 function f(j, x, y, z) {
32823 return (x & y) | ((~x) & z);
32825 return (x | (~y)) ^ z;
32827 return (x & z) | (y & (~z));
32829 return x ^ (y | (~z));
32859 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
32860 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
32861 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
32862 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
32863 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
32867 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
32868 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
32869 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
32870 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
32871 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
32875 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
32876 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
32877 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
32878 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
32879 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
32883 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
32884 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
32885 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
32886 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
32887 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
32890 },{"../hash":
57}],
61:[function(require,module,exports){
32891 var hash = require('../hash');
32892 var utils = hash.utils;
32893 var assert = utils.assert;
32895 var rotr32 = utils.rotr32;
32896 var rotl32 = utils.rotl32;
32897 var sum32 = utils.sum32;
32898 var sum32_4 = utils.sum32_4;
32899 var sum32_5 = utils.sum32_5;
32900 var rotr64_hi = utils.rotr64_hi;
32901 var rotr64_lo = utils.rotr64_lo;
32902 var shr64_hi = utils.shr64_hi;
32903 var shr64_lo = utils.shr64_lo;
32904 var sum64 = utils.sum64;
32905 var sum64_hi = utils.sum64_hi;
32906 var sum64_lo = utils.sum64_lo;
32907 var sum64_4_hi = utils.sum64_4_hi;
32908 var sum64_4_lo = utils.sum64_4_lo;
32909 var sum64_5_hi = utils.sum64_5_hi;
32910 var sum64_5_lo = utils.sum64_5_lo;
32911 var BlockHash = hash.common.BlockHash;
32914 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
32915 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
32916 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
32917 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
32918 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
32919 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
32920 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
32921 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
32922 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
32923 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
32924 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
32925 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
32926 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
32927 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
32928 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
32929 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
32933 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
32934 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
32935 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
32936 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
32937 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
32938 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
32939 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
32940 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
32941 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
32942 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
32943 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
32944 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
32945 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
32946 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
32947 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
32948 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
32949 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
32950 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
32951 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
32952 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
32953 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
32954 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
32955 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
32956 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
32957 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
32958 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
32959 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
32960 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
32961 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
32962 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
32963 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
32964 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
32965 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
32966 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
32967 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
32968 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
32969 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
32970 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
32971 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
32972 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
32976 0x5A827999,
0x6ED9EBA1,
32977 0x8F1BBCDC,
0xCA62C1D6
32980 function SHA256() {
32981 if (!(this instanceof SHA256))
32982 return new SHA256();
32984 BlockHash.call(this);
32985 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
32986 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
32988 this.W = new Array(
64);
32990 utils.inherits(SHA256, BlockHash);
32991 exports.sha256 = SHA256;
32993 SHA256.blockSize =
512;
32994 SHA256.outSize =
256;
32995 SHA256.hmacStrength =
192;
32996 SHA256.padLength =
64;
32998 SHA256.prototype._update = function _update(msg, start) {
33001 for (var i =
0; i <
16; i++)
33002 W[i] = msg[start + i];
33003 for (; i < W.length; i++)
33004 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
33015 assert(this.k.length === W.length);
33016 for (var i =
0; i < W.length; i++) {
33017 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
33018 var T2 = sum32(s0_256(a), maj32(a, b, c));
33029 this.h[
0] = sum32(this.h[
0], a);
33030 this.h[
1] = sum32(this.h[
1], b);
33031 this.h[
2] = sum32(this.h[
2], c);
33032 this.h[
3] = sum32(this.h[
3], d);
33033 this.h[
4] = sum32(this.h[
4], e);
33034 this.h[
5] = sum32(this.h[
5], f);
33035 this.h[
6] = sum32(this.h[
6], g);
33036 this.h[
7] = sum32(this.h[
7], h);
33039 SHA256.prototype._digest = function digest(enc) {
33041 return utils.toHex32(this.h, 'big');
33043 return utils.split32(this.h, 'big');
33046 function SHA224() {
33047 if (!(this instanceof SHA224))
33048 return new SHA224();
33051 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
33052 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
33054 utils.inherits(SHA224, SHA256);
33055 exports.sha224 = SHA224;
33057 SHA224.blockSize =
512;
33058 SHA224.outSize =
224;
33059 SHA224.hmacStrength =
192;
33060 SHA224.padLength =
64;
33062 SHA224.prototype._digest = function digest(enc) {
33063 // Just truncate output
33065 return utils.toHex32(this.h.slice(
0,
7), 'big');
33067 return utils.split32(this.h.slice(
0,
7), 'big');
33070 function SHA512() {
33071 if (!(this instanceof SHA512))
33072 return new SHA512();
33074 BlockHash.call(this);
33075 this.h = [
0x6a09e667,
0xf3bcc908,
33076 0xbb67ae85,
0x84caa73b,
33077 0x3c6ef372,
0xfe94f82b,
33078 0xa54ff53a,
0x5f1d36f1,
33079 0x510e527f,
0xade682d1,
33080 0x9b05688c,
0x2b3e6c1f,
33081 0x1f83d9ab,
0xfb41bd6b,
33082 0x5be0cd19,
0x137e2179 ];
33084 this.W = new Array(
160);
33086 utils.inherits(SHA512, BlockHash);
33087 exports.sha512 = SHA512;
33089 SHA512.blockSize =
1024;
33090 SHA512.outSize =
512;
33091 SHA512.hmacStrength =
192;
33092 SHA512.padLength =
128;
33094 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
33097 //
32 x
32bit words
33098 for (var i =
0; i <
32; i++)
33099 W[i] = msg[start + i];
33100 for (; i < W.length; i +=
2) {
33101 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
33102 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
33103 var c1_hi = W[i -
14]; // i -
7
33104 var c1_lo = W[i -
13];
33105 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
33106 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
33107 var c3_hi = W[i -
32]; // i -
16
33108 var c3_lo = W[i -
31];
33110 W[i] = sum64_4_hi(c0_hi, c0_lo,
33114 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
33121 SHA512.prototype._update = function _update(msg, start) {
33122 this._prepareBlock(msg, start);
33126 var ah = this.h[
0];
33127 var al = this.h[
1];
33128 var bh = this.h[
2];
33129 var bl = this.h[
3];
33130 var ch = this.h[
4];
33131 var cl = this.h[
5];
33132 var dh = this.h[
6];
33133 var dl = this.h[
7];
33134 var eh = this.h[
8];
33135 var el = this.h[
9];
33136 var fh = this.h[
10];
33137 var fl = this.h[
11];
33138 var gh = this.h[
12];
33139 var gl = this.h[
13];
33140 var hh = this.h[
14];
33141 var hl = this.h[
15];
33143 assert(this.k.length === W.length);
33144 for (var i =
0; i < W.length; i +=
2) {
33147 var c1_hi = s1_512_hi(eh, el);
33148 var c1_lo = s1_512_lo(eh, el);
33149 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
33150 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
33151 var c3_hi = this.k[i];
33152 var c3_lo = this.k[i +
1];
33154 var c4_lo = W[i +
1];
33156 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
33161 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
33167 var c0_hi = s0_512_hi(ah, al);
33168 var c0_lo = s0_512_lo(ah, al);
33169 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
33170 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
33172 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
33173 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
33184 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
33185 el = sum64_lo(dl, dl, T1_hi, T1_lo);
33196 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
33197 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
33200 sum64(this.h,
0, ah, al);
33201 sum64(this.h,
2, bh, bl);
33202 sum64(this.h,
4, ch, cl);
33203 sum64(this.h,
6, dh, dl);
33204 sum64(this.h,
8, eh, el);
33205 sum64(this.h,
10, fh, fl);
33206 sum64(this.h,
12, gh, gl);
33207 sum64(this.h,
14, hh, hl);
33210 SHA512.prototype._digest = function digest(enc) {
33212 return utils.toHex32(this.h, 'big');
33214 return utils.split32(this.h, 'big');
33217 function SHA384() {
33218 if (!(this instanceof SHA384))
33219 return new SHA384();
33222 this.h = [
0xcbbb9d5d,
0xc1059ed8,
33223 0x629a292a,
0x367cd507,
33224 0x9159015a,
0x3070dd17,
33225 0x152fecd8,
0xf70e5939,
33226 0x67332667,
0xffc00b31,
33227 0x8eb44a87,
0x68581511,
33228 0xdb0c2e0d,
0x64f98fa7,
33229 0x47b5481d,
0xbefa4fa4 ];
33231 utils.inherits(SHA384, SHA512);
33232 exports.sha384 = SHA384;
33234 SHA384.blockSize =
1024;
33235 SHA384.outSize =
384;
33236 SHA384.hmacStrength =
192;
33237 SHA384.padLength =
128;
33239 SHA384.prototype._digest = function digest(enc) {
33241 return utils.toHex32(this.h.slice(
0,
12), 'big');
33243 return utils.split32(this.h.slice(
0,
12), 'big');
33247 if (!(this instanceof SHA1))
33250 BlockHash.call(this);
33251 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
33252 0x10325476,
0xc3d2e1f0 ];
33253 this.W = new Array(
80);
33256 utils.inherits(SHA1, BlockHash);
33257 exports.sha1 = SHA1;
33259 SHA1.blockSize =
512;
33260 SHA1.outSize =
160;
33261 SHA1.hmacStrength =
80;
33262 SHA1.padLength =
64;
33264 SHA1.prototype._update = function _update(msg, start) {
33267 for (var i =
0; i <
16; i++)
33268 W[i] = msg[start + i];
33270 for(; i < W.length; i++)
33271 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
33279 for (var i =
0; i < W.length; i++) {
33280 var s = ~~(i /
20);
33281 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
33289 this.h[
0] = sum32(this.h[
0], a);
33290 this.h[
1] = sum32(this.h[
1], b);
33291 this.h[
2] = sum32(this.h[
2], c);
33292 this.h[
3] = sum32(this.h[
3], d);
33293 this.h[
4] = sum32(this.h[
4], e);
33296 SHA1.prototype._digest = function digest(enc) {
33298 return utils.toHex32(this.h, 'big');
33300 return utils.split32(this.h, 'big');
33303 function ch32(x, y, z) {
33304 return (x & y) ^ ((~x) & z);
33307 function maj32(x, y, z) {
33308 return (x & y) ^ (x & z) ^ (y & z);
33311 function p32(x, y, z) {
33315 function s0_256(x) {
33316 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
33319 function s1_256(x) {
33320 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
33323 function g0_256(x) {
33324 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
33327 function g1_256(x) {
33328 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
33331 function ft_1(s, x, y, z) {
33333 return ch32(x, y, z);
33334 if (s ===
1 || s ===
3)
33335 return p32(x, y, z);
33337 return maj32(x, y, z);
33340 function ch64_hi(xh, xl, yh, yl, zh, zl) {
33341 var r = (xh & yh) ^ ((~xh) & zh);
33347 function ch64_lo(xh, xl, yh, yl, zh, zl) {
33348 var r = (xl & yl) ^ ((~xl) & zl);
33354 function maj64_hi(xh, xl, yh, yl, zh, zl) {
33355 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
33361 function maj64_lo(xh, xl, yh, yl, zh, zl) {
33362 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
33368 function s0_512_hi(xh, xl) {
33369 var c0_hi = rotr64_hi(xh, xl,
28);
33370 var c1_hi = rotr64_hi(xl, xh,
2); //
34
33371 var c2_hi = rotr64_hi(xl, xh,
7); //
39
33373 var r = c0_hi ^ c1_hi ^ c2_hi;
33379 function s0_512_lo(xh, xl) {
33380 var c0_lo = rotr64_lo(xh, xl,
28);
33381 var c1_lo = rotr64_lo(xl, xh,
2); //
34
33382 var c2_lo = rotr64_lo(xl, xh,
7); //
39
33384 var r = c0_lo ^ c1_lo ^ c2_lo;
33390 function s1_512_hi(xh, xl) {
33391 var c0_hi = rotr64_hi(xh, xl,
14);
33392 var c1_hi = rotr64_hi(xh, xl,
18);
33393 var c2_hi = rotr64_hi(xl, xh,
9); //
41
33395 var r = c0_hi ^ c1_hi ^ c2_hi;
33401 function s1_512_lo(xh, xl) {
33402 var c0_lo = rotr64_lo(xh, xl,
14);
33403 var c1_lo = rotr64_lo(xh, xl,
18);
33404 var c2_lo = rotr64_lo(xl, xh,
9); //
41
33406 var r = c0_lo ^ c1_lo ^ c2_lo;
33412 function g0_512_hi(xh, xl) {
33413 var c0_hi = rotr64_hi(xh, xl,
1);
33414 var c1_hi = rotr64_hi(xh, xl,
8);
33415 var c2_hi = shr64_hi(xh, xl,
7);
33417 var r = c0_hi ^ c1_hi ^ c2_hi;
33423 function g0_512_lo(xh, xl) {
33424 var c0_lo = rotr64_lo(xh, xl,
1);
33425 var c1_lo = rotr64_lo(xh, xl,
8);
33426 var c2_lo = shr64_lo(xh, xl,
7);
33428 var r = c0_lo ^ c1_lo ^ c2_lo;
33434 function g1_512_hi(xh, xl) {
33435 var c0_hi = rotr64_hi(xh, xl,
19);
33436 var c1_hi = rotr64_hi(xl, xh,
29); //
61
33437 var c2_hi = shr64_hi(xh, xl,
6);
33439 var r = c0_hi ^ c1_hi ^ c2_hi;
33445 function g1_512_lo(xh, xl) {
33446 var c0_lo = rotr64_lo(xh, xl,
19);
33447 var c1_lo = rotr64_lo(xl, xh,
29); //
61
33448 var c2_lo = shr64_lo(xh, xl,
6);
33450 var r = c0_lo ^ c1_lo ^ c2_lo;
33456 },{
"../hash":
57}],
62:[function(require,module,exports){
33457 var utils = exports;
33458 var inherits = require('inherits');
33460 function toArray(msg, enc) {
33461 if (Array.isArray(msg))
33462 return msg.slice();
33466 if (typeof msg === 'string') {
33468 for (var i =
0; i < msg.length; i++) {
33469 var c = msg.charCodeAt(i);
33477 } else if (enc === 'hex') {
33478 msg = msg.replace(/[^a-z0-
9]+/ig, '');
33479 if (msg.length %
2 !==
0)
33481 for (var i =
0; i < msg.length; i +=
2)
33482 res.push(parseInt(msg[i] + msg[i +
1],
16));
33485 for (var i =
0; i < msg.length; i++)
33486 res[i] = msg[i] |
0;
33490 utils.toArray = toArray;
33492 function toHex(msg) {
33494 for (var i =
0; i < msg.length; i++)
33495 res += zero2(msg[i].toString(
16));
33498 utils.toHex = toHex;
33500 function htonl(w) {
33501 var res = (w
>>> 24) |
33502 ((w
>>> 8) &
0xff00) |
33503 ((w <<
8) &
0xff0000) |
33504 ((w &
0xff) <<
24);
33507 utils.htonl = htonl;
33509 function toHex32(msg, endian) {
33511 for (var i =
0; i < msg.length; i++) {
33513 if (endian === 'little')
33515 res += zero8(w.toString(
16));
33519 utils.toHex32 = toHex32;
33521 function zero2(word) {
33522 if (word.length ===
1)
33527 utils.zero2 = zero2;
33529 function zero8(word) {
33530 if (word.length ===
7)
33532 else if (word.length ===
6)
33533 return '
00' + word;
33534 else if (word.length ===
5)
33535 return '
000' + word;
33536 else if (word.length ===
4)
33537 return '
0000' + word;
33538 else if (word.length ===
3)
33539 return '
00000' + word;
33540 else if (word.length ===
2)
33541 return '
000000' + word;
33542 else if (word.length ===
1)
33543 return '
0000000' + word;
33547 utils.zero8 = zero8;
33549 function join32(msg, start, end, endian) {
33550 var len = end - start;
33551 assert(len %
4 ===
0);
33552 var res = new Array(len /
4);
33553 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
33555 if (endian === 'big')
33556 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
33558 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
33563 utils.join32 = join32;
33565 function split32(msg, endian) {
33566 var res = new Array(msg.length *
4);
33567 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
33569 if (endian === 'big') {
33571 res[k +
1] = (m
>>> 16) &
0xff;
33572 res[k +
2] = (m
>>> 8) &
0xff;
33573 res[k +
3] = m &
0xff;
33575 res[k +
3] = m
>>> 24;
33576 res[k +
2] = (m
>>> 16) &
0xff;
33577 res[k +
1] = (m
>>> 8) &
0xff;
33583 utils.split32 = split32;
33585 function rotr32(w, b) {
33586 return (w
>>> b) | (w << (
32 - b));
33588 utils.rotr32 = rotr32;
33590 function rotl32(w, b) {
33591 return (w << b) | (w
>>> (
32 - b));
33593 utils.rotl32 = rotl32;
33595 function sum32(a, b) {
33596 return (a + b)
>>> 0;
33598 utils.sum32 = sum32;
33600 function sum32_3(a, b, c) {
33601 return (a + b + c)
>>> 0;
33603 utils.sum32_3 = sum32_3;
33605 function sum32_4(a, b, c, d) {
33606 return (a + b + c + d)
>>> 0;
33608 utils.sum32_4 = sum32_4;
33610 function sum32_5(a, b, c, d, e) {
33611 return (a + b + c + d + e)
>>> 0;
33613 utils.sum32_5 = sum32_5;
33615 function assert(cond, msg) {
33617 throw new Error(msg || 'Assertion failed');
33619 utils.assert = assert;
33621 utils.inherits = inherits;
33623 function sum64(buf, pos, ah, al) {
33625 var bl = buf[pos +
1];
33627 var lo = (al + bl)
>>> 0;
33628 var hi = (lo < al ?
1 :
0) + ah + bh;
33629 buf[pos] = hi
>>> 0;
33632 exports.sum64 = sum64;
33634 function sum64_hi(ah, al, bh, bl) {
33635 var lo = (al + bl)
>>> 0;
33636 var hi = (lo < al ?
1 :
0) + ah + bh;
33639 exports.sum64_hi = sum64_hi;
33641 function sum64_lo(ah, al, bh, bl) {
33645 exports.sum64_lo = sum64_lo;
33647 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
33650 lo = (lo + bl)
>>> 0;
33651 carry += lo < al ?
1 :
0;
33652 lo = (lo + cl)
>>> 0;
33653 carry += lo < cl ?
1 :
0;
33654 lo = (lo + dl)
>>> 0;
33655 carry += lo < dl ?
1 :
0;
33657 var hi = ah + bh + ch + dh + carry;
33660 exports.sum64_4_hi = sum64_4_hi;
33662 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
33663 var lo = al + bl + cl + dl;
33666 exports.sum64_4_lo = sum64_4_lo;
33668 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33671 lo = (lo + bl)
>>> 0;
33672 carry += lo < al ?
1 :
0;
33673 lo = (lo + cl)
>>> 0;
33674 carry += lo < cl ?
1 :
0;
33675 lo = (lo + dl)
>>> 0;
33676 carry += lo < dl ?
1 :
0;
33677 lo = (lo + el)
>>> 0;
33678 carry += lo < el ?
1 :
0;
33680 var hi = ah + bh + ch + dh + eh + carry;
33683 exports.sum64_5_hi = sum64_5_hi;
33685 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33686 var lo = al + bl + cl + dl + el;
33690 exports.sum64_5_lo = sum64_5_lo;
33692 function rotr64_hi(ah, al, num) {
33693 var r = (al << (
32 - num)) | (ah
>>> num);
33696 exports.rotr64_hi = rotr64_hi;
33698 function rotr64_lo(ah, al, num) {
33699 var r = (ah << (
32 - num)) | (al
>>> num);
33702 exports.rotr64_lo = rotr64_lo;
33704 function shr64_hi(ah, al, num) {
33707 exports.shr64_hi = shr64_hi;
33709 function shr64_lo(ah, al, num) {
33710 var r = (ah << (
32 - num)) | (al
>>> num);
33713 exports.shr64_lo = shr64_lo;
33715 },{
"inherits":
63}],
63:[function(require,module,exports){
33716 arguments[
4][
9][
0].apply(exports,arguments)
33717 },{
"dup":
9}],
64:[function(require,module,exports){
33719 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
33720 * @param {String} str the string input value
33721 * @return {Boolean} a boolean if it is or is not hex prefixed
33722 * @throws if the str input is not a string
33724 module.exports = function isHexPrefixed(str) {
33725 if (typeof str !== 'string') {
33726 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
33729 return str.slice(
0,
2) === '
0x';
33732 },{}],
65:[function(require,module,exports){
33734 module.exports = require('./lib/api')(require('./lib/keccak'))
33736 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
33738 var createKeccak = require('./keccak')
33739 var createShake = require('./shake')
33741 module.exports = function (KeccakState) {
33742 var Keccak = createKeccak(KeccakState)
33743 var Shake = createShake(KeccakState)
33745 return function (algorithm, options) {
33746 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
33748 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
33749 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
33750 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
33751 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
33753 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
33754 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
33755 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
33756 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
33758 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
33759 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
33761 default: throw new Error('Invald algorithm: ' + algorithm)
33766 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
33767 (function (Buffer){
33769 var Transform = require('stream').Transform
33770 var inherits = require('inherits')
33772 module.exports = function (KeccakState) {
33773 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
33774 Transform.call(this, options)
33777 this._capacity = capacity
33778 this._delimitedSuffix = delimitedSuffix
33779 this._hashBitLength = hashBitLength
33780 this._options = options
33782 this._state = new KeccakState()
33783 this._state.initialize(rate, capacity)
33784 this._finalized = false
33787 inherits(Keccak, Transform)
33789 Keccak.prototype._transform = function (chunk, encoding, callback) {
33792 this.update(chunk, encoding)
33800 Keccak.prototype._flush = function (callback) {
33803 this.push(this.digest())
33811 Keccak.prototype.update = function (data, encoding) {
33812 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33813 if (this._finalized) throw new Error('Digest already called')
33814 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33816 this._state.absorb(data)
33821 Keccak.prototype.digest = function (encoding) {
33822 if (this._finalized) throw new Error('Digest already called')
33823 this._finalized = true
33825 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
33826 var digest = this._state.squeeze(this._hashBitLength /
8)
33827 if (encoding !== undefined) digest = digest.toString(encoding)
33834 // remove result from memory
33835 Keccak.prototype._resetState = function () {
33836 this._state.initialize(this._rate, this._capacity)
33840 // because sometimes we need hash right now and little later
33841 Keccak.prototype._clone = function () {
33842 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
33843 this._state.copy(clone._state)
33844 clone._finalized = this._finalized
33852 }).call(this,require(
"buffer").Buffer)
33853 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
33854 (function (Buffer){
33856 var Transform = require('stream').Transform
33857 var inherits = require('inherits')
33859 module.exports = function (KeccakState) {
33860 function Shake (rate, capacity, delimitedSuffix, options) {
33861 Transform.call(this, options)
33864 this._capacity = capacity
33865 this._delimitedSuffix = delimitedSuffix
33866 this._options = options
33868 this._state = new KeccakState()
33869 this._state.initialize(rate, capacity)
33870 this._finalized = false
33873 inherits(Shake, Transform)
33875 Shake.prototype._transform = function (chunk, encoding, callback) {
33878 this.update(chunk, encoding)
33886 Shake.prototype._flush = function () {}
33888 Shake.prototype._read = function (size) {
33889 this.push(this.squeeze(size))
33892 Shake.prototype.update = function (data, encoding) {
33893 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33894 if (this._finalized) throw new Error('Squeeze already called')
33895 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33897 this._state.absorb(data)
33902 Shake.prototype.squeeze = function (dataByteLength, encoding) {
33903 if (!this._finalized) {
33904 this._finalized = true
33905 this._state.absorbLastFewBits(this._delimitedSuffix)
33908 var data = this._state.squeeze(dataByteLength)
33909 if (encoding !== undefined) data = data.toString(encoding)
33914 Shake.prototype._resetState = function () {
33915 this._state.initialize(this._rate, this._capacity)
33919 Shake.prototype._clone = function () {
33920 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
33921 this._state.copy(clone._state)
33922 clone._finalized = this._finalized
33930 }).call(this,require(
"buffer").Buffer)
33931 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
33933 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]
33935 exports.p1600 = function (s) {
33936 for (var round =
0; round <
24; ++round) {
33938 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
33939 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
33940 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
33941 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
33942 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
33943 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
33944 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
33945 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
33946 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
33947 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
33949 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
33950 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
33951 var t1slo0 = s[
0] ^ lo
33952 var t1shi0 = s[
1] ^ hi
33953 var t1slo5 = s[
10] ^ lo
33954 var t1shi5 = s[
11] ^ hi
33955 var t1slo10 = s[
20] ^ lo
33956 var t1shi10 = s[
21] ^ hi
33957 var t1slo15 = s[
30] ^ lo
33958 var t1shi15 = s[
31] ^ hi
33959 var t1slo20 = s[
40] ^ lo
33960 var t1shi20 = s[
41] ^ hi
33961 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
33962 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
33963 var t1slo1 = s[
2] ^ lo
33964 var t1shi1 = s[
3] ^ hi
33965 var t1slo6 = s[
12] ^ lo
33966 var t1shi6 = s[
13] ^ hi
33967 var t1slo11 = s[
22] ^ lo
33968 var t1shi11 = s[
23] ^ hi
33969 var t1slo16 = s[
32] ^ lo
33970 var t1shi16 = s[
33] ^ hi
33971 var t1slo21 = s[
42] ^ lo
33972 var t1shi21 = s[
43] ^ hi
33973 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
33974 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
33975 var t1slo2 = s[
4] ^ lo
33976 var t1shi2 = s[
5] ^ hi
33977 var t1slo7 = s[
14] ^ lo
33978 var t1shi7 = s[
15] ^ hi
33979 var t1slo12 = s[
24] ^ lo
33980 var t1shi12 = s[
25] ^ hi
33981 var t1slo17 = s[
34] ^ lo
33982 var t1shi17 = s[
35] ^ hi
33983 var t1slo22 = s[
44] ^ lo
33984 var t1shi22 = s[
45] ^ hi
33985 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
33986 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
33987 var t1slo3 = s[
6] ^ lo
33988 var t1shi3 = s[
7] ^ hi
33989 var t1slo8 = s[
16] ^ lo
33990 var t1shi8 = s[
17] ^ hi
33991 var t1slo13 = s[
26] ^ lo
33992 var t1shi13 = s[
27] ^ hi
33993 var t1slo18 = s[
36] ^ lo
33994 var t1shi18 = s[
37] ^ hi
33995 var t1slo23 = s[
46] ^ lo
33996 var t1shi23 = s[
47] ^ hi
33997 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
33998 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
33999 var t1slo4 = s[
8] ^ lo
34000 var t1shi4 = s[
9] ^ hi
34001 var t1slo9 = s[
18] ^ lo
34002 var t1shi9 = s[
19] ^ hi
34003 var t1slo14 = s[
28] ^ lo
34004 var t1shi14 = s[
29] ^ hi
34005 var t1slo19 = s[
38] ^ lo
34006 var t1shi19 = s[
39] ^ hi
34007 var t1slo24 = s[
48] ^ lo
34008 var t1shi24 = s[
49] ^ hi
34011 var t2slo0 = t1slo0
34012 var t2shi0 = t1shi0
34013 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
34014 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
34015 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
34016 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
34017 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
34018 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
34019 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
34020 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
34021 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
34022 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
34023 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
34024 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
34025 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
34026 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
34027 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
34028 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
34029 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
34030 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
34031 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
34032 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
34033 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
34034 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
34035 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
34036 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
34037 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
34038 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
34039 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
34040 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
34041 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
34042 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
34043 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
34044 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
34045 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
34046 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
34047 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
34048 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
34049 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
34050 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
34051 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
34052 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
34053 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
34054 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
34055 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
34056 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
34057 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
34058 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
34059 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
34060 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
34063 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
34064 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
34065 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
34066 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
34067 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
34068 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
34069 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
34070 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
34071 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
34072 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
34073 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
34074 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
34075 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
34076 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
34077 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
34078 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
34079 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
34080 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
34081 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
34082 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
34083 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
34084 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
34085 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
34086 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
34087 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
34088 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
34089 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
34090 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
34091 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
34092 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
34093 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
34094 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
34095 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
34096 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
34097 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
34098 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
34099 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
34100 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
34101 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
34102 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
34103 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
34104 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
34105 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
34106 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
34107 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
34108 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
34109 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
34110 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
34111 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
34112 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
34115 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
34116 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
34120 },{}],
70:[function(require,module,exports){
34121 (function (Buffer){
34123 var keccakState = require('./keccak-state-unroll')
34125 function Keccak () {
34126 // much faster than `new Array(
50)`
34135 this.blockSize = null
34137 this.squeezing = false
34140 Keccak.prototype.initialize = function (rate, capacity) {
34141 for (var i =
0; i <
50; ++i) this.state[i] =
0
34142 this.blockSize = rate /
8
34144 this.squeezing = false
34147 Keccak.prototype.absorb = function (data) {
34148 for (var i =
0; i < data.length; ++i) {
34149 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
34151 if (this.count === this.blockSize) {
34152 keccakState.p1600(this.state)
34158 Keccak.prototype.absorbLastFewBits = function (bits) {
34159 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
34160 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
34161 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
34162 keccakState.p1600(this.state)
34164 this.squeezing = true
34167 Keccak.prototype.squeeze = function (length) {
34168 if (!this.squeezing) this.absorbLastFewBits(
0x01)
34170 var output = Buffer.allocUnsafe(length)
34171 for (var i =
0; i < length; ++i) {
34172 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
34174 if (this.count === this.blockSize) {
34175 keccakState.p1600(this.state)
34183 Keccak.prototype.copy = function (dest) {
34184 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
34185 dest.blockSize = this.blockSize
34186 dest.count = this.count
34187 dest.squeezing = this.squeezing
34190 module.exports = Keccak
34192 }).call(this,require("buffer").Buffer)
34193 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
34194 (function (Buffer){
34197 code.google.com/p/crypto-js
34198 (c)
2009-
2013 by Jeff Mott. All rights reserved.
34199 code.google.com/p/crypto-js/wiki/License
34202 (c)
2012 by Cédric Mesnil. All rights reserved.
34204 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
34206 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
34207 - 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.
34209 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.
34214 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
34215 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
34216 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
34217 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
34218 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
34222 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
34223 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
34224 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
34225 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
34226 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
34230 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
34231 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
34232 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
34233 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
34234 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
34238 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
34239 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
34240 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
34241 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
34242 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
34245 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
34246 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
34248 function bytesToWords (bytes) {
34250 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
34251 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
34256 function wordsToBytes (words) {
34258 for (var b =
0; b < words.length *
32; b +=
8) {
34259 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
34264 function processBlock (H, M, offset) {
34266 for (var i =
0; i <
16; i++) {
34267 var offset_i = offset + i
34268 var M_offset_i = M[offset_i]
34272 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
34273 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
34277 // Working variables
34278 var al, bl, cl, dl, el
34279 var ar, br, cr, dr, er
34289 for (i =
0; i <
80; i +=
1) {
34290 t = (al + M[offset + zl[i]]) |
0
34292 t += f1(bl, cl, dl) + hl[
0]
34293 } else if (i <
32) {
34294 t += f2(bl, cl, dl) + hl[
1]
34295 } else if (i <
48) {
34296 t += f3(bl, cl, dl) + hl[
2]
34297 } else if (i <
64) {
34298 t += f4(bl, cl, dl) + hl[
3]
34299 } else {// if (i
<80) {
34300 t += f5(bl, cl, dl) + hl[
4]
34311 t = (ar + M[offset + zr[i]]) |
0
34313 t += f5(br, cr, dr) + hr[
0]
34314 } else if (i <
32) {
34315 t += f4(br, cr, dr) + hr[
1]
34316 } else if (i <
48) {
34317 t += f3(br, cr, dr) + hr[
2]
34318 } else if (i <
64) {
34319 t += f2(br, cr, dr) + hr[
3]
34320 } else {// if (i
<80) {
34321 t += f1(br, cr, dr) + hr[
4]
34334 // intermediate hash value
34335 t = (H[
1] + cl + dr) |
0
34336 H[
1] = (H[
2] + dl + er) |
0
34337 H[
2] = (H[
3] + el + ar) |
0
34338 H[
3] = (H[
4] + al + br) |
0
34339 H[
4] = (H[
0] + bl + cr) |
0
34343 function f1 (x, y, z) {
34344 return ((x) ^ (y) ^ (z))
34347 function f2 (x, y, z) {
34348 return (((x) & (y)) | ((~x) & (z)))
34351 function f3 (x, y, z) {
34352 return (((x) | (~(y))) ^ (z))
34355 function f4 (x, y, z) {
34356 return (((x) & (z)) | ((y) & (~(z))))
34359 function f5 (x, y, z) {
34360 return ((x) ^ ((y) | (~(z))))
34363 function rotl (x, n) {
34364 return (x << n) | (x
>>> (
32 - n))
34367 function ripemd160 (message) {
34368 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
34370 if (typeof message === 'string') {
34371 message = new Buffer(message, 'utf8')
34374 var m = bytesToWords(message)
34376 var nBitsLeft = message.length *
8
34377 var nBitsTotal = message.length *
8
34380 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
34381 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
34382 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
34383 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
34386 for (var i =
0; i < m.length; i +=
16) {
34387 processBlock(H, m, i)
34391 for (i =
0; i <
5; i++) {
34396 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
34397 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
34400 var digestbytes = wordsToBytes(H)
34401 return new Buffer(digestbytes)
34404 module.exports = ripemd160
34406 }).call(this,require(
"buffer").Buffer)
34407 },{
"buffer":
5}],
72:[function(require,module,exports){
34408 (function (Buffer){
34409 const assert = require('assert')
34411 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
34412 * This function takes in a data, convert it to buffer if not, and a length for recursion
34414 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34415 * @returns {Buffer} - returns buffer of encoded data
34417 exports.encode = function (input) {
34418 if (input instanceof Array) {
34420 for (var i =
0; i < input.length; i++) {
34421 output.push(exports.encode(input[i]))
34423 var buf = Buffer.concat(output)
34424 return Buffer.concat([encodeLength(buf.length,
192), buf])
34426 input = toBuffer(input)
34427 if (input.length ===
1 && input[
0] <
128) {
34430 return Buffer.concat([encodeLength(input.length,
128), input])
34435 function safeParseInt (v, base) {
34436 if (v.slice(
0,
2) === '
00') {
34437 throw (new Error('invalid RLP: extra zeros'))
34440 return parseInt(v, base)
34443 function encodeLength (len, offset) {
34445 return new Buffer([len + offset])
34447 var hexLength = intToHex(len)
34448 var lLength = hexLength.length /
2
34449 var firstByte = intToHex(offset +
55 + lLength)
34450 return new Buffer(firstByte + hexLength, 'hex')
34455 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
34456 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34457 * @returns {Array} - returns decode Array of Buffers containg the original message
34459 exports.decode = function (input, stream) {
34460 if (!input || input.length ===
0) {
34461 return new Buffer([])
34464 input = toBuffer(input)
34465 var decoded = _decode(input)
34471 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
34472 return decoded.data
34475 exports.getLength = function (input) {
34476 if (!input || input.length ===
0) {
34477 return new Buffer([])
34480 input = toBuffer(input)
34481 var firstByte = input[
0]
34482 if (firstByte <=
0x7f) {
34483 return input.length
34484 } else if (firstByte <=
0xb7) {
34485 return firstByte -
0x7f
34486 } else if (firstByte <=
0xbf) {
34487 return firstByte -
0xb6
34488 } else if (firstByte <=
0xf7) {
34489 // a list between
0-
55 bytes long
34490 return firstByte -
0xbf
34492 // a list over
55 bytes long
34493 var llength = firstByte -
0xf6
34494 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34495 return llength + length
34499 function _decode (input) {
34500 var length, llength, data, innerRemainder, d
34502 var firstByte = input[
0]
34504 if (firstByte <=
0x7f) {
34505 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
34507 data: input.slice(
0,
1),
34508 remainder: input.slice(
1)
34510 } else if (firstByte <=
0xb7) {
34511 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
34512 // The range of the first byte is [
0x80,
0xb7]
34513 length = firstByte -
0x7f
34515 // set
0x80 null to
0
34516 if (firstByte ===
0x80) {
34517 data = new Buffer([])
34519 data = input.slice(
1, length)
34522 if (length ===
2 && data[
0] <
0x80) {
34523 throw new Error('invalid rlp encoding: byte must be less
0x80')
34528 remainder: input.slice(length)
34530 } else if (firstByte <=
0xbf) {
34531 llength = firstByte -
0xb6
34532 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34533 data = input.slice(llength, length + llength)
34534 if (data.length < length) {
34535 throw (new Error('invalid RLP'))
34540 remainder: input.slice(length + llength)
34542 } else if (firstByte <=
0xf7) {
34543 // a list between
0-
55 bytes long
34544 length = firstByte -
0xbf
34545 innerRemainder = input.slice(
1, length)
34546 while (innerRemainder.length) {
34547 d = _decode(innerRemainder)
34548 decoded.push(d.data)
34549 innerRemainder = d.remainder
34554 remainder: input.slice(length)
34557 // a list over
55 bytes long
34558 llength = firstByte -
0xf6
34559 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34560 var totalLength = llength + length
34561 if (totalLength
> input.length) {
34562 throw new Error('invalid rlp: total length is larger than the data')
34565 innerRemainder = input.slice(llength, totalLength)
34566 if (innerRemainder.length ===
0) {
34567 throw new Error('invalid rlp, List has a invalid length')
34570 while (innerRemainder.length) {
34571 d = _decode(innerRemainder)
34572 decoded.push(d.data)
34573 innerRemainder = d.remainder
34577 remainder: input.slice(totalLength)
34582 function isHexPrefixed (str) {
34583 return str.slice(
0,
2) === '
0x'
34586 // Removes
0x from a given String
34587 function stripHexPrefix (str) {
34588 if (typeof str !== 'string') {
34591 return isHexPrefixed(str) ? str.slice(
2) : str
34594 function intToHex (i) {
34595 var hex = i.toString(
16)
34596 if (hex.length %
2) {
34603 function padToEven (a) {
34604 if (a.length %
2) a = '
0' + a
34608 function intToBuffer (i) {
34609 var hex = intToHex(i)
34610 return new Buffer(hex, 'hex')
34613 function toBuffer (v) {
34614 if (!Buffer.isBuffer(v)) {
34615 if (typeof v === 'string') {
34616 if (isHexPrefixed(v)) {
34617 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
34621 } else if (typeof v === 'number') {
34627 } else if (v === null || v === undefined) {
34629 } else if (v.toArray) {
34630 // converts a BN to a Buffer
34631 v = new Buffer(v.toArray())
34633 throw new Error('invalid type')
34639 }).call(this,require("buffer").Buffer)
34640 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
34642 module.exports = require('./lib')(require('./lib/elliptic'))
34644 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
34645 (function (Buffer){
34647 var toString = Object.prototype.toString
34650 exports.isArray = function (value, message) {
34651 if (!Array.isArray(value)) throw TypeError(message)
34654 exports.isBoolean = function (value, message) {
34655 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
34658 exports.isBuffer = function (value, message) {
34659 if (!Buffer.isBuffer(value)) throw TypeError(message)
34662 exports.isFunction = function (value, message) {
34663 if (toString.call(value) !== '[object Function]') throw TypeError(message)
34666 exports.isNumber = function (value, message) {
34667 if (toString.call(value) !== '[object Number]') throw TypeError(message)
34670 exports.isObject = function (value, message) {
34671 if (toString.call(value) !== '[object Object]') throw TypeError(message)
34675 exports.isBufferLength = function (buffer, length, message) {
34676 if (buffer.length !== length) throw RangeError(message)
34679 exports.isBufferLength2 = function (buffer, length1, length2, message) {
34680 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
34683 exports.isLengthGTZero = function (value, message) {
34684 if (value.length ===
0) throw RangeError(message)
34687 exports.isNumberInInterval = function (number, x, y, message) {
34688 if (number <= x || number
>= y) throw RangeError(message)
34691 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
34692 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
34693 (function (Buffer){
34695 var bip66 = require('bip66')
34697 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
34699 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
34701 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34702 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34704 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34705 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34706 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34707 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34708 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34709 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34710 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34711 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34712 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
34714 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34715 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34719 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
34721 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
34723 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34724 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34726 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34727 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34728 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34729 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34730 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34731 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34732 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
34733 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
34734 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34735 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34736 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
34738 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34739 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34740 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34741 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34745 var ZERO_BUFFER_32 = new Buffer([
34746 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34747 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
34750 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
34751 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
34752 privateKey.copy(result, compressed ?
8 :
9)
34753 publicKey.copy(result, compressed ?
181 :
214)
34757 exports.privateKeyImport = function (privateKey) {
34758 var length = privateKey.length
34762 if (length < index +
1 || privateKey[index] !==
0x30) return
34765 // sequence length constructor
34766 if (length < index +
1 || !(privateKey[index] &
0x80)) return
34768 var lenb = privateKey[index] &
0x7f
34770 if (lenb <
1 || lenb
> 2) return
34771 if (length < index + lenb) return
34774 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
34776 if (length < index + len) return
34778 // sequence element
0: version number (=
1)
34779 if (length < index +
3 ||
34780 privateKey[index] !==
0x02 ||
34781 privateKey[index +
1] !==
0x01 ||
34782 privateKey[index +
2] !==
0x01) {
34787 // sequence element
1: octet string, up to
32 bytes
34788 if (length < index +
2 ||
34789 privateKey[index] !==
0x04 ||
34790 privateKey[index +
1]
> 0x20 ||
34791 length < index +
2 + privateKey[index +
1]) {
34795 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
34798 exports.signatureExport = function (sigObj) {
34799 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
34800 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
34802 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
34803 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
34805 return bip66.encode(r.slice(posR), s.slice(posS))
34808 exports.signatureImport = function (sig) {
34809 var r = new Buffer(ZERO_BUFFER_32)
34810 var s = new Buffer(ZERO_BUFFER_32)
34813 var sigObj = bip66.decode(sig)
34814 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
34815 if (sigObj.r.length
> 32) throw new Error('R length is too long')
34816 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
34817 if (sigObj.s.length
> 32) throw new Error('S length is too long')
34822 sigObj.r.copy(r,
32 - sigObj.r.length)
34823 sigObj.s.copy(s,
32 - sigObj.s.length)
34825 return { r: r, s: s }
34828 exports.signatureImportLax = function (sig) {
34829 var r = new Buffer(ZERO_BUFFER_32)
34830 var s = new Buffer(ZERO_BUFFER_32)
34832 var length = sig.length
34835 // sequence tag byte
34836 if (sig[index++] !==
0x30) return
34838 // sequence length byte
34839 var lenbyte = sig[index++]
34840 if (lenbyte &
0x80) {
34841 index += lenbyte -
0x80
34842 if (index
> length) return
34845 // sequence tag byte for r
34846 if (sig[index++] !==
0x02) return
34849 var rlen = sig[index++]
34851 lenbyte = rlen -
0x80
34852 if (index + lenbyte
> length) return
34853 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34854 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
34856 if (rlen
> length - index) return
34860 // sequence tag byte for s
34861 if (sig[index++] !==
0x02) return
34864 var slen = sig[index++]
34866 lenbyte = slen -
0x80
34867 if (index + lenbyte
> length) return
34868 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34869 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
34871 if (slen
> length - index) return
34875 // ignore leading zeros in r
34876 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
34878 if (rlen
> 32) return
34879 var rvalue = sig.slice(rindex, rindex + rlen)
34880 rvalue.copy(r,
32 - rvalue.length)
34882 // ignore leading zeros in s
34883 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
34885 if (slen
> 32) return
34886 var svalue = sig.slice(sindex, sindex + slen)
34887 svalue.copy(s,
32 - svalue.length)
34889 return { r: r, s: s }
34892 }).call(this,require(
"buffer").Buffer)
34893 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
34894 (function (Buffer){
34896 var createHash = require('create-hash')
34897 var BN = require('bn.js')
34898 var EC = require('elliptic').ec
34900 var messages = require('../messages.json')
34902 var ec = new EC('secp256k1')
34903 var ecparams = ec.curve
34905 function loadCompressedPublicKey (first, xBuffer) {
34906 var x = new BN(xBuffer)
34909 if (x.cmp(ecparams.p)
>=
0) return null
34910 x = x.toRed(ecparams.red)
34912 // compute corresponding Y
34913 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
34914 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
34916 return ec.keyPair({ pub: { x: x, y: y } })
34919 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
34920 var x = new BN(xBuffer)
34921 var y = new BN(yBuffer)
34924 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
34926 x = x.toRed(ecparams.red)
34927 y = y.toRed(ecparams.red)
34930 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
34933 var x3 = x.redSqr().redIMul(x)
34934 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
34936 return ec.keyPair({ pub: { x: x, y: y } })
34939 function loadPublicKey (publicKey) {
34940 var first = publicKey[
0]
34944 if (publicKey.length !==
33) return null
34945 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
34949 if (publicKey.length !==
65) return null
34950 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
34956 exports.privateKeyVerify = function (privateKey) {
34957 var bn = new BN(privateKey)
34958 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
34961 exports.privateKeyExport = function (privateKey, compressed) {
34962 var d = new BN(privateKey)
34963 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
34965 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34968 exports.privateKeyTweakAdd = function (privateKey, tweak) {
34969 var bn = new BN(tweak)
34970 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34972 bn.iadd(new BN(privateKey))
34973 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
34974 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34976 return bn.toArrayLike(Buffer, 'be',
32)
34979 exports.privateKeyTweakMul = function (privateKey, tweak) {
34980 var bn = new BN(tweak)
34981 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
34983 bn.imul(new BN(privateKey))
34984 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
34986 return bn.toArrayLike(Buffer, 'be',
32)
34989 exports.publicKeyCreate = function (privateKey, compressed) {
34990 var d = new BN(privateKey)
34991 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
34993 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34996 exports.publicKeyConvert = function (publicKey, compressed) {
34997 var pair = loadPublicKey(publicKey)
34998 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35000 return new Buffer(pair.getPublic(compressed, true))
35003 exports.publicKeyVerify = function (publicKey) {
35004 return loadPublicKey(publicKey) !== null
35007 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
35008 var pair = loadPublicKey(publicKey)
35009 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35011 tweak = new BN(tweak)
35012 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
35014 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
35017 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
35018 var pair = loadPublicKey(publicKey)
35019 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35021 tweak = new BN(tweak)
35022 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
35024 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
35027 exports.publicKeyCombine = function (publicKeys, compressed) {
35028 var pairs = new Array(publicKeys.length)
35029 for (var i =
0; i < publicKeys.length; ++i) {
35030 pairs[i] = loadPublicKey(publicKeys[i])
35031 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35034 var point = pairs[
0].pub
35035 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
35036 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
35038 return new Buffer(point.encode(true, compressed))
35041 exports.signatureNormalize = function (signature) {
35042 var r = new BN(signature.slice(
0,
32))
35043 var s = new BN(signature.slice(
32,
64))
35044 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35046 var result = new Buffer(signature)
35047 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
35052 exports.signatureExport = function (signature) {
35053 var r = signature.slice(
0,
32)
35054 var s = signature.slice(
32,
64)
35055 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35057 return { r: r, s: s }
35060 exports.signatureImport = function (sigObj) {
35061 var r = new BN(sigObj.r)
35062 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
35064 var s = new BN(sigObj.s)
35065 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
35067 return Buffer.concat([
35068 r.toArrayLike(Buffer, 'be',
32),
35069 s.toArrayLike(Buffer, 'be',
32)
35073 exports.sign = function (message, privateKey, noncefn, data) {
35074 if (typeof noncefn === 'function') {
35075 var getNonce = noncefn
35076 noncefn = function (counter) {
35077 var nonce = getNonce(message, privateKey, null, data, counter)
35078 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
35080 return new BN(nonce)
35084 var d = new BN(privateKey)
35085 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
35087 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
35089 signature: Buffer.concat([
35090 result.r.toArrayLike(Buffer, 'be',
32),
35091 result.s.toArrayLike(Buffer, 'be',
32)
35093 recovery: result.recoveryParam
35097 exports.verify = function (message, signature, publicKey) {
35098 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35100 var sigr = new BN(sigObj.r)
35101 var sigs = new BN(sigObj.s)
35102 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35103 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
35105 var pair = loadPublicKey(publicKey)
35106 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35108 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
35111 exports.recover = function (message, signature, recovery, compressed) {
35112 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35114 var sigr = new BN(sigObj.r)
35115 var sigs = new BN(sigObj.s)
35116 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35119 if (sigr.isZero() || sigs.isZero()) throw new Error()
35121 var point = ec.recoverPubKey(message, sigObj, recovery)
35122 return new Buffer(point.encode(true, compressed))
35124 throw new Error(messages.ECDSA_RECOVER_FAIL)
35128 exports.ecdh = function (publicKey, privateKey) {
35129 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
35130 return createHash('sha256').update(shared).digest()
35133 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
35134 var pair = loadPublicKey(publicKey)
35135 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35137 var scalar = new BN(privateKey)
35138 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
35140 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
35143 }).call(this,require("buffer").Buffer)
35144 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
35146 var assert = require('./assert')
35147 var der = require('./der')
35148 var messages = require('./messages.json')
35150 function initCompressedValue (value, defaultValue) {
35151 if (value === undefined) return defaultValue
35153 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
35157 module.exports = function (secp256k1) {
35159 privateKeyVerify: function (privateKey) {
35160 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35161 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
35164 privateKeyExport: function (privateKey, compressed) {
35165 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35166 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35168 compressed = initCompressedValue(compressed, true)
35169 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
35171 return der.privateKeyExport(privateKey, publicKey, compressed)
35174 privateKeyImport: function (privateKey) {
35175 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35177 privateKey = der.privateKeyImport(privateKey)
35178 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
35180 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
35183 privateKeyTweakAdd: function (privateKey, tweak) {
35184 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35185 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35187 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35188 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35190 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
35193 privateKeyTweakMul: function (privateKey, tweak) {
35194 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35195 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35197 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35198 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35200 return secp256k1.privateKeyTweakMul(privateKey, tweak)
35203 publicKeyCreate: function (privateKey, compressed) {
35204 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35205 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35207 compressed = initCompressedValue(compressed, true)
35209 return secp256k1.publicKeyCreate(privateKey, compressed)
35212 publicKeyConvert: function (publicKey, compressed) {
35213 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35214 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35216 compressed = initCompressedValue(compressed, true)
35218 return secp256k1.publicKeyConvert(publicKey, compressed)
35221 publicKeyVerify: function (publicKey) {
35222 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35223 return secp256k1.publicKeyVerify(publicKey)
35226 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
35227 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35228 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35230 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35231 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35233 compressed = initCompressedValue(compressed, true)
35235 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
35238 publicKeyTweakMul: function (publicKey, tweak, compressed) {
35239 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35240 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35242 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35243 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35245 compressed = initCompressedValue(compressed, true)
35247 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
35250 publicKeyCombine: function (publicKeys, compressed) {
35251 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
35252 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
35253 for (var i =
0; i < publicKeys.length; ++i) {
35254 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
35255 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35258 compressed = initCompressedValue(compressed, true)
35260 return secp256k1.publicKeyCombine(publicKeys, compressed)
35263 signatureNormalize: function (signature) {
35264 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35265 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35267 return secp256k1.signatureNormalize(signature)
35270 signatureExport: function (signature) {
35271 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35272 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35274 var sigObj = secp256k1.signatureExport(signature)
35275 return der.signatureExport(sigObj)
35278 signatureImport: function (sig) {
35279 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35280 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35282 var sigObj = der.signatureImport(sig)
35283 if (sigObj) return secp256k1.signatureImport(sigObj)
35285 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35288 signatureImportLax: function (sig) {
35289 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35290 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35292 var sigObj = der.signatureImportLax(sig)
35293 if (sigObj) return secp256k1.signatureImport(sigObj)
35295 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35298 sign: function (message, privateKey, options) {
35299 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35300 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35302 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35303 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35307 if (options !== undefined) {
35308 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
35310 if (options.data !== undefined) {
35311 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
35312 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
35313 data = options.data
35316 if (options.noncefn !== undefined) {
35317 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
35318 noncefn = options.noncefn
35322 return secp256k1.sign(message, privateKey, noncefn, data)
35325 verify: function (message, signature, publicKey) {
35326 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35327 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35329 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35330 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35332 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35333 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35335 return secp256k1.verify(message, signature, publicKey)
35338 recover: function (message, signature, recovery, compressed) {
35339 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35340 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35342 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35343 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35345 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
35346 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
35348 compressed = initCompressedValue(compressed, true)
35350 return secp256k1.recover(message, signature, recovery, compressed)
35353 ecdh: function (publicKey, privateKey) {
35354 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35355 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35357 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35358 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35360 return secp256k1.ecdh(publicKey, privateKey)
35363 ecdhUnsafe: function (publicKey, privateKey, compressed) {
35364 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35365 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35367 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35368 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35370 compressed = initCompressedValue(compressed, true)
35372 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
35377 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
35379 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
35380 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
35381 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
35382 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
35383 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35384 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
35385 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
35386 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
35387 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
35388 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
35389 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
35390 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
35391 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
35392 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
35393 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35394 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
35395 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
35396 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
35397 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
35398 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
35399 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
35400 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
35401 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
35402 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
35403 "MSG32_TYPE_INVALID": "message should be a Buffer",
35404 "MSG32_LENGTH_INVALID": "message length is invalid",
35405 "OPTIONS_TYPE_INVALID": "options should be an Object",
35406 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
35407 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
35408 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
35409 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
35410 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
35411 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
35412 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
35415 },{}],
79:[function(require,module,exports){
35416 (function (Buffer){
35417 // prototype class for hash functions
35418 function Hash (blockSize, finalSize) {
35419 this._block = new Buffer(blockSize)
35420 this._finalSize = finalSize
35421 this._blockSize = blockSize
35426 Hash.prototype.update = function (data, enc) {
35427 if (typeof data === 'string') {
35428 enc = enc || 'utf8'
35429 data = new Buffer(data, enc)
35432 var l = this._len += data.length
35433 var s = this._s ||
0
35435 var buffer = this._block
35438 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
35441 for (var i =
0; i < ch; i++) {
35442 buffer[(s % this._blockSize) + i] = data[i + f]
35448 if ((s % this._blockSize) ===
0) {
35449 this._update(buffer)
35457 Hash.prototype.digest = function (enc) {
35458 // Suppose the length of the message M, in bits, is l
35459 var l = this._len *
8
35461 // Append the bit
1 to the end of the message
35462 this._block[this._len % this._blockSize] =
0x80
35464 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
35465 this._block.fill(
0, this._len % this._blockSize +
1)
35467 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
35468 this._update(this._block)
35469 this._block.fill(
0)
35472 // to this append the block which is equal to the number l written in binary
35473 // TODO: handle case where l is
> Math.pow(
2,
29)
35474 this._block.writeInt32BE(l, this._blockSize -
4)
35476 var hash = this._update(this._block) || this._hash()
35478 return enc ? hash.toString(enc) : hash
35481 Hash.prototype._update = function () {
35482 throw new Error('_update must be implemented by subclass')
35485 module.exports = Hash
35487 }).call(this,require("buffer").Buffer)
35488 },{"buffer":
5}],
80:[function(require,module,exports){
35489 var exports = module.exports = function SHA (algorithm) {
35490 algorithm = algorithm.toLowerCase()
35492 var Algorithm = exports[algorithm]
35493 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
35495 return new Algorithm()
35498 exports.sha = require('./sha')
35499 exports.sha1 = require('./sha1')
35500 exports.sha224 = require('./sha224')
35501 exports.sha256 = require('./sha256')
35502 exports.sha384 = require('./sha384')
35503 exports.sha512 = require('./sha512')
35505 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
35506 (function (Buffer){
35508 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
35509 * in FIPS PUB
180-
1
35510 * This source code is derived from sha1.js of the same repository.
35511 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
35512 * operation was added.
35515 var inherits = require('inherits')
35516 var Hash = require('./hash')
35519 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35522 var W = new Array(
80)
35528 Hash.call(this,
64,
56)
35531 inherits(Sha, Hash)
35533 Sha.prototype.init = function () {
35534 this._a =
0x67452301
35535 this._b =
0xefcdab89
35536 this._c =
0x98badcfe
35537 this._d =
0x10325476
35538 this._e =
0xc3d2e1f0
35543 function rotl5 (num) {
35544 return (num <<
5) | (num
>>> 27)
35547 function rotl30 (num) {
35548 return (num <<
30) | (num
>>> 2)
35551 function ft (s, b, c, d) {
35552 if (s ===
0) return (b & c) | ((~b) & d)
35553 if (s ===
2) return (b & c) | (b & d) | (c & d)
35557 Sha.prototype._update = function (M) {
35560 var a = this._a |
0
35561 var b = this._b |
0
35562 var c = this._c |
0
35563 var d = this._d |
0
35564 var e = this._e |
0
35566 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35567 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
35569 for (var j =
0; j <
80; ++j) {
35571 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35580 this._a = (a + this._a) |
0
35581 this._b = (b + this._b) |
0
35582 this._c = (c + this._c) |
0
35583 this._d = (d + this._d) |
0
35584 this._e = (e + this._e) |
0
35587 Sha.prototype._hash = function () {
35588 var H = new Buffer(
20)
35590 H.writeInt32BE(this._a |
0,
0)
35591 H.writeInt32BE(this._b |
0,
4)
35592 H.writeInt32BE(this._c |
0,
8)
35593 H.writeInt32BE(this._d |
0,
12)
35594 H.writeInt32BE(this._e |
0,
16)
35599 module.exports = Sha
35601 }).call(this,require(
"buffer").Buffer)
35602 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
35603 (function (Buffer){
35605 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
35606 * in FIPS PUB
180-
1
35607 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
35608 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35609 * Distributed under the BSD License
35610 * See http://pajhome.org.uk/crypt/md5 for details.
35613 var inherits = require('inherits')
35614 var Hash = require('./hash')
35617 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35620 var W = new Array(
80)
35626 Hash.call(this,
64,
56)
35629 inherits(Sha1, Hash)
35631 Sha1.prototype.init = function () {
35632 this._a =
0x67452301
35633 this._b =
0xefcdab89
35634 this._c =
0x98badcfe
35635 this._d =
0x10325476
35636 this._e =
0xc3d2e1f0
35641 function rotl1 (num) {
35642 return (num <<
1) | (num
>>> 31)
35645 function rotl5 (num) {
35646 return (num <<
5) | (num
>>> 27)
35649 function rotl30 (num) {
35650 return (num <<
30) | (num
>>> 2)
35653 function ft (s, b, c, d) {
35654 if (s ===
0) return (b & c) | ((~b) & d)
35655 if (s ===
2) return (b & c) | (b & d) | (c & d)
35659 Sha1.prototype._update = function (M) {
35662 var a = this._a |
0
35663 var b = this._b |
0
35664 var c = this._c |
0
35665 var d = this._d |
0
35666 var e = this._e |
0
35668 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35669 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
35671 for (var j =
0; j <
80; ++j) {
35673 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35682 this._a = (a + this._a) |
0
35683 this._b = (b + this._b) |
0
35684 this._c = (c + this._c) |
0
35685 this._d = (d + this._d) |
0
35686 this._e = (e + this._e) |
0
35689 Sha1.prototype._hash = function () {
35690 var H = new Buffer(
20)
35692 H.writeInt32BE(this._a |
0,
0)
35693 H.writeInt32BE(this._b |
0,
4)
35694 H.writeInt32BE(this._c |
0,
8)
35695 H.writeInt32BE(this._d |
0,
12)
35696 H.writeInt32BE(this._e |
0,
16)
35701 module.exports = Sha1
35703 }).call(this,require(
"buffer").Buffer)
35704 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
35705 (function (Buffer){
35707 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35709 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35710 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35714 var inherits = require('inherits')
35715 var Sha256 = require('./sha256')
35716 var Hash = require('./hash')
35718 var W = new Array(
64)
35720 function Sha224 () {
35723 this._w = W // new Array(
64)
35725 Hash.call(this,
64,
56)
35728 inherits(Sha224, Sha256)
35730 Sha224.prototype.init = function () {
35731 this._a =
0xc1059ed8
35732 this._b =
0x367cd507
35733 this._c =
0x3070dd17
35734 this._d =
0xf70e5939
35735 this._e =
0xffc00b31
35736 this._f =
0x68581511
35737 this._g =
0x64f98fa7
35738 this._h =
0xbefa4fa4
35743 Sha224.prototype._hash = function () {
35744 var H = new Buffer(
28)
35746 H.writeInt32BE(this._a,
0)
35747 H.writeInt32BE(this._b,
4)
35748 H.writeInt32BE(this._c,
8)
35749 H.writeInt32BE(this._d,
12)
35750 H.writeInt32BE(this._e,
16)
35751 H.writeInt32BE(this._f,
20)
35752 H.writeInt32BE(this._g,
24)
35757 module.exports = Sha224
35759 }).call(this,require(
"buffer").Buffer)
35760 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
35761 (function (Buffer){
35763 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35765 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35766 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35770 var inherits = require('inherits')
35771 var Hash = require('./hash')
35774 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
35775 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
35776 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
35777 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
35778 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
35779 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
35780 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
35781 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
35782 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
35783 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
35784 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
35785 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
35786 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
35787 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
35788 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
35789 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
35792 var W = new Array(
64)
35794 function Sha256 () {
35797 this._w = W // new Array(
64)
35799 Hash.call(this,
64,
56)
35802 inherits(Sha256, Hash)
35804 Sha256.prototype.init = function () {
35805 this._a =
0x6a09e667
35806 this._b =
0xbb67ae85
35807 this._c =
0x3c6ef372
35808 this._d =
0xa54ff53a
35809 this._e =
0x510e527f
35810 this._f =
0x9b05688c
35811 this._g =
0x1f83d9ab
35812 this._h =
0x5be0cd19
35817 function ch (x, y, z) {
35818 return z ^ (x & (y ^ z))
35821 function maj (x, y, z) {
35822 return (x & y) | (z & (x | y))
35825 function sigma0 (x) {
35826 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
35829 function sigma1 (x) {
35830 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
35833 function gamma0 (x) {
35834 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
35837 function gamma1 (x) {
35838 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
35841 Sha256.prototype._update = function (M) {
35844 var a = this._a |
0
35845 var b = this._b |
0
35846 var c = this._c |
0
35847 var d = this._d |
0
35848 var e = this._e |
0
35849 var f = this._f |
0
35850 var g = this._g |
0
35851 var h = this._h |
0
35853 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35854 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
35856 for (var j =
0; j <
64; ++j) {
35857 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
35858 var T2 = (sigma0(a) + maj(a, b, c)) |
0
35870 this._a = (a + this._a) |
0
35871 this._b = (b + this._b) |
0
35872 this._c = (c + this._c) |
0
35873 this._d = (d + this._d) |
0
35874 this._e = (e + this._e) |
0
35875 this._f = (f + this._f) |
0
35876 this._g = (g + this._g) |
0
35877 this._h = (h + this._h) |
0
35880 Sha256.prototype._hash = function () {
35881 var H = new Buffer(
32)
35883 H.writeInt32BE(this._a,
0)
35884 H.writeInt32BE(this._b,
4)
35885 H.writeInt32BE(this._c,
8)
35886 H.writeInt32BE(this._d,
12)
35887 H.writeInt32BE(this._e,
16)
35888 H.writeInt32BE(this._f,
20)
35889 H.writeInt32BE(this._g,
24)
35890 H.writeInt32BE(this._h,
28)
35895 module.exports = Sha256
35897 }).call(this,require(
"buffer").Buffer)
35898 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
35899 (function (Buffer){
35900 var inherits = require('inherits')
35901 var SHA512 = require('./sha512')
35902 var Hash = require('./hash')
35904 var W = new Array(
160)
35906 function Sha384 () {
35910 Hash.call(this,
128,
112)
35913 inherits(Sha384, SHA512)
35915 Sha384.prototype.init = function () {
35916 this._ah =
0xcbbb9d5d
35917 this._bh =
0x629a292a
35918 this._ch =
0x9159015a
35919 this._dh =
0x152fecd8
35920 this._eh =
0x67332667
35921 this._fh =
0x8eb44a87
35922 this._gh =
0xdb0c2e0d
35923 this._hh =
0x47b5481d
35925 this._al =
0xc1059ed8
35926 this._bl =
0x367cd507
35927 this._cl =
0x3070dd17
35928 this._dl =
0xf70e5939
35929 this._el =
0xffc00b31
35930 this._fl =
0x68581511
35931 this._gl =
0x64f98fa7
35932 this._hl =
0xbefa4fa4
35937 Sha384.prototype._hash = function () {
35938 var H = new Buffer(
48)
35940 function writeInt64BE (h, l, offset) {
35941 H.writeInt32BE(h, offset)
35942 H.writeInt32BE(l, offset +
4)
35945 writeInt64BE(this._ah, this._al,
0)
35946 writeInt64BE(this._bh, this._bl,
8)
35947 writeInt64BE(this._ch, this._cl,
16)
35948 writeInt64BE(this._dh, this._dl,
24)
35949 writeInt64BE(this._eh, this._el,
32)
35950 writeInt64BE(this._fh, this._fl,
40)
35955 module.exports = Sha384
35957 }).call(this,require(
"buffer").Buffer)
35958 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
35959 (function (Buffer){
35960 var inherits = require('inherits')
35961 var Hash = require('./hash')
35964 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35965 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35966 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35967 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35968 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35969 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35970 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35971 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35972 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35973 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35974 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35975 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35976 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35977 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35978 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35979 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35980 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35981 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35982 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35983 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35984 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35985 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35986 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35987 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35988 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35989 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35990 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35991 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35992 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35993 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35994 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35995 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35996 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35997 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35998 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35999 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
36000 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
36001 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36002 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
36003 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
36006 var W = new Array(
160)
36008 function Sha512 () {
36012 Hash.call(this,
128,
112)
36015 inherits(Sha512, Hash)
36017 Sha512.prototype.init = function () {
36018 this._ah =
0x6a09e667
36019 this._bh =
0xbb67ae85
36020 this._ch =
0x3c6ef372
36021 this._dh =
0xa54ff53a
36022 this._eh =
0x510e527f
36023 this._fh =
0x9b05688c
36024 this._gh =
0x1f83d9ab
36025 this._hh =
0x5be0cd19
36027 this._al =
0xf3bcc908
36028 this._bl =
0x84caa73b
36029 this._cl =
0xfe94f82b
36030 this._dl =
0x5f1d36f1
36031 this._el =
0xade682d1
36032 this._fl =
0x2b3e6c1f
36033 this._gl =
0xfb41bd6b
36034 this._hl =
0x137e2179
36039 function Ch (x, y, z) {
36040 return z ^ (x & (y ^ z))
36043 function maj (x, y, z) {
36044 return (x & y) | (z & (x | y))
36047 function sigma0 (x, xl) {
36048 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
36051 function sigma1 (x, xl) {
36052 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
36055 function Gamma0 (x, xl) {
36056 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
36059 function Gamma0l (x, xl) {
36060 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
36063 function Gamma1 (x, xl) {
36064 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
36067 function Gamma1l (x, xl) {
36068 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
36071 function getCarry (a, b) {
36072 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
36075 Sha512.prototype._update = function (M) {
36078 var ah = this._ah |
0
36079 var bh = this._bh |
0
36080 var ch = this._ch |
0
36081 var dh = this._dh |
0
36082 var eh = this._eh |
0
36083 var fh = this._fh |
0
36084 var gh = this._gh |
0
36085 var hh = this._hh |
0
36087 var al = this._al |
0
36088 var bl = this._bl |
0
36089 var cl = this._cl |
0
36090 var dl = this._dl |
0
36091 var el = this._el |
0
36092 var fl = this._fl |
0
36093 var gl = this._gl |
0
36094 var hl = this._hl |
0
36096 for (var i =
0; i <
32; i +=
2) {
36097 W[i] = M.readInt32BE(i *
4)
36098 W[i +
1] = M.readInt32BE(i *
4 +
4)
36100 for (; i <
160; i +=
2) {
36101 var xh = W[i -
15 *
2]
36102 var xl = W[i -
15 *
2 +
1]
36103 var gamma0 = Gamma0(xh, xl)
36104 var gamma0l = Gamma0l(xl, xh)
36107 xl = W[i -
2 *
2 +
1]
36108 var gamma1 = Gamma1(xh, xl)
36109 var gamma1l = Gamma1l(xl, xh)
36111 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
36112 var Wi7h = W[i -
7 *
2]
36113 var Wi7l = W[i -
7 *
2 +
1]
36115 var Wi16h = W[i -
16 *
2]
36116 var Wi16l = W[i -
16 *
2 +
1]
36118 var Wil = (gamma0l + Wi7l) |
0
36119 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
36120 Wil = (Wil + gamma1l) |
0
36121 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
36122 Wil = (Wil + Wi16l) |
0
36123 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
36129 for (var j =
0; j <
160; j +=
2) {
36133 var majh = maj(ah, bh, ch)
36134 var majl = maj(al, bl, cl)
36136 var sigma0h = sigma0(ah, al)
36137 var sigma0l = sigma0(al, ah)
36138 var sigma1h = sigma1(eh, el)
36139 var sigma1l = sigma1(el, eh)
36141 // t1 = h + sigma1 + ch + K[j] + W[j]
36145 var chh = Ch(eh, fh, gh)
36146 var chl = Ch(el, fl, gl)
36148 var t1l = (hl + sigma1l) |
0
36149 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
36150 t1l = (t1l + chl) |
0
36151 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
36152 t1l = (t1l + Kil) |
0
36153 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
36154 t1l = (t1l + Wil) |
0
36155 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
36157 // t2 = sigma0 + maj
36158 var t2l = (sigma0l + majl) |
0
36159 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
36167 el = (dl + t1l) |
0
36168 eh = (dh + t1h + getCarry(el, dl)) |
0
36175 al = (t1l + t2l) |
0
36176 ah = (t1h + t2h + getCarry(al, t1l)) |
0
36179 this._al = (this._al + al) |
0
36180 this._bl = (this._bl + bl) |
0
36181 this._cl = (this._cl + cl) |
0
36182 this._dl = (this._dl + dl) |
0
36183 this._el = (this._el + el) |
0
36184 this._fl = (this._fl + fl) |
0
36185 this._gl = (this._gl + gl) |
0
36186 this._hl = (this._hl + hl) |
0
36188 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
36189 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
36190 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
36191 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
36192 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
36193 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
36194 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
36195 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
36198 Sha512.prototype._hash = function () {
36199 var H = new Buffer(
64)
36201 function writeInt64BE (h, l, offset) {
36202 H.writeInt32BE(h, offset)
36203 H.writeInt32BE(l, offset +
4)
36206 writeInt64BE(this._ah, this._al,
0)
36207 writeInt64BE(this._bh, this._bl,
8)
36208 writeInt64BE(this._ch, this._cl,
16)
36209 writeInt64BE(this._dh, this._dl,
24)
36210 writeInt64BE(this._eh, this._el,
32)
36211 writeInt64BE(this._fh, this._fl,
40)
36212 writeInt64BE(this._gh, this._gl,
48)
36213 writeInt64BE(this._hh, this._hl,
56)
36218 module.exports = Sha512
36220 }).call(this,require(
"buffer").Buffer)
36221 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
36222 var isHexPrefixed = require('is-hex-prefixed');
36225 * Removes '
0x' from a given `String` is present
36226 * @param {String} str the string value
36227 * @return {String|Optional} a string by pass if necessary
36229 module.exports = function stripHexPrefix(str) {
36230 if (typeof str !== 'string') {
36234 return isHexPrefixed(str) ? str.slice(
2) : str;
36237 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
36239 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
36243 /** @fileOverview Javascript cryptography implementation.
36245 * Crush to remove comments, shorten variable names and
36246 * generally reduce transmission size.
36248 * @author Emily Stark
36249 * @author Mike Hamburg
36250 * @author Dan Boneh
36254 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
36255 /*global document, window, escape, unescape, module, require, Uint32Array */
36257 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
36259 /** @namespace Symmetric ciphers. */
36262 /** @namespace Hash functions. Right now only SHA256 is implemented. */
36265 /** @namespace Key exchange functions. Right now only SRP is implemented. */
36268 /** @namespace Block cipher modes of operation. */
36271 /** @namespace Miscellaneous. HMAC and PBKDF2. */
36275 * @namespace Bit array encoders and decoders.
36278 * The members of this namespace are functions which translate between
36279 * SJCL's bitArrays and other objects (usually strings). Because it
36280 * isn't always clear which direction is encoding and which is decoding,
36281 * the method names are "fromBits" and "toBits".
36285 /** @namespace Exceptions. */
36287 /** @constructor Ciphertext is corrupt. */
36288 corrupt: function(message) {
36289 this.toString = function() { return "CORRUPT: "+this.message; };
36290 this.message = message;
36293 /** @constructor Invalid parameter. */
36294 invalid: function(message) {
36295 this.toString = function() { return "INVALID: "+this.message; };
36296 this.message = message;
36299 /** @constructor Bug or missing feature in SJCL. @constructor */
36300 bug: function(message) {
36301 this.toString = function() { return "BUG: "+this.message; };
36302 this.message = message;
36305 /** @constructor Something isn't ready. */
36306 notReady: function(message) {
36307 this.toString = function() { return "NOT READY: "+this.message; };
36308 this.message = message;
36313 if(typeof module !== 'undefined' && module.exports){
36314 module.exports = sjcl;
36316 if (typeof define === "function") {
36317 define([], function () {
36325 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
36327 * @author Emily Stark
36328 * @author Mike Hamburg
36329 * @author Dan Boneh
36332 /** @namespace Arrays of bits, encoded as arrays of Numbers.
36336 * These objects are the currency accepted by SJCL's crypto functions.
36340 * Most of our crypto primitives operate on arrays of
4-byte words internally,
36341 * but many of them can take arguments that are not a multiple of
4 bytes.
36342 * This library encodes arrays of bits (whose size need not be a multiple of
8
36343 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
36344 * array of words,
32 bits at a time. Since the words are double-precision
36345 * floating point numbers, they fit some extra data. We use this (in a private,
36346 * possibly-changing manner) to encode the number of bits actually present
36347 * in the last word of the array.
36351 * Because bitwise ops clear this out-of-band data, these arrays can be passed
36352 * to ciphers like AES which want arrays of words.
36357 * Array slices in units of bits.
36358 * @param {bitArray} a The array to slice.
36359 * @param {Number} bstart The offset to the start of the slice, in bits.
36360 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
36361 * slice until the end of the array.
36362 * @return {bitArray} The requested slice.
36364 bitSlice: function (a, bstart, bend) {
36365 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
36366 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
36370 * Extract a number packed into a bit array.
36371 * @param {bitArray} a The array to slice.
36372 * @param {Number} bstart The offset to the start of the slice, in bits.
36373 * @param {Number} length The length of the number to extract.
36374 * @return {Number} The requested slice.
36376 extract: function(a, bstart, blength) {
36377 // FIXME: this Math.floor is not necessary at all, but for some reason
36378 // seems to suppress a bug in the Chromium JIT.
36379 var x, sh = Math.floor((-bstart-blength) &
31);
36380 if ((bstart + blength -
1 ^ bstart) & -
32) {
36381 // it crosses a boundary
36382 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
36384 // within a single word
36385 x = a[bstart/
32|
0]
>>> sh;
36387 return x & ((
1<
<blength) -
1);
36391 * Concatenate two bit arrays.
36392 * @param {bitArray} a1 The first array.
36393 * @param {bitArray} a2 The second array.
36394 * @return {bitArray} The concatenation of a1 and a2.
36396 concat: function (a1, a2) {
36397 if (a1.length ===
0 || a2.length ===
0) {
36398 return a1.concat(a2);
36401 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
36402 if (shift ===
32) {
36403 return a1.concat(a2);
36405 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
36410 * Find the length of an array of bits.
36411 * @param {bitArray} a The array.
36412 * @return {Number} The length of a, in bits.
36414 bitLength: function (a) {
36415 var l = a.length, x;
36416 if (l ===
0) { return
0; }
36418 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
36422 * Truncate an array.
36423 * @param {bitArray} a The array.
36424 * @param {Number} len The length to truncate to, in bits.
36425 * @return {bitArray} A new array, truncated to len bits.
36427 clamp: function (a, len) {
36428 if (a.length *
32 < len) { return a; }
36429 a = a.slice(
0, Math.ceil(len /
32));
36432 if (l
> 0 && len) {
36433 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
36439 * Make a partial word for a bit array.
36440 * @param {Number} len The number of bits in the word.
36441 * @param {Number} x The bits.
36442 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
36443 * @return {Number} The partial word.
36445 partial: function (len, x, _end) {
36446 if (len ===
32) { return x; }
36447 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
36451 * Get the number of bits used by a partial word.
36452 * @param {Number} x The partial word.
36453 * @return {Number} The number of bits used by the partial word.
36455 getPartial: function (x) {
36456 return Math.round(x/
0x10000000000) ||
32;
36460 * Compare two arrays for equality in a predictable amount of time.
36461 * @param {bitArray} a The first array.
36462 * @param {bitArray} b The second array.
36463 * @return {boolean} true if a == b; false otherwise.
36465 equal: function (a, b) {
36466 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
36470 for (i=
0; i
<a.length; i++) {
36476 /** Shift an array right.
36477 * @param {bitArray} a The array to shift.
36478 * @param {Number} shift The number of bits to shift.
36479 * @param {Number} [carry=
0] A byte to carry in
36480 * @param {bitArray} [out=[]] An array to prepend to the output.
36483 _shiftRight: function (a, shift, carry, out) {
36484 var i, last2=
0, shift2;
36485 if (out === undefined) { out = []; }
36487 for (; shift
>=
32; shift -=
32) {
36492 return out.concat(a);
36495 for (i=
0; i
<a.length; i++) {
36496 out.push(carry | a[i]
>>>shift);
36497 carry = a[i] << (
32-shift);
36499 last2 = a.length ? a[a.length-
1] :
0;
36500 shift2 = sjcl.bitArray.getPartial(last2);
36501 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
36505 /** xor a block of
4 words together.
36508 _xor4: function(x,y) {
36509 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
36512 /** byteswap a word array inplace.
36513 * (does not handle partial words)
36514 * @param {sjcl.bitArray} a word array
36515 * @return {sjcl.bitArray} byteswapped array
36517 byteswapM: function(a) {
36518 var i, v, m =
0xff00;
36519 for (i =
0; i < a.length; ++i) {
36521 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
36528 //// codecString.js
36530 /** @fileOverview Bit array codec implementations.
36532 * @author Emily Stark
36533 * @author Mike Hamburg
36534 * @author Dan Boneh
36537 /** @namespace UTF-
8 strings */
36538 sjcl.codec.utf8String = {
36539 /** Convert from a bitArray to a UTF-
8 string. */
36540 fromBits: function (arr) {
36541 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
36542 for (i=
0; i
<bl/
8; i++) {
36546 out += String.fromCharCode(tmp
>>> 24);
36549 return decodeURIComponent(escape(out));
36552 /** Convert from a UTF-
8 string to a bitArray. */
36553 toBits: function (str) {
36554 str = unescape(encodeURIComponent(str));
36555 var out = [], i, tmp=
0;
36556 for (i=
0; i
<str.length; i++) {
36557 tmp = tmp <<
8 | str.charCodeAt(i);
36564 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
36573 /** @fileOverview Bit array codec implementations.
36575 * @author Emily Stark
36576 * @author Mike Hamburg
36577 * @author Dan Boneh
36580 /** @namespace Hexadecimal */
36582 /** Convert from a bitArray to a hex string. */
36583 fromBits: function (arr) {
36585 for (i=
0; i
<arr.length; i++) {
36586 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
36588 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
36590 /** Convert from a hex string to a bitArray. */
36591 toBits: function (str) {
36592 var i, out=[], len;
36593 str = str.replace(/\s|
0x/g,
"");
36595 str = str +
"00000000";
36596 for (i=
0; i
<str.length; i+=
8) {
36597 out.push(parseInt(str.substr(i,
8),
16)^
0);
36599 return sjcl.bitArray.clamp(out, len*
4);
36606 /** @fileOverview Javascript SHA-
512 implementation.
36608 * This implementation was written for CryptoJS by Jeff Mott and adapted for
36609 * SJCL by Stefan Thomas.
36611 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
36612 * Released with New BSD License
36614 * @author Emily Stark
36615 * @author Mike Hamburg
36616 * @author Dan Boneh
36617 * @author Jeff Mott
36618 * @author Stefan Thomas
36622 * Context for a SHA-
512 operation in progress.
36624 * @class Secure Hash Algorithm,
512 bits.
36626 sjcl.hash.sha512 = function (hash) {
36627 if (!this._key[
0]) { this._precompute(); }
36629 this._h = hash._h.slice(
0);
36630 this._buffer = hash._buffer.slice(
0);
36631 this._length = hash._length;
36638 * Hash a string or an array of words.
36640 * @param {bitArray|String} data the data to hash.
36641 * @return {bitArray} The hash value, an array of
16 big-endian words.
36643 sjcl.hash.sha512.hash = function (data) {
36644 return (new sjcl.hash.sha512()).update(data).finalize();
36647 sjcl.hash.sha512.prototype = {
36649 * The hash's block size, in bits.
36655 * Reset the hash state.
36658 reset:function () {
36659 this._h = this._init.slice(
0);
36666 * Input several words to the hash.
36667 * @param {bitArray|String} data the data to hash.
36670 update: function (data) {
36671 if (typeof data ===
"string") {
36672 data = sjcl.codec.utf8String.toBits(data);
36674 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
36676 nl = this._length = ol + sjcl.bitArray.bitLength(data);
36677 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
36678 this._block(b.splice(
0,
32));
36684 * Complete hashing and output the hash value.
36685 * @return {bitArray} The hash value, an array of
16 big-endian words.
36687 finalize:function () {
36688 var i, b = this._buffer, h = this._h;
36690 // Round out and push the buffer
36691 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
36693 // Round out the buffer to a multiple of
32 words, less the
4 length words.
36694 for (i = b.length +
4; i &
31; i++) {
36698 // append the length
36701 b.push(Math.floor(this._length /
0x100000000));
36702 b.push(this._length |
0);
36705 this._block(b.splice(
0,
32));
36713 * The SHA-
512 initialization vector, to be precomputed.
36719 * Least significant
24 bits of SHA512 initialization values.
36721 * Javascript only has
53 bits of precision, so we compute the
40 most
36722 * significant bits and add the remaining
24 bits as constants.
36726 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
36730 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
36731 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
36735 * The SHA-
512 hash key, to be precomputed.
36741 * Least significant
24 bits of SHA512 key values.
36745 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
36746 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
36747 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
36748 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
36749 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
36750 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
36751 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
36752 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
36753 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
36754 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
36758 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
36759 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
36760 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
36761 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
36762 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
36763 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
36764 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
36765 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
36766 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
36767 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
36768 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
36769 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
36770 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
36771 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
36772 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
36773 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
36774 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
36775 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
36776 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36777 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
36781 * Function to precompute _init and _key.
36784 _precompute: function () {
36785 // XXX: This code is for precomputing the SHA256 constants, change for
36786 // SHA512 and re-enable.
36787 var i =
0, prime =
2, factor;
36789 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
36790 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
36792 outer: for (; i
<80; prime++) {
36793 for (factor=
2; factor*factor <= prime; factor++) {
36794 if (prime % factor ===
0) {
36801 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
36802 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
36804 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
36805 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
36811 * Perform one cycle of SHA-
512.
36812 * @param {bitArray} words one block of words.
36815 _block:function (words) {
36817 w = words.slice(
0),
36820 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
36821 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
36822 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
36823 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
36825 // Working variables
36826 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
36827 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
36828 eh = h4h, el = h4l, fh = h5h, fl = h5l,
36829 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
36831 for (i=
0; i
<80; i++) {
36832 // load up the input word for this round
36835 wrl = w[i *
2 +
1];
36838 var gamma0xh = w[(i-
15) *
2];
36839 var gamma0xl = w[(i-
15) *
2 +
1];
36841 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
36842 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
36845 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
36846 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
36847 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
36850 var gamma1xh = w[(i-
2) *
2];
36851 var gamma1xl = w[(i-
2) *
2 +
1];
36853 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
36854 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
36857 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
36858 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
36859 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
36862 var wr7h = w[(i-
7) *
2];
36863 var wr7l = w[(i-
7) *
2 +
1];
36865 var wr16h = w[(i-
16) *
2];
36866 var wr16l = w[(i-
16) *
2 +
1];
36868 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
36869 wrl = gamma0l + wr7l;
36870 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
36872 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
36874 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
36878 w[i*
2 +
1] = wrl |=
0;
36881 var chh = (eh & fh) ^ (~eh & gh);
36882 var chl = (el & fl) ^ (~el & gl);
36885 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
36886 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
36889 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
36890 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
36893 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
36894 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
36898 var krl = k[i*
2+
1];
36900 // t1 = h + sigma1 + ch + K(round) + W(round)
36901 var t1l = hl + sigma1l;
36902 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
36904 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
36906 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
36907 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
36908 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
36910 // t2 = sigma0 + maj
36911 var t2l = sigma0l + majl;
36912 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
36914 // Update working variables
36921 el = (dl + t1l) |
0;
36922 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36929 al = (t1l + t2l) |
0;
36930 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
36933 // Intermediate hash
36934 h0l = h[
1] = (h0l + al) |
0;
36935 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
36936 h1l = h[
3] = (h1l + bl) |
0;
36937 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
36938 h2l = h[
5] = (h2l + cl) |
0;
36939 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
36940 h3l = h[
7] = (h3l + dl) |
0;
36941 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36942 h4l = h[
9] = (h4l + el) |
0;
36943 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
36944 h5l = h[
11] = (h5l + fl) |
0;
36945 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
36946 h6l = h[
13] = (h6l + gl) |
0;
36947 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
36948 h7l = h[
15] = (h7l + hl) |
0;
36949 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
36956 /** @fileOverview HMAC implementation.
36958 * @author Emily Stark
36959 * @author Mike Hamburg
36960 * @author Dan Boneh
36963 /** HMAC with the specified hash function.
36965 * @param {bitArray} key the key for HMAC.
36966 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
36968 sjcl.misc.hmac = function (key, Hash) {
36969 this._hash = Hash = Hash || sjcl.hash.sha256;
36970 var exKey = [[],[]], i,
36971 bs = Hash.prototype.blockSize /
32;
36972 this._baseHash = [new Hash(), new Hash()];
36974 if (key.length
> bs) {
36975 key = Hash.hash(key);
36978 for (i=
0; i
<bs; i++) {
36979 exKey[
0][i] = key[i]^
0x36363636;
36980 exKey[
1][i] = key[i]^
0x5C5C5C5C;
36983 this._baseHash[
0].update(exKey[
0]);
36984 this._baseHash[
1].update(exKey[
1]);
36985 this._resultHash = new Hash(this._baseHash[
0]);
36988 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
36989 * @param {bitArray|String} data The data to mac.
36991 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
36992 if (!this._updated) {
36994 return this.digest(data);
36996 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
37000 sjcl.misc.hmac.prototype.reset = function () {
37001 this._resultHash = new this._hash(this._baseHash[
0]);
37002 this._updated = false;
37005 sjcl.misc.hmac.prototype.update = function (data) {
37006 this._updated = true;
37007 this._resultHash.update(data);
37010 sjcl.misc.hmac.prototype.digest = function () {
37011 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
37022 /** @fileOverview Password-based key-derivation function, version
2.0.
37024 * @author Emily Stark
37025 * @author Mike Hamburg
37026 * @author Dan Boneh
37029 /** Password-Based Key-Derivation Function, version
2.0.
37031 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
37033 * This is the method specified by RSA's PKCS #
5 standard.
37035 * @param {bitArray|String} password The password.
37036 * @param {bitArray|String} salt The salt. Should have lots of entropy.
37037 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
37038 * @param {Number} [length] The length of the derived key. Defaults to the
37039 output size of the hash function.
37040 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
37041 * @return {bitArray} the derived key.
37043 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
37044 count = count ||
1000;
37046 if (length <
0 || count <
0) {
37047 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
37050 if (typeof password ===
"string") {
37051 password = sjcl.codec.utf8String.toBits(password);
37054 if (typeof salt ===
"string") {
37055 salt = sjcl.codec.utf8String.toBits(salt);
37058 Prff = Prff || sjcl.misc.hmac;
37060 var prf = new Prff(password),
37061 u, ui, i, j, k, out = [], b = sjcl.bitArray;
37063 for (k =
1;
32 * out.length < (length ||
1); k++) {
37064 u = ui = prf.encrypt(b.concat(salt,[k]));
37066 for (i=
1; i
<count; i++) {
37067 ui = prf.encrypt(ui);
37068 for (j=
0; j
<ui.length; j++) {
37073 out = out.concat(u);
37076 if (length) { out = b.clamp(out, length); }
37084 /** @fileOverview Javascript SHA-
256 implementation.
37086 * An older version of this implementation is available in the public
37087 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
37088 * Stanford University
2008-
2010 and BSD-licensed for liability
37091 * Special thanks to Aldo Cortesi for pointing out several bugs in
37094 * @author Emily Stark
37095 * @author Mike Hamburg
37096 * @author Dan Boneh
37100 * Context for a SHA-
256 operation in progress.
37102 * @class Secure Hash Algorithm,
256 bits.
37104 sjcl.hash.sha256 = function (hash) {
37105 if (!this._key[
0]) { this._precompute(); }
37107 this._h = hash._h.slice(
0);
37108 this._buffer = hash._buffer.slice(
0);
37109 this._length = hash._length;
37116 * Hash a string or an array of words.
37118 * @param {bitArray|String} data the data to hash.
37119 * @return {bitArray} The hash value, an array of
16 big-endian words.
37121 sjcl.hash.sha256.hash = function (data) {
37122 return (new sjcl.hash.sha256()).update(data).finalize();
37125 sjcl.hash.sha256.prototype = {
37127 * The hash's block size, in bits.
37133 * Reset the hash state.
37136 reset:function () {
37137 this._h = this._init.slice(
0);
37144 * Input several words to the hash.
37145 * @param {bitArray|String} data the data to hash.
37148 update: function (data) {
37149 if (typeof data ===
"string") {
37150 data = sjcl.codec.utf8String.toBits(data);
37152 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
37154 nl = this._length = ol + sjcl.bitArray.bitLength(data);
37155 for (i =
512+ol & -
512; i <= nl; i+=
512) {
37156 this._block(b.splice(
0,
16));
37162 * Complete hashing and output the hash value.
37163 * @return {bitArray} The hash value, an array of
8 big-endian words.
37165 finalize:function () {
37166 var i, b = this._buffer, h = this._h;
37168 // Round out and push the buffer
37169 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
37171 // Round out the buffer to a multiple of
16 words, less the
2 length words.
37172 for (i = b.length +
2; i &
15; i++) {
37176 // append the length
37177 b.push(Math.floor(this._length /
0x100000000));
37178 b.push(this._length |
0);
37181 this._block(b.splice(
0,
16));
37189 * The SHA-
256 initialization vector, to be precomputed.
37194 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
37198 * The SHA-
256 hash key, to be precomputed.
37204 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37205 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37206 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37207 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37208 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37209 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37210 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37211 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
37216 * Function to precompute _init and _key.
37219 _precompute: function () {
37220 var i =
0, prime =
2, factor;
37222 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
37224 outer: for (; i
<64; prime++) {
37225 for (factor=
2; factor*factor <= prime; factor++) {
37226 if (prime % factor ===
0) {
37233 this._init[i] = frac(Math.pow(prime,
1/
2));
37235 this._key[i] = frac(Math.pow(prime,
1/
3));
37241 * Perform one cycle of SHA-
256.
37242 * @param {bitArray} words one block of words.
37245 _block:function (words) {
37247 w = words.slice(
0),
37250 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
37251 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
37253 /* Rationale for placement of |
0 :
37254 * If a value can overflow is original
32 bits by a factor of more than a few
37255 * million (
2^
23 ish), there is a possibility that it might overflow the
37256 *
53-bit mantissa and lose precision.
37258 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
37259 * propagates around the loop, and on the hash state h[]. I don't believe
37260 * that the clamps on h4 and on h0 are strictly necessary, but it's close
37261 * (for h4 anyway), and better safe than sorry.
37263 * The clamps on h[] are necessary for the output to be correct even in the
37264 * common case and for short inputs.
37266 for (i=
0; i
<64; i++) {
37267 // load up the input word for this round
37271 a = w[(i+
1 ) &
15];
37272 b = w[(i+
14) &
15];
37273 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
37274 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
37275 w[i&
15] + w[(i+
9) &
15]) |
0;
37278 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
37281 h7 = h6; h6 = h5; h5 = h4;
37283 h3 = h2; h2 = h1; h1 = h0;
37285 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
37288 h[
0] = h[
0]+h0 |
0;
37289 h[
1] = h[
1]+h1 |
0;
37290 h[
2] = h[
2]+h2 |
0;
37291 h[
3] = h[
3]+h3 |
0;
37292 h[
4] = h[
4]+h4 |
0;
37293 h[
5] = h[
5]+h5 |
0;
37294 h[
6] = h[
6]+h6 |
0;
37295 h[
7] = h[
7]+h7 |
0;
37299 <script>// An extremely basic translation library
37303 // Set some html to be translated. Do this using the 'data-translate' attribute:
37305 //
<div data-translate
>Test
</div>
37306 //
<div data-translate-html
><em>keep em tag
</em></div>
37307 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
37308 //
<span data-translate-title
title=
"Example title"></span>
37310 // Obtain all the phrases to be translated via js debug console:
37312 // Translate.phrasesAsJson();
37314 // Use that template to translate the phrases into another language.
37315 // Leave the key the same. Change the value to the new language.
37317 // Create a js file to load the new phrases. In this example for Spanish,
37318 // es.js will contain the following code:
37320 // Translate.loadForeignPhrases("es", {
37321 // "Test": "Test in Spanish",
37322 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
37323 // "Example placeholder
": "Example placeholder in Spanish
"
37324 // "Example title
": "Example title in Spanish
"
37327 // In your UI put a listener for clicking on the Spanish button:
37329 // mySpanishButton.addEventListener("click
", function() {
37330 // Translate.setLanguage("es
");
37332 // myEnglishButton.addEventListener("click
", function() {
37333 // Translate.setLanguage("en
");
37336 Translate = new (function() {
37338 var defaultLanguage = "en
";
37340 var allPhrases = {};
37341 allPhrases[defaultLanguage] = {};
37346 selector: "[data-translate]
",
37347 getKey: function() {
37348 return this.textContent.trim().replace(/\s+/g, " ");
37350 setPhrase: function(p) {
37351 this.textContent = p;
37356 selector: "[data-translate-html]
",
37357 getKey: function() {
37358 return this.innerHTML.trim().replace(/\s+/g, " ");
37360 setPhrase: function(p) {
37361 this.innerHTML = p;
37365 var placeholder = {
37366 selector: "[data-translate-placeholder]
",
37367 getKey: function() {
37368 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
37370 setPhrase: function(p) {
37371 this.setAttribute("placeholder
", p);
37376 selector: "[data-translate-title]
",
37377 getKey: function() {
37378 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
37380 setPhrase: function(p) {
37381 this.setAttribute("title
", p);
37385 // Get elements to be translated
37386 var allEls = getEls(text)
37387 .concat(getEls(html))
37388 .concat(getEls(placeholder))
37389 .concat(getEls(title));
37391 // Provides access to phrases from a non-default language.
37392 // See phrases_en.js for example usage.
37393 this.loadForeignPhrases = function(language, phrases) {
37394 allPhrases[language] = phrases;
37397 // Displays a different language, eg "en
" or "fr
"
37398 this.setLanguage = function(language) {
37399 for (var i=0; i<allEls.length; i++) {
37400 var el = allEls[i];
37402 if (!(language in allPhrases)) {
37403 console.log(language + " not in allPhrases
");
37406 if (!(key in allPhrases[language])) {
37407 console.log(language + " does not contain phrase:
" + key);
37410 var phrase = allPhrases[language][key];
37411 el.setPhrase(phrase);
37415 // Converts the phrases to a key-pair json file.
37416 // This is a good way to export phrases for use in translation tools.
37417 this.phrasesAsJson = function(language) {
37419 for (var i=0; i<allEls.length; i++) {
37420 var el = allEls[i];
37426 for (var i=0; i<keys.length; i++) {
37428 var translated = "";
37429 if (language in allPhrases && key in allPhrases[language]) {
37430 translated = allPhrases[language][key];
37432 output[key] = translated;
37434 return JSON.stringify(output, null, 2);
37437 function getEls(nodeType) {
37438 var nodes = document.querySelectorAll(nodeType.selector);
37440 for (var i=0; i<nodes.length; i++) {
37441 var node = nodes[i];
37442 node.getKey = nodeType.getKey;
37443 node.setPhrase = nodeType.setPhrase;
37444 node.key = node.getKey();
37445 allPhrases[defaultLanguage][node.key] = node.key;
37453 <script>Translate.loadForeignPhrases("en",
37455 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
37456 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
37457 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
37458 "
<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).",
37459 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
37460 "Account": "Account",
37461 "Address": "Address",
37462 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
37463 "BIP32 Derivation Path": "BIP32 Derivation Path",
37464 "BIP32 Extended Key": "BIP32 Extended Key",
37465 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
37466 "BIP32 Root Key": "BIP32 Root Key",
37467 "BIP39 Mnemonic": "BIP39 Mnemonic",
37468 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
37469 "BIP39 Seed": "BIP39 Seed",
37470 "Base
10": "Base
10",
37471 "Base
6": "Base
6",
37472 "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.",
37473 "Binary": "Binary",
37474 "Bitcoin Core": "Bitcoin Core",
37475 "Bits Per Event": "Bits Per Event",
37476 "Block Explorers": "Block Explorers",
37477 "Can be used with": "Can be used with",
37481 "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.",
37482 "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.",
37483 "Entropy": "Entropy",
37484 "Entropy Type": "Entropy Type",
37485 "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.",
37486 "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>.",
37487 "Event Count": "Event Count",
37488 "External / Internal": "External / Internal",
37489 "Filtered Entropy": "Filtered Entropy",
37490 "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>",
37491 "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>.",
37492 "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>.",
37493 "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>",
37494 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
37495 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
37496 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
37497 "Get the source code from the repository
": "Get the source code from the repository
",
37499 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
37500 "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.
",
37501 "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.
",
37502 "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.
",
37503 "Libraries
": "Libraries
",
37504 "Mnemonic Language
": "Mnemonic Language
",
37505 "Mnemonic Length
": "Mnemonic Length
",
37506 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
37507 "More info
": "More info
",
37508 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
37509 "Mycelium Wallet
": "Mycelium Wallet
",
37510 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
37511 "Offline Usage
": "Offline Usage
",
37512 "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.",
37514 "Private Key": "Private Key",
37515 "Private Keys": "Private Keys",
37516 "Public Key": "Public Key",
37517 "Purpose": "Purpose",
37518 "Raw Binary": "Raw Binary",
37519 "Read more": "Read more",
37520 "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>",
37521 "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>",
37522 "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>",
37523 "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>",
37525 "Show more rows
": "Show more rows
",
37526 "Strength
": "Strength
",
37527 "Supply my own source of entropy
": "Supply my own source of entropy
",
37528 "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.
",
37529 "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>.",
37530 "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.",
37531 "This project is
100% open-source code": "This project is
100% open-source code",
37532 "Toggle": "Toggle",
37533 "Total Bits": "Total Bits",
37534 "Use hardened addresses": "Use hardened addresses",
37535 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
37536 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
37537 "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>.",
37538 "Valid entropy values include:": "Valid entropy values include:",
37539 "Warning": "Warning",
37540 "Word Count": "Word Count",
37541 "You are not a good source of entropy.": "You are not a good source of entropy.",
37542 "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).",
37543 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
37548 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37549 WORDLISTS["english"] = [
37550 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
37551 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
37552 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
37553 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
37554 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
37555 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
37556 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
37557 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
37558 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
37559 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
37560 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
37561 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
37562 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
37563 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
37564 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
37565 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
37566 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
37567 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
37568 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
37569 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
37570 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
37571 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
37572 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
37573 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
37574 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
37575 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
37576 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
37577 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
37578 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
37579 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
37580 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
37581 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
37582 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
37583 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
37584 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
37585 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
37586 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
37587 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
37588 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
37589 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
37590 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
37591 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
37592 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
37593 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
37594 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
37595 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
37596 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
37597 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
37598 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
37599 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
37600 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
37601 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
37602 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
37603 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
37604 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
37605 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
37606 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
37607 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
37608 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
37609 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
37610 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
37611 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
37612 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
37613 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
37614 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
37615 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
37616 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
37617 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
37618 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
37619 "film","filter","final","find","fine","finger","finish","fire","firm","first",
37620 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
37621 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
37622 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
37623 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
37624 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
37625 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
37626 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
37627 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
37628 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
37629 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
37630 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
37631 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
37632 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
37633 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
37634 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
37635 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
37636 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
37637 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
37638 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
37639 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
37640 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
37641 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
37642 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
37643 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
37644 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
37645 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
37646 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
37647 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
37648 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
37649 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
37650 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
37651 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
37652 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
37653 "liar","liberty","library","license","life","lift","light","like","limb","limit",
37654 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
37655 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
37656 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
37657 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
37658 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
37659 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
37660 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
37661 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
37662 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
37663 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
37664 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
37665 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
37666 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
37667 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
37668 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
37669 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
37670 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
37671 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
37672 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
37673 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
37674 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
37675 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
37676 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
37677 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
37678 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
37679 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
37680 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
37681 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
37682 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
37683 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
37684 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
37685 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
37686 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
37687 "prize","problem","process","produce","profit","program","project","promote","proof","property",
37688 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
37689 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
37690 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
37691 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
37692 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
37693 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
37694 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
37695 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
37696 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
37697 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
37698 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
37699 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
37700 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
37701 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
37702 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
37703 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
37704 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
37705 "scrub","sea","search","season","seat","second","secret","section","security","seed",
37706 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
37707 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
37708 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
37709 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
37710 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
37711 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
37712 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
37713 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
37714 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
37715 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
37716 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
37717 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
37718 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
37719 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
37720 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
37721 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
37722 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
37723 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
37724 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
37725 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
37726 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
37727 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
37728 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
37729 "thank","that","theme","then","theory","there","they","thing","this","thought",
37730 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
37731 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
37732 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
37733 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
37734 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
37735 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
37736 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
37737 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
37738 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
37739 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
37740 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
37741 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
37742 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
37743 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
37744 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
37745 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
37746 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
37747 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
37748 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
37749 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
37750 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
37751 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
37752 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
37753 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
37754 "yellow","you","young","youth","zebra","zero","zone","zoo"]
37756 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37757 WORDLISTS["japanese"] = [
37758 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
37759 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
37760 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
37761 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
37762 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
37763 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
37764 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
37765 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
37766 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
37767 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
37768 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
37769 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
37770 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
37771 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
37772 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
37773 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
37774 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
37775 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
37776 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
37777 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
37778 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
37779 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
37780 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
37781 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
37782 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
37783 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
37784 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
37785 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
37786 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
37787 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
37788 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
37789 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
37790 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
37791 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
37792 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
37793 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
37794 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
37795 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
37796 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
37797 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
37798 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
37799 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
37800 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
37801 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
37802 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
37803 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
37804 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
37805 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
37806 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
37807 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
37808 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
37809 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
37810 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
37811 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
37812 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
37813 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
37814 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
37815 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
37816 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
37817 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
37818 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
37819 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
37820 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
37821 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
37822 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
37823 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
37824 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
37825 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
37826 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
37827 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
37828 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
37829 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
37830 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
37831 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
37832 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
37833 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
37834 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
37835 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
37836 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
37837 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
37838 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
37839 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
37840 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
37841 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
37842 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
37843 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
37844 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
37845 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
37846 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
37847 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
37848 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
37849 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
37850 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
37851 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
37852 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
37853 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
37854 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
37855 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
37856 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
37857 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
37858 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
37859 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
37860 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
37861 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
37862 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
37863 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
37864 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
37865 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
37866 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
37867 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
37868 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
37869 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
37870 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
37871 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
37872 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
37873 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
37874 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
37875 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
37876 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
37877 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
37878 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
37879 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
37880 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
37881 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
37882 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
37883 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
37884 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
37885 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
37886 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
37887 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
37888 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
37889 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
37890 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
37891 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
37892 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
37893 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
37894 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
37895 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
37896 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
37897 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
37898 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
37899 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
37900 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
37901 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
37902 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
37903 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
37904 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
37905 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
37906 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
37907 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
37908 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
37909 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
37910 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
37911 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
37912 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
37913 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
37914 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
37915 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
37916 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
37917 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
37918 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
37919 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
37920 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
37921 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
37922 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
37923 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
37924 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
37925 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
37926 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
37927 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
37928 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
37929 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
37930 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
37931 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
37932 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
37933 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
37934 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
37935 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
37936 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
37937 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
37938 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
37939 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
37940 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
37941 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
37942 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
37943 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
37944 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
37945 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
37946 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
37947 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
37948 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
37949 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
37950 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
37951 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
37952 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
37953 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
37954 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
37955 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
37956 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
37957 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
37958 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
37959 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
37960 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
37961 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
37962 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
37964 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37965 WORDLISTS["spanish"] = [
37966 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
37967 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
37968 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
37969 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
37970 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
37971 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
37972 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
37973 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
37974 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
37975 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
37976 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
37977 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
37978 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
37979 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
37980 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
37981 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
37982 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
37983 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
37984 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
37985 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
37986 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
37987 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
37988 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
37989 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
37990 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
37991 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
37992 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
37993 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
37994 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
37995 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
37996 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
37997 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
37998 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
37999 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
38000 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
38001 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
38002 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
38003 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
38004 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
38005 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
38006 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
38007 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
38008 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
38009 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
38010 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
38011 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
38012 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
38013 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
38014 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
38015 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
38016 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
38017 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
38018 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
38019 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
38020 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
38021 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
38022 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
38023 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
38024 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
38025 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
38026 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
38027 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
38028 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
38029 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
38030 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
38031 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
38032 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
38033 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
38034 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
38035 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
38036 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
38037 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
38038 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
38039 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
38040 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
38041 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
38042 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
38043 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
38044 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
38045 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
38046 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
38047 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
38048 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
38049 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
38050 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
38051 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
38052 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
38053 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
38054 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
38055 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
38056 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
38057 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
38058 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
38059 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
38060 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
38061 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
38062 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
38063 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
38064 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
38065 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
38066 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
38067 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
38068 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
38069 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
38070 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
38071 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
38072 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
38073 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
38074 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
38075 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
38076 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
38077 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
38078 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
38079 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
38080 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
38081 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
38082 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
38083 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
38084 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
38085 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
38086 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
38087 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
38088 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
38089 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
38090 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
38091 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
38092 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
38093 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
38094 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
38095 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
38096 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
38097 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
38098 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
38099 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
38100 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
38101 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
38102 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
38103 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
38104 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
38105 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
38106 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
38107 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
38108 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
38109 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
38110 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
38111 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
38112 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
38113 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
38114 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
38115 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
38116 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
38117 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
38118 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
38119 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
38120 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
38121 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
38122 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
38123 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
38124 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
38125 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
38126 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
38127 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
38128 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
38129 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
38130 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
38131 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
38132 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
38133 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
38134 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
38135 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
38136 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
38137 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
38138 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
38139 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
38140 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
38141 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
38142 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
38143 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
38144 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
38145 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
38146 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
38147 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
38148 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
38149 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
38150 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
38151 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
38152 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
38153 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
38154 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
38155 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
38156 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
38157 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
38158 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
38159 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
38160 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
38161 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
38162 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
38163 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
38164 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
38165 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
38166 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
38167 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
38168 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
38169 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
38170 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
38172 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38173 WORDLISTS["chinese_simplified"] = [
38174 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
38175 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
38176 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
38177 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
38178 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
38179 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
38180 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
38181 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
38182 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
38183 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
38184 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
38185 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38186 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
38187 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
38188 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
38189 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
38190 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
38191 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
38192 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
38193 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
38194 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
38195 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
38196 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
38197 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
38198 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
38199 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
38200 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
38201 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
38202 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
38203 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
38204 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
38205 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
38206 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
38207 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
38208 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
38209 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
38210 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
38211 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
38212 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
38213 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
38214 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
38215 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
38216 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
38217 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
38218 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
38219 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
38220 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
38221 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
38222 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
38223 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
38224 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
38225 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
38226 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
38227 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
38228 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
38229 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
38230 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
38231 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
38232 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
38233 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
38234 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
38235 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
38236 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
38237 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
38238 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
38239 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
38240 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
38241 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
38242 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
38243 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
38244 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
38245 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
38246 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
38247 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
38248 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
38249 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38250 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
38251 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
38252 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
38253 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
38254 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
38255 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
38256 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
38257 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
38258 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
38259 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
38260 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
38261 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
38262 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
38263 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
38264 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
38265 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
38266 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38267 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
38268 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
38269 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
38270 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
38271 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
38272 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
38273 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
38274 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
38275 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
38276 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
38277 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
38278 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
38279 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
38280 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
38281 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
38282 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38283 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38284 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
38285 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
38286 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
38287 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
38288 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
38289 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
38290 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
38291 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
38292 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
38293 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
38294 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
38295 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38296 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
38297 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
38298 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
38299 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
38300 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
38301 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
38302 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
38303 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
38304 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
38305 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
38306 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
38307 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
38308 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
38309 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
38310 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
38311 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
38312 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
38313 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
38314 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
38315 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
38316 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
38317 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
38318 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
38319 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
38320 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
38321 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
38322 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
38323 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
38324 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
38325 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
38326 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
38327 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
38328 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
38329 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
38330 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
38331 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
38332 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
38333 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
38334 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
38335 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
38336 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
38337 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
38338 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
38339 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
38340 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
38341 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
38342 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
38343 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
38344 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
38345 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
38346 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
38347 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
38348 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
38349 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
38350 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
38351 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
38352 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
38353 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
38354 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
38355 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
38356 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
38357 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
38358 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
38359 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
38360 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
38361 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
38362 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
38363 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
38364 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
38365 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
38366 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
38367 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
38368 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
38369 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
38370 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
38371 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
38372 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
38373 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
38374 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
38375 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
38376 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
38377 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
38378 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
38380 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38381 WORDLISTS["chinese_traditional"] = [
38382 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
38383 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
38384 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
38385 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
38386 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
38387 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
38388 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
38389 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
38390 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
38391 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
38392 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
38393 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38394 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
38395 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
38396 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
38397 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
38398 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
38399 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
38400 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
38401 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
38402 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
38403 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
38404 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
38405 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
38406 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
38407 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
38408 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
38409 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
38410 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
38411 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
38412 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
38413 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
38414 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
38415 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
38416 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
38417 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
38418 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
38419 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
38420 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
38421 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
38422 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
38423 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
38424 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
38425 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
38426 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
38427 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
38428 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
38429 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
38430 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
38431 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
38432 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
38433 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
38434 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
38435 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
38436 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
38437 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
38438 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
38439 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
38440 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
38441 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
38442 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
38443 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
38444 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
38445 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
38446 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
38447 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
38448 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
38449 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
38450 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
38451 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
38452 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
38453 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
38454 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
38455 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
38456 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
38457 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38458 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
38459 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
38460 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
38461 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
38462 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
38463 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
38464 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
38465 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
38466 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
38467 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
38468 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
38469 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
38470 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
38471 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
38472 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
38473 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
38474 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38475 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
38476 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
38477 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
38478 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
38479 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
38480 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
38481 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
38482 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
38483 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
38484 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
38485 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
38486 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
38487 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
38488 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
38489 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
38490 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38491 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38492 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
38493 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
38494 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
38495 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
38496 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
38497 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
38498 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
38499 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
38500 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
38501 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
38502 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
38503 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38504 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
38505 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
38506 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
38507 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
38508 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
38509 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
38510 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
38511 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
38512 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
38513 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
38514 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
38515 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
38516 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
38517 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
38518 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
38519 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
38520 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
38521 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
38522 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
38523 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
38524 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
38525 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
38526 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
38527 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
38528 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
38529 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
38530 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
38531 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
38532 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
38533 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
38534 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
38535 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
38536 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
38537 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
38538 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
38539 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
38540 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
38541 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
38542 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
38543 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
38544 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
38545 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
38546 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
38547 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
38548 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
38549 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
38550 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
38551 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
38552 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
38553 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
38554 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
38555 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
38556 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
38557 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
38558 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
38559 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
38560 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
38561 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
38562 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
38563 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
38564 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
38565 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
38566 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
38567 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
38568 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
38569 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
38570 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
38571 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
38572 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
38573 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
38574 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
38575 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
38576 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
38577 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
38578 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
38579 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
38580 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
38581 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
38582 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
38583 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
38584 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
38585 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
38586 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
38588 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38589 WORDLISTS["french"] = [
38590 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
38591 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
38592 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
38593 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
38594 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
38595 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
38596 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
38597 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
38598 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
38599 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
38600 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
38601 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
38602 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
38603 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
38604 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
38605 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
38606 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
38607 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
38608 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
38609 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
38610 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
38611 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
38612 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
38613 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
38614 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
38615 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
38616 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
38617 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
38618 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
38619 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
38620 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
38621 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
38622 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
38623 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
38624 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
38625 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
38626 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
38627 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
38628 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
38629 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
38630 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
38631 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
38632 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
38633 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
38634 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
38635 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
38636 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
38637 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
38638 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
38639 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
38640 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
38641 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
38642 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
38643 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
38644 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
38645 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
38646 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
38647 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
38648 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
38649 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
38650 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
38651 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
38652 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
38653 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
38654 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
38655 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
38656 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
38657 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
38658 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
38659 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
38660 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
38661 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
38662 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
38663 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
38664 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
38665 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
38666 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
38667 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
38668 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
38669 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
38670 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
38671 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
38672 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
38673 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
38674 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
38675 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
38676 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
38677 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
38678 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
38679 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
38680 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
38681 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
38682 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
38683 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
38684 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
38685 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
38686 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
38687 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
38688 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
38689 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
38690 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
38691 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
38692 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
38693 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
38694 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
38695 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
38696 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
38697 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
38698 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
38699 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
38700 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
38701 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
38702 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
38703 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
38704 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
38705 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
38706 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
38707 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
38708 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
38709 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
38710 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
38711 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
38712 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
38713 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
38714 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
38715 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
38716 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
38717 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
38718 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
38719 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
38720 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
38721 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
38722 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
38723 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
38724 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
38725 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
38726 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
38727 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
38728 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
38729 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
38730 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
38731 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
38732 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
38733 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
38734 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
38735 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
38736 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
38737 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
38738 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
38739 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
38740 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
38741 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
38742 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
38743 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
38744 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
38745 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
38746 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
38747 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
38748 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
38749 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
38750 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
38751 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
38752 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
38753 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
38754 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
38755 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
38756 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
38757 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
38758 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
38759 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
38760 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
38761 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
38762 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
38763 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
38764 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
38765 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
38766 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
38767 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
38768 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
38769 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
38770 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
38771 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
38772 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
38773 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
38774 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
38775 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
38776 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
38777 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
38778 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
38779 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
38780 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
38781 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
38782 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
38783 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
38784 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
38785 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
38786 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
38787 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
38788 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
38789 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
38790 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
38791 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
38792 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
38793 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
38794 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
38796 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38797 WORDLISTS["italian"] = [
38798 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
38799 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
38800 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
38801 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
38802 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
38803 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
38804 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
38805 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
38806 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
38807 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
38808 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
38809 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
38810 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
38811 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
38812 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
38813 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
38814 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
38815 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
38816 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
38817 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
38818 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
38819 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
38820 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
38821 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
38822 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
38823 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
38824 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
38825 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
38826 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
38827 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
38828 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
38829 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
38830 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
38831 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
38832 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
38833 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
38834 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
38835 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
38836 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
38837 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
38838 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
38839 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
38840 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
38841 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
38842 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
38843 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
38844 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
38845 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
38846 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
38847 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
38848 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
38849 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
38850 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
38851 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
38852 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
38853 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
38854 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
38855 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
38856 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
38857 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
38858 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
38859 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
38860 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
38861 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
38862 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
38863 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
38864 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
38865 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
38866 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
38867 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
38868 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
38869 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
38870 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
38871 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
38872 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
38873 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
38874 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
38875 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
38876 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
38877 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
38878 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
38879 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
38880 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
38881 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
38882 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
38883 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
38884 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
38885 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
38886 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
38887 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
38888 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
38889 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
38890 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
38891 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
38892 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
38893 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
38894 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
38895 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
38896 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
38897 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
38898 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
38899 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
38900 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
38901 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
38902 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
38903 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
38904 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
38905 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
38906 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
38907 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
38908 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
38909 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
38910 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
38911 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
38912 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
38913 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
38914 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
38915 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
38916 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
38917 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
38918 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
38919 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
38920 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
38921 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
38922 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
38923 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
38924 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
38925 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
38926 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
38927 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
38928 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
38929 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
38930 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
38931 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
38932 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
38933 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
38934 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
38935 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
38936 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
38937 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
38938 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
38939 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
38940 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
38941 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
38942 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
38943 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
38944 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
38945 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
38946 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
38947 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
38948 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
38949 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
38950 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
38951 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
38952 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
38953 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
38954 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
38955 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
38956 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
38957 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
38958 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
38959 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
38960 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
38961 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
38962 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
38963 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
38964 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
38965 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
38966 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
38967 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
38968 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
38969 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
38970 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
38971 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
38972 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
38973 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
38974 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
38975 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
38976 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
38977 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
38978 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
38979 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
38980 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
38981 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
38982 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
38983 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
38984 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
38985 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
38986 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
38987 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
38988 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
38989 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
38990 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
38991 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
38992 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
38993 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
38994 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
38995 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
38996 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
38997 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
38998 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
38999 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
39000 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
39001 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
39002 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
39005 * Copyright (c)
2013 Pavol Rusnak
39007 * Permission is hereby granted, free of charge, to any person obtaining a copy of
39008 * this software and associated documentation files (the "Software"), to deal in
39009 * the Software without restriction, including without limitation the rights to
39010 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
39011 * of the Software, and to permit persons to whom the Software is furnished to do
39012 * so, subject to the following conditions:
39014 * The above copyright notice and this permission notice shall be included in all
39015 * copies or substantial portions of the Software.
39017 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39018 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39019 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39020 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39021 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
39022 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39026 * Javascript port from python by Ian Coleman
39028 * Requires code from sjcl
39029 * https://github.com/bitwiseshiftleft/sjcl
39032 var Mnemonic = function(language) {
39034 var PBKDF2_ROUNDS =
2048;
39040 var hmacSHA512 = function(key) {
39041 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
39042 this.encrypt = function() {
39043 return hasher.encrypt.apply(hasher, arguments);
39048 wordlist = WORDLISTS[language];
39049 if (wordlist.length != RADIX) {
39050 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
39055 self.generate = function(strength) {
39056 strength = strength ||
128;
39057 var r = strength %
32;
39059 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
39061 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
39062 if (!hasStrongCrypto) {
39063 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
39065 var buffer = new Uint8Array(strength /
8);
39066 var data = crypto.getRandomValues(buffer);
39067 return self.toMnemonic(data);
39070 self.toMnemonic = function(byteArray) {
39071 if (byteArray.length %
4 > 0) {
39072 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
39075 //h = hashlib.sha256(data).hexdigest()
39076 var data = byteArrayToWordArray(byteArray);
39077 var hash = sjcl.hash.sha256.hash(data);
39078 var h = sjcl.codec.hex.fromBits(hash);
39080 // b is a binary string, eg '
00111010101100...'
39081 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
39082 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
39084 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
39085 // c = bin(int(h,
16))[
2:].zfill(
256)
39086 // d = c[:len(data) *
8 /
32]
39087 var a = byteArrayToBinaryString(byteArray);
39088 var c = zfill(hexStringToBinaryString(h),
256);
39089 var d = c.substring(
0, byteArray.length *
8 /
32);
39090 // b = line1 + line2
39094 var blen = b.length /
11;
39095 for (var i=
0; i
<blen; i++) {
39096 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
39097 result.push(wordlist[idx]);
39099 return self.joinWords(result);
39102 self.check = function(mnemonic) {
39103 var mnemonic = self.splitWords(mnemonic);
39104 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
39107 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
39109 for (var i=
0; i
<mnemonic.length; i++) {
39110 var word = mnemonic[i];
39111 var wordIndex = wordlist.indexOf(word);
39112 if (wordIndex == -
1) {
39115 var binaryIndex = zfill(wordIndex.toString(
2),
11);
39116 idx.push(binaryIndex);
39118 var b = idx.join('');
39120 //d = b[:l /
33 *
32]
39122 var d = b.substring(
0, l /
33 *
32);
39123 var h = b.substring(l - l /
33, l);
39124 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
39125 var nd = binaryStringToWordArray(d);
39126 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
39127 var ndHash = sjcl.hash.sha256.hash(nd);
39128 var ndHex = sjcl.codec.hex.fromBits(ndHash);
39129 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
39130 var nh = ndBstr.substring(
0,l/
33);
39134 self.toSeed = function(mnemonic, passphrase) {
39135 passphrase = passphrase || '';
39136 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
39137 var mnemonicNormalized = self.normalizeString(mnemonic);
39138 passphrase = self.normalizeString(passphrase)
39139 passphrase =
"mnemonic" + passphrase;
39140 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
39141 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
39142 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
39143 var hashHex = sjcl.codec.hex.fromBits(result);
39147 self.splitWords = function(mnemonic) {
39148 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
39151 self.joinWords = function(words) {
39152 // Set space correctly depending on the language
39153 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
39155 if (language ==
"japanese") {
39156 space =
"\u3000"; // ideographic space
39158 return words.join(space);
39161 self.normalizeString = function(str) {
39162 if (typeof str.normalize ==
"function") {
39163 return str.normalize(
"NFKD");
39166 // TODO decide how to handle this in the future.
39167 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
39172 function byteArrayToWordArray(data) {
39174 for (var i=
0; i
<data.length/
4; i++) {
39176 v += data[i*
4 +
0] <<
8 *
3;
39177 v += data[i*
4 +
1] <<
8 *
2;
39178 v += data[i*
4 +
2] <<
8 *
1;
39179 v += data[i*
4 +
3] <<
8 *
0;
39185 function byteArrayToBinaryString(data) {
39187 for (var i=
0; i
<data.length; i++) {
39188 bin += zfill(data[i].toString(
2),
8);
39193 function hexStringToBinaryString(hexString) {
39195 for (var i=
0; i
<hexString.length; i++) {
39196 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
39198 return binaryString;
39201 function binaryStringToWordArray(binary) {
39202 var aLen = binary.length /
32;
39204 for (var i=
0; i
<aLen; i++) {
39205 var valueStr = binary.substring(
0,
32);
39206 var value = parseInt(valueStr,
2);
39208 binary = binary.slice(
32);
39213 // Pad a numeric string on the left with zero digits until the given width
39215 // Note this differs to the python implementation because it does not
39216 // handle numbers starting with a sign.
39217 function zfill(source, length) {
39218 source = source.toString();
39219 while (source.length < length) {
39220 source = '
0' + source;
39230 JavaScript BigInteger library version
0.9.1
39231 http://silentmatt.com/biginteger/
39233 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
39234 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
39235 Licensed under the MIT license.
39237 Support for arbitrary internal representation base was added by
39242 File: biginteger.js
39248 (function(exports) {
39252 An arbitrarily-large integer.
39254 <BigInteger> objects should be considered immutable. None of the "built-in"
39255 methods modify *this* or their arguments. All properties should be
39256 considered private.
39258 All the methods of
<BigInteger> instances can be called "statically". The
39259 static versions are convenient if you don't already have a
<BigInteger>
39262 As an example, these calls are equivalent.
39264 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
39265 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
39268 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
39271 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
39274 Constructor: BigInteger()
39275 Convert a value to a
<BigInteger>.
39277 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
39278 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
39279 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
39280 without a radix argument.
39282 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
39283 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
39284 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
39285 > var n3 = BigInteger(n2); // Return n2, unchanged
39287 The constructor form only takes an array and a sign. *n* must be an
39288 array of numbers in little-endian order, where each digit is between
0
39289 and BigInteger.base. The second parameter sets the sign: -
1 for
39290 negative, +
1 for positive, or
0 for zero. The array is *not copied and
39291 may be modified*. If the array contains only zeros, the sign parameter
39292 is ignored and is forced to zero.
39294 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
39298 n - Value to convert to a
<BigInteger>.
39302 A
<BigInteger> value.
39306 <parse>,
<BigInteger>
39308 function BigInteger(n, s, token) {
39309 if (token !== CONSTRUCT) {
39310 if (n instanceof BigInteger) {
39313 else if (typeof n === "undefined") {
39316 return BigInteger.parse(n);
39319 n = n || []; // Provide the nullary constructor for subclasses.
39320 while (n.length && !n[n.length -
1]) {
39324 this._s = n.length ? (s ||
1) :
0;
39327 BigInteger._construct = function(n, s) {
39328 return new BigInteger(n, s, CONSTRUCT);
39331 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
39332 // require base to be a power of
10.
10^
7 is the largest such power
39333 // that won't cause a precision loss when digits are multiplied.
39334 var BigInteger_base =
10000000;
39335 var BigInteger_base_log10 =
7;
39337 BigInteger.base = BigInteger_base;
39338 BigInteger.base_log10 = BigInteger_base_log10;
39340 var ZERO = new BigInteger([],
0, CONSTRUCT);
39343 BigInteger.ZERO = ZERO;
39345 var ONE = new BigInteger([
1],
1, CONSTRUCT);
39348 BigInteger.ONE = ONE;
39350 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
39352 //
<BigInteger> -
1.
39353 BigInteger.M_ONE = M_ONE;
39356 // Shortcut for
<ZERO>.
39357 BigInteger._0 = ZERO;
39360 // Shortcut for
<ONE>.
39361 BigInteger._1 = ONE;
39365 Array of
<BigIntegers> from
0 to
36.
39367 These are used internally for parsing, but useful when you need a "small"
39372 <ZERO>,
<ONE>,
<_0>,
<_1>
39374 BigInteger.small = [
39377 /* Assuming BigInteger_base
> 36 */
39378 new BigInteger( [
2],
1, CONSTRUCT),
39379 new BigInteger( [
3],
1, CONSTRUCT),
39380 new BigInteger( [
4],
1, CONSTRUCT),
39381 new BigInteger( [
5],
1, CONSTRUCT),
39382 new BigInteger( [
6],
1, CONSTRUCT),
39383 new BigInteger( [
7],
1, CONSTRUCT),
39384 new BigInteger( [
8],
1, CONSTRUCT),
39385 new BigInteger( [
9],
1, CONSTRUCT),
39386 new BigInteger([
10],
1, CONSTRUCT),
39387 new BigInteger([
11],
1, CONSTRUCT),
39388 new BigInteger([
12],
1, CONSTRUCT),
39389 new BigInteger([
13],
1, CONSTRUCT),
39390 new BigInteger([
14],
1, CONSTRUCT),
39391 new BigInteger([
15],
1, CONSTRUCT),
39392 new BigInteger([
16],
1, CONSTRUCT),
39393 new BigInteger([
17],
1, CONSTRUCT),
39394 new BigInteger([
18],
1, CONSTRUCT),
39395 new BigInteger([
19],
1, CONSTRUCT),
39396 new BigInteger([
20],
1, CONSTRUCT),
39397 new BigInteger([
21],
1, CONSTRUCT),
39398 new BigInteger([
22],
1, CONSTRUCT),
39399 new BigInteger([
23],
1, CONSTRUCT),
39400 new BigInteger([
24],
1, CONSTRUCT),
39401 new BigInteger([
25],
1, CONSTRUCT),
39402 new BigInteger([
26],
1, CONSTRUCT),
39403 new BigInteger([
27],
1, CONSTRUCT),
39404 new BigInteger([
28],
1, CONSTRUCT),
39405 new BigInteger([
29],
1, CONSTRUCT),
39406 new BigInteger([
30],
1, CONSTRUCT),
39407 new BigInteger([
31],
1, CONSTRUCT),
39408 new BigInteger([
32],
1, CONSTRUCT),
39409 new BigInteger([
33],
1, CONSTRUCT),
39410 new BigInteger([
34],
1, CONSTRUCT),
39411 new BigInteger([
35],
1, CONSTRUCT),
39412 new BigInteger([
36],
1, CONSTRUCT)
39415 // Used for parsing/radix conversion
39416 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
39420 Convert a
<BigInteger> to a string.
39422 When *base* is greater than
10, letters are upper case.
39426 base - Optional base to represent the number in (default is base
10).
39427 Must be between
2 and
36 inclusive, or an Error will be thrown.
39431 The string representation of the
<BigInteger>.
39433 BigInteger.prototype.toString = function(base) {
39434 base = +base ||
10;
39435 if (base <
2 || base
> 36) {
39436 throw new Error(
"illegal radix " + base +
".");
39438 if (this._s ===
0) {
39442 var str = this._s <
0 ?
"-" :
"";
39443 str += this._d[this._d.length -
1].toString();
39444 for (var i = this._d.length -
2; i
>=
0; i--) {
39445 var group = this._d[i].toString();
39446 while (group.length < BigInteger_base_log10) group = '
0' + group;
39452 var numerals = BigInteger.digits;
39453 base = BigInteger.small[base];
39454 var sign = this._s;
39456 var n = this.abs();
39460 while (n._s !==
0) {
39461 var divmod = n.divRem(base);
39464 // TODO: This could be changed to unshift instead of reversing at the end.
39465 // Benchmark both to compare speeds.
39466 digits.push(numerals[digit.valueOf()]);
39468 return (sign <
0 ? "-" : "") + digits.reverse().join("");
39472 // Verify strings for parsing
39473 BigInteger.radixRegex = [
39515 Parse a string into a
<BigInteger>.
39517 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
39518 *base* is not provided, it will be guessed based on the leading characters
39521 - "
0x" or "
0X": *base* =
16
39522 - "
0c" or "
0C": *base* =
8
39523 - "
0b" or "
0B": *base* =
2
39524 - else: *base* =
10
39526 If no base is provided, or *base* is
10, the number can be in exponential
39527 form. For example, these are all valid:
39529 > BigInteger.parse("
1e9"); // Same as "
1000000000"
39530 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
39531 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
39533 If any characters fall outside the range defined by the radix, an exception
39538 s - The string to parse.
39539 base - Optional radix (default is to guess based on *s*).
39543 a
<BigInteger> instance.
39545 BigInteger.parse = function(s, base) {
39546 // Expands a number in exponential form to decimal form.
39547 // expandExponential("-
13.441*
10^
5") === "
1344100";
39548 // expandExponential("
1.12300e-1") === "
0.112300";
39549 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
39550 function expandExponential(str) {
39551 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
39553 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
39556 var i = n.length + c;
39557 x = (l ? n : f).length;
39558 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
39559 var z = (new Array(c +
1)).join("
0");
39561 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
39566 if (typeof base === "undefined" || +base ===
10) {
39567 s = expandExponential(s);
39571 if (typeof base === "undefined") {
39572 prefixRE = '
0[xcb]';
39574 else if (base ==
16) {
39577 else if (base ==
8) {
39580 else if (base ==
2) {
39586 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
39588 var sign = parts[
1] || "+";
39589 var baseSection = parts[
2] || "";
39590 var digits = parts[
3] || "";
39592 if (typeof base === "undefined") {
39594 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
39597 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
39600 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
39607 else if (base <
2 || base
> 36) {
39608 throw new Error(
"Illegal radix " + base +
".");
39613 // Check for digits outside the range
39614 if (!(BigInteger.radixRegex[base].test(digits))) {
39615 throw new Error(
"Bad digit for radix " + base);
39618 // Strip leading zeros, and convert to array
39619 digits = digits.replace(/^
0+/,
"").split(
"");
39620 if (digits.length ===
0) {
39624 // Get the sign (we know it's not zero)
39625 sign = (sign ===
"-") ? -
1 :
1;
39630 while (digits.length
>= BigInteger_base_log10) {
39631 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
39633 d.push(parseInt(digits.join(''),
10));
39634 return new BigInteger(d, sign, CONSTRUCT);
39637 // Do the conversion
39639 base = BigInteger.small[base];
39640 var small = BigInteger.small;
39641 for (var i =
0; i < digits.length; i++) {
39642 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
39644 return new BigInteger(d._d, sign, CONSTRUCT);
39647 throw new Error("Invalid BigInteger format: " + s);
39653 Add two
<BigIntegers>.
39657 n - The number to add to *this*. Will be converted to a
<BigInteger>.
39661 The numbers added together.
39665 <subtract>,
<multiply>,
<quotient>,
<next>
39667 BigInteger.prototype.add = function(n) {
39668 if (this._s ===
0) {
39669 return BigInteger(n);
39676 if (this._s !== n._s) {
39678 return this.subtract(n);
39685 var sum = new Array(Math.max(al, bl) +
1);
39686 var size = Math.min(al, bl);
39690 for (var i =
0; i < size; i++) {
39691 digit = a[i] + b[i] + carry;
39692 sum[i] = digit % BigInteger_base;
39693 carry = (digit / BigInteger_base) |
0;
39699 for (i = size; carry && i < al; i++) {
39700 digit = a[i] + carry;
39701 sum[i] = digit % BigInteger_base;
39702 carry = (digit / BigInteger_base) |
0;
39708 for ( ; i < al; i++) {
39712 return new BigInteger(sum, this._s, CONSTRUCT);
39717 Get the additive inverse of a
<BigInteger>.
39721 A
<BigInteger> with the same magnatude, but with the opposite sign.
39727 BigInteger.prototype.negate = function() {
39728 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
39733 Get the absolute value of a
<BigInteger>.
39737 A
<BigInteger> with the same magnatude, but always positive (or zero).
39743 BigInteger.prototype.abs = function() {
39744 return (this._s <
0) ? this.negate() : this;
39749 Subtract two
<BigIntegers>.
39753 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
39757 The *n* subtracted from *this*.
39761 <add>,
<multiply>,
<quotient>,
<prev>
39763 BigInteger.prototype.subtract = function(n) {
39764 if (this._s ===
0) {
39765 return BigInteger(n).negate();
39772 if (this._s !== n._s) {
39774 return this.add(n);
39778 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
39780 m = new BigInteger(n._d,
1, CONSTRUCT);
39781 n = new BigInteger(this._d,
1, CONSTRUCT);
39784 // Both are positive =
> a - b
39785 var sign = m.compareAbs(n);
39789 else if (sign <
0) {
39801 var diff = new Array(al); // al
>= bl since a
> b
39806 for (i =
0; i < bl; i++) {
39807 digit = a[i] - borrow - b[i];
39809 digit += BigInteger_base;
39817 for (i = bl; i < al; i++) {
39818 digit = a[i] - borrow;
39820 digit += BigInteger_base;
39828 for ( ; i < al; i++) {
39832 return new BigInteger(diff, sign, CONSTRUCT);
39836 function addOne(n, sign) {
39838 var sum = a.slice();
39843 var digit = (a[i] ||
0) +
1;
39844 sum[i] = digit % BigInteger_base;
39845 if (digit <= BigInteger_base -
1) {
39851 return new BigInteger(sum, sign, CONSTRUCT);
39854 function subtractOne(n, sign) {
39856 var sum = a.slice();
39861 var digit = (a[i] ||
0) -
1;
39863 sum[i] = digit + BigInteger_base;
39872 return new BigInteger(sum, sign, CONSTRUCT);
39877 Get the next
<BigInteger> (add one).
39887 BigInteger.prototype.next = function() {
39892 return subtractOne(this, -
1);
39895 return addOne(this,
1);
39901 Get the previous
<BigInteger> (subtract one).
39911 BigInteger.prototype.prev = function() {
39916 return addOne(this, -
1);
39919 return subtractOne(this,
1);
39925 Function: compareAbs
39926 Compare the absolute value of two
<BigIntegers>.
39928 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
39932 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39936 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
39942 BigInteger.prototype.compareAbs = function(n) {
39947 if (!(n instanceof BigInteger)) {
39948 if (!isFinite(n)) {
39949 return(isNaN(n) ? n : -
1);
39954 if (this._s ===
0) {
39955 return (n._s !==
0) ? -
1 :
0;
39961 var l = this._d.length;
39962 var nl = n._d.length;
39972 for (var i = l-
1; i
>=
0; i--) {
39973 if (a[i] !== b[i]) {
39974 return a[i] < b[i] ? -
1 :
1;
39983 Compare two
<BigIntegers>.
39987 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39991 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
39995 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
39997 BigInteger.prototype.compare = function(n) {
40004 if (this._s ===
0) {
40008 if (this._s === n._s) { // both positive or both negative
40009 var cmp = this.compareAbs(n);
40010 return cmp * this._s;
40019 Return true iff *this* is either
1 or -
1.
40023 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
40027 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
40028 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
40030 BigInteger.prototype.isUnit = function() {
40031 return this === ONE ||
40033 (this._d.length ===
1 && this._d[
0] ===
1);
40038 Multiply two
<BigIntegers>.
40042 n - The number to multiply *this* by. Will be converted to a
40047 The numbers multiplied together.
40051 <add>,
<subtract>,
<quotient>,
<square>
40053 BigInteger.prototype.multiply = function(n) {
40054 // TODO: Consider adding Karatsuba multiplication for large numbers
40055 if (this._s ===
0) {
40063 if (this.isUnit()) {
40071 return this.negate();
40076 return this.square();
40079 var r = (this._d.length
>= n._d.length);
40080 var a = (r ? this : n)._d; // a will be longer than b
40081 var b = (r ? n : this)._d;
40086 var partial = new Array(pl);
40088 for (i =
0; i < pl; i++) {
40092 for (i =
0; i < bl; i++) {
40095 var jlimit = al + i;
40097 for (var j = i; j < jlimit; j++) {
40098 digit = partial[j] + bi * a[j - i] + carry;
40099 carry = (digit / BigInteger_base) |
0;
40100 partial[j] = (digit % BigInteger_base) |
0;
40103 digit = partial[j] + carry;
40104 carry = (digit / BigInteger_base) |
0;
40105 partial[j] = digit % BigInteger_base;
40108 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
40111 // Multiply a BigInteger by a single-digit native number
40112 // Assumes that this and n are
>=
0
40113 // This is not really intended to be used outside the library itself
40114 BigInteger.prototype.multiplySingleDigit = function(n) {
40115 if (n ===
0 || this._s ===
0) {
40123 if (this._d.length ===
1) {
40124 digit = this._d[
0] * n;
40125 if (digit
>= BigInteger_base) {
40126 return new BigInteger([(digit % BigInteger_base)|
0,
40127 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
40129 return new BigInteger([digit],
1, CONSTRUCT);
40133 return this.add(this);
40135 if (this.isUnit()) {
40136 return new BigInteger([n],
1, CONSTRUCT);
40143 var partial = new Array(pl);
40144 for (var i =
0; i < pl; i++) {
40149 for (var j =
0; j < al; j++) {
40150 digit = n * a[j] + carry;
40151 carry = (digit / BigInteger_base) |
0;
40152 partial[j] = (digit % BigInteger_base) |
0;
40155 partial[j] = carry;
40158 return new BigInteger(partial,
1, CONSTRUCT);
40163 Multiply a
<BigInteger> by itself.
40165 This is slightly faster than regular multiplication, since it removes the
40166 duplicated multiplcations.
40170 > this.multiply(this)
40175 BigInteger.prototype.square = function() {
40176 // Normally, squaring a
10-digit number would take
100 multiplications.
40177 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
40178 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
40179 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
40181 if (this._s ===
0) {
40184 if (this.isUnit()) {
40188 var digits = this._d;
40189 var length = digits.length;
40190 var imult1 = new Array(length + length +
1);
40191 var product, carry, k;
40194 // Calculate diagonal
40195 for (i =
0; i < length; i++) {
40197 product = digits[i] * digits[i];
40198 carry = (product / BigInteger_base) |
0;
40199 imult1[k] = product % BigInteger_base;
40200 imult1[k +
1] = carry;
40203 // Calculate repeating part
40204 for (i =
0; i < length; i++) {
40207 for (var j = i +
1; j < length; j++, k++) {
40208 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
40209 carry = (product / BigInteger_base) |
0;
40210 imult1[k] = product % BigInteger_base;
40213 var digit = carry + imult1[k];
40214 carry = (digit / BigInteger_base) |
0;
40215 imult1[k] = digit % BigInteger_base;
40216 imult1[k +
1] += carry;
40219 return new BigInteger(imult1,
1, CONSTRUCT);
40224 Divide two
<BigIntegers> and truncate towards zero.
40226 <quotient> throws an exception if *n* is zero.
40230 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40234 The *this* / *n*, truncated to an integer.
40238 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
40240 BigInteger.prototype.quotient = function(n) {
40241 return this.divRem(n)[
0];
40246 Deprecated synonym for
<quotient>.
40248 BigInteger.prototype.divide = BigInteger.prototype.quotient;
40251 Function: remainder
40252 Calculate the remainder of two
<BigIntegers>.
40254 <remainder> throws an exception if *n* is zero.
40258 n - The remainder after *this* is divided *this* by *n*. Will be
40259 converted to a
<BigInteger>.
40267 <divRem>,
<quotient>
40269 BigInteger.prototype.remainder = function(n) {
40270 return this.divRem(n)[
1];
40275 Calculate the integer quotient and remainder of two
<BigIntegers>.
40277 <divRem> throws an exception if *n* is zero.
40281 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40285 A two-element array containing the quotient and the remainder.
40289 is exactly equivalent to
40291 > [a.quotient(b), a.remainder(b)]
40293 except it is faster, because they are calculated at the same time.
40297 <quotient>,
<remainder>
40299 BigInteger.prototype.divRem = function(n) {
40302 throw new Error("Divide by zero");
40304 if (this._s ===
0) {
40305 return [ZERO, ZERO];
40307 if (n._d.length ===
1) {
40308 return this.divRemSmall(n._s * n._d[
0]);
40311 // Test for easy cases -- |n1| <= |n2|
40312 switch (this.compareAbs(n)) {
40313 case
0: // n1 == n2
40314 return [this._s === n._s ? ONE : M_ONE, ZERO];
40315 case -
1: // |n1| < |n2|
40316 return [ZERO, this];
40319 var sign = this._s * n._s;
40321 var b_digits = this._d;
40322 var b_index = b_digits.length;
40323 var digits = n._d.length;
40327 var part = new BigInteger([],
0, CONSTRUCT);
40330 part._d.unshift(b_digits[--b_index]);
40331 part = new BigInteger(part._d,
1, CONSTRUCT);
40333 if (part.compareAbs(n) <
0) {
40337 if (part._s ===
0) {
40341 var xlen = part._d.length, ylen = a._d.length;
40342 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
40343 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
40344 if (part._d.length
> a._d.length) {
40345 // The length of part._d can either match a._d length,
40346 // or exceed it by one.
40347 highx = (highx+
1)*BigInteger_base;
40349 guess = Math.ceil(highx/highy);
40352 var check = a.multiplySingleDigit(guess);
40353 if (check.compareAbs(part) <=
0) {
40363 var diff = part.subtract(check);
40364 part._d = diff._d.slice();
40367 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
40368 new BigInteger(part._d, this._s, CONSTRUCT)];
40371 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
40372 // [
1, BigInteger.base). It's not necessary to call this, since the
40373 // other division functions will call it if they are able to.
40374 BigInteger.prototype.divRemSmall = function(n) {
40378 throw new Error("Divide by zero");
40381 var n_s = n <
0 ? -
1 :
1;
40382 var sign = this._s * n_s;
40385 if (n <
1 || n
>= BigInteger_base) {
40386 throw new Error("Argument out of range");
40389 if (this._s ===
0) {
40390 return [ZERO, ZERO];
40393 if (n ===
1 || n === -
1) {
40394 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
40397 //
2 <= n < BigInteger_base
40399 // divide a single digit by a single digit
40400 if (this._d.length ===
1) {
40401 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
40402 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
40412 var digits = this._d.slice();
40413 var quot = new Array(digits.length);
40419 while (digits.length) {
40420 part = part * BigInteger_base + digits[digits.length -
1];
40424 diff = BigInteger_base * diff + part;
40431 guess = (part / n) |
0;
40434 var check = n * guess;
40435 diff = part - check;
40446 r = new BigInteger([diff],
1, CONSTRUCT);
40450 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
40455 Return true iff *this* is divisible by two.
40457 Note that
<BigInteger.ZERO
> is even.
40461 true if *this* is even, false otherwise.
40467 BigInteger.prototype.isEven = function() {
40468 var digits = this._d;
40469 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
40474 Return true iff *this* is not divisible by two.
40478 true if *this* is odd, false otherwise.
40484 BigInteger.prototype.isOdd = function() {
40485 return !this.isEven();
40490 Get the sign of a
<BigInteger>.
40500 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
40502 BigInteger.prototype.sign = function() {
40507 Function: isPositive
40508 Return true iff *this*
> 0.
40512 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
40516 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40518 BigInteger.prototype.isPositive = function() {
40519 return this._s
> 0;
40523 Function: isNegative
40524 Return true iff *this* <
0.
40528 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
40532 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40534 BigInteger.prototype.isNegative = function() {
40535 return this._s <
0;
40540 Return true iff *this* ==
0.
40544 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
40548 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
40550 BigInteger.prototype.isZero = function() {
40551 return this._s ===
0;
40556 Multiply a
<BigInteger> by a power of
10.
40558 This is equivalent to, but faster than
40561 > return this.multiply(BigInteger("
1e" + n));
40564 > return this.quotient(BigInteger("
1e" + -n));
40569 n - The power of
10 to multiply *this* by. *n* is converted to a
40570 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
40571 (
0x7FFFFFFF), or an exception will be thrown.
40575 *this* * (
10 ** *n*), truncated to an integer if necessary.
40581 BigInteger.prototype.exp10 = function(n) {
40586 if (Math.abs(n)
> Number(MAX_EXP)) {
40587 throw new Error("exponent too large in BigInteger.exp10");
40589 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
40590 if (this._s ===
0) {
40594 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40596 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40602 k = k.multiplySingleDigit(Math.pow(
10, n));
40603 return (this._s <
0 ? k.negate() : k);
40604 } else if (-n
>= this._d.length*BigInteger_base_log10) {
40607 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40609 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40612 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
40618 Raise a
<BigInteger> to a power.
40620 In this implementation,
0**
0 is
1.
40624 n - The exponent to raise *this* by. *n* must be no greater than
40625 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
40629 *this* raised to the *nth* power.
40635 BigInteger.prototype.pow = function(n) {
40636 if (this.isUnit()) {
40641 return BigInteger(n).isOdd() ? this : this.negate();
40649 else if (n._s <
0) {
40650 if (this._s ===
0) {
40651 throw new Error(
"Divide by zero");
40657 if (this._s ===
0) {
40664 if (n.compareAbs(MAX_EXP)
> 0) {
40665 throw new Error(
"exponent too large in BigInteger.pow");
40669 var two = BigInteger.small[
2];
40671 while (n.isPositive()) {
40673 aux = aux.multiply(x);
40679 n = n.quotient(two);
40687 Raise a
<BigInteger> to a power (mod m).
40689 Because it is reduced by a modulus,
<modPow> is not limited by
40690 <BigInteger.MAX_EXP
> like
<pow>.
40694 exponent - The exponent to raise *this* by. Must be positive.
40695 modulus - The modulus.
40699 *this* ^ *exponent* (mod *modulus*).
40705 BigInteger.prototype.modPow = function(exponent, modulus) {
40709 while (exponent.isPositive()) {
40710 if (exponent.isOdd()) {
40711 result = result.multiply(base).remainder(modulus);
40714 exponent = exponent.quotient(BigInteger.small[
2]);
40715 if (exponent.isPositive()) {
40716 base = base.square().remainder(modulus);
40725 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
40727 This is equivalent to
40729 > Math.log(this.toJSValue())
40731 but handles values outside of the native number range.
40741 BigInteger.prototype.log = function() {
40743 case
0: return -Infinity;
40744 case -
1: return NaN;
40745 default: // Fall through.
40748 var l = this._d.length;
40750 if (l*BigInteger_base_log10 <
30) {
40751 return Math.log(this.valueOf());
40754 var N = Math.ceil(
30/BigInteger_base_log10);
40755 var firstNdigits = this._d.slice(l - N);
40756 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
40761 Convert a
<BigInteger> to a native JavaScript integer.
40763 This is called automatically by JavaScipt to convert a
<BigInteger> to a
40768 > parseInt(this.toString(),
10)
40772 <toString>,
<toJSValue>
40774 BigInteger.prototype.valueOf = function() {
40775 return parseInt(this.toString(),
10);
40779 Function: toJSValue
40780 Convert a
<BigInteger> to a native JavaScript integer.
40782 This is the same as valueOf, but more explicitly named.
40786 > parseInt(this.toString(),
10)
40790 <toString>,
<valueOf>
40792 BigInteger.prototype.toJSValue = function() {
40793 return parseInt(this.toString(),
10);
40796 var MAX_EXP = BigInteger(
0x7FFFFFFF);
40797 // Constant: MAX_EXP
40798 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
40799 BigInteger.MAX_EXP = MAX_EXP;
40802 function makeUnary(fn) {
40803 return function(a) {
40804 return fn.call(BigInteger(a));
40808 function makeBinary(fn) {
40809 return function(a, b) {
40810 return fn.call(BigInteger(a), BigInteger(b));
40814 function makeTrinary(fn) {
40815 return function(a, b, c) {
40816 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
40822 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
40823 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
40824 var trinary = ["modPow"];
40826 for (i =
0; i < unary.length; i++) {
40828 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
40831 for (i =
0; i < binary.length; i++) {
40833 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
40836 for (i =
0; i < trinary.length; i++) {
40838 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
40841 BigInteger.exp10 = function(x, n) {
40842 return BigInteger(x).exp10(n);
40847 exports.BigInteger = BigInteger;
40848 })(typeof exports !== 'undefined' ? exports : this);
40850 <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){
40851 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;
40853 },{}],
2:[function(require,module,exports){
40854 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;
40856 },{"./scoring":
6}],
3:[function(require,module,exports){
40857 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(","),
40858 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(","),
40859 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(","),
40860 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(","),
40861 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;
40863 },{}],
4:[function(require,module,exports){
40864 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;
40866 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
40867 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;
40869 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
40870 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;
40872 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
40873 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;
40877 //# sourceMappingURL=zxcvbn.js.map
40880 * Detects entropy from a string.
40887 * hexadecimal [
0-
9A-F]
40888 * card [A2-
9TJQK][CDHS]
40890 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
40891 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
40895 window.Entropy = new (function() {
40897 var TWO = new BigInteger(
2);
40899 // matchers returns an array of the matched events for each type of entropy.
40901 // matchers.binary("
010") returns ["
0", "
1", "
0"]
40902 // matchers.binary("a10") returns ["
1", "
0"]
40903 // matchers.hex("a10") returns ["a", "
1", "
0"]
40905 binary: function(str) {
40906 return str.match(/[
0-
1]/gi) || [];
40908 base6: function(str) {
40909 return str.match(/[
0-
5]/gi) || [];
40911 dice: function(str) {
40912 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
40914 base10: function(str) {
40915 return str.match(/[
0-
9]/gi) || [];
40917 hex: function(str) {
40918 return str.match(/[
0-
9A-F]/gi) || [];
40920 card: function(str) {
40921 // Format is NumberSuit, eg
40922 // AH ace of hearts
40923 //
8C eight of clubs
40924 // TD ten of diamonds
40925 // JS jack of spades
40926 // QH queen of hearts
40927 // KC king of clubs
40928 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
40932 // Convert array of cards from ["ac", "
4d", "ks"]
40933 // to numbers between
0 and
51 [
0,
16,
51]
40934 function convertCardsToInts(cards) {
40936 var values = "a23456789tjqk";
40937 var suits = "cdhs";
40938 for (var i=
0; i
<cards.length; i++) {
40939 var card = cards[i].toLowerCase();
40940 var value = card[
0];
40941 var suit = card[
1];
40942 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
40948 this.fromString = function(rawEntropyStr) {
40949 // Find type of entropy being used (binary, hex, dice etc)
40950 var base = getBase(rawEntropyStr);
40951 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
40952 // This is done by changing all
6s to
0s
40953 if (base.str ==
"dice") {
40956 for (var i=
0; i
<base.parts.length; i++) {
40957 var c = base.parts[i];
40958 if (
"12345".indexOf(c)
> -
1) {
40959 newParts[i] = base.parts[i];
40960 newInts[i] = base.ints[i];
40967 base.str = "base
6 (dice)";
40968 base.ints = newInts;
40969 base.parts = newParts;
40970 base.matcher = matchers.base6;
40972 // Detect empty entropy
40973 if (base.parts.length ==
0) {
40981 // Convert base.ints to BigInteger.
40982 // Due to using unusual bases, eg cards of base52, this is not as simple as
40983 // using BigInteger.parse()
40984 var entropyInt = BigInteger.ZERO;
40985 for (var i=base.ints.length-
1; i
>=
0; i--) {
40986 var thisInt = BigInteger.parse(base.ints[i]);
40987 var power = (base.ints.length -
1) - i;
40988 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
40989 entropyInt = entropyInt.add(additionalEntropy);
40991 // Convert entropy to binary
40992 var entropyBin = entropyInt.toString(
2);
40993 // If the first integer is small, it must be padded with zeros.
40994 // Otherwise the chance of the first bit being
1 is
100%, which is
40995 // obviously incorrect.
40996 // This is not perfect for non-
2^n bases.
40997 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
40998 while (entropyBin.length < expectedBits) {
40999 entropyBin = "
0" + entropyBin;
41001 // Calculate the number of bits per event
41002 var bitsPerEvent = Math.log2(base.asInt);
41003 // Cards binary must be handled differently, since they're not replaced
41004 if (base.asInt ==
52) {
41005 var cardEntropy = processCardEntropy(base.parts);
41006 entropyBin = cardEntropy.binaryStr;
41007 bitsPerEvent = cardEntropy.bitsPerEvent;
41009 // Supply a 'filtered' entropy string for display purposes
41010 var entropyClean = base.parts.join("");
41011 var entropyHtml = base.parts.join("");
41012 if (base.asInt ==
52) {
41013 entropyClean = base.parts.join(" ").toUpperCase();
41014 entropyClean = entropyClean.replace(/C/g, "\u2663");
41015 entropyClean = entropyClean.replace(/D/g, "\u2666");
41016 entropyClean = entropyClean.replace(/H/g, "\u2665");
41017 entropyClean = entropyClean.replace(/S/g, "\u2660");
41018 entropyHtml = base.parts.join(" ").toUpperCase();
41019 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
41020 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
41021 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
41022 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
41024 // Return the result
41026 binaryStr: entropyBin,
41027 cleanStr: entropyClean,
41028 cleanHtml: entropyHtml,
41029 bitsPerEvent: bitsPerEvent,
41035 function getSortedDeck() {
41037 var suits = "CDHS
";
41038 var values = "A23456789TJQK
";
41039 for (var i=0; i<suits.length; i++) {
41040 for (var j=0; j<values.length; j++) {
41041 s.push(values[j]+suits[i]);
41047 function getBase(str) {
41048 // Need to get the lowest base for the supplied entropy.
41049 // This prevents interpreting, say, dice rolls as hexadecimal.
41050 var binaryMatches = matchers.binary(str);
41051 var hexMatches = matchers.hex(str);
41052 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
41053 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
41054 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
41057 parts: binaryMatches,
41058 matcher: matchers.binary,
41063 var cardMatches = matchers.card(str);
41064 if (cardMatches.length >= hexMatches.length / 2) {
41065 var ints = convertCardsToInts(cardMatches);
41068 parts: cardMatches,
41069 matcher: matchers.card,
41074 var diceMatches = matchers.dice(str);
41075 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
41076 var ints = diceMatches.map(function(i) { return parseInt(i) });
41079 parts: diceMatches,
41080 matcher: matchers.dice,
41085 var base6Matches = matchers.base6(str);
41086 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
41087 var ints = base6Matches.map(function(i) { return parseInt(i) });
41090 parts: base6Matches,
41091 matcher: matchers.base6,
41096 var base10Matches = matchers.base10(str);
41097 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
41098 var ints = base10Matches.map(function(i) { return parseInt(i) });
41101 parts: base10Matches,
41102 matcher: matchers.base10,
41107 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
41111 matcher: matchers.hex,
41113 str:
"hexadecimal",
41117 // Assume cards are NOT replaced.
41118 // Additional entropy decreases as more cards are used. This means
41119 // total possible entropy is measured using n!, not base^n.
41120 // eg the second last card can be only one of two, not one of fifty two
41121 // so the added entropy for that card is only one bit at most
41122 function processCardEntropy(cards) {
41123 // Track how many instances of each card have been used, and thus
41124 // how many decks are in use.
41125 var cardCounts = {};
41126 var numberOfDecks =
0;
41127 // Work out number of decks by max(duplicates)
41128 for (var i=
0; i
<cards.length; i++) {
41129 // Get the card that was drawn
41130 var cardLower = cards[i];
41131 var card = cardLower.toUpperCase();
41132 // Initialize the count for this card if needed
41133 if (!(card in cardCounts)) {
41134 cardCounts[card] =
0;
41136 cardCounts[card] +=
1;
41137 // See if this is max(duplicates)
41138 if (cardCounts[card]
> numberOfDecks) {
41139 numberOfDecks = cardCounts[card];
41142 // Work out the total number of bits for this many decks
41143 // See http://crypto.stackexchange.com/q/
41886
41144 var gainedBits =
0;
41145 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
41146 // which becomes infinity for numberOfDecks
> 4
41147 for (var i=
1; i<=
52*numberOfDecks; i++) {
41148 gainedBits = gainedBits + Math.log2(i);
41150 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
41151 var maxBits = gainedBits - lostBits;
41152 // Convert the drawn cards to a binary representation.
41153 // The exact technique for doing this is unclear.
41155 // http://crypto.stackexchange.com/a/
41896
41156 //
"I even doubt that this is well defined (only the average entropy
41157 // is, I believe)."
41159 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
41160 //
"The binary representation can be the first log(permutations,2) bits
41161 // of the sha-2 hash of the normalized deck string."
41163 // In this specific implementation, the first N bits of the hash of the
41164 // normalized cards string is being used. Uppercase, no spaces; eg
41165 // sha256(
"AH8DQSTC2H")
41166 var totalCards = numberOfDecks *
52;
41167 var percentUsed = cards.length / totalCards;
41168 // Calculate the average number of bits of entropy for the number of
41170 var numberOfBits = Math.floor(maxBits * percentUsed);
41171 // Create a normalized string of the selected cards
41172 var normalizedCards = cards.join(
"").toUpperCase();
41173 // Convert to binary using the SHA256 hash of the normalized cards.
41174 // If the number of bits is more than
256, multiple hashes
41175 // are used until the required number of bits is reached.
41176 var entropyBin =
"";
41177 var iterations =
0;
41178 while (entropyBin.length < numberOfBits) {
41179 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
41180 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
41181 for (var i=
0; i
<hashHex.length; i++) {
41182 var decimal = parseInt(hashHex[i],
16);
41183 var binary = decimal.toString(
2);
41184 while (binary.length <
4) {
41185 binary =
"0" + binary;
41187 entropyBin = entropyBin + binary;
41189 iterations = iterations +
1;
41191 // Truncate to the appropriate number of bits.
41192 entropyBin = entropyBin.substring(
0, numberOfBits);
41193 // Get the number of bits per event
41194 bitsPerEvent = maxBits / totalCards;
41196 binaryStr: entropyBin,
41197 bitsPerEvent: bitsPerEvent,
41201 // Polyfill for Math.log2
41202 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
41203 Math.log2 = Math.log2 || function(x) {
41204 // The polyfill isn't good enough because of the poor accuracy of
41206 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
41207 // So instead use the BigInteger library to get it right.
41208 return BigInteger.log(x) / BigInteger.log(
2);
41211 // Depends on BigInteger
41212 function factorial(n) {
41216 f = BigInteger.ONE;
41217 for (var i=
1; i<=n; i++) {
41218 f = f.multiply(new BigInteger(i));
41225 <script>(function() {
41227 // mnemonics is populated as required by getLanguage
41228 var mnemonics = { "english": new Mnemonic("english") };
41229 var mnemonic = mnemonics["english"];
41231 var bip32RootKey = null;
41232 var bip32ExtendedKey = null;
41233 var network = bitcoin.networks.bitcoin;
41234 var addressRowTemplate = $("#address-row-template");
41236 var showIndex = true;
41237 var showAddress = true;
41238 var showPubKey = true;
41239 var showPrivKey = true;
41240 var showQr = false;
41242 var entropyChangeTimeoutEvent = null;
41243 var phraseChangeTimeoutEvent = null;
41244 var rootKeyChangedTimeoutEvent = null;
41246 var generationProcesses = [];
41249 DOM.network = $(".network");
41250 DOM.bip32Client = $("#bip32-client");
41251 DOM.phraseNetwork = $("#network-phrase");
41252 DOM.useEntropy = $(".use-entropy");
41253 DOM.entropyContainer = $(".entropy-container");
41254 DOM.entropy = $(".entropy");
41255 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
41256 DOM.entropyType = DOM.entropyContainer.find(".type");
41257 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
41258 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
41259 DOM.entropyBits = DOM.entropyContainer.find(".bits");
41260 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
41261 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
41262 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
41263 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
41264 DOM.phrase = $(".phrase");
41265 DOM.passphrase = $(".passphrase");
41266 DOM.generateContainer = $(".generate-container");
41267 DOM.generate = $(".generate");
41268 DOM.seed = $(".seed");
41269 DOM.rootKey = $(".root-key");
41270 DOM.extendedPrivKey = $(".extended-priv-key");
41271 DOM.extendedPubKey = $(".extended-pub-key");
41272 DOM.bip32tab = $("#bip32-tab");
41273 DOM.bip44tab = $("#bip44-tab");
41274 DOM.bip32panel = $("#bip32");
41275 DOM.bip44panel = $("#bip44");
41276 DOM.bip32path = $("#bip32-path");
41277 DOM.bip44path = $("#bip44-path");
41278 DOM.bip44purpose = $("#bip44 .purpose");
41279 DOM.bip44coin = $("#bip44 .coin");
41280 DOM.bip44account = $("#bip44 .account");
41281 DOM.bip44accountXprv = $("#bip44 .account-xprv");
41282 DOM.bip44accountXpub = $("#bip44 .account-xpub");
41283 DOM.bip44change = $("#bip44 .change");
41284 DOM.generatedStrength = $(".generate-container .strength");
41285 DOM.hardenedAddresses = $(".hardened-addresses");
41286 DOM.addresses = $(".addresses");
41287 DOM.rowsToAdd = $(".rows-to-add");
41288 DOM.more = $(".more");
41289 DOM.feedback = $(".feedback");
41290 DOM.tab = $(".derivation-type a");
41291 DOM.indexToggle = $(".index-toggle");
41292 DOM.addressToggle = $(".address-toggle");
41293 DOM.publicKeyToggle = $(".public-key-toggle");
41294 DOM.privateKeyToggle = $(".private-key-toggle");
41295 DOM.languages = $(".languages a");
41296 DOM.qrContainer = $(".qr-container");
41297 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
41298 DOM.qrImage = DOM.qrContainer.find(".qr-image");
41299 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
41300 DOM.showQrEls = $("[data-show-qr]");
41304 DOM.network.on("change", networkChanged);
41305 DOM.bip32Client.on("change", bip32ClientChanged);
41306 DOM.useEntropy.on("change", setEntropyVisibility);
41307 DOM.entropy.on("input", delayedEntropyChanged);
41308 DOM.entropyMnemonicLength.on("change", entropyChanged);
41309 DOM.phrase.on("input", delayedPhraseChanged);
41310 DOM.passphrase.on("input", delayedPhraseChanged);
41311 DOM.generate.on("click", generateClicked);
41312 DOM.more.on("click", showMore);
41313 DOM.rootKey.on("input", delayedRootKeyChanged);
41314 DOM.bip32path.on("input", calcForDerivationPath);
41315 DOM.bip44purpose.on("input", calcForDerivationPath);
41316 DOM.bip44coin.on("input", calcForDerivationPath);
41317 DOM.bip44account.on("input", calcForDerivationPath);
41318 DOM.bip44change.on("input", calcForDerivationPath);
41319 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
41320 DOM.hardenedAddresses.on("change", calcForDerivationPath);
41321 DOM.indexToggle.on("click", toggleIndexes);
41322 DOM.addressToggle.on("click", toggleAddresses);
41323 DOM.publicKeyToggle.on("click", togglePublicKeys);
41324 DOM.privateKeyToggle.on("click", togglePrivateKeys);
41325 DOM.languages.on("click", languageChanged);
41326 setQrEvents(DOM.showQrEls);
41329 hideValidationError();
41330 populateNetworkSelect();
41331 populateClientSelect();
41336 function networkChanged(e) {
41337 var networkIndex = e.target.value;
41338 networks[networkIndex].onSelect();
41339 if (seed != null) {
41347 function bip32ClientChanged(e) {
41348 var clientIndex = DOM.bip32Client.val();
41349 if (clientIndex == "custom") {
41350 DOM.bip32path.prop("readonly", false);
41353 DOM.bip32path.prop("readonly", true);
41354 clients[clientIndex].onSelect();
41355 if (seed != null) {
41364 function setEntropyVisibility() {
41365 if (isUsingOwnEntropy()) {
41366 DOM.entropyContainer.removeClass("hidden");
41367 DOM.generateContainer.addClass("hidden");
41368 DOM.phrase.prop("readonly", true);
41369 DOM.entropy.focus();
41373 DOM.entropyContainer.addClass("hidden");
41374 DOM.generateContainer.removeClass("hidden");
41375 DOM.phrase.prop("readonly", false);
41380 function delayedPhraseChanged() {
41381 hideValidationError();
41383 if (phraseChangeTimeoutEvent != null) {
41384 clearTimeout(phraseChangeTimeoutEvent);
41386 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
41389 function phraseChanged() {
41391 hideValidationError();
41392 setMnemonicLanguage();
41393 // Get the mnemonic phrase
41394 var phrase = DOM.phrase.val();
41395 var errorText = findPhraseErrors(phrase);
41397 showValidationError(errorText);
41400 // Calculate and display
41401 var passphrase = DOM.passphrase.val();
41402 calcBip32RootKeyFromSeed(phrase, passphrase);
41403 calcForDerivationPath();
41407 function delayedEntropyChanged() {
41408 hideValidationError();
41410 if (entropyChangeTimeoutEvent != null) {
41411 clearTimeout(entropyChangeTimeoutEvent);
41413 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
41416 function entropyChanged() {
41417 // If blank entropy, clear mnemonic, addresses, errors
41418 if (DOM.entropy.val().trim().length ==
0) {
41420 clearEntropyFeedback();
41421 DOM.phrase.val("");
41422 showValidationError("Blank entropy");
41425 // Get the current phrase to detect changes
41426 var phrase = DOM.phrase.val();
41427 // Set the phrase from the entropy
41428 setMnemonicFromEntropy();
41429 // Recalc addresses if the phrase has changed
41430 var newPhrase = DOM.phrase.val();
41431 if (newPhrase != phrase) {
41432 if (newPhrase.length ==
0) {
41444 function delayedRootKeyChanged() {
41445 // Warn if there is an existing mnemonic or passphrase.
41446 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
41447 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
41448 DOM.rootKey.val(bip32RootKey);
41452 hideValidationError();
41454 // Clear existing mnemonic and passphrase
41455 DOM.phrase.val(
"");
41456 DOM.passphrase.val(
"");
41458 if (rootKeyChangedTimeoutEvent != null) {
41459 clearTimeout(rootKeyChangedTimeoutEvent);
41461 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
41464 function rootKeyChanged() {
41466 hideValidationError();
41467 // Validate the root key TODO
41468 var rootKeyBase58 = DOM.rootKey.val();
41469 var errorText = validateRootKey(rootKeyBase58);
41471 showValidationError(errorText);
41474 // Calculate and display
41475 calcBip32RootKeyFromBase58(rootKeyBase58);
41476 calcForDerivationPath();
41479 function calcForDerivationPath() {
41481 clearAddressesList();
41482 hideValidationError();
41483 // Get the derivation path
41484 var derivationPath = getDerivationPath();
41485 var errorText = findDerivationPathErrors(derivationPath);
41487 showValidationError(errorText);
41490 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
41491 if (bip44TabSelected()) {
41492 displayBip44Info();
41494 displayBip32Info();
41498 function generateClicked() {
41499 if (isUsingOwnEntropy()) {
41504 setTimeout(function() {
41505 setMnemonicLanguage();
41506 var phrase = generateRandomPhrase();
41514 function languageChanged() {
41515 setTimeout(function() {
41516 setMnemonicLanguage();
41517 if (DOM.phrase.val().length
> 0) {
41518 var newPhrase = convertPhraseToNewLanguage();
41519 DOM.phrase.val(newPhrase);
41523 DOM.generate.trigger(
"click");
41528 function toggleIndexes() {
41529 showIndex = !showIndex;
41530 $(
"td.index span").toggleClass(
"invisible");
41533 function toggleAddresses() {
41534 showAddress = !showAddress;
41535 $(
"td.address span").toggleClass(
"invisible");
41538 function togglePublicKeys() {
41539 showPubKey = !showPubKey;
41540 $(
"td.pubkey span").toggleClass(
"invisible");
41543 function togglePrivateKeys() {
41544 showPrivKey = !showPrivKey;
41545 $(
"td.privkey span").toggleClass(
"invisible");
41550 function generateRandomPhrase() {
41551 if (!hasStrongRandom()) {
41552 var errorText =
"This browser does not support strong randomness";
41553 showValidationError(errorText);
41556 var numWords = parseInt(DOM.generatedStrength.val());
41557 var strength = numWords /
3 *
32;
41558 var words = mnemonic.generate(strength);
41559 DOM.phrase.val(words);
41563 function calcBip32RootKeyFromSeed(phrase, passphrase) {
41564 seed = mnemonic.toSeed(phrase, passphrase);
41565 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
41568 function calcBip32RootKeyFromBase58(rootKeyBase58) {
41569 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
41572 function calcBip32ExtendedKey(path) {
41573 // Check there's a root key to derive from
41574 if (!bip32RootKey) {
41575 return bip32RootKey;
41577 var extendedKey = bip32RootKey;
41578 // Derive the key from the path
41579 var pathBits = path.split(
"/");
41580 for (var i=
0; i
<pathBits.length; i++) {
41581 var bit = pathBits[i];
41582 var index = parseInt(bit);
41583 if (isNaN(index)) {
41586 var hardened = bit[bit.length-
1] ==
"'";
41587 var isPriv =
"privKey" in extendedKey;
41588 var invalidDerivationPath = hardened && !isPriv;
41589 if (invalidDerivationPath) {
41590 extendedKey = null;
41592 else if (hardened) {
41593 extendedKey = extendedKey.deriveHardened(index);
41596 extendedKey = extendedKey.derive(index);
41602 function showValidationError(errorText) {
41608 function hideValidationError() {
41614 function findPhraseErrors(phrase) {
41615 // Preprocess the words
41616 phrase = mnemonic.normalizeString(phrase);
41617 var words = phraseToWordArray(phrase);
41618 // Detect blank phrase
41619 if (words.length ==
0) {
41620 return
"Blank mnemonic";
41623 for (var i=
0; i
<words.length; i++) {
41624 var word = words[i];
41625 var language = getLanguage();
41626 if (WORDLISTS[language].indexOf(word) == -
1) {
41627 console.log(
"Finding closest match to " + word);
41628 var nearestWord = findNearestWord(word);
41629 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
41632 // Check the words are valid
41633 var properPhrase = wordArrayToPhrase(words);
41634 var isValid = mnemonic.check(properPhrase);
41636 return
"Invalid mnemonic";
41641 function validateRootKey(rootKeyBase58) {
41643 bitcoin.HDNode.fromBase58(rootKeyBase58);
41646 return
"Invalid root key";
41651 function getDerivationPath() {
41652 if (bip44TabSelected()) {
41653 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41654 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41655 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41656 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
41658 path += purpose +
"'/";
41659 path += coin +
"'/";
41660 path += account +
"'/";
41662 DOM.bip44path.val(path);
41663 var derivationPath = DOM.bip44path.val();
41664 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
41665 return derivationPath;
41667 else if (bip32TabSelected()) {
41668 var derivationPath = DOM.bip32path.val();
41669 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
41670 return derivationPath;
41673 console.log(
"Unknown derivation path");
41677 function findDerivationPathErrors(path) {
41678 // TODO is not perfect but is better than nothing
41680 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
41682 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
41683 var maxDepth =
255; // TODO verify this!!
41684 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
41685 if (path[
0] !=
"m") {
41686 return
"First character must be 'm'";
41688 if (path.length
> 1) {
41689 if (path[
1] !=
"/") {
41690 return
"Separator must be '/'";
41692 var indexes = path.split(
"/");
41693 if (indexes.length
> maxDepth) {
41694 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
41696 for (var depth =
1; depth
<indexes.length; depth++) {
41697 var index = indexes[depth];
41698 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
41699 if (invalidChars.length
> 0) {
41700 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
41702 var indexValue = parseInt(index.replace(
"'",
""));
41703 if (isNaN(depth)) {
41704 return
"Invalid number at depth " + depth;
41706 if (indexValue
> maxIndexValue) {
41707 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
41711 // Check root key exists or else derivation path is useless!
41712 if (!bip32RootKey) {
41713 return "No root key";
41715 // Check no hardened derivation path when using xpub keys
41716 var hardened = path.indexOf("'")
> -
1;
41717 var isXpubkey = !("privKey" in bip32RootKey);
41718 if (hardened && isXpubkey) {
41719 return "Hardened derivation path is invalid with xpub key";
41724 function displayBip44Info() {
41725 // Get the derivation path for the account
41726 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41727 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41728 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41730 path += purpose + "'/";
41731 path += coin + "'/";
41732 path += account + "'/";
41733 // Calculate the account extended keys
41734 var accountExtendedKey = calcBip32ExtendedKey(path);
41735 var accountXprv = accountExtendedKey.toBase58();
41736 var accountXpub = accountExtendedKey.toBase58(false);
41737 // Display the extended keys
41738 DOM.bip44accountXprv.val(accountXprv);
41739 DOM.bip44accountXpub.val(accountXpub);
41742 function displayBip32Info() {
41744 DOM.seed.val(seed);
41745 var rootKey = bip32RootKey.toBase58();
41746 DOM.rootKey.val(rootKey);
41747 var xprvkeyB58 = "NA";
41748 if (bip32ExtendedKey.privKey) {
41749 xprvkeyB58 = bip32ExtendedKey.toBase58();
41751 var extendedPrivKey = xprvkeyB58;
41752 DOM.extendedPrivKey.val(extendedPrivKey);
41753 var extendedPubKey = bip32ExtendedKey.toBase58(false);
41754 DOM.extendedPubKey.val(extendedPubKey);
41755 // Display the addresses and privkeys
41756 clearAddressesList();
41757 displayAddresses(
0,
20);
41760 function displayAddresses(start, total) {
41761 generationProcesses.push(new (function() {
41765 this.stop = function() {
41766 for (var i=
0; i
<rows.length; i++) {
41767 rows[i].shouldGenerate = false;
41771 for (var i=
0; i
<total; i++) {
41772 var index = i + start;
41773 rows.push(new TableRow(index));
41779 function TableRow(index) {
41782 this.shouldGenerate = true;
41783 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
41789 function calculateValues() {
41790 setTimeout(function() {
41791 if (!self.shouldGenerate) {
41795 if (useHardenedAddresses) {
41796 key = bip32ExtendedKey.deriveHardened(index);
41799 key = bip32ExtendedKey.derive(index);
41801 var address = key.getAddress().toString();
41802 var privkey =
"NA";
41804 privkey = key.privKey.toWIF(network);
41806 var pubkey = key.pubKey.toHex();
41807 var indexText = getDerivationPath() +
"/" + index;
41808 if (useHardenedAddresses) {
41809 indexText = indexText +
"'";
41811 // Ethereum values are different
41812 if (networks[DOM.network.val()].name ==
"Ethereum") {
41813 var privKeyBuffer = key.privKey.d.toBuffer();
41814 privkey = privKeyBuffer.toString('hex');
41815 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
41816 var hexAddress = addressBuffer.toString('hex');
41817 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
41818 address = ethUtil.addHexPrefix(checksumAddress);
41820 addAddressToList(indexText, address, pubkey, privkey);
41828 function showMore() {
41829 var start = DOM.addresses.children().length;
41830 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
41831 if (isNaN(rowsToAdd)) {
41833 DOM.rowsToAdd.val(
"20");
41835 if (rowsToAdd
> 200) {
41836 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
41837 msg +=
"Do you want to continue?";
41838 if (!confirm(msg)) {
41842 displayAddresses(start, rowsToAdd);
41845 function clearDisplay() {
41846 clearAddressesList();
41848 hideValidationError();
41851 function clearAddressesList() {
41852 DOM.addresses.empty();
41856 function stopGenerating() {
41857 while (generationProcesses.length
> 0) {
41858 var generation = generationProcesses.shift();
41863 function clearKey() {
41864 DOM.rootKey.val(
"");
41865 DOM.extendedPrivKey.val(
"");
41866 DOM.extendedPubKey.val(
"");
41869 function addAddressToList(indexText, address, pubkey, privkey) {
41870 var row = $(addressRowTemplate.html());
41872 var indexCell = row.find(
".index span");
41873 var addressCell = row.find(
".address span");
41874 var pubkeyCell = row.find(
".pubkey span");
41875 var privkeyCell = row.find(
".privkey span");
41877 indexCell.text(indexText);
41878 addressCell.text(address);
41879 pubkeyCell.text(pubkey);
41880 privkeyCell.text(privkey);
41883 indexCell.addClass(
"invisible");
41885 if (!showAddress) {
41886 addressCell.addClass(
"invisible");
41889 pubkeyCell.addClass(
"invisible");
41891 if (!showPrivKey) {
41892 privkeyCell.addClass(
"invisible");
41894 DOM.addresses.append(row);
41895 var rowShowQrEls = row.find(
"[data-show-qr]");
41896 setQrEvents(rowShowQrEls);
41899 function hasStrongRandom() {
41900 return 'crypto' in window && window['crypto'] !== null;
41903 function disableForms() {
41904 $(
"form").on(
"submit", function(e) {
41905 e.preventDefault();
41909 function parseIntNoNaN(val, defaultVal) {
41910 var v = parseInt(val);
41917 function showPending() {
41919 .text(
"Calculating...")
41923 function findNearestWord(word) {
41924 var language = getLanguage();
41925 var words = WORDLISTS[language];
41926 var minDistance =
99;
41927 var closestWord = words[
0];
41928 for (var i=
0; i
<words.length; i++) {
41929 var comparedTo = words[i];
41930 if (comparedTo.indexOf(word) ==
0) {
41933 var distance = Levenshtein.get(word, comparedTo);
41934 if (distance < minDistance) {
41935 closestWord = comparedTo;
41936 minDistance = distance;
41939 return closestWord;
41942 function hidePending() {
41948 function populateNetworkSelect() {
41949 for (var i=
0; i
<networks.length; i++) {
41950 var network = networks[i];
41951 var option = $(
"<option>");
41952 option.attr(
"value", i);
41953 option.text(network.name);
41954 DOM.phraseNetwork.append(option);
41958 function populateClientSelect() {
41959 for (var i=
0; i
<clients.length; i++) {
41960 var client = clients[i];
41961 var option = $(
"<option>");
41962 option.attr(
"value", i);
41963 option.text(client.name);
41964 DOM.bip32Client.append(option);
41968 function getLanguage() {
41969 var defaultLanguage =
"english";
41970 // Try to get from existing phrase
41971 var language = getLanguageFromPhrase();
41972 // Try to get from url if not from phrase
41973 if (language.length ==
0) {
41974 language = getLanguageFromUrl();
41976 // Default to English if no other option
41977 if (language.length ==
0) {
41978 language = defaultLanguage;
41983 function getLanguageFromPhrase(phrase) {
41984 // Check if how many words from existing phrase match a language.
41987 phrase = DOM.phrase.val();
41989 if (phrase.length
> 0) {
41990 var words = phraseToWordArray(phrase);
41991 var languageMatches = {};
41992 for (l in WORDLISTS) {
41993 // Track how many words match in this language
41994 languageMatches[l] =
0;
41995 for (var i=
0; i
<words.length; i++) {
41996 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
41997 if (wordInLanguage) {
41998 languageMatches[l]++;
42001 // Find languages with most word matches.
42002 // This is made difficult due to commonalities between Chinese
42003 // simplified vs traditional.
42004 var mostMatches =
0;
42005 var mostMatchedLanguages = [];
42006 for (var l in languageMatches) {
42007 var numMatches = languageMatches[l];
42008 if (numMatches
> mostMatches) {
42009 mostMatches = numMatches;
42010 mostMatchedLanguages = [l];
42012 else if (numMatches == mostMatches) {
42013 mostMatchedLanguages.push(l);
42017 if (mostMatchedLanguages.length
> 0) {
42018 // Use first language and warn if multiple detected
42019 language = mostMatchedLanguages[
0];
42020 if (mostMatchedLanguages.length
> 1) {
42021 console.warn(
"Multiple possible languages");
42022 console.warn(mostMatchedLanguages);
42029 function getLanguageFromUrl() {
42030 for (var language in WORDLISTS) {
42031 if (window.location.hash.indexOf(language)
> -
1) {
42038 function setMnemonicLanguage() {
42039 var language = getLanguage();
42040 // Load the bip39 mnemonic generator for this language if required
42041 if (!(language in mnemonics)) {
42042 mnemonics[language] = new Mnemonic(language);
42044 mnemonic = mnemonics[language];
42047 function convertPhraseToNewLanguage() {
42048 var oldLanguage = getLanguageFromPhrase();
42049 var newLanguage = getLanguageFromUrl();
42050 var oldPhrase = DOM.phrase.val();
42051 var oldWords = phraseToWordArray(oldPhrase);
42053 for (var i=
0; i
<oldWords.length; i++) {
42054 var oldWord = oldWords[i];
42055 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
42056 var newWord = WORDLISTS[newLanguage][index];
42057 newWords.push(newWord);
42059 newPhrase = wordArrayToPhrase(newWords);
42063 // TODO look at jsbip39 - mnemonic.splitWords
42064 function phraseToWordArray(phrase) {
42065 var words = phrase.split(/\s/g);
42067 for (var i=
0; i
<words.length; i++) {
42068 var word = words[i];
42069 if (word.length
> 0) {
42070 noBlanks.push(word);
42076 // TODO look at jsbip39 - mnemonic.joinWords
42077 function wordArrayToPhrase(words) {
42078 var phrase = words.join(
" ");
42079 var language = getLanguageFromPhrase(phrase);
42080 if (language ==
"japanese") {
42081 phrase = words.join(
"\u3000");
42086 function isUsingOwnEntropy() {
42087 return DOM.useEntropy.prop(
"checked");
42090 function setMnemonicFromEntropy() {
42091 clearEntropyFeedback();
42092 // Get entropy value
42093 var entropyStr = DOM.entropy.val();
42094 // Work out minimum base for entropy
42095 var entropy = Entropy.fromString(entropyStr);
42096 if (entropy.binaryStr.length ==
0) {
42099 // Show entropy details
42100 showEntropyFeedback(entropy);
42101 // Use entropy hash if not using raw entropy
42102 var bits = entropy.binaryStr;
42103 var mnemonicLength = DOM.entropyMnemonicLength.val();
42104 if (mnemonicLength !=
"raw") {
42105 // Get bits by hashing entropy with SHA256
42106 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
42107 var hex = sjcl.codec.hex.fromBits(hash);
42108 bits = BigInteger.parse(hex,
16).toString(
2);
42109 while (bits.length %
256 !=
0) {
42112 // Truncate hash to suit number of words
42113 mnemonicLength = parseInt(mnemonicLength);
42114 var numberOfBits =
32 * mnemonicLength /
3;
42115 bits = bits.substring(
0, numberOfBits);
42117 // Discard trailing entropy
42118 var bitsToUse = Math.floor(bits.length /
32) *
32;
42119 var start = bits.length - bitsToUse;
42120 var binaryStr = bits.substring(start);
42121 // Convert entropy string to numeric array
42122 var entropyArr = [];
42123 for (var i=
0; i
<binaryStr.length /
8; i++) {
42124 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
42125 var entropyByte = parseInt(byteAsBits,
2);
42126 entropyArr.push(entropyByte)
42128 // Convert entropy array to mnemonic
42129 var phrase = mnemonic.toMnemonic(entropyArr);
42130 // Set the mnemonic in the UI
42131 DOM.phrase.val(phrase);
42134 function clearEntropyFeedback() {
42135 DOM.entropyStrength.text(
"...");
42136 DOM.entropyType.text(
"");
42137 DOM.entropyWordCount.text(
"0");
42138 DOM.entropyEventCount.text(
"0");
42139 DOM.entropyBitsPerEvent.text(
"0");
42140 DOM.entropyBits.text(
"0");
42141 DOM.entropyFiltered.html(
" ");
42142 DOM.entropyBinary.html(
" ");
42145 function showEntropyFeedback(entropy) {
42146 var numberOfBits = entropy.binaryStr.length;
42147 var strength =
"extremely weak";
42148 if (numberOfBits
>=
64) {
42149 strength = "very weak";
42151 if (numberOfBits
>=
96) {
42154 if (numberOfBits
>=
128) {
42155 strength = "strong";
42157 if (numberOfBits
>=
160) {
42158 strength = "very strong";
42160 if (numberOfBits
>=
192) {
42161 strength = "extremely strong";
42163 // If time to crack is less than one day, and password is considered
42164 // strong or better based on the number of bits, rename strength to
42165 // 'easily cracked'.
42167 var z = zxcvbn(entropy.base.parts.join(""));
42168 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
42169 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
42170 strength = "easily cracked";
42171 if (z.feedback.warning != "") {
42172 strength = strength + " - " + z.feedback.warning;
42177 strength = "unknown";
42178 console.log("Error detecting entropy strength with zxcvbn:");
42181 var entropyTypeStr = getEntropyTypeStr(entropy);
42182 var wordCount = Math.floor(numberOfBits /
32) *
3;
42183 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
42184 DOM.entropyFiltered.html(entropy.cleanHtml);
42185 DOM.entropyType.text(entropyTypeStr);
42186 DOM.entropyStrength.text(strength);
42187 DOM.entropyEventCount.text(entropy.base.ints.length);
42188 DOM.entropyBits.text(numberOfBits);
42189 DOM.entropyWordCount.text(wordCount);
42190 DOM.entropyBinary.text(entropy.binaryStr);
42191 DOM.entropyBitsPerEvent.text(bitsPerEvent);
42194 function getEntropyTypeStr(entropy) {
42195 var typeStr = entropy.base.str;
42196 // Add some detail if these are cards
42197 if (entropy.base.asInt ==
52) {
42198 var cardDetail = []; // array of message strings
42199 // Detect duplicates
42201 var dupeTracker = {};
42202 for (var i=
0; i
<entropy.base.parts.length; i++) {
42203 var card = entropy.base.parts[i];
42204 var cardUpper = card.toUpperCase();
42205 if (cardUpper in dupeTracker) {
42208 dupeTracker[cardUpper] = true;
42210 if (dupes.length
> 0) {
42211 var dupeWord =
"duplicates";
42212 if (dupes.length ==
1) {
42213 dupeWord =
"duplicate";
42215 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
42216 if (dupes.length
> 3) {
42219 cardDetail.push(msg);
42221 // Detect full deck
42222 var uniqueCards = [];
42223 for (var uniqueCard in dupeTracker) {
42224 uniqueCards.push(uniqueCard);
42226 if (uniqueCards.length ==
52) {
42227 cardDetail.unshift(
"full deck");
42229 // Detect missing cards
42230 var values =
"A23456789TJQK";
42231 var suits =
"CDHS";
42232 var missingCards = [];
42233 for (var i=
0; i
<suits.length; i++) {
42234 for (var j=
0; j
<values.length; j++) {
42235 var card = values[j] + suits[i];
42236 if (!(card in dupeTracker)) {
42237 missingCards.push(card);
42241 // Display missing cards if six or less, ie clearly going for full deck
42242 if (missingCards.length
> 0 && missingCards.length <=
6) {
42243 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
42244 if (missingCards.length
> 3) {
42247 cardDetail.push(msg);
42249 // Add card details to typeStr
42250 if (cardDetail.length
> 0) {
42251 typeStr +=
" (" + cardDetail.join(
", ") +
")";
42257 function setQrEvents(els) {
42258 els.on(
"mouseenter", createQr);
42259 els.on(
"mouseleave", destroyQr);
42260 els.on(
"click", toggleQr);
42263 function createQr(e) {
42264 var content = e.target.textContent || e.target.value;
42267 DOM.qrImage.qrcode({width: size, height: size, text: content});
42269 DOM.qrHider.addClass(
"hidden");
42272 DOM.qrHider.removeClass(
"hidden");
42274 DOM.qrContainer.removeClass(
"hidden");
42278 function destroyQr() {
42279 DOM.qrImage.text(
"");
42280 DOM.qrContainer.addClass(
"hidden");
42283 function toggleQr() {
42285 DOM.qrHider.toggleClass(
"hidden");
42286 DOM.qrHint.toggleClass(
"hidden");
42289 function bip44TabSelected() {
42290 return DOM.bip44tab.hasClass(
"active");
42293 function bip32TabSelected() {
42294 return DOM.bip32tab.hasClass(
"active");
42300 onSelect: function() {
42301 network = bitcoin.networks.bitcoin;
42302 DOM.bip44coin.val(
0);
42306 name:
"Bitcoin Testnet",
42307 onSelect: function() {
42308 network = bitcoin.networks.testnet;
42309 DOM.bip44coin.val(
1);
42314 onSelect: function() {
42315 network = bitcoin.networks.clam;
42316 DOM.bip44coin.val(
23);
42321 onSelect: function() {
42322 network = bitcoin.networks.dogecoin;
42323 DOM.bip44coin.val(
3);
42328 onSelect: function() {
42329 network = bitcoin.networks.dash;
42330 DOM.bip44coin.val(
5);
42335 onSelect: function() {
42336 network = bitcoin.networks.bitcoin;
42337 DOM.bip44coin.val(
60);
42342 onSelect: function() {
42343 network = bitcoin.networks.jumbucks;
42344 DOM.bip44coin.val(
26);
42349 onSelect: function() {
42350 network = bitcoin.networks.litecoin;
42351 DOM.bip44coin.val(
2);
42356 onSelect: function() {
42357 network = bitcoin.networks.namecoin;
42358 DOM.bip44coin.val(
7);
42363 onSelect: function() {
42364 network = bitcoin.networks.peercoin;
42365 DOM.bip44coin.val(
6);
42369 name:
"ShadowCash",
42370 onSelect: function() {
42371 network = bitcoin.networks.shadow;
42372 DOM.bip44coin.val(
35);
42376 name:
"ShadowCash Testnet",
42377 onSelect: function() {
42378 network = bitcoin.networks.shadowtn;
42379 DOM.bip44coin.val(
1);
42384 onSelect: function() {
42385 network = bitcoin.networks.viacoin;
42386 DOM.bip44coin.val(
14);
42390 name:
"Viacoin Testnet",
42391 onSelect: function() {
42392 network = bitcoin.networks.viacointestnet;
42393 DOM.bip44coin.val(
1);
42400 name:
"Bitcoin Core",
42401 onSelect: function() {
42402 DOM.bip32path.val(
"m/0'/0'");
42403 DOM.hardenedAddresses.prop('checked', true);
42407 name:
"blockchain.info",
42408 onSelect: function() {
42409 DOM.bip32path.val(
"m/44'/0'/0'");
42410 DOM.hardenedAddresses.prop('checked', false);
42414 name:
"MultiBit HD",
42415 onSelect: function() {
42416 DOM.bip32path.val(
"m/0'/0");
42417 DOM.hardenedAddresses.prop('checked', false);